battle_main data decomp
This commit is contained in:
+2
-2
@@ -179,7 +179,7 @@ sub_800F324: @ 800F324
|
||||
push {lr}
|
||||
movs r0, 0
|
||||
bl ResetBgsAndClearDma3BusyFlags
|
||||
ldr r1, _0800F344 @ =gUnknown_8248320
|
||||
ldr r1, _0800F344 @ =gBattleBgTemplates
|
||||
movs r0, 0
|
||||
movs r2, 0x4
|
||||
bl InitBgsFromTemplates
|
||||
@@ -189,7 +189,7 @@ sub_800F324: @ 800F324
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0800F344: .4byte gUnknown_8248320
|
||||
_0800F344: .4byte gBattleBgTemplates
|
||||
_0800F348: .4byte gUnknown_8248330
|
||||
thumb_func_end sub_800F324
|
||||
|
||||
|
||||
+300
-300
File diff suppressed because it is too large
Load Diff
+4
-4
@@ -281,9 +281,9 @@ _08072706:
|
||||
strh r1, [r0]
|
||||
ldr r0, _08072734 @ =gBattle_WIN0V
|
||||
strh r1, [r0]
|
||||
ldr r0, _08072738 @ =gUnknown_2022988
|
||||
ldr r0, _08072738 @ =gBattle_WIN1H
|
||||
strh r1, [r0]
|
||||
ldr r0, _0807273C @ =gUnknown_202298A
|
||||
ldr r0, _0807273C @ =gBattle_WIN1V
|
||||
strh r1, [r0]
|
||||
add sp, 0x4
|
||||
pop {r3-r5}
|
||||
@@ -298,8 +298,8 @@ _08072728: .4byte 0x0000ffff
|
||||
_0807272C: .4byte gMPlayInfo_BGM
|
||||
_08072730: .4byte gBattle_WIN0H
|
||||
_08072734: .4byte gBattle_WIN0V
|
||||
_08072738: .4byte gUnknown_2022988
|
||||
_0807273C: .4byte gUnknown_202298A
|
||||
_08072738: .4byte gBattle_WIN1H
|
||||
_0807273C: .4byte gBattle_WIN1V
|
||||
thumb_func_end LaunchBattleAnimation
|
||||
|
||||
thumb_func_start DestroyAnimSprite
|
||||
|
||||
+12
-12
@@ -1481,11 +1481,11 @@ sub_80DEDD8: @ 80DEDD8
|
||||
ldr r1, _080DEE14 @ =0x00001f3f
|
||||
movs r0, 0x48
|
||||
bl SetGpuReg
|
||||
ldr r1, _080DEE18 @ =gUnknown_2022988
|
||||
ldr r1, _080DEE18 @ =gBattle_WIN1H
|
||||
ldr r2, _080DEE1C @ =0x000098f0
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
ldr r1, _080DEE20 @ =gUnknown_202298A
|
||||
ldr r1, _080DEE20 @ =gBattle_WIN1V
|
||||
movs r0, 0xA0
|
||||
strh r0, [r1]
|
||||
ldr r0, _080DEE24 @ =gBattle_WIN0H
|
||||
@@ -1499,19 +1499,19 @@ sub_80DEDD8: @ 80DEDD8
|
||||
b _080DEE5C
|
||||
.align 2, 0
|
||||
_080DEE14: .4byte 0x00001f3f
|
||||
_080DEE18: .4byte gUnknown_2022988
|
||||
_080DEE18: .4byte gBattle_WIN1H
|
||||
_080DEE1C: .4byte 0x000098f0
|
||||
_080DEE20: .4byte gUnknown_202298A
|
||||
_080DEE20: .4byte gBattle_WIN1V
|
||||
_080DEE24: .4byte gBattle_WIN0H
|
||||
_080DEE28: .4byte gBattle_WIN0V
|
||||
_080DEE2C:
|
||||
ldr r1, _080DEE68 @ =0x00001f3f
|
||||
movs r0, 0x48
|
||||
bl SetGpuReg
|
||||
ldr r1, _080DEE6C @ =gUnknown_2022988
|
||||
ldr r1, _080DEE6C @ =gBattle_WIN1H
|
||||
movs r0, 0xF0
|
||||
strh r0, [r1]
|
||||
ldr r4, _080DEE70 @ =gUnknown_202298A
|
||||
ldr r4, _080DEE70 @ =gBattle_WIN1V
|
||||
ldr r1, _080DEE74 @ =0x000078a0
|
||||
adds r0, r1, 0
|
||||
strh r0, [r4]
|
||||
@@ -1533,8 +1533,8 @@ _080DEE5C:
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080DEE68: .4byte 0x00001f3f
|
||||
_080DEE6C: .4byte gUnknown_2022988
|
||||
_080DEE70: .4byte gUnknown_202298A
|
||||
_080DEE6C: .4byte gBattle_WIN1H
|
||||
_080DEE70: .4byte gBattle_WIN1V
|
||||
_080DEE74: .4byte 0x000078a0
|
||||
thumb_func_end sub_80DEDD8
|
||||
|
||||
@@ -1546,10 +1546,10 @@ sub_80DEE78: @ 80DEE78
|
||||
ldr r1, _080DEEB0 @ =0x00003f3f
|
||||
movs r0, 0x48
|
||||
bl SetGpuReg
|
||||
ldr r0, _080DEEB4 @ =gUnknown_2022988
|
||||
ldr r0, _080DEEB4 @ =gBattle_WIN1H
|
||||
movs r1, 0
|
||||
strh r1, [r0]
|
||||
ldr r0, _080DEEB8 @ =gUnknown_202298A
|
||||
ldr r0, _080DEEB8 @ =gBattle_WIN1V
|
||||
strh r1, [r0]
|
||||
bl IsContest
|
||||
lsls r0, 24
|
||||
@@ -1567,8 +1567,8 @@ _080DEEA4:
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080DEEB0: .4byte 0x00003f3f
|
||||
_080DEEB4: .4byte gUnknown_2022988
|
||||
_080DEEB8: .4byte gUnknown_202298A
|
||||
_080DEEB4: .4byte gBattle_WIN1H
|
||||
_080DEEB8: .4byte gBattle_WIN1V
|
||||
thumb_func_end sub_80DEE78
|
||||
|
||||
thumb_func_start sub_80DEEBC
|
||||
|
||||
@@ -744,7 +744,7 @@ _080D7834:
|
||||
ldr r5, [sp]
|
||||
ldr r4, [sp, 0x4]
|
||||
movs r3, 0
|
||||
ldr r2, _080D7850 @ =gUnknown_82500CC
|
||||
ldr r2, _080D7850 @ =gStatusConditionStringsTable
|
||||
_080D783C:
|
||||
ldr r1, [r2]
|
||||
ldr r0, [r1]
|
||||
@@ -756,7 +756,7 @@ _080D783C:
|
||||
ldr r0, [r2, 0x4]
|
||||
b _080D785E
|
||||
.align 2, 0
|
||||
_080D7850: .4byte gUnknown_82500CC
|
||||
_080D7850: .4byte gStatusConditionStringsTable
|
||||
_080D7854:
|
||||
adds r2, 0x8
|
||||
adds r3, 0x1
|
||||
@@ -1647,13 +1647,13 @@ _080D7FF0:
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0xD
|
||||
muls r1, r0
|
||||
ldr r0, _080D8004 @ =gUnknown_824FC40
|
||||
ldr r0, _080D8004 @ =gAbilityNames
|
||||
adds r4, r1, r0
|
||||
b _080D8382
|
||||
.align 2, 0
|
||||
_080D7FFC: .4byte gUnknown_2039A30
|
||||
_080D8000: .4byte gEffectBattler
|
||||
_080D8004: .4byte gUnknown_824FC40
|
||||
_080D8004: .4byte gAbilityNames
|
||||
_080D8008:
|
||||
ldr r3, _080D8020 @ =gTrainerBattleOpponent_A
|
||||
ldrh r1, [r3]
|
||||
@@ -2430,7 +2430,7 @@ _080D860C:
|
||||
ldrb r1, [r0, 0x1]
|
||||
movs r0, 0xD
|
||||
muls r1, r0
|
||||
ldr r0, _080D8624 @ =gUnknown_824FC40
|
||||
ldr r0, _080D8624 @ =gAbilityNames
|
||||
_080D8616:
|
||||
adds r1, r0
|
||||
_080D8618:
|
||||
@@ -2439,7 +2439,7 @@ _080D8618:
|
||||
adds r5, 0x2
|
||||
b _080D86B0
|
||||
.align 2, 0
|
||||
_080D8624: .4byte gUnknown_824FC40
|
||||
_080D8624: .4byte gAbilityNames
|
||||
_080D8628:
|
||||
adds r0, r5, r7
|
||||
ldrb r2, [r0, 0x1]
|
||||
|
||||
+2
-2
@@ -43,7 +43,7 @@ _0807F65E:
|
||||
bne _0807F686
|
||||
bl HelpSystem_Enable
|
||||
bl CleanupOverworldWindowsAndTilemaps
|
||||
ldr r0, _0807F68C @ =sub_800FD9C
|
||||
ldr r0, _0807F68C @ =CB2_InitBattle
|
||||
bl SetMainCallback2
|
||||
bl sub_806D7E8
|
||||
bl ClearPoisonStepCounter
|
||||
@@ -54,7 +54,7 @@ _0807F686:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0807F68C: .4byte sub_800FD9C
|
||||
_0807F68C: .4byte CB2_InitBattle
|
||||
thumb_func_end sub_807F620
|
||||
|
||||
thumb_func_start sub_807F690
|
||||
|
||||
+2
-2
@@ -2034,7 +2034,7 @@ sub_80E68C4: @ 80E68C4
|
||||
ldr r1, _080E68F8 @ =sub_80E6854
|
||||
str r1, [r0, 0x8]
|
||||
bl CleanupOverworldWindowsAndTilemaps
|
||||
ldr r0, _080E68FC @ =sub_800FD9C
|
||||
ldr r0, _080E68FC @ =CB2_InitBattle
|
||||
bl SetMainCallback2
|
||||
adds r0, r4, 0
|
||||
bl DestroyTask
|
||||
@@ -2045,7 +2045,7 @@ _080E68EC:
|
||||
.align 2, 0
|
||||
_080E68F4: .4byte gMain
|
||||
_080E68F8: .4byte sub_80E6854
|
||||
_080E68FC: .4byte sub_800FD9C
|
||||
_080E68FC: .4byte CB2_InitBattle
|
||||
thumb_func_end sub_80E68C4
|
||||
|
||||
thumb_func_start sub_80E6900
|
||||
|
||||
+4
-4
@@ -1637,7 +1637,7 @@ _0808141A:
|
||||
lsls r2, 4
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
ldr r0, _08081448 @ =sub_800FD9C
|
||||
ldr r0, _08081448 @ =CB2_InitBattle
|
||||
bl SetMainCallback2
|
||||
ldr r1, _0808144C @ =gMain
|
||||
ldr r0, _08081450 @ =sub_8081668
|
||||
@@ -1651,7 +1651,7 @@ _0808143A:
|
||||
.align 2, 0
|
||||
_08081440: .4byte gBattleTypeFlags
|
||||
_08081444: .4byte gTrainerBattleOpponent_A
|
||||
_08081448: .4byte sub_800FD9C
|
||||
_08081448: .4byte CB2_InitBattle
|
||||
_0808144C: .4byte gMain
|
||||
_08081450: .4byte sub_8081668
|
||||
thumb_func_end sub_8081318
|
||||
@@ -1860,7 +1860,7 @@ _080815EA:
|
||||
lsls r3, 4
|
||||
adds r0, r3, 0
|
||||
strh r0, [r1]
|
||||
ldr r0, _08081618 @ =sub_800FD9C
|
||||
ldr r0, _08081618 @ =CB2_InitBattle
|
||||
bl SetMainCallback2
|
||||
ldr r1, _0808161C @ =gMain
|
||||
ldr r0, _08081620 @ =sub_8081668
|
||||
@@ -1874,7 +1874,7 @@ _0808160A:
|
||||
.align 2, 0
|
||||
_08081610: .4byte gBattleTypeFlags
|
||||
_08081614: .4byte gTrainerBattleOpponent_A
|
||||
_08081618: .4byte sub_800FD9C
|
||||
_08081618: .4byte CB2_InitBattle
|
||||
_0808161C: .4byte gMain
|
||||
_08081620: .4byte sub_8081668
|
||||
thumb_func_end sub_8081454
|
||||
|
||||
@@ -278,7 +278,7 @@ EvolutionScene: @ 80CDDF4
|
||||
adds r6, r7, 0
|
||||
adds r6, 0x1C
|
||||
adds r0, r1, r6
|
||||
ldr r2, _080CE0CC @ =nullsub_10
|
||||
ldr r2, _080CE0CC @ =SpriteCallbackDummy2
|
||||
str r2, [r0]
|
||||
adds r1, r7
|
||||
ldrb r2, [r1, 0x5]
|
||||
@@ -331,7 +331,7 @@ EvolutionScene: @ 80CDDF4
|
||||
adds r1, r3
|
||||
lsls r1, 2
|
||||
adds r6, r1, r6
|
||||
ldr r2, _080CE0CC @ =nullsub_10
|
||||
ldr r2, _080CE0CC @ =SpriteCallbackDummy2
|
||||
str r2, [r6]
|
||||
adds r1, r7
|
||||
ldrb r0, [r1, 0x5]
|
||||
@@ -420,7 +420,7 @@ _080CE0BC: .4byte gMonSpritesGfxPtr
|
||||
_080CE0C0: .4byte gMultiuseSpriteTemplate
|
||||
_080CE0C4: .4byte gDummySpriteAffineAnimTable
|
||||
_080CE0C8: .4byte gSprites
|
||||
_080CE0CC: .4byte nullsub_10
|
||||
_080CE0CC: .4byte SpriteCallbackDummy2
|
||||
_080CE0D0: .4byte sub_80CE8DC
|
||||
_080CE0D4: .4byte gTasks
|
||||
_080CE0D8: .4byte gPlttBufferUnfaded + 0x40
|
||||
@@ -562,7 +562,7 @@ CB2_EvolutionSceneLoadGraphics: @ 80CE0E8
|
||||
adds r0, r3, 0
|
||||
adds r0, 0x1C
|
||||
adds r0, r1, r0
|
||||
ldr r2, _080CE2CC @ =nullsub_10
|
||||
ldr r2, _080CE2CC @ =SpriteCallbackDummy2
|
||||
str r2, [r0]
|
||||
adds r1, r3
|
||||
ldrb r2, [r1, 0x5]
|
||||
@@ -623,7 +623,7 @@ _080CE2BC: .4byte gMonSpritesGfxPtr
|
||||
_080CE2C0: .4byte gMultiuseSpriteTemplate
|
||||
_080CE2C4: .4byte gDummySpriteAffineAnimTable
|
||||
_080CE2C8: .4byte gSprites
|
||||
_080CE2CC: .4byte nullsub_10
|
||||
_080CE2CC: .4byte SpriteCallbackDummy2
|
||||
_080CE2D0: .4byte nullsub_76
|
||||
_080CE2D4: .4byte sub_80D0050
|
||||
_080CE2D8: .4byte sub_80CE710
|
||||
@@ -813,7 +813,7 @@ _080CE45C:
|
||||
adds r0, r3, 0
|
||||
adds r0, 0x1C
|
||||
adds r0, r1, r0
|
||||
ldr r2, _080CE4C4 @ =nullsub_10
|
||||
ldr r2, _080CE4C4 @ =SpriteCallbackDummy2
|
||||
str r2, [r0]
|
||||
adds r1, r3
|
||||
ldrb r2, [r1, 0x5]
|
||||
@@ -836,7 +836,7 @@ _080CE4B4: .4byte gMultiuseSpriteTemplate
|
||||
_080CE4B8: .4byte gDummySpriteAffineAnimTable
|
||||
_080CE4BC: .4byte gUnknown_2039A20
|
||||
_080CE4C0: .4byte gSprites
|
||||
_080CE4C4: .4byte nullsub_10
|
||||
_080CE4C4: .4byte SpriteCallbackDummy2
|
||||
_080CE4C8: .4byte gMain
|
||||
_080CE4CC:
|
||||
ldr r0, _080CE4FC @ =gWirelessCommType
|
||||
@@ -989,7 +989,7 @@ TradeEvolutionScene: @ 80CE540
|
||||
adds r0, r3, 0
|
||||
adds r0, 0x1C
|
||||
adds r0, r1, r0
|
||||
ldr r2, _080CE6D8 @ =nullsub_10
|
||||
ldr r2, _080CE6D8 @ =SpriteCallbackDummy2
|
||||
str r2, [r0]
|
||||
adds r1, r3
|
||||
ldrb r2, [r1, 0x5]
|
||||
@@ -1074,7 +1074,7 @@ _080CE6C8: .4byte gMonSpritesGfxPtr
|
||||
_080CE6CC: .4byte gMultiuseSpriteTemplate
|
||||
_080CE6D0: .4byte gDummySpriteAffineAnimTable
|
||||
_080CE6D4: .4byte gSprites
|
||||
_080CE6D8: .4byte nullsub_10
|
||||
_080CE6D8: .4byte SpriteCallbackDummy2
|
||||
_080CE6DC: .4byte sub_80CF53C
|
||||
_080CE6E0: .4byte gTasks
|
||||
_080CE6E4: .4byte gBattle_BG0_X
|
||||
|
||||
+2
-2
@@ -12709,7 +12709,7 @@ _0811C096:
|
||||
lsls r2, 4
|
||||
adds r1, r2, 0
|
||||
strh r1, [r0]
|
||||
ldr r0, _0811C0DC @ =sub_800FD9C
|
||||
ldr r0, _0811C0DC @ =CB2_InitBattle
|
||||
bl SetMainCallback2
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
@@ -12719,7 +12719,7 @@ _0811C0CC: .4byte gPlayerParty
|
||||
_0811C0D0: .4byte gEnemyParty
|
||||
_0811C0D4: .4byte gUnknown_203B0D4
|
||||
_0811C0D8: .4byte gTrainerBattleOpponent_A
|
||||
_0811C0DC: .4byte sub_800FD9C
|
||||
_0811C0DC: .4byte CB2_InitBattle
|
||||
thumb_func_end sub_811C04C
|
||||
|
||||
thumb_func_start sub_811C0E0
|
||||
|
||||
@@ -4033,13 +4033,13 @@ _081366B8:
|
||||
adds r0, r1
|
||||
movs r1, 0xD
|
||||
muls r1, r4
|
||||
ldr r2, _081367A0 @ =gUnknown_824FC40
|
||||
ldr r2, _081367A0 @ =gAbilityNames
|
||||
adds r1, r2
|
||||
bl StringCopy
|
||||
ldr r0, [r6]
|
||||
ldr r2, _081367A4 @ =0x000031cc
|
||||
adds r0, r2
|
||||
ldr r1, _081367A8 @ =gUnknown_824FB08
|
||||
ldr r1, _081367A8 @ =gAbilityDescriptionPointers
|
||||
lsls r4, 2
|
||||
adds r4, r1
|
||||
ldr r1, [r4]
|
||||
@@ -4088,9 +4088,9 @@ _08136790: .4byte gExperienceTables
|
||||
_08136794: .4byte gBaseStats
|
||||
_08136798: .4byte 0x000031b0
|
||||
_0813679C: .4byte 0x000031bc
|
||||
_081367A0: .4byte gUnknown_824FC40
|
||||
_081367A0: .4byte gAbilityNames
|
||||
_081367A4: .4byte 0x000031cc
|
||||
_081367A8: .4byte gUnknown_824FB08
|
||||
_081367A8: .4byte gAbilityDescriptionPointers
|
||||
_081367AC: .4byte 0x0000326c
|
||||
thumb_func_end sub_8136350
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
gPreBattleCallback1
|
||||
gBattleMainFunc
|
||||
gBattleResults
|
||||
gLeveledUpInBattle
|
||||
gBattlerControllerFuncs
|
||||
gHealthboxSpriteIds
|
||||
gMultiUsePlayerCursor
|
||||
gNumberOfMovesToChoose
|
||||
gUnknown_3004FFC
|
||||
@@ -549,7 +549,7 @@ BattleScript_BerryStatRaiseEnd2:: @ 81D9679
|
||||
BattleScript_BerryFocusEnergyEnd2:: @ 81D9694
|
||||
.incbin "baserom.gba", 0x1D9694, 0x10
|
||||
|
||||
gUnknown_81D96A4:: @ 81D96A4
|
||||
BattleScript_ActionSelectionItemsCantBeUsed:: @ 81D96A4
|
||||
.incbin "baserom.gba", 0x1D96A4, 0x4
|
||||
|
||||
BattleScript_FlushMessageBox:: @ 81D96A8
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
.section script_data, "aw", %progbits
|
||||
|
||||
gUnknown_81D99B0:: @ 81D99B0
|
||||
gBattlescriptsForBallThrow:: @ 81D99B0
|
||||
.incbin "baserom.gba", 0x1D99B0, 0x34
|
||||
|
||||
gUnknown_81D99E4:: @ 81D99E4
|
||||
@@ -9,7 +9,7 @@ gUnknown_81D99E4:: @ 81D99E4
|
||||
gUnknown_81D99FC:: @ 81D99FC
|
||||
.incbin "baserom.gba", 0x1D99FC, 0x8
|
||||
|
||||
gUnknown_81D9A04:: @ 81D9A04
|
||||
gBattlescriptsForSafariActions:: @ 81D9A04
|
||||
.incbin "baserom.gba", 0x1D9A04, 0x3E
|
||||
|
||||
BattleScript_SuccessBallThrow:: @ 81D9A42
|
||||
|
||||
+2
-68
@@ -316,7 +316,7 @@ gUnknown_8248300:: @ 8248300
|
||||
gUnknown_8248318:: @ 8248318
|
||||
.incbin "baserom.gba", 0x248318, 0x8
|
||||
|
||||
gUnknown_8248320:: @ 8248320
|
||||
gBattleBgTemplates:: @ 8248320
|
||||
.incbin "baserom.gba", 0x248320, 0x10
|
||||
|
||||
gUnknown_8248330:: @ 8248330
|
||||
@@ -327,73 +327,7 @@ gUnknown_824EE34:: @ 824EE34
|
||||
|
||||
gUnknown_824EFC4:: @ 824EFC4
|
||||
.incbin "baserom.gba", 0x24EFC4, 0x20
|
||||
|
||||
gUnknown_824EFE4:: @ 824EFE4
|
||||
.incbin "baserom.gba", 0x24EFE4, 0xC
|
||||
|
||||
gUnknown_824EFF0:: @ 824EFF0
|
||||
.incbin "baserom.gba", 0x24EFF0, 0x18
|
||||
|
||||
gUnknown_824F008:: @ 824F008
|
||||
.incbin "baserom.gba", 0x24F008, 0x8
|
||||
|
||||
gUnknown_824F010:: @ 824F010
|
||||
.incbin "baserom.gba", 0x24F010, 0x8
|
||||
|
||||
gUnknown_824F018:: @ 824F018
|
||||
.incbin "baserom.gba", 0x24F018, 0x8
|
||||
|
||||
gUnknown_824F020:: @ 824F020
|
||||
.incbin "baserom.gba", 0x24F020, 0x28
|
||||
|
||||
gUnknown_824F048:: @ 824F048
|
||||
.incbin "baserom.gba", 0x24F048, 0x8
|
||||
|
||||
gTypeEffectiveness:: @ 824F050
|
||||
.incbin "baserom.gba", 0x24F050, 0x150
|
||||
|
||||
gTypeNames:: @ 824F1A0
|
||||
.incbin "baserom.gba", 0x24F1A0, 0x80
|
||||
|
||||
gTrainerMoneyTable:: @ 824F220
|
||||
.incbin "baserom.gba", 0x24F220, 0x8E8
|
||||
|
||||
gUnknown_824FB08:: @ 824FB08
|
||||
.incbin "baserom.gba", 0x24FB08, 0x138
|
||||
|
||||
gUnknown_824FC40:: @ 824FC40
|
||||
.incbin "baserom.gba", 0x24FC40, 0x3F8
|
||||
|
||||
gUnknown_8250038:: @ 8250038
|
||||
.incbin "baserom.gba", 0x250038, 0x38
|
||||
|
||||
gUnknown_8250070:: @ 8250070
|
||||
.incbin "baserom.gba", 0x250070, 0x24
|
||||
|
||||
gStatusConditionString_PoisonJpn:: @ 8250094
|
||||
.incbin "baserom.gba", 0x250094, 0x8
|
||||
|
||||
gStatusConditionString_SleepJpn:: @ 825009C
|
||||
.incbin "baserom.gba", 0x25009C, 0x8
|
||||
|
||||
gStatusConditionString_ParalysisJpn:: @ 82500A4
|
||||
.incbin "baserom.gba", 0x2500A4, 0x8
|
||||
|
||||
gStatusConditionString_BurnJpn:: @ 82500AC
|
||||
.incbin "baserom.gba", 0x2500AC, 0x8
|
||||
|
||||
gStatusConditionString_IceJpn:: @ 82500B4
|
||||
.incbin "baserom.gba", 0x2500B4, 0x8
|
||||
|
||||
gStatusConditionString_ConfusionJpn:: @ 82500BC
|
||||
.incbin "baserom.gba", 0x2500BC, 0x8
|
||||
|
||||
gStatusConditionString_LoveJpn:: @ 82500C4
|
||||
.incbin "baserom.gba", 0x2500C4, 0x8
|
||||
|
||||
gUnknown_82500CC:: @ 82500CC
|
||||
.incbin "baserom.gba", 0x2500CC, 0x38
|
||||
|
||||
|
||||
.section .rodata.8260270
|
||||
|
||||
gUnknown_8260270:: @ 8260270
|
||||
|
||||
+22
-1
@@ -424,7 +424,28 @@ gUnknown_83FE80C:: @ 83FE80C
|
||||
.incbin "baserom.gba", 0x3FE80C, 0x10
|
||||
|
||||
gUnknown_83FE81C:: @ 83FE81C
|
||||
.incbin "baserom.gba", 0x3FE81C, 0x3D
|
||||
.incbin "baserom.gba", 0x3FE81C, 0xE
|
||||
|
||||
gText_Sleep:: @ 83FE82A
|
||||
.incbin "baserom.gba", 0x3FE82A, 0x6
|
||||
|
||||
gText_Poison:: @ 83FE830
|
||||
.incbin "baserom.gba", 0x3FE830, 0x7
|
||||
|
||||
gText_Burn:: @ 83FE837
|
||||
.incbin "baserom.gba", 0x3FE837, 0x5
|
||||
|
||||
gText_Paralysis:: @ 83FE83C
|
||||
.incbin "baserom.gba", 0x3FE83C, 0xA
|
||||
|
||||
gText_Ice:: @ 83FE846
|
||||
.incbin "baserom.gba", 0x3FE846, 0x4
|
||||
|
||||
gText_Confusion:: @ 83FE84A
|
||||
.incbin "baserom.gba", 0x3FE84A, 0xA
|
||||
|
||||
gText_Love:: @ 83FE854
|
||||
.incbin "baserom.gba", 0x3FE854, 0x5
|
||||
|
||||
gUnknown_83FE859:: @ 83FE859
|
||||
.incbin "baserom.gba", 0x3FE859, 0x3
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@
|
||||
#define B_ACTION_SAFARI_POKEBLOCK 6
|
||||
#define B_ACTION_SAFARI_GO_NEAR 7
|
||||
#define B_ACTION_SAFARI_RUN 8
|
||||
#define B_ACTION_9 9
|
||||
#define B_ACTION_OLDMAN_THROW 9
|
||||
#define B_ACTION_EXEC_SCRIPT 10
|
||||
#define B_ACTION_TRY_FINISH 11
|
||||
#define B_ACTION_FINISHED 12
|
||||
|
||||
@@ -45,7 +45,7 @@ struct UnknownPokemonStruct4
|
||||
|
||||
void CB2_InitBattle(void);
|
||||
void BattleMainCB2(void);
|
||||
void CB2_QuitRecordedBattle(void);
|
||||
void CB2_QuitPokeDudeBattle(void);
|
||||
void sub_8038528(struct Sprite* sprite);
|
||||
void sub_8038A04(void); // unused
|
||||
void VBlankCB_Battle(void);
|
||||
@@ -53,7 +53,7 @@ void sub_801182C(struct Sprite *sprite);
|
||||
void sub_8011A1C(void);
|
||||
u32 sub_80391E0(u8 arrayId, u8 caseId);
|
||||
u32 sub_80397C4(u32 setId, u32 tableId);
|
||||
void oac_poke_opponent(struct Sprite *sprite);
|
||||
void SpriteCB_WildMon(struct Sprite *sprite);
|
||||
void SpriteCallbackDummy_2(struct Sprite *sprite);
|
||||
void sub_8039934(struct Sprite *sprite);
|
||||
void sub_8012098(struct Sprite *sprite);
|
||||
@@ -81,7 +81,7 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves);
|
||||
void RunBattleScriptCommands_PopCallbacksStack(void);
|
||||
void RunBattleScriptCommands(void);
|
||||
bool8 TryRunFromBattle(u8 bank);
|
||||
void sub_800FD9C(void);
|
||||
void CB2_InitBattle(void);
|
||||
void sub_80120C4(struct Sprite *);
|
||||
void sub_8012100(struct Sprite *);
|
||||
void nullsub_12(void);
|
||||
|
||||
@@ -238,4 +238,12 @@ extern const u8* const gStatNamesTable2[];
|
||||
extern const u16 gMissStringIds[];
|
||||
extern const u16 gTrappingMoves[];
|
||||
|
||||
extern const u8 gText_Sleep[];
|
||||
extern const u8 gText_Poison[];
|
||||
extern const u8 gText_Burn[];
|
||||
extern const u8 gText_Paralysis[];
|
||||
extern const u8 gText_Ice[];
|
||||
extern const u8 gText_Confusion[];
|
||||
extern const u8 gText_Love[];
|
||||
|
||||
#endif // GUARD_BATTLE_MESSAGE_H
|
||||
|
||||
@@ -80,4 +80,6 @@
|
||||
#define ABILITY_CACOPHONY 76
|
||||
#define ABILITY_AIR_LOCK 77
|
||||
|
||||
#define ABILITIES_COUNT 78
|
||||
|
||||
#endif // GUARD_CONSTANTS_ABILITIES_H
|
||||
|
||||
+2
-2
@@ -45,8 +45,8 @@ extern const u8 *const gBattleAnims_Special[];
|
||||
extern const union AnimCmd *const *const gTrainerBackAnimsPtrTable[];
|
||||
extern const union AnimCmd *const *const gTrainerFrontAnimsPtrTable[];
|
||||
|
||||
extern const struct OamData gUnknown_824F010;
|
||||
extern const struct OamData gUnknown_824F018;
|
||||
extern const struct OamData gOamData_824F010;
|
||||
extern const struct OamData gOamData_824F018;
|
||||
extern const union AnimCmd *const gSpriteAnimTable_82349BC[];
|
||||
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_82348C8[];
|
||||
extern const union AffineAnimCmd *const gSpriteAffineAnimTable_8234944[];
|
||||
|
||||
@@ -66,6 +66,7 @@ SECTIONS {
|
||||
src/battle_controllers.o(.text);
|
||||
src/decompress.o(.text);
|
||||
asm/battle_1.o(.text);
|
||||
src/battle_main.o(.text);
|
||||
asm/battle_2.o(.text);
|
||||
src/battle_util.o(.text);
|
||||
src/battle_script_commands.o(.text);
|
||||
@@ -385,6 +386,7 @@ SECTIONS {
|
||||
data/data.o(.rodata);
|
||||
src/data.o(.rodata);
|
||||
data/data.o(.rodata.82350AC);
|
||||
src/battle_main.o(.rodata);
|
||||
src/battle_util.o(.rodata);
|
||||
src/battle_script_commands.o(.rodata);
|
||||
src/battle_controller_player.o(.rodata);
|
||||
|
||||
@@ -0,0 +1,467 @@
|
||||
#include "global.h"
|
||||
#include "battle.h"
|
||||
#include "battle_anim.h"
|
||||
#include "battle_ai_script_commands.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "battle_interface.h"
|
||||
#include "battle_main.h"
|
||||
#include "battle_message.h"
|
||||
#include "battle_scripts.h"
|
||||
#include "battle_setup.h"
|
||||
#include "battle_tower.h"
|
||||
#include "battle_string_ids.h"
|
||||
#include "berry.h"
|
||||
#include "bg.h"
|
||||
#include "data.h"
|
||||
#include "decompress.h"
|
||||
#include "dma3.h"
|
||||
#include "event_data.h"
|
||||
#include "evolution_scene.h"
|
||||
#include "graphics.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "international_string_util.h"
|
||||
#include "item.h"
|
||||
#include "link.h"
|
||||
#include "link_rfu.h"
|
||||
#include "load_save.h"
|
||||
#include "main.h"
|
||||
#include "malloc.h"
|
||||
#include "m4a.h"
|
||||
#include "palette.h"
|
||||
#include "party_menu.h"
|
||||
#include "pokeball.h"
|
||||
#include "pokedex.h"
|
||||
#include "pokemon.h"
|
||||
#include "random.h"
|
||||
#include "roamer.h"
|
||||
#include "safari_zone.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "trig.h"
|
||||
#include "util.h"
|
||||
#include "window.h"
|
||||
#include "cable_club.h"
|
||||
#include "constants/abilities.h"
|
||||
#include "constants/battle_move_effects.h"
|
||||
#include "constants/hold_effects.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/moves.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/trainers.h"
|
||||
#include "constants/trainer_classes.h"
|
||||
|
||||
void sub_80111EC(struct Sprite *sprite);
|
||||
void HandleAction_UseMove(void);
|
||||
void HandleAction_Switch(void);
|
||||
void HandleAction_UseItem(void);
|
||||
void HandleAction_Run(void);
|
||||
void HandleAction_WatchesCarefully(void);
|
||||
void HandleAction_SafariZoneBallThrow(void);
|
||||
void HandleAction_ThrowPokeblock(void);
|
||||
void HandleAction_GoNear(void);
|
||||
void HandleAction_SafariZoneRun(void);
|
||||
void HandleAction_OldManBallThrow(void);
|
||||
void HandleAction_TryFinish(void);
|
||||
void HandleAction_NothingIsFainted(void);
|
||||
void HandleAction_ActionFinished(void);
|
||||
void HandleEndTurn_ContinueBattle(void);
|
||||
void HandleEndTurn_BattleWon(void);
|
||||
void HandleEndTurn_BattleLost(void);
|
||||
void HandleEndTurn_RanFromBattle(void);
|
||||
void HandleEndTurn_MonFled(void);
|
||||
void HandleEndTurn_FinishBattle(void);
|
||||
|
||||
// TODO: put ewram variables here after resolving symbol ref in between
|
||||
|
||||
void (*gPreBattleCallback1)(void);
|
||||
void (*gBattleMainFunc)(void);
|
||||
struct BattleResults gBattleResults;
|
||||
u8 gLeveledUpInBattle;
|
||||
void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
|
||||
u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
|
||||
u8 gMultiUsePlayerCursor;
|
||||
u8 gNumberOfMovesToChoose;
|
||||
u8 gUnknown_3004FFC[MAX_BATTLERS_COUNT];
|
||||
|
||||
const struct ScanlineEffectParams sIntroScanlineParams16Bit =
|
||||
{
|
||||
(void *)REG_ADDR_BG3HOFS, SCANLINE_EFFECT_DMACNT_16BIT, 1
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_824EFF0 =
|
||||
{
|
||||
.tileTag = 0,
|
||||
.paletteTag = 0,
|
||||
.oam = &gDummyOamData,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = sub_80111EC,
|
||||
};
|
||||
|
||||
const u8 sText_ShedinjaJpnName[] = _("ヌケニン"); // Nukenin
|
||||
|
||||
const struct OamData gOamData_824F010 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_NORMAL,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
.size = SPRITE_SIZE(64x64),
|
||||
.tileNum = 0,
|
||||
.priority = 2,
|
||||
.paletteNum = 0,
|
||||
.affineParam = 0,
|
||||
};
|
||||
|
||||
const struct OamData gOamData_824F018 =
|
||||
{
|
||||
.y = 0,
|
||||
.affineMode = ST_OAM_AFFINE_NORMAL,
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.bpp = ST_OAM_4BPP,
|
||||
.shape = SPRITE_SHAPE(64x64),
|
||||
.x = 0,
|
||||
.size = SPRITE_SIZE(64x64),
|
||||
.tileNum = 0,
|
||||
.priority = 2,
|
||||
.paletteNum = 2,
|
||||
.affineParam = 0,
|
||||
};
|
||||
|
||||
// not used
|
||||
const union AnimCmd gUnknown_824F020[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 5),
|
||||
ANIMCMD_JUMP(0),
|
||||
};
|
||||
|
||||
// not used
|
||||
const union AnimCmd *const gUnknown_824F028 = gUnknown_824F020;
|
||||
|
||||
// not used
|
||||
const union AffineAnimCmd gUnknown_824F02C[] =
|
||||
{
|
||||
AFFINEANIMCMD_FRAME(-0x10, 0x0, 0, 4),
|
||||
AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 0x3C),
|
||||
AFFINEANIMCMD_JUMP(1),
|
||||
};
|
||||
|
||||
// not used
|
||||
const union AffineAnimCmd *const gUnknown_824F044 = gUnknown_824F02C;
|
||||
|
||||
const s8 gUnknown_824F048[] ={ -32, -16, -16, -32, -32, 0, 0, 0 };
|
||||
|
||||
// format: attacking type, defending type, damage multiplier
|
||||
// the multiplier is a (decimal) fixed-point number:
|
||||
// 20 is ×2.0 TYPE_MUL_SUPER_EFFECTIVE
|
||||
// 10 is ×1.0 TYPE_MUL_NORMAL
|
||||
// 05 is ×0.5 TYPE_MUL_NOT_EFFECTIVE
|
||||
// 00 is ×0.0 TYPE_MUL_NO_EFFECT
|
||||
const u8 gTypeEffectiveness[336] =
|
||||
{
|
||||
TYPE_NORMAL, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_NORMAL, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FIRE, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FIRE, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FIRE, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_FIRE, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_FIRE, TYPE_BUG, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_FIRE, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FIRE, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FIRE, TYPE_STEEL, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_WATER, TYPE_FIRE, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_WATER, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_WATER, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_WATER, TYPE_GROUND, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_WATER, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_WATER, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_ELECTRIC, TYPE_WATER, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_ELECTRIC, TYPE_ELECTRIC, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_ELECTRIC, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_ELECTRIC, TYPE_GROUND, TYPE_MUL_NO_EFFECT,
|
||||
TYPE_ELECTRIC, TYPE_FLYING, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_ELECTRIC, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GRASS, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GRASS, TYPE_WATER, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_GRASS, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GRASS, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GRASS, TYPE_GROUND, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_GRASS, TYPE_FLYING, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GRASS, TYPE_BUG, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GRASS, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_GRASS, TYPE_DRAGON, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GRASS, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_ICE, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_ICE, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_ICE, TYPE_ICE, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_ICE, TYPE_GROUND, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_ICE, TYPE_FLYING, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_ICE, TYPE_DRAGON, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_ICE, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_ICE, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FIGHTING, TYPE_NORMAL, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_FIGHTING, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_FIGHTING, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FIGHTING, TYPE_FLYING, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FIGHTING, TYPE_PSYCHIC, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FIGHTING, TYPE_BUG, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FIGHTING, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_FIGHTING, TYPE_DARK, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_FIGHTING, TYPE_STEEL, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_POISON, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_POISON, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_POISON, TYPE_GROUND, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_POISON, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_POISON, TYPE_GHOST, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_POISON, TYPE_STEEL, TYPE_MUL_NO_EFFECT,
|
||||
TYPE_GROUND, TYPE_FIRE, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_GROUND, TYPE_ELECTRIC, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_GROUND, TYPE_GRASS, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GROUND, TYPE_POISON, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_GROUND, TYPE_FLYING, TYPE_MUL_NO_EFFECT,
|
||||
TYPE_GROUND, TYPE_BUG, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GROUND, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_GROUND, TYPE_STEEL, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_FLYING, TYPE_ELECTRIC, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FLYING, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_FLYING, TYPE_FIGHTING, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_FLYING, TYPE_BUG, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_FLYING, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FLYING, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_PSYCHIC, TYPE_FIGHTING, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_PSYCHIC, TYPE_POISON, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_PSYCHIC, TYPE_PSYCHIC, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_PSYCHIC, TYPE_DARK, TYPE_MUL_NO_EFFECT,
|
||||
TYPE_PSYCHIC, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_BUG, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_BUG, TYPE_GRASS, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_BUG, TYPE_FIGHTING, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_BUG, TYPE_POISON, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_BUG, TYPE_FLYING, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_BUG, TYPE_PSYCHIC, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_BUG, TYPE_GHOST, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_BUG, TYPE_DARK, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_BUG, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_ROCK, TYPE_FIRE, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_ROCK, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_ROCK, TYPE_FIGHTING, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_ROCK, TYPE_GROUND, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_ROCK, TYPE_FLYING, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_ROCK, TYPE_BUG, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_ROCK, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GHOST, TYPE_NORMAL, TYPE_MUL_NO_EFFECT,
|
||||
TYPE_GHOST, TYPE_PSYCHIC, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_GHOST, TYPE_DARK, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GHOST, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_GHOST, TYPE_GHOST, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_DRAGON, TYPE_DRAGON, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_DRAGON, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_DARK, TYPE_FIGHTING, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_DARK, TYPE_PSYCHIC, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_DARK, TYPE_GHOST, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_DARK, TYPE_DARK, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_DARK, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_STEEL, TYPE_FIRE, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_STEEL, TYPE_WATER, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_STEEL, TYPE_ELECTRIC, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_STEEL, TYPE_ICE, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_STEEL, TYPE_ROCK, TYPE_MUL_SUPER_EFFECTIVE,
|
||||
TYPE_STEEL, TYPE_STEEL, TYPE_MUL_NOT_EFFECTIVE,
|
||||
TYPE_FORESIGHT, TYPE_FORESIGHT, TYPE_MUL_NO_EFFECT,
|
||||
TYPE_NORMAL, TYPE_GHOST, TYPE_MUL_NO_EFFECT,
|
||||
TYPE_FIGHTING, TYPE_GHOST, TYPE_MUL_NO_EFFECT,
|
||||
TYPE_ENDTABLE, TYPE_ENDTABLE, TYPE_MUL_NO_EFFECT
|
||||
};
|
||||
|
||||
const u8 gTypeNames[][TYPE_NAME_LENGTH + 1] =
|
||||
{
|
||||
_("NORMAL"),
|
||||
_("FIGHT"),
|
||||
_("FLYING"),
|
||||
_("POISON"),
|
||||
_("GROUND"),
|
||||
_("ROCK"),
|
||||
_("BUG"),
|
||||
_("GHOST"),
|
||||
_("STEEL"),
|
||||
_("???"),
|
||||
_("FIRE"),
|
||||
_("WATER"),
|
||||
_("GRASS"),
|
||||
_("ELECTR"),
|
||||
_("PSYCHC"),
|
||||
_("ICE"),
|
||||
_("DRAGON"),
|
||||
_("DARK"),
|
||||
};
|
||||
|
||||
// This is a factor in how much money you get for beating a trainer.
|
||||
const struct TrainerMoney gTrainerMoneyTable[] =
|
||||
{
|
||||
{ CLASS_LEADER_2, 25 },
|
||||
{ CLASS_ELITE_FOUR_2, 25 },
|
||||
{ CLASS_PKMN_PROF, 25 },
|
||||
{ CLASS_RIVAL, 4 },
|
||||
{ CLASS_RIVAL_2, 9 },
|
||||
{ CLASS_CHAMPION_2, 25 },
|
||||
{ CLASS_YOUNGSTER_2, 4 },
|
||||
{ CLASS_BUG_CATCHER_2, 3 },
|
||||
{ CLASS_HIKER_2, 9 },
|
||||
{ CLASS_BIRD_KEEPER_2, 6 },
|
||||
{ CLASS_PICNICKER_2, 5 },
|
||||
{ CLASS_SUPER_NERD, 6 },
|
||||
{ CLASS_FISHERMAN_2, 9 },
|
||||
{ CLASS_TEAM_ROCKET, 8 },
|
||||
{ CLASS_LASS_2, 4 },
|
||||
{ CLASS_BEAUTY_2, 18 },
|
||||
{ CLASS_BLACK_BELT_2, 6 },
|
||||
{ CLASS_CUE_BALL, 6 },
|
||||
{ CLASS_CHANNELER, 8 },
|
||||
{ CLASS_ROCKER, 6 },
|
||||
{ CLASS_GENTLEMAN_2, 18 },
|
||||
{ CLASS_BURGLAR, 22 },
|
||||
{ CLASS_SWIMMER_MALE_2, 1 },
|
||||
{ CLASS_ENGINEER, 12 },
|
||||
{ CLASS_JUGGLER, 10 },
|
||||
{ CLASS_SAILOR_2, 8 },
|
||||
{ CLASS_COOLTRAINER_2, 9 },
|
||||
{ CLASS_POKEMANIAC_2, 12 },
|
||||
{ CLASS_TAMER, 10 },
|
||||
{ CLASS_CAMPER_2, 5 },
|
||||
{ CLASS_PSYCHIC_2, 5 },
|
||||
{ CLASS_BIKER, 5 },
|
||||
{ CLASS_GAMER, 18 },
|
||||
{ CLASS_SCIENTIST, 12 },
|
||||
{ CLASS_CRUSH_GIRL, 6 },
|
||||
{ CLASS_TUBER_3, 1 },
|
||||
{ CLASS_PKMN_BREEDER_2, 7 },
|
||||
{ CLASS_PKMN_RANGER_2, 9 },
|
||||
{ CLASS_AROMA_LADY_2, 7 },
|
||||
{ CLASS_RUIN_MANIAC_2, 12 },
|
||||
{ CLASS_LADY_2, 50 },
|
||||
{ CLASS_PAINTER, 4 },
|
||||
{ CLASS_TWINS_2, 3 },
|
||||
{ CLASS_YOUNG_COUPLE_2, 7 },
|
||||
{ CLASS_SIS_AND_BRO_2, 1 },
|
||||
{ CLASS_COOL_COUPLE, 6 },
|
||||
{ CLASS_CRUSH_KIN, 6 },
|
||||
{ CLASS_SWIMMER_FEMALE_2, 1 },
|
||||
{ CLASS_PLAYER, 1 },
|
||||
{ CLASS_LEADER, 25 },
|
||||
{ CLASS_ELITE_FOUR, 25 },
|
||||
{ CLASS_LASS, 4 },
|
||||
{ CLASS_YOUNGSTER, 4 },
|
||||
{ CLASS_PKMN_TRAINER_3, 15 },
|
||||
{ CLASS_HIKER, 10 },
|
||||
{ CLASS_BEAUTY, 20 },
|
||||
{ CLASS_FISHERMAN, 10 },
|
||||
{ CLASS_LADY, 50 },
|
||||
{ CLASS_TRIATHLETE, 10 },
|
||||
{ CLASS_TEAM_AQUA, 5 },
|
||||
{ CLASS_TWINS, 3 },
|
||||
{ CLASS_SWIMMER_FEMALE, 2 },
|
||||
{ CLASS_BUG_CATCHER, 4 },
|
||||
{ CLASS_SCHOOL_KID, 5 },
|
||||
{ CLASS_RICH_BOY, 50 },
|
||||
{ CLASS_SR_AND_JR, 4 },
|
||||
{ CLASS_BLACK_BELT, 8 },
|
||||
{ CLASS_TUBER, 1 },
|
||||
{ CLASS_HEX_MANIAC, 6 },
|
||||
{ CLASS_PKMN_BREEDER, 10 },
|
||||
{ CLASS_TEAM_MAGMA, 5 },
|
||||
{ CLASS_INTERVIEWER, 12 },
|
||||
{ CLASS_TUBER_2, 1 },
|
||||
{ CLASS_YOUNG_COUPLE, 8 },
|
||||
{ CLASS_GUITARIST, 8 },
|
||||
{ CLASS_GENTLEMAN, 20 },
|
||||
{ CLASS_CHAMPION, 50 },
|
||||
{ CLASS_MAGMA_LEADER, 20 },
|
||||
{ CLASS_BATTLE_GIRL, 6 },
|
||||
{ CLASS_SWIMMER_MALE, 2 },
|
||||
{ CLASS_POKEFAN, 20 },
|
||||
{ CLASS_EXPERT, 10 },
|
||||
{ CLASS_DRAGON_TAMER, 12 },
|
||||
{ CLASS_BIRD_KEEPER, 8 },
|
||||
{ CLASS_NINJA_BOY, 3 },
|
||||
{ CLASS_PARASOL_LADY, 10 },
|
||||
{ CLASS_BUG_MANIAC, 15 },
|
||||
{ CLASS_SAILOR, 8 },
|
||||
{ CLASS_COLLECTOR, 15 },
|
||||
{ CLASS_PKMN_RANGER, 12 },
|
||||
{ CLASS_MAGMA_ADMIN, 10 },
|
||||
{ CLASS_AROMA_LADY, 10 },
|
||||
{ CLASS_RUIN_MANIAC, 15 },
|
||||
{ CLASS_COOLTRAINER, 12 },
|
||||
{ CLASS_POKEMANIAC, 15 },
|
||||
{ CLASS_KINDLER, 8 },
|
||||
{ CLASS_CAMPER, 4 },
|
||||
{ CLASS_PICNICKER, 4 },
|
||||
{ CLASS_PSYCHIC, 6 },
|
||||
{ CLASS_SIS_AND_BRO, 3 },
|
||||
{ CLASS_OLD_COUPLE, 10 },
|
||||
{ CLASS_AQUA_ADMIN, 10 },
|
||||
{ CLASS_AQUA_LEADER, 20 },
|
||||
{ CLASS_BOSS, 25 },
|
||||
{ 0xFF, 5 },
|
||||
};
|
||||
|
||||
#include "data/text/abilities.h"
|
||||
|
||||
void (*const sTurnActionsFuncsTable[])(void) =
|
||||
{
|
||||
[B_ACTION_USE_MOVE] = HandleAction_UseMove,
|
||||
[B_ACTION_USE_ITEM] = HandleAction_UseItem,
|
||||
[B_ACTION_SWITCH] = HandleAction_Switch,
|
||||
[B_ACTION_RUN] = HandleAction_Run,
|
||||
[B_ACTION_SAFARI_WATCH_CAREFULLY] = HandleAction_WatchesCarefully,
|
||||
[B_ACTION_SAFARI_BALL] = HandleAction_SafariZoneBallThrow,
|
||||
[B_ACTION_SAFARI_POKEBLOCK] = HandleAction_ThrowPokeblock,
|
||||
[B_ACTION_SAFARI_GO_NEAR] = HandleAction_GoNear,
|
||||
[B_ACTION_SAFARI_RUN] = HandleAction_SafariZoneRun,
|
||||
[B_ACTION_OLDMAN_THROW] = HandleAction_OldManBallThrow,
|
||||
[B_ACTION_EXEC_SCRIPT] = HandleAction_RunBattleScript,
|
||||
[B_ACTION_TRY_FINISH] = HandleAction_TryFinish,
|
||||
[B_ACTION_FINISHED] = HandleAction_ActionFinished,
|
||||
[B_ACTION_NOTHING_FAINTED] = HandleAction_NothingIsFainted,
|
||||
};
|
||||
|
||||
void (*const sEndTurnFuncsTable[])(void) =
|
||||
{
|
||||
[0] = HandleEndTurn_ContinueBattle, //B_OUTCOME_NONE?
|
||||
[B_OUTCOME_WON] = HandleEndTurn_BattleWon,
|
||||
[B_OUTCOME_LOST] = HandleEndTurn_BattleLost,
|
||||
[B_OUTCOME_DREW] = HandleEndTurn_BattleLost,
|
||||
[B_OUTCOME_RAN] = HandleEndTurn_RanFromBattle,
|
||||
[B_OUTCOME_PLAYER_TELEPORTED] = HandleEndTurn_FinishBattle,
|
||||
[B_OUTCOME_MON_FLED] = HandleEndTurn_MonFled,
|
||||
[B_OUTCOME_CAUGHT] = HandleEndTurn_FinishBattle,
|
||||
[B_OUTCOME_NO_SAFARI_BALLS] = HandleEndTurn_FinishBattle,
|
||||
};
|
||||
|
||||
const u8 gStatusConditionString_PoisonJpn[8] = _("どく$$$$$");
|
||||
const u8 gStatusConditionString_SleepJpn[8] = _("ねむり$$$$");
|
||||
const u8 gStatusConditionString_ParalysisJpn[8] = _("まひ$$$$$");
|
||||
const u8 gStatusConditionString_BurnJpn[8] = _("やけど$$$$");
|
||||
const u8 gStatusConditionString_IceJpn[8] = _("こおり$$$$");
|
||||
const u8 gStatusConditionString_ConfusionJpn[8] = _("こんらん$$$");
|
||||
const u8 gStatusConditionString_LoveJpn[8] = _("メロメロ$$$");
|
||||
|
||||
const u8 *const gStatusConditionStringsTable[7][2] =
|
||||
{
|
||||
{gStatusConditionString_PoisonJpn, gText_Poison},
|
||||
{gStatusConditionString_SleepJpn, gText_Sleep},
|
||||
{gStatusConditionString_ParalysisJpn, gText_Paralysis},
|
||||
{gStatusConditionString_BurnJpn, gText_Burn},
|
||||
{gStatusConditionString_IceJpn, gText_Ice},
|
||||
{gStatusConditionString_ConfusionJpn, gText_Confusion},
|
||||
{gStatusConditionString_LoveJpn, gText_Love}
|
||||
};
|
||||
@@ -0,0 +1,242 @@
|
||||
static const u8 sNoneDescription[] = _("No special ability.");
|
||||
static const u8 sStenchDescription[] = _("Helps repel wild POKéMON.");
|
||||
static const u8 sDrizzleDescription[] = _("Summons rain in battle.");
|
||||
static const u8 sSpeedBoostDescription[] = _("Gradually boosts SPEED.");
|
||||
static const u8 sBattleArmorDescription[] = _("Blocks critical hits.");
|
||||
static const u8 sSturdyDescription[] = _("Negates 1-hit KO attacks.");
|
||||
static const u8 sDampDescription[] = _("Prevents self-destruction.");
|
||||
static const u8 sLimberDescription[] = _("Prevents paralysis.");
|
||||
static const u8 sSandVeilDescription[] = _("Ups evasion in a sandstorm.");
|
||||
static const u8 sStaticDescription[] = _("Paralyzes on contact.");
|
||||
static const u8 sVoltAbsorbDescription[] = _("Turns electricity into HP.");
|
||||
static const u8 sWaterAbsorbDescription[] = _("Changes water into HP.");
|
||||
static const u8 sObliviousDescription[] = _("Prevents attraction.");
|
||||
static const u8 sCloudNineDescription[] = _("Negates weather effects.");
|
||||
static const u8 sCompoundEyesDescription[] = _("Raises accuracy.");
|
||||
static const u8 sInsomniaDescription[] = _("Prevents sleep.");
|
||||
static const u8 sColorChangeDescription[] = _("Changes type to foe's move.");
|
||||
static const u8 sImmunityDescription[] = _("Prevents poisoning.");
|
||||
static const u8 sFlashFireDescription[] = _("Powers up if hit by fire.");
|
||||
static const u8 sShieldDustDescription[] = _("Prevents added effects.");
|
||||
static const u8 sOwnTempoDescription[] = _("Prevents confusion.");
|
||||
static const u8 sSuctionCupsDescription[] = _("Firmly anchors the body.");
|
||||
static const u8 sIntimidateDescription[] = _("Lowers the foe's ATTACK.");
|
||||
static const u8 sShadowTagDescription[] = _("Prevents the foe's escape.");
|
||||
static const u8 sRoughSkinDescription[] = _("Hurts to touch.");
|
||||
static const u8 sWonderGuardDescription[] = _("“Super effective” hits.");
|
||||
static const u8 sLevitateDescription[] = _("Not hit by GROUND attacks.");
|
||||
static const u8 sEffectSporeDescription[] = _("Leaves spores on contact.");
|
||||
static const u8 sSynchronizeDescription[] = _("Passes on status problems.");
|
||||
static const u8 sClearBodyDescription[] = _("Prevents ability reduction.");
|
||||
static const u8 sNaturalCureDescription[] = _("Heals upon switching out.");
|
||||
static const u8 sLightningRodDescription[] = _("Draws electrical moves.");
|
||||
static const u8 sSereneGraceDescription[] = _("Promotes added effects.");
|
||||
static const u8 sSwiftSwimDescription[] = _("Raises SPEED in rain.");
|
||||
static const u8 sChlorophyllDescription[] = _("Raises SPEED in sunshine.");
|
||||
static const u8 sIlluminateDescription[] = _("Encounter rate increases.");
|
||||
static const u8 sTraceDescription[] = _("Copies special ability.");
|
||||
static const u8 sHugePowerDescription[] = _("Raises ATTACK.");
|
||||
static const u8 sPoisonPointDescription[] = _("Poisons foe on contact.");
|
||||
static const u8 sInnerFocusDescription[] = _("Prevents flinching.");
|
||||
static const u8 sMagmaArmorDescription[] = _("Prevents freezing.");
|
||||
static const u8 sWaterVeilDescription[] = _("Prevents burns.");
|
||||
static const u8 sMagnetPullDescription[] = _("Traps STEEL-type POKéMON.");
|
||||
static const u8 sSoundproofDescription[] = _("Avoids sound-based moves.");
|
||||
static const u8 sRainDishDescription[] = _("Slight HP recovery in rain.");
|
||||
static const u8 sSandStreamDescription[] = _("Summons a sandstorm.");
|
||||
static const u8 sPressureDescription[] = _("Raises foe's PP usage.");
|
||||
static const u8 sThickFatDescription[] = _("Heat-and-cold protection.");
|
||||
static const u8 sEarlyBirdDescription[] = _("Awakens quickly from sleep.");
|
||||
static const u8 sFlameBodyDescription[] = _("Burns the foe on contact.");
|
||||
static const u8 sRunAwayDescription[] = _("Makes escaping easier.");
|
||||
static const u8 sKeenEyeDescription[] = _("Prevents loss of accuracy.");
|
||||
static const u8 sHyperCutterDescription[] = _("Prevents ATTACK reduction.");
|
||||
static const u8 sPickupDescription[] = _("May pick up items.");
|
||||
static const u8 sTruantDescription[] = _("Moves only every two turns.");
|
||||
static const u8 sHustleDescription[] = _("Trades accuracy for power.");
|
||||
static const u8 sCuteCharmDescription[] = _("Infatuates on contact.");
|
||||
static const u8 sPlusDescription[] = _("Powers up with MINUS.");
|
||||
static const u8 sMinusDescription[] = _("Powers up with PLUS.");
|
||||
static const u8 sForecastDescription[] = _("Changes with the weather.");
|
||||
static const u8 sStickyHoldDescription[] = _("Prevents item theft.");
|
||||
static const u8 sShedSkinDescription[] = _("Heals the body by shedding.");
|
||||
static const u8 sGutsDescription[] = _("Ups ATTACK if suffering.");
|
||||
static const u8 sMarvelScaleDescription[] = _("Ups DEFENSE if suffering.");
|
||||
static const u8 sLiquidOozeDescription[] = _("Draining causes injury.");
|
||||
static const u8 sOvergrowDescription[] = _("Ups GRASS moves in a pinch.");
|
||||
static const u8 sBlazeDescription[] = _("Ups FIRE moves in a pinch.");
|
||||
static const u8 sTorrentDescription[] = _("Ups WATER moves in a pinch.");
|
||||
static const u8 sSwarmDescription[] = _("Ups BUG moves in a pinch.");
|
||||
static const u8 sRockHeadDescription[] = _("Prevents recoil damage.");
|
||||
static const u8 sDroughtDescription[] = _("Summons sunlight in battle.");
|
||||
static const u8 sArenaTrapDescription[] = _("Prevents fleeing.");
|
||||
static const u8 sVitalSpiritDescription[] = _("Prevents sleep.");
|
||||
static const u8 sWhiteSmokeDescription[] = _("Prevents ability reduction.");
|
||||
static const u8 sPurePowerDescription[] = _("Raises ATTACK.");
|
||||
static const u8 sShellArmorDescription[] = _("Blocks critical hits.");
|
||||
static const u8 sCacophonyDescription[] = _("Avoids sound-based moves.");
|
||||
static const u8 sAirLockDescription[] = _("Negates weather effects.");
|
||||
|
||||
const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT] =
|
||||
{
|
||||
[ABILITY_NONE] = sNoneDescription,
|
||||
[ABILITY_STENCH] = sStenchDescription,
|
||||
[ABILITY_DRIZZLE] = sDrizzleDescription,
|
||||
[ABILITY_SPEED_BOOST] = sSpeedBoostDescription,
|
||||
[ABILITY_BATTLE_ARMOR] = sBattleArmorDescription,
|
||||
[ABILITY_STURDY] = sSturdyDescription,
|
||||
[ABILITY_DAMP] = sDampDescription,
|
||||
[ABILITY_LIMBER] = sLimberDescription,
|
||||
[ABILITY_SAND_VEIL] = sSandVeilDescription,
|
||||
[ABILITY_STATIC] = sStaticDescription,
|
||||
[ABILITY_VOLT_ABSORB] = sVoltAbsorbDescription,
|
||||
[ABILITY_WATER_ABSORB] = sWaterAbsorbDescription,
|
||||
[ABILITY_OBLIVIOUS] = sObliviousDescription,
|
||||
[ABILITY_CLOUD_NINE] = sCloudNineDescription,
|
||||
[ABILITY_COMPOUND_EYES] = sCompoundEyesDescription,
|
||||
[ABILITY_INSOMNIA] = sInsomniaDescription,
|
||||
[ABILITY_COLOR_CHANGE] = sColorChangeDescription,
|
||||
[ABILITY_IMMUNITY] = sImmunityDescription,
|
||||
[ABILITY_FLASH_FIRE] = sFlashFireDescription,
|
||||
[ABILITY_SHIELD_DUST] = sShieldDustDescription,
|
||||
[ABILITY_OWN_TEMPO] = sOwnTempoDescription,
|
||||
[ABILITY_SUCTION_CUPS] = sSuctionCupsDescription,
|
||||
[ABILITY_INTIMIDATE] = sIntimidateDescription,
|
||||
[ABILITY_SHADOW_TAG] = sShadowTagDescription,
|
||||
[ABILITY_ROUGH_SKIN] = sRoughSkinDescription,
|
||||
[ABILITY_WONDER_GUARD] = sWonderGuardDescription,
|
||||
[ABILITY_LEVITATE] = sLevitateDescription,
|
||||
[ABILITY_EFFECT_SPORE] = sEffectSporeDescription,
|
||||
[ABILITY_SYNCHRONIZE] = sSynchronizeDescription,
|
||||
[ABILITY_CLEAR_BODY] = sClearBodyDescription,
|
||||
[ABILITY_NATURAL_CURE] = sNaturalCureDescription,
|
||||
[ABILITY_LIGHTNING_ROD] = sLightningRodDescription,
|
||||
[ABILITY_SERENE_GRACE] = sSereneGraceDescription,
|
||||
[ABILITY_SWIFT_SWIM] = sSwiftSwimDescription,
|
||||
[ABILITY_CHLOROPHYLL] = sChlorophyllDescription,
|
||||
[ABILITY_ILLUMINATE] = sIlluminateDescription,
|
||||
[ABILITY_TRACE] = sTraceDescription,
|
||||
[ABILITY_HUGE_POWER] = sHugePowerDescription,
|
||||
[ABILITY_POISON_POINT] = sPoisonPointDescription,
|
||||
[ABILITY_INNER_FOCUS] = sInnerFocusDescription,
|
||||
[ABILITY_MAGMA_ARMOR] = sMagmaArmorDescription,
|
||||
[ABILITY_WATER_VEIL] = sWaterVeilDescription,
|
||||
[ABILITY_MAGNET_PULL] = sMagnetPullDescription,
|
||||
[ABILITY_SOUNDPROOF] = sSoundproofDescription,
|
||||
[ABILITY_RAIN_DISH] = sRainDishDescription,
|
||||
[ABILITY_SAND_STREAM] = sSandStreamDescription,
|
||||
[ABILITY_PRESSURE] = sPressureDescription,
|
||||
[ABILITY_THICK_FAT] = sThickFatDescription,
|
||||
[ABILITY_EARLY_BIRD] = sEarlyBirdDescription,
|
||||
[ABILITY_FLAME_BODY] = sFlameBodyDescription,
|
||||
[ABILITY_RUN_AWAY] = sRunAwayDescription,
|
||||
[ABILITY_KEEN_EYE] = sKeenEyeDescription,
|
||||
[ABILITY_HYPER_CUTTER] = sHyperCutterDescription,
|
||||
[ABILITY_PICKUP] = sPickupDescription,
|
||||
[ABILITY_TRUANT] = sTruantDescription,
|
||||
[ABILITY_HUSTLE] = sHustleDescription,
|
||||
[ABILITY_CUTE_CHARM] = sCuteCharmDescription,
|
||||
[ABILITY_PLUS] = sPlusDescription,
|
||||
[ABILITY_MINUS] = sMinusDescription,
|
||||
[ABILITY_FORECAST] = sForecastDescription,
|
||||
[ABILITY_STICKY_HOLD] = sStickyHoldDescription,
|
||||
[ABILITY_SHED_SKIN] = sShedSkinDescription,
|
||||
[ABILITY_GUTS] = sGutsDescription,
|
||||
[ABILITY_MARVEL_SCALE] = sMarvelScaleDescription,
|
||||
[ABILITY_LIQUID_OOZE] = sLiquidOozeDescription,
|
||||
[ABILITY_OVERGROW] = sOvergrowDescription,
|
||||
[ABILITY_BLAZE] = sBlazeDescription,
|
||||
[ABILITY_TORRENT] = sTorrentDescription,
|
||||
[ABILITY_SWARM] = sSwarmDescription,
|
||||
[ABILITY_ROCK_HEAD] = sRockHeadDescription,
|
||||
[ABILITY_DROUGHT] = sDroughtDescription,
|
||||
[ABILITY_ARENA_TRAP] = sArenaTrapDescription,
|
||||
[ABILITY_VITAL_SPIRIT] = sVitalSpiritDescription,
|
||||
[ABILITY_WHITE_SMOKE] = sWhiteSmokeDescription,
|
||||
[ABILITY_PURE_POWER] = sPurePowerDescription,
|
||||
[ABILITY_SHELL_ARMOR] = sShellArmorDescription,
|
||||
[ABILITY_CACOPHONY] = sCacophonyDescription,
|
||||
[ABILITY_AIR_LOCK] = sAirLockDescription,
|
||||
};
|
||||
|
||||
const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1] =
|
||||
{
|
||||
[ABILITY_NONE] = _("-------"),
|
||||
[ABILITY_STENCH] = _("STENCH"),
|
||||
[ABILITY_DRIZZLE] = _("DRIZZLE"),
|
||||
[ABILITY_SPEED_BOOST] = _("SPEED BOOST"),
|
||||
[ABILITY_BATTLE_ARMOR] = _("BATTLE ARMOR"),
|
||||
[ABILITY_STURDY] = _("STURDY"),
|
||||
[ABILITY_DAMP] = _("DAMP"),
|
||||
[ABILITY_LIMBER] = _("LIMBER"),
|
||||
[ABILITY_SAND_VEIL] = _("SAND VEIL"),
|
||||
[ABILITY_STATIC] = _("STATIC"),
|
||||
[ABILITY_VOLT_ABSORB] = _("VOLT ABSORB"),
|
||||
[ABILITY_WATER_ABSORB] = _("WATER ABSORB"),
|
||||
[ABILITY_OBLIVIOUS] = _("OBLIVIOUS"),
|
||||
[ABILITY_CLOUD_NINE] = _("CLOUD NINE"),
|
||||
[ABILITY_COMPOUND_EYES] = _("COMPOUNDEYES"),
|
||||
[ABILITY_INSOMNIA] = _("INSOMNIA"),
|
||||
[ABILITY_COLOR_CHANGE] = _("COLOR CHANGE"),
|
||||
[ABILITY_IMMUNITY] = _("IMMUNITY"),
|
||||
[ABILITY_FLASH_FIRE] = _("FLASH FIRE"),
|
||||
[ABILITY_SHIELD_DUST] = _("SHIELD DUST"),
|
||||
[ABILITY_OWN_TEMPO] = _("OWN TEMPO"),
|
||||
[ABILITY_SUCTION_CUPS] = _("SUCTION CUPS"),
|
||||
[ABILITY_INTIMIDATE] = _("INTIMIDATE"),
|
||||
[ABILITY_SHADOW_TAG] = _("SHADOW TAG"),
|
||||
[ABILITY_ROUGH_SKIN] = _("ROUGH SKIN"),
|
||||
[ABILITY_WONDER_GUARD] = _("WONDER GUARD"),
|
||||
[ABILITY_LEVITATE] = _("LEVITATE"),
|
||||
[ABILITY_EFFECT_SPORE] = _("EFFECT SPORE"),
|
||||
[ABILITY_SYNCHRONIZE] = _("SYNCHRONIZE"),
|
||||
[ABILITY_CLEAR_BODY] = _("CLEAR BODY"),
|
||||
[ABILITY_NATURAL_CURE] = _("NATURAL CURE"),
|
||||
[ABILITY_LIGHTNING_ROD] = _("LIGHTNINGROD"),
|
||||
[ABILITY_SERENE_GRACE] = _("SERENE GRACE"),
|
||||
[ABILITY_SWIFT_SWIM] = _("SWIFT SWIM"),
|
||||
[ABILITY_CHLOROPHYLL] = _("CHLOROPHYLL"),
|
||||
[ABILITY_ILLUMINATE] = _("ILLUMINATE"),
|
||||
[ABILITY_TRACE] = _("TRACE"),
|
||||
[ABILITY_HUGE_POWER] = _("HUGE POWER"),
|
||||
[ABILITY_POISON_POINT] = _("POISON POINT"),
|
||||
[ABILITY_INNER_FOCUS] = _("INNER FOCUS"),
|
||||
[ABILITY_MAGMA_ARMOR] = _("MAGMA ARMOR"),
|
||||
[ABILITY_WATER_VEIL] = _("WATER VEIL"),
|
||||
[ABILITY_MAGNET_PULL] = _("MAGNET PULL"),
|
||||
[ABILITY_SOUNDPROOF] = _("SOUNDPROOF"),
|
||||
[ABILITY_RAIN_DISH] = _("RAIN DISH"),
|
||||
[ABILITY_SAND_STREAM] = _("SAND STREAM"),
|
||||
[ABILITY_PRESSURE] = _("PRESSURE"),
|
||||
[ABILITY_THICK_FAT] = _("THICK FAT"),
|
||||
[ABILITY_EARLY_BIRD] = _("EARLY BIRD"),
|
||||
[ABILITY_FLAME_BODY] = _("FLAME BODY"),
|
||||
[ABILITY_RUN_AWAY] = _("RUN AWAY"),
|
||||
[ABILITY_KEEN_EYE] = _("KEEN EYE"),
|
||||
[ABILITY_HYPER_CUTTER] = _("HYPER CUTTER"),
|
||||
[ABILITY_PICKUP] = _("PICKUP"),
|
||||
[ABILITY_TRUANT] = _("TRUANT"),
|
||||
[ABILITY_HUSTLE] = _("HUSTLE"),
|
||||
[ABILITY_CUTE_CHARM] = _("CUTE CHARM"),
|
||||
[ABILITY_PLUS] = _("PLUS"),
|
||||
[ABILITY_MINUS] = _("MINUS"),
|
||||
[ABILITY_FORECAST] = _("FORECAST"),
|
||||
[ABILITY_STICKY_HOLD] = _("STICKY HOLD"),
|
||||
[ABILITY_SHED_SKIN] = _("SHED SKIN"),
|
||||
[ABILITY_GUTS] = _("GUTS"),
|
||||
[ABILITY_MARVEL_SCALE] = _("MARVEL SCALE"),
|
||||
[ABILITY_LIQUID_OOZE] = _("LIQUID OOZE"),
|
||||
[ABILITY_OVERGROW] = _("OVERGROW"),
|
||||
[ABILITY_BLAZE] = _("BLAZE"),
|
||||
[ABILITY_TORRENT] = _("TORRENT"),
|
||||
[ABILITY_SWARM] = _("SWARM"),
|
||||
[ABILITY_ROCK_HEAD] = _("ROCK HEAD"),
|
||||
[ABILITY_DROUGHT] = _("DROUGHT"),
|
||||
[ABILITY_ARENA_TRAP] = _("ARENA TRAP"),
|
||||
[ABILITY_VITAL_SPIRIT] = _("VITAL SPIRIT"),
|
||||
[ABILITY_WHITE_SMOKE] = _("WHITE SMOKE"),
|
||||
[ABILITY_PURE_POWER] = _("PURE POWER"),
|
||||
[ABILITY_SHELL_ARMOR] = _("SHELL ARMOR"),
|
||||
[ABILITY_CACOPHONY] = _("CACOPHONY"),
|
||||
[ABILITY_AIR_LOCK] = _("AIR LOCK"),
|
||||
};
|
||||
+12
-12
@@ -1467,7 +1467,7 @@ const struct SpriteTemplate gUnknown_825DEF0[] =
|
||||
{
|
||||
.tileTag = SPRITE_INVALID_TAG,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_824F018,
|
||||
.oam = &gOamData_824F018,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_8234698,
|
||||
.affineAnims = gSpriteAffineAnimTable_82348C8,
|
||||
@@ -1476,16 +1476,16 @@ const struct SpriteTemplate gUnknown_825DEF0[] =
|
||||
{
|
||||
.tileTag = SPRITE_INVALID_TAG,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_824F010,
|
||||
.oam = &gOamData_824F010,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_82346B8,
|
||||
.affineAnims = gSpriteAffineAnimTable_8234944,
|
||||
.callback = oac_poke_opponent,
|
||||
.callback = SpriteCB_WildMon,
|
||||
},
|
||||
{
|
||||
.tileTag = SPRITE_INVALID_TAG,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_824F018,
|
||||
.oam = &gOamData_824F018,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_82346D8,
|
||||
.affineAnims = gSpriteAffineAnimTable_82348C8,
|
||||
@@ -1494,11 +1494,11 @@ const struct SpriteTemplate gUnknown_825DEF0[] =
|
||||
{
|
||||
.tileTag = SPRITE_INVALID_TAG,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_824F010,
|
||||
.oam = &gOamData_824F010,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_82346F8,
|
||||
.affineAnims = gSpriteAffineAnimTable_8234944,
|
||||
.callback = oac_poke_opponent,
|
||||
.callback = SpriteCB_WildMon,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1507,7 +1507,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
|
||||
{
|
||||
.tileTag = SPRITE_INVALID_TAG,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_824F018,
|
||||
.oam = &gOamData_824F018,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_8234718,
|
||||
.affineAnims = gSpriteAffineAnimTable_82348C8,
|
||||
@@ -1516,7 +1516,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
|
||||
{
|
||||
.tileTag = SPRITE_INVALID_TAG,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_824F018,
|
||||
.oam = &gOamData_824F018,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_8234740,
|
||||
.affineAnims = gSpriteAffineAnimTable_82348C8,
|
||||
@@ -1525,7 +1525,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
|
||||
{
|
||||
.tileTag = SPRITE_INVALID_TAG,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_824F018,
|
||||
.oam = &gOamData_824F018,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_82347A8,
|
||||
.affineAnims = gSpriteAffineAnimTable_82348C8,
|
||||
@@ -1534,7 +1534,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
|
||||
{
|
||||
.tileTag = SPRITE_INVALID_TAG,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_824F018,
|
||||
.oam = &gOamData_824F018,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_82347C8,
|
||||
.affineAnims = gSpriteAffineAnimTable_82348C8,
|
||||
@@ -1543,7 +1543,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
|
||||
{
|
||||
.tileTag = SPRITE_INVALID_TAG,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_824F018,
|
||||
.oam = &gOamData_824F018,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_8234768,
|
||||
.affineAnims = gSpriteAffineAnimTable_82348C8,
|
||||
@@ -1552,7 +1552,7 @@ const struct SpriteTemplate gUnknown_825DF50[] =
|
||||
{
|
||||
.tileTag = SPRITE_INVALID_TAG,
|
||||
.paletteTag = 0,
|
||||
.oam = &gUnknown_824F018,
|
||||
.oam = &gOamData_824F018,
|
||||
.anims = NULL,
|
||||
.images = gUnknown_8234788,
|
||||
.affineAnims = gSpriteAffineAnimTable_82348C8,
|
||||
|
||||
+1
-1
@@ -1214,7 +1214,7 @@ static void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId)
|
||||
case 1:
|
||||
if (BT_IsDone())
|
||||
{
|
||||
SetMainCallback2(sub_800FD9C);
|
||||
SetMainCallback2(CB2_InitBattle);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
break;
|
||||
|
||||
+1
-1
@@ -1115,7 +1115,7 @@ void sub_815E124(u8 taskId)
|
||||
{
|
||||
gMain.savedCallback = sub_815E114;
|
||||
CleanupOverworldWindowsAndTilemaps();
|
||||
SetMainCallback2(sub_800FD9C);
|
||||
SetMainCallback2(CB2_InitBattle);
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-28
@@ -5,35 +5,8 @@
|
||||
.include "text.o"
|
||||
.include "sprite.o"
|
||||
.include "link.o"
|
||||
|
||||
.align 4
|
||||
gPreBattleCallback1: @ 3004F80
|
||||
.space 0x4
|
||||
|
||||
gBattleMainFunc: @ 3004F84
|
||||
.space 0xC
|
||||
|
||||
gBattleResults: @ 3004F90
|
||||
.space 0x44
|
||||
|
||||
gLeveledUpInBattle: @ 3004FD4
|
||||
.space 0xC
|
||||
|
||||
gBattlerControllerFuncs: @ 3004FE0
|
||||
.space 0x10
|
||||
|
||||
gHealthboxSpriteIds: @ 3004FF0
|
||||
.space 0x4
|
||||
|
||||
gMultiUsePlayerCursor: @ 3004FF4
|
||||
.space 0x4
|
||||
|
||||
gNumberOfMovesToChoose: @ 3004FF8
|
||||
.space 0x4
|
||||
|
||||
gUnknown_3004FFC: @ 3004FFC
|
||||
.space 0x4
|
||||
|
||||
.include "battle_main.o"
|
||||
.include "random.o"
|
||||
.include "load_save.o"
|
||||
|
||||
|
||||
+3
-3
@@ -50,10 +50,10 @@ gBattle_WIN0H: @ 2022984
|
||||
gBattle_WIN0V: @ 2022986
|
||||
.space 0x2
|
||||
|
||||
gUnknown_2022988: @ 2022988
|
||||
gBattle_WIN1H: @ 2022988
|
||||
.space 0x2
|
||||
|
||||
gUnknown_202298A: @ 202298A
|
||||
gBattle_WIN1V: @ 202298A
|
||||
.space 0x2
|
||||
|
||||
gDisplayedStringBattle: @ 202298C
|
||||
@@ -281,7 +281,7 @@ gPauseCounterBattle: @ 2023E7C
|
||||
gPaydayMoney: @ 2023E7E
|
||||
.space 0x2
|
||||
|
||||
gUnknown_2023E80: @ 2023E80
|
||||
gRandomTurnNumber: @ 2023E80
|
||||
.space 0x2
|
||||
|
||||
gBattleCommunication: @ 2023E82
|
||||
|
||||
Reference in New Issue
Block a user