diff options
| author | Dominik Geyer <dominik.geyer@gmx.de> | 2008-10-01 17:16:22 +0000 |
|---|---|---|
| committer | Dominik Geyer <dominik.geyer@gmx.de> | 2008-10-01 17:16:22 +0000 |
| commit | 397b9a764b435a7b8c410bd9edc445009a7a9564 (patch) | |
| tree | f7d5c80cdd8b0998c3267e064a20f8a56405d029 /src/engine/server | |
| parent | fb3e8dec7905611a170c6b069cbaac34c4e04e70 (diff) | |
| download | zcatch-397b9a764b435a7b8c410bd9edc445009a7a9564.tar.gz zcatch-397b9a764b435a7b8c410bd9edc445009a7a9564.zip | |
data-dir autodetection; data-dir override; compiled-in data-dir; messagebox if detection fails; does chdir into data-dir
Diffstat (limited to 'src/engine/server')
| -rw-r--r-- | src/engine/server/es_server.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c index 6cdf835f..58866e09 100644 --- a/src/engine/server/es_server.c +++ b/src/engine/server/es_server.c @@ -882,7 +882,7 @@ static int server_load_map(const char *mapname) { DATAFILE *df; char buf[512]; - str_format(buf, sizeof(buf), "data/maps/%s.map", mapname); + str_format(buf, sizeof(buf), "maps/%s.map", mapname); df = datafile_load(buf); if(!df) return 0; @@ -1145,17 +1145,6 @@ static void server_register_commands() int main(int argc, char **argv) { -#if defined(CONF_PLATFORM_MACOSX) - char buffer[512]; - unsigned pos = strrchr(argv[0], '/') - argv[0]; - - if(pos >= 512) - return -1; - - strncpy(buffer, argv[0], 511); - buffer[pos] = 0; - chdir(buffer); -#endif #if defined(CONF_FAMILY_WINDOWS) int i; for(i = 1; i < argc; i++) @@ -1181,6 +1170,13 @@ int main(int argc, char **argv) /* parse the command line arguments */ engine_parse_arguments(argc, argv); + /* change into data-dir */ + if (!engine_chdir_datadir(argv[0])) + { + dbg_msg("server", "fatal error: data-dir cannot be found"); + return -1; + } + /* run the server */ server_run(); return 0; |