From 8aa04fc836116a58f8ffd1e0c3539b9ea8a94ddf Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Thu, 21 Feb 2008 19:06:15 +0000 Subject: dedicated server, entity transfer --- src/game/game.cc | 8 ++++++-- src/game/ship.cc | 4 +++- src/game/ship.h | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) (limited to 'src/game') diff --git a/src/game/game.cc b/src/game/game.cc index 311a696..a76d5e7 100644 --- a/src/game/game.cc +++ b/src/game/game.cc @@ -30,6 +30,8 @@ void func_join(core::Player *player, std::string const &args) std::string message(player->name()); message.append(" joins the game."); core::server()->broadcast(message); + + player->player_dirty = true; } /// a player joins the spectators @@ -44,9 +46,11 @@ void func_spectate(core::Player *player, std::string const &args) if (player->control) { // player has only ship for now - core::Entity::remove(player->control->id()); + player->control->die(); player->control = 0; } + + player->player_dirty = true; } /*----- Game ------------------------------------------------------ */ @@ -136,7 +140,7 @@ void Game::player_disconnect(core::Player *player) { if (player->control) { // player has only one ship for now - core::Entity::remove(player->control->id()); + player->control->die(); player->control = 0; } } diff --git a/src/game/ship.cc b/src/game/ship.cc index e6fcaeb..1bcdfbf 100644 --- a/src/game/ship.cc +++ b/src/game/ship.cc @@ -20,7 +20,7 @@ namespace game { Ship::Ship(core::Player *owner) : core::EntityControlable(owner, ship_enttype) { - // etnity properties + // entity properties entity_name = "ship: <" + owner->name() + "> Micron Vector"; entity_owner = owner; @@ -62,6 +62,8 @@ void Ship::frame(float seconds) // location TODO avoid sin/cos calculations entity_location.x += cosf(entity_direction * M_PI / 180) * entity_speed * seconds; entity_location.z -= sinf(entity_direction * M_PI / 180) * entity_speed * seconds; + + entity_dirty = true; } } // namespace game diff --git a/src/game/ship.h b/src/game/ship.h index 2897d6c..1d0fdd4 100644 --- a/src/game/ship.h +++ b/src/game/ship.h @@ -21,7 +21,7 @@ public: ~Ship(); /// update the ship state - void frame(float seconds); + virtual void frame(float seconds); /* -- Ship SPECS --*/ /// acceleration -- cgit v1.2.3