mirror of
https://github.com/pret/pokered.git
synced 2024-10-24 07:25:21 +00:00
bd533aa79b
Using 'Coord =' doesn't like using wTileMap So use hlCoord, deCoord, bcCoord, aCoord, Coorda, or dwCoord to avoid static addresses
520 lines
10 KiB
NASM
Executable file
520 lines
10 KiB
NASM
Executable file
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, wd126
|
|
bit 6, [hl]
|
|
res 6, [hl]
|
|
ret z
|
|
call Random
|
|
ld a, [$ffd3]
|
|
cp $7
|
|
jr nc, .asm_48be2
|
|
ld a, $8
|
|
.asm_48be2
|
|
srl a
|
|
srl a
|
|
srl a
|
|
ld [wcd05], a
|
|
ret
|
|
|
|
CeladonGameCornerScript_48bec: ; 48bec (12:4bec)
|
|
ld hl, wd126
|
|
bit 5, [hl]
|
|
res 5, [hl]
|
|
ret z
|
|
ld a, [wd77e]
|
|
bit 1, a
|
|
ret nz
|
|
ld a, $2a
|
|
ld [wd09f], a
|
|
ld bc, $0208
|
|
predef_jump Func_ee9e
|
|
|
|
CeladonGameCornerScript_48c07: ; 48c07 (12:4c07)
|
|
xor a
|
|
ld [wJoyIgnore], 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 [wJoyIgnore], 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, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $46
|
|
ld [wcc4d], a
|
|
predef HideObject
|
|
ld hl, wd126
|
|
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, [wCurrentMenuItem]
|
|
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, wPlayerMoney + 2
|
|
ld c, $3
|
|
predef SubBCDPredef
|
|
xor a
|
|
ldh [$9f], a
|
|
ldh [$a0], a
|
|
ld a, $50
|
|
ldh [$a1], a
|
|
ld de, wPlayerCoins + 1
|
|
ld hl, $ffa1
|
|
ld c, $2
|
|
predef AddBCDPredef
|
|
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, [wd77e]
|
|
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, wPlayerCoins + 1
|
|
ld hl, $ffa1
|
|
ld c, $2
|
|
predef AddBCDPredef
|
|
ld hl, wd77e
|
|
set 2, [hl]
|
|
ld a, $1
|
|
ld [wcc3c], 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, [wd77c]
|
|
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, [wd77e]
|
|
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, wPlayerCoins + 1
|
|
ld hl, $ffa1
|
|
ld c, $2
|
|
predef AddBCDPredef
|
|
ld hl, wd77e
|
|
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, [wd77e]
|
|
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, wPlayerCoins + 1
|
|
ld hl, $ffa1
|
|
ld c, $2
|
|
predef AddBCDPredef
|
|
ld hl, wd77e
|
|
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, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, CeladonGameCornerText_48ed3
|
|
ld de, CeladonGameCornerText_48ed3
|
|
call PreBattleSaveRegisters
|
|
ldh a, [$8c]
|
|
ld [wcf13], 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 [wcc3c], a
|
|
ld hl, CeladonGameCornerText_48f09
|
|
call PrintText
|
|
call WaitForSoundToFinish
|
|
ld a, (SFX_02_57 - SFX_Headers_02) / 3
|
|
call PlaySound
|
|
call WaitForSoundToFinish
|
|
ld hl, wd77e
|
|
set 1, [hl]
|
|
ld a, $43
|
|
ld [wd09f], a
|
|
ld bc, $0208
|
|
predef Func_ee9e
|
|
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, wd730
|
|
set 6, [hl]
|
|
hlCoord 11, 0
|
|
ld b, $5
|
|
ld c, $7
|
|
call TextBoxBorder
|
|
call UpdateSprites
|
|
hlCoord 12, 1
|
|
ld b, $4
|
|
ld c, $7
|
|
call ClearScreenArea
|
|
hlCoord 12, 2
|
|
ld de, GameCornerMoneyText
|
|
call PlaceString
|
|
hlCoord 12, 3
|
|
ld de, GameCornerBlankText1
|
|
call PlaceString
|
|
hlCoord 12, 3
|
|
ld de, wPlayerMoney
|
|
ld c, $a3
|
|
call PrintBCDNumber
|
|
hlCoord 12, 4
|
|
ld de, GameCornerCoinText
|
|
call PlaceString
|
|
hlCoord 12, 5
|
|
ld de, GameCornerBlankText2
|
|
call PlaceString
|
|
hlCoord 15, 5
|
|
ld de, wPlayerCoins
|
|
ld c, $82
|
|
call PrintBCDNumber
|
|
ld hl, wd730
|
|
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
|