about summary refs log tree commit diff
path: root/src/game/g_game.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/g_game.cpp')
-rw-r--r--src/game/g_game.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/game/g_game.cpp b/src/game/g_game.cpp
index 800c41ba..747b832a 100644
--- a/src/game/g_game.cpp
+++ b/src/game/g_game.cpp
@@ -246,8 +246,13 @@ void player_core::tick()
 			hook_tick = 0;
 			triggered_events |= COREEVENT_HOOK_LAUNCH;
 		}
-		else if(hook_state == HOOK_GOING_TO_RETRACT)
+		else if(hook_state >= HOOK_RETRACT_START && hook_state < HOOK_RETRACT_END)
 		{
+			hook_state++;
+		}
+		else if(hook_state == HOOK_RETRACT_END)
+		{
+			hook_state = HOOK_RETRACTED;
 			triggered_events |= COREEVENT_HOOK_RETRACT;
 			hook_state = HOOK_RETRACTED;
 		}
@@ -256,7 +261,7 @@ void player_core::tick()
 			vec2 new_pos = hook_pos+hook_dir*world->tuning.hook_fire_speed;
 			if(distance(pos, new_pos) > world->tuning.hook_length)
 			{
-				hook_state = HOOK_GOING_TO_RETRACT;
+				hook_state = HOOK_RETRACT_START;
 				new_pos = pos + normalize(new_pos-pos) * world->tuning.hook_length;
 			}