16 #include "inventory.h"
26 FILE *Game::logfile_fd;
27 Inventory *Game::inventory;
29 int main(int argc, char **argv){
30 if((string)argv[0] != "bin/dragonblocks"){
31 string command = "cd ..; bin/dragonblocks -w world ";
34 exit(system(command.c_str()));
36 create_dir_if_not_exists((string)getenv("HOME")+"/.dragonblocks");
37 create_dir_if_not_exists((string)getenv("HOME")+"/.dragonblocks/worlds");
41 Game::logfile = (string)getenv("HOME")+"/.dragonblocks/dragonblocks.log";
42 const char *short_options = "hrvs:l:w:p:";
43 const struct option long_options[] = {
44 {"help", 0, NULL, 'h'},
45 {"version", 0, NULL, 'v'},
46 {"worldname", 1, NULL, 'w'},
47 {"worldpath", 1, NULL, 'p'},
48 {"worldlist", 0, NULL, 'r'},
49 {"seed", 1, NULL, 's'},
50 {"logfile", 1, NULL, 'l'},
54 while((next_option = getopt_long(argc, argv, short_options, long_options, NULL)) != -1){
65 Game::mapfile = optarg;
68 Game::mapfile = (string)getenv("HOME")+"/.dragonblocks/worlds/"+optarg;
71 Game::seed = atoi(optarg);
74 Game::logfile = optarg;
81 Game::log("Invalid Usage", ERROR);
87 if(Game::logfile_fd = fopen(Game::logfile.c_str(), "a"))
88 fprintf(Game::logfile_fd, "\n--------------------------------------------------\n");
90 Game::log((string)"Failed to open log file " + Game::logfile, WARNING);
91 Game::log((string)"Welcome to Dragonblocks "+VERSION);
93 new Node("unknown_node", "textures/unknown_node.png", true, true, false);
95 Game::inventory = new Inventory();
96 Game::map = new Map();
97 if(Game::mapfile == ""){
98 Game::log("No World Specified", ERROR);
101 if(fopen(Game::mapfile.c_str(), "r"))
105 Threads::startMapBackupThread();
106 Threads::startGraphicUpdateThread();
107 Threads::addSignalHandlers();
109 Game::log("Closed Window, Exiting.");