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>2008-11-08 10:17:37 +0000
committerStijn Buys <ingar@osirion.org>2008-11-08 10:17:37 +0000
commit4cad4a27677b0490d3ba0018bc3404961f925ed5 (patch)
treef9d59542f27f66a9fb4c8938f40aec66994449fc /src/game/base/ship.cc
parent27ab3566118e77754fefb32a41ee06cf24a59dfe (diff)
docking, bumps network protocol version
Diffstat (limited to 'src/game/base/ship.cc')
-rw-r--r--src/game/base/ship.cc29
1 files changed, 22 insertions, 7 deletions
diff --git a/src/game/base/ship.cc b/src/game/base/ship.cc
index 412668d..20f37c8 100644
--- a/src/game/base/ship.cc
+++ b/src/game/base/ship.cc
@@ -59,14 +59,13 @@ void Ship::reset()
}
void Ship::impulse()
{
- if (entity_eventstate == core::Entity::Jump) {
- return;
-
- } else if ((entity_eventstate == core::Entity::Impulse) || (entity_eventstate == core::Entity::ImpulseInitiate)) {
+ if ((entity_eventstate == core::Entity::Impulse) || (entity_eventstate == core::Entity::ImpulseInitiate)) {
entity_eventstate = core::Entity::Normal;
-
+
+ } else if (entity_eventstate != core::Entity::Normal) {
+ return;
+
} else {
-
if (entity_eventstate == core::Entity::JumpInitiate) {
ship_jumpdrive_timer = 0;
entity_timer = 0;
@@ -87,6 +86,10 @@ void Ship::impulse()
void Ship::jump(std::string const &args)
{
+ if (entity_eventstate == core::Entity::Docked) {
+ return;
+ }
+
// devel mode provides instant jump access to arbitrary systems
if (Base::g_devel->value() && (args.size())) {
@@ -215,7 +218,19 @@ void Ship::frame(float seconds)
// target axis
math::Axis target_axis(entity_axis);
- if (entity_eventstate == core::Entity::JumpInitiate) {
+ if (entity_eventstate == core::Entity::Docked) {
+
+ target_thrust = 0;
+ target_pitch = 0;
+ target_roll = 0;
+ target_direction = 0;
+ target_afterburner = 0.0f;
+ target_thrust = 0;
+
+ entity_speed = 0;
+ return;
+
+ } else if (entity_eventstate == core::Entity::JumpInitiate) {
if (ship_jumpdrive_timer + 1.0f <= core::server()->time()) {
entity_timer -= 1.0f;