pokeyellow/engine/events/black_out.asm
Narishma-gb d237b01cfb
Some checks failed
CI / build (push) Has been cancelled
Misc. naming and cleanup (#139)
* Name some printer/diploma routines

* Name `wd434`

* Name `NAME_LENGTH_JP`

* Rename `callabd`/`calladb` to `farcall`/`callfar`
2025-09-10 00:31:11 -04:00

49 lines
1.1 KiB
NASM

ResetStatusAndHalveMoneyOnBlackout::
; Reset player status on blackout.
xor a
ld [wPikachuCollisionCounter], a
xor a ; gamefreak copypasting functions (double xor a)
ld [wBattleResult], a
ld [wWalkBikeSurfState], a
ld [wIsInBattle], a
ld [wMapPalOffset], a
ld [wNPCMovementScriptFunctionNum], a
ldh [hJoyHeld], a
ld [wNPCMovementScriptPointerTableNum], a
ld [wMiscFlags], a
ldh [hMoney], a
ldh [hMoney + 1], a
ldh [hMoney + 2], a
call HasEnoughMoney
jr c, .lostmoney ; never happens
; Halve the player's money.
ld a, [wPlayerMoney]
ldh [hMoney], a
ld a, [wPlayerMoney + 1]
ldh [hMoney + 1], a
ld a, [wPlayerMoney + 2]
ldh [hMoney + 2], a
xor a
ldh [hDivideBCDDivisor], a
ldh [hDivideBCDDivisor + 1], a
ld a, 2
ldh [hDivideBCDDivisor + 2], a
predef DivideBCDPredef3
ldh a, [hDivideBCDQuotient]
ld [wPlayerMoney], a
ldh a, [hDivideBCDQuotient + 1]
ld [wPlayerMoney + 1], a
ldh a, [hDivideBCDQuotient + 2]
ld [wPlayerMoney + 2], a
.lostmoney
ld hl, wStatusFlags6
set BIT_FLY_OR_DUNGEON_WARP, [hl]
res BIT_FLY_WARP, [hl]
set BIT_ESCAPE_WARP, [hl]
ld a, PAD_BUTTONS | PAD_CTRL_PAD
ld [wJoyIgnore], a
predef_jump HealParty