diff options
Diffstat (limited to 'scripts')
55 files changed, 1870 insertions, 923 deletions
diff --git a/scripts/billshouse.asm b/scripts/billshouse.asm index 4f01021e..5d6d668f 100755 --- a/scripts/billshouse.asm +++ b/scripts/billshouse.asm @@ -1,8 +1,10 @@ BillsHouseScript: ; 1e76a (7:676a) + call BillsHouseScript_1e09e call EnableAutoTextBoxDrawing ld a, [W_BILLSHOUSECURSCRIPT] ld hl, BillsHouseScriptPointers - jp JumpTable + call JumpTable + ret BillsHouseScriptPointers: ; 1e776 (7:6776) dw BillsHouseScript0 @@ -11,21 +13,65 @@ BillsHouseScriptPointers: ; 1e776 (7:6776) dw BillsHouseScript3 dw BillsHouseScript4 dw BillsHouseScript5 + dw BillsHouseScript6 + dw BillsHouseScript7 + dw BillsHouseScript8 + dw BillsHouseScript9 + +BillsHouseScript_1e09e: + ld hl, wPreventBlackout + bit 7, [hl] + set 7, [hl] + ret nz + ld hl, wd7f2 + bit 5, [hl] + jr z, .asm_1e0af + jr .asm_1e0b3 + +.asm_1e0af + ld a, $0 + jr .asm_1e0b5 + +.asm_1e0b3 + ld a, $9 +.asm_1e0b5 + ld [W_BILLSHOUSECURSCRIPT], a + ret BillsHouseScript0: ; 1e782 (7:6782) + ld a, [wd472] + bit 7, a + jr z, .asm_1e0d2 + callab Func_fce73 + jr c, .asm_1e0d2 + callab Func_f24d5 +.asm_1e0d2 + xor a + ld [wJoyIgnore], a + ld a, $1 + ld [W_BILLSHOUSECURSCRIPT], a ret BillsHouseScript1: ; 1e783 (7:6783) + ret + +BillsHouseScript2: + ld a, $ff + ld [wJoyIgnore], a ld a, [wSpriteStateData1 + 9] and a ; cp SPRITE_FACING_DOWN ld de, MovementData_1e79c jr nz, .notDown + call CheckPikachuFollowingPlayer + jr nz, .asm_1e0f8 + callab Func_f250b +.asm_1e0f8 ld de, MovementData_1e7a0 .notDown ld a, $1 ld [H_SPRITEINDEX], a call MoveSprite - ld a, $2 + ld a, $3 ld [W_BILLSHOUSECURSCRIPT], a ret @@ -44,25 +90,58 @@ MovementData_1e7a0: ; 1e7a0 (7:67a0) db NPC_MOVEMENT_UP db $FF -BillsHouseScript2: ; 1e7a6 (7:67a6) +BillsHouseScript3: ; 1e7a6 (7:67a6) ld a, [wd730] bit 0, a ret nz ld a, HS_BILL_POKEMON ld [wMissableObjectIndex], a predef HideObject - SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR + call CheckPikachuFollowingPlayer + jr z, .asm_1e13e + ld hl, PikachuMovementData_1e14d + ld a, [wSpriteStateData1 + 9] + and a ; cp SPRITE_FACING_DOWN + jr nz, .asm_1e133 + ld hl, PikachuMovementData_1e152 +.asm_1e133 + call Func_159b + callab InitializePikachuTextID +.asm_1e13e xor a ld [wJoyIgnore], a - ld a, $3 + SetEvent EVENT_BILL_SAID_USE_CELL_SEPARATOR + ld a, $4 ld [W_BILLSHOUSECURSCRIPT], a ret -BillsHouseScript3: ; 1e7c5 (7:67c5) +PikachuMovementData_1e14d: + db $00 + db $1e + db $1e + db $1e + db $3f + +PikachuMovementData_1e152: + db $00 + db $1e + db $1f + db $1e + db $1e + db $20 + db $36 + db $3f + +BillsHouseScript4: ; 1e7c5 (7:67c5) CheckEvent EVENT_USED_CELL_SEPARATOR_ON_BILL ret z - ld a, $f0 + ld a, $fc ld [wJoyIgnore], a + ld a, $5 + ld [W_BILLSHOUSECURSCRIPT], a + ret + +BillsHouseScript5: ld a, $2 ld [wSpriteIndex], a ld a, $c @@ -79,11 +158,30 @@ BillsHouseScript3: ; 1e7c5 (7:67c5) predef ShowObject ld c, 8 call DelayFrames + ld hl, wd472 + bit 7, [hl] + jr z, .asm_1e1c6 + call CheckPikachuFollowingPlayer + jr z, .asm_1e1c6 + ld a, $2 + ld [H_SPRITEINDEX], a + ld a, SPRITE_FACING_DOWN + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + ld hl, PikachuMovementData_1e1a9 + call Func_159b + ld a, $f + ld [wEmotionBubbleSpriteIndex], a + ld a, $0 + ld [wWhichEmotionBubble], a + predef EmotionBubble + callab InitializePikachuTextID +.asm_1e1c6 ld a, $2 ld [H_SPRITEINDEX], a ld de, MovementData_1e807 call MoveSprite - ld a, $4 + ld a, $6 ld [W_BILLSHOUSECURSCRIPT], a ret @@ -95,26 +193,67 @@ MovementData_1e807: ; 1e807 (7:6807) db NPC_MOVEMENT_DOWN db $FF -BillsHouseScript4: ; 1e80d (7:680d) +PikachuMovementData_1e1a9: + db $00 + db $37 + db $3f + +BillsHouseScript6: ; 1e80d (7:680d) ld a, [wd730] bit 0, a ret nz - xor a - ld [wJoyIgnore], a SetEvent EVENT_MET_BILL_2 ; this event seems redundant SetEvent EVENT_MET_BILL - ld a, $0 + ld a, $7 ld [W_BILLSHOUSECURSCRIPT], a ret -BillsHouseScript5: ; 1e827 (7:6827) - ld a, $4 +BillsHouseScript7: + xor a + ld [wPlayerMovingDirection], a + ld a, SPRITE_FACING_UP + ld [wSpriteStateData1 + 9], a + ld a, $FF ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + ld de, RLE_1e219 + ld hl, wSimulatedJoypadStatesEnd + call DecodeRLEList + dec a + ld [wSimulatedJoypadStatesIndex], a + call StartSimulatingJoypadStates + ld a, $8 + ld [W_BILLSHOUSECURSCRIPT], a + ret + +RLE_1e219: + db D_RIGHT,$3 + db $FF + +BillsHouseScript8: + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + xor a + ld [wPlayerMovingDirection], a + ld a, SPRITE_FACING_UP + ld [wSpriteStateData1 + 9], a + ld a, $2 + ld [H_SPRITEINDEX], a + ld a, SPRITE_FACING_DOWN + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + xor a + ld [wJoyIgnore], a + ld a, $2 ld [hSpriteIndexOrTextID], a call DisplayTextID - ld a, $0 + ld a, $9 ld [W_BILLSHOUSECURSCRIPT], a ret +BillsHouseScript9: ; 1e827 (7:6827) + ret + BillsHouseTextPointers: ; 1e834 (7:6834) dw BillsHouseText1 dw BillsHouseText2 @@ -122,91 +261,20 @@ BillsHouseTextPointers: ; 1e834 (7:6834) dw BillsHouseText4 BillsHouseText4: ; 1e83c (7:683c) - db $fd + TX_FAR _BillsHouseDontLeaveText + db "@" BillsHouseText1: ; 1e83d (7:683d) TX_ASM - ld hl, BillsHouseText_1e865 - call PrintText - call YesNoChoice - ld a, [wCurrentMenuItem] - and a - jr nz, .asm_1e85a -.asm_1e84d - ld hl, BillsHouseText_1e86a - call PrintText - ld a, $1 - ld [W_BILLSHOUSECURSCRIPT], a - jr .asm_1e862 -.asm_1e85a - ld hl, BillsHouseText_1e86f - call PrintText - jr .asm_1e84d -.asm_1e862 + callba Func_f2418 jp TextScriptEnd -BillsHouseText_1e865: ; 1e865 (7:6865) - TX_FAR _BillsHouseText_1e865 - db "@" - -BillsHouseText_1e86a: ; 1e86a (7:686a) - TX_FAR _BillsHouseText_1e86a - db "@" - -BillsHouseText_1e86f: ; 1e86f (7:686f) - TX_FAR _BillsHouseText_1e86f - db "@" - BillsHouseText2: ; 1e874 (7:6874) TX_ASM - CheckEvent EVENT_GOT_SS_TICKET - jr nz, .asm_1e8a9 - ld hl, BillThankYouText - call PrintText - lb bc, S_S_TICKET, 1 - call GiveItem - jr nc, .BagFull - ld hl, SSTicketReceivedText - call PrintText - SetEvent EVENT_GOT_SS_TICKET - ld a, HS_CERULEAN_GUARD_1 - ld [wMissableObjectIndex], a - predef ShowObject - ld a, HS_CERULEAN_GUARD_2 - ld [wMissableObjectIndex], a - predef HideObject -.asm_1e8a9 - ld hl, BillsHouseText_1e8cb - call PrintText - jr .asm_1e8b7 -.BagFull - ld hl, SSTicketNoRoomText - call PrintText -.asm_1e8b7 + callba Func_f244a jp TextScriptEnd -BillThankYouText: ; 1e8ba (7:68ba) - TX_FAR _BillThankYouText - db "@" - -SSTicketReceivedText: ; 1e8bf (7:68bf) - TX_FAR _SSTicketReceivedText - db $11, $6, "@" - -SSTicketNoRoomText: ; 1e8c6 (7:68c6) - TX_FAR _SSTicketNoRoomText - db "@" - -BillsHouseText_1e8cb: ; 1e8cb (7:68cb) - TX_FAR _BillsHouseText_1e8cb - db "@" - BillsHouseText3: ; 1e8d0 (7:68d0) TX_ASM - ld hl, BillsHouseText_1e8da - call PrintText + callba Func_f24a2 jp TextScriptEnd - -BillsHouseText_1e8da: ; 1e8da (7:68da) - TX_FAR _BillsHouseText_1e8da - db "@" diff --git a/scripts/billshouse2.asm b/scripts/billshouse2.asm index 6f62a79f..87a39969 100755 --- a/scripts/billshouse2.asm +++ b/scripts/billshouse2.asm @@ -87,7 +87,7 @@ Func_f24ae: ; f24ae ld a, [wCurMap] cp BILLS_HOUSE jr nz, .asm_f24d2 - call CheckPikachuAsleep + call CheckPikachuFollowingPlayer jr z, .asm_f24d2 ld a, [W_BILLSHOUSECURSCRIPT] cp $5 @@ -120,7 +120,7 @@ Func_f24d5: ld a, $1 ld [wWhichEmotionBubble], a predef EmotionBubble - call SetPikachuAsleep + call DisablePikachuFollowingPlayer callab InitializePikachuTextID ret diff --git a/scripts/celadondiner.asm b/scripts/celadondiner.asm index be1ed4c8..944a0952 100755 --- a/scripts/celadondiner.asm +++ b/scripts/celadondiner.asm @@ -27,39 +27,5 @@ CeladonDinerText4: ; 4916e (12:516e) CeladonDinerText5: ; 49173 (12:5173) TX_ASM - CheckEvent EVENT_GOT_COIN_CASE - jr nz, .asm_eb14d - ld hl, CeladonDinerText_491a7 - call PrintText - lb bc, COIN_CASE, 1 - call GiveItem - jr nc, .BagFull - SetEvent EVENT_GOT_COIN_CASE - ld hl, ReceivedCoinCaseText - call PrintText - jr .asm_68b61 -.BagFull - ld hl, CoinCaseNoRoomText - call PrintText - jr .asm_68b61 -.asm_eb14d - ld hl, CeladonDinerText_491b7 - call PrintText -.asm_68b61 + callab Func_f1f31 jp TextScriptEnd - -CeladonDinerText_491a7: ; 491a7 (12:51a7) - TX_FAR _CeladonDinerText_491a7 - db "@" - -ReceivedCoinCaseText: ; 491ac (12:51ac) - TX_FAR _ReceivedCoinCaseText - db $11, "@" - -CoinCaseNoRoomText: ; 491b2 (12:51b2) - TX_FAR _CoinCaseNoRoomText - db "@" - -CeladonDinerText_491b7: ; 491b7 (12:51b7) - TX_FAR _CeladonDinerText_491b7 - db "@" diff --git a/scripts/celadondiner2.asm b/scripts/celadondiner2.asm new file mode 100755 index 00000000..cfab218b --- /dev/null +++ b/scripts/celadondiner2.asm @@ -0,0 +1,38 @@ +Func_f1f31: + CheckEvent EVENT_GOT_COIN_CASE + jr nz, .asm_eb14d + ld hl, CeladonDinerText_491a7 + call PrintText + lb bc, COIN_CASE, 1 + call GiveItem + jr nc, .BagFull + SetEvent EVENT_GOT_COIN_CASE + ld hl, ReceivedCoinCaseText + call PrintText + jr .asm_68b61 +.BagFull + ld hl, CoinCaseNoRoomText + call PrintText + jr .asm_68b61 +.asm_eb14d + ld hl, CeladonDinerText_491b7 + call PrintText +.asm_68b61 + ret + +CeladonDinerText_491a7: ; 491a7 (12:51a7) + TX_FAR _CeladonDinerText_491a7 + db "@" + +ReceivedCoinCaseText: ; 491ac (12:51ac) + TX_FAR _ReceivedCoinCaseText + TX_SFX_KEY_ITEM + db "@" + +CoinCaseNoRoomText: ; 491b2 (12:51b2) + TX_FAR _CoinCaseNoRoomText + db "@" + +CeladonDinerText_491b7: ; 491b7 (12:51b7) + TX_FAR _CeladonDinerText_491b7 + db "@" diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm index 5fc9cf97..0013be1b 100755 --- a/scripts/celadongamecorner.asm +++ b/scripts/celadongamecorner.asm @@ -71,8 +71,12 @@ CeladonGameCornerScript1: ; 48c19 (12:4c19) .asm_48c43 ld a, [wXCoord] cp $8 - jr nz, .asm_48c4d + jr nz, .pikachu ld de, MovementData_48c63 + jr .asm_48c4d +.pikachu + callab Func_f1f23 + ld de, MovementData_48c5a .asm_48c4d ld a, $b ld [H_SPRITEINDEX], a @@ -85,8 +89,8 @@ MovementData_48c5a: ; 48c5a (12:4c5a) db NPC_MOVEMENT_DOWN db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_UP db NPC_MOVEMENT_RIGHT + db NPC_MOVEMENT_UP db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT db NPC_MOVEMENT_RIGHT @@ -144,7 +148,7 @@ CeladonGameCornerText2: ; 48ca9 (12:4ca9) ld a, [wCurrentMenuItem] and a jr nz, .asm_48d0f - ld b,COIN_CASE + ld b, COIN_CASE call IsItemInBag jr z, .asm_48d19 call Has9990Coins @@ -267,7 +271,8 @@ CeladonGameCornerText_48d9c: ; 48d9c (12:4d9c) Received10CoinsText: ; 48da1 (12:4da1) TX_FAR _Received10CoinsText - db $0B, "@" + TX_SFX_ITEM + db "@" CeladonGameCornerText_48da7: ; 48da7 (12:4da7) TX_FAR _CeladonGameCornerText_48da7 @@ -360,7 +365,7 @@ CeladonGameCornerText10: ; 48e3b (12:4e3b) jr nz, .asm_48e75 ld hl, CeladonGameCornerText_48e88 call PrintText - ld b,COIN_CASE + ld b, COIN_CASE call IsItemInBag jr z, .asm_48e7f call Has9990Coins @@ -472,13 +477,11 @@ CeladonGameCornerScript_48f1e: ; 48f1e (12:4f1e) ld hl, wd730 set 6, [hl] coord hl, 11, 0 - ld b, $5 - ld c, $7 + lb bc, 5, 7 call TextBoxBorder call UpdateSprites coord hl, 12, 1 - ld b, 4 - ld c, 7 + lb bc, 4, 7 call ClearScreenArea coord hl, 12, 2 ld de, GameCornerMoneyText @@ -488,7 +491,7 @@ CeladonGameCornerScript_48f1e: ; 48f1e (12:4f1e) call PlaceString coord hl, 12, 3 ld de, wPlayerMoney - ld c, $a3 + ld c, 3 | MONEY_SIGN | LEADING_ZEROES call PrintBCDNumber coord hl, 12, 4 ld de, GameCornerCoinText diff --git a/scripts/celadonmansion1.asm b/scripts/celadonmansion1.asm index 857c2e42..b29ee196 100755 --- a/scripts/celadonmansion1.asm +++ b/scripts/celadonmansion1.asm @@ -1,5 +1,6 @@ CeladonMansion1Script: ; 48694 (12:4694) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret CeladonMansion1TextPointers: ; 48697 (12:4697) dw CeladonMansion1Text1 @@ -8,31 +9,39 @@ CeladonMansion1TextPointers: ; 48697 (12:4697) dw CeladonMansion1Text4 dw CeladonMansion1Text5 -CeladonMansion1_486a1: ; 486a1 (12:46a1) - call PlayCry - jp TextScriptEnd - CeladonMansion1Text1: ; 486a7 (12:46a7) TX_FAR _CeladonMansion1Text1 TX_ASM ld a, MEOWTH - jp CeladonMansion1_486a1 + call PlayCry + jp TextScriptEnd CeladonMansion1Text2: ; 486b1 (12:46b1) - TX_FAR _CeladonMansion1Text2 - db "@" + TX_ASM + callba Func_f1e70 + ld a, [wPikachuHappiness] + cp 251 + jr c, .asm_485d9 + ld c, 50 + call DelayFrames + ldpikacry e, PikachuCry23 + callab PlayPikachuSoundClip +.asm_485d9 + jp TextScriptEnd CeladonMansion1Text3: ; 486b6 (12:46b6) TX_FAR _CeladonMansion1Text3 TX_ASM ld a, CLEFAIRY - jp CeladonMansion1_486a1 + call PlayCry + jp TextScriptEnd CeladonMansion1Text4: ; 486c0 (12:46c0) TX_FAR _CeladonMansion1Text4 TX_ASM ld a, NIDORAN_F - jp CeladonMansion1_486a1 + call PlayCry + jp TextScriptEnd CeladonMansion1Text5: ; 486ca (12:46ca) TX_FAR _CeladonMansion1Text5 diff --git a/scripts/celadonmansion1_2.asm b/scripts/celadonmansion1_2.asm new file mode 100755 index 00000000..0e1c2389 --- /dev/null +++ b/scripts/celadonmansion1_2.asm @@ -0,0 +1,78 @@ +Func_f1e70: + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, CeladonMansion1Text_f1e96 + call PrintText + callab IsStarterPikachuInOurParty + ret nc + ld hl, CeladonMansionText_f1e9c + call PrintText + ld a, $0 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + call Func_f1ea2 + call PrintText + ret + +CeladonMansion1Text_f1e96: + TX_FAR _CeladonMansion1Text2 + TX_WAIT_BUTTON + db "@" + +CeladonMansionText_f1e9c: + TX_FAR _CeladonMansion1Text6 + TX_BUTTON_SOUND + db "@" + +Func_f1ea2: + ld hl, PikachuHappinessThresholds_f1eb9 +.asm_f1ea5 + ld a, [hli] + inc hl + and a + jr z, .asm_f1eb5 + ld b, a + ld a, [wPikachuHappiness] + cp b + jr c, .asm_f1eb5 + inc hl + inc hl + jr .asm_f1ea5 + +.asm_f1eb5 + ld a, [hli] + ld h, [hl] + ld l, a + ret + +PikachuHappinessThresholds_f1eb9 + dw 51, CeladonMansion1Text_f1ed5 + dw 101, CeladonMansion1Text_f1eda + dw 131, CeladonMansion1Text_f1edf + dw 161, CeladonMansion1Text_f1ee4 + dw 201, CeladonMansion1Text_f1ee9 + dw 255, CeladonMansion1Text_f1eee + dbbw 0, $ff, CeladonMansion1Text_f1eee + +CeladonMansion1Text_f1ed5: + TX_FAR _CeladonMansion1Text7 + db "@" + +CeladonMansion1Text_f1eda: + TX_FAR _CeladonMansion1Text8 + db "@" + +CeladonMansion1Text_f1edf: + TX_FAR _CeladonMansion1Text9 + db "@" + +CeladonMansion1Text_f1ee4: + TX_FAR _CeladonMansion1Text10 + db "@" + +CeladonMansion1Text_f1ee9: + TX_FAR _CeladonMansion1Text11 + db "@" + +CeladonMansion1Text_f1eee: + TX_FAR _CeladonMansion1Text12 + db "@" diff --git a/scripts/celadonmansion3.asm b/scripts/celadonmansion3.asm index 11a8646d..191d9304 100755 --- a/scripts/celadonmansion3.asm +++ b/scripts/celadonmansion3.asm @@ -1,5 +1,13 @@ CeladonMansion3Script: ; 48790 (12:4790) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret + +CeladonMansion3_PokedexCount: + ld hl, wPokedexOwned + ld b, wPokedexOwnedEnd - wPokedexOwned + call CountSetBits + ld a, [wNumSetBits] + ret CeladonMansion3TextPointers: ; 48793 (12:4793) dw ProgrammerText @@ -12,31 +20,120 @@ CeladonMansion3TextPointers: ; 48793 (12:4793) dw GameFreakSignText ProgrammerText: ; 487a3 (12:47a3) + TX_ASM + call CeladonMansion3_PokedexCount + cp 150 + ld hl, CeladonMansion3Text_486f5 + jr nc, .print + ld hl, CeladonMansion3Text_486f0 +.print + call PrintText + jp TextScriptEnd + +CeladonMansion3Text_486f0: TX_FAR _ProgrammerText db "@" +CeladonMansion3Text_486f5: + TX_FAR _ProgrammerText2 + db "@" + GraphicArtistText: ; 487a8 (12:47a8) + TX_ASM + call CeladonMansion3_PokedexCount + cp 150 + jr nc, .completed + ld hl, CeladonMansion3Text_48757 + jr .print + +.completed + ld hl, CeladonMansion3Text_4875c + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .declined_print + call SaveScreenTilesToBuffer2 + xor a + ld [wUpdateSpritesEnabled], a + ld hl, wd730 + set 6, [hl] + callab Func_e8cb1 + ld hl, wd730 + res 6, [hl] + call GBPalWhiteOutWithDelay3 + call ReloadTilesetTilePatterns + call RestoreScreenTilesAndReloadTilePatterns + call LoadScreenTilesFromBuffer2 + call Delay3 + call GBPalNormal + ld hl, CeladonMansion3Text_4876b + ld a, [$ffdb] + and a + jr nz, .print + ld hl, CeladonMansion3Text_48766 + jr .print + +.declined_print + ld hl, CeladonMansion3Text_48761 +.print + call PrintText + jp TextScriptEnd + +CeladonMansion3Text_48757: TX_FAR _GraphicArtistText db "@" +CeladonMansion3Text_4875c: + TX_FAR _GraphicArtistText2 + db "@" + +CeladonMansion3Text_48761: + TX_FAR _GraphicArtistText3 + db "@" + +CeladonMansion3Text_48766: + TX_FAR _GraphicArtistText4 + db "@" + +CeladonMansion3Text_4876b: + TX_FAR _GraphicArtistText5 + db "@" + WriterText: ; 487ad (12:47ad) + TX_ASM + call CeladonMansion3_PokedexCount + cp 150 + ld hl, CeladonMansion3Text_48789 + jr nc, .print + ld hl, CeladonMansion3Text_48784 +.print + call PrintText + jp TextScriptEnd + +CeladonMansion3Text_48784: TX_FAR _WriterText db "@" +CeladonMansion3Text_48789: + TX_FAR _WriterText2 + db "@" + DirectorText: ; 487b2 (12:47b2) TX_ASM - + call CeladonMansion3_PokedexCount ; check pokédex - ld hl, wPokedexOwned - ld b, wPokedexOwnedEnd - wPokedexOwned - call CountSetBits - ld a, [wNumSetBits] cp 150 jr nc, .CompletedDex ld hl, .GameDesigner jr .done .CompletedDex ld hl, .CompletedDexText + call PrintText + call Delay3 + xor a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, .UnlockedDiplomaPrinting .done call PrintText jp TextScriptEnd @@ -47,25 +144,33 @@ DirectorText: ; 487b2 (12:47b2) .CompletedDexText TX_FAR _CompletedDexText - db $6 + TX_BUTTON_SOUND TX_ASM callab DisplayDiploma ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a jp TextScriptEnd -GameFreakPCText1: ; 487eb (12:47eb) - TX_FAR _CeladonMansion3Text5 +.UnlockedDiplomaPrinting + TX_FAR _CompletedDexText2 db "@" +GameFreakPCText1: ; 487eb (12:47eb) + TX_ASM + callba Func_f1ef3 + jp TextScriptEnd + GameFreakPCText2: ; 487f0 (12:47f0) - TX_FAR _CeladonMansion3Text6 - db "@" + TX_ASM + callba Func_f1eff + jp TextScriptEnd GameFreakPCText3: ; 487f5 (12:47f5) - TX_FAR _CeladonMansion3Text7 - db "@" + TX_ASM + callba Func_f1f0b + jp TextScriptEnd GameFreakSignText: ; 487fa (12:47fa) - TX_FAR _CeladonMansion3Text8 - db "@" + TX_ASM + callba Func_f1f17 + jp TextScriptEnd diff --git a/scripts/celadonmansion3_2.asm b/scripts/celadonmansion3_2.asm new file mode 100755 index 00000000..2d5069d1 --- /dev/null +++ b/scripts/celadonmansion3_2.asm @@ -0,0 +1,35 @@ +Func_f1ef3: + ld hl, CeladonMansion3Text_f1efa + call PrintText + ret + +CeladonMansion3Text_f1efa: ; 487eb (12:47eb) + TX_FAR _CeladonMansion3Text5 + db "@" + +Func_f1eff: + ld hl, CeladonMansion3Text_f1f06 + call PrintText + ret + +CeladonMansion3Text_f1f06: ; 487f0 (12:47f0) + TX_FAR _CeladonMansion3Text6 + db "@" + +Func_f1f0b: + ld hl, CeladonMansion3Text_f1f12 + call PrintText + ret + +CeladonMansion3Text_f1f12: ; 487f5 (12:47f5) + TX_FAR _CeladonMansion3Text7 + db "@" + +Func_f1f17: + ld hl, CeladonMansion3Text_f1f1e + call PrintText + ret + +CeladonMansion3Text_f1f1e: ; 487fa (12:47fa) + TX_FAR _CeladonMansion3Text8 + db "@" diff --git a/scripts/celadonmansion4.asm b/scripts/celadonmansion4.asm index f9045bcd..475baff3 100755 --- a/scripts/celadonmansion4.asm +++ b/scripts/celadonmansion4.asm @@ -1,5 +1,6 @@ CeladonMansion4Script: ; 4886b (12:486b) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret CeladonMansion4TextPointers: ; 4886e (12:486e) dw CeladonMansion4Text1 diff --git a/scripts/celadonmansion5.asm b/scripts/celadonmansion5.asm index 6d979e04..346eb6bb 100755 --- a/scripts/celadonmansion5.asm +++ b/scripts/celadonmansion5.asm @@ -1,5 +1,6 @@ CeladonMansion5Script: ; 1dd3a (7:5d3a) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret CeladonMansion5TextPointers: ; 1dd3d (7:5d3d) dw CeladonMansion5Text1 diff --git a/scripts/celadonmart1.asm b/scripts/celadonmart1.asm index 041af8b3..4f297a6e 100755 --- a/scripts/celadonmart1.asm +++ b/scripts/celadonmart1.asm @@ -1,5 +1,6 @@ CeladonMart1Script: ; 60f86 (18:4f86) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret CeladonMart1TextPointers: ; 60f89 (18:4f89) dw CeladonMart1Text1 diff --git a/scripts/celadonmart3.asm b/scripts/celadonmart3.asm index c6c6ecc7..49e5e84b 100755 --- a/scripts/celadonmart3.asm +++ b/scripts/celadonmart3.asm @@ -22,41 +22,9 @@ CeladonMart3TextPointers: ; 48228 (12:4228) CeladonMart3Text1: ; 4824a (12:424a) TX_ASM - CheckEvent EVENT_GOT_TM18 - jr nz, .asm_a5463 - ld hl, TM18PreReceiveText - call PrintText - lb bc, TM_18, 1 - call GiveItem - jr nc, .BagFull - SetEvent EVENT_GOT_TM18 - ld hl, ReceivedTM18Text - jr .asm_81359 -.BagFull - ld hl, TM18NoRoomText - jr .asm_81359 -.asm_a5463 - ld hl, TM18ExplanationText -.asm_81359 - call PrintText + callab Func_f1e30 jp TextScriptEnd -TM18PreReceiveText: ; 48278 (12:4278) - TX_FAR _TM18PreReceiveText - db "@" - -ReceivedTM18Text: ; 4827d (12:427d) - TX_FAR _ReceivedTM18Text - db $0B, "@" - -TM18ExplanationText: ; 48283 (12:4283) - TX_FAR _TM18ExplanationText - db "@" - -TM18NoRoomText: ; 48288 (12:4288) - TX_FAR _TM18NoRoomText - db "@" - CeladonMart3Text2: ; 4828d (12:428d) TX_FAR _CeladonMart3Text2 db "@" diff --git a/scripts/celadonmart3_2.asm b/scripts/celadonmart3_2.asm new file mode 100755 index 00000000..1c9f0db1 --- /dev/null +++ b/scripts/celadonmart3_2.asm @@ -0,0 +1,38 @@ +Func_f1e30 + CheckEvent EVENT_GOT_TM18 + jr nz, .asm_f1e54 + ld hl, CeladonMart3Text_f1e5b + call PrintText + lb bc, TM_18, 1 + call GiveItem + jr nc, .asm_f1e4f + SetEvent EVENT_GOT_TM18 + ld hl, CeladonMart3Text_f1e60 + jr .asm_f1e57 + +.asm_f1e4f + ld hl, CeladonMart3Text_f1e6b + jr .asm_f1e57 + +.asm_f1e54 + ld hl, CeladonMart3Text_f1e66 +.asm_f1e57 + call PrintText + ret + +CeladonMart3Text_f1e5b: + TX_FAR _TM18PreReceiveText + db "@" + +CeladonMart3Text_f1e60: + TX_FAR _ReceivedTM18Text + TX_SFX_ITEM + db "@" + +CeladonMart3Text_f1e66: + TX_FAR _TM18ExplanationText + db "@" + +CeladonMart3Text_f1e6b: + TX_FAR _TM18NoRoomText + db "@" diff --git a/scripts/celadonmart5.asm b/scripts/celadonmart5.asm index 9bd7f991..bf63a7cc 100755 --- a/scripts/celadonmart5.asm +++ b/scripts/celadonmart5.asm @@ -1,5 +1,6 @@ CeladonMart5Script: ; 49069 (12:5069) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret CeladonMart5TextPointers: ; 4906c (12:506c) dw CeladonMart5Text1 diff --git a/scripts/celadonmartroof.asm b/scripts/celadonmartroof.asm index 439ab62e..4d819be7 100755 --- a/scripts/celadonmartroof.asm +++ b/scripts/celadonmartroof.asm @@ -1,5 +1,6 @@ CeladonMartRoofScript: ; 483d5 (12:43d5) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret CeladonMartRoofScript_GetDrinksInBag: ; 483d8 (12:43d8) ; construct a list of all drinks in the player's bag @@ -71,7 +72,7 @@ CeladonMartRoofScript_GiveDrinkToGirl: ; 4840c (12:440c) ld hl, wd730 res 6, [hl] call HandleMenuInput - bit 1, a ; pressed b + bit BIT_B_BUTTON, a ; pressed b ret nz ld hl, wFilteredBagItems ld a, [wCurrentMenuItem] @@ -125,13 +126,16 @@ CeladonMartRoofScript_GiveDrinkToGirl: ; 4840c (12:440c) ret .bagFull ld hl, CeladonMartRoofText_48526 - jp PrintText + call PrintText + ret .alreadyGaveDrink ld hl, CeladonMartRoofText_4852c - jp PrintText + call PrintText + ret RemoveItemByIDBank12: ; 484e6 (12:44e6) - jpba RemoveItemByID + callba RemoveItemByID + ret CeladonMartRoofText_484ee: ; 484ee (12:44ee) TX_FAR _CeladonMartRoofText_484ee @@ -248,7 +252,7 @@ CeladonMartRoofText4: ; 4859d (12:459d) db "@" CeladonMartRoofText5: ; 485a2 (12:45a2) - db $f5 + TX_VENDING_MACHINE CeladonMartRoofText6: ; 485a3 (12:45a3) TX_FAR _CeladonMartRoofText6 diff --git a/scripts/celadonpokecenter.asm b/scripts/celadonpokecenter.asm index 1b8d3a1b..4ff71c43 100755 --- a/scripts/celadonpokecenter.asm +++ b/scripts/celadonpokecenter.asm @@ -7,12 +7,13 @@ CeladonPokecenterTextPointers: ; 488be (12:48be) dw CeladonPokecenterText2 dw CeladonPokecenterText3 dw CeladonPokecenterText4 + dw CeladonPokecenterText5 CeladonPokecenterText4: ; 488c6 (12:48c6) - db $f6 + TX_CABLE_CLUB_RECEPTIONIST CeladonPokecenterText1: ; 488c7 (12:48c7) - db $ff + TX_POKECENTER_NURSE CeladonPokecenterText2: ; 488c8 (12:48c8) TX_FAR _CeladonPokecenterText2 @@ -21,3 +22,8 @@ CeladonPokecenterText2: ; 488c8 (12:48c8) CeladonPokecenterText3: ; 488cd (12:48cd) TX_FAR _CeladonPokecenterText3 db "@" + +CeladonPokecenterText5: + TX_ASM + callab PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/celadonprizeroom.asm b/scripts/celadonprizeroom.asm index 2cfd01d0..980778fe 100755 --- a/scripts/celadonprizeroom.asm +++ b/scripts/celadonprizeroom.asm @@ -17,4 +17,4 @@ CeladonPrizeRoomText2: ; 49102 (12:5102) db "@" CeladonPrizeRoomText3: ; 49107 (12:5107) - db $f7 + TX_PRIZE_VENDOR diff --git a/scripts/ceruleanpokecenter.asm b/scripts/ceruleanpokecenter.asm index f4eb68ae..5ee5d4a2 100755 --- a/scripts/ceruleanpokecenter.asm +++ b/scripts/ceruleanpokecenter.asm @@ -10,10 +10,10 @@ CeruleanPokecenterTextPointers: ; 5c64b (17:464b) dw CeruleanPokecenterText5 CeruleanPokecenterText4: ; 5c653 (17:4653) - db $f6 + TX_CABLE_CLUB_RECEPTIONIST CeruleanPokecenterText1: ; 5c654 (17:4654) - db $ff + TX_POKECENTER_NURSE CeruleanPokecenterText2: ; 5c655 (17:4655) TX_FAR _CeruleanPokecenterText1 @@ -25,5 +25,5 @@ CeruleanPokecenterText3: ; 5c65a (17:465a) CeruleanPokecenterText5: TX_ASM - callab Func_f0f12 + callab PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/cinnabargym.asm b/scripts/cinnabargym.asm index c5d462b3..8ae77507 100755 --- a/scripts/cinnabargym.asm +++ b/scripts/cinnabargym.asm @@ -35,11 +35,14 @@ CinnabarGymScript_75792: ; 75792 (1d:5792) ld [wOpponentAfterWrongAnswer], a ret -CinnabarGymScript_757a0: ; 757a0 (1d:57a0) +CinnabarGymScript_74f48: ; 757a0 (1d:57a0) ld a, [hSpriteIndexOrTextID] ld [wTrainerHeaderFlagBit], a ret +CinnabarGymFlagAction: ; 757f1 (1d:57f1) + predef_jump FlagActionPredef + CinnabarGymScriptPointers: ; 757a6 (1d:57a6) dw CinnabarGymScript0 dw CinnabarGymScript1 @@ -55,12 +58,18 @@ CinnabarGymScript0: ; 757ae (1d:57ae) jr nz, .asm_757c3 ld a, PLAYER_DIR_DOWN ld [wPlayerMovingDirection], a + ld hl, PikachuMovementData_74f97 + ld b, SPRITE_FACING_DOWN + call CinnabarGymScript_74fa3 ld de, MovementData_757d7 jr .asm_757cb .asm_757c3 - ld de, MovementData_757da ld a, PLAYER_DIR_RIGHT ld [wPlayerMovingDirection], a + ld hl, PikachuMovementData_74f9e + ld b, SPRITE_FACING_RIGHT + call CinnabarGymScript_74fa3 + ld de, MovementData_757da .asm_757cb call MoveSprite ld a, $1 @@ -73,10 +82,39 @@ MovementData_757d7: ; 757d7 (1d:57d7) db NPC_MOVEMENT_UP db $FF +PikachuMovementData_74f97: + db $00 + db $20 + db $1e + db $35 + db $3f + MovementData_757da: ; 757da (1d:57da) db NPC_MOVEMENT_LEFT db $FF +PikachuMovementData_74f9e: + db $00 + db $1d + db $1f + db $38 + db $3f + +CinnabarGymScript_74fa3: + ld a, [wd472] + bit 7, a + ret z + push hl + push bc + callab GetPikachuFacingDirectionAndReturnToE + pop bc + pop hl + ld a, b + cp e + ret nz + call Func_159b + ret + CinnabarGymScript1: ; 757dc (1d:57dc) ld a, [wd730] bit 0, a @@ -88,52 +126,74 @@ CinnabarGymScript1: ; 757dc (1d:57dc) ld [hSpriteIndexOrTextID], a jp DisplayTextID -CinnabarGymFlagAction: ; 757f1 (1d:57f1) - predef_jump FlagActionPredef - CinnabarGymScript2: ; 757f6 (1d:57f6) + call CinnabarGymScript_753e9 ld a, [wIsInBattle] cp $ff jp z, CinnabarGymScript_75792 ld a, [wTrainerHeaderFlagBit] - ld [$ffdb], a - AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2 + sub 2 ld c, a ld b, FLAG_TEST - EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0 + EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED call CinnabarGymFlagAction ld a, c and a - jr nz, .asm_7581b + jr nz, .asm_7500d + ld a, [wTrainerHeaderFlagBit] + cp 2 + jr z, .asm_7500d + ld c, 30 + call DelayFrames + call CinnabarGymScript_75023 + call CinnabarGymScript_75041 call WaitForSoundToFinish ld a, SFX_GO_INSIDE call PlaySound call WaitForSoundToFinish -.asm_7581b + jr .asm_75013 +.asm_7500d + call CinnabarGymScript_75023 + call CinnabarGymScript_75041 +.asm_75013 + xor a + ld [wJoyIgnore], a + ld [wOpponentAfterWrongAnswer], a + ld a, $0 + ld [W_CINNABARGYMCURSCRIPT], a + ld [W_CURMAPSCRIPT], a + ret + +CinnabarGymScript_75023: ld a, [wTrainerHeaderFlagBit] ld [$ffdb], a - AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2 ld c, a ld b, FLAG_SET EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0 call CinnabarGymFlagAction + ret + +CinnabarGymScript_75032: ld a, [wTrainerHeaderFlagBit] - sub $2 - AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0 + ld [$ffdb], a + ld c, a + ld b, FLAG_TEST + EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0 + call CinnabarGymFlagAction + ret + +CinnabarGymScript_75041: + ld a, [wTrainerHeaderFlagBit] + sub 2 ld c, a ld b, FLAG_SET EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED call CinnabarGymFlagAction call UpdateCinnabarGymGateTileBlocks - xor a - ld [wJoyIgnore], a - ld [wOpponentAfterWrongAnswer], a - ld a, $0 - ld [W_CINNABARGYMCURSCRIPT], a - ld [W_CURMAPSCRIPT], a ret CinnabarGymScript3: ; 7584a (1d:584a) + call CinnabarGymScript_753e9 ld a, [wIsInBattle] cp $ff jp z, CinnabarGymScript_75792 @@ -184,7 +244,7 @@ CinnabarGymTextPointers: ; 7589f (1d:589f) dw ReceivedTM38Text dw TM38NoRoomText -CinnabarGymScript_758b7: ; 758b7 (1d:58b7) +CinnabarGymScript_750c3: ; 758b7 (1d:58b7) ld a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer @@ -225,7 +285,7 @@ CinnabarGymText1: ; 758df (1d:58df) call SaveEndBattleTextPointers ld a, $7 ld [wGymLeaderNo], a - jp CinnabarGymScript_758b7 + jp CinnabarGymScript_750c3 BlaineBattleText: ; 75914 (1d:5914) TX_FAR _BlaineBattleText @@ -257,7 +317,7 @@ TM38NoRoomText: ; 75934 (1d:5934) CinnabarGymText2: ; 75939 (1d:5939) TX_ASM - call CinnabarGymScript_757a0 + call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_0 jr nz, .asm_46bb4 ld hl, CinnabarGymText_7595f @@ -265,7 +325,7 @@ CinnabarGymText2: ; 75939 (1d:5939) ld hl, CinnabarGymText_75964 ld de, CinnabarGymText_75964 call SaveEndBattleTextPointers - jp CinnabarGymScript_758b7 + jp CinnabarGymScript_750c3 .asm_46bb4 ld hl, CinnabarGymText_75969 call PrintText @@ -285,16 +345,25 @@ CinnabarGymText_75969: ; 75969 (1d:5969) CinnabarGymText3: ; 7596e (1d:596e) TX_ASM - call CinnabarGymScript_757a0 + call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_1 - jr nz, .asm_4b406 + jr nz, .asm_751a8 + call CinnabarGymScript_753f3 + jr nz, .asm_75196 + CheckEvent EVENT_CINNABAR_GYM_GATE1_UNLOCKED + jr nz, .asm_75196 + ld e, $00 + jp CinnabarGymScript_753de + +.asm_75196 ld hl, CinnabarGymText_75994 call PrintText ld hl, CinnabarGymText_75999 ld de, CinnabarGymText_75999 call SaveEndBattleTextPointers - jp CinnabarGymScript_758b7 -.asm_4b406 + jp CinnabarGymScript_750c3 + +.asm_751a8 ld hl, CinnabarGymText_7599e call PrintText jp TextScriptEnd @@ -313,16 +382,24 @@ CinnabarGymText_7599e: ; 7599e (1d:599e) CinnabarGymText4: ; 759a3 (1d:59a3) TX_ASM - call CinnabarGymScript_757a0 + call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_2 - jr nz, .asm_c0673 + jr nz, .asm_751ee + call CinnabarGymScript_753f3 + jr nz, .asm_751dc + CheckEvent EVENT_CINNABAR_GYM_GATE2_UNLOCKED + jr nz, .asm_751dc + ld e, $1 + jp CinnabarGymScript_753de + +.asm_751dc ld hl, CinnabarGymText_759c9 call PrintText ld hl, CinnabarGymText_759ce ld de, CinnabarGymText_759ce call SaveEndBattleTextPointers - jp CinnabarGymScript_758b7 -.asm_c0673 + jp CinnabarGymScript_750c3 +.asm_751ee ld hl, CinnabarGymText_759d3 call PrintText jp TextScriptEnd @@ -341,16 +418,24 @@ CinnabarGymText_759d3: ; 759d3 (1d:59d3) CinnabarGymText5: ; 759d8 (1d:59d8) TX_ASM - call CinnabarGymScript_757a0 + call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_3 - jr nz, .asm_5cfd7 + jr nz, .asm_75234 + call CinnabarGymScript_753f3 + jr nz, .asm_75222 + CheckEvent EVENT_CINNABAR_GYM_GATE3_UNLOCKED + jr nz, .asm_75222 + ld e, $2 + jp CinnabarGymScript_753de + +.asm_75222 ld hl, CinnabarGymText_759fe call PrintText ld hl, CinnabarGymText_75a03 ld de, CinnabarGymText_75a03 call SaveEndBattleTextPointers - jp CinnabarGymScript_758b7 -.asm_5cfd7 + jp CinnabarGymScript_750c3 +.asm_75234 ld hl, CinnabarGymText_75a08 call PrintText jp TextScriptEnd @@ -369,15 +454,23 @@ CinnabarGymText_75a08: ; 75a08 (1d:5a08) CinnabarGymText6: ; 75a0d (1d:5a0d) TX_ASM - call CinnabarGymScript_757a0 + call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_4 jr nz, .asm_776b4 + call CinnabarGymScript_753f3 + jr nz, .asm_75222 + CheckEvent EVENT_CINNABAR_GYM_GATE4_UNLOCKED + jr nz, .asm_75222 + ld e, $3 + jp CinnabarGymScript_753de + +.asm_75222 ld hl, CinnabarGymText_75a33 call PrintText ld hl, CinnabarGymText_75a38 ld de, CinnabarGymText_75a38 call SaveEndBattleTextPointers - jp CinnabarGymScript_758b7 + jp CinnabarGymScript_750c3 .asm_776b4 ld hl, CinnabarGymText_75a3d call PrintText @@ -397,15 +490,23 @@ CinnabarGymText_75a3d: ; 75a3d (1d:5a3d) CinnabarGymText7: ; 75a42 (1d:5a42) TX_ASM - call CinnabarGymScript_757a0 + call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_5 jr nz, .asm_2f755 + call CinnabarGymScript_753f3 + jr nz, .asm_75222 + CheckEvent EVENT_CINNABAR_GYM_GATE5_UNLOCKED + jr nz, .asm_75222 + ld e, $4 + jp CinnabarGymScript_753de + +.asm_75222 ld hl, CinnabarGymText_75a68 call PrintText ld hl, CinnabarGymText_75a6d ld de, CinnabarGymText_75a6d call SaveEndBattleTextPointers - jp CinnabarGymScript_758b7 + jp CinnabarGymScript_750c3 .asm_2f755 ld hl, CinnabarGymText_75a72 call PrintText @@ -425,15 +526,23 @@ CinnabarGymText_75a72: ; 75a72 (1d:5a72) CinnabarGymText8: ; 75a77 (1d:5a77) TX_ASM - call CinnabarGymScript_757a0 + call CinnabarGymScript_74f48 CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_6 jr nz, .asm_d87be + call CinnabarGymScript_753f3 + jr nz, .asm_75222 + CheckEvent EVENT_CINNABAR_GYM_GATE6_UNLOCKED + jr nz, .asm_75222 + ld e, $5 + jp CinnabarGymScript_753de + +.asm_75222 ld hl, CinnabarGymText_75a9d call PrintText ld hl, CinnabarGymText_75aa2 ld de, CinnabarGymText_75aa2 call SaveEndBattleTextPointers - jp CinnabarGymScript_758b7 + jp CinnabarGymScript_750c3 .asm_d87be ld hl, CinnabarGymText_75aa7 call PrintText @@ -453,20 +562,5 @@ CinnabarGymText_75aa7: ; 75aa7 (1d:5aa7) CinnabarGymText9: ; 75aac (1d:5aac) TX_ASM - CheckEvent EVENT_BEAT_BLAINE - jr nz, .asm_627d9 - ld hl, CinnabarGymText_75ac2 - jr .asm_0b11d -.asm_627d9 - ld hl, CinnabarGymText_75ac7 -.asm_0b11d - call PrintText + callab Func_f2133 jp TextScriptEnd - -CinnabarGymText_75ac2: ; 75ac2 (1d:5ac2) - TX_FAR _CinnabarGymText_75ac2 - db "@" - -CinnabarGymText_75ac7: ; 75ac7 (1d:5ac7) - TX_FAR _CinnabarGymText_75ac7 - db "@" diff --git a/scripts/cinnabargym2.asm b/scripts/cinnabargym2.asm new file mode 100755 index 00000000..a85a3206 --- /dev/null +++ b/scripts/cinnabargym2.asm @@ -0,0 +1,64 @@ +Func_f2133: + CheckEvent EVENT_BEAT_BLAINE + jr nz, .asm_627d9 + ld hl, CinnabarGymText_75ac2 + jr .asm_0b11d +.asm_627d9 + ld hl, CinnabarGymText_75ac7 +.asm_0b11d + call PrintText + ret + +CinnabarGymText_75ac2: ; 75ac2 (1d:5ac2) + TX_FAR _CinnabarGymText_75ac2 + db "@" + +CinnabarGymText_75ac7: ; 75ac7 (1d:5ac7) + TX_FAR _CinnabarGymText_75ac7 + db "@" + +Func_f2150: + ld hl, TextPointers_f215d + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp PrintText + +TextPointers_f215d: + dw CinnabarGymText_f2169 + dw CinnabarGymText_f216e + dw CinnabarGymText_f2173 + dw CinnabarGymText_f2178 + dw CinnabarGymText_f217d + dw CinnabarGymText_f2182 + +CinnabarGymText_f2169: + TX_FAR _CinnabarGymText_1 + db "@" + +CinnabarGymText_f216e: + TX_FAR _CinnabarGymText_2 + db "@" + +CinnabarGymText_f2173: + TX_FAR _CinnabarGymText_3 + db "@" + +CinnabarGymText_f2178: + TX_FAR _CinnabarGymText_4 + db "@" + +CinnabarGymText_f217d: + TX_FAR _CinnabarGymText_5 + db "@" + +CinnabarGymText_f2182: + TX_FAR _CinnabarGymText_6 + db "@" + +CinnabarGymText_f2187: + TX_FAR _CinnabarGymText_7 ; unused + db "@" diff --git a/scripts/cinnabarpokecenter.asm b/scripts/cinnabarpokecenter.asm index abae9d8d..fd49ae85 100755 --- a/scripts/cinnabarpokecenter.asm +++ b/scripts/cinnabarpokecenter.asm @@ -7,9 +7,10 @@ CinnabarPokecenterTextPointers: ; 75e32 (1d:5e32) dw CinnabarPokecenterText2 dw CinnabarPokecenterText3 dw CinnabarPokecenterText4 + dw CinnabarPokecenterText5 CinnabarPokecenterText1: ; 75e3a (1d:5e3a) - db $ff + TX_POKECENTER_NURSE CinnabarPokecenterText2: ; 75e3b (1d:5e3b) TX_FAR _CinnabarPokecenterText1 @@ -20,4 +21,9 @@ CinnabarPokecenterText3: ; 75e40 (1d:5e40) db "@" CinnabarPokecenterText4: ; 75e45 (1d:5e45) - db $f6 + TX_CABLE_CLUB_RECEPTIONIST + +CinnabarPokecenterText5: + TX_ASM + callab PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/fanclub.asm b/scripts/fanclub.asm index cbafc034..a03fd2d7 100755 --- a/scripts/fanclub.asm +++ b/scripts/fanclub.asm @@ -1,15 +1,72 @@ FanClubScript: ; 59b70 (16:5b70) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ld hl, FanClubScriptPointers + ld a, [W_FANCLUBCURSCRIPT] + call JumpTable + ret -FanClubBikeInBag: -; check if any bike paraphernalia in bag - CheckEvent EVENT_GOT_BIKE_VOUCHER - ret nz - ld b, BICYCLE - call IsItemInBag - ret nz - ld b, BIKE_VOUCHER - jp IsItemInBag +FanClubScriptPointers: + dw FanClubScript1 + dw FanClubScript2 + +FanClubScript1: + ld hl, wPreventBlackout + bit 7, [hl] + call z, FanClubScript_59a44 + ld hl, wPreventBlackout + set 7, [hl] + ret + +FanClubScript2: + ld hl, wPreventBlackout + bit 7, [hl] + call z, FanClubScript_59a39 + ld hl, wPreventBlackout + set 7, [hl] + ret + +FanClubScript_59a39: + call Random + ld a, [hRandomAdd] + cp 25 + call c, FanClubScript_59a44 + ret + +FanClubScript_59a44: + ld a, [wd472] + bit 7, a + ret z + callab Func_fce73 + ret c + ld a, $1 + ld [W_FANCLUBCURSCRIPT], a + xor a + ld [wPlayerMovingDirection], a + call UpdateSprites + call UpdateSprites + ld a, $0 + ld [wWhichEmotionBubble], a + ld a, $f ; Pikachu + ld [wEmotionBubbleSpriteIndex], a + predef EmotionBubble + ld hl, PikachuMovementScript_59a8c + call Func_159b + ld a, $2 + ld [wSpriteStateData1 + 3 * $10 + 1], a ; Seel + xor a ; SPRITE_FACING_DOWN + ld [wSpriteStateData1 + 3 * $10 + 9], a + callab InitializePikachuTextID + call DisablePikachuFollowingPlayer + ret + +PikachuMovementScript_59a8c: + db $00 + db $26 + db $20 + db $20 + db $20 + db $1e + db $3f FanClubTextPointers: ; 59b84 (16:5b84) dw FanClubText1 @@ -18,22 +75,28 @@ FanClubTextPointers: ; 59b84 (16:5b84) dw FanClubText4 dw FanClubText5 dw FanClubText6 - dw FanClubText7 - dw FanClubText8 FanClubText1: -; pikachu fan +; clefairy fan TX_ASM - CheckEvent EVENT_PIKACHU_FAN_BOAST + CheckEventHL EVENT_152 + jr z, .asm_59aaf + ld hl, .yellowtext + call PrintText + jr .done + +.asm_59aaf + CheckEventReuseHL EVENT_PIKACHU_FAN_BOAST jr nz, .mineisbetter + SetEventReuseHL EVENT_SEEL_FAN_BOAST ld hl, .normaltext call PrintText - SetEvent EVENT_SEEL_FAN_BOAST jr .done + .mineisbetter + ResetEventReuseHL EVENT_PIKACHU_FAN_BOAST ld hl, .bettertext call PrintText - ResetEvent EVENT_PIKACHU_FAN_BOAST .done jp TextScriptEnd @@ -45,19 +108,29 @@ FanClubText1: TX_FAR PikachuFanBetterText db "@" +.yellowtext + TX_FAR PikachuFanPrintText + db "@" + FanClubText2: ; seel fan TX_ASM - CheckEvent EVENT_SEEL_FAN_BOAST + CheckEventHL EVENT_152 + jr z, .asm_59ae7 + ld hl, .yellowtext + call PrintText + jr .done +.asm_59ae7 + CheckEventReuseHL EVENT_SEEL_FAN_BOAST jr nz, .mineisbetter + SetEventReuseHL EVENT_PIKACHU_FAN_BOAST ld hl, .normaltext call PrintText - SetEvent EVENT_PIKACHU_FAN_BOAST jr .done .mineisbetter + ResetEventReuseHL EVENT_SEEL_FAN_BOAST ld hl, .bettertext call PrintText - ResetEvent EVENT_SEEL_FAN_BOAST .done jp TextScriptEnd @@ -69,12 +142,16 @@ FanClubText2: TX_FAR SeelFanBetterText db "@" +.yellowtext + TX_FAR SeelFanPrintText + db "@" + FanClubText3: ; pikachu TX_ASM ld hl, .text call PrintText - ld a, PIKACHU + ld a, CLEFAIRY call PlayCry call WaitForSoundToFinish jp TextScriptEnd @@ -100,74 +177,131 @@ FanClubText4: FanClubText5: ; chair TX_ASM - call FanClubBikeInBag - jr nz, .nothingleft - - ld hl, .meetchairtext + CheckEventHL EVENT_152 + jr z, .check_bike_voucher + ld hl, Text_59c1f call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a - jr nz, .nothanks + jr z, .select_mon_to_print + ld hl, Text_59c24 + jr .gbpals_print_text - ; tell the story - ld hl, .storytext +.check_bike_voucher + CheckEvent EVENT_GOT_BIKE_VOUCHER + jr nz, .got_bike_voucher_already + ld hl, Text_59bfc + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .declined_story + ld hl, Text_59c01 call PrintText lb bc, BIKE_VOUCHER, 1 call GiveItem - jr nc, .BagFull - ld hl, .receivedvouchertext + jr nc, .no_room_for_voucher + ld hl, Text_59c06 call PrintText SetEvent EVENT_GOT_BIKE_VOUCHER - jr .done -.BagFull - ld hl, .bagfulltext - call PrintText - jr .done -.nothanks - ld hl, .nostorytext - call PrintText - jr .done -.nothingleft - ld hl, .finaltext + jp TextScriptEnd + +.no_room_for_voucher + ld hl, Text_59c1a + jr .gbpals_print_text + +.declined_story + ld hl, Text_59c10 + jr .gbpals_print_text + +.got_bike_voucher_already + ld hl, Text_59c15 +.gbpals_print_text + push hl + call LoadGBPal + pop hl call PrintText -.done jp TextScriptEnd -.meetchairtext +.select_mon_to_print + call GBPalWhiteOutWithDelay3 + call LoadCurrentMapView + call SaveScreenTilesToBuffer2 + ld a, $ff + ld [wUpdateSpritesEnabled], a + ld a, $00 + ld [wTempTilesetNumTiles], a + call DisplayPartyMenu + jp nc, .print + call GBPalWhiteOutWithDelay3 + call RestoreScreenTilesAndReloadTilePatterns + ld hl, Text_59c24 + jr .gbpals_print_text + +.print + xor a + ld [wUpdateSpritesEnabled], a + ld hl, wd730 + set 6, [hl] + callab Func_e8e24 + ld hl, wd730 + res 6, [hl] + call GBPalWhiteOutWithDelay3 + call ReloadTilesetTilePatterns + call RestoreScreenTilesAndReloadTilePatterns + call LoadScreenTilesFromBuffer2 + call Delay3 + call GBPalNormal + ld hl, Text_59c2e + ld a, [hOaksAideResult] + and a + jr nz, .gbpals_print_text + ld hl, Text_59c29 + jr .gbpals_print_text + +Text_59bfc: TX_FAR FanClubMeetChairText db "@" -.storytext +Text_59c01: TX_FAR FanClubChairStoryText db "@" -.receivedvouchertext +Text_59c06: TX_FAR ReceivedBikeVoucherText - db $11 + TX_SFX_KEY_ITEM TX_FAR ExplainBikeVoucherText db "@" -.nostorytext +Text_59c10: TX_FAR FanClubNoStoryText db "@" -.finaltext +Text_59c15: TX_FAR FanClubChairFinalText db "@" -.bagfulltext +Text_59c1a: TX_FAR FanClubBagFullText db "@" -FanClubText6: ; 59c88 (16:5c88) - TX_FAR _FanClubText6 +Text_59c1f: + TX_FAR FanClubChairPrintText1 + db "@" + +Text_59c24: + TX_FAR FanClubChairPrintText2 + db "@" + +Text_59c29: + TX_FAR FanClubChairPrintText3 db "@" -FanClubText7: ; 59c8d (16:5c8d) - TX_FAR _FanClubText7 +Text_59c2e: + TX_FAR FanClubChairPrintText4 db "@" -FanClubText8: ; 59c92 (16:5c92) - TX_FAR _FanClubText8 +FanClubText6: ; 59c88 (16:5c88) + TX_FAR _FanClubText6 db "@" diff --git a/scripts/fuchsiamart.asm b/scripts/fuchsiamart.asm index 792dafa2..41aec49a 100755 --- a/scripts/fuchsiamart.asm +++ b/scripts/fuchsiamart.asm @@ -1,5 +1,6 @@ FuchsiaMartScript: ; 1dd88 (7:5d88) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret FuchsiaMartTextPointers: ; 1dd8b (7:5d8b) dw FuchsiaMartText1 diff --git a/scripts/fuchsiapokecenter.asm b/scripts/fuchsiapokecenter.asm index 26f88844..2ad3ac01 100755 --- a/scripts/fuchsiapokecenter.asm +++ b/scripts/fuchsiapokecenter.asm @@ -7,6 +7,7 @@ FuchsiaPokecenterTextPointers: ; 75069 (1d:5069) dw FuchsiaPokecenterText2 dw FuchsiaPokecenterText3 dw FuchsiaPokecenterText4 + dw FuchsiaPokecenterText5 FuchsiaPokecenterText1: ; 75071 (1d:5071) db $ff @@ -21,3 +22,8 @@ FuchsiaPokecenterText3: ; 75077 (1d:5077) FuchsiaPokecenterText4: ; 7507c (1d:507c) db $f6 + +FuchsiaPokecenterText5: + TX_ASM + callab PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/gary.asm b/scripts/gary.asm index 64734c58..290bd753 100755 --- a/scripts/gary.asm +++ b/scripts/gary.asm @@ -2,7 +2,8 @@ GaryScript: ; 75f1d (1d:5f1d) call EnableAutoTextBoxDrawing ld hl, GaryScriptPointers ld a, [W_GARYCURSCRIPT] - jp JumpTable + call JumpTable + ret GaryScript_75f29: ; 75f29 (1d:5f29) xor a @@ -40,9 +41,9 @@ GaryScript1: ; 75f48 (1d:5f48) ret RLEMovement75f63: ; 75f63 (1d:5f63) - db D_UP,1 - db D_RIGHT,1 - db D_UP,3 + db D_UP, 1 + db D_RIGHT, 1 + db D_UP, 3 db $ff GaryScript2: ; 75f6a (1d:5f6a) @@ -69,18 +70,7 @@ GaryScript2: ; 75f6a (1d:5f6a) ; select which team to use during the encounter ld a, [W_RIVALSTARTER] - cp STARTER2 - jr nz, .NotSquirtle - ld a, $1 - jr .done -.NotSquirtle - cp STARTER3 - jr nz, .Charmander - ld a, $2 - jr .done -.Charmander - ld a, $3 -.done + add $0 ; Wow GameFreak ld [wTrainerNo], a xor a @@ -217,8 +207,8 @@ GaryScript9: ; 76099 (1d:6099) ret RLEMovement760b4: ; 760b4 (1d:60b4) - db D_UP,4 - db D_LEFT,1 + db D_UP, 4 + db D_LEFT, 1 db $ff GaryScript10: ; 760b9 (1d:60b9) diff --git a/scripts/indigoplateaulobby.asm b/scripts/indigoplateaulobby.asm index 7655d8c7..c639adb7 100755 --- a/scripts/indigoplateaulobby.asm +++ b/scripts/indigoplateaulobby.asm @@ -20,9 +20,10 @@ IndigoPlateauLobbyTextPointers: ; 19c7f (6:5c7f) dw IndigoPlateauLobbyText3 dw IndigoPlateauLobbyText4 dw IndigoPlateauLobbyText5 + dw IndigoPlateauLobbyText6 IndigoPlateauLobbyText1: ; 19c89 (6:5c89) - db $ff + TX_POKECENTER_NURSE IndigoPlateauLobbyText2: ; 19c8a (6:5c8a) TX_FAR _IndigoPlateauLobbyText1 @@ -33,4 +34,9 @@ IndigoPlateauLobbyText3: ; 19c8f (6:5c8f) db "@" IndigoPlateauLobbyText5: ; 19c94 (6:5c94) - db $f6 + TX_CABLE_CLUB_RECEPTIONIST + +IndigoPlateauLobbyText6: + TX_ASM + callab PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/lance.asm b/scripts/lance.asm index 4d9d393c..564e7ef1 100755 --- a/scripts/lance.asm +++ b/scripts/lance.asm @@ -17,22 +17,21 @@ LanceScript_5a2c4: ; 5a2c4 (16:62c4) jr nz, .asm_5a2da ld a, $31 ld b, $32 - jp LanceScript_5a2de + jp .asm_5a2de + .asm_5a2da ld a, $72 ld b, $73 - -LanceScript_5a2de: ; 5a2de (16:62de) +.asm_5a2de push bc ld [wNewTileBlockID], a lb bc, 6, 2 - call LanceScript_5a2f0 + call .asm_5a2f0 pop bc ld a, b ld [wNewTileBlockID], a lb bc, 6, 3 - -LanceScript_5a2f0: ; 5a2f0 (16:62f0) +.asm_5a2f0 predef_jump ReplaceTileBlock LanceScript_5a2f5: ; 5a2f5 (16:62f5) @@ -107,7 +106,7 @@ LanceScript_5a35b: ; 5a35b (16:635b) ret RLEList_5a379: ; 5a379 (16:6379) - db D_UP, $0C + db D_UP, $0D db D_LEFT, $0C db D_DOWN, $07 db D_LEFT, $06 diff --git a/scripts/lavenderpokecenter.asm b/scripts/lavenderpokecenter.asm index 452cc8a4..8f9c5454 100755 --- a/scripts/lavenderpokecenter.asm +++ b/scripts/lavenderpokecenter.asm @@ -7,12 +7,13 @@ LavenderPokecenterTextPointers: ; 5c8e0 (17:48e0) dw LavenderPokecenterText2 dw LavenderPokecenterText3 dw LavenderPokecenterText4 + dw LavenderPokecenterText5 LavenderPokecenterText4: ; 5c8e8 (17:48e8) - db $f6 + TX_CABLE_CLUB_RECEPTIONIST LavenderPokecenterText1: ; 5c8e9 (17:48e9) - db $ff + TX_POKECENTER_NURSE LavenderPokecenterText2: ; 5c8ea (17:48ea) TX_FAR _LavenderPokecenterText1 @@ -21,3 +22,8 @@ LavenderPokecenterText2: ; 5c8ea (17:48ea) LavenderPokecenterText3: ; 5c8ef (17:48ef) TX_FAR _LavenderPokecenterText3 db "@" + +LavenderPokecenterText5: + TX_ASM + callab PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/mtmoonpokecenter.asm b/scripts/mtmoonpokecenter.asm index 320ed070..9c35686f 100755 --- a/scripts/mtmoonpokecenter.asm +++ b/scripts/mtmoonpokecenter.asm @@ -36,5 +36,5 @@ MtMoonPokecenterText6: ; 49375 (12:5375) MtMoonPokecenterText7: TX_ASM - callab Func_f0f12 + callab PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/pewterpokecenter.asm b/scripts/pewterpokecenter.asm index 90f5e2b9..70cf17f6 100755 --- a/scripts/pewterpokecenter.asm +++ b/scripts/pewterpokecenter.asm @@ -14,7 +14,7 @@ PewterPokecenterTextPointers: ; 5c58d (17:458d) dw PewterPokecenterText6 PewterPokecenterText1: ; 5c595 (17:4595) - db $ff + TX_POKECENTER_NURSE PewterPokecenterText2: ; 5c596 (17:4596) TX_FAR _PewterPokecenterText1 @@ -26,7 +26,7 @@ PewterPokecenterText3: ; 5c59b (17:459b) jp TextScriptEnd PewterPokecenterText4: ; 5c60c (17:460c) - db $f6 + TX_CABLE_CLUB_RECEPTIONIST PewterPokecenterText5: ; 5c603 (17:4603) TX_ASM @@ -35,5 +35,5 @@ PewterPokecenterText5: ; 5c603 (17:4603) PewterPokecenterText6: TX_ASM - callab Func_f0f12 + callab PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/pewterpokecenter2.asm b/scripts/pewterpokecenter2.asm index 1aae37d1..c884ad65 100755 --- a/scripts/pewterpokecenter2.asm +++ b/scripts/pewterpokecenter2.asm @@ -57,7 +57,7 @@ Func_f1da4: ret z callab Func_fce73 ret c - call SetPikachuAsleep + call DisablePikachuFollowingPlayer ret PewterPokecenterText_f1e19: diff --git a/scripts/pokemontower1.asm b/scripts/pokemontower1.asm index 4887e740..99b8efef 100755 --- a/scripts/pokemontower1.asm +++ b/scripts/pokemontower1.asm @@ -1,5 +1,6 @@ PokemonTower1Script: ; 6042c (18:442c) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret PokemonTower1TextPointers: ; 6042f (18:442f) dw PokemonTower1Text1 diff --git a/scripts/pokemontower2.asm b/scripts/pokemontower2.asm index 7aebf81b..6b0c1f00 100755 --- a/scripts/pokemontower2.asm +++ b/scripts/pokemontower2.asm @@ -22,9 +22,7 @@ PokemonTower2Script0: ; 6050f (18:450f) ld hl, CoordsData_6055e call ArePlayerCoordsInArray ret nc - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL call PlayMusic @@ -71,14 +69,13 @@ PokemonTower2Script1: ; 60563 (18:4563) ld de, MovementData_605b2 CheckEvent EVENT_POKEMON_TOWER_RIVAL_ON_LEFT jr nz, .asm_60589 + callab Func_f1e22 ld de, MovementData_605a9 .asm_60589 ld a, $1 ld [H_SPRITEINDEX], a call MoveSprite - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic callba Music_RivalAlternateStart ld a, $2 ld [W_POKEMONTOWER2CURSCRIPT], a @@ -144,21 +141,8 @@ PokemonTower2Text1: ; 605df (18:45df) call SaveEndBattleTextPointers ld a, OPP_SONY2 ld [wCurOpponent], a - - ; select which team to use during the encounter ld a, [W_RIVALSTARTER] - cp STARTER2 - jr nz, .NotSquirtle - ld a, $4 - jr .done -.NotSquirtle - cp STARTER3 - jr nz, .Charmander - ld a, $5 - jr .done -.Charmander - ld a, $6 -.done + add $1 ld [wTrainerNo], a ld a, $1 diff --git a/scripts/pokemontower7.asm b/scripts/pokemontower7.asm index eb6d62e4..abf6104d 100755 --- a/scripts/pokemontower7.asm +++ b/scripts/pokemontower7.asm @@ -1,69 +1,234 @@ PokemonTower7Script: ; 60d05 (18:4d05) call EnableAutoTextBoxDrawing - ld hl, PokemonTower7TrainerHeaders - ld de, PokemonTower7ScriptPointers + ld hl, PokemonTower7ScriptPointers ld a, [W_POKEMONTOWER7CURSCRIPT] - call ExecuteCurMapScriptInTable - ld [W_POKEMONTOWER7CURSCRIPT], a + call JumpTable ret -PokemonTower7Script_60d18: ; 60d18 (18:4d18) +PokemonTower7Script_60d01: ; 60d18 (18:4d18) xor a ld [wJoyIgnore], a +PokemonTower7Script_60d05: ld [W_POKEMONTOWER7CURSCRIPT], a - ld [W_CURMAPSCRIPT], a ret PokemonTower7ScriptPointers: - dw CheckFightingMapTrainers - dw DisplayEnemyTrainerTextAndStartBattle - dw PokemonTower7Script2 - dw PokemonTower7Script3 - dw PokemonTower7Script4 + dw PokemonTower7Script0 ; $4d21 + dw PokemonTower7Script1 ; $4d7f + dw PokemonTower7Script2 ; $4d9e + dw PokemonTower7Script3 ; $4da9 + dw PokemonTower7Script4 ; $4dbf + dw PokemonTower7Script5 ; $4dde + dw PokemonTower7Script6 ; $4de9 + dw PokemonTower7Script7 ; $4e0e + dw PokemonTower7Script8 ; $4e34 + dw PokemonTower7Script9 ; $4e7a + dw PokemonTower7Script10 ; $4e9b + dw PokemonTower7Script11 ; $4ec7 + +PokemonTower7Script0: + CheckEvent EVENT_BEAT_POKEMONTOWER_7_TRAINER_0 + call z, PokemonTower7Script_60d2a + ret -PokemonTower7Script2: ; 60d23 (18:4d23) - ld hl, wFlags_0xcd60 - res 0, [hl] - ld a, [wIsInBattle] - cp $ff - jp z, PokemonTower7Script_60d18 - call EndTrainerBattle - ld a, $f0 +PokemonTower7Script_60d2a: + ld a, [wYCoord] + cp $c + ret nz + ResetEvent EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 + ld a, [wXCoord] + cp $a + jr z, .asm_60d47 + ld a, [wXCoord] ; why? + cp $b + ret nz + SetEvent EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 +.asm_60d47 + call StopAllMusic + ld c, BANK(Music_JessieAndJames) + ld a, MUSIC_JESSIE_AND_JAMES + call PlayMusic + xor a + ld [hJoyHeld], a + ld a, $FF ^ (A_BUTTON | B_BUTTON) ld [wJoyIgnore], a - ld a, [wSpriteIndex] + ld a, HS_POKEMONTOWER_7_JESSIE + call PokemonTower7Script_60eaf + ld a, HS_POKEMONTOWER_7_JAMES + call PokemonTower7Script_60eaf + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, $4 ld [hSpriteIndexOrTextID], a call DisplayTextID - call PokemonTower7Script_60db6 - ld a, $3 - ld [W_POKEMONTOWER7CURSCRIPT], a - ld [W_CURMAPSCRIPT], a + ld a, $ff + ld [wJoyIgnore], a + ld a, $1 + call PokemonTower7Script_60d05 ret -PokemonTower7Script3: ; 60d56 (18:4d56) +PokemonTower7MovementData_60d7a: + db $4 +PokemonTower7MovementData_60d7b: + db $4 + db $4 + db $4 + db $FF + +PokemonTower7Script1: + ld de, PokemonTower7MovementData_60d7b + CheckEvent EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 + jr z, .asm_60d8c + ld de, PokemonTower7MovementData_60d7a +.asm_60d8c + ld a, $1 + ld [hSpriteIndexOrTextID], a + call MoveSprite + ld a, $ff + ld [wJoyIgnore], a + ld a, $2 + call PokemonTower7Script_60d05 + ret + +PokemonTower7Script2: + ld a, $ff + ld [wJoyIgnore], a ld a, [wd730] bit 0, a ret nz - ld hl, wMissableObjectList - ld a, [wSpriteIndex] - ld b, a -.missableObjectsListLoop - ld a, [hli] - cp b ; search for sprite ID in missing objects list - ld a, [hli] - jr nz, .missableObjectsListLoop - ld [wMissableObjectIndex], a ; remove missable object - predef HideObject +PokemonTower7Script3: + ld a, $0 + ld [wSpriteStateData1 + 1 * $10 + 9], a + CheckEvent EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 + jr z, .asm_60dba + ld a, $c + ld [wSpriteStateData1 + 1 * $10 + 9], a +.asm_60dba + ld a, $2 + ld [wSpriteStateData1 + 1 * $10 + 1], a +PokemonTower7Script4: + ld de, PokemonTower7MovementData_60d7a + CheckEvent EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 + jr z, .asm_60dcc + ld de, PokemonTower7MovementData_60d7b +.asm_60dcc + ld a, $2 + ld [hSpriteIndexOrTextID], a + call MoveSprite + ld a, $ff + ld [wJoyIgnore], a + ld a, $5 + call PokemonTower7Script_60d05 + ret +PokemonTower7Script5: + ld a, $ff + ld [wJoyIgnore], a + ld a, [wd730] + bit 0, a + ret nz +PokemonTower7Script6: + ld a, $2 + ld [wSpriteStateData1 + $2 * $10 + $1], a + ld a, $8 + ld [wSpriteStateData1 + $2 * $10 + $9], a + CheckEvent EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 + jr z, .asm_60dff + ld a, $0 + ld [wSpriteStateData1 + $2 * $10 + $9], a +.asm_60dff + call Delay3 + ld a, $FF ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + ld a, $5 + ld [hSpriteIndexOrTextID], a + call DisplayTextID +PokemonTower7Script7: + ld hl, wd72d + set 6, [hl] + set 7, [hl] + ld hl, PokemonTower7JessieJamesEndBattleText ; 60f2c + ld de, PokemonTower7JessieJamesEndBattleText ; 60f2c + call SaveEndBattleTextPointers + ld a, OPP_ROCKET + ld [wCurOpponent], a + ld a, $2c + ld [wTrainerNo], a + xor a + ld [hJoyHeld], a + ld [wJoyIgnore], a + ld a, $8 + call PokemonTower7Script_60d05 + ret + +PokemonTower7Script8: + ld a, $ff + ld [wJoyIgnore], a + ld a, [wIsInBattle] + cp $ff + jp z, PokemonTower7Script_60d01 + ld a, $2 + ld [wSpriteStateData1 + 1 * $10 + 1], a + ld [wSpriteStateData1 + 2 * $10 + 1], a + xor a + ld [wSpriteStateData1 + 1 * $10 + 9], a + ld [wSpriteStateData1 + 2 * $10 + 9], a + ld a, $FF ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, $6 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + call StopAllMusic + ld c, BANK(Music_JessieAndJames) + ld a, MUSIC_JESSIE_AND_JAMES + call PlayMusic + ld a, $ff + ld [wJoyIgnore], a + ld a, $9 + call PokemonTower7Script_60d05 + ret + +PokemonTower7Script9: + ld a, $ff + ld [wJoyIgnore], a + call GBFadeOutToBlack + ld a, HS_POKEMONTOWER_7_JESSIE + call PokemonTower7Script_60ebe + ld a, HS_POKEMONTOWER_7_JAMES + call PokemonTower7Script_60ebe + call UpdateSprites + call Delay3 + call GBFadeInFromBlack + ld a, $a + call PokemonTower7Script_60d05 + ret + +PokemonTower7Script10: + call PlayDefaultMusic xor a + ld [hJoyHeld], a ld [wJoyIgnore], a - ld [wSpriteIndex], a - ld [wTrainerHeaderFlagBit], a - ld [wUnusedDA38], a + SetEvent EVENT_BEAT_POKEMONTOWER_7_TRAINER_0 ld a, $0 - ld [W_POKEMONTOWER7CURSCRIPT], a - ld [W_CURMAPSCRIPT], a + call PokemonTower7Script_60d05 ret -PokemonTower7Script4: ; 60d86 (18:4d86) +PokemonTower7Script_60eaf: + ld [wMissableObjectIndex], a + predef ShowObject + call UpdateSprites + call Delay3 + ret + +PokemonTower7Script_60ebe + ld [wMissableObjectIndex], a + predef HideObject + ret + +PokemonTower7Script11: ld a, $ff ld [wJoyIgnore], a ld a, HS_POKEMONTOWER_7_MR_FUJI @@ -81,180 +246,54 @@ PokemonTower7Script4: ; 60d86 (18:4d86) set 3, [hl] ld a, $0 ld [W_POKEMONTOWER7CURSCRIPT], a - ld [W_CURMAPSCRIPT], a ret -PokemonTower7Script_60db6: ; 60db6 (18:4db6) - ld hl, CoordsData_60de3 - ld a, [wSpriteIndex] - dec a - swap a - ld d, $0 - ld e, a - add hl, de - ld a, [wYCoord] - ld b, a - ld a, [wXCoord] - ld c, a -.asm_60dcb - ld a, [hli] - cp b - jr nz, .asm_60dde - ld a, [hli] - cp c - jr nz, .asm_60ddf - ld a, [hli] - ld d, [hl] - ld e, a - ld a, [wSpriteIndex] - ld [H_SPRITEINDEX], a - jp MoveSprite -.asm_60dde - inc hl -.asm_60ddf - inc hl - inc hl - jr .asm_60dcb - -CoordsData_60de3: ; 60de3 (18:4de3) - db $0C,$09 - dw MovementData_60e13 - db $0B,$0A - dw MovementData_60e1b - db $0B,$0B - dw MovementData_60e22 - db $0B,$0C - dw MovementData_60e22 - db $0A,$0C - dw MovementData_60e28 - db $09,$0B - dw MovementData_60e30 - db $09,$0A - dw MovementData_60e22 - db $09,$09 - dw MovementData_60e22 - db $08,$09 - dw MovementData_60e37 - db $07,$0A - dw MovementData_60e22 - db $07,$0B - dw MovementData_60e22 - db $07,$0C - dw MovementData_60e22 - -MovementData_60e13: ; 60e13 - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_LEFT - db $FF - -MovementData_60e1b: ; 60e1b - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db $FF - -MovementData_60e22: ; 60e22 - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db $FF - -MovementData_60e28: ; 60e28 - db NPC_MOVEMENT_LEFT - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db $FF - -MovementData_60e30: ; 60e30 - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_LEFT - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db $FF - -MovementData_60e37: ; 60e37 - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db $FF - -PokemonTower7TextPointers: ; 60e3f (18:4e3f) +PokemonTower7TextPointers: dw PokemonTower7Text1 dw PokemonTower7Text2 dw PokemonTower7Text3 - dw PokemonTower7FujiText - -PokemonTower7TrainerHeaders: ; 60e47 (18:4e47) -PokemonTower7TrainerHeader0: ; 60e47 (18:4e47) - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_7_TRAINER_0 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_7_TRAINER_0 - dw PokemonTower7BattleText1 ; TextBeforeBattle - dw PokemonTower7AfterBattleText1 ; TextAfterBattle - dw PokemonTower7EndBattleText1 ; TextEndBattle - dw PokemonTower7EndBattleText1 ; TextEndBattle + dw PokemonTower7Text4 + dw PokemonTower7Text5 + dw PokemonTower7Text6 -PokemonTower7TrainerHeader1: ; 60e53 (18:4e53) - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_7_TRAINER_1 - dw PokemonTower7BattleText2 ; TextBeforeBattle - dw PokemonTower7AfterBattleText2 ; TextAfterBattle - dw PokemonTower7EndBattleText2 ; TextEndBattle - dw PokemonTower7EndBattleText2 ; TextEndBattle - -PokemonTower7TrainerHeader2: ; 60e5f (18:4e5f) - dbEventFlagBit EVENT_BEAT_POKEMONTOWER_7_TRAINER_2 - db ($3 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_POKEMONTOWER_7_TRAINER_2 - dw PokemonTower7BattleText3 ; TextBeforeBattle - dw PokemonTower7AfterBattleText3 ; TextAfterBattle - dw PokemonTower7EndBattleText3 ; TextEndBattle - dw PokemonTower7EndBattleText3 ; TextEndBattle - - db $ff +PokemonTower7Text1: +PokemonTower7Text2: + db "@" -PokemonTower7Text1: ; 60e6c (18:4e6c) +PokemonTower7Text4: + TX_FAR _PokemonTowerJessieJamesText1 TX_ASM - ld hl, PokemonTower7TrainerHeader0 - call TalkToTrainer + ld c, 10 + call DelayFrames + ld a, PLAYER_DIR_UP + ld [wPlayerMovingDirection], a + ld a, $0 + ld [wEmotionBubbleSpriteIndex], a + ld a, $0 + ld [wWhichEmotionBubble], a + predef EmotionBubble + ld c, 20 + call DelayFrames jp TextScriptEnd -PokemonTower7Text2: ; 60e76 (18:4e76) - TX_ASM - ld hl, PokemonTower7TrainerHeader1 - call TalkToTrainer - jp TextScriptEnd +PokemonTower7Text5: + TX_FAR _PokemonTowerJessieJamesText2 + db "@" -PokemonTower7Text3: ; 60e80 (18:4e80) +PokemonTower7JessieJamesEndBattleText: + TX_FAR _PokemonTowerJessieJamesText3 + db "@" + +PokemonTower7Text6: + TX_FAR _PokemonTowerJessieJamesText4 TX_ASM - ld hl, PokemonTower7TrainerHeader2 - call TalkToTrainer + ld c, 64 + call DelayFrames jp TextScriptEnd -PokemonTower7FujiText: +PokemonTower7Text3: TX_ASM - ld hl, TowerRescueFujiText + ld hl, PokemonTower7Text_60f75 call PrintText SetEvent EVENT_RESCUED_MR_FUJI SetEvent EVENT_RESCUED_MR_FUJI_2 @@ -267,47 +306,10 @@ PokemonTower7FujiText: ld a, HS_SAFFRON_CITY_F ld [wMissableObjectIndex], a predef ShowObject - ld a, $4 + ld a, $b ld [W_POKEMONTOWER7CURSCRIPT], a - ld [W_CURMAPSCRIPT], a jp TextScriptEnd -TowerRescueFujiText: +PokemonTower7Text_60f75: TX_FAR _TowerRescueFujiText db "@" - -PokemonTower7BattleText1: ; 60ec9 (18:4ec9) - TX_FAR _PokemonTower7BattleText1 - db "@" - -PokemonTower7EndBattleText1: ; 60ece (18:4ece) - TX_FAR _PokemonTower7EndBattleText1 - db "@" - -PokemonTower7AfterBattleText1: ; 60ed3 (18:4ed3) - TX_FAR _PokemonTower7AfterBattleText1 - db "@" - -PokemonTower7BattleText2: ; 60ed8 (18:4ed8) - TX_FAR _PokemonTower7BattleText2 - db "@" - -PokemonTower7EndBattleText2: ; 60edd (18:4edd) - TX_FAR _PokemonTower7EndBattleText2 - db "@" - -PokemonTower7AfterBattleText2: ; 60ee2 (18:4ee2) - TX_FAR _PokemonTower7AfterBattleText2 - db "@" - -PokemonTower7BattleText3: ; 60ee7 (18:4ee7) - TX_FAR _PokemonTower7BattleText3 - db "@" - -PokemonTower7EndBattleText3: ; 60eec (18:4eec) - TX_FAR _PokemonTower7EndBattleText3 - db "@" - -PokemonTower7AfterBattleText3: ; 60ef1 (18:4ef1) - TX_FAR _PokemonTower7AfterBattleText3 - db "@" diff --git a/scripts/rockethideout4.asm b/scripts/rockethideout4.asm index 815f6090..75cb7912 100755 --- a/scripts/rockethideout4.asm +++ b/scripts/rockethideout4.asm @@ -1,5 +1,4 @@ RocketHideout4Script: ; 4545d (11:545d) - call RocketHideout4Script_45473 call EnableAutoTextBoxDrawing ld hl, RocketHideout4TrainerHeader0 ld de, RocketHideout4ScriptPointers @@ -8,47 +7,44 @@ RocketHideout4Script: ; 4545d (11:545d) ld [W_ROCKETHIDEOUT4CURSCRIPT], a ret -RocketHideout4Script_45473: ; 45473 (11:5473) - ld hl, wd126 - bit 5, [hl] - res 5, [hl] - ret z - CheckEvent EVENT_ROCKET_HIDEOUT_4_DOOR_UNLOCKED - jr nz, .asm_45496 - CheckBothEventsSet EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0, EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2, 1 - jr z, .asm_4548c - ld a, $2d - jr .asm_45498 -.asm_4548c - ld a, SFX_GO_INSIDE - call PlaySound - SetEvent EVENT_ROCKET_HIDEOUT_4_DOOR_UNLOCKED -.asm_45496 - ld a, $e -.asm_45498 - ld [wNewTileBlockID], a - lb bc, 5, 12 - predef_jump ReplaceTileBlock - -RocketHideout4Script_454a3: ; 454a3 (11:54a3) +RocketHideout4Script_45510: ; 45510 (11:54a3) + CheckAndResetEvent EVENT_6A0 + call nz, RocketHideout4Script_45525 xor a ld [wJoyIgnore], a +RocketHideout4Script_4551e: ld [W_ROCKETHIDEOUT4CURSCRIPT], a ld [W_CURMAPSCRIPT], a ret +RocketHideout4Script_45525: + ld a, HS_ROCKET_HIDEOUT_4_JAMES + call RocketHideout4Script_45756 + ld a, HS_ROCKET_HIDEOUT_4_JESSIE + call RocketHideout4Script_45756 + ret + RocketHideout4ScriptPointers: ; 454ae (11:54ae)c - dw CheckFightingMapTrainers + dw RocketHideout4Script0 dw DisplayEnemyTrainerTextAndStartBattle dw EndTrainerBattle dw RocketHideout4Script3 + dw RocketHideout4Script4 + dw RocketHideout4Script5 + dw RocketHideout4Script6 + dw RocketHideout4Script7 + dw RocketHideout4Script8 + dw RocketHideout4Script9 + dw RocketHideout4Script10 + dw RocketHideout4Script11 + dw RocketHideout4Script12 + dw RocketHideout4Script13 RocketHideout4Script3: ; 454b6 (11:54b6) ld a, [wIsInBattle] cp $ff - jp z, RocketHideout4Script_454a3 - call UpdateSprites - ld a, $f0 + jp z, RocketHideout4Script_45510 + ld a, $fc ld [wJoyIgnore], a SetEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI ld a, $a @@ -72,61 +68,296 @@ RocketHideout4Script3: ; 454b6 (11:54b6) ld [W_CURMAPSCRIPT], a ret +RocketHideout4Script0: + CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0 + call z, RocketHideout4Script_455a5 + CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_3 + call z, CheckFightingMapTrainers + ret + +RocketHideout4Script_455a5: + ld a, [wYCoord] + cp $e + ret nz + ResetEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 + ld a, [wXCoord] + cp $18 + jr z, .asm_455c2 + ld a, [wXCoord] + cp $19 + ret nz + SetEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 +.asm_455c2 + xor a + ld [hJoyHeld], a + ld a, $fc + ld [wJoyIgnore], a + call StopAllMusic + ld c, BANK(Music_JessieAndJames) + ld a, MUSIC_JESSIE_AND_JAMES + call PlayMusic + call UpdateSprites + call Delay3 + call UpdateSprites + call Delay3 + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, $b + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, $ff + ld [wJoyIgnore], a + ld a, HS_ROCKET_HIDEOUT_4_JAMES + call RocketHideout4Script_45747 + ld a, HS_ROCKET_HIDEOUT_4_JESSIE + call RocketHideout4Script_45747 + ld a, $4 + call RocketHideout4Script_4551e + ret + +RocketHideout4JessieJamesMovementData_45605: + db $4 +RocketHideout4JessieJamesMovementData_45606: + db $4 + db $4 + db $4 + db $ff + +RocketHideout4Script4: + ld de, RocketHideout4JessieJamesMovementData_45605 + CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 + jr z, .asm_45617 + ld de, RocketHideout4JessieJamesMovementData_45606 +.asm_45617 + ld a, $2 + ld [hSpriteIndexOrTextID], a + call MoveSprite + ld a, $ff + ld [wJoyIgnore], a + ld a, $5 + call RocketHideout4Script_4551e + ret + +RocketHideout4Script5: + ld a, $ff + ld [wJoyIgnore], a + ld a, [wd730] + bit 0, a + ret nz +RocketHideout4Script6: + ld a, $2 + ld [wSpriteStateData1 + 2 * $10 + 1], a + ld a, SPRITE_FACING_LEFT + ld [wSpriteStateData1 + 2 * $10 + 9], a + CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 + jr z, .asm_4564a + ld a, SPRITE_FACING_DOWN + ld [wSpriteStateData1 + 2 * $10 + 9], a +.asm_4564a + call Delay3 + ld a, $fc + ld [wJoyIgnore], a +RocketHideout4Script7: + ld de, RocketHideout4JessieJamesMovementData_45606 + CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 + jr z, .asm_4565f + ld de, RocketHideout4JessieJamesMovementData_45605 +.asm_4565f + ld a, $3 + ld [hSpriteIndexOrTextID], a + call MoveSprite + ld a, $ff + ld [wJoyIgnore], a + ld a, $8 + call RocketHideout4Script_4551e + ret + +RocketHideout4Script8: + ld a, $ff + ld [wJoyIgnore], a + ld a, [wd730] + bit 0, a + ret nz + ld a, $fc + ld [wJoyIgnore], a +RocketHideout4Script9: + ld a, $2 + ld [wSpriteStateData1 + 3 * $10 + 1], a + ld a, SPRITE_FACING_DOWN + ld [wSpriteStateData1 + 3 * $10 + 9], a + CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 + jr z, .asm_45697 + ld a, SPRITE_FACING_RIGHT + ld [wSpriteStateData1 + 3 * $10 + 9], a +.asm_45697 + call Delay3 + ld a, $c + ld [hSpriteIndexOrTextID], a + call DisplayTextID +RocketHideout4Script10: + ld hl, wd72d + set 6, [hl] + set 7, [hl] + ld hl, RocketHideout4JessieJamesEndBattleText ; 457b2 + ld de, RocketHideout4JessieJamesEndBattleText ; 457b2 + call SaveEndBattleTextPointers + ld a, OPP_ROCKET + ld [wCurOpponent], a + ld a, $2b + ld [wTrainerNo], a + xor a + ld [hJoyHeld], a + ld [wJoyIgnore], a + SetEvent EVENT_6A0 + ld a, $b + call RocketHideout4Script_4551e + ret + +RocketHideout4Script11: + ld a, $ff + ld [wJoyIgnore], a + ld a, [wIsInBattle] + cp $ff + jp z, RocketHideout4Script_45510 + ld a, $2 + ld [wSpriteStateData1 + 2 * $10 + 1], a + ld [wSpriteStateData1 + 3 * $10 + 1], a + xor a + ld [wSpriteStateData1 + 2 * $10 + 9], a + ld [wSpriteStateData1 + 3 * $10 + 9], a + ld a, $fc + ld [wJoyIgnore], a + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, $d + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + call StopAllMusic + ld c, BANK(Music_JessieAndJames) + ld a, MUSIC_JESSIE_AND_JAMES + call PlayMusic + ld a, $ff + ld [wJoyIgnore], a + ld a, $c + call RocketHideout4Script_4551e + ret + +RocketHideout4Script12: + ld a, $ff + ld [wJoyIgnore], a + call GBFadeOutToBlack + ld a, HS_ROCKET_HIDEOUT_4_JAMES + call RocketHideout4Script_45756 + ld a, HS_ROCKET_HIDEOUT_4_JESSIE + call RocketHideout4Script_45756 + call UpdateSprites + call Delay3 + call GBFadeInFromBlack + ld a, $d + call RocketHideout4Script_4551e + ret + +RocketHideout4Script13: + call PlayDefaultMusic + xor a + ld [hJoyHeld], a + ld [wJoyIgnore], a + ld hl, wd81b + set 2, [hl] + ld a, $0 + call RocketHideout4Script_4551e + ret + +RocketHideout4Script_45747: + ld [wMissableObjectIndex], a + predef ShowObject + call UpdateSprites + call Delay3 + ret + +RocketHideout4Script_45756: + ld [wMissableObjectIndex], a + predef HideObject + ret + RocketHideout4TextPointers: ; 45501 (11:5501) + dw RocketHideout4Text0 dw RocketHideout4Text1 dw RocketHideout4Text2 dw RocketHideout4Text3 - dw RocketHideout4Text4 dw PickUpItemText dw PickUpItemText dw PickUpItemText dw PickUpItemText dw PickUpItemText + dw RocketHideout4Text9 dw RocketHideout4Text10 + dw RocketHideout4Text11 + dw RocketHideout4Text12 -RocketHideout4TrainerHeaders: ; 45515 (11:5515) -RocketHideout4TrainerHeader0: ; 45515 (11:5515) - dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_0 - dw RocketHideout4BattleText2 ; TextBeforeBattle - dw RocketHideout4AfterBattleText2 ; TextAfterBattle - dw RocketHideout4EndBattleText2 ; TextEndBattle - dw RocketHideout4EndBattleText2 ; TextEndBattle - -RocketHideout4TrainerHeader2: ; 45521 (11:5521) - dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 - db ($0 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_2 - dw RocketHideout4BattleText3 ; TextBeforeBattle - dw RocketHideout4AfterBattleText3 ; TextAfterBattle - dw RocketHideout4EndBattleText3 ; TextEndBattle - dw RocketHideout4EndBattleText3 ; TextEndBattle - -RocketHideout4TrainerHeader3: ; 4552d (11:552d) +RocketHideout4TrainerHeaders: +RocketHideout4TrainerHeader0: dbEventFlagBit EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_3 - db ($1 << 4) ; trainer's view range + db ($1 << 4) dwEventFlagAddress EVENT_BEAT_ROCKET_HIDEOUT_4_TRAINER_3 - dw RocketHideout4BattleText4 ; TextBeforeBattle - dw RocketHideout4AfterBattleText4 ; TextAfterBattle - dw RocketHideout4EndBattleText4 ; TextEndBattle - dw RocketHideout4EndBattleText4 ; TextEndBattle - + dw RocketHideout4Trainer0BeforeText ; 4581d + dw RocketHideout4Trainer0AfterText ; 4583a + dw RocketHideout4Trainer0EndBattleText ; 45822 + dw RocketHideout4Trainer0EndBattleText ; 45822 db $ff -RocketHideout4Text1: ; 4553a (11:553a) +RocketHideout4Text1: +RocketHideout4Text2: + db "@" + +RocketHideout4Text10: + TX_FAR _RocketHideoutJessieJamesText1 + TX_ASM + ld c, 10 + call DelayFrames + ld a, $8 + ld [wPlayerMovingDirection], a + ld a, $0 + ld [wEmotionBubbleSpriteIndex], a + ld a, $0 + ld [wWhichEmotionBubble], a + predef EmotionBubble + ld c, 20 + call DelayFrames + jp TextScriptEnd + +RocketHideout4Text11: + TX_FAR _RocketHideoutJessieJamesText2 + db "@" + +RocketHideout4JessieJamesEndBattleText: + TX_FAR _RocketHideoutJessieJamesText3 + db "@" + +RocketHideout4Text12: + TX_FAR _RocketHideoutJessieJamesText4 + TX_ASM + ld c, 64 + call DelayFrames + jp TextScriptEnd + +RocketHideout4Text0: TX_ASM CheckEvent EVENT_BEAT_ROCKET_HIDEOUT_GIOVANNI - jp nz, .asm_545571 - ld hl, RocketHideout4Text_4557a + jp nz, .asm_457fb + ld hl, RocketHideout4Text_45804 call PrintText ld hl, wd72d set 6, [hl] set 7, [hl] - ld hl, RocketHideout4Text_4557f - ld de, RocketHideout4Text_4557f + ld hl, RocketHideout4Text_45809 + ld de, RocketHideout4Text_45809 call SaveEndBattleTextPointers - ld a, [H_SPRITEINDEX] + ld a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters @@ -135,87 +366,52 @@ RocketHideout4Text1: ; 4553a (11:553a) ld a, $3 ld [W_ROCKETHIDEOUT4CURSCRIPT], a ld [W_CURMAPSCRIPT], a - jr .asm_209f0 -.asm_545571 - ld hl, RocketHideout4Text10 + jr .asm_45801 + +.asm_457fb + ld hl, RocketHideout4Text9 call PrintText -.asm_209f0 +.asm_45801 jp TextScriptEnd -RocketHideout4Text_4557a: ; 4557a (11:557a) +RocketHideout4Text_45804: TX_FAR _RocketHideout4Text_4557a db "@" -RocketHideout4Text_4557f: ; 4557f (11:557f) +RocketHideout4Text_45809: TX_FAR _RocketHideout4Text_4557f db "@" -RocketHideout4Text10: ; 45584 (11:5584) +RocketHideout4Text9: TX_FAR _RocketHideout4Text_45584 db "@" -RocketHideout4Text2: ; 45589 (11:5589) +RocketHideout4Text3: TX_ASM ld hl, RocketHideout4TrainerHeader0 call TalkToTrainer jp TextScriptEnd -RocketHideout4BattleText2: ; 45593 (11:5593) - TX_FAR _RocketHideout4BattleText2 - db "@" - -RocketHideout4EndBattleText2: ; 45598 (11:5598) - TX_FAR _RocketHideout4EndBattleText2 - db "@" - -RocketHideout4AfterBattleText2: ; 4559d (11:559d) - TX_FAR _RocketHide4AfterBattleText2 - db "@" - -RocketHideout4Text3: ; 455a2 (11:55a2) - TX_ASM - ld hl, RocketHideout4TrainerHeader2 - call TalkToTrainer - jp TextScriptEnd - -RocketHideout4BattleText3: ; 455ac (11:55ac) - TX_FAR _RocketHideout4BattleText3 - db "@" - -RocketHideout4EndBattleText3: ; 455b1 (11:55b1) - TX_FAR _RocketHideout4EndBattleText3 - db "@" - -RocketHideout4AfterBattleText3: ; 455b6 (11:55b6) - TX_FAR _RocketHide4AfterBattleText3 - db "@" - -RocketHideout4Text4: ; 455bb (11:55bb) - TX_ASM - ld hl, RocketHideout4TrainerHeader3 - call TalkToTrainer - jp TextScriptEnd - -RocketHideout4BattleText4: ; 455c5 (11:55c5) +RocketHideout4Trainer0BeforeText: TX_FAR _RocketHideout4BattleText4 db "@" -RocketHideout4EndBattleText4: ; 455ca (11:55ca) +RocketHideout4Trainer0EndBattleText: TX_FAR _RocketHideout4EndBattleText4 - db "@" - -RocketHideout4AfterBattleText4: ; 455cf (11:55cf) + TX_BUTTON_SOUND TX_ASM - ld hl, RocketHideout4Text_455ec - call PrintText - CheckAndSetEvent EVENT_ROCKET_DROPPED_LIFT_KEY - jr nz, .asm_455e9 + SetEvent EVENT_ROCKET_DROPPED_LIFT_KEY ld a, HS_ROCKET_HIDEOUT_4_ITEM_5 ld [wMissableObjectIndex], a predef ShowObject -.asm_455e9 jp TextScriptEnd -RocketHideout4Text_455ec: ; 455ec (11:55ec) +RocketHideout4Trainer0AfterText: + TX_ASM + ld hl, RocketHideout4Text_45844 + call PrintText + jp TextScriptEnd + +RocketHideout4Text_45844: TX_FAR _RocketHideout4Text_455ec db "@" diff --git a/scripts/rocktunnelpokecenter.asm b/scripts/rocktunnelpokecenter.asm index 7d8f4bf6..3518bd8f 100755 --- a/scripts/rocktunnelpokecenter.asm +++ b/scripts/rocktunnelpokecenter.asm @@ -25,5 +25,5 @@ RockTunnelPokecenterText4: ; 493d3 (12:53d3) RockTunnelPokecenterText5: TX_ASM - callab Func_f0f12 + callab PokecenterChanseyText jp TextScriptEnd diff --git a/scripts/route11gateupstairs.asm b/scripts/route11gateupstairs.asm index ec543a6a..e41e46e5 100755 --- a/scripts/route11gateupstairs.asm +++ b/scripts/route11gateupstairs.asm @@ -9,7 +9,7 @@ Route11GateUpstairsTextPointers: ; 49457 (12:5457) Route11GateUpstairsText1: ; 4945f (12:545f) TX_ASM - xor a + ld a, $0 ld [wWhichTrade], a predef DoInGameTradeDialogue Route11GateUpstairsScriptEnd: ; 49469 (12:5469) diff --git a/scripts/route22gate.asm b/scripts/route22gate.asm index 5fdd70c8..c957e4a6 100755 --- a/scripts/route22gate.asm +++ b/scripts/route22gate.asm @@ -23,9 +23,12 @@ Route22GateScript0: ; 1e6a4 (7:66a4) ret nc xor a ld [hJoyHeld], a + ld a, SPRITE_FACING_LEFT + ld [wSpriteStateData1 + 1 * $10 + 9], a ld a, $1 ld [hSpriteIndexOrTextID], a - jp DisplayTextID + call DisplayTextID + ret Route22GateScriptCoords: ; 1e6b5 (7:66b5) db 2,4 @@ -59,7 +62,7 @@ Route22GateTextPointers: ; 1e6df (7:66df) Route22GateText1: ; 1e6e1 (7:66e1) TX_ASM ld a, [wObtainedBadges] - bit 0, a + bit 0, a ; BOULDERBADGE jr nz, .asm_1e6f6 ld hl, Route22GateText_1e704 call PrintText @@ -89,4 +92,5 @@ Route22GateText_1e715: ; 1e715 (7:6715) Route22GateText_1e71a: ; 1e71a (7:671a) TX_FAR _Route22GateText_1e71a - db $0B, "@" + TX_SFX_ITEM + db "@" diff --git a/scripts/safarizoneentrance.asm b/scripts/safarizoneentrance.asm index a0a0ffda..df80f4e1 100755 --- a/scripts/safarizoneentrance.asm +++ b/scripts/safarizoneentrance.asm @@ -2,7 +2,8 @@ SafariZoneEntranceScript: ; 751cd (1d:51cd) call EnableAutoTextBoxDrawing ld hl, SafariZoneEntranceScriptPointers ld a, [wSafariZoneEntranceCurScript] - jp JumpTable + call JumpTable + ret SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9) dw .SafariZoneEntranceScript0 @@ -43,8 +44,8 @@ SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9) ret .CoordsData_75221: ; 75221 (1d:5221) - db $02,$03 - db $02,$04 + db $02, $03 + db $02, $04 db $FF .SafariZoneEntranceScript1 @@ -85,6 +86,8 @@ SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9) call DisplayTextID xor a ld [wNumSafariBalls], a + ld [wSafariSteps], a + ld [wSafariSteps], a ; ????? ld a, D_DOWN ld c, $3 call SafariZoneEntranceAutoWalk @@ -117,10 +120,10 @@ SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9) SafariZoneEntranceAutoWalk: push af - ld b,0 - ld a,c - ld [wSimulatedJoypadStatesIndex],a - ld hl,wSimulatedJoypadStatesEnd + ld b, 0 + ld a, c + ld [wSimulatedJoypadStatesIndex], a + ld hl, wSimulatedJoypadStatesEnd pop af call FillMemory jp StartSimulatingJoypadStates @@ -143,89 +146,15 @@ SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9) db "@" .SafariZoneEntranceText4 - TX_FAR SafariZoneEntranceText_9e6e4 TX_ASM - ld a, MONEY_BOX - ld [wTextBoxID],a - call DisplayTextBoxID - call YesNoChoice - ld a,[wCurrentMenuItem] - and a - jp nz,.PleaseComeAgain - xor a - ld [hMoney],a - ld a,$05 - ld [hMoney + 1],a - ld a,$00 - ld [hMoney + 2],a - call HasEnoughMoney - jr nc,.success - ld hl,.NotEnoughMoneyText - call PrintText - jr .CantPayWalkDown - -.success - xor a - ld [wPriceTemp],a - ld a,$05 - ld [wPriceTemp + 1],a - ld a,$00 - ld [wPriceTemp + 2],a - ld hl,wPriceTemp + 2 - ld de,wPlayerMoney + 2 - ld c,3 - predef SubBCDPredef - ld a,MONEY_BOX - ld [wTextBoxID],a - call DisplayTextBoxID - ld hl,.MakePaymentText - call PrintText - ld a,30 - ld [wNumSafariBalls],a - ld a,502 / $100 - ld [wSafariSteps],a - ld a, 502 % $100 - ld [wSafariSteps + 1],a - ld a,D_UP - ld c,3 - call SafariZoneEntranceAutoWalk - SetEvent EVENT_IN_SAFARI_ZONE - ResetEventReuseHL EVENT_SAFARI_GAME_OVER - ld a,3 - ld [wSafariZoneEntranceCurScript],a - jr .done - -.PleaseComeAgain - ld hl,.PleaseComeAgainText - call PrintText -.CantPayWalkDown - ld a,D_DOWN - ld c,1 - call SafariZoneEntranceAutoWalk - ld a,4 - ld [wSafariZoneEntranceCurScript],a -.done + callab Func_f1f77 jp TextScriptEnd -.MakePaymentText - TX_FAR SafariZoneEntranceText_9e747 - db $b - TX_FAR _SafariZoneEntranceText_75360 - db "@" - -.PleaseComeAgainText - TX_FAR _SafariZoneEntranceText_75365 - db "@" - -.NotEnoughMoneyText - TX_FAR _SafariZoneEntranceText_7536a - db "@" - .SafariZoneEntranceText5 TX_FAR SafariZoneEntranceText_9e814 TX_ASM call YesNoChoice - ld a,[wCurrentMenuItem] + ld a, [wCurrentMenuItem] and a jr nz, .asm_7539c ld hl, .SafariZoneEntranceText_753bb @@ -268,26 +197,5 @@ SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9) .SafariZoneEntranceText2 TX_ASM - ld hl,.FirstTimeQuestionText - call PrintText - call YesNoChoice - ld a,[wCurrentMenuItem] - and a - ld hl,.RegularText - jr nz,.Explanation - ld hl,.ExplanationText -.Explanation - call PrintText + callab Func_f203e jp TextScriptEnd - -.FirstTimeQuestionText - TX_FAR _SafariZoneEntranceText_753e6 - db "@" - -.ExplanationText - TX_FAR _SafariZoneEntranceText_753eb - db "@" - -.RegularText - TX_FAR _SafariZoneEntranceText_753f0 - db "@" diff --git a/scripts/safarizoneentrance2.asm b/scripts/safarizoneentrance2.asm new file mode 100755 index 00000000..0eb50790 --- /dev/null +++ b/scripts/safarizoneentrance2.asm @@ -0,0 +1,251 @@ +Func_f1f77: + ld hl, .WelcomeText + call PrintText + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jp nz, .declined + ld hl, wPlayerMoney + ld a, [hli] + or [hl] + inc hl + or [hl] + jr nz, .has_positive_balance + call SafariZoneEntranceGetLowCostAdmissionText + jr c, .deny_entry + jr .poor_mans_discount + +.has_positive_balance + xor a + ld [hMoney], a + ld a, $5 + ld [hMoney + 1], a + ld a, $0 + ld [hMoney + 2], a + call HasEnoughMoney + jr nc, .has_enough_money + ld hl, .NotEnoughMoneyText + call PrintText + call SafariZoneEntranceCalculateLowCostAdmission + jr c, .deny_entry + jr .poor_mans_discount + +.has_enough_money + xor a + ld [wPriceTemp + 0], a + ld a, $5 + ld [wPriceTemp + 1], a + ld a, $0 + ld [wPriceTemp + 2], a + ld hl, wTrainerInfoTextBoxNextRowOffset + ld de, wPlayerMoney + 2 + ld c, 3 + predef SubBCDPredef + ld a, SFX_PURCHASE + call PlaySoundWaitForCurrent + call WaitForSoundToFinish + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + ld hl, .MakePaymentText + call PrintText + ld a, 30 + ld hl, 502 +.poor_mans_discount + ld [wNumSafariBalls], a + ld a, h + ld [wSafariSteps], a + ld a, l + ld [wSafariSteps + 1], a + ld a, D_UP + ld c, 3 + call SafariZoneEntranceStartSimulatiingJoypadStates + SetEvent EVENT_IN_SAFARI_ZONE + ResetEventReuseHL EVENT_SAFARI_GAME_OVER + ld a, $3 + ld [wSafariZoneEntranceCurScript], a + jr .asm_f2024 +.declined: + ld hl, .PleaseComeAgainText + call PrintText +.deny_entry + ld a, D_DOWN + ld c, 1 + call SafariZoneEntranceStartSimulatiingJoypadStates + ld a, $4 + ld [wSafariZoneEntranceCurScript], a +.asm_f2024 + ret + +.WelcomeText + TX_FAR SafariZoneEntranceText_9e6e4 + db "@" + +.MakePaymentText + TX_FAR SafariZoneEntranceText_9e747 + TX_SFX_ITEM + TX_FAR _SafariZoneEntranceText_75360 + db "@" + +.PleaseComeAgainText + TX_FAR _SafariZoneEntranceText_75365 + db "@" + +.NotEnoughMoneyText + TX_FAR _SafariZoneEntranceText_7536a + db "@" + +Func_f203e: + ld hl, .FirstTimeQuestionText + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + ld hl, .RegularText + jr nz, .Explanation + ld hl, .ExplanationText +.Explanation + call PrintText + ret + +.FirstTimeQuestionText + TX_FAR _SafariZoneEntranceText_753e6 + db "@" + +.ExplanationText + TX_FAR _SafariZoneEntranceText_753eb + db "@" + +.RegularText + TX_FAR _SafariZoneEntranceText_753f0 + db "@" + +SafariZoneEntranceStartSimulatiingJoypadStates: + push af + ld b, $0 + ld a, c + ld [wSimulatedJoypadStatesIndex], a + ld hl, wParentMenuItem + pop af + call FillMemory + jp StartSimulatingJoypadStates + +SafariZoneEntranceCalculateLowCostAdmission: + ld hl, wPlayerMoney + ld de, hMoney + ld bc, $3 + call CopyData + xor a + ld [hDivideBCDDivisor], a + ld [hDivideBCDDivisor + 1], a + ld a, 23 + ld [hDivideBCDDivisor + 2], a + predef DivideBCDPredef3 + ld a, [hDivideBCDQuotient + 2] + call SafariZoneEntranceConvertBCDtoNumber + push af + ld hl, wPlayerMoney + xor a + ld bc, $3 + call FillMemory + ld hl, SafariZoneEntranceText_f20c4 + call PrintText_NoCreatingTextBox + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + ld hl, SafariZoneEntranceText_f20c9 + call PrintText + pop af + inc a + jr z, .max_balls + cp 29 + jr c, .load_balls +.max_balls + ld a, 29 +.load_balls + ld hl, 502 + and a + ret + +SafariZoneEntranceText_f20c4: + TX_FAR _SafariZoneLowCostText1 + db "@" + +SafariZoneEntranceText_f20c9: + TX_FAR _SafariZoneLowCostText2 + db "@" + +SafariZoneEntranceGetLowCostAdmissionText: + ld hl, wSafariSteps + ld a, [hl] + push af + inc [hl] + ld e, a + ld d, $0 + ld hl, Pointers_f2100 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + pop af + cp $3 + jr z, .give_one_ball + scf + ret + +.give_one_ball + ld hl, SafariZoneEntranceText_f20f6 + call PrintText_NoCreatingTextBox + ld a, $1 + ld hl, 502 + and a + ret + +SafariZoneEntranceText_f20f6: + TX_FAR _SafariZoneLowCostText3 + TX_SFX_ITEM + TX_FAR _SafariZoneLowCostText4 + db "@" + +Pointers_f2100: + dw SafariZoneEntranceText_f210a + dw SafariZoneEntranceText_f210f + dw SafariZoneEntranceText_f2114 + dw SafariZoneEntranceText_f2119 + dw SafariZoneEntranceText_f2119 + +SafariZoneEntranceText_f210a: + TX_FAR _SafariZoneLowCostText5 + db "@" + +SafariZoneEntranceText_f210f: + TX_FAR _SafariZoneLowCostText6 + db "@" + +SafariZoneEntranceText_f2114: + TX_FAR _SafariZoneLowCostText7 + db "@" + +SafariZoneEntranceText_f2119: + TX_FAR _SafariZoneLowCostText8 + db "@" + +SafariZoneEntranceConvertBCDtoNumber: + push hl + ld c, a + and $f + ld l, a + ld h, $0 + ld a, c + and $f0 + swap a + ld bc, 10 + call AddNTimes + ld a, l + pop hl + ret diff --git a/scripts/saffronpokecenter.asm b/scripts/saffronpokecenter.asm index 8f569a8e..05420812 100755 --- a/scripts/saffronpokecenter.asm +++ b/scripts/saffronpokecenter.asm @@ -7,9 +7,10 @@ SaffronPokecenterTextPointers: ; 5d53b (17:553b) dw SaffronPokecenterText2 dw SaffronPokecenterText3 dw SaffronPokecenterText4 + dw SaffronPokecenterText5 SaffronPokecenterText1: ; 5d543 (17:5543) - db $ff + TX_POKECENTER_NURSE SaffronPokecenterText2: ; 5d544 (17:5544) TX_FAR _SaffronPokecenterText1 @@ -20,4 +21,9 @@ SaffronPokecenterText3: ; 5d549 (17:5549) db "@" SaffronPokecenterText4: ; 5d54e (17:554e) - db $f6 + TX_CABLE_CLUB_RECEPTIONIST + +SaffronPokecenterText5: + TX_ASM + callab PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/seafoamislands5.asm b/scripts/seafoamislands5.asm index f8b7aed7..5901c5ca 100755 --- a/scripts/seafoamislands5.asm +++ b/scripts/seafoamislands5.asm @@ -6,8 +6,9 @@ SeafoamIslands5Script: ; 46799 (11:6799) SeafoamIslands5Script_467a5: ; 467a5 (11:67a5) xor a - ld [wSeafoamIslands5CurScript], a ld [wJoyIgnore], a + ld [wSeafoamIslands5CurScript], a + ld [W_CURMAPSCRIPT], a ret SeafoamIslands5ScriptPointers: ; 467ad (11:67ad) diff --git a/scripts/silphco11_2.asm b/scripts/silphco11_2.asm index e7b59757..22e19a02 100755 --- a/scripts/silphco11_2.asm +++ b/scripts/silphco11_2.asm @@ -71,6 +71,6 @@ MissableObjects_f25ce db HS_SILPH_CO_10F_2 db HS_SILPH_CO_11F_1 db HS_SILPH_CO_11F_2 - db HS_SILPH_CO_11F_3 - db HS_MAP_F4_1 + db HS_SILPH_CO_11F_JESSIE + db HS_SILPH_CO_11F_JAMES db $ff
\ No newline at end of file diff --git a/scripts/ssanne2.asm b/scripts/ssanne2.asm index 7bdafe2c..3a2e207a 100755 --- a/scripts/ssanne2.asm +++ b/scripts/ssanne2.asm @@ -24,9 +24,7 @@ SSAnne2Script0: ; 613be (18:53be) ld hl, CoordsData_61411 call ArePlayerCoordsInArray ret nc - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL call PlayMusic @@ -99,23 +97,8 @@ SSAnne2Script1: ; 61430 (18:5430) call Delay3 ld a, OPP_SONY2 ld [wCurOpponent], a - - ; select which team to use during the encounter - ld a, [W_RIVALSTARTER] - cp STARTER2 - jr nz, .NotSquirtle ld a, $1 - jr .done -.NotSquirtle - cp STARTER3 - jr nz, .Charmander - ld a, $2 - jr .done -.Charmander - ld a, $3 -.done ld [wTrainerNo], a - call SSAnne2Script_61416 ld a, $2 ld [W_SSANNE2CURSCRIPT], a @@ -145,9 +128,7 @@ SSAnne2Script2: ; 6146d (18:546d) ld a, $2 ld [H_SPRITEINDEX], a call MoveSprite - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic callba Music_RivalAlternateStart ld a, $3 ld [W_SSANNE2CURSCRIPT], a diff --git a/scripts/ssanne7.asm b/scripts/ssanne7.asm index 911dac7f..6d07d308 100755 --- a/scripts/ssanne7.asm +++ b/scripts/ssanne7.asm @@ -3,7 +3,7 @@ SSAnne7Script: ; 61895 (18:5895) jp EnableAutoTextBoxDrawing SSAnne7Script_6189b: ; 6189b (18:589b) - CheckEvent EVENT_RUBBED_CAPTAINS_BACK + CheckEvent EVENT_GOT_HM01 ret nz ld hl, wd72d set 5, [hl] @@ -28,12 +28,12 @@ SSAnne7Text1: ; 618ad (18:58ad) ld hl, ReceivedHM01Text call PrintText SetEvent EVENT_GOT_HM01 + ld hl, wd72d + res 5, [hl] jr .asm_0faf5 .BagFull ld hl, HM01NoRoomText call PrintText - ld hl, wd72d - set 5, [hl] jr .asm_0faf5 .asm_797c4 ld hl, SSAnne7Text_61932 @@ -45,12 +45,10 @@ SSAnne7RubText: ; 618ec (18:58ec) TX_FAR _SSAnne7RubText TX_ASM ld a, [wAudioROMBank] - cp BANK(Audio3_UpdateMusic) + cp AUDIO_3 ld [wAudioSavedROMBank], a jr nz, .asm_61908 - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic ld a, Bank(Music_PkmnHealed) ld [wAudioROMBank], a .asm_61908 diff --git a/scripts/ssanne9.asm b/scripts/ssanne9.asm index 525a2964..43c3991e 100755 --- a/scripts/ssanne9.asm +++ b/scripts/ssanne9.asm @@ -1,8 +1,5 @@ SSAnne9Script: ; 61b4b (18:5b4b) - ld a, $1 - ld [wAutoTextBoxDrawingControl], a - xor a - ld [wDoNotWaitForButtonPressAfterDisplayingText], a + call DisableAutoTextBoxDrawing ld hl, SSAnne9TrainerHeaders ld de, SSAnne9ScriptPointers ld a, [W_SSANNE9CURSCRIPT] @@ -129,44 +126,24 @@ SSAnne9Text_61c10: ; 61c10 (18:5c10) SSAnne9Text10: ; 61c15 (18:5c15) TX_ASM - ld hl, SSAnne9Text_61c1f - call PrintText + callba Func_f2570 jp TextScriptEnd -SSAnne9Text_61c1f: ; 61c1f (18:5c1f) - TX_FAR _SSAnne9Text_61c1f - db "@" - SSAnne9Text11: ; 61c24 (18:5c24) TX_ASM - ld hl, SSAnne9Text_61c2e - call PrintText + callba Func_f257c jp TextScriptEnd -SSAnne9Text_61c2e: ; 61c2e (18:5c2e) - TX_FAR _SSAnne9Text_61c2e - db "@" - SSAnne9Text12: ; 61c33 (18:5c33) TX_ASM - ld hl, SSAnne9Text_61c3d - call PrintText + callba Func_f2588 jp TextScriptEnd -SSAnne9Text_61c3d: ; 61c3d (18:5c3d) - TX_FAR _SSAnne9Text_61c3d - db "@" - SSAnne9Text13: ; 61c42 (18:5c42) TX_ASM - ld hl, SSAnne9Text_61c4c - call PrintText + callba Func_f2594 jp TextScriptEnd -SSAnne9Text_61c4c: ; 61c4c (18:5c4c) - TX_FAR _SSAnne9Text_61c4c - db "@" - SSAnne9BattleText1: ; 61c51 (18:5c51) TX_FAR _SSAnne9BattleText1 db "@" diff --git a/scripts/vermiliondock.asm b/scripts/vermiliondock.asm index 78ada7cf..cef1766e 100755 --- a/scripts/vermiliondock.asm +++ b/scripts/vermiliondock.asm @@ -40,8 +40,7 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b) SetEventForceReuseHL EVENT_SS_ANNE_LEFT ld a, $ff ld [wJoyIgnore], a - ld [wNewSoundID], a - call PlaySound + call StopAllMusic ld c, BANK(Music_Surfing) ld a, MUSIC_SURFING call PlayMusic @@ -63,6 +62,7 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b) ld [H_AUTOBGTRANSFERENABLED], a ld [wSSAnneSmokeDriftAmount], a ld [rOBP1], a + call UpdateGBCPal_OBP1 ld a, 88 ld [wSSAnneSmokeX], a ld hl, wMapViewVRAMPointer @@ -124,7 +124,7 @@ VermilionDock_1db9b: ; 1db9b (7:5b9b) VermilionDock_AnimSmokePuffDriftRight: ; 1dc42 (7:5c42) push bc push de - ld hl, wOAMBuffer + $11 + ld hl, wOAMBuffer + 4 * $4 + 1 ; x coord ld a, [wSSAnneSmokeDriftAmount] swap a ld c, a diff --git a/scripts/vermilionhouse3.asm b/scripts/vermilionhouse3.asm index 478979da..fef07152 100755 --- a/scripts/vermilionhouse3.asm +++ b/scripts/vermilionhouse3.asm @@ -5,8 +5,5 @@ VermilionHouse3TextPointers: ; 19c15 (6:5c15) dw VermilionHouse3Text1 VermilionHouse3Text1: ; 19c17 (6:5c17) - TX_ASM - ld a, $4 - ld [wWhichTrade], a - predef DoInGameTradeDialogue - jp TextScriptEnd + TX_FAR TeachingHMsText + db "@" diff --git a/scripts/vermilionpokecenter.asm b/scripts/vermilionpokecenter.asm index 6e85b3e3..72c232b7 100755 --- a/scripts/vermilionpokecenter.asm +++ b/scripts/vermilionpokecenter.asm @@ -7,9 +7,10 @@ VermilionPokecenterTextPointers: ; 5c995 (17:4995) dw VermilionPokecenterText2 dw VermilionPokecenterText3 dw VermilionPokecenterText4 + dw VermilionPokecenterText5 VermilionPokecenterText1: ; 5c99d (17:499d) - db $ff + TX_POKECENTER_NURSE VermilionPokecenterText2: ; 5c99e (17:499e) TX_FAR _VermilionPokecenterText1 @@ -20,4 +21,9 @@ VermilionPokecenterText3: ; 5c9a3 (17:49a3) db "@" VermilionPokecenterText4: ; 5c9a8 (17:49a8) - db $f6 + TX_CABLE_CLUB_RECEPTIONIST + +VermilionPokecenterText5: + TX_ASM + callab PokecenterChanseyText + jp TextScriptEnd diff --git a/scripts/victoryroad1.asm b/scripts/victoryroad1.asm index 11f5d5db..ee88d393 100755 --- a/scripts/victoryroad1.asm +++ b/scripts/victoryroad1.asm @@ -29,6 +29,9 @@ VictoryRoad1Script0: ; 5da40 (17:5a40) ld hl, CoordsData_5da5c call CheckBoulderCoords jp nc, CheckFightingMapTrainers + ld a, [H_SPRITEINDEX] + cp $f + jp z, CheckFightingMapTrainers ld hl, wd126 set 5, [hl] SetEvent EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH diff --git a/scripts/victoryroad2.asm b/scripts/victoryroad2.asm index cb956b1c..87635c2e 100755 --- a/scripts/victoryroad2.asm +++ b/scripts/victoryroad2.asm @@ -17,7 +17,6 @@ VictoryRoad2Script: ; 5179d (14:579d) VictoryRoad2Script_517c4: ; 517c4 (14:57c4) ResetEvent EVENT_VICTORY_ROAD_1_BOULDER_ON_SWITCH - VictoryRoad2Script_517c9: ; 517c9 (14:57c9) CheckEvent EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1 jr z, .asm_517da @@ -31,7 +30,6 @@ VictoryRoad2Script_517c9: ; 517c9 (14:57c9) ret z ld a, $1d lb bc, 7, 11 - VictoryRoad2Script_517e2: ; 517e2 (14:57e2) ld [wNewTileBlockID], a predef ReplaceTileBlock @@ -46,6 +44,9 @@ VictoryRoad2Script0: ; 517f1 (14:57f1) ld hl, CoordsData_51816 call CheckBoulderCoords jp nc, CheckFightingMapTrainers + ld a, [hSpriteIndexOrTextID] + cp $f + jp z, CheckFightingMapTrainers EventFlagAddress hl, EVENT_VICTORY_ROAD_2_BOULDER_ON_SWITCH1 ld a, [wCoordIndex] cp $2 diff --git a/scripts/victoryroad3.asm b/scripts/victoryroad3.asm index 22e6813a..72e13775 100755 --- a/scripts/victoryroad3.asm +++ b/scripts/victoryroad3.asm @@ -36,6 +36,9 @@ VictoryRoad3Script0: ; 449b7 (11:49b7) ld a, [wCoordIndex] cp $1 jr nz, .asm_449dc + ld a, [hSpriteIndexOrTextID] + cp $f ; Pikachu + jp z, .asm_449fe ld hl, wd126 set 5, [hl] SetEvent EVENT_VICTORY_ROAD_3_BOULDER_ON_SWITCH1 diff --git a/scripts/viridianmart.asm b/scripts/viridianmart.asm index 05e566fb..b69e24c2 100755 --- a/scripts/viridianmart.asm +++ b/scripts/viridianmart.asm @@ -93,7 +93,7 @@ ViridianMartText4: ; 1d4f5 (7:54f5) ViridianMartText5: ; 1d4fa (7:54fa) TX_FAR ViridianMartParcelQuestText - db $11 + TX_SFX_KEY_ITEM db "@" ViridianMartText2: ; 1d500 (7:5500) diff --git a/scripts/viridianpokecenter.asm b/scripts/viridianpokecenter.asm index f8aed602..c2e2d283 100755 --- a/scripts/viridianpokecenter.asm +++ b/scripts/viridianpokecenter.asm @@ -10,7 +10,7 @@ ViridianPokecenterTextPointers: ; 44263 (11:4263) dw ViridianPokeCenterText5 ViridianPokeCenterText1: ; 4426b (11:426b) - db $ff + TX_POKECENTER_NURSE ViridianPokeCenterText2: ; 4426c (11:426c) TX_FAR _ViridianPokeCenterText1 @@ -21,9 +21,9 @@ ViridianPokeCenterText3: ; 44271 (11:4271) db "@" ViridianPokeCenterText4: ; 44276 (11:4276) - db $f6 + TX_CABLE_CLUB_RECEPTIONIST ViridianPokeCenterText5: TX_ASM - callab Func_f0f12 + callab PokecenterChanseyText jp TextScriptEnd |