summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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
9 files changed, 110 insertions, 337 deletions
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];