X-Git-Url: https://plomlompom.com/repos/feed.xml?a=blobdiff_plain;f=src%2Fmain.c;h=b65108b7b4ec4ae3b3a2c93e52a3490ab8fa068f;hb=cd1ac671dae035da349e97983f9d65d5c0d7b2a9;hp=c22e0c252b040b46adaf226270d403db1abdb6eb;hpb=8661a8acfacc7cdd2935732fe5ead7d279a200b0;p=plomrogue diff --git a/src/main.c b/src/main.c index c22e0c2..b65108b 100644 --- a/src/main.c +++ b/src/main.c @@ -8,6 +8,7 @@ #include "keybindings.h" #include "readwrite.h" #include "map_objects.h" +#include "map_object_actions.h" #include "map.h" #include "misc.h" @@ -29,7 +30,7 @@ int main (int argc, char *argv[]) { default: exit(EXIT_FAILURE); } } - // Initialize log, player, monsters and items. + // Initialize log, player, monster/item definitions and monsters/items. world.log = calloc(1, sizeof(char)); update_log (&world, " "); struct Player player; @@ -37,6 +38,7 @@ int main (int argc, char *argv[]) { world.player = &player; world.monster = 0; world.item = 0; + init_map_object_defs(&world, "defs"); // For interactive mode, try to load world state from savefile. FILE * file; @@ -71,10 +73,15 @@ int main (int argc, char *argv[]) { world.map = ↦ if (1 == world.turn) { player.pos = find_passable_pos(&map); - unsigned char n_monsters = rrand(0, 0) % 16; - unsigned char n_items = rrand(0, 0) % 48; - build_map_objects (&world.monster, n_monsters, sizeof(struct Monster), build_map_objects_monsterdata, &map); - build_map_objects (&world.item, n_items, sizeof(struct Item), build_map_objects_itemdata, &map); } + void * foo = build_map_objects (&world, &world.monster, 0, 1 + rrand(0,0) % 27, sizeof(struct Monster), + build_map_objects_monsterdata); + foo = build_map_objects (&world, foo, 1, 1 + rrand(0,0) % 9, sizeof(struct Monster), + build_map_objects_monsterdata); + build_map_objects (&world, foo, 2, 1 + rrand(0,0) % 3, sizeof(struct Monster), + build_map_objects_monsterdata); + foo = build_map_objects (&world, &world.item, 3, 1 + rrand(0,0) % 3, sizeof(struct Item), + build_map_objects_itemdata); + build_map_objects (&world, foo, 4, 1 + rrand(0,0) % 3, sizeof(struct Item), build_map_objects_itemdata); } // Initialize window system and windows. WINDOW * screen = initscr();