ref: cc0d5d4c8bb9721f8ab0354d87c8f6d848dbe23b
parent: c432709715df83f5cd063fd5b14684389e037e15
parent: 0d4c2776d927e5d3162d9a4430fc82f35bf50be5
author: yenatch <[email protected]>
date: Wed Sep 9 12:02:55 EDT 2015
Merge pull request #312 from JimB16/master Added comments and changed labels (mainly for BattleTower)
--- 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 @@
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 @@
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 @@
; 380ff
-Function380ff: ; 380ff
+CheckSubstatusCantRun: ; 380ff
ld a, [EnemySubStatus5]
bit SUBSTATUS_CANT_RUN, a
ret
@@ -156,7 +157,8 @@
AI_TryItem: ; 38105
- ld a, [wcfc0]
+ ; items are not allowed in the BattleTower
+ ld a, [InBattleTowerBattle]
and a
ret nz
@@ -565,7 +567,7 @@
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 @@
.asm_38436
Function38436: ; 38436
- call Function38571
+ call PrintText_UsedItemOn
hlcoord 2, 2
xor a
ld [wd10a], a
@@ -715,7 +717,7 @@
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 @@
ret
; 384d0
-UnknownText_0x384d0: ; 384d0
- text_jump UnknownText_0x1bcf9c
+TextJump_EnemyWithdrew: ; 384d0
+ text_jump Text_EnemyWithdrew
db "@"
; 384d5
@@ -744,7 +746,7 @@
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 @@
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 @@
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 @@
ld hl, EnemySubStatus4
set SUBSTATUS_FOCUS_ENERGY, [hl]
ld a, DIRE_HIT
- jp Function38568
+ jp PrintText_UsedItemOn_AND_AIUpdateHUD
; 3851e
Function3851e: ; 3851e
@@ -832,10 +834,14 @@
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
@@ -842,13 +848,15 @@
; 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 @@
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
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -63,7 +63,7 @@
xor a
ld [CurPartyMon], a
.asm_3c06b
- call Function3d887
+ call CheckIfPartyHasPkmnToBattleWith
jr nz, .asm_3c076
ld hl, CurPartyMon
inc [hl]
@@ -71,7 +71,7 @@
.asm_3c076
ld a, [CurBattleMon]
- ld [wc71a], a
+ ld [LastPlayerMon], a
ld a, [CurPartyMon]
ld [CurBattleMon], a
inc a
@@ -89,7 +89,7 @@
call Function3d57a
call Function3da0d
call ResetPlayerStatLevels
- call Function3f26d
+ call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
@@ -121,7 +121,7 @@
-Function3c0e5: ; 3c0e5
+WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5
call Function30b4
ld a, [wd0ee]
and $c0
@@ -129,19 +129,22 @@
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 @@
ret
; 3c12f
+
Function3c12f: ; 3c12f
.loop
call Function3c1bf
@@ -296,9 +300,9 @@
.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 @@
ret
.asm_3c30f
- call Function3c0e5
+ call WildFled_EnemyFled_LinkBattleCanceled
scf
ret
; 3c314
@@ -935,11 +939,11 @@
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 @@
xor a
ld [wc70f], a
call SetEnemyTurn
- callab Function38000
+ callab AI_SwitchOrTryItem
push af
call Function3c6cf
pop bc
@@ -1004,7 +1008,7 @@
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 @@
call SwitchTurnCore
call Function3ddc8
call SwitchTurnCore
- ld hl, BattleText_0x80899
+ ld hl, BattleText_UserRecoveredPPUsing
jp StdBattleTextBox
; 3ca26
@@ -1590,7 +1594,7 @@
jp UpdateEnemyMonInParty
; 3ca8f
-Function3ca8f: ; 3ca8f
+HanleDefrost: ; 3ca8f
ld a, [$ffcb]
cp $1
jr z, .asm_3ca9a
@@ -1648,7 +1652,7 @@
jp StdBattleTextBox
; 3cafb
-Function3cafb: ; 3cafb
+HandleSafeguard: ; 3cafb
ld a, [$ffcb]
cp $1
jr z, .asm_3cb06
@@ -1682,12 +1686,11 @@
.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 @@
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 @@
; 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,12 +2146,12 @@
.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
@@ -2155,7 +2158,7 @@
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 @@
hlcoord 9, 7
lb bc, 5, 11
call ClearBox
- ld hl, BattleText_0x80a75
+ ld hl, BattleText_PkmnFainted
jp StdBattleTextBox
; 3cf14
@@ -2370,7 +2373,7 @@
hlcoord 1, 0
lb bc, 4, 10
call ClearBox
- ld hl, BattleText_0x809a8
+ ld hl, BattleText_EnemyPkmnFainted
jp StdBattleTextBox
; 3cf35
@@ -2454,7 +2457,7 @@
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
@@ -2461,9 +2464,11 @@
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,7 +2789,7 @@
.asm_3d190
call Function3d227
call Function3d2e0
- jp c, Function3c0e5
+ jp c, WildFled_EnemyFled_LinkBattleCanceled
ld a, c
and a
ret nz
@@ -2791,7 +2796,7 @@
ld a, $1
ld [wd0ec], a
call Function3cf4a
- jp z, Function3c0e5
+ jp z, WildFled_EnemyFled_LinkBattleCanceled
jp Function3cdca
; 3d1aa
@@ -2840,7 +2845,7 @@
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 @@
.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 @@
call WriteBackup
call ClearSGB
call Function32f9
- call Function3f26d
+ call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
@@ -2925,13 +2930,13 @@
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 @@
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 @@
call Function3d313
call Function3d329
ret c
- call Function3d887
+ call CheckIfPartyHasPkmnToBattleWith
jr z, .loop
xor a
ret
@@ -3067,7 +3075,7 @@
ld a, 1
ld [BattleEnded], a
- ld a, [wcfc0]
+ ld a, [InBattleTowerBattle]
bit 0, a
jr nz, .asm_3d3bd
@@ -3280,7 +3288,7 @@
call Function3d7a0
call NewEnemyMonStatus
call ResetEnemyStatLevels
- call Function3d7c7
+ call Function_SetEnemyPkmnAndSendOutAnimation
call BreakAttraction
call Function3d57a
ret
@@ -3299,8 +3307,8 @@
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 @@
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 @@
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 @@
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 @@
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,7 +3814,7 @@
; 3d887
-Function3d887: ; 3d887
+CheckIfPartyHasPkmnToBattleWith: ; 3d887
ld a, [CurPartyMon]
ld hl, PartyMon1HP
call GetPartyLocation
@@ -3813,6 +3821,7 @@
ld a, [hli]
or [hl]
ret nz
+
ld a, [wd264]
and a
jr nz, .asm_3d8b1
@@ -3823,10 +3832,11 @@
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 @@
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 @@
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 @@
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 @@
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 @@
call WaitPlaySFX
pop de
call WaitSFX
- ld hl, BattleText_0x80b77
+ ld hl, BattleText_GotAwaySafely
call StdBattleTextBox
call WaitSFX
call Function309d
@@ -4013,7 +4024,7 @@
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 @@
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 @@
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 @@
and a
jr z, .asm_3dcc0
- ld a, [wc71a]
+ ld a, [LastPlayerMon]
call UpdateBattleMon
ld hl, BattleMonHP
ld a, [hli]
@@ -4376,7 +4387,7 @@
ld b, $0
predef FlagPredef
call Function3d43b
- ld hl, BattleText_0x80a75
+ ld hl, BattleText_PkmnFainted
jr .asm_3dcdf
.asm_3dcc0
@@ -4392,7 +4403,7 @@
call PlaySFX
call WaitSFX
call Function3d432
- ld hl, BattleText_0x809a8
+ ld hl, BattleText_EnemyPkmnFainted
.asm_3dcdf
call StdBattleTextBox
@@ -5003,17 +5014,18 @@
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 @@
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 @@
.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 @@
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 @@
and a
jp nz, ItemsCantBeUsed
- ld a, [wcfc0]
+ ld a, [InBattleTowerBattle]
and a
jp nz, ItemsCantBeUsed
@@ -5388,10 +5400,10 @@
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 @@
jp c, .asm_3e3ca
cp $f
jr nz, .asm_3e3e9
- call Function3c0e5
+ call WildFled_EnemyFled_LinkBattleCanceled
ret
.asm_3e3e9
@@ -5486,7 +5498,7 @@
call Function3d581
call Function3da0d
call ResetPlayerStatLevels
- call Function3f26d
+ call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
call Function3db5f
@@ -6213,7 +6225,8 @@
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 @@
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 @@
and a
ret nz
- ld a, [wcfc0]
+ ld a, [InBattleTowerBattle]
and a
ret nz
@@ -7327,9 +7340,11 @@
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 @@
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 @@
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,19 +8015,19 @@
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
@@ -8018,36 +8034,36 @@
; 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 @@
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 @@
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 @@
.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 @@
call Function3d0be
ld hl, BattleText_0x80730
call StdBattleTextBox
- ld a, [wcfc0]
+ ld a, [InBattleTowerBattle]
bit 0, a
ret z
call ClearTileMap
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -700,7 +700,7 @@
and a
ret nz
- ld a, [wcfc0]
+ ld a, [InBattleTowerBattle]
and a
ret nz
@@ -1458,37 +1458,37 @@
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 @@
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 @@
ld b, 4
call Divide
pop bc
- ld a, [$ffb6]
+ ld a, [hQuotient + 2]
ld [wd265], a
jr .asm_347e7
@@ -2305,12 +2305,12 @@
.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 @@
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 @@
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 @@
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 @@
and a
jr nz, .asm_35532
- ld a, [wcfc0]
+ ld a, [InBattleTowerBattle]
and a
jr nz, .asm_35532
@@ -4344,18 +4344,18 @@
.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 @@
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 @@
call AnimateCurrentMove
ld b, $7
- ld a, [wcfc0]
+ ld a, [InBattleTowerBattle]
and a
jr z, .asm_35ea4
ld b, $3
@@ -5587,7 +5587,7 @@
and a
jr nz, .asm_35eec
- ld a, [wcfc0]
+ ld a, [InBattleTowerBattle]
and a
jr nz, .asm_35eec
@@ -5676,18 +5676,23 @@
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 @@
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 @@
endr
xor a
- ld [hMultiplicand], a
+ ld [hMultiplicand + 0], a
ld a, [de]
ld [hMultiplicand + 1], a
inc de
@@ -8168,18 +8174,23 @@
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 @@
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 @@
.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
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -108,3 +108,8 @@
const MOM_ITEM
const MOM_DOLL
+BATTLETOWER_PKMNSTRUCTLENGTH EQU $30
+BATTLETOWER_NROFPKMNS EQU 3
+BATTLETOWER_TRAINERDATALENGTH EQU $24
+BATTLETOWER_NROFTRAINERS EQU 7
+
--- 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 @@
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 @@
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 @@
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 @@
pop de
ld bc, PKMN_NAME_LENGTH
call CopyBytes
+
pop de
pop af
ld [wd265], a
@@ -166,18 +191,18 @@
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
--- a/engine/predef.asm
+++ b/engine/predef.asm
@@ -39,7 +39,7 @@
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
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -142,9 +142,9 @@
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 @@
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
--- a/hram.asm
+++ b/hram.asm
@@ -31,13 +31,16 @@
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
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -273,7 +273,7 @@
jp z, .asm_e98e
ld a, b
- ld [$ffb6], a
+ ld [hMultiplicand + 2], a
ld hl, EnemyMonHP
ld b, [hl]
@@ -318,9 +318,9 @@
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 @@
ld b, $4
call Divide
- ld a, [$ffb6]
+ ld a, [hQuotient + 2]
and a
jr nz, .statuscheck
ld a, 1
@@ -618,7 +618,7 @@
.asm_eb3c
call ClearSprites
- predef Functionde6e
+ predef SentPkmnIntoBox
callba Function4db83
--- a/main.asm
+++ b/main.asm
@@ -2938,7 +2938,7 @@
; Caught data.
ld b, 0
- callba Function4dba3
+ callba SetPkmnCaughtData
; Holding a Berry.
ld bc, PartyMon2 - PartyMon1
@@ -4464,11 +4464,11 @@
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 @@
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 @@
; db3f
Functiondb3f: ; db3f
- ld a, $1
+ ld a, BANK(sBoxCount)
call GetSRAMBank
ld a, [wd10b]
and a
@@ -8799,11 +8799,12 @@
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 @@
jp nc, Functiondf42
inc a
ld [de], a
+
ld a, [CurPartySpecies]
ld [CurSpecies], a
ld c, a
@@ -8823,23 +8825,29 @@
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 @@
ld a, [$ffb6]
ld [de], a
inc de
+
xor a
ld b, $a
.asm_dee5
@@ -8868,6 +8877,7 @@
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 @@
inc de
dec b
jr nz, .asm_deef
+
ld a, BASE_HAPPINESS
ld [de], a
inc de
@@ -8909,6 +8920,7 @@
call CopyBytes
ld b, 0
call Functiondcb6
+
call CloseSRAM
scf
ret
@@ -9067,7 +9079,7 @@
and a
jr z, .asm_e04a
- ld a, 1 ; BANK(sBoxCount)
+ ld a, BANK(sBoxCount)
call GetSRAMBank
ld hl, sBoxCount
@@ -9378,22 +9390,22 @@
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 @@
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 @@
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 @@
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 @@
callba Function4db49
.asm_e3a6
- callba Function4db3b
+ callba GiveANickname_YesNo
pop de
jr c, .asm_e3b2
call Functione3de
@@ -9615,9 +9627,9 @@
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 @@
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 @@
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 @@
jr .asm_e5f6
.asm_e5f1
- ld a, $1
+ ld a, BANK(sBoxCount)
ld hl, sBoxCount
.asm_e5f6
@@ -25865,11 +25877,11 @@
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 @@
ReadTrainerParty: ; 39771
- ld a, [wcfc0]
+ ld a, [InBattleTowerBattle]
bit 0, a
ret nz
@@ -35873,7 +35885,7 @@
; 3991b
Function3991b: ; 3991b (e:591b)
- ld hl, $ffb3
+ ld hl, hMultiplicand - 1
xor a
rept 3
ld [hli], a
@@ -35886,15 +35898,15 @@
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 @@
.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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
; 4daa3
Function4daa3: ; 4daa3
- ld a, $1
+ ld a, BANK(sBoxCount)
call GetSRAMBank
ld hl, sBoxCount
ld a, [hl]
@@ -44868,7 +44882,7 @@
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 @@
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 @@
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 @@
; 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 @@
; 4db83
Function4db83: ; 4db83
- ld a, $1
+ ld a, BANK(sBoxMon1CaughtLevel)
call GetSRAMBank
ld hl, sBoxMon1CaughtLevel
call Function4db53
@@ -44978,7 +44992,7 @@
Function4db92: ; 4db92
push bc
- ld a, $1
+ ld a, BANK(sBoxMon1CaughtLevel)
call GetSRAMBank
ld hl, sBoxMon1CaughtLevel
pop bc
@@ -44987,7 +45001,7 @@
ret
; 4dba3
-Function4dba3: ; 4dba3
+SetPkmnCaughtData: ; 4dba3
ld a, [PartyCount]
dec a
ld hl, PartyMon1CaughtLevel
@@ -48623,7 +48637,7 @@
jr .done
.boxmon
- ld a, 1 ; BANK(sBoxSpecies)
+ ld a, BANK(sBoxSpecies)
call GetSRAMBank
ld hl, sBoxSpecies
call .done
@@ -49375,11 +49389,11 @@
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 @@
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 @@
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 @@
; 51322
Function51322: ; 51322
- ld a, $1
+ ld a, BANK(sBoxCount)
call GetSRAMBank
ld hl, sBoxCount
call Function513cb
@@ -51399,7 +51413,7 @@
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 @@
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 @@
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 @@
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 @@
ret
; 8b2da
-Function8b2da: ; 8b2da
+Function_PartyCountEq3: ; 8b2da
ld a, [PartyCount]
cp 3
ret z
@@ -61169,7 +61183,7 @@
ret
; 8b331
-Function8b331: ; 8b331
+Function_HasPartyAnEgg: ; 8b331
ld hl, PartyCount
ld a, [hli]
ld c, a
@@ -87382,12 +87396,12 @@
.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 @@
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 @@
and a
ret nz
- ld a, [wcfc0]
+ ld a, [InBattleTowerBattle]
and a
ret nz
@@ -87759,7 +87773,7 @@
jr c, .asm_fcd1c
ld b, 1
.asm_fcd1c
- callba Function4dba3
+ callba SetPkmnCaughtData
ld e, TRADE_NICK
call GetTradeAttribute
@@ -93532,7 +93546,8 @@
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"
--- a/maps/BattleTower1F.asm
+++ b/maps/BattleTower1F.asm
@@ -41,10 +41,10 @@
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 @@
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 @@
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,7 +158,7 @@
loadmovesprites
end
-UnknownScript_0x9e4bb:
+Script_CloseText: ; 0x9e4bb
closetext
loadmovesprites
end
@@ -165,19 +165,19 @@
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_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 @@
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 @@
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,7 +247,7 @@
YoungsterScript_0x9e55d:
faceplayer
loadfont
- writetext UnknownText_0x9f264
+ writetext Text_BattleTowerYoungster
closetext
loadmovesprites
spriteface $3, RIGHT
@@ -254,13 +254,13 @@
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 @@
turn_head_right
step_end
-UnknownText_0x9e5ab:
+Text_BattleTowerWelcomesYou: ; 0x9e5ab
text "BATTLE TOWER"
line "welcomes you!"
@@ -354,17 +354,17 @@
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 @@
para ""
done
-UnknownText_0x9e886:
+Text_BattleTowerIntroduction_2: ; 0x9e886
text "BATTLE TOWER is a"
line "facility made for"
cont "#MON battles."
@@ -460,7 +460,7 @@
para ""
done
-UnknownText_0x9e9eb:
+Text_ReceivedAListOfLeadersOnTheHonorRoll: ; 0x9e9eb
text "Received a list of"
line "LEADERS on the"
cont "HONOR ROLL."
@@ -468,18 +468,18 @@
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 @@
para ""
done
-UnknownText_0x9eaef:
+Text_CongratulationsYouveBeatenAllTheTrainers: ; 0x9eaef
text "Congratulations!"
para "You've beaten all"
@@ -522,7 +522,7 @@
line "CENTER?"
done
-UnknownText_0x9eb7e:
+Text_PlayerGotFive: ; 0x9eb7e
text "<PLAYER> got five"
line "@"
text_from_ram StringBuffer4
@@ -531,7 +531,7 @@
text_waitbutton
db "@"
-UnknownText_0x9eb94:
+Text_YourPackIsStuffedFull: ; 0x9eb94
text "Oops, your PACK is"
line "stuffed full."
@@ -539,7 +539,7 @@
line "and come back."
done
-UnknownText_0x9ebd6:
+Text_YourRegistrationIsComplete: ; 0x9ebd6
text "Your registration"
line "is complete."
@@ -546,17 +546,17 @@
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,12 +582,12 @@
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."
@@ -594,7 +594,7 @@
para "Read the rules?"
done
-UnknownText_0x9ed72:
+Text_BattleTowerRules: ; 0x9ed72
text "Three #MON may"
line "enter battles."
@@ -626,13 +626,13 @@
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 @@
line "the CENTER."
done
-UnknownText_0x9ef1f:
+Text_SaveBeforeEnteringBattleRoom: ; 0x9ef1f
text "Before entering"
line "the BATTLE ROOM,"
@@ -655,7 +655,7 @@
line "be saved."
done
-UnknownText_0x9ef5e:
+Text_SaveAndEndTheSession: ; 0x9ef5e
text "SAVE and end the"
line "session?"
done
@@ -668,7 +668,7 @@
line "the previous ROOM."
done
-UnknownText_0x9efbf:
+Text_CancelYourBattleRoomChallenge: ; 0x9efbf
text "Cancel your BATTLE"
line "ROOM challenge?"
done
@@ -699,7 +699,7 @@
line "tomorrow."
done
-UnknownText_0x9f0c1:
+Text_TooMuchTimeElapsedNoRegister: ; 0x9f0c1
text "Sorry, but it's"
line "not possible to"
@@ -730,7 +730,7 @@
cont "challenge."
done
-UnknownText_0x9f1e5:
+Text_APkmnLevelExceeds: ; 0x9f1e5
text "One or more of"
line "your #MON's"
cont "levels exceeds @"
@@ -738,7 +738,7 @@
text "."
done
-UnknownText_0x9f217:
+Text_MayNotEnterABattleRoomUnderL70: ; 0x9f217
text_from_ram wcd49
text " may not"
line "enter a BATTLE"
@@ -750,7 +750,7 @@
text "."
done
-UnknownText_0x9f264:
+Text_BattleTowerYoungster: ; 0x9f264
text "Destroyed by the"
line "first opponent in"
@@ -758,7 +758,7 @@
line "I'm no good…"
done
-UnknownText_0x9f2a4:
+Text_BattleTowerCooltrainerF: ; 0x9f2a4
text "There are lots of"
line "BATTLE ROOMS, but"
@@ -766,7 +766,7 @@
line "them all!"
done
-UnknownText_0x9f2e3:
+Text_BattleTowerGranny: ; 0x9f2e3
text "It's a grueling"
line "task, not being"
@@ -780,7 +780,7 @@
line "winning battles."
done
-UnknownText_0x9f35b:
+Text_BattleTowerBugCatcher: ; 0x9f35b
text "I'm trying to see"
line "how far I can go"
--- a/maps/BattleTowerBattleRoom.asm
+++ b/maps/BattleTowerBattleRoom.asm
@@ -3,25 +3,25 @@
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,12 +30,12 @@
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
@@ -42,7 +42,7 @@
applymovement $3, MovementData_0x9e59c
applymovement PLAYER, MovementData_0x9e5a7
loadfont
- writetext UnknownText_0x9ee92
+ writetext Text_YourPkmnWillBeHealedToFullHealth
closetext
loadmovesprites
playmusic MUSIC_HEAL
@@ -52,19 +52,19 @@
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 @@
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 @@
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 @@
writebyte $6
special Function170687
loadfont
- writetext UnknownText_0x9ea49
- writetext UnknownText_0x9ec09
+ writetext Text_ThanksForVisiting
+ writetext Text_WeHopeToServeYouAgain
closetext
loadmovesprites
end
--- a/maps/BattleTowerHallway.asm
+++ b/maps/BattleTowerHallway.asm
@@ -12,7 +12,6 @@
UnknownScript_0x9f5bb:
priorityjump UnknownScript_0x9f5c1
dotrigger $1
-
UnknownScript_0x9f5c0:
end
@@ -19,7 +18,7 @@
UnknownScript_0x9f5c1:
follow $2, PLAYER
callasm Function_0x9f5cb
- jump UnknownScript_0x9f5dc
+ jump Script_WalkToChosenBattleRoom
Function_0x9f5cb:
@@ -28,7 +27,7 @@
ld a, 3
ld [rSVBK], a
- ld a, [w3_d800]
+ ld a, [wBTChoiceOfLvlGroup]
ld [ScriptVar], a
pop af
@@ -36,38 +35,41 @@
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
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -9728,22 +9728,22 @@
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 @@
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,8 +9915,9 @@
ld a, $0
ld [wcd46], a
ret
-; 118a54
+
+
Function118a54: ; 118a54
ld a, [wcd55]
ld l, a
@@ -12537,7 +12538,7 @@
String_119d07:
db " ▼@"
-Strings_119d0c:
+Strings_L10ToL100: ; 119d0c
db " L:10 @@"
db " L:20 @@"
db " L:30 @@"
@@ -12550,7 +12551,7 @@
db " L:100@@"
db "CANCEL@@"
-Strings_119d64:
+Strings_Ll0ToL40: ; 119d64
db " L:10 @@"
db " L:20 @@"
db " L:30 @@"
@@ -14274,13 +14275,13 @@
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 @@
sub $19
.asm_11c021
- ld hl, Unknown_11f332
+ ld hl, BTTrainerTexts
jr .asm_11c033
.asm_11c026
@@ -20671,14 +20672,14 @@
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 @@
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 @@
dw UnknownText_0x11f58c
dw UnknownText_0x11f59b
-Unknown_11f39c: ; 11f39c
+BTTrainerPlayerWonTexts: ; 11f39c
dw UnknownText_0x11f438
dw UnknownText_0x11f447
dw UnknownText_0x11f456
@@ -20815,12 +20816,12 @@
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
@@ -20827,8 +20828,8 @@
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 @@
Function17022c: ; 17022c
.asm_17022c
- call Function17023a
+ call Jumpto_BattleTowerBattleFunction
call DelayFrame
ld a, [wcf63]
cp $1
@@ -22811,11 +22812,11 @@
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 @@
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 @@
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 @@
.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 @@
jr .asm_170340
.asm_17033d
- ld hl, $c608
+ ld hl, wBT_OTTempCopy ; 0xc608
.asm_170340
ld de, wd26b
@@ -22939,7 +22942,7 @@
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
@@ -22946,9 +22949,11 @@
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 @@
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 @@
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 @@
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 @@
call Function1705f0
jr Function1705b2
+
Function170571:
call Function32f9
call Function1705b2
+
Function170577:
ld hl, hJoyPressed
ld a, [hl]
@@ -23500,56 +23512,62 @@
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
+ 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
-Function1706d6: ; 1706d6 (5c:46d6)
- ld a, $1
+; 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 @@
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 @@
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,9 +23636,9 @@
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
@@ -23627,8 +23645,8 @@
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 @@
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 @@
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,7 +23781,7 @@
ret
Function170868: ; 170868 (5c:4868)
- ld a, $1
+ ld a, BANK(sbe47)
call GetSRAMBank
ld a, [rSVBK] ; $ff00+$70
push af
@@ -23770,7 +23788,7 @@
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
@@ -23777,13 +23795,13 @@
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 @@
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,9 +24139,9 @@
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
@@ -24130,11 +24148,11 @@
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 @@
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 @@
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 @@
ret
; 170bd3
-Function170bd3: ; 170bd3
- callba Function8b201
+SpecialCheckForBattleTowerRules: ; 170bd3
+ callba CheckForBattleTowerRules
jr c, .asm_170bde
xor a
jr .asm_170be0
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -425,19 +425,29 @@
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 @@
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 @@
ld a, [hli]
ld b, a
push hl
- callba Function4dba3
+ callba SetPkmnCaughtData
pop hl
pop bc
jr .asm_17df5e
@@ -2534,7 +2544,7 @@
; 17e026
Function17e026: ; 17e026
- ld a, $1
+ ld a, BANK(sBoxCount)
call GetSRAMBank
ld a, [sBoxCount]
call CloseSRAM
@@ -2545,11 +2555,11 @@
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 @@
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 @@
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
--- a/text/battle.asm
+++ b/text/battle.asm
@@ -44,7 +44,7 @@
prompt
; 0x807bd
-BattleText_0x807bd: ; 0x807bd
+BattleText_WildFled: ; 0x807bd
text "Wild @"
text_from_ram EnemyMonNick
text ""
@@ -52,7 +52,7 @@
prompt
; 0x807cf
-BattleText_0x807cf: ; 0x807cf
+BattleText_EnemyFled: ; 0x807cf
text "Enemy @"
text_from_ram EnemyMonNick
text ""
@@ -113,7 +113,7 @@
prompt
; 0x80899
-BattleText_0x80899: ; 0x80899
+BattleText_UserRecoveredPPUsing: ; 0x80899
text "<USER>"
line "recovered PP using"
cont "@"
@@ -129,13 +129,13 @@
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 @@
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 @@
line "for winning!"
prompt
-BattleText_0x809da: ; 0x809da
+BattleText_EnemyWasDefeated: ; 0x809da
text "<ENEMY>"
line "was defeated!"
prompt
@@ -234,7 +234,7 @@
prompt
; 0x80a75
-BattleText_0x80a75: ; 0x80a75
+BattleText_PkmnFainted: ; 0x80a75
text_from_ram BattleMonNick
text ""
line "fainted!"
@@ -241,7 +241,7 @@
prompt
; 0x80a83
-BattleText_0x80a83: ; 0x80a83
+BattleText_UseNextMon: ; 0x80a83
text "Use next #MON?"
done
; 0x80a93
@@ -259,7 +259,7 @@
prompt
; 0x80aca
-BattleText_0x80aca: ; 0x80aca
+BattleText_EnemyIsAboutToUseWillPlayerChangePkmn: ; 0x80aca
text "<ENEMY>"
line "is about to use"
cont "@"
@@ -271,7 +271,7 @@
done
; 0x80af8
-BattleText_0x80af8: ; 0x80af8
+BattleText_EnemySentOut: ; 0x80af8
text "<ENEMY>"
line "sent out"
cont "@"
@@ -280,34 +280,32 @@
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 @@
prompt
; 0x80ba0
-BattleText_0x80ba0: ; 0x80ba0
+BattleText_CantEscape: ; 0x80ba0
text "Can't escape!"
prompt
; 0x80bae
@@ -1282,7 +1280,7 @@
prompt
; 0x81863
-BattleText_0x81863: ; 0x81863
+BattleText_LinkErrorBattleCanceled: ; 0x81863
text "Link error…"
para "The battle has"
--- 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 @@
done
; 0x1ec03b
-UnknownText_0x1ec03b: ; 0x1ec03b
+BattleTowerText_0x1ec03b: ; 0x1ec03b
text "Thank you! A most"
line "enjoyable battle!"
done
@@ -20,7 +20,7 @@
done
; 0x1ec080
-UnknownText_0x1ec080: ; 0x1ec080
+BattleTowerText_0x1ec080: ; 0x1ec080
text "Work, work, work…"
line "I'm always busy!"
done
--- a/text/common_2.asm
+++ b/text/common_2.asm
@@ -1295,7 +1295,7 @@
done
; 0x1bcf9c
-UnknownText_0x1bcf9c: ; 0x1bcf9c
+Text_EnemyWithdrew: ; 0x1bcf9c
text "<ENEMY>"
line "withdrew"
cont "@"
@@ -1304,7 +1304,7 @@
prompt
; 0x1bcfaf
-UnknownText_0x1bcfaf: ; 0x1bcfaf
+Text_EnemyUsedOn: ; 0x1bcfaf
text "<ENEMY>"
line "used @"
text_from_ram wd050
@@ -1315,19 +1315,19 @@
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 @@
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 @@
prompt
; 0x1bd0bd
-UnknownText_0x1bd0bd: ; 0x1bd0bd
+Text_BreedingIsNotPossible: ; 0x1bd0bd
text "Breeding is not"
line "possible."
prompt
--- a/text/common_3.asm
+++ b/text/common_3.asm
@@ -129,29 +129,29 @@
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 @@
done
; 1c0feb
-UnknownText_0x1c0feb: ; 1c0feb
+Text_WasSentToBillsPC: ; 1c0feb
text_from_ram StringBuffer1
text " was"
line "sent to BILL's PC."
--- a/text/common_4.asm
+++ b/text/common_4.asm
@@ -1262,7 +1262,7 @@
done
; 0x1c5944
-UnknownText_0x1c5944: ; 0x1c5944
+Text_ExcuseMeYoureNotReady: ; 0x1c5944
text "Excuse me."
line "You're not ready."
para ""
@@ -1289,7 +1289,7 @@
done
; 0x1c59c3
-UnknownText_0x1c59c3: ; 0x1c59c3
+Text_OnlyThreePkmnMayBeEntered: ; 0x1c59c3
text "Only three #MON"
line "may be entered."
para ""
@@ -1296,7 +1296,7 @@
done
; 0x1c59e5
-UnknownText_0x1c59e5: ; 0x1c59e5
+Text_ThePkmnMustAllBeDifferentKinds: ; 0x1c59e5
text "The @"
text_from_ram StringBuffer2
text " #MON"
@@ -1306,7 +1306,7 @@
done
; 0x1c5a13
-UnknownText_0x1c5a13: ; 0x1c5a13
+Text_ThePkmnMustNotHoldTheSameItems: ; 0x1c5a13
text "The @"
text_from_ram StringBuffer2
text " #MON"
@@ -1316,7 +1316,7 @@
done
; 0x1c5a42
-UnknownText_0x1c5a42: ; 0x1c5a42
+Text_YouCantTakeAnEgg: ; 0x1c5a42
text "You can't take an"
line "EGG!"
para ""
--- a/wram.asm
+++ b/wram.asm
@@ -443,6 +443,7 @@
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 @@
wc717:: ds 1
wc718:: ds 1
wc719:: ds 1
+LastPlayerMon:: ; c71a
wc71a:: ds 1
LastPlayerMove:: ; c71b
ds 1
@@ -884,6 +886,23 @@
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 @@
wcf61:: ds 2
wcf63:: ds 1
+wNrOfBeatenBattleTowerTrainers::
wcf64:: ds 1
IF !DEF(CRYSTAL11)
wPokedexStatus::
@@ -1260,8 +1280,14 @@
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
ds 1
@@ -1818,6 +1844,7 @@
wd262:: ds 1
wd263:: ds 1
wd264:: ds 1
+GetPokemonName_Parameter::
wd265:: ds 1
wd266:: ds 1
wd267:: ds 1
@@ -2598,11 +2625,36 @@
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 @@
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]