From 4cad4a27677b0490d3ba0018bc3404961f925ed5 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 8 Nov 2008 10:17:37 +0000 Subject: docking, bumps network protocol version --- src/game/base/ship.cc | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'src/game/base/ship.cc') 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; -- cgit v1.2.3