diff options
Diffstat (limited to 'scripts/celadongamecorner.asm')
-rwxr-xr-x | scripts/celadongamecorner.asm | 409 |
1 files changed, 208 insertions, 201 deletions
diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm index 91d6742d..09d2df37 100755 --- a/scripts/celadongamecorner.asm +++ b/scripts/celadongamecorner.asm @@ -1,18 +1,18 @@ -CeladonGameCornerScript: ; 48bbd (12:4bbd) +CeladonGameCornerScript: call CeladonGameCornerScript_48bcf call CeladonGameCornerScript_48bec call EnableAutoTextBoxDrawing ld hl, CeladonGameCornerScriptPointers - ld a, [W_CELADONGAMECORNERCURSCRIPT] + ld a, [wCeladonGameCornerCurScript] jp CallFunctionInTable -CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf) - ld hl, wd126 +CeladonGameCornerScript_48bcf: + ld hl, wCurrentMapScriptFlags bit 6, [hl] res 6, [hl] ret z call Random - ld a, [$ffd3] + ld a, [hRandomAdd] cp $7 jr nc, .asm_48be2 ld a, $8 @@ -20,91 +20,103 @@ CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf) srl a srl a srl a - ld [wUnknownSlotVar], a + ld [wLuckySlotHiddenObjectIndex], a ret -CeladonGameCornerScript_48bec: ; 48bec (12:4bec) - ld hl, wd126 +CeladonGameCornerScript_48bec: + ld hl, wCurrentMapScriptFlags bit 5, [hl] res 5, [hl] ret z - ld a, [wd77e] - bit 1, a + CheckEvent EVENT_FOUND_ROCKET_HIDEOUT ret nz ld a, $2a - ld [wd09f], a - ld bc, $0208 + ld [wNewTileBlockID], a + lb bc, 2, 8 predef_jump ReplaceTileBlock -CeladonGameCornerScript_48c07: ; 48c07 (12:4c07) +CeladonGameCornerScript_48c07: xor a ld [wJoyIgnore], a - ld [W_CELADONGAMECORNERCURSCRIPT], a - ld [W_CURMAPSCRIPT], a + ld [wCeladonGameCornerCurScript], a + ld [wCurMapScript], a ret -CeladonGameCornerScriptPointers: ; 48c12 (12:4c12) +CeladonGameCornerScriptPointers: dw CeladonGameCornerScript0 dw CeladonGameCornerScript1 dw CeladonGameCornerScript2 -CeladonGameCornerScript0: ; 48c18 (12:4c18) +CeladonGameCornerScript0: ret -CeladonGameCornerScript1: ; 48c19 (12:4c19) - ld a, [W_ISINBATTLE] +CeladonGameCornerScript1: + ld a, [wIsInBattle] cp $ff jp z, CeladonGameCornerScript_48c07 ld a, $f0 ld [wJoyIgnore], a ld a, $d - ld [H_SPRITEHEIGHT], a + ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $b - ld [H_SPRITEHEIGHT], a + ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF ld de, MovementData_48c5a - ld a, [W_YCOORD] + ld a, [wYCoord] cp $6 jr nz, .asm_48c43 ld de, MovementData_48c63 jr .asm_48c4d .asm_48c43 - ld a, [W_XCOORD] + ld a, [wXCoord] cp $8 jr nz, .asm_48c4d ld de, MovementData_48c63 .asm_48c4d ld a, $b - ld [H_DOWNARROWBLINKCNT2], a + ld [H_SPRITEINDEX], a call MoveSprite ld a, $2 - ld [W_CELADONGAMECORNERCURSCRIPT], a + ld [wCeladonGameCornerCurScript], 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) +MovementData_48c5a: + db NPC_MOVEMENT_DOWN + db NPC_MOVEMENT_RIGHT + db NPC_MOVEMENT_RIGHT + db NPC_MOVEMENT_UP + db NPC_MOVEMENT_RIGHT + db NPC_MOVEMENT_RIGHT + db NPC_MOVEMENT_RIGHT + db NPC_MOVEMENT_RIGHT + db $FF + +MovementData_48c63: + db NPC_MOVEMENT_RIGHT + db NPC_MOVEMENT_RIGHT + db NPC_MOVEMENT_RIGHT + db NPC_MOVEMENT_RIGHT + db NPC_MOVEMENT_RIGHT + db $FF + +CeladonGameCornerScript2: ld a, [wd730] bit 0, a ret nz xor a ld [wJoyIgnore], a ld a, HS_GAME_CORNER_ROCKET - ld [wcc4d], a + ld [wMissableObjectIndex], a predef HideObject - ld hl, wd126 + ld hl, wCurrentMapScriptFlags set 5, [hl] set 6, [hl] ld a, $0 - ld [W_CELADONGAMECORNERCURSCRIPT], a + ld [wCeladonGameCornerCurScript], a ret -CeladonGameCornerTextPointers: ; 48c8a (12:4c8a) +CeladonGameCornerTextPointers: dw CeladonGameCornerText1 dw CeladonGameCornerText2 dw CeladonGameCornerText3 @@ -119,289 +131,285 @@ CeladonGameCornerTextPointers: ; 48c8a (12:4c8a) dw CeladonGameCornerText12 dw CeladonGameCornerText13 -CeladonGameCornerText1: ; 48ca4 (12:4ca4) +CeladonGameCornerText1: TX_FAR _CeladonGameCornerText1 db "@" -CeladonGameCornerText2: ; 48ca9 (12:4ca9) - db $08 ; asm +CeladonGameCornerText2: + TX_ASM call CeladonGameCornerScript_48f1e ld hl, CeladonGameCornerText_48d22 call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a - jr nz, .asm_c650b ; 0x48cba + jr nz, .asm_48d0f ld b,COIN_CASE call IsItemInBag - jr z, .asm_ed086 ; 0x48cc1 + jr z, .asm_48d19 call Has9990Coins - jr nc, .asm_31338 ; 0x48cc6 + jr nc, .asm_48d14 xor a - ldh [$9f], a - ldh [$a1], a + ld [hMoney], a + ld [hMoney + 2], a ld a, $10 - ldh [$a0], a + ld [hMoney + 1], a call HasEnoughMoney - jr nc, .asm_b6ef0 ; 0x48cd4 - ld hl, CeladonGameCornerText_48d31 ; $4d31 - jr .asm_e2afd ; 0x48cd9 -.asm_b6ef0 ; 0x48cdb + jr nc, .asm_48cdb + ld hl, CeladonGameCornerText_48d31 + jr .asm_48d1c +.asm_48cdb xor a - ldh [$9f], a - ldh [$a1], a + ld [hMoney], a + ld [hMoney + 2], a ld a, $10 - ldh [$a0], a - ld hl, $ffa1 + ld [hMoney + 1], a + ld hl, hMoney + 2 ld de, wPlayerMoney + 2 ld c, $3 predef SubBCDPredef xor a - ldh [$9f], a - ldh [$a0], a + ld [hUnusedCoinsByte], a + ld [hCoins], a ld a, $50 - ldh [$a1], a + ld [hCoins + 1], a ld de, wPlayerCoins + 1 - ld hl, $ffa1 + ld hl, hCoins + 1 ld c, $2 predef AddBCDPredef call CeladonGameCornerScript_48f1e ld hl, CeladonGameCornerText_48d27 - jr .asm_e2afd ; 0x48d0d -.asm_c650b ; 0x48d0f + jr .asm_48d1c +.asm_48d0f ld hl, CeladonGameCornerText_48d2c - jr .asm_e2afd ; 0x48d12 -.asm_31338 ; 0x48d14 + jr .asm_48d1c +.asm_48d14 ld hl, CeladonGameCornerText_48d36 - jr .asm_e2afd ; 0x48d17 -.asm_ed086 ; 0x48d19 + jr .asm_48d1c +.asm_48d19 ld hl, CeladonGameCornerText_48d3b -.asm_e2afd ; 0x48d1c +.asm_48d1c call PrintText jp TextScriptEnd -CeladonGameCornerText_48d22: ; 48d22 (12:4d22) +CeladonGameCornerText_48d22: TX_FAR _CeladonGameCornerText_48d22 db "@" -CeladonGameCornerText_48d27: ; 48d27 (12:4d27) +CeladonGameCornerText_48d27: TX_FAR _CeladonGameCornerText_48d27 db "@" -CeladonGameCornerText_48d2c: ; 48d2c (12:4d2c) +CeladonGameCornerText_48d2c: TX_FAR _CeladonGameCornerText_48d2c db "@" -CeladonGameCornerText_48d31: ; 48d31 (12:4d31) +CeladonGameCornerText_48d31: TX_FAR _CeladonGameCornerText_48d31 db "@" -CeladonGameCornerText_48d36: ; 48d36 (12:4d36) +CeladonGameCornerText_48d36: TX_FAR _CeladonGameCornerText_48d36 db "@" -CeladonGameCornerText_48d3b: ; 48d3b (12:4d3b) +CeladonGameCornerText_48d3b: TX_FAR _CeladonGameCornerText_48d3b db "@" -CeladonGameCornerText3: ; 48d40 (12:4d40) +CeladonGameCornerText3: TX_FAR _CeladonGameCornerText3 db "@" -CeladonGameCornerText4: ; 48d45 (12:4d45) +CeladonGameCornerText4: TX_FAR _CeladonGameCornerText4 db "@" -CeladonGameCornerText5: ; 48d4a (12:4d4a) - db $08 ; asm - ld a, [wd77e] - bit 2, a - jr nz, .asm_d0957 ; 0x48d50 +CeladonGameCornerText5: + TX_ASM + CheckEvent EVENT_GOT_10_COINS + jr nz, .asm_48d89 ld hl, CeladonGameCornerText_48d9c call PrintText ld b, COIN_CASE call IsItemInBag - jr z, .asm_5aef9 ; 0x48d5d + jr z, .asm_48d93 call Has9990Coins - jr nc, .asm_98546 ; 0x48d62 + jr nc, .asm_48d8e xor a - ldh [$9f], a - ldh [$a0], a + ld [hUnusedCoinsByte], a + ld [hCoins], a ld a, $10 - ldh [$a1], a + ld [hCoins + 1], a ld de, wPlayerCoins + 1 - ld hl, $ffa1 + ld hl, hCoins + 1 ld c, $2 predef AddBCDPredef - ld hl, wd77e - set 2, [hl] + SetEvent EVENT_GOT_10_COINS ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, Received10CoinsText - jr .asm_c7d1a ; 0x48d87 -.asm_d0957 ; 0x48d89 + jr .asm_48d96 +.asm_48d89 ld hl, CeladonGameCornerText_48dac - jr .asm_c7d1a ; 0x48d8c -.asm_98546 ; 0x48d8e + jr .asm_48d96 +.asm_48d8e ld hl, CeladonGameCornerText_48da7 - jr .asm_c7d1a ; 0x48d91 -.asm_5aef9 ; 0x48d93 + jr .asm_48d96 +.asm_48d93 ld hl, CeladonGameCornerText_48f19 -.asm_c7d1a ; 0x48d96 +.asm_48d96 call PrintText jp TextScriptEnd -CeladonGameCornerText_48d9c: ; 48d9c (12:4d9c) +CeladonGameCornerText_48d9c: TX_FAR _CeladonGameCornerText_48d9c db "@" -Received10CoinsText: ; 48da1 (12:4da1) +Received10CoinsText: TX_FAR _Received10CoinsText - db $0B, "@" + TX_SFX_ITEM_1 + db "@" -CeladonGameCornerText_48da7: ; 48da7 (12:4da7) +CeladonGameCornerText_48da7: TX_FAR _CeladonGameCornerText_48da7 db "@" -CeladonGameCornerText_48dac: ; 48dac (12:4dac) +CeladonGameCornerText_48dac: TX_FAR _CeladonGameCornerText_48dac db "@" -CeladonGameCornerText6: ; 48db1 (12:4db1) +CeladonGameCornerText6: 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 +CeladonGameCornerText7: + TX_ASM + CheckEvent EVENT_BEAT_ERIKA + ld hl, CeladonGameCornerText_48dca + jr z, .asm_48dc4 + ld hl, CeladonGameCornerText_48dcf +.asm_48dc4 call PrintText jp TextScriptEnd -CeladonGameCornerText_48dca: ; 48dca (12:4dca) +CeladonGameCornerText_48dca: TX_FAR _CeladonGameCornerText_48dca db "@" -CeladonGameCornerText_48dcf: ; 48dcf (12:4dcf) +CeladonGameCornerText_48dcf: TX_FAR _CeladonGameCornerText_48dcf db "@" -CeladonGameCornerText8: ; 48dd4 (12:4dd4) +CeladonGameCornerText8: TX_FAR _CeladonGameCornerText8 db "@" -CeladonGameCornerText9: ; 48dd9 (12:4dd9) - db $08 ; asm - ld a, [wd77e] - bit 4, a - jr nz, .asm_ed8bc ; 0x48ddf +CeladonGameCornerText9: + TX_ASM + CheckEvent EVENT_GOT_20_COINS_2 + jr nz, .asm_48e13 ld hl, CeladonGameCornerText_48e26 call PrintText ld b, COIN_CASE call IsItemInBag - jr z, .asm_df794 ; 0x48dec + jr z, .asm_48e1d call Has9990Coins - jr nc, .asm_f17c3 ; 0x48df1 + jr nc, .asm_48e18 xor a - ldh [$9f], a - ldh [$a0], a + ld [hUnusedCoinsByte], a + ld [hCoins], a ld a, $20 - ldh [$a1], a + ld [hCoins + 1], a ld de, wPlayerCoins + 1 - ld hl, $ffa1 + ld hl, hCoins + 1 ld c, $2 predef AddBCDPredef - ld hl, wd77e - set 4, [hl] + SetEvent EVENT_GOT_20_COINS_2 ld hl, Received20CoinsText - jr .asm_0ddc2 ; 0x48e11 -.asm_ed8bc ; 0x48e13 + jr .asm_48e20 +.asm_48e13 ld hl, CeladonGameCornerText_48e36 - jr .asm_0ddc2 ; 0x48e16 -.asm_f17c3 ; 0x48e18 + jr .asm_48e20 +.asm_48e18 ld hl, CeladonGameCornerText_48e31 - jr .asm_0ddc2 ; 0x48e1b -.asm_df794 ; 0x48e1d + jr .asm_48e20 +.asm_48e1d ld hl, CeladonGameCornerText_48f19 -.asm_0ddc2 ; 0x48e20 +.asm_48e20 call PrintText jp TextScriptEnd -CeladonGameCornerText_48e26: ; 48e26 (12:4e26) +CeladonGameCornerText_48e26: TX_FAR _CeladonGameCornerText_48e26 db "@" -Received20CoinsText: ; 48e2b (12:4e2b) +Received20CoinsText: TX_FAR _Received20CoinsText - db $0B, "@" + TX_SFX_ITEM_1 + db "@" -CeladonGameCornerText_48e31: ; 48e31 (12:4e31) +CeladonGameCornerText_48e31: TX_FAR _CeladonGameCornerText_48e31 db "@" -CeladonGameCornerText_48e36: ; 48e36 (12:4e36) +CeladonGameCornerText_48e36: 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 +CeladonGameCornerText10: + TX_ASM + CheckEvent EVENT_GOT_20_COINS + jr nz, .asm_48e75 + ld hl, CeladonGameCornerText_48e88 call PrintText ld b,COIN_CASE call IsItemInBag - jr z, .asm_4fb0c ; 0x48e4e + jr z, .asm_48e7f call Has9990Coins - jr z, .asm_9505a ; 0x48e53 + jr z, .asm_48e7a xor a - ldh [$9f], a - ldh [$a0], a + ld [hUnusedCoinsByte], a + ld [hCoins], a ld a, $20 - ldh [$a1], a + ld [hCoins + 1], a ld de, wPlayerCoins + 1 - ld hl, $ffa1 + ld hl, hCoins + 1 ld c, $2 predef AddBCDPredef - ld hl, wd77e - set 3, [hl] + SetEvent EVENT_GOT_20_COINS ld hl, CeladonGameCornerText_48e8d - jr .asm_78d65 ; 0x48e73 -.asm_ff080 ; 0x48e75 + jr .asm_48e82 +.asm_48e75 ld hl, CeladonGameCornerText_48e98 - jr .asm_78d65 ; 0x48e78 -.asm_9505a ; 0x48e7a + jr .asm_48e82 +.asm_48e7a ld hl, CeladonGameCornerText_48e93 - jr .asm_78d65 ; 0x48e7d -.asm_4fb0c ; 0x48e7f + jr .asm_48e82 +.asm_48e7f ld hl, CeladonGameCornerText_48f19 -.asm_78d65 ; 0x48e82 +.asm_48e82 call PrintText jp TextScriptEnd -CeladonGameCornerText_48e88: ; 48e88 (12:4e88) +CeladonGameCornerText_48e88: TX_FAR _CeladonGameCornerText_48e88 db "@" -CeladonGameCornerText_48e8d: ; 48e8d (12:4e8d) - TX_FAR _CeladonGameCornerText_48e8d ; 0x9dceb - db $0B, "@" +CeladonGameCornerText_48e8d: + TX_FAR _CeladonGameCornerText_48e8d + TX_SFX_ITEM_1 + db "@" -CeladonGameCornerText_48e93: ; 48e93 (12:4e93) +CeladonGameCornerText_48e93: TX_FAR _CeladonGameCornerText_48e93 db "@" -CeladonGameCornerText_48e98: ; 48e98 (12:4e98) +CeladonGameCornerText_48e98: TX_FAR _CeladonGameCornerText_48e98 db "@" -CeladonGameCornerText11: ; 48e9d (12:4e9d) - db $08 ; asm +CeladonGameCornerText11: + TX_ASM ld hl, CeladonGameCornerText_48ece call PrintText ld hl, wd72d @@ -410,89 +418,88 @@ CeladonGameCornerText11: ; 48e9d (12:4e9d) ld hl, CeladonGameCornerText_48ed3 ld de, CeladonGameCornerText_48ed3 call SaveEndBattleTextPointers - ldh a, [$8c] + ld a, [H_SPRITEINDEX] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters xor a - ldh [$b4], a - ldh [$b3], a - ldh [$b2], a + ld [hJoyHeld], a + ld [hJoyPressed], a + ld [hJoyReleased], a ld a, $1 - ld [W_CELADONGAMECORNERCURSCRIPT], a + ld [wCeladonGameCornerCurScript], a jp TextScriptEnd -CeladonGameCornerText_48ece: ; 48ece (12:4ece) +CeladonGameCornerText_48ece: TX_FAR _CeladonGameCornerText_48ece db "@" -CeladonGameCornerText_48ed3: ; 48ed3 (12:4ed3) +CeladonGameCornerText_48ed3: TX_FAR _CeladonGameCornerText_48ed3 db "@" -CeladonGameCornerText13: ; 48ed8 (12:4ed8) +CeladonGameCornerText13: TX_FAR _CeladonGameCornerText_48ed8 db "@" -CeladonGameCornerText12: ; 48edd (12:4edd) - db $08 ; asm +CeladonGameCornerText12: + TX_ASM ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, CeladonGameCornerText_48f09 call PrintText call WaitForSoundToFinish - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound call WaitForSoundToFinish - ld hl, wd77e - set 1, [hl] + SetEvent EVENT_FOUND_ROCKET_HIDEOUT ld a, $43 - ld [wd09f], a - ld bc, $0208 + ld [wNewTileBlockID], a + lb bc, 2, 8 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 +CeladonGameCornerText_48f09: + TX_FAR _CeladonGameCornerText_48f09 + TX_ASM + ld a, SFX_SWITCH call PlaySound call WaitForSoundToFinish jp TextScriptEnd -CeladonGameCornerText_48f19: ; 48f19 (12:4f19) +CeladonGameCornerText_48f19: TX_FAR _CeladonGameCornerText_48f19 db "@" -CeladonGameCornerScript_48f1e: ; 48f1e (12:4f1e) +CeladonGameCornerScript_48f1e: ld hl, wd730 set 6, [hl] - hlCoord 11, 0 + coord hl, 11, 0 ld b, $5 ld c, $7 call TextBoxBorder call UpdateSprites - hlCoord 12, 1 - ld b, $4 - ld c, $7 + coord hl, 12, 1 + ld b, 4 + ld c, 7 call ClearScreenArea - hlCoord 12, 2 + coord hl, 12, 2 ld de, GameCornerMoneyText call PlaceString - hlCoord 12, 3 + coord hl, 12, 3 ld de, GameCornerBlankText1 call PlaceString - hlCoord 12, 3 + coord hl, 12, 3 ld de, wPlayerMoney ld c, $a3 call PrintBCDNumber - hlCoord 12, 4 + coord hl, 12, 4 ld de, GameCornerCoinText call PlaceString - hlCoord 12, 5 + coord hl, 12, 5 ld de, GameCornerBlankText2 call PlaceString - hlCoord 15, 5 + coord hl, 15, 5 ld de, wPlayerCoins ld c, $82 call PrintBCDNumber @@ -500,21 +507,21 @@ CeladonGameCornerScript_48f1e: ; 48f1e (12:4f1e) res 6, [hl] ret -GameCornerMoneyText: ; 48f7a (12:4f7a) +GameCornerMoneyText: db "MONEY@" -GameCornerCoinText: ; 48f80 (12:4f80) +GameCornerCoinText: db "COIN@" -GameCornerBlankText1: ; 48f85 (12:4f85) +GameCornerBlankText1: db " @" -GameCornerBlankText2: ; 48f8d (12:4f8d) +GameCornerBlankText2: db " @" -Has9990Coins: ; 48f95 (12:4f95) +Has9990Coins: ld a, $99 - ld [$ffa0], a + ld [hCoins], a ld a, $90 - ld [$ffa1], a + ld [hCoins + 1], a jp HasEnoughCoins |