#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 */
{
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++)
/* 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);
#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()
*/
}
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);
}
#include <stdint.h> /* uint8_t, uint16_t, uint32_t, UINT8_MAX */
#include <stdio.h> /* defines FILE, sprintf(), fprintf() */
#include <stdlib.h> /* free() */
-#include <string.h> /* strlen(), snprintf(), memcpy(), memset(), strchr() */
+#include <string.h> /* strlen(), snprintf(), memcpy(), strchr() */
#include <sys/types.h> /* time_t */
#include <time.h> /* time(), nanosleep() */
#include "../common/readwrite.h" /* atomic_write_start(), atomic_write_finish(),
#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()
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')
{
#include "map.h"
#include <stdint.h> /* uint8_t, int8_t, uint16_t, uint32_t, (U)INT*_(MIN|MAX) */
#include <stdlib.h> /* free() */
+#include <string.h> /* memset() */
#include "../common/rexit.h" /* exit_err() */
#include "../common/try_malloc.h" /* try_malloc() */
#include "../common/yx_uint8.h" /* yx_uint8 */
}
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);
+}
*/
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