X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/decks/%7B%7Bdeck_id%7D%7D/cards/%7B%7Bcard_id%7D%7D/form?a=blobdiff_plain;f=src%2Fmain.h;h=e4d62e29ee87d682a58c2eeb9386562b62709738;hb=f89ac30f0907973b8aa858b053d38eec8e8f5bbf;hp=0427e9a24205939eaea59bcfa8f4144c03a4296b;hpb=d951e2631a19500f1bb8c29f9e029a9d9fb29ae7;p=plomrogue diff --git a/src/main.h b/src/main.h index 0427e9a..e4d62e2 100644 --- a/src/main.h +++ b/src/main.h @@ -1,24 +1,44 @@ -#ifndef ROGUELIKE_H -#define ROGUELIKE_H +/* main.h + * + * Contains the World struct holding all game data together. + */ -#include +#ifndef MAIN_H +#define MAIN_H +#include /* for uint32_t*/ +#include "keybindings.h" /* for KeyBiData struct */ struct WinMeta; +struct WinConf; struct Win; -struct KeyBinding; -struct KeysWinData; struct Map; +struct MapObjDef; +struct MapObj; + + + +struct World +{ + char interactive; /* 1: playing; 0: record playback. */ + struct KeyBiData kb_global; /* Global keybindings. */ + struct KeyBiData kb_wingeom; /* Window geometry config keybindings. */ + struct KeyBiData kb_winkeys; /* Window keybinding config keybindings.*/ + uint32_t seed; /* Randomness seed. */ + uint32_t turn; /* Current game turn. */ + uint16_t score; /* Player's score. */ + char * log; /* Pointer to the game log string. */ + struct Map * map; /* Pointer to the game map cells. */ + struct CommandDB * cmd_db; /* Pointer to the command database. */ + struct WinMeta * wmeta; /* Pointer to window manager's WinMeta. */ + struct WinConf * winconfs; /* Pointer to windows' configurations. */ + char * winconf_ids; /* Pointer to string of Winconfs' ids. */ + uint8_t map_obj_count; /* Counts map objects generated so far. */ + struct MapObjDef * map_obj_defs; /* Map object type definitions chain. */ + struct MapObj * map_objs; /* Pointer to map objects chain start. */ + uint8_t inventory_select; /* Player's inventory selection index. */ + uint8_t old_inventory_select; /* Temporarily stores for recordfile */ +} world; /* writing inventory selection index. */ + -struct World { - char interactive; - struct KeyBinding * keybindings; - struct KeysWinData * keyswindata; - uint32_t seed; - uint32_t turn; - char * log; - struct Map * map; - struct Item * item; - struct Monster * monster; - struct Player * player; }; #endif