Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2009-07-16 18:34:54 +0000
committerStijn Buys <ingar@osirion.org>2009-07-16 18:34:54 +0000
commit70b4d79d501be4802a06770f02b8f49e2c14e8a7 (patch)
treeb868e13489f8ef4377c7ac6c7d900ee854270b03 /src/game/base/game.cc
parent1b8ceba3a173ff59939042713cd07a65e83193f1 (diff)
Removes unused collor array support, disable bullet in sys/sys.h
Diffstat (limited to 'src/game/base/game.cc')
-rw-r--r--src/game/base/game.cc30
1 files changed, 19 insertions, 11 deletions
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<Ship *>(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<Ship *>(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)