Skip to content

Commit 484615d

Browse files
committed
Fix timewarp practice mode bug
1 parent 6d1d0c7 commit 484615d

File tree

4 files changed

+13
-2
lines changed

4 files changed

+13
-2
lines changed

SAUCE/famidash.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,9 @@ uint8_t prev_mouse_y;
407407
uint8_t showarrownow;
408408
#endif
409409

410+
uint8_t level_resetting_flag;
411+
uint8_t timewarp_done;
412+
410413
extern uint8_t parallax_scroll_column;
411414
extern uint8_t parallax_scroll_column_start;
412415
uint8_t parallax_scroll_x;

SAUCE/functions/level_loading.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@ void unrle_first_screen(){ // run-length decode the first screen of a level
145145
uint32_inc(scroll_x);
146146
} while (i != 0);
147147

148+
level_resetting_flag = 2;
149+
timewarp_done = 0;
150+
148151
init_sprites();
149152

150153
set_scroll_x(scroll_x);

SAUCE/functions/sprite_loading.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,10 +302,12 @@ char sprite_load_special_behavior(){
302302
return 0;
303303

304304
case SLOWMODE_ON:
305-
slowmode = 1;
305+
if (!level_resetting_flag) slowmode = 1;
306+
else if (level_resetting_flag && !timewarp_done) { slowmode = 1; timewarp_done = 1; }
306307
killSprite_return0;
307308
case SLOWMODE_OFF:
308-
slowmode = 0;
309+
if (!level_resetting_flag) slowmode = 0;
310+
else if (level_resetting_flag && !timewarp_done) { slowmode = 0; timewarp_done = 1; }
309311
killSprite_return0;
310312

311313
case FORCED_TRAILS_ON:

SAUCE/gamestates/state_game.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -650,6 +650,9 @@ void state_game(){
650650
if (kandodebugmode) { if (mouse_timer) oam_spr(mouse.x, mouse.y - 1, (0xAD), 2); }
651651
// color_emphasis(0);
652652

653+
if (level_resetting_flag) level_resetting_flag--;
654+
timewarp_done = 0;
655+
653656
if (DEBUG_MODE) gray_line();
654657
if (!DEBUG_MODE && kandodebugmode != 2) {
655658
if (high_byte(player_x[0]) > 0x20) {

0 commit comments

Comments
 (0)