summaryrefslogtreecommitdiff
path: root/src/game/game.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/game.hpp')
-rw-r--r--src/game/game.hpp27
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);
+ };
};