diff options
author | yenatch <yenatch@gmail.com> | 2015-09-09 16:02:55 -0400 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2015-09-09 16:02:55 -0400 |
commit | cc0d5d4c8bb9721f8ab0354d87c8f6d848dbe23b (patch) | |
tree | 2ab9e19e9f85d1894b42cb93dd969fa57327b0ed | |
parent | c432709715df83f5cd063fd5b14684389e037e15 (diff) | |
parent | 0d4c2776d927e5d3162d9a4430fc82f35bf50be5 (diff) |
Merge pull request #312 from JimB16/master
Added comments and changed labels (mainly for BattleTower)
-rw-r--r-- | battle/ai/items.asm | 48 | ||||
-rw-r--r-- | battle/core.asm | 310 | ||||
-rw-r--r-- | battle/effect_commands.asm | 121 | ||||
-rw-r--r-- | constants/misc_constants.asm | 5 | ||||
-rw-r--r-- | data/battle_tower.asm | 157 | ||||
-rw-r--r-- | engine/predef.asm | 2 | ||||
-rw-r--r-- | engine/specials.asm | 6 | ||||
-rw-r--r-- | hram.asm | 15 | ||||
-rw-r--r-- | items/item_effects.asm | 12 | ||||
-rw-r--r-- | main.asm | 263 | ||||
-rw-r--r-- | maps/BattleTower1F.asm | 170 | ||||
-rw-r--r-- | maps/BattleTowerBattleRoom.asm | 56 | ||||
-rw-r--r-- | maps/BattleTowerHallway.asm | 48 | ||||
-rw-r--r-- | misc/mobile_45.asm | 319 | ||||
-rw-r--r-- | misc/mobile_5f.asm | 38 | ||||
-rw-r--r-- | text/battle.asm | 50 | ||||
-rw-r--r-- | text/battle_tower.asm | 6 | ||||
-rw-r--r-- | text/common_2.asm | 18 | ||||
-rw-r--r-- | text/common_3.asm | 12 | ||||
-rw-r--r-- | text/common_4.asm | 10 | ||||
-rw-r--r-- | wram.asm | 85 |
21 files changed, 963 insertions, 788 deletions
diff --git a/battle/ai/items.asm b/battle/ai/items.asm index 5cd3fd7fc..46f04bf65 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -1,4 +1,4 @@ -Function38000: ; 38000 +AI_SwitchOrTryItem: ; 38000 and a ld a, [IsInBattle] @@ -21,7 +21,7 @@ Function38000: ; 38000 jr nz, DontSwitch ld hl, TrainerClassAttributes + 5 - ld a, [wcfc0] + ld a, [InBattleTowerBattle] ; Load always the first TrainerClass for BattleTower-Trainers and a jr nz, .ok ld a, [TrainerClass] @@ -73,6 +73,7 @@ SwitchOften: ; 38045 ld a, [wc717] and $f inc a + ; In register 'a' is the number (1-6) of the Pkmn to switch to ld [wc718], a jp AI_TrySwitch ; 38083 @@ -148,7 +149,7 @@ SwitchSometimes: ; 380c1 ; 380ff -Function380ff: ; 380ff +CheckSubstatusCantRun: ; 380ff ld a, [EnemySubStatus5] bit SUBSTATUS_CANT_RUN, a ret @@ -156,7 +157,8 @@ Function380ff: ; 380ff AI_TryItem: ; 38105 - ld a, [wcfc0] + ; items are not allowed in the BattleTower + ld a, [InBattleTowerBattle] and a ret nz @@ -565,7 +567,7 @@ Function383a3: ; 383a3 (e:43a3) call AIUsedItemSound call AI_HealStatus ld a, FULL_HEAL - jp Function38568 + jp PrintText_UsedItemOn_AND_AIUpdateHUD Function383ae: ; 383ae (e:43ae) ld a, MAX_POTION @@ -658,7 +660,7 @@ Function383f8: ; 383f8 .asm_38436 Function38436: ; 38436 - call Function38571 + call PrintText_UsedItemOn hlcoord 2, 2 xor a ld [wd10a], a @@ -715,7 +717,7 @@ AI_Switch: ; 3846c call CopyBytes pop af jr c, .asm_384a3 - ld hl, UnknownText_0x384d0 + ld hl, TextJump_EnemyWithdrew call PrintText .asm_384a3 ld a, $1 @@ -735,8 +737,8 @@ AI_Switch: ; 3846c ret ; 384d0 -UnknownText_0x384d0: ; 384d0 - text_jump UnknownText_0x1bcf9c +TextJump_EnemyWithdrew: ; 384d0 + text_jump Text_EnemyWithdrew db "@" ; 384d5 @@ -744,7 +746,7 @@ Function384d5: ; 384d5 call AIUsedItemSound call AI_HealStatus ld a, FULL_HEAL_RED - jp Function38568 + jp PrintText_UsedItemOn_AND_AIUpdateHUD ; 384e0 AI_HealStatus: ; 384e0 @@ -765,7 +767,7 @@ Function384f7: ; 384f7 ld hl, EnemySubStatus4 set SUBSTATUS_X_ACCURACY, [hl] ld a, X_ACCURACY - jp Function38568 + jp PrintText_UsedItemOn_AND_AIUpdateHUD ; 38504 Function38504: ; 38504 @@ -773,7 +775,7 @@ Function38504: ; 38504 ld hl, EnemySubStatus4 set SUBSTATUS_MIST, [hl] ld a, GUARD_SPEC - jp Function38568 + jp PrintText_UsedItemOn_AND_AIUpdateHUD ; 38511 Function38511: ; 38511 @@ -781,7 +783,7 @@ Function38511: ; 38511 ld hl, EnemySubStatus4 set SUBSTATUS_FOCUS_ENERGY, [hl] ld a, DIRE_HIT - jp Function38568 + jp PrintText_UsedItemOn_AND_AIUpdateHUD ; 3851e Function3851e: ; 3851e @@ -832,23 +834,29 @@ Function38553: ; 38553 ld b, SP_ATTACK ld a, X_SPECIAL + +; Parameter +; a = ITEM_CONSTANT +; b = BATTLE_CONSTANT (ATTACK, DEFENSE, SPEED, SP_ATTACK, SP_DEFENSE, ACCURACY, EVASION) Function38557: ld [wd1f1], a push bc - call Function38571 + call PrintText_UsedItemOn pop bc callba Function361ef jp AIUpdateHUD ; 38568 -Function38568: ; 38568 +; Parameter +; a = ITEM_CONSTANT +PrintText_UsedItemOn_AND_AIUpdateHUD: ; 38568 ld [wd1f1], a - call Function38571 + call PrintText_UsedItemOn jp AIUpdateHUD ; 38571 -Function38571: ; 38571 +PrintText_UsedItemOn: ; 38571 ld a, [wd1f1] ld [wd265], a call GetItemName @@ -856,11 +864,11 @@ Function38571: ; 38571 ld de, wd050 ld bc, ITEM_NAME_LENGTH call CopyBytes - ld hl, UnknownText_0x3858c + ld hl, TextJump_EnemyUsedOn jp PrintText ; 3858c -UnknownText_0x3858c: ; 3858c - text_jump UnknownText_0x1bcfaf +TextJump_EnemyUsedOn: ; 3858c + text_jump Text_EnemyUsedOn db "@" ; 38591 diff --git a/battle/core.asm b/battle/core.asm index 56587ca75..30d53c7d5 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -63,7 +63,7 @@ Function3c000: ; 3c000 xor a ld [CurPartyMon], a .asm_3c06b - call Function3d887 + call CheckIfPartyHasPkmnToBattleWith jr nz, .asm_3c076 ld hl, CurPartyMon inc [hl] @@ -71,7 +71,7 @@ Function3c000: ; 3c000 .asm_3c076 ld a, [CurBattleMon] - ld [wc71a], a + ld [LastPlayerMon], a ld a, [CurPartyMon] ld [CurBattleMon], a inc a @@ -89,7 +89,7 @@ Function3c000: ; 3c000 call Function3d57a call Function3da0d call ResetPlayerStatLevels - call Function3f26d + call SendOutPkmnText call NewBattleMonStatus call BreakAttraction call Function3db5f @@ -121,7 +121,7 @@ Function3c000: ; 3c000 -Function3c0e5: ; 3c0e5 +WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5 call Function30b4 ld a, [wd0ee] and $c0 @@ -129,18 +129,21 @@ Function3c0e5: ; 3c0e5 ld [wd0ee], a ld a, [InLinkBattle] and a - ld hl, BattleText_0x807bd + ld hl, BattleText_WildFled jr z, .asm_3c115 + ld a, [wd0ee] and $c0 ld [wd0ee], a - ld hl, BattleText_0x807cf + ld hl, BattleText_EnemyFled call Function3d2e0 jr nc, .asm_3c115 + ld hl, wcd2a bit 4, [hl] jr nz, .asm_3c118 - ld hl, BattleText_0x81863 + + ld hl, BattleText_LinkErrorBattleCanceled .asm_3c115 call StdBattleTextBox @@ -160,6 +163,7 @@ Function3c0e5: ; 3c0e5 ret ; 3c12f + Function3c12f: ; 3c12f .loop call Function3c1bf @@ -296,9 +300,9 @@ Function3c1d6: ; 3c1d6 .asm_3c21e call Function3c8eb call Function3c93c - call Function3ca8f - call Function3cafb - call Function3cb36 + call HanleDefrost + call HandleSafeguard + call HandleScreens call Function3de97 call Function3dcf9 call UpdateBattleMonInParty @@ -446,7 +450,7 @@ Function3c300: ; 3c300 ret .asm_3c30f - call Function3c0e5 + call WildFled_EnemyFled_LinkBattleCanceled scf ret ; 3c314 @@ -935,11 +939,11 @@ GetMoveEffect: ; 3c5ec Function3c5fe: ; 3c5fe call Function309d call Function3c543 - jp c, Function3c0e5 + jp c, WildFled_EnemyFled_LinkBattleCanceled call SetEnemyTurn ld a, $1 ld [wc70f], a - callab Function38000 + callab AI_SwitchOrTryItem jr c, .asm_3c62f call Function3c6de call Function3d2e0 @@ -980,7 +984,7 @@ Function3c664: ; 3c664 xor a ld [wc70f], a call SetEnemyTurn - callab Function38000 + callab AI_SwitchOrTryItem push af call Function3c6cf pop bc @@ -1004,7 +1008,7 @@ Function3c664: ; 3c664 jr c, .asm_3c6be call Function309d call Function3c543 - jp c, Function3c0e5 + jp c, WildFled_EnemyFled_LinkBattleCanceled call Function3c6de call Function3d2e0 ret c @@ -1528,7 +1532,7 @@ Function3c93c: ; 3c93c call SwitchTurnCore call Function3ddc8 call SwitchTurnCore - ld hl, BattleText_0x80899 + ld hl, BattleText_UserRecoveredPPUsing jp StdBattleTextBox ; 3ca26 @@ -1590,7 +1594,7 @@ Function3ca26: ; 3ca26 jp UpdateEnemyMonInParty ; 3ca8f -Function3ca8f: ; 3ca8f +HanleDefrost: ; 3ca8f ld a, [$ffcb] cp $1 jr z, .asm_3ca9a @@ -1648,7 +1652,7 @@ Function3ca8f: ; 3ca8f jp StdBattleTextBox ; 3cafb -Function3cafb: ; 3cafb +HandleSafeguard: ; 3cafb ld a, [$ffcb] cp $1 jr z, .asm_3cb06 @@ -1682,12 +1686,11 @@ Function3cafb: ; 3cafb .asm_3cb2e ld [hBattleTurn], a - ld hl, BattleText_0x808d2 + ld hl, BattleText_SafeguardFaded jp StdBattleTextBox -; 3cb36 -Function3cb36: ; 3cb36 +HandleScreens: ; 3cb36 ld a, [$ffcb] cp 1 jr z, .Both @@ -1739,7 +1742,7 @@ FadeLightScreen: ; 3cb80 res SCREENS_LIGHT_SCREEN, [hl] push hl push de - ld hl, BattleText_0x808e7 + ld hl, BattleText_PkmnnLightScreenFell call StdBattleTextBox pop de pop hl @@ -1850,13 +1853,13 @@ endr ; 3cc2d .WeatherMessages - dw BattleText_0x8091f - dw BattleText_0x80938 - dw BattleText_0x80951 + dw BattleText_RainContinuesToFall + dw BattleText_TheSunlightIsStrong + dw BattleText_TheSandstormRages .WeatherEndedMessages - dw BattleText_0x80967 - dw BattleText_0x8097a - dw BattleText_0x8098f + dw BattleText_TheRainStopped + dw BattleText_TheSunlightFaded + dw BattleText_TheSandstormSubsided ; 3cc39 Function3cc39: ; 3cc39 @@ -2143,19 +2146,19 @@ Function3cd55: ; 3cd55 .asm_3cda4 call Function3d227 call Function3d2e0 - jp c, Function3c0e5 + jp c, WildFled_EnemyFled_LinkBattleCanceled ld a, $1 ld [wd0ec], a call Function3cf4a - jp z, Function3c0e5 + jp z, WildFled_EnemyFled_LinkBattleCanceled jr Function3cdca .asm_3cdba ld a, $1 ld [wd0ec], a call Function3cf4a - jp z, Function3c0e5 + jp z, WildFled_EnemyFled_LinkBattleCanceled xor a ld [wd0ec], a ret @@ -2356,7 +2359,7 @@ Function3cef1: ; 3cef1 hlcoord 9, 7 lb bc, 5, 11 call ClearBox - ld hl, BattleText_0x80a75 + ld hl, BattleText_PkmnFainted jp StdBattleTextBox ; 3cf14 @@ -2370,7 +2373,7 @@ Function3cf14: ; 3cf14 hlcoord 1, 0 lb bc, 4, 10 call ClearBox - ld hl, BattleText_0x809a8 + ld hl, BattleText_EnemyPkmnFainted jp StdBattleTextBox ; 3cf35 @@ -2454,16 +2457,18 @@ Function3cfa4: ; 3cfa4 ld a, b call z, Function3d0ea callab Battle_GetTrainerName - ld hl, BattleText_0x809da + ld hl, BattleText_EnemyWasDefeated call StdBattleTextBox call IsMobileBattle jr z, .asm_3cff5 ld a, [InLinkBattle] and a ret nz - ld a, [wcfc0] + + ld a, [InBattleTowerBattle] bit 0, a jr nz, .asm_3d006 + call Function3ebd8 ld c, $28 call DelayFrames @@ -2784,14 +2789,14 @@ Function3d14e: ; 3d14e .asm_3d190 call Function3d227 call Function3d2e0 - jp c, Function3c0e5 + jp c, WildFled_EnemyFled_LinkBattleCanceled ld a, c and a ret nz ld a, $1 ld [wd0ec], a call Function3cf4a - jp z, Function3c0e5 + jp z, WildFled_EnemyFled_LinkBattleCanceled jp Function3cdca ; 3d1aa @@ -2840,7 +2845,7 @@ Function3d1f8: ; 3d1f8 and a dec a ret nz - ld hl, BattleText_0x80a83 + ld hl, BattleText_UseNextMon call StdBattleTextBox .asm_3d20a lb bc, 1, 7 @@ -2897,7 +2902,7 @@ Function3d227: ; 3d227 .asm_3d26c call ClearSprites ld a, [CurBattleMon] - ld [wc71a], a + ld [LastPlayerMon], a ld a, [CurPartyMon] ld [CurBattleMon], a call Function3d581 @@ -2909,7 +2914,7 @@ Function3d227: ; 3d227 call WriteBackup call ClearSGB call Function32f9 - call Function3f26d + call SendOutPkmnText call NewBattleMonStatus call BreakAttraction call Function3db5f @@ -2925,13 +2930,13 @@ Function3d227: ; 3d227 Function3d2b3: ; 3d2b3 ld a, [CurBattleMon] - ld [wc71a], a + ld [LastPlayerMon], a ld a, [CurPartyMon] ld [CurBattleMon], a call Function3d581 call Function3da0d call ResetPlayerStatLevels - call Function3f26d + call SendOutPkmnText call NewBattleMonStatus call BreakAttraction call Function3db5f @@ -2945,10 +2950,13 @@ Function3d2b3: ; 3d2b3 Function3d2e0: ; 3d2e0 ld a, [InLinkBattle] cp $4 - jr nz, .asm_3d2ef + jr nz, .asm_3d2ef ; It's not a mobile battle + ld a, [wcd2b] and a jr z, .asm_3d2ef + +; We have a mobile battle and something else happened scf ret @@ -3000,7 +3008,7 @@ PickPartyMonInBattle: ; 3d33c call Function3d313 call Function3d329 ret c - call Function3d887 + call CheckIfPartyHasPkmnToBattleWith jr z, .loop xor a ret @@ -3067,7 +3075,7 @@ LostBattle: ; 3d38e ld a, 1 ld [BattleEnded], a - ld a, [wcfc0] + ld a, [InBattleTowerBattle] bit 0, a jr nz, .asm_3d3bd @@ -3280,7 +3288,7 @@ Function3d4c3: ; 3d4c3 call Function3d7a0 call NewEnemyMonStatus call ResetEnemyStatLevels - call Function3d7c7 + call Function_SetEnemyPkmnAndSendOutAnimation call BreakAttraction call Function3d57a ret @@ -3299,8 +3307,8 @@ Function3d4e1: ; 3d4e1 call Function3d74b push af call Function3d7a0 - call Function3d7b8 - call Function3d7c7 + call Function_BattleTextEnemySentOut + call Function_SetEnemyPkmnAndSendOutAnimation pop af ret c xor a @@ -3323,8 +3331,8 @@ Function3d517: ; 3d517 ld a, 1 ld [wEnemyIsSwitching], a call Function3d7a0 - call Function3d7b8 - jp Function3d7c7 + call Function_BattleTextEnemySentOut + jp Function_SetEnemyPkmnAndSendOutAnimation ; 3d533 Function3d533: ; 3d533 @@ -3648,7 +3656,7 @@ Function3d74b: ; 3d74b ld a, [CurPartyMon] push af callab Battle_GetTrainerName - ld hl, BattleText_0x80aca + ld hl, BattleText_EnemyIsAboutToUseWillPlayerChangePkmn call StdBattleTextBox lb bc, 1, 7 call PlaceYesNoBox @@ -3659,7 +3667,7 @@ Function3d74b: ; 3d74b call PickSwitchMonInBattle jr c, .asm_3d791 ld a, [CurBattleMon] - ld [wc71a], a + ld [LastPlayerMon], a ld a, [CurPartyMon] ld [CurBattleMon], a call ClearPalettes @@ -3697,14 +3705,14 @@ Function3d7a0: ; 3d7a0 jp Function3ee27 ; 3d7b8 -Function3d7b8: ; 3d7b8 +Function_BattleTextEnemySentOut: ; 3d7b8 callab Battle_GetTrainerName - ld hl, BattleText_0x80af8 + ld hl, BattleText_EnemySentOut call StdBattleTextBox jp WaitBGMap ; 3d7c7 -Function3d7c7: ; 3d7c7 +Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7 ld a, [TempEnemyMonSpecies] ld [CurPartySpecies], a ld [CurSpecies], a @@ -3806,13 +3814,14 @@ Function3d873: ; 3d873 ; 3d887 -Function3d887: ; 3d887 +CheckIfPartyHasPkmnToBattleWith: ; 3d887 ld a, [CurPartyMon] ld hl, PartyMon1HP call GetPartyLocation ld a, [hli] or [hl] ret nz + ld a, [wd264] and a jr nz, .asm_3d8b1 @@ -3823,9 +3832,10 @@ Function3d887: ; 3d887 add hl, bc ld a, [hl] cp EGG - ld hl, BattleText_0x80b26 + ld hl, BattleText_AnEGGCantBattle jr z, .asm_3d8ae - ld hl, BattleText_0x80b0b + + ld hl, BattleText_TheresNoWillToBattle .asm_3d8ae call StdBattleTextBox @@ -3890,29 +3900,30 @@ Function3d8b3: ; 3d8b3 inc a ld [wd267], a ld a, [hli] - ld [$ffb5], a + ld [hStringCmpString2 + 0], a ld a, [hl] - ld [$ffb6], a + ld [hStringCmpString2 + 1], a ld a, [de] inc de - ld [$ffb1], a + ld [hStringCmpString1 + 0], a ld a, [de] - ld [$ffb2], a + ld [hStringCmpString1 + 1], a call Function30b4 - ld de, $ffb5 - ld hl, $ffb1 + ld de, hStringCmpString2 + ld hl, hStringCmpString1 ld c, $2 call StringCmp jr nc, .asm_3d9a2 + xor a ld [hMultiplicand], a ld a, $20 ld [hMultiplier], a call Multiply - ld a, [$ffb5] - ld [hProduct], a - ld a, [$ffb6] - ld [hMultiplicand], a + ld a, [hProduct + 2] + ld [hDividend + 0], a + ld a, [hProduct + 3] + ld [hDividend + 1], a ld a, [$ffb1] ld b, a ld a, [$ffb2] @@ -3922,10 +3933,10 @@ Function3d8b3: ; 3d8b3 rr a and a jr z, .asm_3d9a2 - ld [hMultiplier], a + ld [hDivisor], a ld b, $2 call Divide - ld a, [$ffb5] + ld a, [hQuotient + 1] and a jr nz, .asm_3d9a2 ld a, [wd267] @@ -3934,7 +3945,7 @@ Function3d8b3: ; 3d8b3 dec c jr z, .asm_3d97a ld b, $1e - ld a, [$ffb6] + ld a, [hQuotient + 2] add b ld [$ffb6], a jr c, .asm_3d9a2 @@ -3948,15 +3959,15 @@ Function3d8b3: ; 3d8b3 jr nc, .asm_3d9a2 ld a, $1 ld [wd0ec], a - ld hl, BattleText_0x80b3b + ld hl, BattleText_CantEscape2 jr .asm_3d995 .asm_3d98d - ld hl, BattleText_0x80ba0 + ld hl, BattleText_CantEscape jr .asm_3d995 .asm_3d992 - ld hl, BattleText_0x80b49 + ld hl, BattleText_TheresNoEscapeFromTrainerBattle .asm_3d995 call StdBattleTextBox @@ -4001,7 +4012,7 @@ Function3d8b3: ; 3d8b3 call WaitPlaySFX pop de call WaitSFX - ld hl, BattleText_0x80b77 + ld hl, BattleText_GotAwaySafely call StdBattleTextBox call WaitSFX call Function309d @@ -4013,7 +4024,7 @@ Function3d8b3: ; 3d8b3 ld hl, wcd2a bit 4, [hl] jr nz, .asm_3da05 - ld hl, BattleText_0x81863 + ld hl, BattleText_LinkErrorBattleCanceled call StdBattleTextBox .asm_3da05 @@ -4172,7 +4183,7 @@ endr Function3db32: ; 3db32 call ClearSprites ld a, [CurBattleMon] - ld [wc71a], a + ld [LastPlayerMon], a ld a, [CurPartyMon] ld [CurBattleMon], a call Function3d581 @@ -4341,7 +4352,7 @@ Function3dc5b: ; 3dc5b and a jr z, .asm_3dc7e ld hl, DoEnemyTurn - ld a, [wc71a] + ld a, [LastPlayerMon] ld [CurBattleMon], a .asm_3dc7e ld a, BANK(DoPlayerTurn) @@ -4359,7 +4370,7 @@ Function3dc5b: ; 3dc5b and a jr z, .asm_3dcc0 - ld a, [wc71a] + ld a, [LastPlayerMon] call UpdateBattleMon ld hl, BattleMonHP ld a, [hli] @@ -4376,7 +4387,7 @@ Function3dc5b: ; 3dc5b ld b, $0 predef FlagPredef call Function3d43b - ld hl, BattleText_0x80a75 + ld hl, BattleText_PkmnFainted jr .asm_3dcdf .asm_3dcc0 @@ -4392,7 +4403,7 @@ Function3dc5b: ; 3dc5b call PlaySFX call WaitSFX call Function3d432 - ld hl, BattleText_0x809a8 + ld hl, BattleText_EnemyPkmnFainted .asm_3dcdf call StdBattleTextBox @@ -5003,17 +5014,18 @@ DrawEnemyHUD: ; 3e043 ld hl, EnemyMonHP ld a, [hli] - ld [$ffb5], a + ld [hMultiplicand + 1], a ld a, [hld] - ld [$ffb6], a + ld [hMultiplicand + 2], a or [hl] jr nz, .asm_3e0d1 + ld c, a ld e, a ld d, HP_BAR_LENGTH jp .asm_3e11a -.asm_3e0d1 +.asm_3e0d1 xor a ld [hMultiplicand], a ld a, HP_BAR_LENGTH_PX @@ -5032,11 +5044,11 @@ DrawEnemyHUD: ; 3e043 rr a srl b rr a - ld [hMultiplier], a - ld a, [$ffb5] + ld [hDivisor], a + ld a, [hProduct + 2] ld b, a srl b - ld a, [$ffb6] + ld a, [hProduct + 3] rr a srl b rr a @@ -5046,13 +5058,13 @@ DrawEnemyHUD: ; 3e043 .asm_3e105 ld a, [$ffb5] - ld [hProduct], a + ld [hDividend + 0], a ld a, [$ffb6] - ld [hMultiplicand], a + ld [hDividend + 1], a ld a, $2 ld b, a call Divide - ld a, [$ffb6] + ld a, [hQuotient + 2] ld e, a ld a, HP_BAR_LENGTH ld d, a @@ -5160,7 +5172,7 @@ LoadBattleMenu2: ; 3e19b ld hl, wcd2a bit 4, [hl] jr nz, .error - ld hl, BattleText_0x81863 + ld hl, BattleText_LinkErrorBattleCanceled call StdBattleTextBox ld c, 60 call DelayFrames @@ -5174,7 +5186,7 @@ BattleMenu_Pack: ; 3e1c7 and a jp nz, ItemsCantBeUsed - ld a, [wcfc0] + ld a, [InBattleTowerBattle] and a jp nz, ItemsCantBeUsed @@ -5388,10 +5400,10 @@ Function3e358: ; 3e358 jp Function3e299 .asm_3e381 - call Function3d887 + call CheckIfPartyHasPkmnToBattleWith jp z, Function3e299 ld a, [CurBattleMon] - ld [wc71a], a + ld [LastPlayerMon], a ld a, $2 ld [wd0ec], a call ClearPalettes @@ -5437,7 +5449,7 @@ Function3e3ad: ; 3e3ad jp c, .asm_3e3ca cp $f jr nz, .asm_3e3e9 - call Function3c0e5 + call WildFled_EnemyFled_LinkBattleCanceled ret .asm_3e3e9 @@ -5486,7 +5498,7 @@ BattleMonEntrance: ; 3e40b call Function3d581 call Function3da0d call ResetPlayerStatLevels - call Function3f26d + call SendOutPkmnText call NewBattleMonStatus call BreakAttraction call Function3db5f @@ -6213,7 +6225,8 @@ LoadEnemyMon: ; 3e8eb and a jp nz, Function3dabd - ld a, [wcfc0] ; ???? +; and also not in a BattleTower-Battle + ld a, [InBattleTowerBattle] ; ???? bit 0, a jp nz, Function3dabd @@ -7027,25 +7040,25 @@ Function3ecb7: ; 3ecb7 ld b, 0 add hl, bc xor a - ld [hMultiplicand], a + ld [hMultiplicand + 0], a ld a, [de] - ld [$ffb5], a + ld [hMultiplicand + 1], a inc de ld a, [de] - ld [$ffb6], a + ld [hMultiplicand + 2], a ld a, [hli] ld [hMultiplier], a call Multiply ld a, [hl] - ld [hMultiplier], a + ld [hDivisor], a ld b, $4 call Divide pop hl ; Cap at 999. - ld a, [$ffb6] + ld a, [hQuotient + 2] sub 999 % $100 - ld a, [$ffb5] + ld a, [hQuotient + 1] sbc 999 / $100 jp c, .asm_3ed1e @@ -7106,7 +7119,7 @@ BadgeStatBoosts: ; 3ed45 and a ret nz - ld a, [wcfc0] + ld a, [InBattleTowerBattle] and a ret nz @@ -7327,9 +7340,11 @@ Function3ee3b: ; 3ee3b ld a, [InLinkBattle] and a ret nz - ld a, [wcfc0] + + ld a, [InBattleTowerBattle] bit 0, a ret nz + call Function3f0d4 xor a ld [CurPartyMon], a @@ -7407,15 +7422,15 @@ endr dec c jr nz, .asm_3ee7c xor a - ld [hMultiplicand], a - ld [$ffb5], a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a ld a, [EnemyMonBaseExp] - ld [$ffb6], a + ld [hMultiplicand + 2], a ld a, [EnemyMonLevel] ld [hMultiplier], a call Multiply ld a, $7 - ld [hMultiplier], a + ld [hDivisor], a ld b, $4 call Divide pop bc @@ -7957,36 +7972,37 @@ Function3f22c: ; 3f22c ld a, $1 ld [hBGMapMode], a ret -; 3f26d - -Function3f26d: ; 3f26d -; SendOutMonText? +SendOutPkmnText: ; 3f26d ld a, [InLinkBattle] and a jr z, .asm_3f27c - ld hl, UnknownText_0x3f2d1 - ld a, [wd264] + + ld hl, JumpText_GoPkmn ; If we're in a LinkBattle print just "Go <PlayerMon>" + + ld a, [wd264] ; besides this variable is set. which stands for ??? and a jr nz, .asm_3f2ce .asm_3f27c +; Depending on the HP of the enemy Pkmn, the game prints a different text ld hl, EnemyMonHP ld a, [hli] or [hl] - ld hl, UnknownText_0x3f2d1 + ld hl, JumpText_GoPkmn jr z, .asm_3f2ce + xor a - ld [hMultiplicand], a + ld [hMultiplicand + 0], a ld hl, EnemyMonHP ld a, [hli] ld [wc6ea], a - ld [$ffb5], a + ld [hMultiplicand + 1], a ld a, [hl] ld [wc6eb], a - ld [$ffb6], a + ld [hMultiplicand + 2], a ld a, $19 ld [hMultiplier], a call Multiply @@ -7999,55 +8015,55 @@ Function3f26d: ; 3f26d rr b ld a, b ld b, $4 - ld [hMultiplier], a + ld [hDivisor], a call Divide - ld a, [$ffb6] - ld hl, UnknownText_0x3f2d1 + ld a, [hQuotient + 2] + ld hl, JumpText_GoPkmn cp $46 jr nc, .asm_3f2ce - ld hl, UnknownText_0x3f2d8 + ld hl, JumpText_DoItPkmn cp $28 jr nc, .asm_3f2ce - ld hl, UnknownText_0x3f2df + ld hl, JumpText_GoForItPkmn cp $a jr nc, .asm_3f2ce - ld hl, UnknownText_0x3f2e6 + ld hl, JumpText_YourFoesWeakGetmPkmn .asm_3f2ce jp BattleTextBox ; 3f2d1 -UnknownText_0x3f2d1: ; 3f2d1 - text_jump UnknownText_0x1c02df +JumpText_GoPkmn: ; 3f2d1 + text_jump Text_GoPkmn start_asm - jr Function3f2eb + jr Function_TextJump_BattleMonNick01 ; 3f2d6 -UnknownText_0x3f2d8: ; 3f2d8 - text_jump UnknownText_0x1c02e6 +JumpText_DoItPkmn: ; 3f2d8 + text_jump Text_DoItPkmn start_asm - jr Function3f2eb + jr Function_TextJump_BattleMonNick01 ; 3f2dd -UnknownText_0x3f2df: ; 3f2df - text_jump UnknownText_0x1c02f0 +JumpText_GoForItPkmn: ; 3f2df + text_jump Text_GoForItPkmn start_asm - jr Function3f2eb + jr Function_TextJump_BattleMonNick01 ; 3f2e4 -UnknownText_0x3f2e6: ; 3f2e6 - text_jump UnknownText_0x1c02fe +JumpText_YourFoesWeakGetmPkmn: ; 3f2e6 + text_jump Text_YourFoesWeakGetmPkmn start_asm ; 3f2eb -Function3f2eb: ; 3f2eb - ld hl, UnknownText_0x3f2ef +Function_TextJump_BattleMonNick01: ; 3f2eb + ld hl, TextJump_BattleMonNick01 ret ; 3f2ef -UnknownText_0x3f2ef: ; 3f2ef - text_jump UnknownText_0x1c0317 +TextJump_BattleMonNick01: ; 3f2ef + text_jump Text_BattleMonNick01 db "@" ; 3f2f4 @@ -8071,12 +8087,12 @@ Function3f2ff: ; 3f2ff dec hl ld a, [de] sub b - ld [$ffb6], a + ld [hMultiplicand + 2], a dec de ld b, [hl] ld a, [de] sbc b - ld [$ffb5], a + ld [hMultiplicand + 1], a ld a, $19 ld [hMultiplier], a call Multiply @@ -8089,11 +8105,11 @@ Function3f2ff: ; 3f2ff rr b ld a, b ld b, $4 - ld [hMultiplier], a + ld [hDivisor], a call Divide pop bc pop de - ld a, [$ffb6] + ld a, [hQuotient + 2] ld hl, UnknownText_0x3f348 and a ret z @@ -8256,10 +8272,10 @@ Function3f39c: ; 3f39c .asm_3f40c ld a, c - ld [hMultiplier], a + ld [hDivisor], a ld b, $4 call Divide - ld a, [$ffb6] + ld a, [hQuotient + 2] ld b, a ld a, $40 sub b @@ -8713,7 +8729,7 @@ endr call Function3d0be ld hl, BattleText_0x80730 call StdBattleTextBox - ld a, [wcfc0] + ld a, [InBattleTowerBattle] bit 0, a ret z call ClearTileMap diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 4d53eec08..fd35756ee 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -700,7 +700,7 @@ BattleCommand02: ; 343db and a ret nz - ld a, [wcfc0] + ld a, [InBattleTowerBattle] and a ret nz @@ -1458,37 +1458,37 @@ BattleCommand07: ; 346d2 ld [AttackMissed], a xor a .asm_34775 - ld [$ffb7], a + ld [hMultiplier], a add b ld [TypeModifier], a xor a - ld [$ffb4], a + ld [hMultiplicand + 0], a ld hl, CurDamage ld a, [hli] - ld [$ffb5], a + ld [hMultiplicand + 1], a ld a, [hld] - ld [$ffb6], a + ld [hMultiplicand + 2], a call Multiply - ld a, [$ffb4] + ld a, [hProduct + 1] ld b, a - ld a, [$ffb5] + ld a, [hProduct + 2] or b ld b, a - ld a, [$ffb6] + ld a, [hProduct + 3] or b jr z, .asm_347ab ld a, $a - ld [$ffb7], a + ld [hDivisor], a ld b, $4 call Divide - ld a, [$ffb5] + ld a, [hQuotient + 1] ld b, a - ld a, [$ffb6] + ld a, [hQuotient + 2] or b jr nz, .asm_347ab @@ -1572,11 +1572,11 @@ Function347d3: ; 347d3 jr .asm_347e7 .asm_3480b xor a - ld [$ffb3], a - ld [$ffb4], a - ld [$ffb5], a + ld [hDividend + 0], a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a ld a, [hli] - ld [$ffb6], a + ld [hMultiplicand + 2], a ld a, [wd265] ld [hMultiplier], a call Multiply @@ -1586,7 +1586,7 @@ Function347d3: ; 347d3 ld b, 4 call Divide pop bc - ld a, [$ffb6] + ld a, [hQuotient + 2] ld [wd265], a jr .asm_347e7 @@ -2305,12 +2305,12 @@ BattleCommand08: ; 34cfd .go ; Start with the maximum damage. xor a - ld [$ffb4], a + ld [hMultiplicand + 0], a dec hl ld a, [hli] - ld [$ffb5], a + ld [hMultiplicand + 1], a ld a, [hl] - ld [$ffb6], a + ld [hMultiplicand + 2], a ; Multiply by 85-100%... .loop @@ -2319,20 +2319,20 @@ BattleCommand08: ; 34cfd cp $d9 ; 85% jr c, .loop - ld [$ffb7], a + ld [hMultiplier], a call Multiply ; ...divide by 100%... ld a, $ff ; 100% - ld [$ffb7], a + ld [hDivisor], a ld b, $4 call Divide ; ...to get .85-1.00x damage. - ld a, [$ffb5] + ld a, [hQuotient + 1] ld hl, CurDamage ld [hli], a - ld a, [$ffb6] + ld a, [hQuotient + 2] ld [hl], a ret ; 34d32 @@ -2594,10 +2594,10 @@ BattleCommand09: ; 34d32 sub c ld c, a xor a - ld [$ffb4], a - ld [$ffb5], a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a ld a, [hl] - ld [$ffb6], a + ld [hMultiplicand + 2], a push hl ld d, $2 @@ -2611,15 +2611,15 @@ BattleCommand09: ; 34d32 add hl, bc pop bc ld a, [hli] - ld [$ffb7], a + ld [hMultiplier], a call Multiply ld a, [hl] - ld [$ffb7], a + ld [hDivisor], a ld b, $4 call Divide - ld a, [$ffb6] + ld a, [hQuotient + 2] ld b, a - ld a, [$ffb5] + ld a, [hQuotient + 1] or b jr nz, .asm_34ea2 ld [$ffb5], a @@ -3841,7 +3841,7 @@ BattleCommanda1: ; 35461 and a jr nz, .asm_35532 - ld a, [wcfc0] + ld a, [InBattleTowerBattle] and a jr nz, .asm_35532 @@ -4344,18 +4344,18 @@ BattleCommand3f: ; 35726 .asm_3579d xor a ld [$ffb3], a - ld [$ffb4], a + ld [hMultiplicand + 0], a ld a, [hli] - ld [$ffb5], a + ld [hMultiplicand + 1], a ld a, [hli] - ld [$ffb6], a + ld [hMultiplicand + 2], a ld a, $30 - ld [$ffb7], a + ld [hMultiplier], a call Multiply ld a, [hli] ld b, a ld a, [hl] - ld [$ffb7], a + ld [hDivisor], a ld a, b and a jr z, .asm_357d6 @@ -4365,22 +4365,22 @@ BattleCommand3f: ; 35726 rr a srl b rr a - ld [$ffb7], a - ld a, [$ffb5] + ld [hDivisor], a + ld a, [hProduct + 2] ld b, a srl b - ld a, [$ffb6] + ld a, [hProduct + 3] rr a srl b rr a - ld [$ffb6], a + ld [hDividend + 3], a ld a, b - ld [$ffb5], a + ld [hDividend + 2], a .asm_357d6 ld b, $4 call Divide - ld a, [$ffb6] + ld a, [hQuotient + 2] ld b, a ld hl, .FlailPower @@ -5544,7 +5544,7 @@ BattleCommand14: ; 35e5c call AnimateCurrentMove ld b, $7 - ld a, [wcfc0] + ld a, [InBattleTowerBattle] and a jr z, .asm_35ea4 ld b, $3 @@ -5587,7 +5587,7 @@ Function35ece: ; 35ece and a jr nz, .asm_35eec - ld a, [wcfc0] + ld a, [InBattleTowerBattle] and a jr nz, .asm_35eec @@ -5676,18 +5676,23 @@ BattleCommand2f: ; 35f2c call GetBattleVar and a jr nz, .asm_35fb8 + ld a, [hBattleTurn] and a jr z, .asm_35f89 + ld a, [InLinkBattle] and a jr nz, .asm_35f89 - ld a, [wcfc0] + + ld a, [InBattleTowerBattle] and a jr nz, .asm_35f89 + ld a, [PlayerSubStatus5] bit SUBSTATUS_LOCK_ON, a jr nz, .asm_35f89 + call BattleRandom cp $40 jr c, .asm_35fb8 @@ -6323,11 +6328,12 @@ BattleCommand1d: ; 362e3 ld a, [hBattleTurn] and a jr z, .DidntMiss + ld a, [InLinkBattle] and a jr nz, .DidntMiss - ld a, [wcfc0] + ld a, [InBattleTowerBattle] and a jr nz, .DidntMiss @@ -6868,7 +6874,7 @@ rept 2 endr xor a - ld [hMultiplicand], a + ld [hMultiplicand + 0], a ld a, [de] ld [hMultiplicand + 1], a inc de @@ -8168,18 +8174,23 @@ BattleCommand30: ; 36dc7 ld a, [hBattleTurn] and a jr z, .asm_36e0e + ld a, [InLinkBattle] and a jr nz, .asm_36e0e - ld a, [wcfc0] + + ld a, [InBattleTowerBattle] and a jr nz, .asm_36e0e + ld a, [PlayerSubStatus5] bit SUBSTATUS_LOCK_ON, a jr nz, .asm_36e0e + call BattleRandom cp $40 jr c, .asm_36e52 + .asm_36e0e ld a, BATTLE_VARS_STATUS_OPP call GetBattleVarAddr @@ -9459,7 +9470,7 @@ BattleCommand60: ; 3784b ld hl, EnemyMonHappiness .ok xor a - ld [hMultiplicand], a + ld [hMultiplicand + 0], a ld [hMultiplicand + 1], a ld a, [hl] ld [hMultiplicand + 2], a @@ -9584,18 +9595,18 @@ BattleCommand63: ; 3790e .asm_3791a ld a, $ff sub [hl] - ld [$ffb6], a + ld [hMultiplicand + 2], a xor a - ld [$ffb4], a - ld [$ffb5], a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a ld a, 10 - ld [$ffb7], a + ld [hMultiplier], a call Multiply ld a, 25 - ld [$ffb7], a + ld [hDivisor], a ld b, 4 call Divide - ld a, [$ffb6] + ld a, [hQuotient + 2] ld d, a pop bc ret diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 48471c5f8..425801e8e 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -108,3 +108,8 @@ const_value = 1 const MOM_ITEM const MOM_DOLL +BATTLETOWER_PKMNSTRUCTLENGTH EQU $30 +BATTLETOWER_NROFPKMNS EQU 3 +BATTLETOWER_TRAINERDATALENGTH EQU $24 +BATTLETOWER_NROFTRAINERS EQU 7 + diff --git a/data/battle_tower.asm b/data/battle_tower.asm index 025807ac8..281c359d7 100644 --- a/data/battle_tower.asm +++ b/data/battle_tower.asm @@ -1,24 +1,31 @@ -Function1f8000: ; 1f8000 +Function_LoadOpponentTrainerAndPokemons: ; 1f8000 ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a + + ; Fill BT_OTrainer with zeros xor a - ld hl, w3_d100 - ld bc, $00e0 + ld hl, BT_OTrainer + ld bc, BT_OTrainerEnd - BT_OTrainer call ByteFill + + ; Write $ff into the Item-Slots ld a, $ff - ld [w3_d100 + $0c], a - ld [w3_d100 + $47], a - ld [w3_d100 + $82], a - ld de, w3_d100 + ld [BT_OTPkmn1Item], a + ld [BT_OTPkmn2Item], a + ld [BT_OTPkmn3Item], a + + ; Set BT_OTTrainer as start address to write the following data to + ld de, BT_OTrainer + ld a, [hRandomAdd] ld b, a -.asm_1f8022 +.asm_1f8022 ; loop to find a random trainer call Random ld a, [hRandomAdd] add b - ld b, a + ld b, a ; b contains the nr of the trainer IF DEF(CRYSTAL11) and $7f cp $46 @@ -28,38 +35,46 @@ ELSE ENDC jr nc, .asm_1f8022 ld b, a - ld a, BANK(sbe46) + + ld a, BANK(sNrOfBeatenBattleTowerTrainers) call GetSRAMBank - ld c, $7 - ld hl, sbe48 + + ld c, BATTLETOWER_NROFTRAINERS + ld hl, sBTTrainers .asm_1f803a ld a, [hli] cp b jr z, .asm_1f8022 dec c - jr nz, .asm_1f803a - ld hl, sbe48 - ld a, [sbe46] + jr nz, .asm_1f803a ; c <= 7 initialise all 7 trainers? + + ld hl, sBTTrainers + ld a, [sNrOfBeatenBattleTowerTrainers] ld c, a ld a, b ld b, 0 add hl, bc ld [hl], a + call CloseSRAM + push af +; Copy name (10 bytes) and class (1 byte) of trainer ld hl, BattleTowerTrainers ld bc, 11 call AddNTimes ld bc, 11 call CopyBytes - call Function1f8081 + + call Function_LoadRandomBattleTowerPkmn pop af - ld hl, Unknown_1f0000 - ld bc, $0024 + + ld hl, BattleTowerTrainerData + ld bc, BATTLETOWER_TRAINERDATALENGTH call AddNTimes - ld bc, $0024 + ld bc, BATTLETOWER_TRAINERDATALENGTH .asm_1f8070 - ld a, BANK(Unknown_1f0000) + ld a, BANK(BattleTowerTrainerData) call GetFarByte ld [de], a inc hl @@ -68,20 +83,24 @@ ENDC ld a, b or c jr nz, .asm_1f8070 + pop af ld [rSVBK], a + ret -; 1f8081 -Function1f8081: ; 1f8081 - ld c, $3 + +Function_LoadRandomBattleTowerPkmn: ; 1f8081 + ld c, BATTLETOWER_NROFPKMNS .loop push bc - ld a, BANK(sbe51) + ld a, BANK(sBTPkmnPrevTrainer1) call GetSRAMBank -.asm_1f8089 - ld a, [$d800] +.FindARandomBattleTowerPkmn + ; From Which LevelGroup are the Pkmn loaded + ; a = 1..10 + ld a, [wBTChoiceOfLvlGroup] ; [$d800] dec a ld hl, BattleTowerMons ld bc, BattleTowerMons2 - BattleTowerMons1 @@ -97,60 +116,65 @@ Function1f8081: ; 1f8081 and $1f cp (BattleTowerMons2 - BattleTowerMons1) / ($3b) jr nc, .asm_1f8099 + ; in register 'a' is the chosen Pkmn of the LevelGroup - ld bc, $3b + ; Check if Pkmn was already loaded before + ; Check current and the 2 previous teams + ; includes check if item is double at the current team + ld bc, BATTLETOWER_PKMNSTRUCTLENGTH + $b call AddNTimes ld a, [hli] ld b, a ld a, [hld] ld c, a - ld a, [w3_d100 + $0b] + ld a, [BT_OTPkmn1] cp b - jr z, .asm_1f8089 - ld a, [w3_d100 + $0c] + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn1Item] cp c - jr z, .asm_1f8089 - ld a, [w3_d100 + $46] + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn2] cp b - jr z, .asm_1f8089 - ld a, [w3_d100 + $47] + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn2Item] cp c - jr z, .asm_1f8089 - ld a, [w3_d100 + $81] + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn3] cp b - jr z, .asm_1f8089 - ld a, [w3_d100 + $82] + jr z, .FindARandomBattleTowerPkmn + ld a, [BT_OTPkmn3Item] cp c - jr z, .asm_1f8089 - ld a, [sbe51] + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevTrainer1] cp b - jr z, .asm_1f8089 - ld a, [sbe52] + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevTrainer2] cp b - jr z, .asm_1f8089 - ld a, [sbe53] + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevTrainer3] cp b - jr z, .asm_1f8089 - ld a, [sbe54] + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevPrevTrainer1] cp b - jr z, .asm_1f8089 - ld a, [sbe55] + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevPrevTrainer2] cp b - jr z, .asm_1f8089 - ld a, [sbe56] + jr z, .FindARandomBattleTowerPkmn + ld a, [sBTPkmnPrevPrevTrainer3] cp b - jr z, .asm_1f8089 + jr z, .FindARandomBattleTowerPkmn - ld bc, $3b + ld bc, BATTLETOWER_PKMNSTRUCTLENGTH + $b call CopyBytes + ld a, [wd265] push af push de - ld hl, -$3b + ld hl, - (BATTLETOWER_PKMNSTRUCTLENGTH + $b) add hl, de ld a, [hl] ld [wd265], a - ld bc, $0030 + ld bc, BATTLETOWER_PKMNSTRUCTLENGTH add hl, bc push hl call GetPokemonName @@ -159,6 +183,7 @@ Function1f8081: ; 1f8081 pop de ld bc, PKMN_NAME_LENGTH call CopyBytes + pop de pop af ld [wd265], a @@ -166,18 +191,18 @@ Function1f8081: ; 1f8081 dec c jp nz, .loop - ld a, [sbe51] - ld [sbe54], a - ld a, [sbe52] - ld [sbe55], a - ld a, [sbe53] - ld [sbe56], a - ld a, [w3_d100 + $0b] - ld [sbe51], a - ld a, [w3_d100 + $46] - ld [sbe52], a - ld a, [w3_d100 + $81] - ld [sbe53], a + ld a, [sBTPkmnPrevTrainer1] + ld [sBTPkmnPrevPrevTrainer1], a + ld a, [sBTPkmnPrevTrainer2] + ld [sBTPkmnPrevPrevTrainer2], a + ld a, [sBTPkmnPrevTrainer3] + ld [sBTPkmnPrevPrevTrainer3], a + ld a, [BT_OTPkmn1] + ld [sBTPkmnPrevTrainer1], a + ld a, [BT_OTPkmn2] + ld [sBTPkmnPrevTrainer2], a + ld a, [BT_OTPkmn3] + ld [sBTPkmnPrevTrainer3], a call CloseSRAM ret ; 1f814e diff --git a/engine/predef.asm b/engine/predef.asm index 22e323246..9ee46bf47 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -39,7 +39,7 @@ PredefPointers:: ; 856b add_predef Functiond88c add_predef Functionda96 add_predef Functiondb3f ; $8 - add_predef Functionde6e + add_predef SentPkmnIntoBox add_predef GiveEgg add_predef Functionc6e0 add_predef Functione167 diff --git a/engine/specials.asm b/engine/specials.asm index 409b47434..5a10090ec 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -142,9 +142,9 @@ SpecialsPointers:: ; c029 add_special Function170215 add_special Function1704e1 add_special Function17021d - add_special Function170b44 + add_special Function_LoadOpponentTrainerAndPokemonsWithOTSprite add_special Function11ba38 - add_special Function170bd3 + add_special SpecialCheckForBattleTowerRules add_special Function117656 add_special Reset add_special Function1011f1 @@ -156,7 +156,7 @@ SpecialsPointers:: ; c029 add_special Function11c1ab add_special Function170687 add_special Special_DisplayUnownWords - add_special Function17d224 + add_special Special_Menu_ChallengeExplanationCancel add_special Function17d2b6 add_special Function17d2ce add_special Function17f53d @@ -31,13 +31,16 @@ hConnectedMapWidth EQU $ffb0 hPastLeadingZeroes EQU $ffb3 -hDividend EQU $ffb3 -hDivisor EQU $ffb7 -hQuotient EQU $ffb4 +hStringCmpString1 EQU $ffb1 +hStringCmpString2 EQU $ffb5 -hMultiplicand EQU $ffb4 -hMultiplier EQU $ffb7 -hProduct EQU $ffb3 +hDividend EQU $ffb3 ; length in b register, before 'call Divide' (max 4 bytes) +hDivisor EQU $ffb7 ; 1 byte long +hQuotient EQU $ffb4 ; result (3 bytes long) + +hMultiplicand EQU $ffb4 ; 3 bytes long +hMultiplier EQU $ffb7 ; 1 byte long +hProduct EQU $ffb3 ; result (4 bytes long) hMathBuffer EQU $ffb8 diff --git a/items/item_effects.asm b/items/item_effects.asm index 8c574da88..6ad0d8947 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -273,7 +273,7 @@ endr jp z, .asm_e98e ld a, b - ld [$ffb6], a + ld [hMultiplicand + 2], a ld hl, EnemyMonHP ld b, [hl] @@ -318,9 +318,9 @@ endr sub c ld [hMultiplier], a xor a - ld [hProduct], a - ld [hMultiplicand], a - ld [$ffb5], a + ld [hDividend + 0], a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a call Multiply pop bc @@ -329,7 +329,7 @@ endr ld b, $4 call Divide - ld a, [$ffb6] + ld a, [hQuotient + 2] and a jr nz, .statuscheck ld a, 1 @@ -618,7 +618,7 @@ endr .asm_eb3c call ClearSprites - predef Functionde6e + predef SentPkmnIntoBox callba Function4db83 @@ -2938,7 +2938,7 @@ SpecialGiveShuckle: ; 7305 ; Caught data. ld b, 0 - callba Function4dba3 + callba SetPkmnCaughtData ; Holding a Berry. ld bc, PartyMon2 - PartyMon1 @@ -4464,11 +4464,11 @@ Functionc699: ; c699 jr z, .zero push hl xor a - ld [hMultiplicand], a + ld [hMultiplicand + 0], a ld a, b - ld [$ffb5], a + ld [hMultiplicand + 1], a ld a, c - ld [$ffb6], a + ld [hMultiplicand + 2], a ld a, $30 ld [hMultiplier], a call Multiply @@ -4479,23 +4479,23 @@ Functionc699: ; c699 rr e srl d rr e - ld a, [$ffb5] + ld a, [hProduct + 2] ld b, a - ld a, [$ffb6] + ld a, [hProduct + 3] srl b rr a srl b rr a - ld [$ffb6], a + ld [hDividend + 3], a ld a, b - ld [$ffb5], a + ld [hDividend + 2], a .divide ld a, e - ld [hMultiplier], a + ld [hDivisor], a ld b, $4 call Divide - ld a, [$ffb6] + ld a, [hQuotient + 2] ld e, a pop hl and a @@ -8340,7 +8340,7 @@ Functionda96: ; da96 ; db3f Functiondb3f: ; db3f - ld a, $1 + ld a, BANK(sBoxCount) call GetSRAMBank ld a, [wd10b] and a @@ -8799,11 +8799,12 @@ Functionde44: ; de44 call AddNTimes ld bc, sBoxMon1End - sBoxMon1 jp CopyBytes -; de6e -Functionde6e: ; de6e - ld a, 1 ; BANK(sBoxCount) +SentPkmnIntoBox: ; de6e +; Sents the Pkmn into one of Bills Boxes +; the data comes mainly from 'EnemyMon:' + ld a, BANK(sBoxCount) call GetSRAMBank ld de, sBoxCount ld a, [de] @@ -8811,6 +8812,7 @@ Functionde6e: ; de6e jp nc, Functiondf42 inc a ld [de], a + ld a, [CurPartySpecies] ld [CurSpecies], a ld c, a @@ -8823,23 +8825,29 @@ Functionde6e: ; de6e ld [de], a inc a jr nz, .asm_de85 + call GetBaseData call ShiftBoxMon + ld hl, PlayerName ld de, sBoxMonOT ld bc, NAME_LENGTH call CopyBytes + ld a, [CurPartySpecies] ld [wd265], a call GetPokemonName + ld de, sBoxMonNicknames ld hl, StringBuffer1 ld bc, PKMN_NAME_LENGTH call CopyBytes + ld hl, EnemyMon ld de, sBoxMon1 ld bc, 1 + 1 + NUM_MOVES ; species + item + moves call CopyBytes + ld hl, PlayerID ld a, [hli] ld [de], a @@ -8861,6 +8869,7 @@ Functionde6e: ; de6e ld a, [$ffb6] ld [de], a inc de + xor a ld b, $a .asm_dee5 @@ -8868,6 +8877,7 @@ Functionde6e: ; de6e inc de dec b jr nz, .asm_dee5 + ld hl, EnemyMonDVs ld b, 2 + NUM_MOVES ; DVs and PP ; EnemyMonHappiness - EnemyMonDVs .asm_deef @@ -8876,6 +8886,7 @@ Functionde6e: ; de6e inc de dec b jr nz, .asm_deef + ld a, BASE_HAPPINESS ld [de], a inc de @@ -8909,6 +8920,7 @@ Functionde6e: ; de6e call CopyBytes ld b, 0 call Functiondcb6 + call CloseSRAM scf ret @@ -9067,7 +9079,7 @@ Functione039: ; e039 and a jr z, .asm_e04a - ld a, 1 ; BANK(sBoxCount) + ld a, BANK(sBoxCount) call GetSRAMBank ld hl, sBoxCount @@ -9378,22 +9390,22 @@ endr inc d .asm_e20f - ld [$ffb6], a + ld [hMultiplicand + 2], a ld a, d - ld [$ffb5], a + ld [hMultiplicand + 1], a xor a - ld [hMultiplicand], a + ld [hMultiplicand + 0], a ld a, [CurPartyLevel] ld [hMultiplier], a call Multiply - ld a, [hMultiplicand] - ld [hProduct], a - ld a, [$ffb5] - ld [hMultiplicand], a - ld a, [$ffb6] - ld [$ffb5], a + ld a, [hProduct + 1] + ld [hDividend + 0], a + ld a, [hProduct + 2] + ld [hDividend + 1], a + ld a, [hProduct + 3] + ld [hDividend + 2], a ld a, $64 - ld [hMultiplier], a + ld [hDivisor], a ld a, $3 ld b, a call Divide @@ -9403,11 +9415,11 @@ endr jr nz, .asm_e24e ld a, [CurPartyLevel] ld b, a - ld a, [$ffb6] + ld a, [hQuotient + 2] add b ld [$ffb6], a jr nc, .asm_e24c - ld a, [$ffb5] + ld a, [hQuotient + 1] inc a ld [$ffb5], a @@ -9482,7 +9494,7 @@ GivePoke:: ; e277 ld a, [CurPartySpecies] ld [TempEnemyMonSpecies], a callab LoadEnemyMon - call Functionde6e + call SentPkmnIntoBox jp nc, Functione3d4 ld a, $2 ld [MonType], a @@ -9562,11 +9574,11 @@ endr ld [hli], a ld [hl], $e9 pop bc - callba Function4dba3 + callba SetPkmnCaughtData jr .asm_e3b2 .asm_e35e - ld a, $1 + ld a, BANK(sBoxMonOT) call GetSRAMBank ld de, sBoxMonOT .asm_e366 @@ -9604,7 +9616,7 @@ endr callba Function4db49 .asm_e3a6 - callba Function4db3b + callba GiveANickname_YesNo pop de jr c, .asm_e3b2 call Functione3de @@ -9615,9 +9627,9 @@ endr ld a, b and a ret z - ld hl, UnknownText_0xe3d9 + ld hl, TextJump_WasSentToBillsPC call PrintText - ld a, $1 + ld a, BANK(sBoxMonNicknames) call GetSRAMBank ld hl, wd050 ld de, sBoxMonNicknames @@ -9635,9 +9647,9 @@ Functione3d4: ; e3d4 ret ; e3d9 -UnknownText_0xe3d9: ; 0xe3d9 +TextJump_WasSentToBillsPC: ; 0xe3d9 ; was sent to BILL's PC. - text_jump UnknownText_0x1c0feb + text_jump Text_WasSentToBillsPC db "@" ; 0xe3de @@ -9945,7 +9957,7 @@ Functione5bb: ; e5bb call AddNTimes ld de, TempMonSpecies ld bc, $0020 - ld a, $1 + ld a, BANK(sBoxMon1Species) call GetSRAMBank call CopyBytes call CloseSRAM @@ -9969,7 +9981,7 @@ Functione5d9: ; e5d9 jr .asm_e5f6 .asm_e5f1 - ld a, $1 + ld a, BANK(sBoxCount) ld hl, sBoxCount .asm_e5f6 @@ -25865,11 +25877,11 @@ Function2509f: ; 2509f Function250a9: ; 250a9 xor a - ld [hMultiplicand], a + ld [hMultiplicand + 0], a ld a, [Buffer1] - ld [$ffb5], a + ld [hMultiplicand + 1], a ld a, [Buffer2] - ld [$ffb6], a + ld [hMultiplicand + 2], a ld a, [wd10c] ld [hMultiplier], a push hl @@ -35563,7 +35575,7 @@ INCLUDE "trainers/attributes.asm" ReadTrainerParty: ; 39771 - ld a, [wcfc0] + ld a, [InBattleTowerBattle] bit 0, a ret nz @@ -35873,7 +35885,7 @@ TrainerType4: ; 3989d ; 3991b Function3991b: ; 3991b (e:591b) - ld hl, $ffb3 + ld hl, hMultiplicand - 1 xor a rept 3 ld [hli], a @@ -35886,15 +35898,15 @@ endr ld hl, wc686 xor a ld [hli], a - ld a, [$ffb5] + ld a, [hProduct + 2] ld [hli], a - ld a, [$ffb6] + ld a, [hProduct + 3] ld [hl], a ret Battle_GetTrainerName:: ; 39939 - ld a, [wcfc0] + ld a, [InBattleTowerBattle] bit 0, a ld hl, wd26b jp nz, CopyTrainerName @@ -36806,7 +36818,9 @@ endr .ApplyLayers ld hl, TrainerClassAttributes + 3 - ld a, [wcfc0] + ; If we have a battle in BattleTower just load the Attributes of the first TrainerClass (Falkner) + ; so we have always the same AI, regardless of the loaded cass of trainer + ld a, [InBattleTowerBattle] bit 0, a jr nz, .asm_4412f @@ -39624,8 +39638,8 @@ Function48d4a: ; 48d4a (12:4d4a) add c ld [hld], a xor a - ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) - ld [$ffb5], a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a ld a, [hl] srl a srl a @@ -39637,13 +39651,13 @@ Function48d4a: ; 48d4a (12:4d4a) ld a, [hli] and $f add b - ld [$ffb6], a + ld [hMultiplicand + 2], a ld a, 100 - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) + ld [hMultiplier], a call Multiply - ld a, [$ffb5] + ld a, [hProduct + 2] ld b, a - ld a, [$ffb6] + ld a, [hProduct + 3] ld c, a ld e, [hl] add e @@ -39658,10 +39672,10 @@ Function48d4a: ; 48d4a (12:4d4a) Function48d94: ; 48d94 (12:4d94) xor a - ld [$ffb3], a + ld [hDividend + 0], a ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) ld a, [hli] - ld [$ffb3], a + ld [hDividend + 0], a ld a, [hl] ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) ld a, 100 @@ -39677,7 +39691,7 @@ Function48d94: ; 48d94 (12:4d94) sla b or b ld [hld], a - ld a, [$ffb6] + ld a, [hQuotient + 2] ld c, 10 call SimpleDivide sla b @@ -42221,7 +42235,7 @@ CheckOwnMonAnywhere: ; 0x4a721 jr nz, .partymon ; Run CheckOwnMon on each Pokémon in the PC. - ld a, 1 + ld a, BANK(sBoxCount) call GetSRAMBank ld a, [sBoxCount] and a @@ -42443,7 +42457,7 @@ MobileCheckOwnMonAnywhere: ; 4a843 call Function4a91e dec d jr nz, .asm_4a851 - ld a, 1 + ld a, BANK(sBoxCount) call GetSRAMBank ld a, [sBoxCount] and a @@ -44546,7 +44560,7 @@ Function4d87a: ; 4d87a pop bc dec d jr nz, .asm_4d88d - ld a, $1 + ld a, BANK(sBoxMon1ID) call GetSRAMBank ld a, [sBoxCount] and a @@ -44804,7 +44818,7 @@ CheckPartyFullAfterContest: ; 4d9e5 ld de, wd050 ld bc, $000b call CopyBytes - call Function4db3b + call GiveANickname_YesNo jr c, .asm_4da66 ld a, [PartyCount] dec a @@ -44847,7 +44861,7 @@ CheckPartyFullAfterContest: ; 4d9e5 ; 4daa3 Function4daa3: ; 4daa3 - ld a, $1 + ld a, BANK(sBoxCount) call GetSRAMBank ld hl, sBoxCount ld a, [hl] @@ -44868,7 +44882,7 @@ Function4daa3: ; 4daa3 ld a, [CurPartySpecies] ld [wd265], a call GetPokemonName - call Function4db3b + call GiveANickname_YesNo ld hl, StringBuffer1 jr c, .asm_4daf7 ld a, BOXMON @@ -44878,7 +44892,7 @@ Function4daa3: ; 4daa3 ld hl, wd050 .asm_4daf7 - ld a, $1 + ld a, BANK(sBoxMonNicknames) call GetSRAMBank ld de, sBoxMonNicknames ld bc, PKMN_NAME_LENGTH @@ -44886,13 +44900,13 @@ Function4daa3: ; 4daa3 call CloseSRAM .asm_4db08 - ld a, $1 + ld a, BANK(sBoxMon1Level) call GetSRAMBank ld a, [sBoxMon1Level] ld [CurPartyLevel], a call CloseSRAM call Function4db83 - ld a, $1 + ld a, BANK(sBoxMon1CaughtLocation) call GetSRAMBank ld hl, sBoxMon1CaughtLocation ld a, [hl] @@ -44915,13 +44929,13 @@ Function4db35: ; 4db35 ; 4db3b -Function4db3b: ; 4db3b - ld hl, UnknownText_0x4db44 +GiveANickname_YesNo: ; 4db3b + ld hl, TextJump_GiveANickname call PrintText jp YesNoBox ; 4db44 -UnknownText_0x4db44: ; 0x4db44 +TextJump_GiveANickname: ; 0x4db44 ; Give a nickname to the @ you received? text_jump UnknownText_0x1c12fc db "@" @@ -44968,7 +44982,7 @@ Function4db53: ; 4db53 ; 4db83 Function4db83: ; 4db83 - ld a, $1 + ld a, BANK(sBoxMon1CaughtLevel) call GetSRAMBank ld hl, sBoxMon1CaughtLevel call Function4db53 @@ -44978,7 +44992,7 @@ Function4db83: ; 4db83 Function4db92: ; 4db92 push bc - ld a, $1 + ld a, BANK(sBoxMon1CaughtLevel) call GetSRAMBank ld hl, sBoxMon1CaughtLevel pop bc @@ -44987,7 +45001,7 @@ Function4db92: ; 4db92 ret ; 4dba3 -Function4dba3: ; 4dba3 +SetPkmnCaughtData: ; 4dba3 ld a, [PartyCount] dec a ld hl, PartyMon1CaughtLevel @@ -48623,7 +48637,7 @@ Function508d5: ; 508d5 jr .done .boxmon - ld a, 1 ; BANK(sBoxSpecies) + ld a, BANK(sBoxSpecies) call GetSRAMBank ld hl, sBoxSpecies call .done @@ -49375,11 +49389,11 @@ endr ld b, $4 call Divide - ld a, [hMultiplicand] + ld a, [hMultiplicand + 0] push af - ld a, [$ffb5] + ld a, [hMultiplicand + 1] push af - ld a, [$ffb6] + ld a, [hMultiplicand + 2] push af call Function50eed @@ -49388,33 +49402,33 @@ endr ld [hMultiplier], a call Multiply - ld a, [hMultiplicand] + ld a, [hProduct + 1] push af - ld a, [$ffb5] + ld a, [hProduct + 2] push af - ld a, [$ffb6] + ld a, [hProduct + 3] push af ld a, [hli] push af xor a - ld [hMultiplicand], a - ld [$ffb5], a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a ld a, d - ld [$ffb6], a + ld [hMultiplicand + 2], a ld a, [hli] ld [hMultiplier], a call Multiply ld b, [hl] - ld a, [$ffb6] + ld a, [hProduct + 3] sub b ld [$ffb6], a ld b, $0 - ld a, [$ffb5] + ld a, [hProduct + 2] sbc b ld [$ffb5], a - ld a, [hMultiplicand] + ld a, [hProduct + 1] sbc b ld [hMultiplicand], a @@ -49468,10 +49482,10 @@ endr Function50eed: ; 50eed xor a - ld [hMultiplicand], a - ld [$ffb5], a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a ld a, d - ld [$ffb6], a + ld [hMultiplicand + 2], a ld [hMultiplier], a jp Multiply ; 50efa @@ -50156,7 +50170,7 @@ Function512f2: ; 512f2 ; 51322 Function51322: ; 51322 - ld a, $1 + ld a, BANK(sBoxCount) call GetSRAMBank ld hl, sBoxCount call Function513cb @@ -51399,7 +51413,7 @@ Function806ff: ; 806ff Function80715: ; 80715 ; Remaining slots in the current box. - ld a, 1 ; BANK(sBoxCount) + ld a, BANK(sBoxCount) call GetSRAMBank ld hl, sBoxCount ld a, MONS_PER_BOX @@ -60873,12 +60887,12 @@ UnknownText_0x8b1fc: ; 0x8b1fc db "@" ; 0x8b201 -Function8b201: ; 8b201 +CheckForBattleTowerRules: ; 8b201 ld hl, StringBuffer2 ld [hl], "3" inc hl ld [hl], "@" - ld de, Unknown_8b215 + ld de, CheckForBattleTowerRules_FunctionsText call Function8b25b ret z call Function8b231 @@ -60886,29 +60900,29 @@ Function8b201: ; 8b201 ret ; 8b215 -Unknown_8b215: ; 8b215 +CheckForBattleTowerRules_FunctionsText: ; 8b215 db 4 - dw Unknown_8b21a - dw Unknown_8b222 + dw CheckForBattleTowerRules_Functions + dw CheckForBattleTowerRules_Text -Unknown_8b21a: ; 8b21a - dw Function8b2da +CheckForBattleTowerRules_Functions: ; 8b21a + dw Function_PartyCountEq3 dw Function8b2e2 dw Function8b32a - dw Function8b331 + dw Function_HasPartyAnEgg ; 8b222 -Unknown_8b222: ; 8b222 - dw UnknownText_0x8b22c - dw UnknownText_0x8b247 - dw UnknownText_0x8b24c - dw UnknownText_0x8b251 - dw UnknownText_0x8b256 +CheckForBattleTowerRules_Text: ; 8b222 + dw JumpText_ExcuseMeYoureNotReady + dw JumbText_OnlyThreePkmnMayBeEntered + dw JumpText_ThePkmnMustAllBeDifferentKinds + dw JumpText_ThePkmnMustNotHoldTheSameItems + dw JumpText_YouCantTakeAnEgg ; 8b22c -UnknownText_0x8b22c: ; 0x8b22c +JumpText_ExcuseMeYoureNotReady: ; 0x8b22c ; Excuse me. You're not ready. - text_jump UnknownText_0x1c5944 + text_jump Text_ExcuseMeYoureNotReady db "@" ; 0x8b231 @@ -60936,27 +60950,27 @@ UnknownText_0x8b242: ; 0x8b242 db "@" ; 0x8b247 -UnknownText_0x8b247: ; 0x8b247 +JumbText_OnlyThreePkmnMayBeEntered: ; 0x8b247 ; Only three #MON may be entered. - text_jump UnknownText_0x1c59c3 + text_jump Text_OnlyThreePkmnMayBeEntered db "@" ; 0x8b24c -UnknownText_0x8b24c: ; 0x8b24c +JumpText_ThePkmnMustAllBeDifferentKinds: ; 0x8b24c ; The @ #MON must all be different kinds. - text_jump UnknownText_0x1c59e5 + text_jump Text_ThePkmnMustAllBeDifferentKinds db "@" ; 0x8b251 -UnknownText_0x8b251: ; 0x8b251 +JumpText_ThePkmnMustNotHoldTheSameItems: ; 0x8b251 ; The @ #MON must not hold the same items. - text_jump UnknownText_0x1c5a13 + text_jump Text_ThePkmnMustNotHoldTheSameItems db "@" ; 0x8b256 -UnknownText_0x8b256: ; 0x8b256 +JumpText_YouCantTakeAnEgg: ; 0x8b256 ; You can't take an EGG! - text_jump UnknownText_0x1c5a42 + text_jump Text_YouCantTakeAnEgg db "@" ; 0x8b25b @@ -61085,7 +61099,7 @@ Function8b2c1: ; 8b2c1 ret ; 8b2da -Function8b2da: ; 8b2da +Function_PartyCountEq3: ; 8b2da ld a, [PartyCount] cp 3 ret z @@ -61169,7 +61183,7 @@ Function8b32a: ; 8b32a ret ; 8b331 -Function8b331: ; 8b331 +Function_HasPartyAnEgg: ; 8b331 ld hl, PartyCount ld a, [hli] ld c, a @@ -87382,12 +87396,12 @@ endr .ApplyModifier xor a - ld [hMultiplicand], a + ld [hMultiplicand + 0], a ld hl, CurDamage ld a, [hli] - ld [$ffb5], a + ld [hMultiplicand + 1], a ld a, [hl] - ld [$ffb6], a + ld [hMultiplicand + 2], a inc de ld a, [de] @@ -87396,18 +87410,18 @@ endr call Multiply ld a, 10 - ld [hMultiplier], a + ld [hDivisor], a ld b, $4 call Divide - ld a, [hMultiplicand] + ld a, [hQuotient + 0] and a ld bc, $ffff jr nz, .Update - ld a, [$ffb5] + ld a, [hQuotient + 1] ld b, a - ld a, [$ffb6] + ld a, [hQuotient + 2] ld c, a or b jr nz, .Update @@ -87441,7 +87455,7 @@ DoBadgeTypeBoosts: ; fbe24 and a ret nz - ld a, [wcfc0] + ld a, [InBattleTowerBattle] and a ret nz @@ -87759,7 +87773,7 @@ Functionfcc63: ; fcc63 jr c, .asm_fcd1c ld b, 1 .asm_fcd1c - callba Function4dba3 + callba SetPkmnCaughtData ld e, TRADE_NICK call GetTradeAttribute @@ -93532,7 +93546,8 @@ INCLUDE "text/battle_tower.asm" SECTION "bank7C", ROMX, BANK[$7C] -Unknown_1f0000:: +BattleTowerTrainerData:: ; What exactly it is, I don't know +; Size is 70 (Nr of Trainers in BattleTower) * 0x24 (Nr of Bytes that are copied) INCBIN "unknown/1f0000.bin" diff --git a/maps/BattleTower1F.asm b/maps/BattleTower1F.asm index 31825efaa..2317e8f64 100644 --- a/maps/BattleTower1F.asm +++ b/maps/BattleTower1F.asm @@ -41,10 +41,10 @@ UnknownScript_0x9e3d3: MapBattleTower1FSignpost0Script: loadfont - writetext UnknownText_0x9ed3c + writetext Text_ReadBattleTowerRules yesorno iffalse UnknownScript_0x9e3e0 - writetext UnknownText_0x9ed72 + writetext Text_BattleTowerRules closetext UnknownScript_0x9e3e0: loadmovesprites @@ -55,41 +55,41 @@ ReceptionistScript_0x9e3e2: special Function170687 if_equal $3, BattleTowerBattleRoomScript_0x9f4e4 loadfont - writetext UnknownText_0x9e5ab + writetext Text_BattleTowerWelcomesYou keeptextopen writebyte $0 special Function170687 - if_not_equal $0, UnknownScript_0x9e3fc - jump UnknownScript_0x9e49e + if_not_equal $0, Script_Menu_ChallengeExplanationCancel + jump Script_BattleTowerIntroductionYesNo -UnknownScript_0x9e3fc: - writetext UnknownText_0x9e5ea +Script_Menu_ChallengeExplanationCancel: ; 0x9e3fc + writetext Text_WantToGoIntoABattleRoom writebyte $1 - special Function17d224 - if_equal $1, UnknownScript_0x9e40f - if_equal $2, UnknownScript_0x9e4a5 + special Special_Menu_ChallengeExplanationCancel + if_equal $1, Script_ChoseChallenge + if_equal $2, Script_BattleTowerExplanation jump UnknownScript_0x9e4b0 -UnknownScript_0x9e40f: +Script_ChoseChallenge: ; 0x9e40f writebyte $1a special Function170687 - special Function170bd3 - if_not_equal $0, UnknownScript_0x9e4bb - writetext UnknownText_0x9ef1f + special SpecialCheckForBattleTowerRules + if_not_equal $0, Script_CloseText + writetext Text_SaveBeforeEnteringBattleRoom yesorno - iffalse UnknownScript_0x9e3fc + iffalse Script_Menu_ChallengeExplanationCancel dotrigger $0 special Special_TryQuickSave - iffalse UnknownScript_0x9e3fc + iffalse Script_Menu_ChallengeExplanationCancel dotrigger $1 writebyte $1 special Function170687 special Function1700b0 - if_equal $a, UnknownScript_0x9e3fc + if_equal $a, Script_Menu_ChallengeExplanationCancel if_not_equal $0, UnknownScript_0x9e550 writebyte $11 special Function170687 - writetext UnknownText_0x9e60a + writetext Text_RightThisWayToYourBattleRoom closetext loadmovesprites writebyte $1e @@ -116,39 +116,39 @@ UnknownScript_0x9e454: warpcheck end -UnknownScript_0x9e47a: +Script_GivePlayerHisPrize: ; 0x9e47a writebyte $1c special Function170687 writebyte $1b special Function170687 - if_equal $12, UnknownScript_0x9e498 + if_equal $12, Script_YourPackIsStuffedFull itemtotext $0, $1 giveitem $ff, $5 - writetext UnknownText_0x9eb7e + writetext Text_PlayerGotFive writebyte $1d special Function170687 loadmovesprites end -UnknownScript_0x9e498: - writetext UnknownText_0x9eb94 +Script_YourPackIsStuffedFull: ; 0x9e498 + writetext Text_YourPackIsStuffedFull closetext loadmovesprites end -UnknownScript_0x9e49e: - writetext UnknownText_0x9ec3d +Script_BattleTowerIntroductionYesNo: ; 0x9e49e + writetext Text_WouldYouLikeToHearAboutTheBattleTower yesorno iffalse UnknownScript_0x9e4a8 -UnknownScript_0x9e4a5: - writetext UnknownText_0x9e886 +Script_BattleTowerExplanation: ; 0x9e4a5 + writetext Text_BattleTowerIntroduction_2 UnknownScript_0x9e4a8: writebyte $1 special Function170687 - jump UnknownScript_0x9e3fc + jump Script_Menu_ChallengeExplanationCancel UnknownScript_0x9e4b0: - writetext UnknownText_0x9ec09 + writetext Text_WeHopeToServeYouAgain closetext loadmovesprites end @@ -158,26 +158,26 @@ UnknownScript_0x9e4b6: loadmovesprites end -UnknownScript_0x9e4bb: +Script_CloseText: ; 0x9e4bb closetext loadmovesprites end UnknownScript_0x9e4be: - writetext UnknownText_0x9ef1f + writetext Text_SaveBeforeEnteringBattleRoom yesorno - iffalse UnknownScript_0x9e3fc + iffalse Script_Menu_ChallengeExplanationCancel special Special_TryQuickSave - iffalse UnknownScript_0x9e3fc + iffalse Script_Menu_ChallengeExplanationCancel writebyte $1 special Function170687 special Function1700ba - if_equal $a, UnknownScript_0x9e3fc + if_equal $a, Script_Menu_ChallengeExplanationCancel if_not_equal $0, UnknownScript_0x9e550 - writetext UnknownText_0x9e9eb + writetext Text_ReceivedAListOfLeadersOnTheHonorRoll spriteface $2, LEFT - writetext UnknownText_0x9ea1b + writetext Text_PleaseConfirmOnThisMonitor closetext spriteface $2, DOWN loadmovesprites @@ -186,12 +186,12 @@ UnknownScript_0x9e4be: UnknownScript_0x9e4ea: writebyte $18 special Function170687 - if_not_equal $0, UnknownScript_0x9e542 + if_not_equal $0, Script_APkmnLevelExceeds writebyte $19 special Function170687 - if_not_equal $0, UnknownScript_0x9e549 - special Function170bd3 - if_not_equal $0, UnknownScript_0x9e4bb + if_not_equal $0, Script_MayNotEnterABattleRoomUnderL70 + special SpecialCheckForBattleTowerRules + if_not_equal $0, Script_CloseText writebyte $5 special Function170687 if_equal $0, UnknownScript_0x9e512 @@ -202,19 +202,19 @@ UnknownScript_0x9e512: writetext UnknownText_0x9ec6d UnknownScript_0x9e515: yesorno - iffalse UnknownScript_0x9e3fc + iffalse Script_Menu_ChallengeExplanationCancel writetext UnknownText_0x9ef79 yesorno - iffalse UnknownScript_0x9e3fc + iffalse Script_Menu_ChallengeExplanationCancel dotrigger $0 special Special_TryQuickSave - iffalse UnknownScript_0x9e3fc + iffalse Script_Menu_ChallengeExplanationCancel dotrigger $1 writebyte $6 special Function170687 writebyte $12 special Function170687 - writetext UnknownText_0x9e60a + writetext Text_RightThisWayToYourBattleRoom closetext jump UnknownScript_0x9e44e @@ -223,15 +223,15 @@ UnknownScript_0x9e53b: closetext jump UnknownScript_0x9e4b0 -UnknownScript_0x9e542: - writetext UnknownText_0x9f1e5 +Script_APkmnLevelExceeds: ; 0x9e542 + writetext Text_APkmnLevelExceeds closetext - jump UnknownScript_0x9e3fc + jump Script_Menu_ChallengeExplanationCancel -UnknownScript_0x9e549: - writetext UnknownText_0x9f217 +Script_MayNotEnterABattleRoomUnderL70: ; 0x9e549 + writetext Text_MayNotEnterABattleRoomUnderL70 closetext - jump UnknownScript_0x9e3fc + jump Script_Menu_ChallengeExplanationCancel UnknownScript_0x9e550: special Function17f53d @@ -247,20 +247,20 @@ UnknownScript_0x9e555: YoungsterScript_0x9e55d: faceplayer loadfont - writetext UnknownText_0x9f264 + writetext Text_BattleTowerYoungster closetext loadmovesprites spriteface $3, RIGHT end CooltrainerFScript_0x9e568: - jumptextfaceplayer UnknownText_0x9f2a4 + jumptextfaceplayer Text_BattleTowerCooltrainerF BugCatcherScript_0x9e56b: - jumptextfaceplayer UnknownText_0x9f35b + jumptextfaceplayer Text_BattleTowerBugCatcher GrannyScript_0x9e56e: - jumptextfaceplayer UnknownText_0x9f2e3 + jumptextfaceplayer Text_BattleTowerGranny MovementData_0x9e571: step_up @@ -346,7 +346,7 @@ MovementData_0x9e5a9: turn_head_right step_end -UnknownText_0x9e5ab: +Text_BattleTowerWelcomesYou: ; 0x9e5ab text "BATTLE TOWER" line "welcomes you!" @@ -354,17 +354,17 @@ UnknownText_0x9e5ab: line "to a BATTLE ROOM." done -UnknownText_0x9e5ea: +Text_WantToGoIntoABattleRoom: ; 0x9e5ea text "Want to go into a" line "BATTLE ROOM?" done -UnknownText_0x9e60a: +Text_RightThisWayToYourBattleRoom: ; 0x9e60a text "Right this way to" line "your BATTLE ROOM." done -UnknownText_0x9e62f: +Text_BattleTowerIntroduction_1: ; 0x9e62f text "BATTLE TOWER is a" line "facility made for" cont "#MON battles." @@ -424,7 +424,7 @@ UnknownText_0x9e62f: para "" done -UnknownText_0x9e886: +Text_BattleTowerIntroduction_2: ; 0x9e886 text "BATTLE TOWER is a" line "facility made for" cont "#MON battles." @@ -460,7 +460,7 @@ UnknownText_0x9e886: para "" done -UnknownText_0x9e9eb: +Text_ReceivedAListOfLeadersOnTheHonorRoll: ; 0x9e9eb text "Received a list of" line "LEADERS on the" cont "HONOR ROLL." @@ -468,18 +468,18 @@ UnknownText_0x9e9eb: para "" done -UnknownText_0x9ea1b: +Text_PleaseConfirmOnThisMonitor: ; 0x9ea1b text "Please confirm on" line "this monitor." done -UnknownText_0x9ea3c: +Text_ThankYou: ; 0x9ea3c text "Thank you!" para "" done -UnknownText_0x9ea49: +Text_ThanksForVisiting: ; 0x9ea49 text "Thanks for" line "visiting!" done @@ -502,7 +502,7 @@ UnknownText_0x9ea5f: para "" done -UnknownText_0x9eaef: +Text_CongratulationsYouveBeatenAllTheTrainers: ; 0x9eaef text "Congratulations!" para "You've beaten all" @@ -522,7 +522,7 @@ UnknownText_0x9eb45: line "CENTER?" done -UnknownText_0x9eb7e: +Text_PlayerGotFive: ; 0x9eb7e text "<PLAYER> got five" line "@" text_from_ram StringBuffer4 @@ -531,7 +531,7 @@ UnknownText_0x9eb7e: text_waitbutton db "@" -UnknownText_0x9eb94: +Text_YourPackIsStuffedFull: ; 0x9eb94 text "Oops, your PACK is" line "stuffed full." @@ -539,24 +539,24 @@ UnknownText_0x9eb94: line "and come back." done -UnknownText_0x9ebd6: +Text_YourRegistrationIsComplete: ; 0x9ebd6 text "Your registration" line "is complete." para "Please come again!" done -UnknownText_0x9ec09: +Text_WeHopeToServeYouAgain: ; 0x9ec09 text "We hope to serve" line "you again." done -UnknownText_0x9ec26: +Text_PleaseStepThisWay: ; 0x9ec26 text "Please step this" line "way." done -UnknownText_0x9ec3d: +Text_WouldYouLikeToHearAboutTheBattleTower: ; 0x9ec3d text "Would you like to" line "hear about the" cont "BATTLE TOWER?" @@ -582,19 +582,19 @@ UnknownText_0x9ecb0: cont "deleted. OK?" done -UnknownText_0x9ed1e: +Text_CheckTheLeaderHonorRoll: ; 0x9ed1e text "Check the LEADER" line "HONOR ROLL?" done -UnknownText_0x9ed3c: +Text_ReadBattleTowerRules: ; 0x9ed3c text "BATTLE TOWER rules" line "are written here." para "Read the rules?" done -UnknownText_0x9ed72: +Text_BattleTowerRules: ; 0x9ed72 text "Three #MON may" line "enter battles." @@ -626,13 +626,13 @@ UnknownText_0x9ee18: line "invalid." done -UnknownText_0x9ee92: +Text_YourPkmnWillBeHealedToFullHealth: ; 0x9ee92 text "Your #MON will" line "be healed to full" cont "health." done -UnknownText_0x9eebc: +Text_NextUpOpponentNo: ; 0x9eebc text "Next up, opponent" line "no.@" text_from_ram StringBuffer3 @@ -647,7 +647,7 @@ UnknownText_0x9eee0: line "the CENTER." done -UnknownText_0x9ef1f: +Text_SaveBeforeEnteringBattleRoom: ; 0x9ef1f text "Before entering" line "the BATTLE ROOM," @@ -655,7 +655,7 @@ UnknownText_0x9ef1f: line "be saved." done -UnknownText_0x9ef5e: +Text_SaveAndEndTheSession: ; 0x9ef5e text "SAVE and end the" line "session?" done @@ -668,7 +668,7 @@ UnknownText_0x9ef79: line "the previous ROOM." done -UnknownText_0x9efbf: +Text_CancelYourBattleRoomChallenge: ; 0x9efbf text "Cancel your BATTLE" line "ROOM challenge?" done @@ -699,7 +699,7 @@ UnknownText_0x9f076: line "tomorrow." done -UnknownText_0x9f0c1: +Text_TooMuchTimeElapsedNoRegister: ; 0x9f0c1 text "Sorry, but it's" line "not possible to" @@ -730,7 +730,7 @@ UnknownText_0x9f151: cont "challenge." done -UnknownText_0x9f1e5: +Text_APkmnLevelExceeds: ; 0x9f1e5 text "One or more of" line "your #MON's" cont "levels exceeds @" @@ -738,7 +738,7 @@ UnknownText_0x9f1e5: text "." done -UnknownText_0x9f217: +Text_MayNotEnterABattleRoomUnderL70: ; 0x9f217 text_from_ram wcd49 text " may not" line "enter a BATTLE" @@ -750,7 +750,7 @@ UnknownText_0x9f217: text "." done -UnknownText_0x9f264: +Text_BattleTowerYoungster: ; 0x9f264 text "Destroyed by the" line "first opponent in" @@ -758,7 +758,7 @@ UnknownText_0x9f264: line "I'm no good…" done -UnknownText_0x9f2a4: +Text_BattleTowerCooltrainerF: ; 0x9f2a4 text "There are lots of" line "BATTLE ROOMS, but" @@ -766,7 +766,7 @@ UnknownText_0x9f2a4: line "them all!" done -UnknownText_0x9f2e3: +Text_BattleTowerGranny: ; 0x9f2e3 text "It's a grueling" line "task, not being" @@ -780,7 +780,7 @@ UnknownText_0x9f2e3: line "winning battles." done -UnknownText_0x9f35b: +Text_BattleTowerBugCatcher: ; 0x9f35b text "I'm trying to see" line "how far I can go" diff --git a/maps/BattleTowerBattleRoom.asm b/maps/BattleTowerBattleRoom.asm index 7e6a29e8f..ab40bd1be 100644 --- a/maps/BattleTowerBattleRoom.asm +++ b/maps/BattleTowerBattleRoom.asm @@ -3,25 +3,25 @@ BattleTowerBattleRoom_MapScriptHeader: db 2 ; triggers - dw UnknownScript_0x9f419, $0000 + dw Script_EnterBattleRoom, $0000 dw UnknownScript_0x9f420, $0000 .MapCallbacks: db 0 -UnknownScript_0x9f419: +Script_EnterBattleRoom: ; 0x9f419 disappear $2 - priorityjump UnknownScript_0x9f421 + priorityjump Script_BattleRoom dotrigger $1 - UnknownScript_0x9f420: end -UnknownScript_0x9f421: +Script_BattleRoom: ; 0x9f421 applymovement PLAYER, MovementData_0x9e58c -UnknownScript_0x9f425: +; beat all 7 opponents in a row +Script_BattleRoomLoop: ; 0x9f425 writebyte $2 - special Function170b44 + special Function_LoadOpponentTrainerAndPokemonsWithOTSprite appear $2 warpsound waitbutton @@ -30,19 +30,19 @@ UnknownScript_0x9f425: storetext 1 keeptextopen loadmovesprites - special Function170215 + special Function170215 ; calls predef startbattle special FadeBlackBGMap reloadmap if_not_equal $0, UnknownScript_0x9f4c2 - copybytetovar wcf64 - if_equal $7, UnknownScript_0x9f4d9 + copybytetovar wNrOfBeatenBattleTowerTrainers ; wcf64 + if_equal BATTLETOWER_NROFTRAINERS, Script_BeatenAllTrainers applymovement $2, MovementData_0x9e597 warpsound disappear $2 applymovement $3, MovementData_0x9e59c applymovement PLAYER, MovementData_0x9e5a7 loadfont - writetext UnknownText_0x9ee92 + writetext Text_YourPkmnWillBeHealedToFullHealth closetext loadmovesprites playmusic MUSIC_HEAL @@ -52,19 +52,19 @@ UnknownScript_0x9f425: special FadeInBGMap special RestartMapMusic loadfont - writetext UnknownText_0x9eebc + writetext Text_NextUpOpponentNo yesorno - iffalse UnknownScript_0x9f483 -UnknownScript_0x9f477: + iffalse Script_DontBattleNextOpponent +Script_ContinueAndBattleNextOpponent: ; 0x9f477 loadmovesprites applymovement PLAYER, MovementData_0x9e5a9 applymovement $3, MovementData_0x9e5a1 - jump UnknownScript_0x9f425 + jump Script_BattleRoomLoop -UnknownScript_0x9f483: - writetext UnknownText_0x9ef5e +Script_DontBattleNextOpponent: ; 0x9f483 + writetext Text_SaveAndEndTheSession yesorno - iffalse UnknownScript_0x9f4a3 + iffalse Script_DontSaveAndEndTheSession writebyte $7 special Function170687 writebyte $1f @@ -75,10 +75,10 @@ UnknownScript_0x9f483: waitbutton special FadeBlackBGMap special Reset -UnknownScript_0x9f4a3: - writetext UnknownText_0x9efbf +Script_DontSaveAndEndTheSession: ; 0x9f4a3 + writetext Text_CancelYourBattleRoomChallenge yesorno - iffalse UnknownScript_0x9f477 + iffalse Script_ContinueAndBattleNextOpponent writebyte $4 special Function170687 writebyte $6 @@ -96,25 +96,25 @@ UnknownScript_0x9f4c2: writebyte $4 special Function170687 loadfont - writetext UnknownText_0x9ea49 + writetext Text_ThanksForVisiting closetext loadmovesprites end -UnknownScript_0x9f4d9: +Script_BeatenAllTrainers: ; 0x9f4d9 pause 60 special Special_BattleTowerFade warpfacing $1, BATTLE_TOWER_1F, $7, $7 BattleTowerBattleRoomScript_0x9f4e4: loadfont - writetext UnknownText_0x9eaef - jump UnknownScript_0x9e47a + writetext Text_CongratulationsYouveBeatenAllTheTrainers + jump Script_GivePlayerHisPrize UnknownScript_0x9f4eb: writebyte $4 special Function170687 loadfont - writetext UnknownText_0x9f0c1 + writetext Text_TooMuchTimeElapsedNoRegister closetext loadmovesprites end @@ -125,8 +125,8 @@ UnknownScript_0x9f4f7: writebyte $6 special Function170687 loadfont - writetext UnknownText_0x9ea49 - writetext UnknownText_0x9ec09 + writetext Text_ThanksForVisiting + writetext Text_WeHopeToServeYouAgain closetext loadmovesprites end diff --git a/maps/BattleTowerHallway.asm b/maps/BattleTowerHallway.asm index 9d2d610d1..4c46d5857 100644 --- a/maps/BattleTowerHallway.asm +++ b/maps/BattleTowerHallway.asm @@ -12,14 +12,13 @@ BattleTowerHallway_MapScriptHeader: UnknownScript_0x9f5bb: priorityjump UnknownScript_0x9f5c1 dotrigger $1 - UnknownScript_0x9f5c0: end UnknownScript_0x9f5c1: follow $2, PLAYER callasm Function_0x9f5cb - jump UnknownScript_0x9f5dc + jump Script_WalkToChosenBattleRoom Function_0x9f5cb: @@ -28,7 +27,7 @@ Function_0x9f5cb: ld a, 3 ld [rSVBK], a - ld a, [w3_d800] + ld a, [wBTChoiceOfLvlGroup] ld [ScriptVar], a pop af @@ -36,38 +35,41 @@ Function_0x9f5cb: ret -UnknownScript_0x9f5dc: - if_equal $3, UnknownScript_0x9f603 - if_equal $4, UnknownScript_0x9f603 - if_equal $5, UnknownScript_0x9f60a - if_equal $6, UnknownScript_0x9f60a - if_equal $7, UnknownScript_0x9f611 - if_equal $8, UnknownScript_0x9f611 - if_equal $9, UnknownScript_0x9f618 - if_equal $a, UnknownScript_0x9f618 +; enter different rooms for different levels to battle against +; at least it should look like that +; because all warps lead to the same room +Script_WalkToChosenBattleRoom: ; 0x9f5dc + if_equal 3, Script_WalkToBattleRoomL30L40 + if_equal 4, Script_WalkToBattleRoomL30L40 + if_equal 5, Script_WalkToBattleRoomL50L60 + if_equal 6, Script_WalkToBattleRoomL50L60 + if_equal 7, Script_WalkToBattleRoomL70L80 + if_equal 8, Script_WalkToBattleRoomL70L80 + if_equal 9, Script_WalkToBattleRoomL90L100 + if_equal 10, Script_WalkToBattleRoomL90L100 applymovement $2, MovementData_0x9e57a - jump UnknownScript_0x9f61f + jump Script_PlayerEntersBattleRoom -UnknownScript_0x9f603: +Script_WalkToBattleRoomL30L40: ; 0x9f603 applymovement $2, MovementData_0x9e57c - jump UnknownScript_0x9f61f + jump Script_PlayerEntersBattleRoom -UnknownScript_0x9f60a: +Script_WalkToBattleRoomL50L60: ; 0x9f60a applymovement $2, MovementData_0x9e586 - jump UnknownScript_0x9f61f + jump Script_PlayerEntersBattleRoom -UnknownScript_0x9f611: +Script_WalkToBattleRoomL70L80: ; 0x9f611 applymovement $2, MovementData_0x9e584 - jump UnknownScript_0x9f61f + jump Script_PlayerEntersBattleRoom -UnknownScript_0x9f618: +Script_WalkToBattleRoomL90L100: ; 0x9f618 applymovement $2, MovementData_0x9e582 - jump UnknownScript_0x9f61f + jump Script_PlayerEntersBattleRoom -UnknownScript_0x9f61f: +Script_PlayerEntersBattleRoom: ; 0x9f61f faceperson PLAYER, $2 loadfont - writetext UnknownText_0x9ec26 + writetext Text_PleaseStepThisWay closetext loadmovesprites stopfollow diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index fe4729b9c..7ae4f8327 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -9728,22 +9728,22 @@ Function118903: ; 118903 (46:4903) ld [wcd3c], a call Function119ed8 jp Function119e2e -; 11891c (46:491c) + Function11891c: ; 11891c call Function118b42 jp Function119e2e -; 118922 + Function118922: ; 118922 ld a, [wcd38] and a jr nz, .asm_11892d - ld hl, UnknownText_0x11aba5 + ld hl, Text_WhatLevelDoYouWantToChallenge jr .asm_118930 .asm_11892d - ld hl, UnknownText_0x11abcb + ld hl, Text_CheckBattleRoomListByMaxLevel .asm_118930 call Function11a9c0 @@ -9770,13 +9770,13 @@ Function118936: ld a, [StatusFlags] bit 6, a jr nz, .asm_11896b - ld hl, Strings_119d64 - ld a, $5 + ld hl, Strings_Ll0ToL40 ; Address to list of strings with the choosable levels + ld a, 5 ; 4 levels to choose from, including 'Cancel'-option jr .asm_118970 .asm_11896b - ld hl, Strings_119d0c - ld a, $b + ld hl, Strings_L10ToL100 ; Address to list of strings with the choosable levels + ld a, 11 ; 10 levels to choose from, including 'Cancel'-option .asm_118970 ld [wcd4a], a @@ -9915,7 +9915,8 @@ Function118982: ld a, $0 ld [wcd46], a ret -; 118a54 + + Function118a54: ; 118a54 ld a, [wcd55] @@ -12537,7 +12538,7 @@ MenuData_119cff: ; 119cff String_119d07: db " ▼@" -Strings_119d0c: +Strings_L10ToL100: ; 119d0c db " L:10 @@" db " L:20 @@" db " L:30 @@" @@ -12550,7 +12551,7 @@ Strings_119d0c: db " L:100@@" db "CANCEL@@" -Strings_119d64: +Strings_Ll0ToL40: ; 119d64 db " L:10 @@" db " L:20 @@" db " L:30 @@" @@ -14274,13 +14275,13 @@ UnknownText_0x11ab8b: ; 0x11ab8b done ; 0x11aba5 -UnknownText_0x11aba5: ; 0x11aba5 +Text_WhatLevelDoYouWantToChallenge: ; 0x11aba5 text "What level do you" line "want to challenge?" done ; 0x11abcb -UnknownText_0x11abcb: ; 0x11abcb +Text_CheckBattleRoomListByMaxLevel: ; 0x11abcb text "Check BATTLE ROOM" line "list by max level?" done @@ -16529,7 +16530,7 @@ ENDC sub $19 .asm_11c021 - ld hl, Unknown_11f332 + ld hl, BTTrainerTexts jr .asm_11c033 .asm_11c026 @@ -20671,14 +20672,14 @@ Unknown_11f2f0: db $01, $01, $00, $00, $00, $01 -Unknown_11f332: - dw Unknown_11f338 - dw Unknown_11f36a - dw Unknown_11f39c +BTTrainerTexts: ; 11f332 + dw BTTrainerGreetings + dw BTTrainerPlayerLostTexts + dw BTTrainerPlayerWonTexts -Unknown_11f338: ; 11f338 - dw UnknownText_0x11f42e - dw UnknownText_0x11f43d +BTTrainerGreetings: ; 11f338 + dw BattleTowerTextJump_0x11f42e + dw BattleTowerTextJump_0x11f43d dw UnknownText_0x11f44c dw UnknownText_0x11f45b dw UnknownText_0x11f46a @@ -20703,8 +20704,8 @@ Unknown_11f338: ; 11f338 dw UnknownText_0x11f587 dw UnknownText_0x11f596 -Unknown_11f36a: ; 11f36a - dw UnknownText_0x11f433 +BTTrainerPlayerLostTexts: ; 11f36a + dw BattleTowerTextJump_0x11f433 dw UnknownText_0x11f442 dw UnknownText_0x11f451 dw UnknownText_0x11f460 @@ -20730,7 +20731,7 @@ Unknown_11f36a: ; 11f36a dw UnknownText_0x11f58c dw UnknownText_0x11f59b -Unknown_11f39c: ; 11f39c +BTTrainerPlayerWonTexts: ; 11f39c dw UnknownText_0x11f438 dw UnknownText_0x11f447 dw UnknownText_0x11f456 @@ -20815,20 +20816,20 @@ Unknown_11f410: ; 11f410 dw UnknownText_0x11f681 -UnknownText_0x11f42e: ; 0x11f42e - text_jump UnknownText_0x1ec000 +BattleTowerTextJump_0x11f42e: ; 0x11f42e + text_jump BattleTowerText_0x1ec000 db "@" -UnknownText_0x11f433: ; 0x11f433 - text_jump UnknownText_0x1ec03b +BattleTowerTextJump_0x11f433: ; 0x11f433 + text_jump BattleTowerText_0x1ec03b db "@" UnknownText_0x11f438: ; 0x11f438 text_jump UnknownText_0x1ec060 db "@" -UnknownText_0x11f43d: ; 0x11f43d - text_jump UnknownText_0x1ec080 +BattleTowerTextJump_0x11f43d: ; 0x11f43d + text_jump BattleTowerText_0x1ec080 db "@" UnknownText_0x11f442: ; 0x11f442 @@ -22803,7 +22804,7 @@ Function17021e: ; 17021e Function17022c: ; 17022c .asm_17022c - call Function17023a + call Jumpto_BattleTowerBattleFunction call DelayFrame ld a, [wcf63] cp $1 @@ -22811,11 +22812,11 @@ Function17022c: ; 17022c ret ; 17023a -Function17023a: ; 17023a +Jumpto_BattleTowerBattleFunction: ; 17023a ld a, [wcf63] ld e, a ld d, 0 - ld hl, Jumptable_170249 + ld hl, Jumptable_BattleTowerBattleFunctions rept 2 add hl, de endr @@ -22825,20 +22826,20 @@ endr jp [hl] ; 170249 -Jumptable_170249: ; 170249 - dw Function17024d - dw Function1704c9 +Jumptable_BattleTowerBattleFunctions: ; 170249 + dw RunBattleTowerBattle + dw SkipBattleTowerBattle ; 17024d -Function17024d: ; 17024d +RunBattleTowerBattle: ; 17024d ld a, [Options] push af ld hl, Options set 6, [hl] - ld a, [wcfc0] + ld a, [InBattleTowerBattle] push af or $1 - ld [wcfc0], a + ld [InBattleTowerBattle], a xor a ld [InLinkBattle], a callba Mobile_HealParty @@ -22852,13 +22853,13 @@ Function17024d: ; 17024d ld [ScriptVar], a and a jr nz, .asm_1702a9 - ld a, $1 + ld a, BANK(sNrOfBeatenBattleTowerTrainers) call GetSRAMBank - ld a, [$be46] - ld [wcf64], a + ld a, [sNrOfBeatenBattleTowerTrainers] + ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64 call CloseSRAM ld hl, StringBuffer3 - ld a, [wcf64] + ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64 add $f7 ld [hli], a ld a, $50 @@ -22866,64 +22867,66 @@ Function17024d: ; 17024d .asm_1702a9 pop af - ld [wcfc0], a + ld [InBattleTowerBattle], a pop af ld [Options], a ld a, $1 ld [wcf63], a ret -; 1702b7 + Function1702b7: ; 1702b7 - call Function1704a2 - ld de, $c643 - ld c, $b +; Initialise the BattleTower-Trainer and his Pkmn + call CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 + ld c, PKMN_NAME_LENGTH callba Function17d073 jr nc, .asm_1702db - ld a, [$c608 + 11] + + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1] ld [wd265], a call GetPokemonName ld l, e ld h, d - ld de, $c643 - ld bc, $000b + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 + ld bc, PKMN_NAME_LENGTH call CopyBytes .asm_1702db - ld de, $c67e - ld c, $b + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e + ld c, PKMN_NAME_LENGTH callba Function17d073 jr nc, .asm_1702fc - ld a, [$c64e] + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2] ; [$c64e] ld [wd265], a call GetPokemonName ld l, e ld h, d - ld de, $c67e - ld bc, $000b + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e + ld bc, PKMN_NAME_LENGTH call CopyBytes .asm_1702fc - ld de, $c686 + 51 - ld c, $b + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 + ld c, PKMN_NAME_LENGTH callba Function17d073 jr nc, .asm_17031d - ld a, [$c689] + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3] ; [$c689] ld [wd265], a call GetPokemonName ld l, e ld h, d - ld de, $c686 + 51 - ld bc, $000b + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 + ld bc, PKMN_NAME_LENGTH call CopyBytes .asm_17031d ld a, $50 - ld [$c64d], a - ld [$c688], a - ld [$c68a + 57], a + ld [wBT_OTTempCopy + wBT_OTTempCopy_45], a ; $c64d + ld [wBT_OTTempCopy + wBT_OTTempCopy_80], a ; $c688 + ld [wBT_OTTempCopy + wBT_OTTempCopy_BB], a ; $c68a + 57 = $c6c3 call Function170c98 - ld de, $c608 + ld de, wBT_OTTempCopy ld c, $a callba Function17d073 jr nc, .asm_17033d @@ -22931,7 +22934,7 @@ Function1702b7: ; 1702b7 jr .asm_170340 .asm_17033d - ld hl, $c608 + ld hl, wBT_OTTempCopy ; 0xc608 .asm_170340 ld de, wd26b @@ -22939,16 +22942,18 @@ Function1702b7: ; 1702b7 call CopyBytes ld a, $50 ld [de], a - ld hl, $c608 + 10 + ld hl, wBT_OTTempCopy + wBT_OTTempCopy_TrainerClass ld a, [hli] ld [OtherTrainerClass], a ld a, $ea ld [BGMapBuffer], a ld a, $d3 ld [wcd21], a + + ; Copy Pkmn into Memory from the address in hl ld de, OTPartyMon1Species ld bc, OTPartyCount - ld a, $3 + ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has ld [bc], a inc bc .asm_170367 @@ -22957,7 +22962,7 @@ Function1702b7: ; 1702b7 ld [bc], a inc bc push bc - ld bc, $0030 + ld bc, BATTLETOWER_PKMNSTRUCTLENGTH call CopyBytes push de ld a, [BGMapBuffer] @@ -23163,27 +23168,29 @@ Unknown_17047e: db $0f, $05, $14, $07 db $05, $05, $11, $0c db $0c, $06, $06, $04 -; 1704a2 -Function1704a2: ; 1704a2 + +CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy: ; 1704a2 +; copy the BattleTower-Trainer data that lies at 'BT_OTrainer' to 'wBT_OTTempCopy' ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a - ld hl, LYOverrides - ld de, $c608 - ld bc, $00e0 + ld hl, BT_OTrainer ; $d100 + ld de, wBT_OTTempCopy ; $c608 + ld bc, BT_OTrainerEnd - BT_OTrainer ; $e0 = $a + $1 + 3*$3b + $24 + ; = $a + $1 + BATTLETOWER_NROFPKMNS * (BATTLETOWER_PKMNSTRUCTLENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH call CopyBytes pop af ld [rSVBK], a - ld a, $1 + ld a, BANK(s1_be45) call GetSRAMBank ld a, $2 - ld [$be45], a - ld hl, $be46 + ld [s1_be45], a + ld hl, sNrOfBeatenBattleTowerTrainers inc [hl] call CloseSRAM -Function1704c9: +SkipBattleTowerBattle: ; 1704c9 ret ; 1704ca @@ -23256,14 +23263,17 @@ Jumptable_17051f: ; 17051f Function170525: ; 170525 ld a, $5 call GetSRAMBank + ld hl, $a89c ld de, StringBuffer3 ld bc, $0016 call CopyBytes + ld hl, $a8b2 ld de, $c608 ld bc, $0096 call CopyBytes + call CloseSRAM hlcoord 1, 1 ld de, StringBuffer3 @@ -23281,10 +23291,12 @@ Function170525: ; 170525 call Function1705f0 jr Function1705b2 + Function170571: call Function32f9 call Function1705b2 + Function170577: ld hl, hJoyPressed ld a, [hl] @@ -23500,56 +23512,62 @@ endr Jumptable_170696: ; 170696 (5c:4696) - dw Function17075f - dw Function170788 - dw Function170778 - dw Function170799 - dw Function17079d - dw Function1707ac - dw Function1707f4 - dw Function170868 - dw Function170881 - dw Function17089a - dw Function1708b1 - dw Function1708b9 - dw Function1708c8 - dw Function1708f0 - dw Function17093c - dw Function1709aa - dw Function1709bb - dw Function170a9c - dw Function170aa0 - dw Function170aaf - dw Function170abe - dw Function170ad7 - dw Function170807 - dw Function17081d - dw Function170ae8 - dw Function170b16 - dw Function1706d6 - dw Function1706ee - dw Function17071b - dw Function170729 - dw Function17073e - dw Function170737 - - -Function1706d6: ; 1706d6 (5c:46d6) - ld a, $1 + dw Function17075f ; 0x00 + dw Function170788 ; 0x01 + dw Function170778 ; 0x02 + dw Function170799 ; 0x03 + dw Function17079d ; 0x04 + dw Function1707ac ; 0x05 + dw Function1707f4 ; 0x06 + dw Function170868 ; 0x07 + dw Function170881 ; 0x08 + dw Function17089a ; 0x09 + dw Function1708b1 ; 0x0a + dw Function1708b9 ; 0x0b + dw Function1708c8 ; 0x0c + dw Function1708f0 ; 0x0d + dw Function17093c ; 0x0e + dw Function1709aa ; 0x0f + dw Function1709bb ; 0x10 + dw Function170a9c ; 0x11 + dw Function170aa0 ; 0x12 + dw Function170aaf ; 0x13 + dw Function170abe ; 0x14 + dw Function170ad7 ; 0x15 + dw Function170807 ; 0x16 + dw Function17081d ; 0x17 + dw Function170ae8 ; 0x18 + dw Function170b16 ; 0x19 + dw ResetBattleTowerTrainersSRAM ; 0x1a + dw Function1706ee ; 0x1b + dw Function17071b ; 0x1c + dw Function170729 ; 0x1d + dw Function17073e ; 0x1e + dw Function170737 ; 0x1f + + +; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes) +ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) + ld a, BANK(sBTTrainers) call GetSRAMBank + ld a, $ff - ld hl, $be48 - ld bc, $7 + ld hl, sBTTrainers + ld bc, BATTLETOWER_NROFTRAINERS call ByteFill + xor a - ld [$be46], a + ld [sNrOfBeatenBattleTowerTrainers], a + call CloseSRAM + ret Function1706ee: ; 1706ee (5c:46ee) - ld a, $1 + ld a, BANK(sbe50) call GetSRAMBank - ld a, [$be50] + + ld a, [sbe50] call CloseSRAM ld [ScriptVar], a ld hl, NumItems @@ -23575,18 +23593,18 @@ Function1706ee: ; 1706ee (5c:46ee) ret Function17071b: ; 17071b (5c:471b) - ld a, $1 + ld a, BANK(s1_be45) call GetSRAMBank ld a, $3 - ld [$be45], a + ld [s1_be45], a call CloseSRAM ret Function170729: ; 170729 (5c:4729) - ld a, $1 + ld a, BANK(s1_be45) call GetSRAMBank ld a, $4 - ld [$be45], a + ld [s1_be45], a call CloseSRAM ret @@ -23606,10 +23624,10 @@ Function17073e: ; 17073e (5c:473e) cp $1e jr z, Function17073e push af - ld a, $1 + ld a, BANK(sbe50) call GetSRAMBank pop af - ld [$be50], a + ld [sbe50], a call CloseSRAM ret @@ -23618,17 +23636,17 @@ Function17075f: ; 17075f (5c:475f) ld a, [ScriptVar] and a ret z - ld a, $1 + ld a, BANK(sbe4f) call GetSRAMBank - ld a, [$be4f] + ld a, [sbe4f] and $2 ld [ScriptVar], a call CloseSRAM ret Function170778: ; 170778 (5c:4778) - ld hl, $be45 - ld a, $1 + ld hl, s1_be45 + ld a, BANK(s1_be45) call GetSRAMBank ld a, [hl] ld [ScriptVar], a @@ -23636,11 +23654,11 @@ Function170778: ; 170778 (5c:4778) ret Function170788: ; 170788 (5c:4788) - ld a, $1 + ld a, BANK(sbe4f) call GetSRAMBank - ld a, [$be4f] + ld a, [sbe4f] or $2 - ld [$be4f], a + ld [sbe4f], a call CloseSRAM ret @@ -23651,10 +23669,10 @@ Function170799: ; 170799 (5c:4799) Function17079d: ; 17079d (5c:479d) ld c, $0 asm_17079f: ; 17079f (5c:479f) - ld a, $1 + ld a, BANK(s1_be45) call GetSRAMBank ld a, c - ld [$be45], a + ld [s1_be45], a call CloseSRAM ret @@ -23763,27 +23781,27 @@ Function17081d: ; 17081d (5c:481d) ret Function170868: ; 170868 (5c:4868) - ld a, $1 + ld a, BANK(sbe47) call GetSRAMBank ld a, [rSVBK] ; $ff00+$70 push af ld a, $3 ld [rSVBK], a ; $ff00+$70 ld a, [wd000 + $800] - ld [$be47], a + ld [sbe47], a pop af ld [rSVBK], a ; $ff00+$70 call CloseSRAM ret Function170881: ; 170881 (5c:4881) - ld a, $1 + ld a, BANK(sbe47) call GetSRAMBank ld a, [rSVBK] ; $ff00+$70 push af ld a, $3 ld [rSVBK], a ; $ff00+$70 - ld a, [$be47] + ld a, [sbe47] ld [wd000 + $800], a pop af ld [rSVBK], a ; $ff00+$70 @@ -23815,9 +23833,9 @@ Function1708b1: ; 1708b1 (5c:48b1) ret Function1708b9: ; 1708b9 (5c:48b9) - ld a, $1 + ld a, BANK(s1_be3c) call GetSRAMBank - ld a, [$be3c] + ld a, [s1_be3c] ld [ScriptVar], a call CloseSRAM ret @@ -24121,20 +24139,20 @@ Function170abe: ; 170abe (5c:4abe) ld a, [ScriptVar] and a ret z - ld a, $1 + ld a, BANK(sbe4f) call GetSRAMBank - ld a, [$be4f] + ld a, [sbe4f] and $1 ld [ScriptVar], a call CloseSRAM ret Function170ad7: ; 170ad7 (5c:4ad7) - ld a, $1 + ld a, BANK(sbe4f) call GetSRAMBank - ld a, [$be4f] + ld a, [sbe4f] or $1 - ld [$be4f], a + ld [sbe4f], a call CloseSRAM ret @@ -24178,8 +24196,8 @@ Function170b16: ; 170b16 (5c:4b16) ld [ScriptVar], a ret -Function170b44: ; 170b44 - callba Function1f8000 +Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44 + callba Function_LoadOpponentTrainerAndPokemons ld a, [rSVBK] push af ld a, $3 @@ -24195,6 +24213,9 @@ Function170b44: ; 170b44 add hl, bc ld a, [hl] ld [wcd49], a + +; Load sprite of the opponent trainer +; because s/he is chosen randomly and appears out of nowhere ld a, [ScriptVar] dec a sla a @@ -24237,8 +24258,8 @@ Function170bd2: ; 170bd2 ret ; 170bd3 -Function170bd3: ; 170bd3 - callba Function8b201 +SpecialCheckForBattleTowerRules: ; 170bd3 + callba CheckForBattleTowerRules jr c, .asm_170bde xor a jr .asm_170be0 diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 8e675e0d3..9c38fbb27 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -425,19 +425,29 @@ Function17d1f1: ; 17d1f1 ret ; 17d224 -Function17d224: ; 17d224 + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Parameter: [ScriptVar] = 0..1 +; +; if [ScriptVar] == 0 +; Show japanese menu options +; - News - News - ??? - Cancel +; if [ScriptVar] == 1 +; Show BattleTower-Menu with 3 options in english language +; - Challenge - Explanation - Cancel +Special_Menu_ChallengeExplanationCancel: ; 17d224 ld a, [ScriptVar] and a jr nz, .asm_17d234 ld a, $4 ld [ScriptVar], a - ld hl, MenuDataHeader_17d26a + ld hl, MenuDataHeader_17d26a ; Japanese Menu, where you can choose 'News' as an option jr .asm_17d23c .asm_17d234 ld a, $4 ld [ScriptVar], a - ld hl, MenuDataHeader_17d28f + ld hl, MenuDataHeader_ChallengeExplanationCancel ; English Menu .asm_17d23c call LoadMenuDataHeader @@ -488,14 +498,14 @@ MenuData2_17d272: ; 17d272 db "やめる@" ; 17d28f -MenuDataHeader_17d28f: ; 17d28f +MenuDataHeader_ChallengeExplanationCancel: ; 17d28f db $40 ; flags db 0, 0 ; start coords db 7, 14 ; end coords - dw MenuData2_17d297 + dw MenuData2_ChallengeExplanationCancel db 1 ; default option -MenuData2_17d297: ; 17d297 +MenuData2_ChallengeExplanationCancel: ; 17d297 db $a0 ; flags db 3 db "Challenge@" @@ -2388,7 +2398,7 @@ Function17ded9: ; 17ded9 ld a, [hli] ld b, a push hl - callba Function4dba3 + callba SetPkmnCaughtData pop hl pop bc jr .asm_17df5e @@ -2534,7 +2544,7 @@ endr ; 17e026 Function17e026: ; 17e026 - ld a, $1 + ld a, BANK(sBoxCount) call GetSRAMBank ld a, [sBoxCount] call CloseSRAM @@ -2545,11 +2555,11 @@ Function17e026: ; 17e026 push bc push hl callba LoadEnemyMon - callba Functionde6e + callba SentPkmnIntoBox callba Function4db83 pop hl pop bc - ld a, $1 + ld a, BANK(sBoxMonNicknames) call GetSRAMBank bit 1, b jr z, .asm_17e067 @@ -4294,9 +4304,9 @@ Function17f334: ; 17f334 ld a, [wcd55] bit 7, a jr nz, .asm_17f355 - ld a, $1 + ld a, BANK(sCrystalData) call GetSRAMBank - ld a, [$be3f] + ld a, [sCrystalData + 2] jr .asm_17f35d .asm_17f355 @@ -4338,9 +4348,9 @@ Function17f382: ; 17f382 ld a, [wcd55] bit 7, a jr nz, .asm_17f3a3 - ld a, $1 + ld a, BANK(sCrystalData) call GetSRAMBank - ld de, $be40 + ld de, sCrystalData + 3 jr .asm_17f3ab .asm_17f3a3 diff --git a/text/battle.asm b/text/battle.asm index 3f29835aa..55d8418b6 100644 --- a/text/battle.asm +++ b/text/battle.asm @@ -44,7 +44,7 @@ WantsToBattleText:: ; 0x807a9 prompt ; 0x807bd -BattleText_0x807bd: ; 0x807bd +BattleText_WildFled: ; 0x807bd text "Wild @" text_from_ram EnemyMonNick text "" @@ -52,7 +52,7 @@ BattleText_0x807bd: ; 0x807bd prompt ; 0x807cf -BattleText_0x807cf: ; 0x807cf +BattleText_EnemyFled: ; 0x807cf text "Enemy @" text_from_ram EnemyMonNick text "" @@ -113,7 +113,7 @@ BattleText_0x80880: ; 0x80880 prompt ; 0x80899 -BattleText_0x80899: ; 0x80899 +BattleText_UserRecoveredPPUsing: ; 0x80899 text "<USER>" line "recovered PP using" cont "@" @@ -129,13 +129,13 @@ BattleText_0x808b6: ; 0x808b6 prompt ; 0x808d2 -BattleText_0x808d2: ; 0x808d2 +BattleText_SafeguardFaded: ; 0x808d2 text "<USER>'s" line "SAFEGUARD faded!" prompt ; 0x808e7 -BattleText_0x808e7: ; 0x808e7 +BattleText_PkmnnLightScreenFell: ; 0x808e7 text_from_ram StringBuffer1 text " #MON's" line "LIGHT SCREEN fell!" @@ -149,42 +149,42 @@ BattleText_0x80905: ; 0x80905 prompt ; 0x8091f -BattleText_0x8091f: ; 0x8091f +BattleText_RainContinuesToFall: ; 0x8091f text "Rain continues to" line "fall." prompt ; 0x80938 -BattleText_0x80938: ; 0x80938 +BattleText_TheSunlightIsStrong: ; 0x80938 text "The sunlight is" line "strong." prompt ; 0x80951 -BattleText_0x80951: ; 0x80951 +BattleText_TheSandstormRages: ; 0x80951 text "The SANDSTORM" line "rages." prompt ; 0x80967 -BattleText_0x80967: ; 0x80967 +BattleText_TheRainStopped: ; 0x80967 text "The rain stopped." prompt ; 0x8097a -BattleText_0x8097a: ; 0x8097a +BattleText_TheSunlightFaded: ; 0x8097a text "The sunlight" line "faded." prompt ; 0x8098f -BattleText_0x8098f: ; 0x8098f +BattleText_TheSandstormSubsided: ; 0x8098f text "The SANDSTORM" line "subsided." prompt ; 0x809a8 -BattleText_0x809a8: ; 0x809a8 +BattleText_EnemyPkmnFainted: ; 0x809a8 text "Enemy @" text_from_ram EnemyMonNick text "" @@ -199,7 +199,7 @@ GotMoneyForWinningText: line "for winning!" prompt -BattleText_0x809da: ; 0x809da +BattleText_EnemyWasDefeated: ; 0x809da text "<ENEMY>" line "was defeated!" prompt @@ -234,14 +234,14 @@ BattleText_0x80a4f: ; 0x80a4f prompt ; 0x80a75 -BattleText_0x80a75: ; 0x80a75 +BattleText_PkmnFainted: ; 0x80a75 text_from_ram BattleMonNick text "" line "fainted!" prompt ; 0x80a83 -BattleText_0x80a83: ; 0x80a83 +BattleText_UseNextMon: ; 0x80a83 text "Use next #MON?" done ; 0x80a93 @@ -259,7 +259,7 @@ LostAgainstText: ; 0x80ab9 prompt ; 0x80aca -BattleText_0x80aca: ; 0x80aca +BattleText_EnemyIsAboutToUseWillPlayerChangePkmn: ; 0x80aca text "<ENEMY>" line "is about to use" cont "@" @@ -271,7 +271,7 @@ BattleText_0x80aca: ; 0x80aca done ; 0x80af8 -BattleText_0x80af8: ; 0x80af8 +BattleText_EnemySentOut: ; 0x80af8 text "<ENEMY>" line "sent out" cont "@" @@ -280,34 +280,32 @@ BattleText_0x80af8: ; 0x80af8 done ; 0x80b0b -BattleText_0x80b0b: ; 0x80b0b +BattleText_TheresNoWillToBattle: ; 0x80b0b text "There's no will to" line "battle!" prompt ; 0x80b26 -BattleText_0x80b26: ; 0x80b26 +BattleText_AnEGGCantBattle: ; 0x80b26 text "An EGG can't" line "battle!" prompt ; 0x80b3b -BattleText_0x80b3b: ; 0x80b3b +BattleText_CantEscape2: ; 0x80b3b text "Can't escape!" prompt ; 0x80b49 -BattleText_0x80b49: ; 0x80b49 +BattleText_TheresNoEscapeFromTrainerBattle: ; 0x80b49 text "No! There's no" line "running from a" cont "trainer battle!" prompt -; 0x80b77 -BattleText_0x80b77: ; 0x80b77 +BattleText_GotAwaySafely: ; 0x80b77 text "Got away safely!" prompt -; 0x80b89 BattleText_0x80b89: ; 0x80b89 text "<USER>" @@ -318,7 +316,7 @@ BattleText_0x80b89: ; 0x80b89 prompt ; 0x80ba0 -BattleText_0x80ba0: ; 0x80ba0 +BattleText_CantEscape: ; 0x80ba0 text "Can't escape!" prompt ; 0x80bae @@ -1282,7 +1280,7 @@ IgnoredOrders2Text: ; 0x81850 prompt ; 0x81863 -BattleText_0x81863: ; 0x81863 +BattleText_LinkErrorBattleCanceled: ; 0x81863 text "Link error…" para "The battle has" diff --git a/text/battle_tower.asm b/text/battle_tower.asm index 9ef4f0299..af90b2666 100644 --- a/text/battle_tower.asm +++ b/text/battle_tower.asm @@ -1,5 +1,5 @@ -UnknownText_0x1ec000: ; 0x1ec000 +BattleTowerText_0x1ec000: ; 0x1ec000 text "Hello, glad to" line "meet you!" @@ -8,7 +8,7 @@ UnknownText_0x1ec000: ; 0x1ec000 done ; 0x1ec03b -UnknownText_0x1ec03b: ; 0x1ec03b +BattleTowerText_0x1ec03b: ; 0x1ec03b text "Thank you! A most" line "enjoyable battle!" done @@ -20,7 +20,7 @@ UnknownText_0x1ec060: ; 0x1ec060 done ; 0x1ec080 -UnknownText_0x1ec080: ; 0x1ec080 +BattleTowerText_0x1ec080: ; 0x1ec080 text "Work, work, work…" line "I'm always busy!" done diff --git a/text/common_2.asm b/text/common_2.asm index 60a92f0c3..5e0665bd4 100644 --- a/text/common_2.asm +++ b/text/common_2.asm @@ -1295,7 +1295,7 @@ UnknownText_0x1bcf99: ; 0x1bcf99 done ; 0x1bcf9c -UnknownText_0x1bcf9c: ; 0x1bcf9c +Text_EnemyWithdrew: ; 0x1bcf9c text "<ENEMY>" line "withdrew" cont "@" @@ -1304,7 +1304,7 @@ UnknownText_0x1bcf9c: ; 0x1bcf9c prompt ; 0x1bcfaf -UnknownText_0x1bcfaf: ; 0x1bcfaf +Text_EnemyUsedOn: ; 0x1bcfaf text "<ENEMY>" line "used @" text_from_ram wd050 @@ -1315,19 +1315,19 @@ UnknownText_0x1bcfaf: ; 0x1bcfaf prompt ; 0x1bcfc7 -UnknownText_0x1bcfc7: ; 0x1bcfc7 +Text_ThatCantBeUsedRightNow: ; 0x1bcfc7 text "That can't be used" line "right now." prompt ; 0x1bcfe5 -UnknownText_0x1bcfe5: ; 0x1bcfe5 +Text_ThatItemCantBePutInThePack: ; 0x1bcfe5 text "That item can't be" line "put in the PACK." done ; 0x1bd009 -UnknownText_0x1bd009: ; 0x1bd009 +Text_TheItemWasPutInThePack: ; 0x1bd009 text "The @" text_from_ram StringBuffer1 text "" @@ -1336,18 +1336,18 @@ UnknownText_0x1bd009: ; 0x1bd009 done ; 0x1bd029 -UnknownText_0x1bd029: ; 0x1bd029 +Text_RemainingTime: ; 0x1bd029 text "Remaining Time" done ; 0x1bd039 -UnknownText_0x1bd039: ; 0x1bd039 +Text_YourPkmnsHPWasHealed: ; 0x1bd039 text "Your #MON's HP" line "was healed." prompt ; 0x1bd054 -UnknownText_0x1bd054: ; 0x1bd054 +Text_Warping: ; 0x1bd054 text "Warping…" done ; 0x1bd05e @@ -1372,7 +1372,7 @@ UnknownText_0x1bd09a: ; 0x1bd09a prompt ; 0x1bd0bd -UnknownText_0x1bd0bd: ; 0x1bd0bd +Text_BreedingIsNotPossible: ; 0x1bd0bd text "Breeding is not" line "possible." prompt diff --git a/text/common_3.asm b/text/common_3.asm index c73e91d74..02adfea43 100644 --- a/text/common_3.asm +++ b/text/common_3.asm @@ -129,29 +129,29 @@ UnknownText_0x1c02c9: ; 1c02c9 prompt ; 1c02df -UnknownText_0x1c02df: ; 1c02df +Text_GoPkmn: ; 1c02df text "Go! @" db "@" ; 1c02e6 -UnknownText_0x1c02e6: ; 1c02e6 +Text_DoItPkmn: ; 1c02e6 text "Do it! @" db "@" ; 1c02f0 -UnknownText_0x1c02f0: ; 1c02f0 +Text_GoForItPkmn: ; 1c02f0 text "Go for it," line "@" db "@" ; 1c02fe -UnknownText_0x1c02fe: ; 1c02fe +Text_YourFoesWeakGetmPkmn: ; 1c02fe text "Your foe's weak!" line "Get'm, @" db "@" ; 1c0317 -UnknownText_0x1c0317: ; 1c0317 +Text_BattleMonNick01: ; 1c0317 text_from_ram BattleMonNick text "!" done @@ -1074,7 +1074,7 @@ UnknownText_0x1c0fdd: ; 1c0fdd done ; 1c0feb -UnknownText_0x1c0feb: ; 1c0feb +Text_WasSentToBillsPC: ; 1c0feb text_from_ram StringBuffer1 text " was" line "sent to BILL's PC." diff --git a/text/common_4.asm b/text/common_4.asm index 09bfff312..c96d032f8 100644 --- a/text/common_4.asm +++ b/text/common_4.asm @@ -1262,7 +1262,7 @@ UnknownText_0x1c5937: ; 0x1c5937 done ; 0x1c5944 -UnknownText_0x1c5944: ; 0x1c5944 +Text_ExcuseMeYoureNotReady: ; 0x1c5944 text "Excuse me." line "You're not ready." para "" @@ -1289,14 +1289,14 @@ UnknownText_0x1c59a3: ; 0x1c59a3 done ; 0x1c59c3 -UnknownText_0x1c59c3: ; 0x1c59c3 +Text_OnlyThreePkmnMayBeEntered: ; 0x1c59c3 text "Only three #MON" line "may be entered." para "" done ; 0x1c59e5 -UnknownText_0x1c59e5: ; 0x1c59e5 +Text_ThePkmnMustAllBeDifferentKinds: ; 0x1c59e5 text "The @" text_from_ram StringBuffer2 text " #MON" @@ -1306,7 +1306,7 @@ UnknownText_0x1c59e5: ; 0x1c59e5 done ; 0x1c5a13 -UnknownText_0x1c5a13: ; 0x1c5a13 +Text_ThePkmnMustNotHoldTheSameItems: ; 0x1c5a13 text "The @" text_from_ram StringBuffer2 text " #MON" @@ -1316,7 +1316,7 @@ UnknownText_0x1c5a13: ; 0x1c5a13 done ; 0x1c5a42 -UnknownText_0x1c5a42: ; 0x1c5a42 +Text_YouCantTakeAnEgg: ; 0x1c5a42 text "You can't take an" line "EGG!" para "" @@ -443,6 +443,7 @@ SECTION "Battle", WRAM0 wMisc:: wBattle:: +wBT_OTTempCopy:: ; used to copy the data of the BattleTower-Trainer and the 3 Pkmn wc608:: wEnemyMoveStruct:: ds MOVE_LENGTH ; c608 @@ -808,6 +809,7 @@ wc716:: ds 1 wc717:: ds 1 wc718:: ds 1 wc719:: ds 1 +LastPlayerMon:: ; c71a wc71a:: ds 1 LastPlayerMove:: ; c71b ds 1 @@ -884,6 +886,23 @@ wMiscEnd:: wc7e8:: ds 24 +RSSET 0 ; Offsets for wBT_OTTempCopy:: @ $c608 +wBT_OTTempCopy_0 RB $A ; $c608 +wBT_OTTempCopy_TrainerClass RB $1 ; $c608 + $a = $c612 +wBT_OTTempCopy_Pkmn1 RB $30 ; $c608 + $b = $c613 +wBT_OTTempCopy_Pkmn1Name RB $A ; $c608 + $3b = $c643 +wBT_OTTempCopy_45 RB $1 ; $c608 + $45 = $c64d +wBT_OTTempCopy_Pkmn2 RB $30 ; $c608 + $46 = $c64e +wBT_OTTempCopy_Pkmn2Name RB $A ; $c608 + $76 = $c67e +wBT_OTTempCopy_80 RB $1 ; $c608 + $80 = $c688 +wBT_OTTempCopy_Pkmn3 RB $30 ; $c608 + $81 = $c689 +wBT_OTTempCopy_Pkmn3Name RB $A ; $c608 + $b1 = $c6b9 +wBT_OTTempCopy_BB RB $1 ; $c608 + $bb = $c6c3 + +GLOBAL wBT_OTTempCopy_TrainerClass, wBT_OTTempCopy_Pkmn1, wBT_OTTempCopy_Pkmn1Name, wBT_OTTempCopy_45, wBT_OTTempCopy_Pkmn2, wBT_OTTempCopy_Pkmn2Name, wBT_OTTempCopy_80, wBT_OTTempCopy_Pkmn3, wBT_OTTempCopy_Pkmn3Name, wBT_OTTempCopy_BB + + + SECTION "Overworld Map", WRAM0 [$c800] wc800:: @@ -1172,6 +1191,7 @@ CurSpecies:: ; cf60 wcf61:: ds 2 wcf63:: ds 1 +wNrOfBeatenBattleTowerTrainers:: wcf64:: ds 1 IF !DEF(CRYSTAL11) wPokedexStatus:: @@ -1260,7 +1280,13 @@ GameTimerPause:: ; cfbc ds 1 wcfbe:: ds 2 -wcfc0:: ds 2 + +InBattleTowerBattle:: ; cfc0 +; 0 not in BattleTower-Battle +; 1 BattleTower-Battle + ds 1 + + ds 1 FXAnimID:: FXAnimIDLo:: ; cfc2 @@ -1818,6 +1844,7 @@ wd25e:: ds 4 wd262:: ds 1 wd263:: ds 1 wd264:: ds 1 +GetPokemonName_Parameter:: wd265:: ds 1 wd266:: ds 1 wd267:: ds 1 @@ -2598,11 +2625,36 @@ w2_d188:: ds 1 SECTION "WRAM 3", WRAMX, BANK [3] +w3_d000:: ; d000 ds $100 -w3_d100:: - ds $700 - +BT_OTrainer:: +w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + $24) +BT_OTrainer_Name:: + ds $A +BT_OTrainer_TrainerClass:: + ds $1 +BT_OTPkmn1:: ; w3_d10b + ds $1 +BT_OTPkmn1Item:: + ds $3b-1 +BT_OTPkmn2:: ; w3_d146 + ds $1 +BT_OTPkmn2Item:: + ds $3b-1 +BT_OTPkmn3:: ; w3_d181 + ds $1 +BT_OTPkmn3Item:: + ds $3b-1 + + ds $24 +BT_OTrainerEnd:: ; we_d1e0 + + ds $20 + + ds $600 + +wBTChoiceOfLvlGroup:: w3_d800:: ds 1 @@ -2772,17 +2824,26 @@ sCrystalData:: s1_be44:: ds 1 s1_be45:: ds 1 +; data of the BattleTower must be in SRAM because you can save and leave between battles sBattleTower:: ; be46 +sNrOfBeatenBattleTowerTrainers:: sbe46:: ds 1 sbe47:: ds 1 -sbe48:: ds 7 -sbe4f:: ds 2 -sbe51:: ds 1 -sbe52:: ds 1 -sbe53:: ds 1 -sbe54:: ds 1 -sbe55:: ds 1 -sbe56:: ds 1 +; The 7 trainers of the BattleTower are saved here, so nobody appears more than once +sBTTrainers:: ; sbe48 + ds 7 +sbe4f:: ds 1 +sbe50:: ds 1 +; Pkmn of previous trainer +sBTPkmnOfTrainers:: ; 0xbe51 +sBTPkmnPrevTrainer1:: + ds 1 +sBTPkmnPrevTrainer2:: ds 1 +sBTPkmnPrevTrainer3:: ds 1 +; Pkmn of preprevious trainer +sBTPkmnPrevPrevTrainer1:: ds 1 +sBTPkmnPrevPrevTrainer2:: ds 1 +sBTPkmnPrevPrevTrainer3:: ds 1 SECTION "Boxes 1-7", SRAM, BANK [2] |