X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=src%2Fserver%2Finit.c;h=f5c81d3d5081b3ec4ed48f43eeb1801f94f86789;hb=1dc64ee46c2dcbd7eb8a6c4fcd27620dab7d7680;hp=ee9f9c276872897e121c7acca1b7268bd4ec3c27;hpb=2b2a1e0169b3a863fd87b679d789a4e2b789eb67;p=plomrogue diff --git a/src/server/init.c b/src/server/init.c index ee9f9c2..f5c81d3 100644 --- a/src/server/init.c +++ b/src/server/init.c @@ -25,13 +25,13 @@ #include "../common/rexit.h" /* exit_err(), exit_trouble() */ #include "../common/try_malloc.h" /* try_malloc() */ #include "cleanup.h" /* set_cleanup_flag() */ -#include "field_of_view.h" /* build_fov_map() */ +#include "field_of_view.h" /* update_map_memory() */ #include "hardcoded_strings.h" /* s */ #include "map.h" /* remake_map() */ #include "things.h" /* Thing, ThingType, free_things(), add_things(), - * get_thing_id_action_id_by_name() + * get_thing_id_action_id_by_name(), get_player() */ -#include "run.h" /* obey_msg(), io_loop(), record() */ +#include "run.h" /* obey_msg(), io_loop(), record(), send_to_outfile() */ #include "world.h" /* global world */ @@ -71,7 +71,7 @@ static void obey_lines_from_file(char * path, uint8_t record) { *nl = '\0'; } - obey_msg(line, record, 1); + obey_msg(line, record); } err_line_inc(); } @@ -91,18 +91,18 @@ static void replay_game() while ( world.turn < world.replay && try_fgets(line, linemax + 1, file, __func__)) { - obey_msg(line, 0, 1); + obey_msg(line, 0); err_line_inc(); } uint8_t end = 0; - while (!io_loop()) + while (3 == io_loop(2)) { if (!end) { end = (NULL == try_fgets(line, linemax + 1, file, __func__)); if (!end) { - obey_msg(line, 0, 1); + obey_msg(line, 0); err_line_inc(); } } @@ -199,6 +199,7 @@ extern uint8_t remake_world() world.seed_map = world.seed; free_things(world.things); remake_map(); + world.exists = 1; struct ThingType * tt; for (tt = world.thing_types; tt; tt = tt->next) { @@ -208,6 +209,7 @@ extern uint8_t remake_world() break; } } + update_map_memory(get_player(), 1); for (tt = world.thing_types; tt; tt = tt->next) { if (world.player_type != tt->id) @@ -215,17 +217,8 @@ extern uint8_t remake_world() add_things(tt->id, tt->start_n); } } - struct Thing * t; - for (t = world.things; t; t = t->next) - { - if (t->lifepoints) - { - build_fov_map(t); - } - } world.turn = 1; - world.do_update = 1; - world.exists = 1; + send_to_outfile("NEW_WORLD\n", 1); return 0; } @@ -255,10 +248,10 @@ extern void run_game() char * msg = try_malloc(strlen(command) + 1 + 11 + 1, __func__); int test = sprintf(msg, "%s %d", command, (int) time(NULL)); exit_trouble(test < 0, __func__, s[S_FCN_SPRINTF]); - obey_msg(msg, 1, 1); + obey_msg(msg, 1); free(msg); } err_line_zero(); - io_loop(); + io_loop(1); record(NULL, 1); }