home · contact · privacy
Re-modelled draw_kb_view() on draw_titled_keybinding_list() model, lots of re-factori...
[plomrogue] / src / map.c
index 44a0057f4c8bb799d2f5caab856fa7d33feef377..94def7631c69527f0163847db13027eef0f54e84 100644 (file)
--- a/src/map.c
+++ b/src/map.c
@@ -1,21 +1,23 @@
 #include "map.h"
-#include <stdlib.h>      /* for malloc() */
 #include <stdint.h>      /* for uint16_t, uint32_t */
-#include "misc.h"        /* for rrand() and center_offset() */
+#include "misc.h"        /* for try_malloc(), center_offset() */
 #include "map_objects.h" /* for Player struct */
 #include "yx_uint16.h"   /* for yx_uint16 and dir enums */
+#include "rrand.h"       /* for rrand() */
+struct World;
 
 
 
-struct Map init_map ()
+struct Map init_map(struct World * world)
 {
+    char * f_name = "init_map()";
     struct Map map;
     map.size.x = 64;
     map.size.y = 64;
     map.offset.x = 0;
     map.offset.y = 0;
     uint32_t size = map.size.x * map.size.y;
-    map.cells = malloc(size);
+    map.cells = try_malloc(size, world, f_name);
     uint16_t y, x;
     for (y = 0; y < map.size.y; y++)
     {
@@ -28,8 +30,8 @@ struct Map init_map ()
     uint32_t curpos;
     while (1)
     {
-        y = rrand(0, 0) % map.size.y;
-        x = rrand(0, 0) % map.size.x;
+        y = rrand() % map.size.y;
+        x = rrand() % map.size.x;
         curpos = y * map.size.x + x;
         if ('~' == map.cells[curpos]
             && ((curpos >= map.size.x && '.' == map.cells[curpos - map.size.x])