diff options
Diffstat (limited to 'src/game/game.hpp')
-rw-r--r-- | src/game/game.hpp | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/src/game/game.hpp b/src/game/game.hpp index 58892ff..e1eca84 100644 --- a/src/game/game.hpp +++ b/src/game/game.hpp @@ -3,7 +3,8 @@ namespace game { enum { ET_UNIT, - ET_EFFECT + ET_EFFECT, + ET_DECO }; enum { @@ -23,8 +24,7 @@ namespace game { extern size_t selection_cookie; - void worldgen(world::tile_t *tile, world::tile_index_t x, - procgen::perlin_noise_t *perlin); + void worldgen(world::world_t *world, world::sector_index_t index, world::sector_t *sector, void *data); namespace assets { typedef struct { @@ -43,9 +43,14 @@ namespace game { render::animated_texture_t blood; } fx_assets_t; + typedef struct { + render::animated_texture_t stone, eyething; + } deco_assets_t; + extern human_assets_t human; extern alien_assets_t alien; extern fx_assets_t fx; + extern deco_assets_t deco; void load(void); } @@ -176,4 +181,20 @@ namespace game { ~fx_blood_t(void) = default; void render_to(render::state_t *render); }; + + typedef enum { + DECO_STONE, + DECO_STONE_SMALL, + DECO_EYETHING + } deco_type_t; + + class deco_t : public world::entity_t { + game::state_t *game; + deco_type_t type; + public: + double phase_shift; + deco_t(game::state_t *game, deco_type_t type_); + void spawn(world::world_t *world, v2f_t x); + void render_to(render::state_t *render); + }; }; |