summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes17
-rw-r--r--asm/battle_2.s32
-rw-r--r--constants/battle.inc46
-rw-r--r--data/battle_anim_80CA710.s2
-rw-r--r--data/battle_anim_scripts.s155
-rw-r--r--data/battle_scripts_1.s84
-rw-r--r--data/battle_scripts_2.s8
-rw-r--r--include/battle.h46
-rw-r--r--include/unknown_task.h18
-rw-r--r--src/battle/battle_2.c25
-rw-r--r--src/battle/battle_3.c10
-rw-r--r--src/battle/battle_4.c338
-rw-r--r--src/battle/battle_7.c8
-rw-r--r--src/battle/battle_transition.c2
-rwxr-xr-xsrc/battle_anim_80CA710.c17
-rw-r--r--src/engine/trainer_card.c17
-rw-r--r--src/field/field_screen_effect.c14
-rw-r--r--src/unknown_task.c16
18 files changed, 378 insertions, 477 deletions
diff --git a/.gitattributes b/.gitattributes
index b447e32c3..3bbd49fbf 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -16,3 +16,20 @@ Makefile text eol=lf
*.h linguist-language=C
*.inc linguist-language=Assembly
+docs/* linguist-vendored
+# most of the assembly count comes from huge amounts of script include files: it is not fair to count these as assembly. as such, we will instead vendor these. Note that they do take up the majority of the repository.
+data/maps/** linguist-vendored
+data/scripts/** linguist-vendored
+data/battle_ai_scripts.s linguist-vendored
+data/battle_anim_scripts.s linguist-vendored
+data/battle_scripts_1.s linguist-vendored
+data/battle_scripts_2.s linguist-vendored
+data/contest_ai_scripts.s linguist-vendored
+data/field_move_scripts.inc linguist-vendored
+data/field_effect_scripts.s linguist-vendored
+data/event_scripts.s linguist-vendored
+data-de/maps/** linguist-vendored
+data-de/event_scripts.s linguist-vendored
+data-de/field_move_scripts.s linguist-vendored
+# sound data
+sound/songs/*.s linguist-vendored
diff --git a/asm/battle_2.s b/asm/battle_2.s
index d15bc6826..b325276fc 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -2591,7 +2591,7 @@ _080137FA:
lsls r0, 29
cmp r0, 0
blt _0801387C
- ldr r0, _08013878 @ =gUnknown_081D94DA
+ ldr r0, _08013878 @ =BattleScript_FocusPunchSetUp
bl b_call_bc_move_exec
b _080138BE
.align 2, 0
@@ -2605,7 +2605,7 @@ _08013868: .4byte gChosenMovesByBanks
_0801386C: .4byte gBattleMons
_08013870: .4byte gDisableStructs
_08013874: .4byte gProtectStructs
-_08013878: .4byte gUnknown_081D94DA
+_08013878: .4byte BattleScript_FocusPunchSetUp
_0801387C:
ldrb r0, [r4]
ldrb r2, [r7]
@@ -4414,7 +4414,7 @@ sub_80147A0: @ 80147A0
cmp r3, 0xC
bhi _08014830
ldr r2, _08014828 @ =gBattlescriptCurrInstr
- ldr r1, _0801482C @ =gUnknown_081D9E48
+ ldr r1, _0801482C @ =gBattlescriptsForBallThrow
ldrh r0, [r5]
lsls r0, 2
adds r0, r1
@@ -4432,7 +4432,7 @@ _0801481C: .4byte gDisableStructs
_08014820: .4byte gLastUsedItem
_08014824: .4byte gBattleBufferB
_08014828: .4byte gBattlescriptCurrInstr
-_0801482C: .4byte gUnknown_081D9E48
+_0801482C: .4byte gBattlescriptsForBallThrow
_08014830:
adds r0, r3, 0
subs r0, 0x50
@@ -4441,11 +4441,11 @@ _08014830:
cmp r0, 0x1
bhi _0801484C
ldr r0, _08014844 @ =gBattlescriptCurrInstr
- ldr r1, _08014848 @ =gUnknown_081D9E94
+ ldr r1, _08014848 @ =gBattlescriptsForRunningByItem
b _0801485C
.align 2, 0
_08014844: .4byte gBattlescriptCurrInstr
-_08014848: .4byte gUnknown_081D9E94
+_08014848: .4byte gBattlescriptsForRunningByItem
_0801484C:
ldrb r0, [r4]
bl GetBankSide
@@ -5071,7 +5071,7 @@ sub_8014D50: @ 8014D50
ldr r0, _08014D88 @ =gUnknown_030042A0
strh r1, [r0]
ldr r1, _08014D8C @ =gBattlescriptCurrInstr
- ldr r0, _08014D90 @ =gUnknown_081D9E98
+ ldr r0, _08014D90 @ =gBattlescriptsForSafariActions
ldr r0, [r0]
str r0, [r1]
ldr r1, _08014D94 @ =gFightStateTracker
@@ -5085,7 +5085,7 @@ _08014D80: .4byte gCurrentMoveTurn
_08014D84: .4byte gUnknown_030042A4
_08014D88: .4byte gUnknown_030042A0
_08014D8C: .4byte gBattlescriptCurrInstr
-_08014D90: .4byte gUnknown_081D9E98
+_08014D90: .4byte gBattlescriptsForSafariActions
_08014D94: .4byte gFightStateTracker
thumb_func_end sub_8014D50
@@ -5111,7 +5111,7 @@ sub_8014D98: @ 8014D98
movs r0, 0x5
strh r0, [r1]
ldr r1, _08014DEC @ =gBattlescriptCurrInstr
- ldr r0, _08014DF0 @ =gUnknown_081D9E48
+ ldr r0, _08014DF0 @ =gBattlescriptsForBallThrow
ldr r0, [r0, 0x14]
str r0, [r1]
ldr r1, _08014DF4 @ =gFightStateTracker
@@ -5127,7 +5127,7 @@ _08014DE0: .4byte gUnknown_030042A0
_08014DE4: .4byte gNumSafariBalls
_08014DE8: .4byte gLastUsedItem
_08014DEC: .4byte gBattlescriptCurrInstr
-_08014DF0: .4byte gUnknown_081D9E48
+_08014DF0: .4byte gBattlescriptsForBallThrow
_08014DF4: .4byte gFightStateTracker
thumb_func_end sub_8014D98
@@ -5208,7 +5208,7 @@ _08014E9A:
strb r0, [r4]
_08014E9C:
ldr r1, _08014EB0 @ =gBattlescriptCurrInstr
- ldr r0, _08014EB4 @ =gUnknown_081D9E98
+ ldr r0, _08014EB4 @ =gBattlescriptsForSafariActions
ldr r0, [r0, 0x8]
str r0, [r1]
ldr r1, _08014EB8 @ =gFightStateTracker
@@ -5219,7 +5219,7 @@ _08014E9C:
bx r0
.align 2, 0
_08014EB0: .4byte gBattlescriptCurrInstr
-_08014EB4: .4byte gUnknown_081D9E98
+_08014EB4: .4byte gBattlescriptsForSafariActions
_08014EB8: .4byte gFightStateTracker
thumb_func_end sub_8014DF8
@@ -5299,7 +5299,7 @@ _08014F54:
strb r0, [r1, 0x5]
_08014F5A:
ldr r1, _08014F74 @ =gBattlescriptCurrInstr
- ldr r0, _08014F78 @ =gUnknown_081D9E98
+ ldr r0, _08014F78 @ =gBattlescriptsForSafariActions
ldr r0, [r0, 0x4]
str r0, [r1]
ldr r1, _08014F7C @ =gFightStateTracker
@@ -5311,7 +5311,7 @@ _08014F5A:
.align 2, 0
_08014F70: .4byte gBattleCommunication
_08014F74: .4byte gBattlescriptCurrInstr
-_08014F78: .4byte gUnknown_081D9E98
+_08014F78: .4byte gBattlescriptsForSafariActions
_08014F7C: .4byte gFightStateTracker
thumb_func_end sub_8014EBC
@@ -5373,7 +5373,7 @@ sub_8014FBC: @ 8014FBC
movs r0, 0xFF
strb r0, [r1, 0x4]
ldr r1, _08015024 @ =gBattlescriptCurrInstr
- ldr r0, _08015028 @ =gUnknown_081D9E98
+ ldr r0, _08015028 @ =gBattlescriptsForSafariActions
ldr r0, [r0, 0xC]
str r0, [r1]
ldr r1, _0801502C @ =gFightStateTracker
@@ -5392,7 +5392,7 @@ _08015018: .4byte gUnknown_030042A0
_0801501C: .4byte gBattleTextBuff1
_08015020: .4byte gBattlePartyID
_08015024: .4byte gBattlescriptCurrInstr
-_08015028: .4byte gUnknown_081D9E98
+_08015028: .4byte gBattlescriptsForSafariActions
_0801502C: .4byte gFightStateTracker
_08015030: .4byte gUnknown_02024A76
thumb_func_end sub_8014FBC
diff --git a/constants/battle.inc b/constants/battle.inc
index c6094b15f..94b7a6d48 100644
--- a/constants/battle.inc
+++ b/constants/battle.inc
@@ -53,3 +53,49 @@
enum SP_DEFENSE
enum ACCURACY
enum EVASION
+
+@ status animation table
+.equiv B_ANIM_STATUS_PSN, 0x0
+.equiv B_ANIM_STATUS_CONFUSION, 0x1
+.equiv B_ANIM_STATUS_BRN, 0x2
+.equiv B_ANIM_STATUS_INFATUATION, 0x3
+.equiv B_ANIM_STATUS_SLP, 0x4
+.equiv B_ANIM_STATUS_PRZ, 0x5
+.equiv B_ANIM_STATUS_FRZ, 0x6
+.equiv B_ANIM_STATUS_CURSED, 0x7
+.equiv B_ANIM_STATUS_NIGHTMARE, 0x8
+.equiv B_ANIM_STATUS_WRAPPED, 0x9
+
+@ general animation table
+.equiv B_ANIM_CASTFORM_CHANGE, 0x0
+.equiv B_ANIM_STATS_CHANGE, 0x1
+.equiv B_ANIM_SUBSTITUTE_FADE, 0x2
+.equiv B_ANIM_SUBSTITUTE_APPEAR, 0x3
+.equiv B_ANIM_POKEBLOCK_THROW, 0x4
+.equiv B_ANIM_ITEM_KNOCKOFF, 0x5
+.equiv B_ANIM_TURN_TRAP, 0x6
+.equiv B_ANIM_ITEM_EFFECT, 0x7
+.equiv B_ANIM_SMOKEBALL_ESCAPE, 0x8
+.equiv B_ANIM_HANGED_ON, 0x9
+.equiv B_ANIM_RAIN_CONTINUES, 0xA
+.equiv B_ANIM_SUN_CONTINUES, 0xB
+.equiv B_ANIM_SANDSTORM_CONTINUES, 0xC
+.equiv B_ANIM_HAIL_CONTINUES, 0xD
+.equiv B_ANIM_LEECH_SEED_DRAIN, 0xE
+.equiv B_ANIM_MON_HIT, 0xF
+.equiv B_ANIM_ITEM_STEAL, 0x10
+.equiv B_ANIM_SNATCH_MOVE, 0x11
+.equiv B_ANIM_FUTURE_SIGHT_HIT, 0x12
+.equiv B_ANIM_DOOM_DESIRE_HIT, 0x13
+.equiv B_ANIM_FOCUS_PUNCH_SET_UP, 0x14
+.equiv B_ANIM_INGRAIN_HEAL, 0x15
+.equiv B_ANIM_WISH_HEAL, 0x16
+
+@ special animation table
+.equiv B_ANIM_LVL_UP, 0x0
+.equiv B_ANIM_SWITCH_OUT_PLAYER_MON, 0x1
+.equiv B_ANIM_SWITCH_OUT_OPPONENT_MON, 0x2
+.equiv B_ANIM_BALL_THROW, 0x3
+.equiv B_ANIM_SAFARI_BALL_THROW, 0x4
+.equiv B_ANIM_SUBSTITUTE_TO_MON, 0x5
+.equiv B_ANIM_MON_TO_SUBSTITUTE, 0x6
diff --git a/data/battle_anim_80CA710.s b/data/battle_anim_80CA710.s
index 72ed3cffa..24881ab7c 100644
--- a/data/battle_anim_80CA710.s
+++ b/data/battle_anim_80CA710.s
@@ -1000,7 +1000,7 @@ gSpriteAnimTable_83D6E94:: @ 83D6E94
.4byte gSpriteAnim_83D6E80
.align 2
-gBattleAnimSpriteTemplate_83D6E98:: @ 83D6E98
+gBattleAnimSpriteTemplate_EndureFlame:: @ 83D6E98
spr_template 10184, 10184, gOamData_837DF74, gSpriteAnimTable_83D6E94, NULL, gDummySpriteAffineAnimTable, sub_80CDF0C
.align 2
diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s
index 74205e66c..08ef8be32 100644
--- a/data/battle_anim_scripts.s
+++ b/data/battle_anim_scripts.s
@@ -382,40 +382,40 @@ gBattleAnims_StatusConditions:: @ 81C76F8
.4byte StatusCondition_Nightmare
.align 2
-gBattleAnims_Unknown1:: @ 81C771C
- .4byte Unknown_81D63B4
- .4byte Unknown_81D63EA
- .4byte Unknown_81D63F3
- .4byte Unknown_81D6430
- .4byte Unknown_81D6438
- .4byte Unknown_81D647E
- .4byte Unknown_81D6489
- .4byte Unknown_81D661C
- .4byte Unknown_81D6690
- .4byte Unknown_81D676E
- .4byte Unknown_Weather_Rain
- .4byte Unknown_Weather_HarshSunlight
- .4byte Unknown_Weather_Sandstorm
- .4byte Unknown_Weather_Hail
- .4byte Unknown_81D6813
- .4byte Unknown_81D6821
- .4byte Unknown_81D6852
- .4byte Unknown_81D6877
- .4byte Unknown_81D68D5
- .4byte Unknown_81D6934
- .4byte Unknown_81D69F9
- .4byte Unknown_81D6A39
- .4byte Unknown_81D6A7C
+gBattleAnims_General:: @ 81C771C
+ .4byte General_CastformChange
+ .4byte General_StatsChange
+ .4byte General_SubstituteFade
+ .4byte General_SubstituteAppear
+ .4byte General_PokeblockThrow
+ .4byte General_ItemKnockoff
+ .4byte General_TurnTrap
+ .4byte General_ItemEffect
+ .4byte General_SmokeballEscape
+ .4byte General_HangedOn
+ .4byte General_Rain
+ .4byte General_Sun
+ .4byte General_Sandstorm
+ .4byte General_Hail
+ .4byte General_LeechSeedDrain
+ .4byte General_MonHit
+ .4byte General_ItemSteal
+ .4byte General_SnatchMove
+ .4byte General_FutureSightHit
+ .4byte General_DoomDesireHit
+ .4byte General_FocusPunchSetUp
+ .4byte General_IngrainHeal
+ .4byte General_WishHeal
.align 2
-gBattleAnims_Unknown2:: @ 81C7778
- .4byte Unknown_81D6AF6
- .4byte Unknown_81D6B17
- .4byte Unknown_81D6B28
- .4byte Unknown_81D6B39
- .4byte Unknown_81D6B8D
- .4byte Unknown_81D6BA6
- .4byte Unknown_81D6BB0
+gBattleAnims_Special:: @ 81C7778
+ .4byte Special_LevelUp
+ .4byte Special_SwitchOutPlayerMon
+ .4byte Special_SwitchOutOpponentMon
+ .4byte Special_BallThrow
+ .4byte Special_SafariBallThrow
+ .4byte Special_SubstituteToMon
+ .4byte Special_MonToSubstitute
Move_POUND: @ 81C7794
loadsprite 10135
@@ -3182,25 +3182,26 @@ Move_DESTINY_BOND: @ 81CBA2C
Move_ENDURE: @ 81CBA87
loadsprite 10184
panse_19 SE_W082, 192
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
createtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 31
createtask sub_80A7FA0, 2, 0, 1, 0, 32, 1
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
- call _81CBAC7
+ call EndureFlamesAnim
wait
end
-_81CBAC7:
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, -24, 26, 2
+
+EndureFlamesAnim:
+ sprite gBattleAnimSpriteTemplate_EndureFlame, 2, 0, -24, 26, 2
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, 14, 28, 1
+ sprite gBattleAnimSpriteTemplate_EndureFlame, 2, 0, 14, 28, 1
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, -5, 10, 2
+ sprite gBattleAnimSpriteTemplate_EndureFlame, 2, 0, -5, 10, 2
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, 28, 26, 3
+ sprite gBattleAnimSpriteTemplate_EndureFlame, 2, 0, 28, 26, 3
pause 4
- sprite gBattleAnimSpriteTemplate_83D6E98, 2, 0, -12, 0, 1
+ sprite gBattleAnimSpriteTemplate_EndureFlame, 2, 0, -12, 0, 1
ret
Move_CHARM: @ 81CBB1B
@@ -7348,13 +7349,13 @@ Move_LICK: @ 81D1B32
Move_FOCUS_ENERGY: @ 81D1B59
loadsprite 10184
panse_19 SE_W082, 192
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
createtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 32767
createtask sub_80A7FA0, 2, 0, 1, 0, 32, 1
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
- call _81CBAC7
+ call EndureFlamesAnim
wait
end
@@ -10287,7 +10288,7 @@ StatusCondition_Nightmare: @ 81D638F
clearmonbg 3
end
-Unknown_81D63B4: @ 81D63B4
+General_CastformChange: @ 81D63B4
createtask c3_80DFBE4, 2
jumpvareq 7, 1, _81D63E0
jump _81D63C8
@@ -10303,12 +10304,12 @@ _81D63E0:
createtask sub_812DB58, 2, 1
end
-Unknown_81D63EA: @ 81D63EA
+General_StatsChange: @ 81D63EA
createtask sub_807BB88, 5
wait
end
-Unknown_81D63F3: @ 81D63F3
+General_SubstituteFade: @ 81D63F3
monbg 0
createtask sub_81416C4, 5
createtask sub_80E2A38, 10, 2, 0, 0, 16, 32767
@@ -10321,11 +10322,11 @@ Unknown_81D63F3: @ 81D63F3
createtask sub_814151C, 2, 1
end
-Unknown_81D6430: @ 81D6430
+General_SubstituteAppear: @ 81D6430
createtask sub_81312E4, 2
end
-Unknown_81D6438: @ 81D6438
+General_PokeblockThrow: @ 81D6438
createtask sub_8141D7C, 2
createtask sub_8141BD4, 2
pause 0
@@ -10338,12 +10339,12 @@ Unknown_81D6438: @ 81D6438
createtask sub_8141C08, 2
end
-Unknown_81D647E: @ 81D647E
+General_ItemKnockoff: @ 81D647E
loadsprite 10224
sprite gBattleAnimSpriteTemplate_83D6734, 130
end
-Unknown_81D6489: @ 81D6489
+General_TurnTrap: @ 81D6489
createtask sub_8141DAC, 5
jumpvareq 0, 1, _81D64FD
jumpvareq 0, 2, _81D6522
@@ -10418,7 +10419,7 @@ _81D65D3:
stopsound
end
-Unknown_81D661C: @ 81D661C
+General_ItemEffect: @ 81D661C
loadsprite 10203
loadsprite 10049
pause 0
@@ -10440,7 +10441,7 @@ Unknown_81D661C: @ 81D661C
wait
end
-Unknown_81D6690: @ 81D6690
+General_SmokeballEscape: @ 81D6690
loadsprite 10242
monbg 0
setalpha 12, 4
@@ -10479,7 +10480,7 @@ Unknown_81D6690: @ 81D6690
blendoff
end
-Unknown_81D676E: @ 81D676E
+General_HangedOn: @ 81D676E
sprite gBattleAnimSpriteTemplate_83DB3C4, 0, 2, 7, 0, 9, 31
panse_19 SE_W082, 192
createtask sub_812FC68, 5, 30, 128, 0, 1, 2, 0, 1
@@ -10490,7 +10491,7 @@ Unknown_81D676E: @ 81D676E
sprite gBattleAnimSpriteTemplate_83C1FE0, 0, 0, 0, 15
end
-Unknown_Weather_Rain: @ 81D67BB
+General_Rain: @ 81D67BB
loadsprite 10115
panse_19 SE_W240, 192
createtask sub_80E2A38, 10, 1921, 2, 0, 4, 0
@@ -10503,21 +10504,21 @@ Unknown_Weather_Rain: @ 81D67BB
wait
end
-Unknown_Weather_HarshSunlight: @ 81D6804
+General_Sun: @ 81D6804
jump Move_SUNNY_DAY
-Unknown_Weather_Sandstorm: @ 81D6809
+General_Sandstorm: @ 81D6809
jump Move_SANDSTORM
-Unknown_Weather_Hail: @ 81D680E
+General_Hail: @ 81D680E
jump Move_HAIL
-Unknown_81D6813: @ 81D6813
+General_LeechSeedDrain: @ 81D6813
createtask sub_8141E10, 5
pause 0
jump Move_ABSORB
-Unknown_81D6821: @ 81D6821
+General_MonHit: @ 81D6821
loadsprite 10135
monbg 1
setalpha 12, 8
@@ -10529,7 +10530,7 @@ Unknown_81D6821: @ 81D6821
blendoff
end
-Unknown_81D6852: @ 81D6852
+General_ItemSteal: @ 81D6852
loadsprite 10224
createtask sub_80E42D0, 2
createtask sub_8141808, 2
@@ -10537,7 +10538,7 @@ Unknown_81D6852: @ 81D6852
sprite gBattleAnimSpriteTemplate_83D677C, 2, 0, -5, 10, 2, -1
end
-Unknown_81D6877: @ 81D6877
+General_SnatchMove: @ 81D6877
loadsprite 10224
createtask sub_80E4234, 2
call Unknown_81D6AB6
@@ -10560,7 +10561,7 @@ _81D68C5:
createtask sub_8131FFC, 2
jump _81D68AE
-Unknown_81D68D5: @ 81D68D5
+General_FutureSightHit: @ 81D68D5
createtask sub_80E42B0, 2
monbg 3
panse_19 SE_W060, 192
@@ -10580,7 +10581,7 @@ Unknown_81D68D5: @ 81D68D5
call Unknown_81D61F3
end
-Unknown_81D6934: @ 81D6934
+General_DoomDesireHit: @ 81D6934
createtask sub_80E42B0, 2
loadsprite 10198
sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 0, 16, 32767
@@ -10614,20 +10615,20 @@ Unknown_81D6934: @ 81D6934
wait
end
-Unknown_81D69F9: @ 81D69F9
+General_FocusPunchSetUp: @ 81D69F9
loadsprite 10184
panse_19 SE_W082, 192
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
createtask sub_80E1F8C, 2, 2, 2, 2, 0, 11, 31
createtask sub_80A7FA0, 2, 0, 1, 0, 32, 1
- call _81CBAC7
+ call EndureFlamesAnim
pause 8
- call _81CBAC7
+ call EndureFlamesAnim
wait
end
-Unknown_81D6A39: @ 81D6A39
+General_IngrainHeal: @ 81D6A39
loadsprite 10147
loadsprite 10031
monbg 3
@@ -10646,7 +10647,7 @@ Unknown_81D6A39: @ 81D6A39
blendoff
end
-Unknown_81D6A7C: @ 81D6A7C
+General_WishHeal: @ 81D6A7C
loadsprite 10031
loadsprite 10049
sprite gBattleAnimSpriteTemplate_83DB3C4, 2, 1, 3, 0, 10, 0
@@ -10681,7 +10682,7 @@ _81D6AE7:
wait
jump _81D6AE5
-Unknown_81D6AF6: @ 81D6AF6
+Special_LevelUp: @ 81D6AF6
panse_19 SE_EXPMAX, 0
createtask sub_813F4EC, 2
pause 0
@@ -10690,19 +10691,19 @@ Unknown_81D6AF6: @ 81D6AF6
createtask sub_813F5E8, 2
end
-Unknown_81D6B17: @ 81D6B17
+Special_SwitchOutPlayerMon: @ 81D6B17
createtask sub_813F844, 2
pause 10
createtask sub_813F798, 2
end
-Unknown_81D6B28: @ 81D6B28
+Special_SwitchOutOpponentMon: @ 81D6B28
createtask sub_813F844, 2
pause 10
createtask sub_813F798, 2
end
-Unknown_81D6B39: @ 81D6B39
+Special_BallThrow: @ 81D6B39
createtask sub_813F990, 2
pause 0
panse_19 SE_NAGERU, 0
@@ -10726,7 +10727,7 @@ _81D6B65:
blendoff
jump _81D6B5C
-Unknown_81D6B8D: @ 81D6B8D
+Special_SafariBallThrow: @ 81D6B8D
createtask sub_813F990, 2
pause 0
createtask sub_813FBB8, 2
@@ -10734,10 +10735,10 @@ Unknown_81D6B8D: @ 81D6B8D
createtask sub_813F9B8, 2
end
-Unknown_81D6BA6: @ 81D6BA6
+Special_SubstituteToMon: @ 81D6BA6
createtask sub_814151C, 2, 1
end
-Unknown_81D6BB0: @ 81D6BB0
+Special_MonToSubstitute: @ 81D6BB0
createtask sub_814151C, 2, 0
end
diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s
index 83bacd844..45bf5cc95 100644
--- a/data/battle_scripts_1.s
+++ b/data/battle_scripts_1.s
@@ -535,7 +535,7 @@ BattleScript_1D71CE: @ 81D71CE
BattleScript_1D71D0: @ 81D71D0
atk47
- playanimation USER, 1, gSharedMem + 0x160A4
+ playanimation USER, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
BattleScript_1D71D8: @ 81D71D8
printfromtable BattleTextList_401570
@@ -545,7 +545,7 @@ BattleScript_1D71E0: @ 81D71E0
jump BattleScript_EndTurn
BattleScript_StatUp:: @ 81D71E5
- playanimation 2, 1, gSharedMem + 0x160A4
+ playanimation 2, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printfromtable BattleTextList_401570
waitmessage 64
return
@@ -585,7 +585,7 @@ BattleScript_1D725F: @ 81D725F
attackanimation
waitanimation
atk47
- playanimation TARGET, 1, gSharedMem + 0x160A4
+ playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
BattleScript_1D7269: @ 81D7269
printfromtable BattleTextList_40157C
@@ -595,7 +595,7 @@ BattleScript_1D7271: @ 81D7271
jump BattleScript_EndTurn
BattleScript_StatDown:: @ 81D7276
- playanimation 2, 1, gSharedMem + 0x160A4
+ playanimation 2, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printfromtable BattleTextList_40157C
waitmessage 64
return
@@ -1694,7 +1694,7 @@ MoveEffect_Swagger: @ 81D7EA2
statbuffchange 1, BattleScript_1D7EE5
jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D7EE5
atk47
- playanimation TARGET, 1, gSharedMem + 0x160A4
+ playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printfromtable BattleTextList_401570
waitmessage 64
@@ -1898,7 +1898,7 @@ MoveEffect_SkullBash: @ 81D8085
statbuffchange 65, BattleScript_1D80CF
jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D80CF
atk47
- playanimation USER, 1, gSharedMem + 0x160A4
+ playanimation USER, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printfromtable BattleTextList_401570
waitmessage 64
@@ -2264,7 +2264,7 @@ MoveEffect_Flatter: @ 81D84B1
statbuffchange 1, BattleScript_1D84F4
jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D84F4
atk47
- playanimation TARGET, 1, gSharedMem + 0x160A4
+ playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printfromtable BattleTextList_401570
waitmessage 64
@@ -3081,7 +3081,7 @@ gUnknown_081D8E0D:: @ 81D8E0D
end2
gUnknown_081D8E14:: @ 81D8E14
- playanimation USER, 8, 0x0
+ playanimation USER, B_ANIM_SMOKEBALL_ESCAPE, 0x0
printstring BATTLE_TEXT_FledUsingItem
waitmessage 64
end2
@@ -3238,7 +3238,7 @@ gUnknown_081D8F62:: @ 81D8F62
printfromtable BattleTextList_401534
waitmessage 64
jumpifbyte 0, gUnknown_02024D1F + 0x4, 2, BattleScript_1D8F7C
- playanimation USER, 10, 0x0
+ playanimation USER, B_ANIM_RAIN_CONTINUES, 0x0
BattleScript_1D8F7C: @ 81D8F7C
end2
@@ -3280,7 +3280,7 @@ gUnknown_081D8FFF:: @ 81D8FFF
gUnknown_081D9008:: @ 81D9008
printstring BATTLE_TEXT_SunStrong
waitmessage 64
- playanimation USER, 11, 0x0
+ playanimation USER, B_ANIM_SUN_CONTINUES, 0x0
end2
gUnknown_081D9016:: @ 81D9016
@@ -3312,7 +3312,7 @@ gUnknown_081D9041:: @ 81D9041
end2
BattleScript_LeechSeedTurnDrain:: @ 81D904B
- playanimation USER, 14, gSharedMem + 0x160A4
+ playanimation USER, B_ANIM_LEECH_SEED_DRAIN, gSharedMem + 0x160A4
orword gHitMarker, 0x100100
graphicalhpupdate USER
datahpupdate USER
@@ -3559,11 +3559,11 @@ BattleScript_1D92F4: @ 81D92F4
BattleScript_1D92FB: @ 81D92FB
atk8
jumpifbyte 1, gUnknown_02024D1F + 0x4, 0, BattleScript_1D9313
- playanimation USER, 18, 0x0
+ playanimation USER, B_ANIM_FUTURE_SIGHT_HIT, 0x0
jump BattleScript_1D931A
BattleScript_1D9313: @ 81D9313
- playanimation USER, 19, 0x0
+ playanimation USER, B_ANIM_DOOM_DESIRE_HIT, 0x0
BattleScript_1D931A: @ 81D931A
missmessage
@@ -3626,7 +3626,7 @@ BattleScript_MoveUsedIsTaunted:: @ 81D938F
BattleScript_WishComesTrue:: @ 81D939A
atkd4 1, BattleScript_1D93C1
- playanimation TARGET, 22, 0x0
+ playanimation TARGET, B_ANIM_WISH_HEAL, 0x0
printstring BATTLE_TEXT_WishTrue
waitmessage 64
orword gHitMarker, 0x100
@@ -3645,7 +3645,7 @@ BattleScript_1D93C1: @ 81D93C1
end2
BattleScript_IngrainTurnHeal:: @ 81D93D1
- playanimation USER, 21, 0x0
+ playanimation USER, B_ANIM_INGRAIN_HEAL, 0x0
printstring BATTLE_TEXT_AbsorbNutrients
waitmessage 64
orword gHitMarker, 0x100
@@ -3681,7 +3681,7 @@ BattleScript_1D944A: @ 81D944A
return
BattleScript_KnockedOff:: @ 81D944B
- playanimation TARGET, 5, 0x0
+ playanimation TARGET, B_ANIM_ITEM_KNOCKOFF, 0x0
printstring BATTLE_TEXT_KnockedOffItem
waitmessage 64
return
@@ -3714,7 +3714,7 @@ BattleScript_SnatchedMove:: @ 81D9487
attackstring
ppreduce
snatchmove
- playanimation TARGET, 17, 0x0
+ playanimation TARGET, B_ANIM_SNATCH_MOVE, 0x0
printstring BATTLE_TEXT_SnatchedMove
waitmessage 64
orword gHitMarker, 0x800c00
@@ -3743,10 +3743,10 @@ BattleScript_SAtkDown2:: @ 81D94B0
BattleScript_1D94D9: @ 81D94D9
return
-gUnknown_081D94DA:: @ 81D94DA
+BattleScript_FocusPunchSetUp:: @ 81D94DA
printstring BATTLE_TEXT_Terminator2
waitmessage 1
- playanimation USER, 20, 0x0
+ playanimation USER, B_ANIM_FOCUS_PUNCH_SET_UP, 0x0
printstring BATTLE_TEXT_TightenFocus
waitmessage 64
end2
@@ -3866,7 +3866,7 @@ gUnknown_081D95DB:: @ 81D95DB
return
BattleScript_WrapTurnDmg:: @ 81D95E2
- playanimation USER, 6, gSharedMem + 0x160A4
+ playanimation USER, B_ANIM_TURN_TRAP, gSharedMem + 0x160A4
printstring BATTLE_TEXT_HurtBy
waitmessage 64
jump BattleScript_1D9520
@@ -3991,7 +3991,7 @@ BattleScript_1D96F5: @ 81D96F5
return
BattleScript_ItemSteal:: @ 81D96F6
- playanimation TARGET, 16, 0x0
+ playanimation TARGET, B_ANIM_ITEM_STEAL, 0x0
printstring BATTLE_TEXT_StoleSomething
waitmessage 64
return
@@ -4000,12 +4000,12 @@ BattleScript_DrizzleActivates:: @ 81D9704
pause 32
printstring BATTLE_TEXT_RainMade
waitstateatk
- playanimation 7, 10, 0x0
+ playanimation 7, B_ANIM_RAIN_CONTINUES, 0x0
callatk BattleScript_1D9761
end3
BattleScript_SpeedBoostActivates:: @ 81D9718
- playanimation USER, 1, gSharedMem + 0x160A4
+ playanimation USER, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printstring BATTLE_TEXT_SpeedRisen
waitmessage 64
end3
@@ -4028,7 +4028,7 @@ BattleScript_SandstreamActivates:: @ 81D9744
pause 32
printstring BATTLE_TEXT_WhipSandstorm
waitstateatk
- playanimation 7, 12, 0x0
+ playanimation 7, B_ANIM_SANDSTORM_CONTINUES, 0x0
callatk BattleScript_1D9761
end3
@@ -4078,7 +4078,7 @@ BattleScript_1D97A1: @ 81D97A1
statbuffchange 33, BattleScript_1D97E4
jumpifbyte 2, gUnknown_02024D1F + 0x4, 1, BattleScript_1D97E4
atk47
- playanimation TARGET, 1, gSharedMem + 0x160A4
+ playanimation TARGET, B_ANIM_STATS_CHANGE, gSharedMem + 0x160A4
printstring BATTLE_TEXT_CutsAttack
waitmessage 64
@@ -4099,7 +4099,7 @@ BattleScript_DroughtActivates:: @ 81D97FE
pause 32
printstring BATTLE_TEXT_SunIntensified
waitstateatk
- playanimation 7, 11, 0x0
+ playanimation 7, B_ANIM_SUN_CONTINUES, 0x0
callatk BattleScript_1D9761
end3
@@ -4297,7 +4297,7 @@ gUnknown_081D99A0:: @ 81D99A0
jump BattleScript_1D95AC
BattleScript_SubstituteFade:: @ 81D99AB
- playanimation TARGET, 2, 0x0
+ playanimation TARGET, B_ANIM_SUBSTITUTE_FADE, 0x0
printstring BATTLE_TEXT_SubFaded
return
@@ -4306,7 +4306,7 @@ BattleScript_BerryCurePrlzEnd2:: @ 81D99B6
end2
BattleScript_BerryCureParRet:: @ 81D99BC
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredParalysis
waitmessage 64
atk98 10
@@ -4318,7 +4318,7 @@ BattleScript_BerryCurePsnEnd2:: @ 81D99CE
end2
BattleScript_BerryCurePsnRet:: @ 81D99D4
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredPoison
waitmessage 64
atk98 10
@@ -4330,7 +4330,7 @@ BattleScript_BerryCureBrnEnd2:: @ 81D99E6
end2
BattleScript_BerryCureBrnRet:: @ 81D99EC
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredBurn
waitmessage 64
atk98 10
@@ -4342,7 +4342,7 @@ BattleScript_BerryCureFrzEnd2:: @ 81D99FE
end2
BattleScript_BerryCureFrzRet:: @ 81D9A04
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredFreeze
waitmessage 64
atk98 10
@@ -4354,7 +4354,7 @@ BattleScript_BerryCureSlpEnd2:: @ 81D9A16
end2
BattleScript_BerryCureSlpRet:: @ 81D9A1C
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredSleep
waitmessage 64
atk98 10
@@ -4366,7 +4366,7 @@ BattleScript_BerryCureConfusionEnd2:: @ 81D9A2E
end2
BattleScript_BerryCureConfusionRet:: @ 81D9A34
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_CuredConfusion
waitmessage 64
removeitem 10
@@ -4377,7 +4377,7 @@ gUnknown_081D9A44:: @ 81D9A44
end2
gUnknown_081D9A4A:: @ 81D9A4A
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printfromtable BattleTextList_40162C
waitmessage 64
atk98 10
@@ -4389,14 +4389,14 @@ BattleScript_WhiteHerbEnd2:: @ 81D9A5E
end2
BattleScript_WhiteHerbRet:: @ 81D9A64
- playanimation 10, 7, 0x0
+ playanimation 10, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_RestoredStatus
waitmessage 64
removeitem 10
return
BattleScript_ItemHealHP_RemoveItem:: @ 81D9A74
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_RestoredHealth
waitmessage 64
orword gHitMarker, 0x100
@@ -4406,7 +4406,7 @@ BattleScript_ItemHealHP_RemoveItem:: @ 81D9A74
end2
BattleScript_BerryPPHealEnd2:: @ 81D9A91
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_RestoredPP
waitmessage 64
removeitem USER
@@ -4417,7 +4417,7 @@ BattleScript_ItemHealHP_End2:: @ 81D9AA1
end2
BattleScript_ItemHealHP_Ret:: @ 81D9AA7
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_RestoredHPLittle
waitmessage 64
orword gHitMarker, 0x100
@@ -4430,13 +4430,13 @@ BattleScript_MoveSelectionChoiceBanded:: @ 81D9AC2
atk44
BattleScript_HangedOnMsg:: @ 81D9AC6
- playanimation TARGET, 9, 0x0
+ playanimation TARGET, B_ANIM_HANGED_ON, 0x0
printstring BATTLE_TEXT_FocusSash
waitmessage 64
return
BattleScript_BerryConfuseHealEnd2:: @ 81D9AD4
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_RestoredHealth
waitmessage 64
orword gHitMarker, 0x100
@@ -4450,7 +4450,7 @@ BattleScript_BerryConfuseHealEnd2:: @ 81D9AD4
end2
BattleScript_BerryStatRaiseEnd2:: @ 81D9AFE
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
statbuffchange 65, BattleScript_1D9B0B
BattleScript_1D9B0B: @ 81D9B0B
@@ -4460,7 +4460,7 @@ BattleScript_1D9B0B: @ 81D9B0B
end2
BattleScript_BerryFocusEnergyEnd2:: @ 81D9B19
- playanimation USER, 7, 0x0
+ playanimation USER, B_ANIM_ITEM_EFFECT, 0x0
printstring BATTLE_TEXT_HustleUse
waitmessage 64
removeitem USER
diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s
index 0833b7bf2..22ecc7769 100644
--- a/data/battle_scripts_2.s
+++ b/data/battle_scripts_2.s
@@ -5,7 +5,7 @@
.section script_data, "aw", %progbits
.align 2
-gUnknown_081D9E48:: @ 81D9E48
+gBattlescriptsForBallThrow:: @ 81D9E48
.4byte BattleScript_1D9EA8
.4byte BattleScript_1D9EA8
.4byte BattleScript_1D9EA8
@@ -28,10 +28,10 @@ gUnknown_081D9E7C:: @ 81D9E7C
.4byte BattleScript_1D9F9C
.4byte BattleScript_1D9FBB
-gUnknown_081D9E94:: @ 81D9E94
+gBattlescriptsForRunningByItem:: @ 81D9E94
.4byte BattleScript_1D9FDA
-gUnknown_081D9E98:: @ 81D9E98
+gBattlescriptsForSafariActions:: @ 81D9E98
.4byte BattleScript_1D9FE4
.4byte BattleScript_1D9FEB
.4byte BattleScript_1D9FF4
@@ -177,7 +177,7 @@ BattleScript_1D9FEB: @ 81D9FEB
BattleScript_1D9FF4: @ 81D9FF4
printstring BATTLE_TEXT_ThrewBlock
waitmessage 64
- playanimation USER, 4, 0x0
+ playanimation USER, B_ANIM_POKEBLOCK_THROW, 0x0
printfromtable BattleTextList_40161A
waitmessage 64
end2
diff --git a/include/battle.h b/include/battle.h
index d576e92f4..3b37c0853 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -175,6 +175,52 @@
#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT))
#define WEATHER_HAIL (1 << 7)
+// status animation table
+#define B_ANIM_STATUS_PSN 0x0
+#define B_ANIM_STATUS_CONFUSION 0x1
+#define B_ANIM_STATUS_BRN 0x2
+#define B_ANIM_STATUS_INFATUATION 0x3
+#define B_ANIM_STATUS_SLP 0x4
+#define B_ANIM_STATUS_PRZ 0x5
+#define B_ANIM_STATUS_FRZ 0x6
+#define B_ANIM_STATUS_CURSED 0x7
+#define B_ANIM_STATUS_NIGHTMARE 0x8
+#define B_ANIM_STATUS_WRAPPED 0x9
+
+// general animation table
+#define B_ANIM_CASTFORM_CHANGE 0x0
+#define B_ANIM_STATS_CHANGE 0x1
+#define B_ANIM_SUBSTITUTE_FADE 0x2
+#define B_ANIM_SUBSTITUTE_APPEAR 0x3
+#define B_ANIM_POKEBLOCK_THROW 0x4
+#define B_ANIM_ITEM_KNOCKOFF 0x5
+#define B_ANIM_TURN_TRAP 0x6
+#define B_ANIM_ITEM_EFFECT 0x7
+#define B_ANIM_SMOKEBALL_ESCAPE 0x8
+#define B_ANIM_HANGED_ON 0x9
+#define B_ANIM_RAIN_CONTINUES 0xA
+#define B_ANIM_SUN_CONTINUES 0xB
+#define B_ANIM_SANDSTORM_CONTINUES 0xC
+#define B_ANIM_HAIL_CONTINUES 0xD
+#define B_ANIM_LEECH_SEED_DRAIN 0xE
+#define B_ANIM_MON_HIT 0xF
+#define B_ANIM_ITEM_STEAL 0x10
+#define B_ANIM_SNATCH_MOVE 0x11
+#define B_ANIM_FUTURE_SIGHT_HIT 0x12
+#define B_ANIM_DOOM_DESIRE_HIT 0x13
+#define B_ANIM_FOCUS_PUNCH_SET_UP 0x14
+#define B_ANIM_INGRAIN_HEAL 0x15
+#define B_ANIM_WISH_HEAL 0x16
+
+// special animation table
+#define B_ANIM_LVL_UP 0x0
+#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1
+#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2
+#define B_ANIM_BALL_THROW 0x3
+#define B_ANIM_SAFARI_BALL_THROW 0x4
+#define B_ANIM_SUBSTITUTE_TO_MON 0x5
+#define B_ANIM_MON_TO_SUBSTITUTE 0x6
+
enum
{
BATTLE_TERRAIN_GRASS,
diff --git a/include/unknown_task.h b/include/unknown_task.h
index d7ac63931..011e5f5b5 100644
--- a/include/unknown_task.h
+++ b/include/unknown_task.h
@@ -9,6 +9,24 @@ struct UnknownTaskStruct
u8 unk9;
};
+struct UnknownTaskStruct2
+{
+ void *src[2];
+ volatile void *dest;
+ u32 unkC;
+ void (*unk10)(void);
+ u8 srcBank;
+ u8 unk15;
+ u8 unk16;
+ u8 unk17;
+ u8 taskId;
+ u8 filler19[0x7];
+};
+
+extern struct UnknownTaskStruct2 gUnknown_03004DC0;
+
+extern u16 gUnknown_03004DE0[][0x3C0];
+
void remove_some_task(void);
void remove_some_task(void);
void dp12_8087EA4(void);
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index 095482305..6d406c5e5 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -31,13 +31,6 @@
#include "battle_move_effects.h"
#include "ewram.h"
-struct UnknownStruct6
-{
- u16 unk0[0xA0];
- u8 fillerA0[0x640];
- u16 unk780[0xA0];
-};
-
struct UnknownStruct7
{
u8 unk0;
@@ -123,8 +116,6 @@ extern void (*gBattleMainFunc)(void);
extern u8 gLeveledUpInBattle;
extern void (*gBattleBankFunc[])(void);
extern u8 gHealthboxIDs[];
-extern struct UnknownStruct6 gUnknown_03004DE0;
-//extern u16 gUnknown_03004DE0[][0xA0]; // possibly?
extern u16 gBattleTypeFlags;
extern s8 gBattleTerrain; // I'm not sure if this is supposed to be s8 or u8. Regardless, it must have the same type as the return value of BattleSetup_GetTerrain.
extern u8 gReservedSpritePaletteCount;
@@ -175,14 +166,14 @@ void InitBattle(void)
for (i = 0; i < 80; i++)
{
- gUnknown_03004DE0.unk0[i] = 0xF0;
- gUnknown_03004DE0.unk780[i] = 0xF0;
+ gUnknown_03004DE0[0][i] = 0xF0;
+ gUnknown_03004DE0[1][i] = 0xF0;
}
for (i = 80; i < 160; i++)
{
asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter
- gUnknown_03004DE0.unk0[i] = 0xFF10;
- gUnknown_03004DE0.unk780[i] = 0xFF10;
+ gUnknown_03004DE0[0][i] = 0xFF10;
+ gUnknown_03004DE0[1][i] = 0xFF10;
}
//sub_80895F8(gUnknown_081F9674.unk0, gUnknown_081F9674.unk4, gUnknown_081F9674.unk8);
sub_80895F8(gUnknown_081F9674);
@@ -1153,14 +1144,14 @@ void c2_8011A1C(void)
for (i = 0; i < 80; i++)
{
- gUnknown_03004DE0.unk0[i] = 0xF0;
- gUnknown_03004DE0.unk780[i] = 0xF0;
+ gUnknown_03004DE0[0][i] = 0xF0;
+ gUnknown_03004DE0[1][i] = 0xF0;
}
for (i = 80; i < 160; i++)
{
asm(""::"r"(i)); // Needed to stop the compiler from optimizing out the loop counter
- gUnknown_03004DE0.unk0[i] = 0xFF10;
- gUnknown_03004DE0.unk780[i] = 0xFF10;
+ gUnknown_03004DE0[0][i] = 0xFF10;
+ gUnknown_03004DE0[1][i] = 0xFF10;
}
SetUpWindowConfig(&gWindowConfig_81E6C58);
ResetPaletteFade();
diff --git a/src/battle/battle_3.c b/src/battle/battle_3.c
index f37111af5..958ee0b55 100644
--- a/src/battle/battle_3.c
+++ b/src/battle/battle_3.c
@@ -546,7 +546,7 @@ u8 UpdateTurnCounters(void)
else
gBattlescriptCurrInstr = gUnknown_081D8F7D;
- BATTLE_STRUCT->animArg1 = 0xC;
+ BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
b_call_bc_move_exec(gBattlescriptCurrInstr);
effect++;
@@ -580,7 +580,7 @@ u8 UpdateTurnCounters(void)
else
gBattlescriptCurrInstr = gUnknown_081D8F7D;
- BATTLE_STRUCT->animArg1 = 0xD;
+ BATTLE_STRUCT->animArg1 = B_ANIM_HAIL_CONTINUES;
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
b_call_bc_move_exec(gBattlescriptCurrInstr);
effect++;
@@ -1505,7 +1505,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (!(gBattleWeather & WEATHER_RAIN_ANY))
{
gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT);
- BATTLE_STRUCT->animArg1 = 0xA;
+ BATTLE_STRUCT->animArg1 = B_ANIM_RAIN_CONTINUES;
BATTLE_STRUCT->scriptingActive = bank;
effect++;
}
@@ -1514,7 +1514,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (!(gBattleWeather & WEATHER_SANDSTORM_ANY))
{
gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY);
- BATTLE_STRUCT->animArg1 = 0xC;
+ BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES;
BATTLE_STRUCT->scriptingActive = bank;
effect++;
}
@@ -1523,7 +1523,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
if (!(gBattleWeather & WEATHER_SUN_ANY))
{
gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY);
- BATTLE_STRUCT->animArg1 = 0xB;
+ BATTLE_STRUCT->animArg1 = B_ANIM_SUN_CONTINUES;
BATTLE_STRUCT->scriptingActive = bank;
effect++;
}
diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c
index cff81396d..73530c486 100644
--- a/src/battle/battle_4.c
+++ b/src/battle/battle_4.c
@@ -221,6 +221,16 @@ extern u8 gUnknown_081D8C65[];
extern u8 gUnknown_081D9156[];
extern u8 gUnknown_081D9468[];
+// read via orr
+#define BSScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
+#define BSScriptRead16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
+#define BSScriptReadPtr(ptr) ((void *)BSScriptRead32(ptr))
+
+// read via add
+#define BS2ScriptRead32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
+#define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
+#define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr))
+
#define TargetProtectAffected ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED))
//array entries for battle communication
@@ -7327,276 +7337,88 @@ static void atk44(void)
ewram16060(gBankAttacker) = 1;
}
-#ifdef NONMATCHING
static void atk45_playanimation(void)
{
- #define ANIMATION_ID T2_READ_8(gBattlescriptCurrInstr + 2)
- #define ARGUMENT (u16*) T2_READ_PTR(gBattlescriptCurrInstr + 3)
- gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ const u16* argumentPtr;
+
+ gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3);
- if ( ANIMATION_ID == 1 || ANIMATION_ID == 0x11 || ANIMATION_ID == 2) {
- EmitBattleAnimation(0, ANIMATION_ID, *argument);
+ if (gBattlescriptCurrInstr[2] == B_ANIM_STATS_CHANGE
+ || gBattlescriptCurrInstr[2] == B_ANIM_SNATCH_MOVE
+ || gBattlescriptCurrInstr[2] == B_ANIM_SUBSTITUTE_FADE)
+ {
+ EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 7;
- } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) {
+ }
+ else if (gHitMarker & HITMARKER_NO_ANIMATIONS)
+ {
b_movescr_stack_push(gBattlescriptCurrInstr + 7);
gBattlescriptCurrInstr = BattleScript_Pausex20;
- } else {
- if (((ANIMATION_ID - 10) > 3 && gStatuses3[gActiveBank] & (STATUS3_SEMI_INVULNERABLE))) {
- gBattlescriptCurrInstr += 7;
- } else {
- EmitBattleAnimation(0, ANIMATION_ID, *argument);
- MarkBufferBankForExecution(gActiveBank);
- gBattlescriptCurrInstr += 7;
- }
+ }
+ else if (gBattlescriptCurrInstr[2] == B_ANIM_RAIN_CONTINUES
+ || gBattlescriptCurrInstr[2] == B_ANIM_SUN_CONTINUES
+ || gBattlescriptCurrInstr[2] == B_ANIM_SANDSTORM_CONTINUES
+ || gBattlescriptCurrInstr[2] == B_ANIM_HAIL_CONTINUES)
+ {
+ EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 7;
+ }
+ else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE)
+ {
+ gBattlescriptCurrInstr += 7;
+ }
+ else
+ {
+ EmitBattleAnimation(0, gBattlescriptCurrInstr[2], *argumentPtr);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 7;
}
}
-#else
-__attribute__((naked))
-static void atk45_playanimation(void)
+static void atk46_playanimation2(void) // animation Id is stored in the first pointer
{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- ldr r5, _08021444 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r5]\n\
- ldrb r0, [r0, 0x1]\n\
- bl GetBattleBank\n\
- ldr r6, _08021448 @ =gActiveBank\n\
- strb r0, [r6]\n\
- ldr r2, [r5]\n\
- ldrb r1, [r2, 0x3]\n\
- ldrb r0, [r2, 0x4]\n\
- lsls r0, 8\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x5]\n\
- lsls r0, 16\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x6]\n\
- lsls r0, 24\n\
- adds r3, r1, r0\n\
- ldrb r4, [r2, 0x2]\n\
- adds r0, r4, 0\n\
- cmp r0, 0x1\n\
- beq _08021426\n\
- cmp r0, 0x11\n\
- beq _08021426\n\
- cmp r0, 0x2\n\
- bne _0802144C\n\
-_08021426:\n\
- ldr r4, _08021444 @ =gBattlescriptCurrInstr\n\
- ldr r0, [r4]\n\
- ldrb r1, [r0, 0x2]\n\
- ldrh r2, [r3]\n\
- movs r0, 0\n\
- bl EmitBattleAnimation\n\
- ldr r0, _08021448 @ =gActiveBank\n\
- ldrb r0, [r0]\n\
- bl MarkBufferBankForExecution\n\
- ldr r0, [r4]\n\
- adds r0, 0x7\n\
- str r0, [r4]\n\
- b _080214AE\n\
- .align 2, 0\n\
-_08021444: .4byte gBattlescriptCurrInstr\n\
-_08021448: .4byte gActiveBank\n\
-_0802144C:\n\
- ldr r0, _08021464 @ =gHitMarker\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0802146C\n\
- adds r0, r2, 0x7\n\
- bl b_movescr_stack_push\n\
- ldr r0, _08021468 @ =BattleScript_Pausex20\n\
- b _080214AC\n\
- .align 2, 0\n\
-_08021464: .4byte gHitMarker\n\
-_08021468: .4byte BattleScript_Pausex20\n\
-_0802146C:\n\
- adds r0, r4, 0\n\
- subs r0, 0xA\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x3\n\
- bls _08021498\n\
- ldr r1, _08021490 @ =gStatuses3\n\
- ldrb r0, [r6]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- ldr r1, _08021494 @ =0x000400c0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08021498\n\
- adds r0, r2, 0x7\n\
- b _080214AC\n\
- .align 2, 0\n\
-_08021490: .4byte gStatuses3\n\
-_08021494: .4byte 0x000400c0\n\
-_08021498:\n\
- ldrb r1, [r2, 0x2]\n\
- ldrh r2, [r3]\n\
- movs r0, 0\n\
- bl EmitBattleAnimation\n\
- ldrb r0, [r6]\n\
- bl MarkBufferBankForExecution\n\
- ldr r0, [r5]\n\
- adds r0, 0x7\n\
-_080214AC:\n\
- str r0, [r5]\n\
-_080214AE:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided");
-}
-#endif // NONMATCHING
+ const u16* argumentPtr;
+ const u8* animationIdPtr;
-#ifdef NONMATCHING
-static void atk46_playanimation2(void)
-{
- u8 arg1;
- u8* arg2;
- u16* arg3;
- u32 something;
-
- arg1 = T2_READ_8(gBattlescriptCurrInstr + 1);
- gActiveBank = GetBattleBank(arg1);
- arg2 = T2_READ_PTR(gBattlescriptCurrInstr + 2);
- arg3 = T2_READ_PTR(gBattlescriptCurrInstr + 6);
-
- if (*arg2 == 1 || *arg2 == 0x11 || *arg2 == 2)
- {
- EmitBattleAnimation(0, *arg2, *arg3);
- MarkBufferBankForExecution(gActiveBank);
- gBattlescriptCurrInstr += 10;
- return;
- }
- if ((gHitMarker & 0x80))
- {
- something = (u32)(gBattlescriptCurrInstr + 10);
- }
- else
- {
- u8 yeah = *arg2 - 10;
- if (yeah < 4 || (gStatuses3[gActiveBank] & 0x000400C0) == 0)
- {
- EmitBattleAnimation(0, *arg2, *arg3);
- MarkBufferBankForExecution(gActiveBank);
- }
- something = (u32)(gBattlescriptCurrInstr + 10);
- }
- gBattlescriptCurrInstr = (u8*)something;
-}
-#else
-__attribute__((naked))
-static void atk46_playanimation2(void)
-{
- asm(".syntax unified\n\
- push {r4-r7,lr}\n\
- ldr r6, _0802151C @ =gBattlescriptCurrInstr\n\
- ldr r0, [r6]\n\
- ldrb r0, [r0, 0x1]\n\
- bl GetBattleBank\n\
- ldr r7, _08021520 @ =gActiveBank\n\
- strb r0, [r7]\n\
- ldr r2, [r6]\n\
- ldrb r1, [r2, 0x2]\n\
- ldrb r0, [r2, 0x3]\n\
- lsls r0, 8\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x4]\n\
- lsls r0, 16\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x5]\n\
- lsls r0, 24\n\
- adds r3, r1, r0\n\
- ldrb r1, [r2, 0x6]\n\
- ldrb r0, [r2, 0x7]\n\
- lsls r0, 8\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x8]\n\
- lsls r0, 16\n\
- adds r1, r0\n\
- ldrb r0, [r2, 0x9]\n\
- lsls r0, 24\n\
- adds r4, r1, r0\n\
- ldrb r5, [r3]\n\
- adds r0, r5, 0\n\
- cmp r0, 0x1\n\
- beq _080214FE\n\
- cmp r0, 0x11\n\
- beq _080214FE\n\
- cmp r0, 0x2\n\
- bne _08021524\n\
-_080214FE:\n\
- ldrb r1, [r3]\n\
- ldrh r2, [r4]\n\
- movs r0, 0\n\
- bl EmitBattleAnimation\n\
- ldr r0, _08021520 @ =gActiveBank\n\
- ldrb r0, [r0]\n\
- bl MarkBufferBankForExecution\n\
- ldr r1, _0802151C @ =gBattlescriptCurrInstr\n\
- ldr r0, [r1]\n\
- adds r0, 0xA\n\
- str r0, [r1]\n\
- b _0802157A\n\
- .align 2, 0\n\
-_0802151C: .4byte gBattlescriptCurrInstr\n\
-_08021520: .4byte gActiveBank\n\
-_08021524:\n\
- ldr r0, _08021534 @ =gHitMarker\n\
- ldr r0, [r0]\n\
- movs r1, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08021538\n\
- adds r0, r2, 0\n\
- b _08021576\n\
- .align 2, 0\n\
-_08021534: .4byte gHitMarker\n\
-_08021538:\n\
- adds r0, r5, 0\n\
- subs r0, 0xA\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- cmp r0, 0x3\n\
- bls _08021564\n\
- ldr r1, _0802155C @ =gStatuses3\n\
- ldrb r0, [r7]\n\
- lsls r0, 2\n\
- adds r0, r1\n\
- ldr r0, [r0]\n\
- ldr r1, _08021560 @ =0x000400c0\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _08021564\n\
- adds r0, r2, 0\n\
- b _08021576\n\
- .align 2, 0\n\
-_0802155C: .4byte gStatuses3\n\
-_08021560: .4byte 0x000400c0\n\
-_08021564:\n\
- ldrb r1, [r3]\n\
- ldrh r2, [r4]\n\
- movs r0, 0\n\
- bl EmitBattleAnimation\n\
- ldrb r0, [r7]\n\
- bl MarkBufferBankForExecution\n\
- ldr r0, [r6]\n\
-_08021576:\n\
- adds r0, 0xA\n\
- str r0, [r6]\n\
-_0802157A:\n\
- pop {r4-r7}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided ");
+ gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
+ animationIdPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
+ argumentPtr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
+
+ if (*animationIdPtr == B_ANIM_STATS_CHANGE
+ || *animationIdPtr == B_ANIM_SNATCH_MOVE
+ || *animationIdPtr == B_ANIM_SUBSTITUTE_FADE)
+ {
+ EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 10;
+ }
+ else if (gHitMarker & HITMARKER_NO_ANIMATIONS)
+ {
+ gBattlescriptCurrInstr += 10;
+ }
+ else if (*animationIdPtr == B_ANIM_RAIN_CONTINUES
+ || *animationIdPtr == B_ANIM_SUN_CONTINUES
+ || *animationIdPtr == B_ANIM_SANDSTORM_CONTINUES
+ || *animationIdPtr == B_ANIM_HAIL_CONTINUES)
+ {
+ EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 10;
+ }
+ else if (gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE)
+ {
+ gBattlescriptCurrInstr += 10;
+ }
+ else
+ {
+ EmitBattleAnimation(0, *animationIdPtr, *argumentPtr);
+ MarkBufferBankForExecution(gActiveBank);
+ gBattlescriptCurrInstr += 10;
+ }
}
-#endif // NONMATCHING
static void atk47_setgraphicalstatchangevalues(void)
{
@@ -17089,7 +16911,7 @@ static void atkE6_castform_change_animation(void)
gActiveBank = BATTLE_STRUCT->scriptingActive;
if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE)
BATTLE_STRUCT->castformToChangeInto |= 0x80;
- EmitBattleAnimation(0, 0, BATTLE_STRUCT->castformToChangeInto);
+ EmitBattleAnimation(0, B_ANIM_CASTFORM_CHANGE, BATTLE_STRUCT->castformToChangeInto);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr++;
}
diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c
index 8766b5b77..0728b4b71 100644
--- a/src/battle/battle_7.c
+++ b/src/battle/battle_7.c
@@ -43,8 +43,8 @@ extern u8 gBattleAnimBankAttacker;
extern u8 gBattleAnimBankTarget;
extern void (*gAnimScriptCallback)(void);
extern u8 gAnimScriptActive;
-extern const u8 *const gBattleAnims_Unknown1[];
-extern const u8 *const gBattleAnims_Unknown2[];
+extern const u8 *const gBattleAnims_General[];
+extern const u8 *const gBattleAnims_Special[];
extern const struct CompressedSpriteSheet gTrainerFrontPicTable[];
extern const struct MonCoords gTrainerFrontPicCoords[];
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
@@ -177,7 +177,7 @@ bool8 move_anim_start_t3(u8 a, u8 b, u8 c, u8 d, u16 e)
gBattleAnimBankAttacker = b;
gBattleAnimBankTarget = c;
ewram17840.unk0 = e;
- DoMoveAnim(gBattleAnims_Unknown1, d, 0);
+ DoMoveAnim(gBattleAnims_General, d, 0);
taskId = CreateTask(sub_80315E8, 10);
gTasks[taskId].data[0] = a;
ewram17810[gTasks[taskId].data[0]].unk0_5 = 1;
@@ -216,7 +216,7 @@ void move_anim_start_t4(u8 a, u8 b, u8 c, u8 d)
gBattleAnimBankAttacker = b;
gBattleAnimBankTarget = c;
- DoMoveAnim(gBattleAnims_Unknown2, d, 0);
+ DoMoveAnim(gBattleAnims_Special, d, 0);
taskId = CreateTask(sub_80316CC, 10);
gTasks[taskId].data[0] = a;
ewram17810[gTasks[taskId].data[0]].unk0_6 = 1;
diff --git a/src/battle/battle_transition.c b/src/battle/battle_transition.c
index 2bde7299b..7f6c114f6 100644
--- a/src/battle/battle_transition.c
+++ b/src/battle/battle_transition.c
@@ -13,12 +13,12 @@
#include "trainer.h"
#include "field_camera.h"
#include "ewram.h"
+#include "unknown_task.h"
void sub_807DE10(void);
void dp12_8087EA4(void);
extern u16 gUnknown_03005560[];
-extern u16 gUnknown_03004DE0[][0x3C0];
extern const struct OamData gFieldOamData_32x32;
diff --git a/src/battle_anim_80CA710.c b/src/battle_anim_80CA710.c
index 98f421a49..6e4907888 100755
--- a/src/battle_anim_80CA710.c
+++ b/src/battle_anim_80CA710.c
@@ -17,13 +17,6 @@
#include "trig.h"
#include "unknown_task.h"
-struct UnknownStruct6
-{
- u16 unk0[0xA0];
- u8 fillerA0[0x640];
- u16 unk780[0xA0];
-};
-
struct Struct_sub_8078914
{
u8 *field_0;
@@ -72,8 +65,6 @@ extern u16 gUnknown_03004240;
extern u16 gUnknown_030041B4;
extern s8 gUnknown_083D7A00[4][2];
extern u16 gUnknown_083D7A5C[5];
-extern struct UnknownStruct6 gUnknown_03004DE0;
-extern struct UnknownStruct_1 gUnknown_03004DC0;
static void sub_80CA768(struct Sprite* sprite);
static void sub_80CA8B4(struct Sprite* sprite);
@@ -4908,8 +4899,8 @@ void sub_80D0C88(u8 taskId)
{
if (i >= 0)
{
- gUnknown_03004DE0.unk0[i] = task->data[6] + 0xF0;
- gUnknown_03004DE0.unk780[i] = task->data[6] + 0xF0;
+ gUnknown_03004DE0[0][i] = task->data[6] + 0xF0;
+ gUnknown_03004DE0[1][i] = task->data[6] + 0xF0;
}
}
@@ -4954,8 +4945,8 @@ void sub_80D0D68(u8 taskId)
if (task->data[5] >= 0)
{
- gUnknown_03004DE0.unk0[task->data[5]] = task->data[6];
- gUnknown_03004DE0.unk780[task->data[5]] = task->data[6];
+ gUnknown_03004DE0[0][task->data[5]] = task->data[6];
+ gUnknown_03004DE0[1][task->data[5]] = task->data[6];
}
if (++task->data[3] >= task->data[15])
diff --git a/src/engine/trainer_card.c b/src/engine/trainer_card.c
index 6d105f512..2045c6b21 100644
--- a/src/engine/trainer_card.c
+++ b/src/engine/trainer_card.c
@@ -52,13 +52,6 @@ extern struct LinkPlayerMapObject gLinkPlayerMapObjects[];
EWRAM_DATA struct TrainerCard gTrainerCards[4] = {0};
-struct UnknownStruct1
-{
- u16 filler0[0x3C0];
- u16 unk780[160];
-};
-extern struct UnknownStruct1 gUnknown_03004DE0;
-
extern const u8 gBadgesTiles[];
extern const u16 gUnknown_083B5F0C[];
extern const u16 gBadgesPalette[];
@@ -263,7 +256,7 @@ static void sub_8093254(void)
ewram0_2.var_5 ^= 1;
}
if (ewram0_2.var_4)
- DmaCopy16(3, gUnknown_03004DE0.filler0, gUnknown_03004DE0.unk780, sizeof(gUnknown_03004DE0.unk780));
+ DmaCopy16(3, &gUnknown_03004DE0[0], &gUnknown_03004DE0[1], 0x140);
}
static void sub_80932AC(Callback callBack)
@@ -737,12 +730,12 @@ static void sub_8093A68(u8 taskId)
bool8 sub_8093AA0(struct Task *task)
{
- s32 i;
+ u32 i;
ewram0_2.var_4 = FALSE;
dp12_8087EA4();
- for (i = 0; i < ARRAY_COUNT(gUnknown_03004DE0.unk780); i++)
- gUnknown_03004DE0.unk780[i] = -4;
+ for (i = 0; i < 0xA0; i++)
+ gUnknown_03004DE0[1][i] = -4;
SetHBlankCallback(sub_8093D7C);
ewram0_2.var_4 = TRUE;
task->data[0]++;
@@ -1123,7 +1116,7 @@ bool8 sub_8093D50(struct Task *task)
void sub_8093D7C(void)
{
- u16 bgVOffset = gUnknown_03004DE0.unk780[REG_VCOUNT & 0xFF];
+ u16 bgVOffset = gUnknown_03004DE0[1][REG_VCOUNT & 0xFF];
REG_BG0VOFS = bgVOffset;
REG_BG1VOFS = bgVOffset;
diff --git a/src/field/field_screen_effect.c b/src/field/field_screen_effect.c
index 0c76d254d..a18190809 100644
--- a/src/field/field_screen_effect.c
+++ b/src/field/field_screen_effect.c
@@ -9,16 +9,6 @@
#include "text.h"
#include "unknown_task.h"
-struct UnknownStruct1
-{
- u8 filler0[0x14];
- u8 unk14;
- u8 filler15[0xB];
-};
-extern struct UnknownStruct1 gUnknown_03004DC0;
-
-extern u16 gUnknown_03004DE0[][0x3C0];
-
const static u16 gUnknown_0839ACDC[] = { 0xC8, 0x48, 0x38, 0x28, 0x18, 0x0 };
const s32 gMaxFlashLevel = 4;
@@ -74,11 +64,11 @@ static void sub_8081424(u8 taskId)
switch (data[0])
{
case 0:
- sub_8081398(&gUnknown_03004DE0[gUnknown_03004DC0.unk14][0], data[1], data[2], data[3]);
+ sub_8081398(&gUnknown_03004DE0[gUnknown_03004DC0.srcBank][0], data[1], data[2], data[3]);
data[0] = 1;
break;
case 1:
- sub_8081398(&gUnknown_03004DE0[gUnknown_03004DC0.unk14][0], data[1], data[2], data[3]);
+ sub_8081398(&gUnknown_03004DE0[gUnknown_03004DC0.srcBank][0], data[1], data[2], data[3]);
data[0] = 0;
data[3] += data[5];
if (data[3] > data[4])
diff --git a/src/unknown_task.c b/src/unknown_task.c
index 5ec7fa6bc..0cc59fc66 100644
--- a/src/unknown_task.c
+++ b/src/unknown_task.c
@@ -4,20 +4,6 @@
#include "trig.h"
#include "unknown_task.h"
-struct UnknownStruct1
-{
- void *src[2];
- volatile void *dest;
- u32 unkC;
- void (*unk10)(void);
- u8 srcBank;
- u8 unk15;
- u8 unk16;
- u8 unk17;
- u8 taskId;
- u8 filler19[0x7];
-};
-
static void sub_80896F4(void);
static void sub_8089714(void);
@@ -32,7 +18,7 @@ extern u16 gUnknown_030042C0;
extern u8 gUnknown_0202FFA4;
-extern struct UnknownStruct1 gUnknown_03004DC0;
+extern struct UnknownTaskStruct2 gUnknown_03004DC0;
extern u16 gUnknown_03004DE0[][0x3C0];