#include <stdlib.h> /* free() */
#include "../common/rexit.h" /* exit_err() */
#include "../common/try_malloc.h" /* try_malloc() */
-#include "../common/yx_uint8.h" /* struct yx_uint8 */
+#include "../common/yx_uint8.h" /* yx_uint8 */
#include "rrand.h" /* rrand() */
+#include "yx_uint8.h" /* mv_yx_in_dir_wrap() */
#include "world.h" /* global world */
extern void remake_map()
{
- char * f_name = "init_map()";
free(world.map.cells);
- world.map.cells = try_malloc(world.map.length * world.map.length, f_name);
+ world.map.cells = try_malloc(world.map.length * world.map.length, __func__);
uint32_t store_seed = world.seed;
world.seed = world.seed_map;
make_sea();
-extern uint8_t is_passable(struct yx_uint8 pos)
+extern uint8_t mv_yx_in_dir_legal(char dir, struct yx_uint8 * yx)
{
- uint8_t passable = 0;
- if (pos.x < world.map.length && pos.y < world.map.length)
+ uint8_t wraptest = mv_yx_in_dir_wrap(dir, yx, 0);
+ if (!wraptest && yx->x < world.map.length && yx->y < world.map.length)
{
- passable = ('.' == world.map.cells[(pos.y * world.map.length) + pos.x]);
+ return 1;
}
- return passable;
-}
-
-
-
-extern uint16_t yx_to_map_pos(struct yx_uint8 * yx)
-{
- return (yx->y * world.map.length) + yx->x;
+ return 0;
}