diff options
Diffstat (limited to 'src/game/game.hpp')
-rw-r--r-- | src/game/game.hpp | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/src/game/game.hpp b/src/game/game.hpp index f6687dc..107bfbf 100644 --- a/src/game/game.hpp +++ b/src/game/game.hpp @@ -41,6 +41,7 @@ namespace game { class unit_t : public world::entity_t { protected: + game::state_t *game; world::world_t *world; world::cmodel_t make_cmodel(v2f_t at); @@ -59,9 +60,9 @@ namespace game { type_t type; - unit_t(type_t type_); + unit_t(game::state_t *game_, type_t type_); - virtual void think(double now, double dt) = 0; + virtual void think(void) = 0; struct { bool moving = false; @@ -76,23 +77,23 @@ namespace game { } move; void place(world::world_t *world_, v2f_t x_); - bool keep_moving(double now, double dt, double speed); - bool start_moving(v2f_t dst_, double now); + bool keep_moving(double speed); + bool start_moving(v2f_t dst); bool awake = false; double wake_time = -INFINITY; - virtual void wake(double now, unit_t *by_whom) = 0; - virtual void sleep(double now) = 0; + virtual void wake(unit_t *by_whom) = 0; + virtual void sleep(void) = 0; bool dead = false; double death_time = -INFINITY; int health = 1, max_health = 1; - void damage(double now, int points); - virtual void die(double now) = 0; + void damage(int points); + virtual void die() = 0; const wchar_t *say_text; double say_time = -INFINITY; - void say(const wchar_t *wstr, double now); + void say(const wchar_t *wstr); void render_to(render::state_t *render); @@ -100,27 +101,27 @@ namespace game { class human_t : public unit_t { public: - human_t(); + human_t(game::state_t *game); void render_to(render::state_t *render); - void wake(double now, unit_t *by_whom); - void sleep(double now); - void think(double now, double dt); - void die(double now); + void wake(unit_t *by_whom); + void sleep(void); + void think(void); + void die(void); }; class alien_t : public unit_t { double next_targetting = -INFINITY; double next_attack = -INFINITY; - void attack(double now, unit_t *target, float range); + void attack(unit_t *target, float range); public: - alien_t(); + alien_t(game::state_t *game); void render_to(render::state_t *render); - void wake(double now, unit_t *by_whom); - void sleep(double now); - void think(double now, double dt); - void die(double now); + void wake(unit_t *by_whom); + void sleep(void); + void think(void); + void die(void); }; }; |