home · contact · privacy
Refactored / made more flexible: item/monster initialization.
authorChristian Heller <c.heller@plomlompom.de>
Tue, 2 Jul 2013 01:40:06 +0000 (03:40 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Tue, 2 Jul 2013 01:40:06 +0000 (03:40 +0200)
src/roguelike.c

index c5365a1d4aa5ee35e473dbc2b83a0452742c2b1b..04da8a654799397ccdf031d499136ba21db36340 100644 (file)
@@ -204,31 +204,26 @@ int main (int argc, char *argv[]) {
   update_log (&world, " ");
   struct Player player;
   world.player = &player;
-  struct Monster monster1;
-  struct Monster monster2;
-  struct Monster monster3;
-  world.monster = &monster1;
-  monster1.next = &monster2;
-  monster2.next = &monster3;
-  monster3.next = 0;
-  monster1.name = 'A';
-  monster2.name = 'B';
-  monster3.name = 'C';
-  struct Item item1;
-  struct Item item2;
-  struct Item item3;
-  world.item = &item1;
-  item1.next = &item2;
-  item2.next = &item3;
-  item3.next = 0;
-  item1.name = '&';
-  item2.name = '%';
-  item3.name = '#';
+  char i;
+  struct Monster * monster = malloc(sizeof(struct Monster));
+  world.monster = monster;
+  for (i = 0; i < 2; i++) {
+    monster->name = 'M';
+    monster->next = malloc(sizeof(struct Monster));
+    monster = monster->next; }
+  monster->name = 'M';
+  monster->next = 0;
+  struct Item * item = malloc(sizeof(struct Item));
+  world.item = item;
+  for (i = 0; i < 2; i++) {
+    item->name = '#';
+    item->next = malloc(sizeof(struct Item));
+    item = item->next; }
+  item->name = '#';
+  item->next = 0;
 
   // For interactive mode, try to load world state from savefile.
   FILE * file;
-  struct Item * item;
-  struct Monster * monster;
   if (1 == world.interactive && 0 == access("savefile", F_OK)) {
     file = fopen("savefile", "r");
     world.seed = read_uint32_bigendian(file);