diff --git a/game.h b/game.h index 288d029..513f26e 100755 --- a/game.h +++ b/game.h @@ -3048,11 +3048,25 @@ void SFG_updatePlayerHeight() RCL_CAMERA_COLL_HEIGHT_BELOW; } +void SFG_winLevel() +{ + SFG_levelEnds(); + SFG_setGameState(SFG_GAME_STATE_WIN); + SFG_playGameSound(2,255); + SFG_processEvent(SFG_EVENT_VIBRATE,0); + SFG_processEvent(SFG_EVENT_LEVEL_WON,SFG_currentLevel.levelNumber + 1); +} + /** Part of SFG_gameStep() for SFG_GAME_STATE_PLAYING. */ void SFG_gameStepPlaying() { +#if SFG_QUICK_WIN + if (SFG_game.stateTime > 500) + SFG_winLevel(); +#endif + if ( (SFG_keyIsDown(SFG_KEY_C) && SFG_keyIsDown(SFG_KEY_DOWN)) || SFG_keyIsDown(SFG_KEY_MENU)) @@ -3394,12 +3408,7 @@ void SFG_gameStepPlaying() break; case SFG_LEVEL_ELEMENT_FINISH: - SFG_levelEnds(); - SFG_setGameState(SFG_GAME_STATE_WIN); - SFG_playGameSound(2,255); - SFG_processEvent(SFG_EVENT_VIBRATE,0); - SFG_processEvent( - SFG_EVENT_LEVEL_WON,SFG_currentLevel.levelNumber + 1); + SFG_winLevel(); eliminate = 0; break; diff --git a/main_sdl.c b/main_sdl.c index 824b5af..ebcccaa 100644 --- a/main_sdl.c +++ b/main_sdl.c @@ -25,6 +25,7 @@ #endif // #define SFG_START_LEVEL 1 +// #define SFG_QUICK_WIN 1 #define SFG_IMMORTAL 1 // #define SFG_ALL_LEVELS 1 // #define SFG_UNLOCK_DOOR 1 diff --git a/settings.h b/settings.h index ae75a6d..cc1e4ee 100644 --- a/settings.h +++ b/settings.h @@ -447,6 +447,13 @@ #define SFG_IMMORTAL 0 #endif +/** + Developer setting, with 1 every level is won immediately after start. +*/ +#ifndef SFG_QUICK_WIN + #define SFG_QUICK_WIN 0 +#endif + /** Reveals all levels to be played. */