diff options
Diffstat (limited to 'engine/events/whiteout.asm')
-rwxr-xr-x | engine/events/whiteout.asm | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/engine/events/whiteout.asm b/engine/events/whiteout.asm new file mode 100755 index 000000000..a9d6f900e --- /dev/null +++ b/engine/events/whiteout.asm @@ -0,0 +1,82 @@ +Script_BattleWhiteout:: ; 0x124c1 + callasm BattleBGMap + jump Script_Whiteout +; 0x124c8 + +Script_OverworldWhiteout:: ; 0x124c8 + refreshscreen $0 + callasm OverworldBGMap + +Script_Whiteout: ; 0x124ce + writetext .WhitedOutText + waitbutton + special FadeOutPalettes + pause 40 + special HealParty + checkflag ENGINE_BUG_CONTEST_TIMER + iftrue .bug_contest + callasm HalveMoney + callasm GetWhiteoutSpawn + farscall Script_AbortBugContest + special WarpToSpawnPoint + newloadmap MAPSETUP_WARP + end_all + +.bug_contest + jumpstd bugcontestresultswarp +; 0x124f5 + +.WhitedOutText: ; 0x124f5 + ; is out of useable #MON! whited out! + text_jump UnknownText_0x1c0a4e + db "@" +; 0x124fa + +OverworldBGMap: ; 124fa + call ClearPalettes + call ClearScreen + call WaitBGMap2 + call HideSprites + call RotateThreePalettesLeft + ret +; 1250a + +BattleBGMap: ; 1250a + ld b, SCGB_BATTLE_GRAYSCALE + call GetSGBLayout + call SetPalettes + ret +; 12513 + +HalveMoney: ; 12513 + farcall TrainerRankings_WhiteOuts + +; Halve the player's money. + ld hl, Money + ld a, [hl] + srl a + ld [hli], a + ld a, [hl] + rra + ld [hli], a + ld a, [hl] + rra + ld [hl], a + ret +; 12527 + + +GetWhiteoutSpawn: ; 12527 + ld a, [wLastSpawnMapGroup] + ld d, a + ld a, [wLastSpawnMapNumber] + ld e, a + farcall IsSpawnPoint + ld a, c + jr c, .yes + xor a ; SPAWN_HOME + +.yes + ld [DefaultSpawnpoint], a + ret +; 1253d |