summaryrefslogtreecommitdiff
path: root/scripts/celadongamecorner.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/celadongamecorner.asm')
-rwxr-xr-xscripts/celadongamecorner.asm536
1 files changed, 536 insertions, 0 deletions
diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm
new file mode 100755
index 00000000..f4e23d6e
--- /dev/null
+++ b/scripts/celadongamecorner.asm
@@ -0,0 +1,536 @@
+CeladonGameCornerScript: ; 48bbd (12:4bbd)
+ call CeladonGameCornerScript_48bcf
+ call CeladonGameCornerScript_48bec
+ call EnableAutoTextBoxDrawing
+ ld hl, CeladonGameCornerScriptPointers
+ ld a, [W_CELADONGAMECORNERCURSCRIPT]
+ jp CallFunctionInTable
+
+CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf)
+ ld hl, $d126
+ bit 6, [hl]
+ res 6, [hl]
+ ret z
+ call GenRandom
+ ld a, [$ffd3]
+ cp $7
+ jr nc, .asm_48be2
+ ld a, $8
+.asm_48be2
+ srl a
+ srl a
+ srl a
+ ld [$cd05], a
+ ret
+
+CeladonGameCornerScript_48bec: ; 48bec (12:4bec)
+ ld hl, $d126
+ bit 5, [hl]
+ res 5, [hl]
+ ret z
+ ld a, [$d77e]
+ bit 1, a
+ ret nz
+ ld a, $2a
+ ld [$d09f], a
+ ld bc, $0208
+ ld a, $17
+ jp Predef
+
+CeladonGameCornerScript_48c07: ; 48c07 (12:4c07)
+ xor a
+ ld [wJoypadForbiddenButtonsMask], a
+ ld [W_CELADONGAMECORNERCURSCRIPT], a
+ ld [W_CURMAPSCRIPT], a
+ ret
+
+CeladonGameCornerScriptPointers: ; 48c12 (12:4c12)
+ dw CeladonGameCornerScript0
+ dw CeladonGameCornerScript1
+ dw CeladonGameCornerScript2
+
+CeladonGameCornerScript0: ; 48c18 (12:4c18)
+ ret
+
+CeladonGameCornerScript1: ; 48c19 (12:4c19)
+ ld a, [W_ISINBATTLE]
+ cp $ff
+ jp z, CeladonGameCornerScript_48c07
+ ld a, $f0
+ ld [wJoypadForbiddenButtonsMask], a
+ ld a, $d
+ ld [H_SPRITEHEIGHT], a
+ call DisplayTextID
+ ld a, $b
+ ld [H_SPRITEHEIGHT], a
+ call SetSpriteMovementBytesToFF
+ ld de, MovementData_48c5a
+ ld a, [W_YCOORD]
+ cp $6
+ jr nz, .asm_48c43
+ ld de, MovementData_48c63
+ jr .asm_48c4d
+.asm_48c43
+ ld a, [W_XCOORD]
+ cp $8
+ jr nz, .asm_48c4d
+ ld de, MovementData_48c63
+.asm_48c4d
+ ld a, $b
+ ld [H_DOWNARROWBLINKCNT2], a
+ call MoveSprite
+ ld a, $2
+ ld [W_CELADONGAMECORNERCURSCRIPT], a
+ ret
+
+MovementData_48c5a: ; 48c5a (12:4c5a)
+ db $00,$C0,$C0,$40,$C0,$C0,$C0,$C0,$FF
+
+MovementData_48c63: ; 48c63 (12:4c63)
+ db $C0,$C0,$C0,$C0,$C0,$FF
+
+CeladonGameCornerScript2: ; 48c69 (12:4c69)
+ ld a, [$d730]
+ bit 0, a
+ ret nz
+ xor a
+ ld [wJoypadForbiddenButtonsMask], a
+ ld a, $46
+ ld [$cc4d], a
+ ld a, $11
+ call Predef
+ ld hl, $d126
+ set 5, [hl]
+ set 6, [hl]
+ ld a, $0
+ ld [W_CELADONGAMECORNERCURSCRIPT], a
+ ret
+
+CeladonGameCornerTextPointers: ; 48c8a (12:4c8a)
+ dw CeladonGameCornerText1
+ dw CeladonGameCornerText2
+ dw CeladonGameCornerText3
+ dw CeladonGameCornerText4
+ dw CeladonGameCornerText5
+ dw CeladonGameCornerText6
+ dw CeladonGameCornerText7
+ dw CeladonGameCornerText8
+ dw CeladonGameCornerText9
+ dw CeladonGameCornerText10
+ dw CeladonGameCornerText11
+ dw CeladonGameCornerText12
+ dw CeladonGameCornerText13
+
+CeladonGameCornerText1: ; 48ca4 (12:4ca4)
+ TX_FAR _CeladonGameCornerText1
+ db "@"
+
+CeladonGameCornerText2: ; 48ca9 (12:4ca9)
+ db $08 ; asm
+ call CeladonGameCornerScript_48f1e
+ ld hl, CeladonGameCornerText_48d22
+ call PrintText
+ call YesNoChoice
+ ld a, [$cc26]
+ and a
+ jr nz, .asm_c650b ; 0x48cba
+ ld b,COIN_CASE
+ call IsItemInBag
+ jr z, .asm_ed086 ; 0x48cc1
+ call Has9990Coins
+ jr nc, .asm_31338 ; 0x48cc6
+ xor a
+ ldh [$9f], a
+ ldh [$a1], a
+ ld a, $10
+ ldh [$a0], a
+ call HasEnoughMoney
+ jr nc, .asm_b6ef0 ; 0x48cd4
+ ld hl, CeladonGameCornerText_48d31 ; $4d31
+ jr .asm_e2afd ; 0x48cd9
+.asm_b6ef0 ; 0x48cdb
+ xor a
+ ldh [$9f], a
+ ldh [$a1], a
+ ld a, $10
+ ldh [$a0], a
+ ld hl, $ffa1
+ ld de, $d349
+ ld c, $3
+ ld a, $c
+ call Predef
+ xor a
+ ldh [$9f], a
+ ldh [$a0], a
+ ld a, $50
+ ldh [$a1], a
+ ld de, $d5a5
+ ld hl, $ffa1
+ ld c, $2
+ ld a, $b
+ call Predef
+ call CeladonGameCornerScript_48f1e
+ ld hl, CeladonGameCornerText_48d27
+ jr .asm_e2afd ; 0x48d0d
+.asm_c650b ; 0x48d0f
+ ld hl, CeladonGameCornerText_48d2c
+ jr .asm_e2afd ; 0x48d12
+.asm_31338 ; 0x48d14
+ ld hl, CeladonGameCornerText_48d36
+ jr .asm_e2afd ; 0x48d17
+.asm_ed086 ; 0x48d19
+ ld hl, CeladonGameCornerText_48d3b
+.asm_e2afd ; 0x48d1c
+ call PrintText
+ jp TextScriptEnd
+
+CeladonGameCornerText_48d22: ; 48d22 (12:4d22)
+ TX_FAR _CeladonGameCornerText_48d22
+ db "@"
+
+CeladonGameCornerText_48d27: ; 48d27 (12:4d27)
+ TX_FAR _CeladonGameCornerText_48d27
+ db "@"
+
+CeladonGameCornerText_48d2c: ; 48d2c (12:4d2c)
+ TX_FAR _CeladonGameCornerText_48d2c
+ db "@"
+
+CeladonGameCornerText_48d31: ; 48d31 (12:4d31)
+ TX_FAR _CeladonGameCornerText_48d31
+ db "@"
+
+CeladonGameCornerText_48d36: ; 48d36 (12:4d36)
+ TX_FAR _CeladonGameCornerText_48d36
+ db "@"
+
+CeladonGameCornerText_48d3b: ; 48d3b (12:4d3b)
+ TX_FAR _CeladonGameCornerText_48d3b
+ db "@"
+
+CeladonGameCornerText3: ; 48d40 (12:4d40)
+ TX_FAR _CeladonGameCornerText3
+ db "@"
+
+CeladonGameCornerText4: ; 48d45 (12:4d45)
+ TX_FAR _CeladonGameCornerText4
+ db "@"
+
+CeladonGameCornerText5: ; 48d4a (12:4d4a)
+ db $08 ; asm
+ ld a, [$d77e]
+ bit 2, a
+ jr nz, .asm_d0957 ; 0x48d50
+ ld hl, CeladonGameCornerText_48d9c
+ call PrintText
+ ld b, COIN_CASE
+ call IsItemInBag
+ jr z, .asm_5aef9 ; 0x48d5d
+ call Has9990Coins
+ jr nc, .asm_98546 ; 0x48d62
+ xor a
+ ldh [$9f], a
+ ldh [$a0], a
+ ld a, $10
+ ldh [$a1], a
+ ld de, $d5a5
+ ld hl, $ffa1
+ ld c, $2
+ ld a, $b
+ call Predef
+ ld hl, $d77e
+ set 2, [hl]
+ ld a, $1
+ ld [$cc3c], a
+ ld hl, Received10CoinsText
+ jr .asm_c7d1a ; 0x48d87
+.asm_d0957 ; 0x48d89
+ ld hl, CeladonGameCornerText_48dac
+ jr .asm_c7d1a ; 0x48d8c
+.asm_98546 ; 0x48d8e
+ ld hl, CeladonGameCornerText_48da7
+ jr .asm_c7d1a ; 0x48d91
+.asm_5aef9 ; 0x48d93
+ ld hl, CeladonGameCornerText_48f19
+.asm_c7d1a ; 0x48d96
+ call PrintText
+ jp TextScriptEnd
+
+CeladonGameCornerText_48d9c: ; 48d9c (12:4d9c)
+ TX_FAR _CeladonGameCornerText_48d9c
+ db "@"
+
+Received10CoinsText: ; 48da1 (12:4da1)
+ TX_FAR _Received10CoinsText
+ db $0B, "@"
+
+CeladonGameCornerText_48da7: ; 48da7 (12:4da7)
+ TX_FAR _CeladonGameCornerText_48da7
+ db "@"
+
+CeladonGameCornerText_48dac: ; 48dac (12:4dac)
+ TX_FAR _CeladonGameCornerText_48dac
+ db "@"
+
+CeladonGameCornerText6: ; 48db1 (12:4db1)
+ TX_FAR _CeladonGameCornerText6
+ db "@"
+
+CeladonGameCornerText7: ; 48db6 (12:4db6)
+ db $08 ; asm
+ ld a, [$d77c]
+ bit 1, a
+ ld hl, CeladonGameCornerText_48dca ; $4dca
+ jr z, .asm_be3fd ; 0x48dbf
+ ld hl, CeladonGameCornerText_48dcf ; $4dcf
+.asm_be3fd ; 0x48dc4
+ call PrintText
+ jp TextScriptEnd
+
+CeladonGameCornerText_48dca: ; 48dca (12:4dca)
+ TX_FAR _CeladonGameCornerText_48dca
+ db "@"
+
+CeladonGameCornerText_48dcf: ; 48dcf (12:4dcf)
+ TX_FAR _CeladonGameCornerText_48dcf
+ db "@"
+
+CeladonGameCornerText8: ; 48dd4 (12:4dd4)
+ TX_FAR _CeladonGameCornerText8
+ db "@"
+
+CeladonGameCornerText9: ; 48dd9 (12:4dd9)
+ db $08 ; asm
+ ld a, [$d77e]
+ bit 4, a
+ jr nz, .asm_ed8bc ; 0x48ddf
+ ld hl, CeladonGameCornerText_48e26
+ call PrintText
+ ld b, COIN_CASE
+ call IsItemInBag
+ jr z, .asm_df794 ; 0x48dec
+ call Has9990Coins
+ jr nc, .asm_f17c3 ; 0x48df1
+ xor a
+ ldh [$9f], a
+ ldh [$a0], a
+ ld a, $20
+ ldh [$a1], a
+ ld de, $d5a5
+ ld hl, $ffa1
+ ld c, $2
+ ld a, $b
+ call Predef
+ ld hl, $d77e
+ set 4, [hl]
+ ld hl, Received20CoinsText
+ jr .asm_0ddc2 ; 0x48e11
+.asm_ed8bc ; 0x48e13
+ ld hl, CeladonGameCornerText_48e36
+ jr .asm_0ddc2 ; 0x48e16
+.asm_f17c3 ; 0x48e18
+ ld hl, CeladonGameCornerText_48e31
+ jr .asm_0ddc2 ; 0x48e1b
+.asm_df794 ; 0x48e1d
+ ld hl, CeladonGameCornerText_48f19
+.asm_0ddc2 ; 0x48e20
+ call PrintText
+ jp TextScriptEnd
+
+CeladonGameCornerText_48e26: ; 48e26 (12:4e26)
+ TX_FAR _CeladonGameCornerText_48e26
+ db "@"
+
+Received20CoinsText: ; 48e2b (12:4e2b)
+ TX_FAR _Received20CoinsText
+ db $0B, "@"
+
+CeladonGameCornerText_48e31: ; 48e31 (12:4e31)
+ TX_FAR _CeladonGameCornerText_48e31
+ db "@"
+
+CeladonGameCornerText_48e36: ; 48e36 (12:4e36)
+ TX_FAR _CeladonGameCornerText_48e36
+ db "@"
+
+CeladonGameCornerText10: ; 48e3b (12:4e3b)
+ db $08 ; asm
+ ld a, [$d77e]
+ bit 3, a
+ jr nz, .asm_ff080 ; 0x48e41
+ ld hl, CeladonGameCornerText_48e88 ; $4e88
+ call PrintText
+ ld b,COIN_CASE
+ call IsItemInBag
+ jr z, .asm_4fb0c ; 0x48e4e
+ call Has9990Coins
+ jr z, .asm_9505a ; 0x48e53
+ xor a
+ ldh [$9f], a
+ ldh [$a0], a
+ ld a, $20
+ ldh [$a1], a
+ ld de, $d5a5
+ ld hl, $ffa1
+ ld c, $2
+ ld a, $b
+ call Predef
+ ld hl, $d77e
+ set 3, [hl]
+ ld hl, CeladonGameCornerText_48e8d
+ jr .asm_78d65 ; 0x48e73
+.asm_ff080 ; 0x48e75
+ ld hl, CeladonGameCornerText_48e98
+ jr .asm_78d65 ; 0x48e78
+.asm_9505a ; 0x48e7a
+ ld hl, CeladonGameCornerText_48e93
+ jr .asm_78d65 ; 0x48e7d
+.asm_4fb0c ; 0x48e7f
+ ld hl, CeladonGameCornerText_48f19
+.asm_78d65 ; 0x48e82
+ call PrintText
+ jp TextScriptEnd
+
+CeladonGameCornerText_48e88: ; 48e88 (12:4e88)
+ TX_FAR _CeladonGameCornerText_48e88
+ db "@"
+
+CeladonGameCornerText_48e8d: ; 48e8d (12:4e8d)
+ TX_FAR _CeladonGameCornerText_48e8d ; 0x9dceb
+ db $0B, "@"
+
+CeladonGameCornerText_48e93: ; 48e93 (12:4e93)
+ TX_FAR _CeladonGameCornerText_48e93
+ db "@"
+
+CeladonGameCornerText_48e98: ; 48e98 (12:4e98)
+ TX_FAR _CeladonGameCornerText_48e98
+ db "@"
+
+CeladonGameCornerText11: ; 48e9d (12:4e9d)
+ db $08 ; asm
+ ld hl, CeladonGameCornerText_48ece
+ call PrintText
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, CeladonGameCornerText_48ed3
+ ld de, CeladonGameCornerText_48ed3
+ call PreBattleSaveRegisters
+ ldh a, [$8c]
+ ld [$cf13], a
+ call EngageMapTrainer
+ call InitBattleEnemyParameters
+ xor a
+ ldh [$b4], a
+ ldh [$b3], a
+ ldh [$b2], a
+ ld a, $1
+ ld [W_CELADONGAMECORNERCURSCRIPT], a
+ jp TextScriptEnd
+
+CeladonGameCornerText_48ece: ; 48ece (12:4ece)
+ TX_FAR _CeladonGameCornerText_48ece
+ db "@"
+
+CeladonGameCornerText_48ed3: ; 48ed3 (12:4ed3)
+ TX_FAR _CeladonGameCornerText_48ed3
+ db "@"
+
+CeladonGameCornerText13: ; 48ed8 (12:4ed8)
+ TX_FAR _CeladonGameCornerText_48ed8
+ db "@"
+
+CeladonGameCornerText12: ; 48edd (12:4edd)
+ db $08 ; asm
+ ld a, $1
+ ld [$cc3c], a
+ ld hl, CeladonGameCornerText_48f09
+ call PrintText
+ call WaitForSoundToFinish
+ ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ call PlaySound
+ call WaitForSoundToFinish
+ ld hl, $d77e
+ set 1, [hl]
+ ld a, $43
+ ld [$d09f], a
+ ld bc, $0208
+ ld a, $17
+ call Predef
+ jp TextScriptEnd
+
+CeladonGameCornerText_48f09: ; 48f09 (12:4f09)
+ TX_FAR _CeladonGameCornerText_48f09 ; 0x9ddb0
+ db $8
+ ld a, (SFX_02_49 - SFX_Headers_02) / 3
+ call PlaySound
+ call WaitForSoundToFinish
+ jp TextScriptEnd
+
+CeladonGameCornerText_48f19: ; 48f19 (12:4f19)
+ TX_FAR _CeladonGameCornerText_48f19
+ db "@"
+
+CeladonGameCornerScript_48f1e: ; 48f1e (12:4f1e)
+ ld hl, $d730
+ set 6, [hl]
+ FuncCoord 11, 0 ; $c3ab
+ ld hl, Coord
+ ld b, $5
+ ld c, $7
+ call TextBoxBorder
+ call UpdateSprites
+ FuncCoord 12, 1 ; $c3c0
+ ld hl, Coord
+ ld b, $4
+ ld c, $7
+ call ClearScreenArea
+ FuncCoord 12, 2 ; $c3d4
+ ld hl, Coord
+ ld de, GameCornerMoneyText
+ call PlaceString
+ FuncCoord 12, 3 ; $c3e8
+ ld hl, Coord
+ ld de, GameCornerBlankText1
+ call PlaceString
+ FuncCoord 12, 3 ; $c3e8
+ ld hl, Coord
+ ld de, $d347
+ ld c, $a3
+ call PrintBCDNumber
+ FuncCoord 12, 4 ; $c3fc
+ ld hl, Coord
+ ld de, GameCornerCoinText
+ call PlaceString
+ FuncCoord 12, 5 ; $c410
+ ld hl, Coord
+ ld de, GameCornerBlankText2
+ call PlaceString
+ FuncCoord 15, 5 ; $c413
+ ld hl, Coord
+ ld de, $d5a4
+ ld c, $82
+ call PrintBCDNumber
+ ld hl, $d730
+ res 6, [hl]
+ ret
+
+GameCornerMoneyText: ; 48f7a (12:4f7a)
+ db "MONEY@"
+
+GameCornerCoinText: ; 48f80 (12:4f80)
+ db "COIN@"
+
+GameCornerBlankText1: ; 48f85 (12:4f85)
+ db " @"
+
+GameCornerBlankText2: ; 48f8d (12:4f8d)
+ db " @"
+
+Has9990Coins: ; 48f95 (12:4f95)
+ ld a, $99
+ ld [$ffa0], a
+ ld a, $90
+ ld [$ffa1], a
+ jp HasEnoughCoins