From 6a9f579e2c47c5d60b37d343465e08faf26a9255 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Tue, 27 Jan 2015 04:58:04 +0100 Subject: [PATCH] Server: Refactoring of initialization of empty maps. --- src/server/field_of_view.c | 5 ++--- src/server/field_of_view.h | 2 +- src/server/god_commands.c | 6 ++---- src/server/io.c | 12 ++++++------ src/server/map.c | 9 +++++++++ src/server/map.h | 2 ++ 6 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/server/field_of_view.c b/src/server/field_of_view.c index 7ab5678..d6b3a8d 100644 --- a/src/server/field_of_view.c +++ b/src/server/field_of_view.c @@ -13,7 +13,7 @@ #include "../common/rexit.h" /* exit_trouble() */ #include "../common/try_malloc.h" /* try_malloc() */ #include "../common/yx_uint8.h" /* yx_uint8 */ -#include "map.h" /* mv_yx_in_dir_legal() */ +#include "map.h" /* mv_yx_in_dir_legal(), init_empty_map() */ #include "things.h" /* Thing, ThingInMemory, add_thing_to_memory_map() */ #include "world.h" /* world */ @@ -266,8 +266,7 @@ extern void update_map_memory(struct Thing * t_eye) { if (!t_eye->mem_map) { - t_eye->mem_map = try_malloc(world.map.length*world.map.length,__func__); - memset(t_eye->mem_map, ' ', world.map.length * world.map.length); + init_empty_map(&(t_eye->mem_map)); } uint32_t i; for (i = 0; i < (uint32_t) (world.map.length * world.map.length); i++) diff --git a/src/server/field_of_view.h b/src/server/field_of_view.h index 5cc9edb..41fde34 100644 --- a/src/server/field_of_view.h +++ b/src/server/field_of_view.h @@ -16,7 +16,7 @@ struct Thing; /* Update "t"'s .mem_map memory with what's in its current FOV, remove from its - * .t_mem all memorized things in FOV and add inanimiate things in FOV to it. + * .t_mem all memorized things in FOV and add inanimate things in FOV to it. */ extern void update_map_memory(struct Thing * t_eye); diff --git a/src/server/god_commands.c b/src/server/god_commands.c index a190682..8756404 100644 --- a/src/server/god_commands.c +++ b/src/server/god_commands.c @@ -18,7 +18,7 @@ #include "field_of_view.h" /* build_fov_map(), update_map_memory() */ #include "hardcoded_strings.h" /* s */ #include "init.h" /* remake_world() */ -#include "map.h" /* remake_map() */ +#include "map.h" /* init_empty_map(), remake_map() */ #include "thing_actions.h" /* ThingAction, actor_wait(), actor_move(), * actor_use(), actor_pickup(), actor_drop() */ @@ -466,9 +466,7 @@ extern uint8_t parse_god_command_2arg(char * tok0, char * tok1, char * tok2) } if (!t->mem_map) { - uint32_t map_size = world.map.length * world.map.length; - t->mem_map = try_malloc(map_size, __func__); - memset(t->mem_map, ' ', map_size); + init_empty_map(&(t->mem_map)); } memcpy(t->mem_map + y * world.map.length, tok2, world.map.length); } diff --git a/src/server/io.c b/src/server/io.c index 227be3f..d28eeb6 100644 --- a/src/server/io.c +++ b/src/server/io.c @@ -13,7 +13,7 @@ #include /* uint8_t, uint16_t, uint32_t, UINT8_MAX */ #include /* defines FILE, sprintf(), fprintf() */ #include /* free() */ -#include /* strlen(), snprintf(), memcpy(), memset(), strchr() */ +#include /* strlen(), snprintf(), memcpy(), strchr() */ #include /* time_t */ #include /* time(), nanosleep() */ #include "../common/readwrite.h" /* atomic_write_start(), atomic_write_finish(), @@ -24,6 +24,7 @@ #include "../common/try_malloc.h" /* try_malloc() */ #include "cleanup.h" /* set_cleanup_flag() */ #include "hardcoded_strings.h" /* s */ +#include "map.h" /* init_empty_map() */ #include "run.h" /* send_to_outfile() */ #include "things.h" /* Thing, ThingType, ThingInMemory, ThingAction, * get_thing_type(), get_player() @@ -262,13 +263,12 @@ static void write_inventory(struct Thing * player, FILE * file) static char * build_visible_map(struct Thing * player) { - uint32_t map_size = world.map.length * world.map.length; - char * visible_map = try_malloc(map_size, __func__); - memset(visible_map, ' ', map_size); + char * visible_map; + init_empty_map(&visible_map); if (player->fov_map) /* May fail if player thing was created / positioned */ { /* by god command after turning off FOV building. */ - uint32_t pos_i; - for (pos_i = 0; pos_i < map_size; pos_i++) + uint32_t pos_i = 0; + for (; pos_i < (uint32_t) world.map.length * world.map.length; pos_i++) { if (player->fov_map[pos_i] == 'v') { diff --git a/src/server/map.c b/src/server/map.c index 4cce02a..3a5a0a2 100644 --- a/src/server/map.c +++ b/src/server/map.c @@ -8,6 +8,7 @@ #include "map.h" #include /* uint8_t, int8_t, uint16_t, uint32_t, (U)INT*_(MIN|MAX) */ #include /* free() */ +#include /* memset() */ #include "../common/rexit.h" /* exit_err() */ #include "../common/try_malloc.h" /* try_malloc() */ #include "../common/yx_uint8.h" /* yx_uint8 */ @@ -230,3 +231,11 @@ extern uint8_t mv_yx_in_dir_legal(char dir, struct yx_uint8 * yx) } return 0; } + + + +extern void init_empty_map(char ** map) +{ + *map = try_malloc(world.map.length * world.map.length, __func__); + memset(*map, ' ', world.map.length * world.map.length); +} diff --git a/src/server/map.h b/src/server/map.h index 9f09c02..d9ebf74 100644 --- a/src/server/map.h +++ b/src/server/map.h @@ -40,6 +40,8 @@ extern void remake_map(); */ extern uint8_t mv_yx_in_dir_legal(char dir, struct yx_uint8 * yx); +/* Initialize (empty) map array at "map". */ +extern void init_empty_map(char ** map); #endif -- 2.30.2