shithub: pokered

ref: b08a0b860ae7b666e3fd526de1f78809368d1bf6
dir: /scripts/celadongamecorner.asm/

View raw version
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 ReplaceTileBlock

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, HS_GAME_CORNER_ROCKET
	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 [wDoNotWaitForButtonPressAfterDisplayingText], 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 SaveEndBattleTextPointers
	ldh a, [$8c]
	ld [wSpriteIndex], 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 [wDoNotWaitForButtonPressAfterDisplayingText], 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 ReplaceTileBlock
	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