diff options
Diffstat (limited to 'src/game.hpp')
-rw-r--r-- | src/game.hpp | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/game.hpp b/src/game.hpp index 4f84f52c..93b18e50 100644 --- a/src/game.hpp +++ b/src/game.hpp @@ -4,18 +4,22 @@ #include "alloc.hpp" #include "birther.hpp" +#include "effect_type.hpp" #include "game_edit_data.hpp" #include "grid.hpp" -#include "h-basic.h" +#include "h-basic.hpp" #include "level_marker.hpp" #include "messages.hpp" #include "player_defs.hpp" +#include "powers.hpp" +#include "power_type.hpp" #include "random_artifact.hpp" #include "skill_type.hpp" #include "timer_type_fwd.hpp" #include "wilderness_map.hpp" #include <boost/multi_array.hpp> +#include <unordered_map> /** * All structures for the game itself. @@ -65,6 +69,14 @@ struct Game { std::array<s16b, PY_MAX_LEVEL> player_hp { }; /** + * Powers + */ + std::unordered_map< + int, + std::shared_ptr<power_type>> + powers; + + /** * Message buffer. */ Messages messages { 2048 }; @@ -85,13 +97,33 @@ struct Game { std::vector<timer_type *> timers; /** + * Level generators + */ + std::unordered_map<std::string, std::function<bool()>> level_generators; + + /** * Level markers for 'special' levels. */ boost::multi_array<level_marker, 2> level_markers { }; /** + * Dungeon flags. + */ + dungeon_flag_set dungeon_flags { }; + + /** + * Lasting effects. + */ + std::vector<effect_type> lasting_effects { }; + + /** * Generate a special level feeling? */ bool generate_special_feeling = false; + /** + * Construct a default instance. + */ + explicit Game(); + }; |