common/day.c
common/environment.c
common/facedir.c
+ common/init.c
common/interrupt.c
common/item.c
common/node.c
-#define _GNU_SOURCE // don't worry, GNU extensions are only used when available
#include <dragonnet/init.h>
#include <dragonstd/flag.h>
#include <stdio.h>
#include "client/game.h"
#include "client/input.h"
#include "common/day.h"
+#include "common/init.h"
#include "common/interrupt.h"
#include "common/perlin.h"
#include "types.h"
int main(int argc, char **argv)
{
-#ifdef __GLIBC__ // check whether bloat is enabled
- pthread_setname_np(pthread_self(), "main");
-#endif // __GLIBC__
+ dragonblocks_init(argc);
- if (argc < 2) {
- fprintf(stderr, "[error] missing address\n");
- return EXIT_FAILURE;
- }
-
- dragonnet_init();
if (!(client = dragonnet_connect(argv[1]))) {
fprintf(stderr, "[error] failed to connect to server\n");
return EXIT_FAILURE;
--- /dev/null
+#define _GNU_SOURCE // don't worry, GNU extensions are only used when available
+#include <dragonnet/init.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+
+void dragonblocks_init(int argc)
+{
+#ifdef __GLIBC__ // check whether bloat is enabled
+ pthread_setname_np(pthread_self(), "main");
+#endif // __GLIBC__
+
+ struct stat sb;
+ if (stat(ASSET_PATH, &sb) != 0 || !S_ISDIR(sb.st_mode)) {
+ fprintf(stderr, "[error] asset directory not found at %s, "
+ "invoke game from correct path\n", ASSET_PATH);
+ exit(EXIT_FAILURE);
+ }
+
+ if (argc < 2) {
+ fprintf(stderr, "[error] missing address\n");
+ exit(EXIT_FAILURE);
+ }
+
+ dragonnet_init();
+}
--- /dev/null
+#ifndef _INIT_H_
+#define _INIT_H_
+
+void dragonblocks_init(int argc);
+
+#endif
-#define _GNU_SOURCE // don't worry, GNU extensions are only used when available
#include <dragonnet/addr.h>
#include <dragonnet/init.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
+#include "common/init.h"
#include "common/interrupt.h"
#include "server/database.h"
#include "server/server.h"
// server entry point
int main(int argc, char **argv)
{
-#ifdef __GLIBC__ // check whether bloat is enabled
- pthread_setname_np(pthread_self(), "main");
-#endif // __GLIBC__
+ dragonblocks_init(argc);
- if (argc < 2) {
- fprintf(stderr, "[error] missing address\n");
- return EXIT_FAILURE;
- }
-
- dragonnet_init();
if (!(server = dragonnet_listener_new(argv[1]))) {
fprintf(stderr, "[error] failed to listen to connections\n");
return EXIT_FAILURE;