Merge pull request #146 from PikalaxALT/dism_more_data

Battle Tower data and more
This commit is contained in:
PikalaxALT
2019-11-08 17:28:40 -05:00
committed by GitHub
22 changed files with 3697 additions and 125 deletions
+35 -35
View File
@@ -968,7 +968,7 @@ _080E60A4:
_080E60C0: .4byte gFacilityClassToPicIndex
_080E60C4:
ldr r3, _080E60DC @ =gFacilityClassToPicIndex
ldr r2, _080E60E0 @ =gUnknown_83FFAC4
ldr r2, _080E60E0 @ =gBattleTowerTrainers
ldrb r1, [r1]
lsls r0, r1, 2
adds r0, r1
@@ -982,7 +982,7 @@ _080E60D6:
bx r1
.align 2, 0
_080E60DC: .4byte gFacilityClassToPicIndex
_080E60E0: .4byte gUnknown_83FFAC4
_080E60E0: .4byte gBattleTowerTrainers
thumb_func_end GetBattleTowerTrainerFrontSpriteId
thumb_func_start sub_80E60E4
@@ -1010,7 +1010,7 @@ _080E6110:
cmp r0, 0x63
bhi _080E6130
ldr r3, _080E6128 @ =gFacilityClassToTrainerClass
ldr r2, _080E612C @ =gUnknown_83FFAC4
ldr r2, _080E612C @ =gBattleTowerTrainers
ldrb r1, [r1]
lsls r0, r1, 2
adds r0, r1
@@ -1021,7 +1021,7 @@ _080E6110:
b _080E6144
.align 2, 0
_080E6128: .4byte gFacilityClassToTrainerClass
_080E612C: .4byte gUnknown_83FFAC4
_080E612C: .4byte gBattleTowerTrainers
_080E6130:
ldr r2, _080E614C @ =gFacilityClassToTrainerClass
ldrb r0, [r1]
@@ -1073,7 +1073,7 @@ _080E6184:
bhi _080E61AC
movs r3, 0
adds r5, r0, 0
ldr r6, _080E61A8 @ =gUnknown_83FFAC5
ldr r6, _080E61A8 @ =gBattleTowerTrainers + 1
_080E618E:
adds r2, r4, r3
ldrb r1, [r5]
@@ -1089,7 +1089,7 @@ _080E618E:
ble _080E618E
b _080E61CE
.align 2, 0
_080E61A8: .4byte gUnknown_83FFAC5
_080E61A8: .4byte gBattleTowerTrainers + 1
_080E61AC:
movs r3, 0
adds r5, r0, 0
@@ -1272,7 +1272,7 @@ _080E62F4:
adds r1, r2, 0
cmp r0, 0
beq _080E6320
ldr r2, _080E631C @ =gUnknown_8400E04
ldr r2, _080E631C @ =gBattleTowerLevel100Mons
mov r10, r2
movs r3, 0x64
str r3, [sp, 0x10]
@@ -1280,14 +1280,14 @@ _080E62F4:
.align 2, 0
_080E6314: .4byte gSaveBlock2Ptr
_080E6318: .4byte 0x0000055c
_080E631C: .4byte gUnknown_8400E04
_080E631C: .4byte gBattleTowerLevel100Mons
_080E6320:
ldr r0, _080E6378 @ =gUnknown_83FFB44
ldr r0, _080E6378 @ =gBattleTowerLevel50Mons
mov r10, r0
movs r2, 0x32
str r2, [sp, 0x10]
_080E6328:
ldr r2, _080E637C @ =gUnknown_83FFAC4
ldr r2, _080E637C @ =gBattleTowerTrainers
ldr r0, [r1]
ldr r3, _080E6380 @ =0x0000056c
adds r0, r3
@@ -1328,8 +1328,8 @@ _080E636A:
movs r4, 0
b _080E6388
.align 2, 0
_080E6378: .4byte gUnknown_83FFB44
_080E637C: .4byte gUnknown_83FFAC4
_080E6378: .4byte gBattleTowerLevel50Mons
_080E637C: .4byte gBattleTowerTrainers
_080E6380: .4byte 0x0000056c
_080E6384:
adds r4, 0x64
@@ -1353,7 +1353,7 @@ _080E63A2:
movs r5, 0
cmp r5, r6
bge _080E63F0
ldr r3, _080E64BC @ =gUnknown_83FFAC4
ldr r3, _080E64BC @ =sBattleTowerHeldItems
mov r9, r3
lsls r0, r7, 4
add r0, r10
@@ -1470,7 +1470,7 @@ _080E646E:
add r0, r10
ldrb r2, [r0, 0x2]
lsls r2, 1
ldr r0, _080E64BC @ =gUnknown_83FFAC4
ldr r0, _080E64BC @ =sBattleTowerHeldItems
adds r2, r0
adds r0, r4, 0
movs r1, 0xC
@@ -1491,7 +1491,7 @@ _080E64A6:
bx r0
.align 2, 0
_080E64B8: .4byte gEnemyParty
_080E64BC: .4byte gUnknown_83FFAC4
_080E64BC: .4byte sBattleTowerHeldItems
thumb_func_end sub_80E61DC
thumb_func_start sub_80E64C0
@@ -1603,7 +1603,7 @@ sub_80E6564: @ 80E6564
beq _080E6632
cmp r4, 0
beq _080E6632
ldr r0, _080E6640 @ =gUnknown_84020C4
ldr r0, _080E6640 @ =gBattleTowerBannedSpecies
ldrh r1, [r0]
ldr r5, _080E6644 @ =0x0000ffff
adds r3, r0, 0
@@ -1696,7 +1696,7 @@ _080E6632:
pop {r0}
bx r0
.align 2, 0
_080E6640: .4byte gUnknown_84020C4
_080E6640: .4byte gBattleTowerBannedSpecies
_080E6644: .4byte 0x0000ffff
thumb_func_end sub_80E6564
@@ -1775,7 +1775,7 @@ _080E6662:
movs r0, 0
mov r1, r9
strb r0, [r1]
ldr r2, _080E6734 @ =gUnknown_84020C4
ldr r2, _080E6734 @ =gBattleTowerBannedSpecies
ldrh r0, [r2]
ldr r1, _080E6738 @ =0x0000ffff
cmp r0, r1
@@ -1813,7 +1813,7 @@ _080E6724: .4byte gPlayerParty
_080E6728: .4byte gSpecialVar_Result
_080E672C: .4byte gStringVar1
_080E6730: .4byte gSpecialVar_0x8004
_080E6734: .4byte gUnknown_84020C4
_080E6734: .4byte gBattleTowerBannedSpecies
_080E6738: .4byte 0x0000ffff
_080E673C: .4byte gUnknown_83FE860
_080E6740:
@@ -1943,12 +1943,12 @@ _080E6820:
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
ldr r1, _080E6838 @ =gUnknown_83FFACA
ldr r1, _080E6838 @ =gBattleTowerTrainers + 6
adds r0, r1
bl sub_80E678C
b _080E684C
.align 2, 0
_080E6838: .4byte gUnknown_83FFACA
_080E6838: .4byte gBattleTowerTrainers + 6
_080E683C:
ldrb r1, [r0]
movs r0, 0xA4
@@ -2111,7 +2111,7 @@ _080E6970:
bl CreateTask
movs r0, 0
bl PlayMapChosenOrBattleBGM
bl sub_8080060
bl BattleSetup_GetBattleTowerBattleTransition
lsls r0, 24
lsrs r0, 24
bl BT_StartOnField
@@ -2151,7 +2151,7 @@ _080E69A0:
bl CreateTask
movs r0, 0
bl PlayMapChosenOrBattleBGM
bl sub_8080060
bl BattleSetup_GetBattleTowerBattleTransition
lsls r0, 24
lsrs r0, 24
bl BT_StartOnField
@@ -2772,14 +2772,14 @@ sub_80E6EE0: @ 80E6EE0
ldrb r0, [r2, 0x8]
cmp r0, 0
beq _080E6F0C
ldr r4, _080E6F08 @ =gUnknown_84020C4
ldr r4, _080E6F08 @ =sFemaleTrainerClasses
b _080E6F0E
.align 2, 0
_080E6F00: .4byte gSaveBlock2Ptr
_080E6F04: .4byte 0x0000055c
_080E6F08: .4byte gUnknown_84020C4
_080E6F08: .4byte sFemaleTrainerClasses
_080E6F0C:
ldr r4, _080E6FA0 @ =gUnknown_84020C4
ldr r4, _080E6FA0 @ =sMaleTrainerClasses
_080E6F0E:
ldrb r0, [r2, 0xA]
ldrb r1, [r2, 0xB]
@@ -2850,7 +2850,7 @@ _080E6F68:
pop {r0}
bx r0
.align 2, 0
_080E6FA0: .4byte gUnknown_84020C4
_080E6FA0: .4byte sMaleTrainerClasses
_080E6FA4: .4byte gSaveBlock2Ptr
_080E6FA8: .4byte gSaveBlock1Ptr
_080E6FAC: .4byte 0x00002cac
@@ -3162,7 +3162,7 @@ DetermineBattleTowerPrize: @ 80E71D0
ble _080E7220
bl Random
ldr r4, [r4]
ldr r5, _080E721C @ =gUnknown_84020E6
ldr r5, _080E721C @ =sLongStreakPrizes
lsls r0, 16
lsrs r0, 16
movs r1, 0x9
@@ -3178,11 +3178,11 @@ DetermineBattleTowerPrize: @ 80E71D0
.align 2, 0
_080E7214: .4byte gSaveBlock2Ptr
_080E7218: .4byte 0x0000055c
_080E721C: .4byte gUnknown_84020E6
_080E721C: .4byte sLongStreakPrizes
_080E7220:
bl Random
ldr r4, [r4]
ldr r5, _080E7248 @ =gUnknown_84020DA
ldr r5, _080E7248 @ =sShortStreakPrizes
lsls r0, 16
lsrs r0, 16
movs r1, 0x6
@@ -3200,7 +3200,7 @@ _080E7240:
pop {r0}
bx r0
.align 2, 0
_080E7248: .4byte gUnknown_84020DA
_080E7248: .4byte sShortStreakPrizes
thumb_func_end DetermineBattleTowerPrize
thumb_func_start GiveBattleTowerPrize
@@ -3345,13 +3345,13 @@ sub_80E7348: @ 80E7348
adds r5, r1, 0
cmp r0, 0
beq _080E7370
ldr r4, _080E736C @ =gUnknown_84020C4
ldr r4, _080E736C @ =sFemaleTrainerClasses
b _080E7372
.align 2, 0
_080E7368: .4byte gSaveBlock2Ptr
_080E736C: .4byte gUnknown_84020C4
_080E736C: .4byte sFemaleTrainerClasses
_080E7370:
ldr r4, _080E7410 @ =gUnknown_84020C4
ldr r4, _080E7410 @ =sMaleTrainerClasses
_080E7372:
ldrb r0, [r2, 0xA]
ldrb r1, [r2, 0xB]
@@ -3429,7 +3429,7 @@ _080E73E2:
pop {r0}
bx r0
.align 2, 0
_080E7410: .4byte gUnknown_84020C4
_080E7410: .4byte sMaleTrainerClasses
_080E7414: .4byte gSaveBlock1Ptr
_080E7418: .4byte 0x00002cac
_080E741C: .4byte gPlayerParty
+2 -2
View File
@@ -17510,7 +17510,7 @@ _081275AE:
bl GetMonData
lsls r0, 16
lsrs r4, r0, 16
ldr r3, _081275F0 @ =gUnknown_84020C4
ldr r3, _081275F0 @ =gBattleTowerBannedSpecies
lsls r1, r5, 1
adds r0, r1, r3
ldrh r0, [r0]
@@ -17539,7 +17539,7 @@ _081275E2:
.align 2, 0
_081275E8: .4byte gSaveBlock2Ptr
_081275EC: .4byte 0x0000055c
_081275F0: .4byte gUnknown_84020C4
_081275F0: .4byte gBattleTowerBannedSpecies
_081275F4: .4byte 0x0000ffff
thumb_func_end sub_8127550
BIN
View File
Binary file not shown.
+3111 -19
View File
File diff suppressed because it is too large Load Diff
+6 -1
View File
@@ -37,7 +37,12 @@ gUnknown_83CBE70:: @ 83CBE70
gUnknown_83CBE84:: @ 83CBE84
.incbin "baserom.gba", 0x3CBE84, 0x18
.incbin "baserom.gba", 0x3CBE9C, 0xEC
gUnknown_83CBE9C::
.incbin "baserom.gba", 0x3CBE9C, 0x8
gUnknown_83CBEA4::
.incbin "baserom.gba", 0x3CBEA4, 0xE4
gUnknown_83CBF88:: @ 83CBF88
.incbin "baserom.gba", 0x3CBF88, 0x18
+344 -2
View File
@@ -1,4 +1,346 @@
.include "asm/macros/field_effect_script.inc"
.section script_data, "aw", %progbits
.align 2
gUnknown_81D96AC:: @ 81D96AC
.incbin "baserom.gba", 0x1D96AC, 0x304
.4byte gFldEffScript_ExclamationMarkIcon1
.4byte gFldEffScript_UseCutOnGrass
.4byte gFldEffScript_UseCutOnTree
.4byte gFldEffScript_Shadow
.4byte gFldEffScript_TallGrass
.4byte gFldEffScript_Ripple
.4byte gFldEffScript_FieldMoveShowMon
.4byte gFldEffScript_Ash
.4byte gFldEffScript_SurfBlob
.4byte gFldEffScript_UseSurf
.4byte gFldEffScript_Dust
.4byte gFldEffScript_UseSecretPowerCave
.4byte gFldEffScript_JumpTallGrass
.4byte gFldEffScript_SandFootprints
.4byte gFldEffScript_JumpBigSplash
.4byte gFldEffScript_Splash
.4byte gFldEffScript_JumpSmallSplash
.4byte gFldEffScript_LongGrass
.4byte gFldEffScript_JumpLongGrass
.4byte gFldEffScript_Unknown19
.4byte gFldEffScript_Unknown20
.4byte gFldEffScript_Unknown21
.4byte gFldEffScript_Unknown22
.4byte gFldEffScript_BerryTreeGrowthSparkle
.4byte gFldEffScript_DeepSandFootprints
.4byte gFldEffScript_PokecenterHeal
.4byte gFldEffScript_UseSecretPowerTree
.4byte gFldEffScript_UseSecretPowerShrub
.4byte gFldEffScript_TreeDisguise
.4byte gFldEffScript_MountainDisguise
.4byte gFldEffScript_NpcflyOut
.4byte gFldEffScript_UseFly
.4byte gFldEffScript_FlyIn
.4byte gFldEffScript_ExclamationMarkIcon2
.4byte gFldEffScript_FeetInFlowingWater
.4byte gFldEffScript_BikeTireTracks
.4byte gFldEffScript_SandDisguise
.4byte gFldEffScript_UseRockSmash
.4byte gFldEffScript_UseDig
.4byte gFldEffScript_SandPile
.4byte gFldEffScript_UseStrength
.4byte gFldEffScript_ShortGrass
.4byte gFldEffScript_HotSpringsWater
.4byte gFldEffScript_UseWaterfall
.4byte gFldEffScript_UseDive
.4byte gFldEffScript_Pokeball
.4byte gFldEffScript_HeartIcon
.4byte gFldEffScript_Nop47
.4byte gFldEffScript_Nop48
.4byte gFldEffScript_PopOutOfAsh
.4byte gFldEffScript_LavaridgeGymWarp
.4byte gFldEffScript_SweetScent
.4byte gFldEffScript_SandPillar
.4byte gFldEffScript_Bubbles
.4byte gFldEffScript_Sparkle
.4byte gFldEffScript_SecretPowerCave
.4byte gFldEffScript_SecretPowerTree
.4byte gFldEffScript_SecretPowerShrub
.4byte gFldEffScript_CutGrass
.4byte gFldEffScript_FieldMoveShowMonInit
.4byte gFldEffScript_UseFlyAncientTomb
.4byte gFldEffScript_PcturnOn
.4byte gFldEffScript_HallOfFameRecord
.4byte gFldEffScript_UseTeleport
.4byte gFldEffScript_Unk40
.4byte gFldEffScript_Unk41
.4byte gFldEffScript_Unk42
.4byte gFldEffScript_Unk43
.4byte gFldEffScript_Unk44
.4byte gFldEffScript_Unk45
gFldEffScript_ExclamationMarkIcon1:: @ 81D97C4
callnative FldEff_ExclamationMarkIcon1
end
gFldEffScript_UseCutOnGrass:: @ 81D97CA
callnative sub_80979A0
end
gFldEffScript_UseCutOnTree:: @ 81D97D0
callnative sub_80979F0
end
gFldEffScript_Shadow:: @ 81D97D6
callnative oei_shadow
end
gFldEffScript_TallGrass:: @ 81D97DC
loadfadedpal_callnative gUnknown_83A5348, oei_grass_normal
end
gFldEffScript_Ripple:: @ 81D97E6
loadfadedpal_callnative gUnknown_83A5348, oei_ripples
end
gFldEffScript_FieldMoveShowMon:: @ 81D97F0
callnative FldEff_FieldMoveShowMon
end
gFldEffScript_Ash:: @ 81D97F6
loadfadedpal_callnative gUnknown_83A5348, oei_ash
end
gFldEffScript_SurfBlob:: @ 81D9800
callnative sub_80DC3D0
end
gFldEffScript_UseSurf:: @ 81D9806
callnative sub_8086944
end
gFldEffScript_Dust:: @ 81D980C
loadfadedpal_callnative gUnknown_83A5340, FldEff_Dust
end
gFldEffScript_UseSecretPowerCave:: @ 81D9816
end
gFldEffScript_JumpTallGrass:: @ 81D9817
loadfadedpal_callnative gUnknown_83A5348, FldEff_JumpTallGrass
end
gFldEffScript_SandFootprints:: @ 81D9821
loadfadedpal_callnative gUnknown_83A5340, FldEff_SandFootprints
end
gFldEffScript_JumpBigSplash:: @ 81D982B
loadfadedpal_callnative gUnknown_83A5340, oei_water_drop_tall
end
gFldEffScript_Splash:: @ 81D9835
loadfadedpal_callnative gUnknown_83A5340, FldEff_Splash
end
gFldEffScript_JumpSmallSplash:: @ 81D983F
loadfadedpal_callnative gUnknown_83A5340, FldEff_JumpSmallSplash
end
gFldEffScript_LongGrass:: @ 81D9849
loadfadedpal_callnative gUnknown_83A5348, FldEff_LongGrass
end
gFldEffScript_JumpLongGrass:: @ 81D9853
loadfadedpal_callnative gUnknown_83A5348, FldEff_JumpLongGrass
end
gFldEffScript_Unknown19:: @ 81D985D
loadfadedpal_callnative gUnknown_83A5348, FldEff_Unknown19
end
gFldEffScript_Unknown20:: @ 81D9867
loadfadedpal_callnative gUnknown_83A5348, FldEff_Unknown20
end
gFldEffScript_Unknown21:: @ 81D9871
loadfadedpal_callnative gUnknown_83A5340, FldEff_Unknown21
end
gFldEffScript_Unknown22:: @ 81D987B
loadfadedpal_callnative gUnknown_83A5340, FldEff_Unknown22
end
gFldEffScript_BerryTreeGrowthSparkle:: @ 81D9885
callnative sub_80DC9DC
end
gFldEffScript_DeepSandFootprints:: @ 81D988B
loadfadedpal_callnative gUnknown_83A5340, FldEff_DeepSandFootprints
end
gFldEffScript_PokecenterHeal:: @ 81D9895
loadfadedpal gUnknown_83CBE9C
loadfadedpal_callnative gUnknown_83A5340, sub_8083B8C
end
gFldEffScript_UseSecretPowerTree:: @ 81D98A4
end
gFldEffScript_UseSecretPowerShrub:: @ 81D98A5
end
gFldEffScript_TreeDisguise:: @ 81D98A6
callnative ShowTreeDisguiseFieldEffect
end
gFldEffScript_MountainDisguise:: @ 81D98AC
callnative ShowMountainDisguiseFieldEffect
end
gFldEffScript_NpcflyOut:: @ 81D98B2
callnative sub_8086D38
end
gFldEffScript_UseFly:: @ 81D98B8
callnative FldEff_UseFly
end
gFldEffScript_FlyIn:: @ 81D98BE
callnative FldEff_FlyIn
end
gFldEffScript_ExclamationMarkIcon2:: @ 81D98C4
callnative sub_8082624
end
gFldEffScript_FeetInFlowingWater:: @ 81D98CA
loadfadedpal_callnative gUnknown_83A5340, FldEff_FeetInFlowingWater
end
gFldEffScript_BikeTireTracks:: @ 81D98D4
loadfadedpal_callnative gUnknown_83A5340, FldEff_BikeTireTracks
end
gFldEffScript_SandDisguise:: @ 81D98DE
callnative ShowSandDisguiseFieldEffect
end
gFldEffScript_UseRockSmash:: @ 81D98E4
callnative FldEff_UseRockSmash
end
gFldEffScript_UseStrength:: @ 81D98EA
callnative sub_80D0860
end
gFldEffScript_UseDig:: @ 81D98F0
callnative FldEff_UseDig
end
gFldEffScript_SandPile:: @ 81D98F6
loadfadedpal_callnative gUnknown_83A5340, FldEff_SandPile
end
gFldEffScript_ShortGrass:: @ 81D9900
loadfadedpal_callnative gUnknown_83A5348, sub_80DB808
end
gFldEffScript_HotSpringsWater:: @ 81D990A
loadfadedpal_callnative gUnknown_83A5348, sub_80DBF50
end
gFldEffScript_UseWaterfall:: @ 81D9914
callnative oei_waterfall
end
gFldEffScript_UseDive:: @ 81D991A
callnative FldEff_UseDive
end
gFldEffScript_Pokeball:: @ 81D9920
loadpal sSpritePalette_SlidingPokeball
callnative FldEff_Pokeball
end
gFldEffScript_HeartIcon:: @ 81D992B
callnative sub_80825B4
end
gFldEffScript_Nop47:: @ 81D9931
end
gFldEffScript_Nop48:: @ 81D9932
end
gFldEffScript_PopOutOfAsh:: @ 81D9933
loadfadedpal_callnative gUnknown_83A5ED8, FldEff_PopOutOfAsh
end
gFldEffScript_LavaridgeGymWarp:: @ 81D993D
loadfadedpal_callnative gUnknown_83A5ED8, FldEff_LavaridgeGymWarp
end
gFldEffScript_SweetScent:: @ 81D9947
callnative FldEff_SweetScent
end
gFldEffScript_SandPillar:: @ 81D994D
end
gFldEffScript_Bubbles:: @ 81D994E
loadfadedpal_callnative gUnknown_83A5340, FldEff_Bubbles
end
gFldEffScript_Sparkle:: @ 81D9958
loadfadedpal_callnative gUnknown_83A5FF8, FldEff_Sparkle
end
gFldEffScript_SecretPowerCave:: @ 81D9962
end
gFldEffScript_SecretPowerTree:: @ 81D9963
end
gFldEffScript_SecretPowerShrub:: @ 81D9964
end
gFldEffScript_CutGrass:: @ 81D9965
loadfadedpal_callnative gUnknown_83D4144, sub_8097A48
end
gFldEffScript_FieldMoveShowMonInit:: @ 81D996F
callnative FldEff_FieldMoveShowMonInit
end
gFldEffScript_UseFlyAncientTomb:: @ 81D9975
end
gFldEffScript_PcturnOn:: @ 81D9976
end
gFldEffScript_HallOfFameRecord:: @ 81D9977
loadfadedpal gUnknown_83CBE9C
loadfadedpal_callnative gUnknown_83CBEA4, sub_8083CE0
end
gFldEffScript_UseTeleport:: @ 81D9986
callnative FldEff_UseTeleport
end
gFldEffScript_Unk40:: @ 81D998C
callnative sub_80825EC
end
gFldEffScript_Unk41:: @ 81D9992
callnative sub_8086BA8
end
gFldEffScript_Unk42:: @ 81D9998
callnative sub_808257C
end
gFldEffScript_Unk43:: @ 81D999E
callnative sub_8087924
end
gFldEffScript_Unk44:: @ 81D99A4
callnative sub_8087AB4
end
gFldEffScript_Unk45:: @ 81D99AA
callnative sub_8087E28
end
+11 -2
View File
@@ -5349,10 +5349,19 @@ gUnknown_83A5278:: @ 83A5278
.incbin "baserom.gba", 0x3A5278, 0xB8
gUnknown_83A5330:: @ 83A5330
.incbin "baserom.gba", 0x3A5330, 0x18
.incbin "baserom.gba", 0x3A5330, 0x10
gUnknown_83A5340::
.incbin "baserom.gba", 0x3A5340, 0x8
gUnknown_83A5348:: @ 83A5348
.incbin "baserom.gba", 0x3A5348, 0xCB8
.incbin "baserom.gba", 0x3A5348, 0xB90
gUnknown_83A5ED8::
.incbin "baserom.gba", 0x3A5ED8, 0x120
gUnknown_83A5FF8::
.incbin "baserom.gba", 0x3A5FF8, 0x8
gUnknown_83A6000:: @ 83A6000
.incbin "baserom.gba", 0x3A6000, 0x10
+4 -1
View File
@@ -7,7 +7,10 @@
.align 2
gUnknown_83D4100:: @ 83D4100
.incbin "baserom.gba", 0x3D4100, 0x4C
.incbin "baserom.gba", 0x3D4100, 0x44
gUnknown_83D4144::
.incbin "baserom.gba", 0x3D4144, 0x8
gUnknown_83D414C:: @ 83D414C
.incbin "baserom.gba", 0x3D414C, 0x18
+6
View File
@@ -246,4 +246,10 @@ extern const u8 gText_Ice[];
extern const u8 gText_Confusion[];
extern const u8 gText_Love[];
extern const u8 gUnknown_83FE859[];
extern const u8 gUnknown_83FE85E[];
extern const u8 gUnknown_83FE85C[];
extern const u8 gUnknown_83FE860[];
extern const u8 gUnknown_83FE864[];
#endif // GUARD_BATTLE_MESSAGE_H
+1 -1
View File
@@ -13,7 +13,7 @@ void Special_StartLegendaryBattle(void);
void Special_StartGroudonKyogreBattle(void);
void Special_StartRegiBattle(void);
u8 BattleSetup_GetTerrainId(void);
u8 sub_8080060(void);
u8 BattleSetup_GetBattleTowerBattleTransition(void);
const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerScript);
bool32 GetTrainerFlagFromScriptPointer(const u8 *data);
+22
View File
@@ -2,6 +2,28 @@
#define GUARD_BATTLE_TOWER_H
#include "global.h"
#include "constants/battle_tower.h"
#define BATTLE_TOWER_EREADER_TRAINER_ID 200
#define BATTLE_TOWER_RECORD_MIXING_TRAINER_BASE_ID 100
struct BattleTowerTrainer
{
u8 trainerClass;
u8 name[3];
u8 teamFlags;
u16 speech[6];
};
struct BattleTowerPokemonTemplate
{
u16 species;
u8 heldItem;
u8 teamFlags;
u16 moves[4];
u8 evSpread;
u8 nature;
};
u16 sub_8164FCC(u8, u8);
void sub_80E7524(struct BattleTowerEReaderTrainer *);
+75
View File
@@ -0,0 +1,75 @@
#ifndef GUARD_CONSTANTS_BATTLE_TOWER_H
#define GUARD_CONSTANTS_BATTLE_TOWER_H
#define F_EV_SPREAD_HP 1 << 0
#define F_EV_SPREAD_ATTACK 1 << 1
#define F_EV_SPREAD_DEFENSE 1 << 2
#define F_EV_SPREAD_SPEED 1 << 3
#define F_EV_SPREAD_SP_ATTACK 1 << 4
#define F_EV_SPREAD_SP_DEFENSE 1 << 5
#define BATTLE_TOWER_ITEM_NONE 0
#define BATTLE_TOWER_ITEM_KINGS_ROCK 1
#define BATTLE_TOWER_ITEM_SITRUS_BERRY 2
#define BATTLE_TOWER_ITEM_ORAN_BERRY 3
#define BATTLE_TOWER_ITEM_CHESTO_BERRY 4
#define BATTLE_TOWER_ITEM_HARD_STONE 5
#define BATTLE_TOWER_ITEM_FOCUS_BAND 6
#define BATTLE_TOWER_ITEM_PERSIM_BERRY 7
#define BATTLE_TOWER_ITEM_MIRACLE_SEED 8
#define BATTLE_TOWER_ITEM_BERRY_JUICE 9
#define BATTLE_TOWER_ITEM_MACHO_BRACE 10
#define BATTLE_TOWER_ITEM_SILVER_POWDER 11
#define BATTLE_TOWER_ITEM_CHERI_BERRY 12
#define BATTLE_TOWER_ITEM_BLACK_GLASSES 13
#define BATTLE_TOWER_ITEM_BLACK_BELT 14
#define BATTLE_TOWER_ITEM_SOUL_DEW 15
#define BATTLE_TOWER_ITEM_CHOICE_BAND 16
#define BATTLE_TOWER_ITEM_MAGNET 17
#define BATTLE_TOWER_ITEM_SILK_SCARF 18
#define BATTLE_TOWER_ITEM_WHITE_HERB 19
#define BATTLE_TOWER_ITEM_DEEP_SEA_SCALE 20
#define BATTLE_TOWER_ITEM_DEEP_SEA_TOOTH 21
#define BATTLE_TOWER_ITEM_MYSTIC_WATER 22
#define BATTLE_TOWER_ITEM_SHARP_BEAK 23
#define BATTLE_TOWER_ITEM_QUICK_CLAW 24
#define BATTLE_TOWER_ITEM_LEFTOVERS 25
#define BATTLE_TOWER_ITEM_RAWST_BERRY 26
#define BATTLE_TOWER_ITEM_LIGHT_BALL 27
#define BATTLE_TOWER_ITEM_POISON_BARB 28
#define BATTLE_TOWER_ITEM_NEVER_MELT_ICE 29
#define BATTLE_TOWER_ITEM_ASPEAR_BERRY 30
#define BATTLE_TOWER_ITEM_SPELL_TAG 31
#define BATTLE_TOWER_ITEM_BRIGHT_POWDER 32
#define BATTLE_TOWER_ITEM_LEPPA_BERRY 33
#define BATTLE_TOWER_ITEM_SCOPE_LENS 34
#define BATTLE_TOWER_ITEM_TWISTED_SPOON 35
#define BATTLE_TOWER_ITEM_METAL_COAT 36
#define BATTLE_TOWER_ITEM_MENTAL_HERB 37
#define BATTLE_TOWER_ITEM_CHARCOAL 38
#define BATTLE_TOWER_ITEM_PECHA_BERRY 39
#define BATTLE_TOWER_ITEM_SOFT_SAND 40
#define BATTLE_TOWER_ITEM_LUM_BERRY 41
#define BATTLE_TOWER_ITEM_DRAGON_SCALE 42
#define BATTLE_TOWER_ITEM_DRAGON_FANG 43
#define BATTLE_TOWER_ITEM_IAPAPA_BERRY 44
#define BATTLE_TOWER_ITEM_WIKI_BERRY 45
#define BATTLE_TOWER_ITEM_SEA_INCENSE 46
#define BATTLE_TOWER_ITEM_SHELL_BELL 47
#define BATTLE_TOWER_ITEM_SALAC_BERRY 48
#define BATTLE_TOWER_ITEM_LANSAT_BERRY 49
#define BATTLE_TOWER_ITEM_APICOT_BERRY 50
#define BATTLE_TOWER_ITEM_STARF_BERRY 51
#define BATTLE_TOWER_ITEM_LIECHI_BERRY 52
#define BATTLE_TOWER_ITEM_STICK 53
#define BATTLE_TOWER_ITEM_LAX_INCENSE 54
#define BATTLE_TOWER_ITEM_AGUAV_BERRY 55
#define BATTLE_TOWER_ITEM_FIGY_BERRY 56
#define BATTLE_TOWER_ITEM_THICK_CLUB 57
#define BATTLE_TOWER_ITEM_MAGO_BERRY 58
#define BATTLE_TOWER_ITEM_METAL_POWDER 59
#define BATTLE_TOWER_ITEM_PETAYA_BERRY 60
#define BATTLE_TOWER_ITEM_LUCKY_PUNCH 61
#define BATTLE_TOWER_ITEM_GANLON_BERRY 62
#endif //GUARD_CONSTANTS_BATTLE_TOWER_H
+2
View File
@@ -67,7 +67,9 @@
#define FLDEFF_USE_TELEPORT 63
#define FLDEFF_UNK_40 64
#define FLDEFF_UNK_41 65 // TODO: related to vs_seeker
#define FLDEFF_UNK_42 66 // TODO: related to trainer see
#define FLDEFF_UNK_43 67 // TODO: related to deoxys
#define FLDEFF_UNK_44 68 // TODO: related to trainer see
#define FLDEFF_UNK_45 69 // TODO: related to fame checker photos
#endif // GUARD_CONSTANTS_FIELD_EFFECTS_H
+39 -23
View File
@@ -226,10 +226,22 @@ struct UnknownSaveBlock2Struct
u8 field_EB;
}; // sizeof = 0xEC
struct BattleTowerRecord // record mixing
{
/*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100
/*0x01*/ u8 trainerClass;
/*0x02*/ u16 winStreak;
/*0x04*/ u8 name[8];
/*0x0C*/ u8 trainerId[4];
/*0x10*/ u16 greeting[6];
/*0x1C*/ struct BattleTowerPokemon party[3];
/*0xA0*/ u32 checksum;
};
struct BattleTowerEReaderTrainer
{
/*0x4A0 0x3F0 0x00*/ u8 unk0;
/*0x4A1 0x3F1 0x01*/ u8 facilityClass;
/*0x4A1 0x3F1 0x01*/ u8 trainerClass;
/*0x4A2 0x3F2 0x02*/ u16 winStreak;
/*0x4A4 0x3F4 0x04*/ u8 name[8];
/*0x4AC 0x3FC 0x0C*/ u8 trainerId[4];
@@ -240,28 +252,32 @@ struct BattleTowerEReaderTrainer
/*0x558 0x4A8 0xB8*/ u32 checksum;
};
struct UnkSaveBlock2Substruct_55C
struct BattleTowerData // Leftover from R/S
{
/* 0x000:0x55C */ u8 unk_00_0:1;
u8 unk_00_1:1;
/* 0x001:0x55D */ u8 unk_01;
/* 0x002:0x55E */ u8 unk_02[2];
/* 0x004:0x560 */ u16 unk_04[2];
/* 0x008:0x564 */ u16 unk_08[2];
/* 0x00C:0x568 */ u16 unk_0C[2];
/* 0x010:0x56C */ u8 unk_10;
/* 0x011:0x56D */ u8 unk_11[3];
/* 0x014:0x570 */ u16 unk_14;
/* 0x016:0x572 */ u8 unk_16;
}; // size: 0x018
struct UnkSaveBlock2Substruct_B0
{
/* 0x000:0x0B0 */ u8 field_0[0x3F0];
/* 0x3F0:0x4A0 */ struct BattleTowerEReaderTrainer field_3F0;
/* 0x4AC:0x55C */ struct UnkSaveBlock2Substruct_55C field_4AC;
/* 0x4C4:0x574 */ u8 field_4C4[0x324];
}; // size: 0x7E8
/*0x0000, 0x00B0*/ struct BattleTowerRecord playerRecord;
/*0x00A4, 0x0154*/ struct BattleTowerRecord records[5]; // from record mixing
/*0x03D8, 0x0488*/ u16 firstMonSpecies; // species of the first pokemon in the player's battle tower party
/*0x03DA, 0x048A*/ u16 defeatedBySpecies; // species of the pokemon that defated the player
/*0x03DC, 0x048C*/ u8 defeatedByTrainerName[8];
/*0x03E4, 0x0494*/ u8 firstMonNickname[POKEMON_NAME_LENGTH]; // nickname of the first pokemon in the player's battle tower party
/*0x03F0, 0x04A0*/ struct BattleTowerEReaderTrainer ereaderTrainer;
/*0x04AC, 0x055C*/ u8 battleTowerLevelType:1; // 0 = level 50; 1 = level 100
/*0x04AC, 0x055C*/ u8 unk_554:1;
/*0x04AD, 0x055D*/ u8 battleOutcome;
/*0x04AE, 0x055E*/ u8 var_4AE[2];
/*0x04B0, 0x0560*/ u16 curChallengeBattleNum[2]; // 1-based index of battle in the current challenge. (challenges consist of 7 battles)
/*0x04B4, 0x0564*/ u16 curStreakChallengesNum[2]; // 1-based index of the current challenge in the current streak.
/*0x04B8, 0x0568*/ u16 recordWinStreaks[2];
/*0x04BC, 0x056C*/ u8 battleTowerTrainerId; // index for gBattleTowerTrainers table
/*0x04BD, 0x056D*/ u8 selectedPartyMons[0x3]; // indices of the 3 selected player party mons.
/*0x04C0, 0x0570*/ u16 prizeItem;
/*0x04C2, 0x0572*/ u8 battledTrainerIds[6];
/*0x04C8, 0x0578*/ u16 totalBattleTowerWins;
/*0x04CA, 0x057A*/ u16 bestBattleTowerWinStreak;
/*0x04CC, 0x057C*/ u16 currentWinStreaks[2];
/*0x04D0, 0x0580*/ u8 lastStreakLevelType; // 0 = level 50, 1 = level 100. level type of the last streak. Used by tv to report the level mode.
/*0x04D1, 0x0581*/ u8 filler_4D1[0x317];
};
struct SaveBlock2
{
@@ -287,7 +303,7 @@ struct SaveBlock2
/*0x0A8*/ u32 field_A8;
/*0x0AC*/ u8 field_AC;
/*0x0AD*/ u8 field_AD;
/*0x0B0*/ struct UnkSaveBlock2Substruct_B0 unk_B0;
/*0x0B0*/ struct BattleTowerData battleTower;
/*0x898*/ u16 mapView[0x100];
/*0xA98*/ struct LinkBattleRecords linkBattleRecords;
/*0xAF0*/ struct BerryCrush berryCrush;
+1 -1
View File
@@ -645,7 +645,7 @@ static u8 GetTrainerBattleTransition(void)
return sBattleTransitionTable_Trainer[transitionType][1];
}
u8 sub_8080060(void)
u8 BattleSetup_GetBattleTowerBattleTransition(void)
{
u8 enemyLevel = GetMonData(&gEnemyParty[0], MON_DATA_LEVEL);
u8 playerLevel = GetSumOfPlayerPartyLevel(1);
+1 -1
View File
@@ -543,7 +543,7 @@ static const struct SpriteTemplate sSpriteTemplateTable_Unused[] =
// this palette is shared by big pokeball and sliding pokeball
static const u16 sSlidingPokeballBigPokeballPalette[] = INCBIN_U16("graphics/battle_transitions/sliding_pokeball.gbapal");
static const struct SpritePalette sSpritePalette_SlidingPokeball =
const struct SpritePalette sSpritePalette_SlidingPokeball =
{
.data = sSlidingPokeballBigPokeballPalette,
.tag = 0x1009,
+1 -1
View File
@@ -588,7 +588,7 @@ void DestroyWonderCard(void)
ClearRamScript();
sub_806E2D0();
sub_806E370();
sub_80E7524(&gSaveBlock2Ptr->unk_B0.field_3F0);
sub_80E7524(&gSaveBlock2Ptr->battleTower.ereaderTrainer);
}
bool32 sub_8143F68(const struct MEWonderCardData * data)
+1 -1
View File
@@ -217,7 +217,7 @@ static u32 client_mainseq_4(struct mevent_client * svr)
MEventSetRamScript(svr->recvBuffer, 1000);
break;
case 18:
memcpy(&gSaveBlock2Ptr->unk_B0.field_3F0, svr->recvBuffer, sizeof(struct BattleTowerEReaderTrainer));
memcpy(&gSaveBlock2Ptr->battleTower.ereaderTrainer, svr->recvBuffer, sizeof(struct BattleTowerEReaderTrainer));
ValidateEReaderTrainer();
break;
case 21:
+1 -1
View File
@@ -281,7 +281,7 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx)
bool8 MEScrCmd_addtrainer(struct ScriptContext *ctx)
{
u32 data = ScriptReadWord(ctx) - ctx->data[1] + ctx->data[0];
memcpy(&gSaveBlock2Ptr->unk_B0.field_3F0, (void *)data, sizeof(struct BattleTowerEReaderTrainer));
memcpy(&gSaveBlock2Ptr->battleTower.ereaderTrainer, (void *)data, sizeof(struct BattleTowerEReaderTrainer));
ValidateEReaderTrainer();
StringExpandPlaceholders(gStringVar4, gText_MysteryGiftNewTrainer);
ctx->data[2] = 2;
+1 -1
View File
@@ -78,7 +78,7 @@ static void ClearPokedexFlags(void)
static void sub_80549D4(void)
{
CpuFill32(0, &gSaveBlock2Ptr->unk_B0, sizeof(gSaveBlock2Ptr->unk_B0));
CpuFill32(0, &gSaveBlock2Ptr->battleTower, sizeof(gSaveBlock2Ptr->battleTower));
}
static void WarpToPlayersRoom(void)
+32 -32
View File
@@ -9,20 +9,20 @@
#include "field_effect_helpers.h"
#include "quest_log.h"
void sub_81504A8(void);
void sub_81504E8(void);
void sub_8150530(void);
void sub_81505C4(u8 taskId);
void sub_8150708(void);
void sub_815077C(void);
void sub_8150794(u8 taskId);
void sub_81507CC(void);
void sub_81507D8(void);
void sub_81507E4(void);
void sub_81507F0(void);
void sub_81507BC(struct MapObject *a0, u8 a1);
static void sub_81504A8(void);
static void sub_81504E8(void);
static void sub_8150530(void);
static void sub_81505C4(u8 taskId);
static void sub_8150708(void);
static void sub_815077C(void);
static void sub_8150794(u8 taskId);
static void sub_81507CC(void);
static void sub_81507D8(void);
static void sub_81507E4(void);
static void sub_81507F0(void);
static void sub_81507BC(struct MapObject *a0, u8 a1);
void (*const gUnknown_8471EDC[])(void) = {
static void (*const gUnknown_8471EDC[])(void) = {
sub_81504A8,
sub_81504E8,
sub_8150530,
@@ -55,24 +55,24 @@ void sub_8150498(u8 a0)
return sub_8150454(a0);
}
void sub_81504A8(void)
static void sub_81504A8(void)
{
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
sub_81507BC(mapObject, sub_805C808(0));
FieldObjectTurn(mapObject, mapObject->placeholder18);
SetPlayerAvatarStateMask(0x01);
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT);
}
void sub_81504E8(void)
static void sub_81504E8(void)
{
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
sub_81507BC(mapObject, sub_805C808(1));
FieldObjectTurn(mapObject, mapObject->placeholder18);
SetPlayerAvatarStateMask(0x02);
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_MACH_BIKE);
sub_80BD620(0, 0);
}
void sub_8150530(void)
static void sub_8150530(void)
{
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
struct Sprite *sprite = &gSprites[mapObject->spriteId];
@@ -92,7 +92,7 @@ void sub_8150530(void)
}
}
void sub_81505C4(u8 taskId)
static void sub_81505C4(u8 taskId)
{
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
struct Sprite *sprite = &gSprites[mapObject->spriteId];
@@ -122,7 +122,7 @@ void sub_81505C4(u8 taskId)
sub_805D9C4(sprite);
if (sprite->animEnded)
{
if (!(gPlayerAvatar.flags & 8))
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING))
sub_81507BC(mapObject, sub_805C808(0));
else
sub_81507BC(mapObject, sub_805C808(2));
@@ -136,32 +136,32 @@ void sub_81505C4(u8 taskId)
}
}
void sub_8150708(void)
static void sub_8150708(void)
{
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
u8 fieldEffectId;
if (!(gPlayerAvatar.flags & 0x08))
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING))
{
sub_81507BC(mapObject, sub_805C808(2));
FieldObjectTurn(mapObject, mapObject->placeholder18);
SetPlayerAvatarStateMask(0x08);
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING);
gFieldEffectArguments[0] = mapObject->coords2.x;
gFieldEffectArguments[1] = mapObject->coords2.y;
gFieldEffectArguments[2] = gPlayerAvatar.mapObjectId;
fieldEffectId = FieldEffectStart(0x08);
fieldEffectId = FieldEffectStart(FLDEFF_SURF_BLOB);
mapObject->mapobj_unk_1A = fieldEffectId;
sub_80DC44C(fieldEffectId, 1);
}
}
void sub_815077C(void)
static void sub_815077C(void)
{
FieldEffectStart(0x41);
FieldEffectStart(FLDEFF_UNK_41);
CreateTask(sub_8150794, 0x00);
}
void sub_8150794(u8 taskId)
static void sub_8150794(u8 taskId)
{
if (!FieldEffectActiveListContains(0x41))
{
@@ -171,27 +171,27 @@ void sub_8150794(u8 taskId)
}
}
void sub_81507BC(struct MapObject * a0, u8 a1)
static void sub_81507BC(struct MapObject * a0, u8 a1)
{
EventObjectSetGraphicsId(a0, a1);
}
void sub_81507CC(void)
static void sub_81507CC(void)
{
sub_805D154(1);
}
void sub_81507D8(void)
static void sub_81507D8(void)
{
sub_805D154(2);
}
void sub_81507E4(void)
static void sub_81507E4(void)
{
sub_805D154(3);
}
void sub_81507F0(void)
static void sub_81507F0(void)
{
sub_805D154(4);
}
+1 -1
View File
@@ -954,7 +954,7 @@ static void sub_815E160(void)
BuildEnemyParty();
CreateTask(sub_815E124, 1);
PlayMapChosenOrBattleBGM(0);
BT_StartOnField(sub_8080060());
BT_StartOnField(BattleSetup_GetBattleTowerBattleTransition());
}
static void sub_815E1C0(void)