diff --git a/src/seg002.c b/src/seg002.c index c20c7058..5ae975fc 100644 --- a/src/seg002.c +++ b/src/seg002.c @@ -271,15 +271,6 @@ void check_guard_fallout() { // seg002:02F5 void leave_guard() { - -#ifdef USE_SUPER_HIGH_JUMP - // Do not leave guard during super high jumps when the room does not change. - // Kid's "y" coordinate keeps him in the lower room visually (in timers()). - if (fixes->enable_super_high_jump && super_jump_fall && drawn_room == next_room) { - return; - } -#endif - if (Guard.direction == dir_56_none || Guard.charid == charid_1_shadow || Guard.charid == charid_24_mouse) { return; } @@ -337,6 +328,13 @@ void exit_room() { next_room = Char.room; #ifdef FIX_DISAPPEARING_GUARD_B if (next_room == drawn_room) return; +#endif +#ifdef USE_SUPER_HIGH_JUMP + // Do not change the room during super high jumps from row 1. + // Kid's "y" coordinate keeps him in the room below (in timers()). + if (fixes->enable_super_high_jump && super_jump_fall && next_room == drawn_room) { + return; + } #endif if (Guard.direction == dir_56_none) return; if (Guard.alive < 0 && Guard.sword == sword_2_drawn) { diff --git a/src/seg006.c b/src/seg006.c index 913cb4c7..ef752a69 100644 --- a/src/seg006.c +++ b/src/seg006.c @@ -1178,7 +1178,7 @@ void check_grab() { old_x = Char.x; #ifdef USE_SUPER_HIGH_JUMP // delta_x makes grabbing easier -#define SUPER_HIGH_JUMP_DELTA_X (Char.direction == dir_FF_left ? 3 : 5) +#define SUPER_HIGH_JUMP_DELTA_X (Char.direction == dir_FF_left ? 3 : 4) Char.x = char_dx_forward(-8 + (fixes->enable_super_high_jump && super_jump_fall ? SUPER_HIGH_JUMP_DELTA_X : 0)); #else Char.x = char_dx_forward(-8);