summaryrefslogtreecommitdiff
path: root/engine/black_out.asm
diff options
context:
space:
mode:
authoreinstein95 <einstein95@users.noreply.github.com>2016-12-27 11:57:05 +1300
committereinstein95 <einstein95@users.noreply.github.com>2016-12-27 11:57:05 +1300
commitf73893db566c67ee9e1b4b6b309853503351d8ca (patch)
tree6b420d9e1ab47f11bf6240b48d237c810f4b6aa1 /engine/black_out.asm
parentfde4f79b3ba6a6653b91801e26865155b89a6be0 (diff)
Update to latest pokered
Diffstat (limited to 'engine/black_out.asm')
-rw-r--r--engine/black_out.asm46
1 files changed, 46 insertions, 0 deletions
diff --git a/engine/black_out.asm b/engine/black_out.asm
new file mode 100644
index 00000000..6c358ce3
--- /dev/null
+++ b/engine/black_out.asm
@@ -0,0 +1,46 @@
+ResetStatusAndHalveMoneyOnBlackout::
+; Reset player status on blackout.
+ xor a
+ ld [wBattleResult], a
+ ld [wWalkBikeSurfState], a
+ ld [wIsInBattle], a
+ ld [wMapPalOffset], a
+ ld [wNPCMovementScriptFunctionNum], a
+ ld [hJoyHeld], a
+ ld [wNPCMovementScriptPointerTableNum], a
+ ld [wFlags_0xcd60], a
+
+ ld [hMoney], a
+ ld [hMoney + 1], a
+ ld [hMoney + 2], a
+ call HasEnoughMoney
+ jr c, .lostmoney ; never happens
+
+ ; Halve the player's money.
+ ld a, [wPlayerMoney]
+ ld [hMoney], a
+ ld a, [wPlayerMoney + 1]
+ ld [hMoney + 1], a
+ ld a, [wPlayerMoney + 2]
+ ld [hMoney + 2], a
+ xor a
+ ld [hDivideBCDDivisor], a
+ ld [hDivideBCDDivisor + 1], a
+ ld a, 2
+ ld [hDivideBCDDivisor + 2], a
+ predef DivideBCDPredef3
+ ld a, [hDivideBCDQuotient]
+ ld [wPlayerMoney], a
+ ld a, [hDivideBCDQuotient + 1]
+ ld [wPlayerMoney + 1], a
+ ld a, [hDivideBCDQuotient + 2]
+ ld [wPlayerMoney + 2], a
+
+.lostmoney
+ ld hl, wd732
+ set 2, [hl]
+ res 3, [hl]
+ set 6, [hl]
+ ld a, %11111111
+ ld [wJoyIgnore], a
+ predef_jump HealParty