From 70b4d79d501be4802a06770f02b8f49e2c14e8a7 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Thu, 16 Jul 2009 18:34:54 +0000 Subject: Removes unused collor array support, disable bullet in sys/sys.h --- src/game/base/game.cc | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'src/game/base/game.cc') diff --git a/src/game/base/game.cc b/src/game/base/game.cc index 441e080..ed1b80e 100644 --- a/src/game/base/game.cc +++ b/src/game/base/game.cc @@ -237,10 +237,11 @@ void Game::func_launch(core::Player *player, std::string const &args) Ship *ship = static_cast(player->control()); ship->shutdown_physics(); core::Entity *dock = player->view(); - ship->entity_location.assign(dock->location() + (dock->axis().forward() * (player->control()->radius()+ dock->radius()))); + ship->entity_location.assign(dock->location() + (dock->axis().forward() * (ship->radius()+ dock->radius()))); ship->entity_axis.assign(dock->axis()); ship->set_state(core::Entity::Normal); ship->init_physics(ship->radius()); + ship->set_state(core::Entity::Jump); player->set_view(0); player->send("^BLaunching from " + dock->name()); @@ -258,21 +259,27 @@ void Game::func_respawn(core::Player *player, std::string const &args) if (player->control()->state() != core::Entity::Destroyed) return; - player->control()->set_zone(Default::zone); + Ship *ship = static_cast(player->control()); core::Entity *dock = player->control()->zone()->default_view(); + + ship->shutdown_physics(); + if (dock) { - player->control()->entity_location.assign(dock->location() + (dock->axis().forward() * ((player->control()->radius()+ dock->radius())))); - player->control()->entity_axis.assign(dock->axis()); - player->control()->set_state(core::Entity::Docked); + ship->entity_location.assign(dock->location() + (dock->axis().forward() * ((ship->radius()+ dock->radius())))); + ship->entity_axis.assign(dock->axis()); + ship->set_state(core::Entity::Docked); player->set_view(dock); player->send("^BRespawning at " + dock->name()); } else { - player->control()->location().clear(); - player->control()->axis().clear(); - player->control()->set_state(core::Entity::Normal); + ship->location().clear(); + ship->axis().clear(); + ship->set_state(core::Entity::Jump); player->set_view(0); player->send("^BRespawning"); } + + ship->set_zone(Default::zone); + ship->init_physics(ship->radius()); } @@ -302,7 +309,8 @@ void Game::func_goto(core::Player *player, const std::string &args) ship->set_state(core::Entity::Normal); ship->init_physics(ship->radius()); - + ship->set_state(core::Entity::Jump); + player->set_view(0); player->send("Going to " + dock->name()); } else { @@ -945,10 +953,10 @@ bool Game::load_player() void Game::frame(float seconds) { + Physics::frame(seconds); + if (!running()) return; - - Physics::frame(seconds); } void Game::player_connect(core::Player *player) -- cgit v1.2.3