diff options
Diffstat (limited to '')
-rw-r--r-- | src/sceneGlue.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/sceneGlue.cpp b/src/sceneGlue.cpp new file mode 100644 index 0000000..3e2167a --- /dev/null +++ b/src/sceneGlue.cpp @@ -0,0 +1,22 @@ +#include <game.h> +#include <stage.h> + +extern char CurrentLevel, CurrentWorld; +extern u8 MaybeFinishingLevel[2]; +extern "C" void ExitStageReal(int scene, int sceneParams, int powerupStoreType, int wipe); + +extern "C" void ExitStageWrapper(int scene, int sceneParams, int powerupStoreType, int wipe) { + if (scene == WORLD_MAP && powerupStoreType == BEAT_LEVEL) { + if (CurrentWorld == 6 && CurrentLevel == STAGE_DOOMSHIP) { + if (MaybeFinishingLevel[0] == 6 && MaybeFinishingLevel[1] == STAGE_DOOMSHIP) { + // We're done with 7-38 + ExitStage(MOVIE, 0x10000000, powerupStoreType, wipe); + return; + } + } + } + + ExitStageReal(scene, sceneParams, powerupStoreType, wipe); +} + + |