X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=src%2Fserver%2Finit.c;h=ee9f9c276872897e121c7acca1b7268bd4ec3c27;hb=2b2a1e0169b3a863fd87b679d789a4e2b789eb67;hp=16ab4dfb42ffe2728803a40a8750233c5e2f4b15;hpb=891ba8fbca53d920f6b3704827fa6b8aee737de4;p=plomrogue diff --git a/src/server/init.c b/src/server/init.c index 16ab4df..ee9f9c2 100644 --- a/src/server/init.c +++ b/src/server/init.c @@ -1,4 +1,9 @@ -/* src/server/init.c */ +/* src/server/init.c + * + * This file is part of PlomRogue. PlomRogue is licensed under the GPL version 3 + * or any later version. For details on its copyright, license, and warranties, + * see the file NOTICE in the root directory of the PlomRogue source package. + */ #define _POSIX_C_SOURCE 2 /* getopt(), optarg */ #include "init.h" @@ -26,7 +31,7 @@ #include "things.h" /* Thing, ThingType, free_things(), add_things(), * get_thing_id_action_id_by_name() */ -#include "run.h" /* obey_msg(), io_loop() */ +#include "run.h" /* obey_msg(), io_loop(), record() */ #include "world.h" /* global world */ @@ -52,11 +57,10 @@ static uint8_t world_cannot_be_made(); static void obey_lines_from_file(char * path, uint8_t record) { - char * f_name = "obey_lines_from_file()"; - FILE * file = try_fopen(path, "r", f_name); + FILE * file = try_fopen(path, "r", __func__); uint32_t linemax = textfile_width(file); - char * line = try_malloc(linemax + 1, f_name); - while (NULL != try_fgets(line, linemax + 1, file, f_name)) + char * line = try_malloc(linemax + 1, __func__); + while (try_fgets(line, linemax + 1, file, __func__)) { if (strlen(line)) { @@ -73,20 +77,19 @@ static void obey_lines_from_file(char * path, uint8_t record) } } free(line); - try_fclose(file, f_name); + try_fclose(file, __func__); } static void replay_game() { - char * f_name = "replay_game()"; exit_err(access(s[S_PATH_RECORD], F_OK), "No record found to replay."); - FILE * file = try_fopen(s[S_PATH_RECORD], "r", f_name); + FILE * file = try_fopen(s[S_PATH_RECORD], "r", __func__); uint32_t linemax = textfile_width(file); - char * line = try_malloc(linemax + 1, f_name); + char * line = try_malloc(linemax + 1, __func__); while ( world.turn < world.replay - && NULL != try_fgets(line, linemax + 1, file, f_name)) + && try_fgets(line, linemax + 1, file, __func__)) { obey_msg(line, 0, 1); err_line_inc(); @@ -96,7 +99,7 @@ static void replay_game() { if (!end) { - end = (NULL == try_fgets(line, linemax + 1, file, f_name)); + end = (NULL == try_fgets(line, linemax + 1, file, __func__)); if (!end) { obey_msg(line, 0, 1); @@ -105,7 +108,7 @@ static void replay_game() } } free(line); - try_fclose(file, f_name); + try_fclose(file, __func__); } @@ -114,7 +117,7 @@ static uint8_t world_cannot_be_made() { uint8_t player_will_be_generated = 0; struct ThingType * tt; - for (tt = world.thing_types; NULL != tt; tt = tt->next) + for (tt = world.thing_types; tt; tt = tt->next) { if (world.player_type == tt->id) { @@ -163,15 +166,14 @@ extern void obey_argv(int argc, char * argv[]) extern void setup_server_io() { - char * f_name = "setup_server_io()"; int test = mkdir("server", 0700); - exit_trouble(test && EEXIST != errno, f_name, "mkdir()"); - world.file_out = try_fopen(s[S_PATH_OUT], "w", f_name); - world.server_test = try_malloc(10 + 1 + 10 + 1 + 1, f_name); + exit_trouble(test && EEXIST != errno, __func__, "mkdir"); + world.file_out = try_fopen(s[S_PATH_OUT], "w", __func__); + world.server_test = try_malloc(10 + 1 + 10 + 1 + 1, __func__); test = sprintf(world.server_test, "%d %d\n", getpid(), (int) time(0)); - exit_trouble(test < 0, f_name, s[S_FCN_SPRINTF]); + exit_trouble(test < 0, __func__, s[S_FCN_SPRINTF]); try_fwrite(world.server_test, strlen(world.server_test), 1, - world.file_out, f_name); + world.file_out, __func__); fflush(world.file_out); set_cleanup_flag(CLEANUP_OUT); char * path_in = s[S_PATH_IN]; @@ -179,9 +181,9 @@ extern void setup_server_io() { /* file streams of clients */ unlink(path_in) ; /* communicating with server processes */ } /* superseded by this current one. */ - world.file_in = try_fopen(path_in, "w", f_name); - try_fclose(world.file_in, f_name); - world.file_in = try_fopen(path_in, "r", f_name); + world.file_in = try_fopen(path_in, "w", __func__); + try_fclose(world.file_in, __func__); + world.file_in = try_fopen(path_in, "r", __func__); set_cleanup_flag(CLEANUP_IN); } @@ -194,13 +196,11 @@ extern uint8_t remake_world() { return test; } - free(world.log); - world.log = NULL; /* thing_actions.c's update_log() checks for this. */ world.seed_map = world.seed; free_things(world.things); remake_map(); struct ThingType * tt; - for (tt = world.thing_types; NULL != tt; tt = tt->next) + for (tt = world.thing_types; tt; tt = tt->next) { if (world.player_type == tt->id) { @@ -208,7 +208,7 @@ extern uint8_t remake_world() break; } } - for (tt = world.thing_types; NULL != tt; tt = tt->next) + for (tt = world.thing_types; tt; tt = tt->next) { if (world.player_type != tt->id) { @@ -216,9 +216,12 @@ extern uint8_t remake_world() } } struct Thing * t; - for (t = world.things; NULL != t; t = t->next) + for (t = world.things; t; t = t->next) { - t->fov_map = t->lifepoints ? build_fov_map(t) : NULL; + if (t->lifepoints) + { + build_fov_map(t); + } } world.turn = 1; world.do_update = 1; @@ -230,7 +233,6 @@ extern uint8_t remake_world() extern void run_game() { - char * f_name = "run_game()"; detect_atomic_leftover(s[S_PATH_SAVE]); detect_atomic_leftover(s[S_PATH_RECORD]); err_line_zero(); @@ -250,12 +252,13 @@ extern void run_game() obey_lines_from_file(s[S_PATH_CONFIG], 1); err_line_zero(); char * command = s[S_CMD_MAKE_WORLD]; - char * msg = try_malloc(strlen(command) + 1 + 11 + 1, f_name); + char * msg = try_malloc(strlen(command) + 1 + 11 + 1, __func__); int test = sprintf(msg, "%s %d", command, (int) time(NULL)); - exit_trouble(test < 0, f_name, s[S_FCN_SPRINTF]); + exit_trouble(test < 0, __func__, s[S_FCN_SPRINTF]); obey_msg(msg, 1, 1); free(msg); } err_line_zero(); io_loop(); + record(NULL, 1); }