summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_anim.c461
-rw-r--r--src/battle_anim_80A7E7C.c92
-rw-r--r--src/item_use.c43
-rw-r--r--src/player_pc.c898
-rw-r--r--src/rom_8077ABC.c192
5 files changed, 852 insertions, 834 deletions
diff --git a/src/battle_anim.c b/src/battle_anim.c
index a18453fa1..89798019c 100644
--- a/src/battle_anim.c
+++ b/src/battle_anim.c
@@ -8,6 +8,9 @@
#include "sprite.h"
#include "task.h"
+// sprites start at 10000 and thus must be subtracted of 10000 to account for the true index.
+#define GET_TRUE_SPRITE_INDEX(i) (i - 10000)
+
extern u8 unk_2000000[];
extern u16 gUnknown_02024A6A[4];
extern u8 gUnknown_02024BE0[];
@@ -15,22 +18,22 @@ extern u8 gPlayerMonIndex;
extern u8 gEnemyMonIndex;
EWRAM_DATA const u8 *gBattleAnimScriptPtr = NULL;
EWRAM_DATA const u8 *gBattleAnimScriptRetAddr = NULL;
-EWRAM_DATA void (*gUnknown_0202F7AC)(void) = NULL;
-EWRAM_DATA s8 gUnknown_0202F7B0 = 0;
-EWRAM_DATA u8 gUnknown_0202F7B1 = 0;
-EWRAM_DATA u8 gUnknown_0202F7B2 = 0;
-EWRAM_DATA u8 gUnknown_0202F7B3 = 0;
+EWRAM_DATA void (*gAnimScriptCallback)(void) = NULL;
+EWRAM_DATA s8 gAnimFramesToWait = 0;
+EWRAM_DATA u8 gAnimScriptActive = FALSE;
+EWRAM_DATA u8 gAnimVisualTaskCount = 0;
+EWRAM_DATA u8 gAnimSoundTaskCount = 0;
EWRAM_DATA u32 gUnknown_0202F7B4 = 0;
EWRAM_DATA u32 gUnknown_0202F7B8 = 0;
EWRAM_DATA u16 gUnknown_0202F7BC = 0;
EWRAM_DATA u8 gUnknown_0202F7BE = 0;
EWRAM_DATA u16 gUnknown_0202F7C0 = 0;
-EWRAM_DATA u8 gUnknown_0202F7C2[2] = {0};
+EWRAM_DATA u8 gMonAnimTaskIdArray[2] = {0};
EWRAM_DATA u8 gUnknown_0202F7C4 = 0;
EWRAM_DATA u8 gUnknown_0202F7C5 = 0;
-EWRAM_DATA u16 gUnknown_0202F7C6 = 0;
-EWRAM_DATA u8 gUnknown_0202F7C8 = 0;
-EWRAM_DATA u8 gUnknown_0202F7C9 = 0;
+EWRAM_DATA u16 gAnimMoveIndex = 0; // set but unused.
+EWRAM_DATA u8 gBattleAnimPlayerMonIndex = 0;
+EWRAM_DATA u8 gBattleAnimEnemyMonIndex = 0;
EWRAM_DATA u16 gUnknown_0202F7CA[4] = {0};
EWRAM_DATA u8 gUnknown_0202F7D2 = 0;
extern u16 gUnknown_030041B4;
@@ -41,8 +44,8 @@ extern u16 gUnknown_03004280;
extern u16 gUnknown_03004288;
extern u16 gUnknown_030042C0;
extern u16 gUnknown_030042C4;
-extern u16 gUnknown_03004AF0;
-extern u16 gUnknown_03004B10[8];
+extern u16 gSoundAnimFramesToWait;
+extern u16 gAnimSpriteIndexArray[8];
extern s16 gBattleAnimArgs[8];
extern struct MusicPlayerInfo gMPlay_BGM;
extern struct MusicPlayerInfo gMPlay_SE1;
@@ -69,13 +72,13 @@ extern void sub_800D7B8(void);
extern u8 obj_id_for_side_relative_to_move();
extern u8 battle_get_per_side_status_permutated();
-static void sub_80759D0(void);
+static void RunAnimScriptCommand(void);
static void ScriptCmd_loadsprite(void);
static void ScriptCmd_unloadsprite(void);
static void ScriptCmd_sprite(void);
static void ScriptCmd_createtask(void);
static void ScriptCmd_delay(void);
-static void ScriptCmd_wait(void);
+static void ScriptCmd_waitforvisualfinish(void);
static void ScriptCmd_hang1(void);
static void ScriptCmd_hang2(void);
static void ScriptCmd_end(void);
@@ -135,7 +138,7 @@ static void (*const sScriptCmdTable[])(void) = {
ScriptCmd_sprite,
ScriptCmd_createtask,
ScriptCmd_delay,
- ScriptCmd_wait,
+ ScriptCmd_waitforvisualfinish,
ScriptCmd_hang1,
ScriptCmd_hang2,
ScriptCmd_end,
@@ -184,49 +187,54 @@ void battle_anim_clear_some_data(void)
{
s32 i;
- gUnknown_0202F7B0 = 0;
- gUnknown_0202F7B1 = 0;
- gUnknown_0202F7B2 = 0;
- gUnknown_0202F7B3 = 0;
+ gAnimFramesToWait = 0;
+ gAnimScriptActive = FALSE;
+ gAnimVisualTaskCount = 0;
+ gAnimSoundTaskCount = 0;
gUnknown_0202F7B4 = 0;
gUnknown_0202F7B8 = 0;
gUnknown_0202F7BC = 0;
gUnknown_0202F7BE = 0;
+
+ // clear index array.
for (i = 0; i < 8; i++)
- gUnknown_03004B10[i] |= 0xFFFF;
+ gAnimSpriteIndexArray[i] |= 0xFFFF;
+
+ // clear anim args.
for (i = 0; i < 8; i++)
gBattleAnimArgs[i] = 0;
- gUnknown_0202F7C2[0] = 0xFF;
- gUnknown_0202F7C2[1] = -1;
+
+ gMonAnimTaskIdArray[0] = 0xFF;
+ gMonAnimTaskIdArray[1] = 0xFF;
gUnknown_0202F7C4 = 0;
gUnknown_0202F7C5 = 0;
- gUnknown_0202F7C6 = 0;
- gUnknown_0202F7C8 = 0;
- gUnknown_0202F7C9 = 0;
+ gAnimMoveIndex = 0;
+ gBattleAnimPlayerMonIndex = 0;
+ gBattleAnimEnemyMonIndex = 0;
gUnknown_0202F7D2 = 0;
}
-void move_anim_start_t1(u16 a)
+void ExecuteMoveAnim(u16 move)
{
- gUnknown_0202F7C8 = gPlayerMonIndex;
- gUnknown_0202F7C9 = gEnemyMonIndex;
- move_something(gBattleAnims_Moves, a, 1);
+ gBattleAnimPlayerMonIndex = gPlayerMonIndex;
+ gBattleAnimEnemyMonIndex = gEnemyMonIndex;
+ DoMoveAnim(gBattleAnims_Moves, move, 1);
}
-void move_something(const u8 *const moveAnims[], u16 b, u8 c)
+void DoMoveAnim(const u8 *const moveAnims[], u16 move, u8 c)
{
s32 i;
- if (sub_8076BE0() == 0)
+ if (IsContest() == 0)
{
sub_8079E24();
sub_8043EB4(0);
for (i = 0; i < 4; i++)
{
if (battle_side_get_owner(i) != 0)
- gUnknown_0202F7CA[i] = GetMonData(&gEnemyParty[gUnknown_02024A6A[i]], 11);
+ gUnknown_0202F7CA[i] = GetMonData(&gEnemyParty[gUnknown_02024A6A[i]], MON_DATA_SPECIES);
else
- gUnknown_0202F7CA[i] = GetMonData(&gPlayerParty[gUnknown_02024A6A[i]], 11);
+ gUnknown_0202F7CA[i] = GetMonData(&gPlayerParty[gUnknown_02024A6A[i]], MON_DATA_SPECIES);
}
}
else
@@ -234,31 +242,37 @@ void move_something(const u8 *const moveAnims[], u16 b, u8 c)
for (i = 0; i < 4; i++)
gUnknown_0202F7CA[i] = EWRAM_19348;
}
+
if (c == 0)
- gUnknown_0202F7C6 = 0;
+ gAnimMoveIndex = 0;
else
- gUnknown_0202F7C6 = b;
+ gAnimMoveIndex = move;
+
for (i = 0; i < 8; i++)
gBattleAnimArgs[i] = 0;
- gUnknown_0202F7C2[0] = 0xFF;
- gUnknown_0202F7C2[1] = -1;
- gBattleAnimScriptPtr = moveAnims[b];
- gUnknown_0202F7B1 = 1;
- gUnknown_0202F7B0 = 0;
- gUnknown_0202F7AC = sub_80759D0;
+
+ gMonAnimTaskIdArray[0] = 0xFF;
+ gMonAnimTaskIdArray[1] = 0xFF;
+ gBattleAnimScriptPtr = moveAnims[move];
+ gAnimScriptActive = TRUE;
+ gAnimFramesToWait = 0;
+ gAnimScriptCallback = RunAnimScriptCommand;
+
for (i = 0; i < 8; i++)
- gUnknown_03004B10[i] |= 0xFFFF;
+ gAnimSpriteIndexArray[i] |= 0xFFFF;
+
if (c != 0)
{
for (i = 0; gUnknown_081C7160[i] != 0xFFFF; i++)
{
- if (b == gUnknown_081C7160[i])
+ if (move == gUnknown_081C7160[i])
{
m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128);
break;
}
}
}
+
gUnknown_030042C4 = 0;
gUnknown_03004240 = 0;
gUnknown_03004200 = 0;
@@ -269,94 +283,94 @@ void move_anim_8072740(struct Sprite *sprite)
{
FreeSpriteOamMatrix(sprite);
DestroySprite(sprite);
- gUnknown_0202F7B2--;
+ gAnimVisualTaskCount--;
}
-void move_anim_task_del(u8 taskId)
+void DestroyAnimVisualTask(u8 taskId)
{
DestroyTask(taskId);
- gUnknown_0202F7B2--;
+ gAnimVisualTaskCount--;
}
-void move_anim_related_task_del(u8 taskId)
+void DestroyAnimSoundTask(u8 taskId)
{
DestroyTask(taskId);
- gUnknown_0202F7B3--;
+ gAnimSoundTaskCount--;
}
-static void sub_8075940(u16 a)
+static void AddSpriteIndex(u16 index)
{
s32 i;
for (i = 0; i < 8; i++)
{
- if (gUnknown_03004B10[i] == 0xFFFF)
+ if (gAnimSpriteIndexArray[i] == 0xFFFF)
{
- gUnknown_03004B10[i] = a;
+ gAnimSpriteIndexArray[i] = index;
return;
}
}
}
-static void sub_8075970(u16 a)
+static void ClearSpriteIndex(u16 index)
{
s32 i;
for (i = 0; i < 8; i++)
{
- if (gUnknown_03004B10[i] == a)
+ if (gAnimSpriteIndexArray[i] == index)
{
- gUnknown_03004B10[i] |= 0xFFFF;
+ gAnimSpriteIndexArray[i] |= 0xFFFF;
return;
}
}
}
-static void move_anim_waiter(void)
+static void WaitAnimFrameCount(void)
{
- if (gUnknown_0202F7B0 <= 0)
+ if (gAnimFramesToWait <= 0)
{
- gUnknown_0202F7AC = sub_80759D0;
- gUnknown_0202F7B0 = 0;
+ gAnimScriptCallback = RunAnimScriptCommand;
+ gAnimFramesToWait = 0;
}
else
{
- gUnknown_0202F7B0--;
+ gAnimFramesToWait--;
}
}
-static void sub_80759D0(void)
+static void RunAnimScriptCommand(void)
{
do
{
sScriptCmdTable[SCRIPT_READ_8(gBattleAnimScriptPtr)]();
- } while (gUnknown_0202F7B0 == 0 && gUnknown_0202F7B1 != 0);
+ } while (gAnimFramesToWait == 0 && gAnimScriptActive != FALSE);
}
static void ScriptCmd_loadsprite(void)
{
- u16 r4;
+ u16 index;
gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- LoadCompressedObjectPic(&gBattleAnimPicTable[r4 - 10000]);
- LoadCompressedObjectPalette(&gBattleAnimPaletteTable[r4 - 10000]);
+ index = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ LoadCompressedObjectPic(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)]);
+ LoadCompressedObjectPalette(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(index)]);
gBattleAnimScriptPtr += 2;
- sub_8075940(r4 - 10000);
- gUnknown_0202F7B0 = 1;
- gUnknown_0202F7AC = move_anim_waiter;
+ AddSpriteIndex(GET_TRUE_SPRITE_INDEX(index));
+ gAnimFramesToWait = 1;
+ gAnimScriptCallback = WaitAnimFrameCount;
}
static void ScriptCmd_unloadsprite(void)
{
- u16 r4;
+ u16 index;
gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- FreeSpriteTilesByTag(gBattleAnimPicTable[r4 - 10000].tag);
- FreeSpritePaletteByTag(gBattleAnimPicTable[r4 - 10000].tag);
+ index = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ FreeSpriteTilesByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag);
+ FreeSpritePaletteByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag);
gBattleAnimScriptPtr += 2;
- sub_8075970(r4 - 10000);
+ ClearSpriteIndex(GET_TRUE_SPRITE_INDEX(index));
}
#ifdef NONMATCHING
@@ -390,7 +404,7 @@ static void ScriptCmd_sprite(void)
r4 -= 0x40;
else
r4 = -r4;
- _r0 = sub_8079E90(gUnknown_0202F7C9);
+ _r0 = sub_8079E90(gBattleAnimEnemyMonIndex);
r1 = r4;
}
@@ -401,17 +415,17 @@ static void ScriptCmd_sprite(void)
r4 -= 0x40;
else
r4 = -r4;
- _r0 = sub_8079E90(gUnknown_0202F7C8);
+ _r0 = sub_8079E90(gBattleAnimPlayerMonIndex);
r1 = r4;
}
r6 = _r0 + r1;
if ((s16)r6 < 3)
r6 = 3;
- r4 = sub_8077ABC(gUnknown_0202F7C9, 2);
- r2 = sub_8077ABC(gUnknown_0202F7C9, 3);
+ r4 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2);
+ r2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 3);
CreateSpriteAndAnimate(r7, r4, r2, r6);
- gUnknown_0202F7B2++;
+ gAnimVisualTaskCount++;
}
#else
__attribute__((naked))
@@ -479,10 +493,10 @@ _08075B34:\n\
_08075B36:\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
- ldr r0, _08075B40 @ =gUnknown_0202F7C9\n\
+ ldr r0, _08075B40 @ =gBattleAnimEnemyMonIndex\n\
b _08075B56\n\
.align 2, 0\n\
-_08075B40: .4byte gUnknown_0202F7C9\n\
+_08075B40: .4byte gBattleAnimEnemyMonIndex\n\
_08075B44:\n\
cmp r4, 0x3F\n\
bls _08075B4E\n\
@@ -494,7 +508,7 @@ _08075B4E:\n\
_08075B50:\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
- ldr r0, _08075BAC @ =gUnknown_0202F7C8\n\
+ ldr r0, _08075BAC @ =gBattleAnimPlayerMonIndex\n\
_08075B56:\n\
ldrb r0, [r0]\n\
bl sub_8079E90\n\
@@ -511,7 +525,7 @@ _08075B56:\n\
bgt _08075B74\n\
movs r6, 0x3\n\
_08075B74:\n\
- ldr r5, _08075BB0 @ =gUnknown_0202F7C9\n\
+ ldr r5, _08075BB0 @ =gBattleAnimEnemyMonIndex\n\
ldrb r0, [r5]\n\
movs r1, 0x2\n\
bl sub_8077ABC\n\
@@ -529,7 +543,7 @@ _08075B74:\n\
adds r0, r7, 0\n\
adds r1, r4, 0\n\
bl CreateSpriteAndAnimate\n\
- ldr r1, _08075BB4 @ =gUnknown_0202F7B2\n\
+ ldr r1, _08075BB4 @ =gAnimVisualTaskCount\n\
ldrb r0, [r1]\n\
adds r0, 0x1\n\
strb r0, [r1]\n\
@@ -537,9 +551,9 @@ _08075B74:\n\
pop {r0}\n\
bx r0\n\
.align 2, 0\n\
-_08075BAC: .4byte gUnknown_0202F7C8\n\
-_08075BB0: .4byte gUnknown_0202F7C9\n\
-_08075BB4: .4byte gUnknown_0202F7B2\n\
+_08075BAC: .4byte gBattleAnimPlayerMonIndex\n\
+_08075BB0: .4byte gBattleAnimEnemyMonIndex\n\
+_08075BB4: .4byte gAnimVisualTaskCount\n\
.syntax divided\n");
}
#endif
@@ -559,36 +573,39 @@ static void ScriptCmd_createtask(void)
gBattleAnimScriptPtr++;
numArgs = SCRIPT_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
+
for (i = 0; i < numArgs; i++)
{
gBattleAnimArgs[i] = SCRIPT_READ_16(gBattleAnimScriptPtr);
gBattleAnimScriptPtr += 2;
}
+
taskId = CreateTask(taskFunc, taskPriority);
taskFunc(taskId);
- gUnknown_0202F7B2++;
+ gAnimVisualTaskCount++;
}
static void ScriptCmd_delay(void)
{
gBattleAnimScriptPtr++;
- gUnknown_0202F7B0 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- if (gUnknown_0202F7B0 == 0)
- gUnknown_0202F7B0 = -1;
+ gAnimFramesToWait = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ if (gAnimFramesToWait == 0)
+ gAnimFramesToWait = -1;
gBattleAnimScriptPtr++;
- gUnknown_0202F7AC = move_anim_waiter;
+ gAnimScriptCallback = WaitAnimFrameCount;
}
-static void ScriptCmd_wait(void)
+// wait for visual tasks to finish.
+static void ScriptCmd_waitforvisualfinish(void)
{
- if (gUnknown_0202F7B2 == 0)
+ if (gAnimVisualTaskCount == 0)
{
gBattleAnimScriptPtr++;
- gUnknown_0202F7B0 = 0;
+ gAnimFramesToWait = 0;
}
else
{
- gUnknown_0202F7B0 = 1;
+ gAnimFramesToWait = 1;
}
}
@@ -603,22 +620,23 @@ static void ScriptCmd_hang2(void)
static void ScriptCmd_end(void)
{
s32 i;
- int zero = 0;
+ bool32 continuousAnim = FALSE;
- if (gUnknown_0202F7B2 != 0 || gUnknown_0202F7B3 != 0
- || gUnknown_0202F7C2[0] != 0xFF || gUnknown_0202F7C2[1] != 0xFF)
+ // keep waiting as long as there is animations to be done.
+ if (gAnimVisualTaskCount != 0 || gAnimSoundTaskCount != 0
+ || gMonAnimTaskIdArray[0] != 0xFF || gMonAnimTaskIdArray[1] != 0xFF)
{
- gUnknown_03004AF0 = 0;
- gUnknown_0202F7B0 = 1;
+ gSoundAnimFramesToWait = 0;
+ gAnimFramesToWait = 1;
return;
}
+ // finish the sound effects.
if (IsSEPlaying())
{
- gUnknown_03004AF0++;
- if (gUnknown_03004AF0 <= 0x5A)
+ if (++gSoundAnimFramesToWait <= 90) // wait 90 frames, then halt the sound effect.
{
- gUnknown_0202F7B0 = 1;
+ gAnimFramesToWait = 1;
return;
}
else
@@ -627,25 +645,29 @@ static void ScriptCmd_end(void)
m4aMPlayStop(&gMPlay_SE2);
}
}
- gUnknown_03004AF0 = 0;
+
+ // the SE has halted, so set the SE Frame Counter to 0 and continue.
+ gSoundAnimFramesToWait = 0;
+
for (i = 0; i < 8; i++)
{
- if (gUnknown_03004B10[i] != 0xFFFF)
+ if (gAnimSpriteIndexArray[i] != 0xFFFF)
{
- FreeSpriteTilesByTag(gBattleAnimPicTable[gUnknown_03004B10[i]].tag);
- FreeSpritePaletteByTag(gBattleAnimPicTable[gUnknown_03004B10[i]].tag);
- gUnknown_03004B10[i] |= 0xFFFF;
+ FreeSpriteTilesByTag(gBattleAnimPicTable[gAnimSpriteIndexArray[i]].tag);
+ FreeSpritePaletteByTag(gBattleAnimPicTable[gAnimSpriteIndexArray[i]].tag);
+ gAnimSpriteIndexArray[i] |= 0xFFFF; // set terminator.
}
}
- if (zero == 0)
+
+ if (continuousAnim == FALSE) // may have been used for debug?
{
m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256);
- if (sub_8076BE0() == 0)
+ if (IsContest() == 0)
{
sub_8079E24();
sub_8043EB4(1);
}
- gUnknown_0202F7B1 = 0;
+ gAnimScriptActive = FALSE;
}
}
@@ -672,14 +694,14 @@ static void ScriptCmd_monbg(void)
else if (r6 == 1)
r6 = 3;
if (r6 == 0 || r6 == 2)
- r5 = gUnknown_0202F7C8;
+ r5 = gBattleAnimPlayerMonIndex;
else
- r5 = gUnknown_0202F7C9;
+ r5 = gBattleAnimEnemyMonIndex;
if (b_side_obj__get_some_boolean(r5))
{
r0 = battle_get_per_side_status(r5);
r0 += 0xFF;
- if (r0 <= 1 || sub_8076BE0() != 0)
+ if (r0 <= 1 || IsContest() != 0)
r7 = 0;
else
r7 = 1;
@@ -701,7 +723,7 @@ static void ScriptCmd_monbg(void)
}
gTasks[taskId].data[5] = r7;
gTasks[taskId].data[6] = r5;
- gUnknown_0202F7C2[0] = taskId;
+ gMonAnimTaskIdArray[0] = taskId;
}
r5 ^= 2;
@@ -709,7 +731,7 @@ static void ScriptCmd_monbg(void)
{
r0 = battle_get_per_side_status(r5);
r0 += 0xFF;
- if (r0 <= 1 || sub_8076BE0() != 0)
+ if (r0 <= 1 || IsContest() != 0)
r7 = 0;
else
r7 = 1;
@@ -731,7 +753,7 @@ static void ScriptCmd_monbg(void)
}
gTasks[taskId].data[5] = r7;
gTasks[taskId].data[6] = r5;
- gUnknown_0202F7C2[1] = taskId;
+ gMonAnimTaskIdArray[1] = taskId;
}
gBattleAnimScriptPtr++;
}
@@ -739,17 +761,17 @@ static void ScriptCmd_monbg(void)
#ifdef NONMATCHING
bool8 b_side_obj__get_some_boolean(u8 a)
{
- if (sub_8076BE0() != 0)
+ if (IsContest() != 0)
{
- if (a == gUnknown_0202F7C8)
+ if (a == gBattleAnimPlayerMonIndex)
return TRUE;
else
return FALSE;
}
if (sub_8078874(a) == 0)
return FALSE;
- if (sub_8076BE0() != 0)
- return TRUE;
+ if (IsContest() != 0)
+ return TRUE; // this line wont ever be reached.
if ((EWRAM_17800[a].unk0 & 1) == 0)
return TRUE;
if (gSprites[gUnknown_02024BE0[a]].invisible)
@@ -765,24 +787,24 @@ bool8 b_side_obj__get_some_boolean(u8 a)
lsls r0, 24\n\
lsrs r4, r0, 24\n\
adds r5, r4, 0\n\
- bl sub_8076BE0\n\
+ bl IsContest\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _08075FDC\n\
- ldr r0, _08075FD8 @ =gUnknown_0202F7C8\n\
+ ldr r0, _08075FD8 @ =gBattleAnimPlayerMonIndex\n\
ldrb r0, [r0]\n\
cmp r4, r0\n\
beq _0807601C\n\
b _0807602C\n\
.align 2, 0\n\
-_08075FD8: .4byte gUnknown_0202F7C8\n\
+_08075FD8: .4byte gBattleAnimPlayerMonIndex\n\
_08075FDC:\n\
adds r0, r4, 0\n\
bl sub_8078874\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _0807602C\n\
- bl sub_8076BE0\n\
+ bl IsContest\n\
lsls r0, 24\n\
cmp r0, 0\n\
bne _0807601C\n\
@@ -863,7 +885,7 @@ void sub_8076034(u8 a, u8 b)
spriteId = gUnknown_02024BE0[a];
gUnknown_030042C0 = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32;
- if (sub_8076BE0() != 0 && sub_80AEB1C(EWRAM_19348) != 0)
+ if (IsContest() != 0 && sub_80AEB1C(EWRAM_19348) != 0)
gUnknown_030042C0--;
gUnknown_030041B4 = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32;
gSprites[gUnknown_02024BE0[a]].invisible = TRUE;
@@ -875,12 +897,12 @@ void sub_8076034(u8 a, u8 b)
addr3 = (u16 *)PLTT + s.unk8 * 16;
DmaCopy32(3, gPlttBufferUnfaded + 0x100 + a * 16, addr3, 32);
- if (sub_8076BE0() != 0)
+ if (IsContest() != 0)
r2 = 0;
else
r2 = battle_get_per_side_status(a);
sub_80E4EF8(0, 0, r2, s.unk8, (u32)s.unk0, (((s32)s.unk4 - VRAM) / 2048), REG_BG1CNT_BITFIELD.charBaseBlock);
- if (sub_8076BE0() != 0)
+ if (IsContest() != 0)
sub_8076380();
}
else
@@ -982,7 +1004,7 @@ void sub_8076464(u8 a)
struct UnknownStruct2 s;
sub_8078914(&s);
- if (a == 0 || sub_8076BE0() != 0)
+ if (a == 0 || IsContest() != 0)
{
u16 *addr2;
@@ -1082,12 +1104,12 @@ static void ScriptCmd_clearmonbg(void)
else if (r4 == 1)
r4 = 3;
if (r4 == 0 || r4 == 2)
- r5 = gUnknown_0202F7C8;
+ r5 = gBattleAnimPlayerMonIndex;
else
- r5 = gUnknown_0202F7C9;
- if (gUnknown_0202F7C2[0] != 0xFF)
+ r5 = gBattleAnimEnemyMonIndex;
+ if (gMonAnimTaskIdArray[0] != 0xFF)
gSprites[gUnknown_02024BE0[r5]].invisible = FALSE;
- if (r4 > 1 && gUnknown_0202F7C2[1] != 0xFF)
+ if (r4 > 1 && gMonAnimTaskIdArray[1] != 0xFF)
gSprites[gUnknown_02024BE0[r5 ^ 2]].invisible = FALSE;
else
r4 = 0;
@@ -1107,21 +1129,21 @@ static void sub_807672C(u8 taskId)
{
var = battle_get_per_side_status(gTasks[taskId].data[2]);
var += 0xFF;
- if (var <= 1 || sub_8076BE0() != 0)
+ if (var <= 1 || IsContest() != 0)
r4 = 0;
else
r4 = 1;
- if (gUnknown_0202F7C2[0] != 0xFF)
+ if (gMonAnimTaskIdArray[0] != 0xFF)
{
sub_8076464(r4);
- DestroyTask(gUnknown_0202F7C2[0]);
- gUnknown_0202F7C2[0] = 0xFF;
+ DestroyTask(gMonAnimTaskIdArray[0]);
+ gMonAnimTaskIdArray[0] = 0xFF;
}
if (gTasks[taskId].data[0] > 1)
{
sub_8076464(r4 ^ 1);
- DestroyTask(gUnknown_0202F7C2[1]);
- gUnknown_0202F7C2[1] = 0xFF;
+ DestroyTask(gMonAnimTaskIdArray[1]);
+ gMonAnimTaskIdArray[1] = 0xFF;
}
DestroyTask(taskId);
}
@@ -1141,14 +1163,14 @@ static void ScriptCmd_monbg_22(void)
else if (r5 == 1)
r5 = 3;
if (r5 == 0 || r5 == 2)
- r4 = gUnknown_0202F7C8;
+ r4 = gBattleAnimPlayerMonIndex;
else
- r4 = gUnknown_0202F7C9;
+ r4 = gBattleAnimEnemyMonIndex;
if (b_side_obj__get_some_boolean(r4))
{
r0 = battle_get_per_side_status(r4);
r0 += 0xFF;
- if (r0 <= 1 || sub_8076BE0() != 0)
+ if (r0 <= 1 || IsContest() != 0)
r1 = 0;
else
r1 = 1;
@@ -1160,7 +1182,7 @@ static void ScriptCmd_monbg_22(void)
{
r0 = battle_get_per_side_status(r4);
r0 += 0xFF;
- if (r0 <= 1 || sub_8076BE0() != 0)
+ if (r0 <= 1 || IsContest() != 0)
r1 = 0;
else
r1 = 1;
@@ -1183,9 +1205,9 @@ static void ScriptCmd_clearmonbg_23(void)
else if (r5 == 1)
r5 = 3;
if (r5 == 0 || r5 == 2)
- r6 = gUnknown_0202F7C8;
+ r6 = gBattleAnimPlayerMonIndex;
else
- r6 = gUnknown_0202F7C9;
+ r6 = gBattleAnimEnemyMonIndex;
if (b_side_obj__get_some_boolean(r6))
gSprites[gUnknown_02024BE0[r6]].invisible = FALSE;
if (r5 > 1 && b_side_obj__get_some_boolean(r6 ^ 2))
@@ -1210,7 +1232,7 @@ static void sub_80769A4(u8 taskId)
r4 = gTasks[taskId].data[2];
r0 = battle_get_per_side_status(r4);
r0 += 0xFF;
- if (r0 <= 1 || sub_8076BE0() != 0)
+ if (r0 <= 1 || IsContest() != 0)
r5 = 0;
else
r5 = 1;
@@ -1320,8 +1342,8 @@ static void ScriptCmd_jump(void)
gBattleAnimScriptPtr = (u8 *)addr;
}
-//IsContest, maybe
-bool8 sub_8076BE0(void)
+// Uses of this function that rely on a TRUE return are expecting inBattle to not be ticked as defined in contest behavior. As a result, if misused, this function cannot reliably discern between field and contest status and could result in undefined behavior.
+bool8 IsContest(void)
{
if (!gMain.inBattle)
return TRUE;
@@ -1355,9 +1377,9 @@ static void ScriptCmd_fadetobg_25(void)
r6 = gBattleAnimScriptPtr[2];
gBattleAnimScriptPtr += 3;
taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
- if (sub_8076BE0() != 0)
+ if (IsContest() != 0)
gTasks[taskId].data[0] = r6;
- else if (battle_side_get_owner(gUnknown_0202F7C9) == 0)
+ else if (battle_side_get_owner(gBattleAnimEnemyMonIndex) == 0)
gTasks[taskId].data[0] = r7;
else
gTasks[taskId].data[0] = r8;
@@ -1402,15 +1424,15 @@ static void task_p5_load_battle_screen_elements(u8 taskId)
static void sub_8076DB8(u16 a)
{
- if (sub_8076BE0())
+ if (IsContest())
{
void *tilemap = gBattleAnimBackgroundTable[a].tilemap;
void *dmaSrc;
void *dmaDest;
- sub_800D238(tilemap, sub_8076BE0() ? EWRAM_14800 : EWRAM_18000);
- sub_80763FC(sub_80789BC(), sub_8076BE0() ? EWRAM_14800 : EWRAM_18000, 0x100, 0);
- dmaSrc = sub_8076BE0() ? EWRAM_14800 : EWRAM_18000;
+ sub_800D238(tilemap, IsContest() ? EWRAM_14800 : EWRAM_18000);
+ sub_80763FC(sub_80789BC(), IsContest() ? EWRAM_14800 : EWRAM_18000, 0x100, 0);
+ dmaSrc = IsContest() ? EWRAM_14800 : EWRAM_18000;
dmaDest = (void *)(VRAM + 0xD000);
DmaCopy32(3, dmaSrc, dmaDest, 0x800);
LZDecompressVram(gBattleAnimBackgroundTable[a].image, (void *)(VRAM + 0x2000));
@@ -1426,7 +1448,7 @@ static void sub_8076DB8(u16 a)
static void dp01t_11_3_message_for_player_only(void)
{
- if (sub_8076BE0())
+ if (IsContest())
sub_80AB2AC();
else
sub_800D7B8();
@@ -1447,11 +1469,11 @@ static void ScriptCmd_waitbgfadeout(void)
if (gUnknown_0202F7C5 == 2)
{
gBattleAnimScriptPtr++;
- gUnknown_0202F7B0 = 0;
+ gAnimFramesToWait = 0;
}
else
{
- gUnknown_0202F7B0 = 1;
+ gAnimFramesToWait = 1;
}
}
@@ -1460,11 +1482,11 @@ static void ScriptCmd_waitbgfadein(void)
if (gUnknown_0202F7C5 == 0)
{
gBattleAnimScriptPtr++;
- gUnknown_0202F7B0 = 0;
+ gAnimFramesToWait = 0;
}
else
{
- gUnknown_0202F7B0 = 1;
+ gAnimFramesToWait = 1;
}
}
@@ -1479,16 +1501,16 @@ static void ScriptCmd_changebg(void)
/*
s8 sub_8076F98(s8 a)
{
- if (!sub_8076BE0() && (EWRAM_17810[gUnknown_0202F7C8].unk0 & 0x10))
+ if (!IsContest() && (EWRAM_17810[gBattleAnimPlayerMonIndex].unk0 & 0x10))
{
- a = battle_side_get_owner(gUnknown_0202F7C8) ? 0xC0 : 0x3F;
+ a = battle_side_get_owner(gBattleAnimPlayerMonIndex) ? 0xC0 : 0x3F;
}
//_08076FDC
else
{
- if (sub_8076BE0())
+ if (IsContest())
{
- if (gUnknown_0202F7C8 == gUnknown_0202F7C9 && gUnknown_0202F7C8 == 2
+ if (gBattleAnimPlayerMonIndex == gBattleAnimEnemyMonIndex && gBattleAnimPlayerMonIndex == 2
&& a == 0x3F)
{
//jump to _0807707A
@@ -1500,9 +1522,9 @@ s8 sub_8076F98(s8 a)
//_08077004
else
{
- if (battle_side_get_owner(gUnknown_0202F7C8) == 0)
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex) == 0)
{
- if (battle_side_get_owner(gUnknown_0202F7C9) == 0)
+ if (battle_side_get_owner(gBattleAnimEnemyMonIndex) == 0)
}
//_08077042
else
@@ -1522,11 +1544,11 @@ s8 sub_8076F98(s8 a)
push {r4,lr}\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
- bl sub_8076BE0\n\
+ bl IsContest\n\
lsls r0, 24\n\
cmp r0, 0\n\
bne _08076FDC\n\
- ldr r0, _08076FD4 @ =gUnknown_0202F7C8\n\
+ ldr r0, _08076FD4 @ =gBattleAnimPlayerMonIndex\n\
ldrb r2, [r0]\n\
lsls r0, r2, 1\n\
adds r0, r2\n\
@@ -1547,15 +1569,15 @@ s8 sub_8076F98(s8 a)
movs r4, 0x3F\n\
b _0807706E\n\
.align 2, 0\n\
-_08076FD4: .4byte gUnknown_0202F7C8\n\
+_08076FD4: .4byte gBattleAnimPlayerMonIndex\n\
_08076FD8: .4byte 0x02017810\n\
_08076FDC:\n\
- bl sub_8076BE0\n\
+ bl IsContest\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _08077004\n\
- ldr r0, _08076FFC @ =gUnknown_0202F7C8\n\
- ldr r1, _08077000 @ =gUnknown_0202F7C9\n\
+ ldr r0, _08076FFC @ =gBattleAnimPlayerMonIndex\n\
+ ldr r1, _08077000 @ =gBattleAnimEnemyMonIndex\n\
ldrb r0, [r0]\n\
ldrb r1, [r1]\n\
cmp r0, r1\n\
@@ -1566,16 +1588,16 @@ _08076FDC:\n\
beq _0807707A\n\
b _08077068\n\
.align 2, 0\n\
-_08076FFC: .4byte gUnknown_0202F7C8\n\
-_08077000: .4byte gUnknown_0202F7C9\n\
+_08076FFC: .4byte gBattleAnimPlayerMonIndex\n\
+_08077000: .4byte gBattleAnimEnemyMonIndex\n\
_08077004:\n\
- ldr r0, _0807702C @ =gUnknown_0202F7C8\n\
+ ldr r0, _0807702C @ =gBattleAnimPlayerMonIndex\n\
ldrb r0, [r0]\n\
bl battle_side_get_owner\n\
lsls r0, 24\n\
cmp r0, 0\n\
bne _08077042\n\
- ldr r0, _08077030 @ =gUnknown_0202F7C9\n\
+ ldr r0, _08077030 @ =gBattleAnimEnemyMonIndex\n\
ldrb r0, [r0]\n\
bl battle_side_get_owner\n\
lsls r0, 24\n\
@@ -1588,8 +1610,8 @@ _08077004:\n\
movs r4, 0xC0\n\
b _0807706E\n\
.align 2, 0\n\
-_0807702C: .4byte gUnknown_0202F7C8\n\
-_08077030: .4byte gUnknown_0202F7C9\n\
+_0807702C: .4byte gBattleAnimPlayerMonIndex\n\
+_08077030: .4byte gBattleAnimEnemyMonIndex\n\
_08077034:\n\
movs r0, 0x40\n\
negs r0, r0\n\
@@ -1599,7 +1621,7 @@ _08077034:\n\
lsls r0, 24\n\
b _0807706C\n\
_08077042:\n\
- ldr r0, _08077064 @ =gUnknown_0202F7C9\n\
+ ldr r0, _08077064 @ =gBattleAnimEnemyMonIndex\n\
ldrb r0, [r0]\n\
bl battle_side_get_owner\n\
lsls r0, 24\n\
@@ -1615,7 +1637,7 @@ _08077042:\n\
movs r4, 0x3F\n\
b _0807706E\n\
.align 2, 0\n\
-_08077064: .4byte gUnknown_0202F7C9\n\
+_08077064: .4byte gBattleAnimEnemyMonIndex\n\
_08077068:\n\
lsls r0, r4, 24\n\
negs r0, r0\n\
@@ -1647,16 +1669,16 @@ _08077088:\n\
s8 sub_8077094(s8 a)
{
- if (!sub_8076BE0() && (EWRAM_17810[gUnknown_0202F7C8].unk0 & 0x10))
+ if (!IsContest() && (EWRAM_17810[gBattleAnimPlayerMonIndex].unk0 & 0x10))
{
- if (battle_side_get_owner(gUnknown_0202F7C8) != 0)
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex) != 0)
a = 0x3F;
else
a = 0xC0;
}
else
{
- if (battle_side_get_owner(gUnknown_0202F7C8) != 0 || sub_8076BE0() != 0)
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex) != 0 || IsContest() != 0)
a = -a;
}
return a;
@@ -1735,7 +1757,7 @@ static void ScriptCmd_panse_1B(void)
gTasks[taskId].data[3] = r7;
gTasks[taskId].data[4] = panning;
PlaySE12WithPanning(songNum, panning);
- gUnknown_0202F7B3++;
+ gAnimSoundTaskCount++;
gBattleAnimScriptPtr += 6;
}
@@ -1763,7 +1785,7 @@ static void c3_08073CEC(u8 taskId)
{
r4 = r3;
DestroyTask(taskId);
- gUnknown_0202F7B3--;
+ gAnimSoundTaskCount--;
}
//_080772D8
else
@@ -1773,7 +1795,7 @@ static void c3_08073CEC(u8 taskId)
if (r4 < r3)
goto check;
DestroyTask(taskId);
- gUnknown_0202F7B3--;
+ gAnimSoundTaskCount--;
}
else
{
@@ -1783,7 +1805,7 @@ static void c3_08073CEC(u8 taskId)
if (r7 != 0)
{
DestroyTask(taskId);
- gUnknown_0202F7B3--;
+ gAnimSoundTaskCount--;
}
}
}
@@ -1857,7 +1879,7 @@ _080772FC:\n\
lsrs r4, r2, 16\n\
adds r0, r5, 0\n\
bl DestroyTask\n\
- ldr r1, _0807731C @ =gUnknown_0202F7B3\n\
+ ldr r1, _0807731C @ =gAnimSoundTaskCount\n\
ldrb r0, [r1]\n\
subs r0, 0x1\n\
strb r0, [r1]\n\
@@ -1870,7 +1892,7 @@ _08077314:\n\
pop {r0}\n\
bx r0\n\
.align 2, 0\n\
-_0807731C: .4byte gUnknown_0202F7B3\n\
+_0807731C: .4byte gAnimSoundTaskCount\n\
.syntax divided\n");
}
#endif
@@ -1897,7 +1919,7 @@ static void ScriptCmd_panse_26(void)
gTasks[taskId].data[3] = r10;
gTasks[taskId].data[4] = r4;
PlaySE12WithPanning(r8, r4);
- gUnknown_0202F7B3++;
+ gAnimSoundTaskCount++;
gBattleAnimScriptPtr += 6;
}
@@ -1929,7 +1951,7 @@ static void ScriptCmd_panse_27(void)
gTasks[taskId].data[3] = r7;
gTasks[taskId].data[4] = r6;
PlaySE12WithPanning(r9, r6);
- gUnknown_0202F7B3++;
+ gAnimSoundTaskCount++;
gBattleAnimScriptPtr += 6;
}
@@ -1955,7 +1977,7 @@ static void ScriptCmd_panse_1C(void)
gTasks[taskId].data[3] = r9;
gTasks[taskId].data[8] = r8;
gTasks[taskId].func(taskId);
- gUnknown_0202F7B3++;
+ gAnimSoundTaskCount++;
gBattleAnimScriptPtr += 5;
}
@@ -1979,7 +2001,7 @@ static void sub_80774FC(u8 taskId)
if (r4 == 0)
{
DestroyTask(taskId);
- gUnknown_0202F7B3--;
+ gAnimSoundTaskCount--;
}
}
}
@@ -2001,7 +2023,7 @@ static void ScriptCmd_panse_1D(void)
gTasks[taskId].data[0] = r5;
gTasks[taskId].data[1] = r4;
gTasks[taskId].data[2] = r8;
- gUnknown_0202F7B3++;
+ gAnimSoundTaskCount++;
gBattleAnimScriptPtr += 4;
}
@@ -2015,7 +2037,7 @@ static void sub_80775CC(u8 taskId)
{
PlaySE12WithPanning(gTasks[taskId].data[0], gTasks[taskId].data[1]);
DestroyTask(taskId);
- gUnknown_0202F7B3--;
+ gAnimSoundTaskCount--;
}
}
@@ -2038,35 +2060,34 @@ static void ScriptCmd_createtask_1F(void)
}
taskId = CreateTask(func, 1);
func(taskId);
- gUnknown_0202F7B3++;
+ gAnimSoundTaskCount++;
}
static void ScriptCmd_waitsound(void)
{
- if (gUnknown_0202F7B3 != 0)
+ if (gAnimSoundTaskCount != 0)
{
- gUnknown_03004AF0 = 0;
- gUnknown_0202F7B0 = 1;
+ gSoundAnimFramesToWait = 0;
+ gAnimFramesToWait = 1;
}
else if (IsSEPlaying())
{
- gUnknown_03004AF0++;
- if (gUnknown_03004AF0 > 0x5A)
+ if (++gSoundAnimFramesToWait > 90)
{
m4aMPlayStop(&gMPlay_SE1);
m4aMPlayStop(&gMPlay_SE2);
- gUnknown_03004AF0 = 0;
+ gSoundAnimFramesToWait = 0;
}
else
{
- gUnknown_0202F7B0 = 1;
+ gAnimFramesToWait = 1;
}
}
else
{
- gUnknown_03004AF0 = 0;
+ gSoundAnimFramesToWait = 0;
gBattleAnimScriptPtr++;
- gUnknown_0202F7B0 = 0;
+ gAnimFramesToWait = 0;
}
}
@@ -2095,7 +2116,7 @@ static void ScriptCmd_jumpunkcond(void)
u8 *addr;
gBattleAnimScriptPtr++;
- if (sub_8076BE0())
+ if (IsContest())
{
addr = (u8 *)SCRIPT_READ_32(gBattleAnimScriptPtr);
gBattleAnimScriptPtr = addr;
@@ -2115,11 +2136,11 @@ static void ScriptCmd_monbgprio_28(void)
r2 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
if (r2 != 0)
- r0 = gUnknown_0202F7C9;
+ r0 = gBattleAnimEnemyMonIndex;
else
- r0 = gUnknown_0202F7C8;
+ r0 = gBattleAnimPlayerMonIndex;
r4 = battle_get_per_side_status(r0);
- if (!sub_8076BE0() && (r4 == 0 || r4 == 3))
+ if (!IsContest() && (r4 == 0 || r4 == 3))
{
REG_BG1CNT_BITFIELD.priority = 1;
REG_BG2CNT_BITFIELD.priority = 2;
@@ -2129,7 +2150,7 @@ static void ScriptCmd_monbgprio_28(void)
static void ScriptCmd_monbgprio_29(void)
{
gBattleAnimScriptPtr++;
- if (!sub_8076BE0())
+ if (!IsContest())
{
REG_BG1CNT_BITFIELD.priority = 1;
REG_BG2CNT_BITFIELD.priority = 2;
@@ -2144,14 +2165,14 @@ static void ScriptCmd_monbgprio_2A(void)
r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
- if (battle_side_get_owner(gUnknown_0202F7C8) != battle_side_get_owner(gUnknown_0202F7C9))
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex) != battle_side_get_owner(gBattleAnimEnemyMonIndex))
{
if (r6 != 0)
- r0 = gUnknown_0202F7C9;
+ r0 = gBattleAnimEnemyMonIndex;
else
- r0 = gUnknown_0202F7C8;
+ r0 = gBattleAnimPlayerMonIndex;
r4 = battle_get_per_side_status(r0);
- if (!sub_8076BE0() && (r4 == 0 || r4 == 3))
+ if (!IsContest() && (r4 == 0 || r4 == 3))
{
REG_BG1CNT_BITFIELD.priority = 1;
REG_BG2CNT_BITFIELD.priority = 2;
@@ -2195,17 +2216,17 @@ static void ScriptCmd_doublebattle_2D(void)
r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
- if (!sub_8076BE0() && IsDoubleBattle()
- && battle_side_get_owner(gUnknown_0202F7C8) == battle_side_get_owner(gUnknown_0202F7C9))
+ if (!IsContest() && IsDoubleBattle()
+ && battle_side_get_owner(gBattleAnimPlayerMonIndex) == battle_side_get_owner(gBattleAnimEnemyMonIndex))
{
if (r7 == 0)
{
- r4 = battle_get_per_side_status_permutated(gUnknown_0202F7C8);
+ r4 = battle_get_per_side_status_permutated(gBattleAnimPlayerMonIndex);
spriteId = obj_id_for_side_relative_to_move(0);
}
else
{
- r4 = battle_get_per_side_status_permutated(gUnknown_0202F7C9);
+ r4 = battle_get_per_side_status_permutated(gBattleAnimEnemyMonIndex);
spriteId = obj_id_for_side_relative_to_move(1);
}
if (spriteId != 0xFF)
@@ -2229,17 +2250,17 @@ static void ScriptCmd_doublebattle_2E(void)
r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
- if (!sub_8076BE0() && IsDoubleBattle()
- && battle_side_get_owner(gUnknown_0202F7C8) == battle_side_get_owner(gUnknown_0202F7C9))
+ if (!IsContest() && IsDoubleBattle()
+ && battle_side_get_owner(gBattleAnimPlayerMonIndex) == battle_side_get_owner(gBattleAnimEnemyMonIndex))
{
if (r7 == 0)
{
- r4 = battle_get_per_side_status_permutated(gUnknown_0202F7C8);
+ r4 = battle_get_per_side_status_permutated(gBattleAnimPlayerMonIndex);
spriteId = obj_id_for_side_relative_to_move(0);
}
else
{
- r4 = battle_get_per_side_status_permutated(gUnknown_0202F7C9);
+ r4 = battle_get_per_side_status_permutated(gBattleAnimEnemyMonIndex);
spriteId = obj_id_for_side_relative_to_move(1);
}
if (spriteId != 0xFF && r4 == 2)
diff --git a/src/battle_anim_80A7E7C.c b/src/battle_anim_80A7E7C.c
index 931b923b7..285a782f3 100644
--- a/src/battle_anim_80A7E7C.c
+++ b/src/battle_anim_80A7E7C.c
@@ -12,11 +12,11 @@ extern s16 gBattleAnimArgs[8];
extern u8 gUnknown_02024BE0[];
extern s32 gUnknown_0202F7B8;
extern u16 gUnknown_0202F7BC;
-extern u8 gUnknown_0202F7C8;
-extern u8 gUnknown_0202F7C9;
+extern u8 gBattleAnimPlayerMonIndex;
+extern u8 gBattleAnimEnemyMonIndex;
extern u8 obj_id_for_side_relative_to_move(u8 side);
-extern void move_anim_task_del(u8 task);
+extern void DestroyAnimVisualTask(u8 task);
extern u8 battle_get_side_with_given_state(u8 state);
extern u8 battle_side_get_owner(u8 side);
extern void oamt_set_x3A_32(struct Sprite *sprite, void(*callback)(struct Sprite*));
@@ -51,7 +51,7 @@ void sub_80A7E7C(u8 task)
sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
if (sprite == 0xff)
{
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
gSprites[sprite].pos2.x = gBattleAnimArgs[1];
@@ -91,7 +91,7 @@ static void sub_80A7EF0(u8 task)
{
SPRITE.pos2.x = 0;
SPRITE.pos2.y = 0;
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
}
@@ -113,7 +113,7 @@ void sub_80A7FA0(u8 task)
sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
if (sprite == 0xff)
{
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
}
@@ -143,11 +143,11 @@ void sub_80A7FA0(u8 task)
}
else
{
- sprite = gUnknown_02024BE0[gUnknown_0202F7C8];
+ sprite = gUnknown_02024BE0[gBattleAnimPlayerMonIndex];
}
if (r6)
{
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
gSprites[sprite].pos2.x = gBattleAnimArgs[1];
@@ -187,7 +187,7 @@ static void sub_80A808C(u8 task)
{
SPRITE.pos2.x = 0;
SPRITE.pos2.y = 0;
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
}
@@ -203,7 +203,7 @@ void sub_80A8154(u8 task)
sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
if (sprite == 0xff)
{
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
gSprites[sprite].pos2.x += gBattleAnimArgs[1];
@@ -246,7 +246,7 @@ static void sub_80A81D8(u8 task)
SPRITE.pos2.x -= TASK.data[5] / 2;
SPRITE.pos2.y -= TASK.data[6] / 2;
}
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
}
@@ -289,7 +289,7 @@ static void sub_80A8374(u8 task)
gSprites[sprite].pos2.y = TASK.data[9] >> 8;
if (--TASK.data[4] == 0)
{
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
}
@@ -335,14 +335,14 @@ static void sub_80A8488(u8 task)
{
gSprites[sprite].pos2.x = 0;
gSprites[sprite].pos2.y = 0;
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
}
void sub_80A8500(u8 task)
{
- if (battle_side_get_owner(gUnknown_0202F7C8))
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
@@ -352,7 +352,7 @@ void sub_80A8500(u8 task)
void sub_80A8530(struct Sprite *sprite)
{
sprite->invisible = TRUE;
- if (battle_side_get_owner(gUnknown_0202F7C8))
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex))
{
sprite->data1 = -gBattleAnimArgs[1];
}
@@ -362,7 +362,7 @@ void sub_80A8530(struct Sprite *sprite)
}
sprite->data0 = gBattleAnimArgs[0];
sprite->data2 = 0;
- sprite->data3 = gUnknown_02024BE0[gUnknown_0202F7C8];
+ sprite->data3 = gUnknown_02024BE0[gBattleAnimPlayerMonIndex];
sprite->data4 = gBattleAnimArgs[0];
oamt_set_x3A_32(sprite, sub_80A85A4);
sprite->callback = sub_8078458;
@@ -404,11 +404,11 @@ void sub_80A8638(struct Sprite *sprite)
int spriteId;
if (!gBattleAnimArgs[0])
{
- spriteId = gUnknown_02024BE0[gUnknown_0202F7C8];
+ spriteId = gUnknown_02024BE0[gBattleAnimPlayerMonIndex];
}
else
{
- spriteId = gUnknown_02024BE0[gUnknown_0202F7C9];
+ spriteId = gUnknown_02024BE0[gBattleAnimEnemyMonIndex];
}
sprite->data0 = gBattleAnimArgs[2];
sprite->data1 = gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x;
@@ -471,11 +471,11 @@ void sub_80A8764(struct Sprite *sprite)
u8 spriteId;
if (!gBattleAnimArgs[0])
{
- v1 = gUnknown_0202F7C8;
+ v1 = gBattleAnimPlayerMonIndex;
}
else
{
- v1 = gUnknown_0202F7C9;
+ v1 = gBattleAnimEnemyMonIndex;
}
spriteId = gUnknown_02024BE0[v1];
if (battle_side_get_owner(v1))
@@ -507,11 +507,11 @@ void sub_80A8818(struct Sprite *sprite)
sprite->invisible = TRUE;
if (!gBattleAnimArgs[0])
{
- v1 = gUnknown_0202F7C8;
+ v1 = gBattleAnimPlayerMonIndex;
}
else
{
- v1 = gUnknown_0202F7C9;
+ v1 = gBattleAnimEnemyMonIndex;
}
spriteId = gUnknown_02024BE0[v1];
if (battle_side_get_owner(v1))
@@ -555,7 +555,7 @@ void sub_80A8920(u8 task)
{
s16 r7;
r7 = 0x8000 / gBattleAnimArgs[3];
- if (battle_side_get_owner(gUnknown_0202F7C8))
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
gBattleAnimArgs[5] = -gBattleAnimArgs[5];
@@ -599,7 +599,7 @@ static void sub_80A8A18(u8 task)
gSprites[spriteId].pos2.x = (TASK.data[12] >> 8) + (TASK.data[11] >> 8);
if (--TASK.data[6] == 0)
{
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
}
@@ -617,27 +617,27 @@ void sub_80A8A80(u8 task)
spriteId = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
break;
case 2:
- if (!b_side_obj__get_some_boolean(gUnknown_0202F7C8 ^ 2))
+ if (!b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2))
{
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
- spriteId = gUnknown_02024BE0[gUnknown_0202F7C8 ^ 2];
+ spriteId = gUnknown_02024BE0[gBattleAnimPlayerMonIndex ^ 2];
break;
case 3:
- if (!b_side_obj__get_some_boolean(gUnknown_0202F7C9 ^ 2))
+ if (!b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2))
{
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
- spriteId = gUnknown_02024BE0[gUnknown_0202F7C9 ^ 2];
+ spriteId = gUnknown_02024BE0[gBattleAnimEnemyMonIndex ^ 2];
break;
default:
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
TASK.data[0] = spriteId;
- if (battle_side_get_owner(gUnknown_0202F7C9))
+ if (battle_side_get_owner(gBattleAnimEnemyMonIndex))
{
TASK.data[1] = gBattleAnimArgs[1];
}
@@ -654,7 +654,7 @@ static void sub_80A8B3C(u8 task)
gSprites[spriteId].pos2.x += TASK.data[1];
if (gSprites[spriteId].pos2.x + gSprites[spriteId].pos1.x + 0x20 > 0x130u)
{
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
}
@@ -662,7 +662,7 @@ static void sub_80A8B3C(u8 task)
void sub_80A8B88(u8 task)
{
u8 spriteId;
- if (battle_side_get_owner(gUnknown_0202F7C8))
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
@@ -674,11 +674,11 @@ void sub_80A8B88(u8 task)
TASK.data[4] = spriteId;
if (gBattleAnimArgs[4] == 0)
{
- TASK.data[5] = gUnknown_0202F7C8;
+ TASK.data[5] = gBattleAnimPlayerMonIndex;
}
else
{
- TASK.data[5] = gUnknown_0202F7C9;
+ TASK.data[5] = gBattleAnimEnemyMonIndex;
}
TASK.data[12] = 1;
TASK.func = sub_80A8C0C;
@@ -719,7 +719,7 @@ static void sub_80A8C0C(u8 task)
{
gSprites[spriteId].pos2.x = 0;
gSprites[spriteId].pos2.y = 0;
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
}
@@ -759,7 +759,7 @@ static void sub_80A8D8C(u8 task)
else
{
sub_8078F40(spriteId);
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
}
@@ -783,7 +783,7 @@ void sub_80A8E04(u8 task)
TASK.data[4] = gBattleAnimArgs[1];
TASK.data[5] = spriteId;
TASK.data[6] = gBattleAnimArgs[3];
- if (sub_8076BE0())
+ if (IsContest())
{
TASK.data[7] = 1;
}
@@ -791,16 +791,16 @@ void sub_80A8E04(u8 task)
{
if (gBattleAnimArgs[2] == 0)
{
- TASK.data[7] = !battle_side_get_owner(gUnknown_0202F7C8);
+ TASK.data[7] = !battle_side_get_owner(gBattleAnimPlayerMonIndex);
}
else
{
- TASK.data[7] = !battle_side_get_owner(gUnknown_0202F7C9);
+ TASK.data[7] = !battle_side_get_owner(gBattleAnimEnemyMonIndex);
}
}
if (TASK.data[7])
{
- if (!sub_8076BE0())
+ if (!IsContest())
{
TASK.data[3] *= -1;
TASK.data[4] *= -1;
@@ -818,14 +818,14 @@ void sub_80A8EFC(u8 task)
TASK.data[2] = gBattleAnimArgs[0];
if (gBattleAnimArgs[2] == 0)
{
- if (battle_side_get_owner(gUnknown_0202F7C8))
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
}
else
{
- if (battle_side_get_owner(gUnknown_0202F7C9))
+ if (battle_side_get_owner(gBattleAnimEnemyMonIndex))
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
}
@@ -863,7 +863,7 @@ void sub_80A8FD8(u8 task)
sub_8078F40(TASK.data[5]);
case 0:
default:
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
case 2:
TASK.data[1] = 0;
@@ -947,7 +947,7 @@ static void sub_80A913C(u8 taskId)
{
gSprites[task->data[7]].pos2.x = 0;
gSprites[task->data[7]].pos2.y = 0;
- move_anim_task_del(taskId);
+ DestroyAnimVisualTask(taskId);
return;
}
}
diff --git a/src/item_use.c b/src/item_use.c
index 5c485bb11..923957c6b 100644
--- a/src/item_use.c
+++ b/src/item_use.c
@@ -112,36 +112,29 @@ void ItemUseOutOfBattle_TMHM(u8);
void ItemUseOutOfBattle_EvolutionStone(u8);
void ItemUseOutOfBattle_CannotUse(u8);
-static const u8 Unknown_83D619C[] = _(
- "この チケットで ふねに のりほうだい\n"
- "はやく のってみたいな"
-);
+const u8 gSSTidalBetaString[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな");
+const u8 gSSTidalBetaString2[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな");
-static const u8 Unknown_83D61BC[] = _(
- "この チケットで ふねに のりほうだい\n"
- "はやく のってみたいな"
-);
-
-static const u8 *const gUnknown_083D61DC[] =
+const struct TextStruct gUnknown_083D61DC[2] =
{
- Unknown_83D619C,
- Unknown_83D61BC,
+ gSSTidalBetaString,
+ gSSTidalBetaString2,
};
-static void (* const gExitToOverworldFuncList[])(void) =
+const struct FuncStruct gExitToOverworldFuncList[3] =
{
- sub_808B020,
- c2_exit_to_overworld_2_switch,
- sub_810B96C,
+ sub_808B020,
+ c2_exit_to_overworld_2_switch,
+ sub_810B96C,
};
-static const u8 gItemFinderDirections[] = { DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST };
+const u8 gItemFinderDirections[] = { DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST };
-static void (* const gUnknown_083D61F4[])(u8) =
+const struct FuncStruct gUnknown_083D61F4[2] =
{
- sub_80C9FC0,
- CleanUpItemMenuMessage,
-};
+ sub_80C9FC0,
+ CleanUpItemMenuMessage,
+};
void ExecuteSwitchToOverworldFromItemUse(u8 taskId)
{
@@ -152,8 +145,8 @@ void ExecuteSwitchToOverworldFromItemUse(u8 taskId)
else
taskData = ItemId_GetType(gScriptItemId) - 1;
- gTasks[taskId].data[8] = (u32)gExitToOverworldFuncList[taskData] >> 16;
- gTasks[taskId].data[9] = (u32)gExitToOverworldFuncList[taskData];
+ gTasks[taskId].data[8] = (u32)(gExitToOverworldFuncList[taskData].func) >> 16;
+ gTasks[taskId].data[9] = (u32)(gExitToOverworldFuncList[taskData].func);
gTasks[taskId].func = HandleItemMenuPaletteFade;
}
@@ -835,11 +828,11 @@ void ItemUseOutOfBattle_SSTicket(u8 taskId)
if(gTasks[taskId].data[2] == 0)
{
MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14);
- DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)], sub_80C9BB8, 1);
+ DisplayItemMessageOnField(taskId, (u8 *)gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)].text, sub_80C9BB8, 1);
}
else
{
- DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)], sub_80C9BD8, 0);
+ DisplayItemMessageOnField(taskId, (u8 *)gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)].text, sub_80C9BD8, 0);
}
}
diff --git a/src/player_pc.c b/src/player_pc.c
index fa0c39a19..cd69357d5 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -2,6 +2,7 @@
#include "asm.h"
#include "field_screeneffect.h"
#include "item.h"
+#include "items.h"
#include "main.h"
#include "menu.h"
#include "palette.h"
@@ -10,27 +11,34 @@
#include "string_util.h"
#include "task.h"
+#define NEW_GAME_PC_ITEMS(i, type) ((u16)(gNewGamePCItems + type)[i * 2])
+
+// type as in define above
+enum
+{
+ ITEM_ID,
+ QUANTITY,
+};
+
extern void DisplayItemMessageOnField(u8, u8*, TaskFunc, u16);
-extern void ItemStorageMenuProcessInput(u8);
extern void DoPlayerPCDecoration(u8);
extern void BuyMenuFreeMemory(void);
extern void DestroyVerticalScrollIndicator(u8);
extern u8 sub_813AF3C(void);
extern void sub_813AF78(void);
-extern void sub_813A240(u8);
extern void sub_813B108(u8);
extern void sub_813B174(u8);
extern void sub_80A6A30(void);
extern u8 sub_807D770(void);
-extern void sub_813A280(u8);
extern void sub_813AE6C(u8, u8);
-extern void sub_813A240(u8);
extern void sub_813AD58(u16);
extern void sub_813AE0C(u8);
-extern void sub_813ABE8(u8);
-extern void sub_813AA30(u8, u8);
-extern void sub_813A4B4(u8);
-extern void sub_813A468(u8);
+extern void sub_80F996C(u8);
+extern void sub_80A418C(u16, enum StringConvertMode, int, int, int);
+extern void sub_80F98DC(int);
+extern void sub_80F914C(u8, void const *);
+extern void sub_80A4164(u8 *, u16, enum StringConvertMode, u8);
+extern void CreateVerticalScrollIndicators(u32, u32, u32); // unknown args
extern u8 gOtherText_NoItems[];
@@ -41,8 +49,16 @@ extern u8 gOtherText_NoMailHere[];
extern u8 *gUnknown_02039314;
extern struct MenuAction gUnknown_08406298[];
+
extern u8 gUnknown_084062B8[];
extern u8 gUnknown_084062BC[];
+extern u8 gUnknown_0840632A[];
+extern u8 gUnknown_08406327[];
+extern u8 gUnknown_08406330[];
+extern u8 gUnknown_0840631E[];
+extern u8 gUnknown_08406318[];
+extern u8 gOtherText_CancelNoTerminator[];
+
extern u8 gUnknown_030007B4;
extern u8 unk_201FE00[];
@@ -51,24 +67,34 @@ extern u8 gUnknown_08152C75;
extern u32 gUnknown_08406288[];
extern const struct MenuAction gUnknown_084062C0[];
+extern const struct FuncStruct gUnknown_084062E0[];
void InitPlayerPCMenu(u8 taskId);
void PlayerPCProcessMenuInput(u8 taskId);
void InitItemStorageMenu(u8);
void ItemStorageMenuPrint(u8 *);
+void ItemStorageMenuProcessInput(u8);
+void sub_813A280(u8);
+void sub_813A240(u8);
+void sub_813A4B4(u8);
+void sub_813A468(u8);
+void HandleQuantityRolling(u8);
+void sub_813A6FC(u8);
+void sub_813A794(u8);
+void sub_813A8F0(u8);
+void sub_813A984(u8);
+void sub_813A9EC(u8);
+void sub_813AA30(u8, u8);
+void sub_813ABE8(u8);
void NewGameInitPCItems(void)
{
- u8 i = 0;
-
- ClearItemSlots(gSaveBlock1.pcItems, 0x32);
+ u8 i;
- while (gNewGamePCItems[i * 2] && (gNewGamePCItems + 1)[i * 2])
- {
- if (AddPCItem(gNewGamePCItems[i * 2], (gNewGamePCItems + 1)[i * 2]) != 1)
- break;
- i++;
- }
+ // because Game Freak don't know how to use a struct or a 2d array
+ for(i = 0, ClearItemSlots(gSaveBlock1.pcItems, ARRAY_COUNT(gSaveBlock1.pcItems)); NEW_GAME_PC_ITEMS(i, ITEM_ID) && NEW_GAME_PC_ITEMS(i, QUANTITY) &&
+ AddPCItem(NEW_GAME_PC_ITEMS(i, ITEM_ID), NEW_GAME_PC_ITEMS(i, QUANTITY)) == TRUE; i++)
+ ;
}
void BedroomPC(void)
@@ -318,354 +344,124 @@ void sub_813A240(u8 taskId)
unk_201FE00[1] = unk_201FE00[3] + 1;
}
-#ifdef NONMATCHING
void sub_813A280(u8 taskId)
{
s16 *data = gTasks[taskId].data;
-
- if (gMain.newAndRepeatedKeys & 0x40)
+ s16 var;
+
+ if (gMain.newAndRepeatedKeys & DPAD_UP)
{
- if (data[0])
+ if(data[0])
{
PlaySE(5);
data[0] = MoveMenuCursor(-1);
+ var = data[1] + data[0];
if (!data[9])
{
- if (data[1] + data[0] == data[2])
+ if (var == data[2])
{
sub_813AD58(0xFFFF);
- return;
}
- sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId);
+ else
+ {
+ sub_813AD58(gSaveBlock1.pcItems[var].itemId);
+ }
}
- return;
}
- if (!data[1])
- return;
- PlaySE(5);
- sub_813AE0C(taskId);
- if (data[9])
- MoveMenuCursor(0);
- return;
- }
- if (!(gMain.newAndRepeatedKeys & 0x80))
- {
- if (gMain.newKeys & 0x4)
+ else // _0813A2E4
{
- if (!data[9])
- {
- if (data[0] + data[1] != data[2])
- {
- PlaySE(5);
- data[9] = 1;
- data[8] = data[0] + data[1];
- sub_813AD58(0xFFF7);
- }
- sub_813ABE8(taskId);
+ if (!data[1])
return;
- }
PlaySE(5);
- sub_813AA30(taskId, 0);
+ data[1]--;
sub_813AE0C(taskId);
- return;
+ // probably further down
+ if (data[9])
+ MoveMenuCursor(0);
}
- if (gMain.newKeys & 0x1)
+ }
+ else if(gMain.newAndRepeatedKeys & DPAD_DOWN) // _0813A306
+ {
+ if(data[0] != data[4] - 1)
{
PlaySE(5);
- if (data[9])
- {
- sub_813AA30(taskId, 0);
- sub_813AE0C(taskId);
- return;
- }
- if (data[1] + data[0] != data[2])
- {
- sub_813A4B4(taskId);
+ data[0] = MoveMenuCursor(1);
+ var = data[1] + data[0];
+
+ if(data[9])
return;
- }
+
+ if (var == data[2])
+ sub_813AD58(0xFFFF); // probably further down
+ else
+ sub_813AD58(gSaveBlock1.pcItems[var].itemId);
}
- else
+ else if(data[1] + data[0] != data[2])
{
- if (!(gMain.newKeys & 0x2))
- return;
PlaySE(5);
+ data[1]++;
+ sub_813AE0C(taskId);
+
if (data[9])
+ MoveMenuCursor(0);
+ }
+ }
+ else if(gMain.newKeys & SELECT_BUTTON) // _0813A3A0
+ {
+ if (!data[9])
+ {
+ if (data[0] + data[1] != data[2])
{
- sub_813AA30(taskId, 1);
- sub_813AE0C(taskId);
- return;
+ PlaySE(5);
+ data[9] = 1;
+ data[8] = data[1] + data[0];
+ sub_813AD58(0xFFF7);
}
- sub_8072DEC();
+ // _0813A3DC
+ sub_813ABE8(taskId);
+ }
+ else // _0813A3E8
+ {
+ PlaySE(5); // merging?
+ sub_813AA30(taskId, 0);
+ sub_813AE0C(taskId);
}
- sub_813A468(taskId);
- return;
}
- if (data[0] == data[4] - 1)
+ else if(gMain.newKeys & A_BUTTON)
{
- if (data[1] + data[0] == data[2])
- return;
PlaySE(5);
- data[1]++;
- sub_813AE0C(taskId);
- if (data[9])
- MoveMenuCursor(0);
- return;
+ if(!data[9])
+ {
+ if(data[1] + data[0] != data[2])
+ {
+ sub_813A4B4(taskId);
+ }
+ else
+ {
+ sub_813A468(taskId);
+ }
+ }
+ else
+ {
+ sub_813AA30(taskId, 0);
+ sub_813AE0C(taskId);
+ }
}
- PlaySE(5);
- data[0] = MoveMenuCursor(1);
- if (!data[9])
+ else if(gMain.newKeys & B_BUTTON)
{
- if (data[1] + data[0] != data[2])
+ PlaySE(5);
+ if(!data[9])
{
- sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId);
- return;
+ sub_8072DEC();
+ sub_813A468(taskId);
+ }
+ else
+ {
+ sub_813AA30(taskId, 1);
+ sub_813AE0C(taskId);
}
- sub_813AD58(0xFFFF);
}
}
-#else
-__attribute__((naked))
-void sub_813A280(u8 taskId)
-{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- adds r6, r5, 0\n\
- lsls r0, r5, 2\n\
- adds r0, r5\n\
- lsls r0, 3\n\
- ldr r1, _0813A2DC @ =gTasks + 0x8\n\
- adds r4, r0, r1\n\
- ldr r2, _0813A2E0 @ =gMain\n\
- ldrh r1, [r2, 0x30]\n\
- movs r0, 0x40\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0813A306\n\
- movs r1, 0\n\
- ldrsh r0, [r4, r1]\n\
- cmp r0, 0\n\
- beq _0813A2E4\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r0, 0x1\n\
- negs r0, r0\n\
- bl MoveMenuCursor\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r4]\n\
- ldrh r1, [r4, 0x2]\n\
- adds r1, r0\n\
- lsls r1, 16\n\
- lsrs r1, 16\n\
- movs r2, 0x12\n\
- ldrsh r0, [r4, r2]\n\
- cmp r0, 0\n\
- beq _0813A2CC\n\
- b _0813A460\n\
-_0813A2CC:\n\
- lsls r0, r1, 16\n\
- asrs r1, r0, 16\n\
- movs r2, 0x4\n\
- ldrsh r0, [r4, r2]\n\
- cmp r1, r0\n\
- beq _0813A34C\n\
- b _0813A358\n\
- .align 2, 0\n\
-_0813A2DC: .4byte gTasks + 0x8\n\
-_0813A2E0: .4byte gMain\n\
-_0813A2E4:\n\
- movs r1, 0x2\n\
- ldrsh r0, [r4, r1]\n\
- cmp r0, 0\n\
- bne _0813A2EE\n\
- b _0813A460\n\
-_0813A2EE:\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- ldrh r0, [r4, 0x2]\n\
- subs r0, 0x1\n\
- strh r0, [r4, 0x2]\n\
- adds r0, r5, 0\n\
- bl sub_813AE0C\n\
- movs r2, 0x12\n\
- ldrsh r0, [r4, r2]\n\
- b _0813A394\n\
-_0813A306:\n\
- movs r0, 0x80\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0813A3A0\n\
- movs r0, 0\n\
- ldrsh r1, [r4, r0]\n\
- movs r2, 0x8\n\
- ldrsh r0, [r4, r2]\n\
- subs r0, 0x1\n\
- cmp r1, r0\n\
- beq _0813A370\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r0, 0x1\n\
- bl MoveMenuCursor\n\
- lsls r0, 24\n\
- lsrs r0, 24\n\
- strh r0, [r4]\n\
- ldrh r1, [r4, 0x2]\n\
- adds r1, r0\n\
- lsls r1, 16\n\
- lsrs r1, 16\n\
- movs r2, 0x12\n\
- ldrsh r0, [r4, r2]\n\
- cmp r0, 0\n\
- beq _0813A340\n\
- b _0813A460\n\
-_0813A340:\n\
- lsls r0, r1, 16\n\
- asrs r1, r0, 16\n\
- movs r2, 0x4\n\
- ldrsh r0, [r4, r2]\n\
- cmp r1, r0\n\
- bne _0813A358\n\
-_0813A34C:\n\
- ldr r0, _0813A354 @ =0x0000ffff\n\
- bl sub_813AD58\n\
- b _0813A460\n\
- .align 2, 0\n\
-_0813A354: .4byte 0x0000ffff\n\
-_0813A358:\n\
- ldr r0, _0813A36C @ =gSaveBlock1\n\
- lsls r1, 2\n\
- adds r1, r0\n\
- movs r0, 0x93\n\
- lsls r0, 3\n\
- adds r1, r0\n\
- ldrh r0, [r1]\n\
- bl sub_813AD58\n\
- b _0813A460\n\
- .align 2, 0\n\
-_0813A36C: .4byte gSaveBlock1\n\
-_0813A370:\n\
- movs r2, 0x2\n\
- ldrsh r0, [r4, r2]\n\
- adds r0, r1\n\
- movs r2, 0x4\n\
- ldrsh r1, [r4, r2]\n\
- cmp r0, r1\n\
- beq _0813A460\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- ldrh r0, [r4, 0x2]\n\
- adds r0, 0x1\n\
- strh r0, [r4, 0x2]\n\
- adds r0, r5, 0\n\
- bl sub_813AE0C\n\
- movs r1, 0x12\n\
- ldrsh r0, [r4, r1]\n\
-_0813A394:\n\
- cmp r0, 0\n\
- beq _0813A460\n\
- movs r0, 0\n\
- bl MoveMenuCursor\n\
- b _0813A460\n\
-_0813A3A0:\n\
- ldrh r1, [r2, 0x2E]\n\
- movs r0, 0x4\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0813A3F0\n\
- movs r2, 0x12\n\
- ldrsh r0, [r4, r2]\n\
- cmp r0, 0\n\
- bne _0813A3E8\n\
- movs r1, 0\n\
- ldrsh r0, [r4, r1]\n\
- movs r2, 0x2\n\
- ldrsh r1, [r4, r2]\n\
- adds r0, r1\n\
- movs r2, 0x4\n\
- ldrsh r1, [r4, r2]\n\
- cmp r0, r1\n\
- beq _0813A3DC\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r0, 0x1\n\
- strh r0, [r4, 0x12]\n\
- ldrh r0, [r4]\n\
- ldrh r1, [r4, 0x2]\n\
- adds r0, r1\n\
- strh r0, [r4, 0x10]\n\
- ldr r0, _0813A3E4 @ =0x0000fff7\n\
- bl sub_813AD58\n\
-_0813A3DC:\n\
- adds r0, r5, 0\n\
- bl sub_813ABE8\n\
- b _0813A460\n\
- .align 2, 0\n\
-_0813A3E4: .4byte 0x0000fff7\n\
-_0813A3E8:\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- b _0813A420\n\
-_0813A3F0:\n\
- movs r0, 0x1\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0813A430\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r2, 0x12\n\
- ldrsh r0, [r4, r2]\n\
- cmp r0, 0\n\
- bne _0813A420\n\
- movs r1, 0x2\n\
- ldrsh r0, [r4, r1]\n\
- movs r2, 0\n\
- ldrsh r1, [r4, r2]\n\
- adds r0, r1\n\
- movs r2, 0x4\n\
- ldrsh r1, [r4, r2]\n\
- cmp r0, r1\n\
- beq _0813A44A\n\
- adds r0, r5, 0\n\
- bl sub_813A4B4\n\
- b _0813A460\n\
-_0813A420:\n\
- adds r0, r5, 0\n\
- movs r1, 0\n\
- bl sub_813AA30\n\
- adds r0, r5, 0\n\
- bl sub_813AE0C\n\
- b _0813A460\n\
-_0813A430:\n\
- movs r0, 0x2\n\
- ands r0, r1\n\
- cmp r0, 0\n\
- beq _0813A460\n\
- movs r0, 0x5\n\
- bl PlaySE\n\
- movs r1, 0x12\n\
- ldrsh r0, [r4, r1]\n\
- cmp r0, 0\n\
- bne _0813A452\n\
- bl sub_8072DEC\n\
-_0813A44A:\n\
- adds r0, r5, 0\n\
- bl sub_813A468\n\
- b _0813A460\n\
-_0813A452:\n\
- adds r0, r6, 0\n\
- movs r1, 0x1\n\
- bl sub_813AA30\n\
- adds r0, r6, 0\n\
- bl sub_813AE0C\n\
-_0813A460:\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .syntax divided");
-}
-#endif
void sub_813A468(u8 taskId)
{
@@ -678,141 +474,349 @@ void sub_813A468(u8 taskId)
gTasks[taskId].func = ItemStorageMenuProcessInput;
}
-#ifdef NONMATCHING
void sub_813A4B4(u8 taskId)
{
- u16 *data = gTasks[taskId].data;
- u16 var = data[2] + data[0];
+ s16 *data = gTasks[taskId].data;
+ u8 var = data[0] + data[1];
sub_80F996C(0);
sub_80F996C(1);
-
- if (data[6])
+
+ if(!data[6])
{
- if (gSaveBlock1.pcItems[var].itemId == 1)
+ if(gSaveBlock1.pcItems[var].quantity == 1)
{
data[3] = 1;
- sub_813A794(taskId);
+ sub_813A6FC(taskId);
return;
}
- sub_813AD58(0xFFF7);
- data[3] = 1;
- MenuDrawTextWindow(6, 8, 13, 11);
- sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3);
- gTasks[taskId].func = sub_813A584;
- return;
+ else // _0813A50C
+ {
+ sub_813AD58(0xFFFE);
+ }
}
- if (gSaveBlock1.pcItems[var].itemId != 1)
+ else if(gSaveBlock1.pcItems[var].quantity == 1) // _0813A518
{
- sub_813AD58(0xFFF7);
data[3] = 1;
- MenuDrawTextWindow(6, 8, 13, 11);
- sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3);
- gTasks[taskId].func = sub_813A584;
+ sub_813A794(taskId);
return;
}
+ else
+ {
+ sub_813AD58(0xFFFC);
+ }
data[3] = 1;
- sub_813A6FC(taskId);
+ MenuDrawTextWindow(6, 8, 13, 11);
+ sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3);
+ gTasks[taskId].func = HandleQuantityRolling;
}
-#else
-__attribute__((naked))
-void sub_813A4B4(u8 taskId)
+
+void HandleQuantityRolling(u8 taskId)
{
- asm(".syntax unified\n\
- push {r4-r6,lr}\n\
- sub sp, 0x4\n\
- lsls r0, 24\n\
- lsrs r6, r0, 24\n\
- lsls r0, r6, 2\n\
- adds r0, r6\n\
- lsls r0, 3\n\
- ldr r1, _0813A500 @ =gTasks + 0x8\n\
- adds r4, r0, r1\n\
- ldrb r0, [r4, 0x2]\n\
- ldrb r1, [r4]\n\
- adds r0, r1\n\
- lsls r0, 24\n\
- lsrs r5, r0, 24\n\
- movs r0, 0\n\
- bl sub_80F996C\n\
- movs r0, 0x1\n\
- bl sub_80F996C\n\
- movs r1, 0xC\n\
- ldrsh r0, [r4, r1]\n\
- cmp r0, 0\n\
- bne _0813A518\n\
- ldr r1, _0813A504 @ =gSaveBlock1\n\
- lsls r0, r5, 2\n\
- adds r0, r1\n\
- ldr r1, _0813A508 @ =0x0000049a\n\
- adds r0, r1\n\
- ldrh r0, [r0]\n\
- cmp r0, 0x1\n\
- bne _0813A50C\n\
- strh r0, [r4, 0x6]\n\
- adds r0, r6, 0\n\
- bl sub_813A6FC\n\
- b _0813A570\n\
- .align 2, 0\n\
-_0813A500: .4byte gTasks + 0x8\n\
-_0813A504: .4byte gSaveBlock1\n\
-_0813A508: .4byte 0x0000049a\n\
-_0813A50C:\n\
- ldr r0, _0813A514 @ =0x0000fffe\n\
- bl sub_813AD58\n\
- b _0813A542\n\
- .align 2, 0\n\
-_0813A514: .4byte 0x0000fffe\n\
-_0813A518:\n\
- ldr r1, _0813A534 @ =gSaveBlock1\n\
- lsls r0, r5, 2\n\
- adds r0, r1\n\
- ldr r1, _0813A538 @ =0x0000049a\n\
- adds r0, r1\n\
- ldrh r0, [r0]\n\
- cmp r0, 0x1\n\
- bne _0813A53C\n\
- strh r0, [r4, 0x6]\n\
- adds r0, r6, 0\n\
- bl sub_813A794\n\
- b _0813A570\n\
- .align 2, 0\n\
-_0813A534: .4byte gSaveBlock1\n\
-_0813A538: .4byte 0x0000049a\n\
-_0813A53C:\n\
- ldr r0, _0813A578 @ =0x0000fffc\n\
- bl sub_813AD58\n\
-_0813A542:\n\
- movs r0, 0x1\n\
- strh r0, [r4, 0x6]\n\
- movs r0, 0x6\n\
- movs r1, 0x8\n\
- movs r2, 0xD\n\
- movs r3, 0xB\n\
- bl MenuDrawTextWindow\n\
- ldrh r0, [r4, 0x6]\n\
- movs r1, 0x3\n\
- str r1, [sp]\n\
- movs r1, 0x1\n\
- movs r2, 0x8\n\
- movs r3, 0x9\n\
- bl sub_80A418C\n\
- ldr r1, _0813A57C @ =gTasks\n\
- lsls r0, r6, 2\n\
- adds r0, r6\n\
- lsls r0, 3\n\
- adds r0, r1\n\
- ldr r1, _0813A580 @ =sub_813A584\n\
- str r1, [r0]\n\
-_0813A570:\n\
- add sp, 0x4\n\
- pop {r4-r6}\n\
- pop {r0}\n\
- bx r0\n\
- .align 2, 0\n\
-_0813A578: .4byte 0x0000fffc\n\
-_0813A57C: .4byte gTasks\n\
-_0813A580: .4byte sub_813A584\n\
- .syntax divided");
-}
-#endif
+ s16 *data = gTasks[taskId].data;
+ u8 var = data[0] + data[1];
+
+ if(gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ if(data[3] != gSaveBlock1.pcItems[var].quantity)
+ data[3]++;
+ else
+ data[3] = 1; // you are at the max amount of items you have when you press Up, set your quantity back to 1.
+
+ sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
+ }
+ else if(gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ if(data[3] != 1)
+ data[3]--;
+ else
+ data[3] = gSaveBlock1.pcItems[var].quantity; // you are at 0 when you press down, set your quantity to the amount you have.
+
+ sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
+ }
+ else if(gMain.newAndRepeatedKeys & DPAD_LEFT) // reduce by 10.
+ {
+ data[3] -= 10;
+
+ if(data[3] <= 0)
+ data[3] = 1; // dont underflow or allow 0!
+
+ sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
+ }
+ else if(gMain.newAndRepeatedKeys & DPAD_RIGHT) // add 10.
+ {
+ data[3] += 10;
+
+ if(data[3] > gSaveBlock1.pcItems[var].quantity)
+ data[3] = gSaveBlock1.pcItems[var].quantity; // dont overflow!
+
+ sub_80A418C(data[3], STR_CONV_MODE_RIGHT_ALIGN, 8, 9, 3); // print quantity?
+ }
+ else if(gMain.newKeys & A_BUTTON) // confirm quantity.
+ {
+ PlaySE(5);
+ MenuZeroFillWindowRect(6, 6, 0xD, 0xB);
+
+ if(!data[6])
+ sub_813A6FC(taskId);
+ else
+ sub_813A794(taskId);
+ }
+ else if(gMain.newKeys & B_BUTTON) // cancel quantity.
+ {
+ PlaySE(5);
+ MenuZeroFillWindowRect(6, 6, 0xD, 0xB);
+ sub_80F98DC(0);
+ sub_80F98DC(1);
+ sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId); // why not use var?
+ gTasks[taskId].func = sub_813A280;
+ }
+}
+
+void sub_813A6FC(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u8 var = data[0] + data[1];
+
+ if(AddBagItem(gSaveBlock1.pcItems[var].itemId, data[3]) == TRUE) // add item works.
+ {
+ CopyItemName(gSaveBlock1.pcItems[var].itemId, gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar2, data[3], 0, 3);
+ sub_813AD58(0xFFFD);
+ gTasks[taskId].func = sub_813A8F0;
+ }
+ else // cannot add item. inventory full?
+ {
+ data[3] = 0;
+ sub_813AD58(0xFFFA);
+ gTasks[taskId].func = sub_813A984;
+ }
+}
+
+void sub_813A794(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u8 var = data[0] + data[1];
+
+ if(ItemId_GetImportance(gSaveBlock1.pcItems[var].itemId) == FALSE)
+ {
+ CopyItemName(gSaveBlock1.pcItems[var].itemId, gStringVar1);
+ ConvertIntToDecimalStringN(gStringVar2, data[3], 0, 3);
+ sub_813AD58(65528);
+ DisplayYesNoMenu(7, 6, 1);
+ sub_80F914C(taskId, gUnknown_084062E0);
+ }
+ else
+ {
+ data[3] = 0;
+ sub_813AD58(65529);
+ gTasks[taskId].func = sub_813A8F0;
+ }
+}
+
+void sub_813A83C(u8 taskId)
+{
+ MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
+ sub_813AD58(0xFFFB);
+ gTasks[taskId].func = sub_813A8F0;
+}
+
+void sub_813A878(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
+ InitMenu(0, 16, 2, data[4], data[0], 0xD);
+ sub_80F98DC(0);
+ sub_80F98DC(1);
+ sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId);
+ gTasks[taskId].func = sub_813A280;
+}
+
+void sub_813A8F0(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 var;
+ u8 usedItemSlots;
+
+ if(gMain.newKeys & 0x1 || gMain.newKeys == 0x2)
+ {
+ RemovePCItem(data[0] + data[1], data[3]);
+ var = data[2];
+ usedItemSlots = CountUsedPCItemSlots();
+ data[2] = usedItemSlots;
+
+ if((s16)var != usedItemSlots && (s16)var < data[4] + data[1] && data[1] != 0)
+ data[1]--;
+
+ sub_813A240(taskId);
+ sub_813A9EC(taskId);
+ InitMenu(0, 16, 2, data[4], data[0], 0xD);
+ }
+}
+
+void sub_813A984(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+
+ if(gMain.newKeys & 0x1 || gMain.newKeys == 2)
+ {
+ sub_813AD58(gSaveBlock1.pcItems[data[1] + data[0]].itemId);
+ sub_80F98DC(0);
+ sub_80F98DC(1);
+ gTasks[taskId].func = sub_813A280;
+ }
+}
+
+void sub_813A9EC(u8 taskId)
+{
+ MenuZeroFillWindowRect(0x6, 0x6, 0xD, 0xB);
+ sub_80F98DC(0);
+ sub_80F98DC(1);
+ sub_813AE0C(taskId);
+ gTasks[taskId].func = sub_813A280;
+}
+
+// seems like it was meant to return data[8] - data[1], but doesn't.
+void sub_813AA30(u8 taskId, u8 arg)
+{
+ s16 *data = gTasks[taskId].data;
+ u8 var = data[1] + data[0];
+
+ data[9] = 0;
+
+ if((u8)data[2] > var && (u8)data[8] != var && arg == 0)
+ {
+ struct ItemSlot itemSlot = gSaveBlock1.pcItems[data[8]]; // backup the itemSlot before swapping the two.
+
+ gSaveBlock1.pcItems[data[8]] = gSaveBlock1.pcItems[var];
+ gSaveBlock1.pcItems[var] = itemSlot;
+ return;
+ }
+ else if(var == data[2])
+ {
+ sub_813AD58(0xFFFF);
+ }
+ else
+ {
+ sub_813AD58(gSaveBlock1.pcItems[var].itemId);
+ }
+
+ // dead code not getting optimized out what the fuck???
+ {
+ register int data8 asm("r1") = data[8];
+ register int data1 asm("r0") = data[1];
+ asm(""::"r"(data8 - data1));
+ }
+}
+
+void sub_813AAC4(u16 arg1, enum StringConvertMode arg2, u8 arg3, u8 arg4, int arg5)
+{
+ sub_80A4164(gStringVar1, arg1, arg2, arg4);
+
+ if(arg5)
+ MenuPrint(gUnknown_0840632A, 0x1A, arg3);
+ else
+ MenuPrint(gUnknown_08406327, 0x1A, arg3);
+}
+
+void sub_813AB10(u8 var)
+{
+ MenuPrint(gUnknown_08406330, 0x19, var);
+}
+
+void sub_813AB28(struct ItemSlot *itemSlot, u8 var, int var2)
+{
+ CopyItemName(itemSlot->itemId, gStringVar1);
+
+ if(var2)
+ MenuPrint(gUnknown_0840631E, 16, var);
+ else
+ MenuPrint(gUnknown_08406318, 16, var);
+}
+
+void sub_813AB64(struct ItemSlot *itemSlot, u8 var, int var2)
+{
+ sub_813AB28(itemSlot, var, var2);
+ sub_813AAC4(itemSlot->quantity, STR_CONV_MODE_RIGHT_ALIGN, var, 3, var2);
+}
+
+void sub_813AB90(struct ItemSlot *itemSlot, u8 var, int var2)
+{
+ sub_813AB28(itemSlot, var, var2);
+ sub_813AB10(var);
+}
+
+void sub_813ABAC(struct ItemSlot *itemSlot, u8 var, int var2)
+{
+ sub_813AB28(itemSlot, var, var2);
+
+ if(itemSlot->itemId < ITEM_HM01)
+ sub_813AAC4(itemSlot->quantity, STR_CONV_MODE_RIGHT_ALIGN, var, 3, var2);
+ else
+ sub_813AB10(var); // key items do not have a quantity.
+}
+
+void sub_813ABE8(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ u16 i;
+ int tempArg;
+ u16 j = 0;
+
+ // r5 is i and is unsigned 16-bit.
+
+ for(i = data[1]; i < data[1] + data[4]; i++)
+ {
+ j = (i - data[1]) * 2;
+
+ if(i != data[2])
+ {
+ tempArg = 0;
+
+ if(data[9] != 0 && i == data[8])
+ tempArg = 1;
+
+ switch(GetPocketByItemId(gSaveBlock1.pcItems[i].itemId) - 1)
+ {
+ case 0:
+ case 1:
+ case 3:
+ sub_813AB64((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg);
+ break;
+ case 4:
+ sub_813AB90((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg);
+ break;
+ case 2:
+ sub_813ABAC((struct ItemSlot *)&gSaveBlock1.pcItems[i], j + 2, tempArg);
+ break;
+ }
+ }
+ else
+ {
+ goto weirdCase; // what???
+ }
+ }
+
+beforeLabel:
+ if(i - data[1] < 8)
+ MenuFillWindowRectWithBlankTile(16, j + 4, 0x1C, 0x12);
+
+ switch(data[1])
+ {
+ default:
+ CreateVerticalScrollIndicators(0, 0xB8, 8);
+ break;
+weirdCase:
+ sub_8072A18(gOtherText_CancelNoTerminator, 0x80, (j + 2) * 8, 0x68, 1);
+ goto beforeLabel;
+ case 0:
+ DestroyVerticalScrollIndicator(0);
+ break;
+ }
+
+ if(data[1] + data[4] <= data[2])
+ CreateVerticalScrollIndicators(1, 0xB8, 0x98);
+ else
+ DestroyVerticalScrollIndicator(1);
+}
diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c
index 5dd90ce28..472221b50 100644
--- a/src/rom_8077ABC.c
+++ b/src/rom_8077ABC.c
@@ -117,8 +117,8 @@ extern u8 gBattleMonForms[NUM_BATTLE_SLOTS];
extern u8 gEnemyMonElevation[];
extern u16 gUnknown_0202F7CA[];
extern u8 gBattleMonSprites[NUM_BATTLE_SLOTS];
-extern u8 gUnknown_0202F7C8;
-extern u8 gUnknown_0202F7C9;
+extern u8 gBattleAnimPlayerMonIndex;
+extern u8 gBattleAnimEnemyMonIndex;
extern s16 gBattleAnimArgs[8];
extern u8 gUnknown_02024A72[NUM_BATTLE_SLOTS];
extern u8 gUnknown_02024A68; // gNumBattleMons?
@@ -129,7 +129,7 @@ extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E7C18;
extern struct SpriteSheet gMonFrontPicTable[];
extern struct SpriteSheet gMonBackPicTable[];
-extern u8 sub_8076BE0();
+extern u8 IsContest();
extern bool8 sub_8078874(u8);
extern bool8 b_side_obj__get_some_boolean(u8);
extern void UpdateMonIconFrame(struct Sprite *sprite);
@@ -137,7 +137,7 @@ extern void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 a
extern void *species_and_otid_get_pal(u32, u32, u32);
extern void FreeSpriteOamMatrix(struct Sprite *sprite);
extern void ResetPaletteStructByUid(u16);
-extern void move_anim_task_del(u8 task);
+extern void DestroyAnimVisualTask(u8 task);
extern u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *));
u8 sub_8077E44(u8 slot, u16 species, u8 a3);
@@ -242,7 +242,7 @@ u8 sub_8077ABC(u8 slot, u8 a2) {
u16 species;
struct TransformStatus *transform;
- if (sub_8076BE0()) {
+ if (IsContest()) {
if (a2 == 3 && slot == 3) {
a2 = 1;
}
@@ -258,7 +258,7 @@ u8 sub_8077ABC(u8 slot, u8 a2) {
case 3:
case 4:
default:
- if (sub_8076BE0()) {
+ if (IsContest()) {
if (unk_2019348.field_4 & 1) {
species = unk_2019348.field_2;
} else {
@@ -298,9 +298,9 @@ u8 sub_8077BFC(u8 slot, u16 species) {
u8 ret;
u16 var;
- if (!battle_side_get_owner(slot) || sub_8076BE0()) {
+ if (!battle_side_get_owner(slot) || IsContest()) {
if (species == SPECIES_UNOWN) {
- if (sub_8076BE0()) {
+ if (IsContest()) {
if (unk_2019348.field_4 & 1) {
personality = unk_2019348.field_10;
} else {
@@ -357,7 +357,7 @@ u8 sub_8077BFC(u8 slot, u16 species) {
u8 sub_8077DD8(u8 slot, u16 species) {
u8 ret = 0;
if (battle_side_get_owner(slot) == 1) {
- if (!sub_8076BE0()) {
+ if (!IsContest()) {
if (species == SPECIES_CASTFORM) {
ret = gCastformElevations[gBattleMonForms[slot]];
} else if (species > NUM_SPECIES) {
@@ -373,7 +373,7 @@ u8 sub_8077DD8(u8 slot, u16 species) {
u8 sub_8077E44(u8 slot, u16 species, u8 a3) {
u16 offset;
u8 y;
- if (battle_side_get_owner(slot) == 0 || sub_8076BE0()) {
+ if (battle_side_get_owner(slot) == 0 || IsContest()) {
offset = sub_8077BFC(slot, species);
} else {
offset = sub_8077BFC(slot, species);
@@ -393,7 +393,7 @@ u8 sub_8077EE4(u8 slot, u8 a2) {
u16 species;
struct TransformStatus *transform;
if (a2 == 3 || a2 == 4) {
- if (sub_8076BE0()) {
+ if (IsContest()) {
if (unk_2019348.field_4 & 1) {
species = unk_2019348.field_2;
} else {
@@ -436,7 +436,7 @@ u8 sub_8077FC0(u8 slot) {
u8 r6;
struct TransformStatus *transform;
r6 = sub_8077ABC(slot, 1);
- if (!sub_8076BE0()) {
+ if (!IsContest()) {
if (battle_side_get_owner(slot)) {
transform = &gTransformStatuses[slot];
if (!transform->species) {
@@ -462,28 +462,28 @@ u8 sub_8077FC0(u8 slot) {
u8 obj_id_for_side_relative_to_move(u8 a1) {
u8 *sprites;
if (a1 == 0) {
- if (sub_8078874(gUnknown_0202F7C8)) {
+ if (sub_8078874(gBattleAnimPlayerMonIndex)) {
sprites = gBattleMonSprites;
- return sprites[gUnknown_0202F7C8];
+ return sprites[gBattleAnimPlayerMonIndex];
} else {
return 0xff;
}
} else if (a1 == 1) {
- if (sub_8078874(gUnknown_0202F7C9)) {
+ if (sub_8078874(gBattleAnimEnemyMonIndex)) {
sprites = gBattleMonSprites;
- return sprites[gUnknown_0202F7C9];
+ return sprites[gBattleAnimEnemyMonIndex];
} else {
return 0xff;
}
} else if (a1 == 2) {
- if (!b_side_obj__get_some_boolean(gUnknown_0202F7C8 ^ 2)) {
+ if (!b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2)) {
return 0xff;
} else {
- return gBattleMonSprites[gUnknown_0202F7C8 ^ 2];
+ return gBattleMonSprites[gBattleAnimPlayerMonIndex ^ 2];
}
} else {
- if (b_side_obj__get_some_boolean(gUnknown_0202F7C9 ^ 2)) {
- return gBattleMonSprites[gUnknown_0202F7C9 ^ 2];
+ if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2)) {
+ return gBattleMonSprites[gBattleAnimEnemyMonIndex ^ 2];
} else {
return 0xff;
}
@@ -636,8 +636,8 @@ void sub_80783D0(struct Sprite *sprite) {
void unref_sub_8078414(struct Sprite *sprite) {
sprite->data1 = sprite->pos1.x + sprite->pos2.x;
sprite->data3 = sprite->pos1.y + sprite->pos2.y;
- sprite->data2 = sub_8077ABC(gUnknown_0202F7C9, 2);
- sprite->data4 = sub_8077ABC(gUnknown_0202F7C9, 3);
+ sprite->data2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2);
+ sprite->data4 = sub_8077ABC(gBattleAnimEnemyMonIndex, 3);
sprite->callback = sub_80782F8;
}
@@ -688,8 +688,8 @@ void move_anim_8074EE0(struct Sprite *sprite) {
void unref_sub_8078588(struct Sprite *sprite) {
sprite->data1 = sprite->pos1.x + sprite->pos2.x;
sprite->data3 = sprite->pos1.y + sprite->pos2.y;
- sprite->data2 = sub_8077ABC(gUnknown_0202F7C8, 2);
- sprite->data4 = sub_8077ABC(gUnknown_0202F7C8, 3);
+ sprite->data2 = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
+ sprite->data4 = sub_8077ABC(gBattleAnimPlayerMonIndex, 3);
sprite->callback = sub_80782F8;
}
@@ -719,23 +719,23 @@ void sub_807861C(struct Sprite *sprite) {
void sub_8078634(u8 task) {
REG_BLDCNT = 0;
REG_BLDALPHA = 0;
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
}
void sub_8078650(struct Sprite *sprite) {
- sprite->pos1.x = sub_8077ABC(gUnknown_0202F7C8, 2);
- sprite->pos1.y = sub_8077ABC(gUnknown_0202F7C8, 3);
+ sprite->pos1.x = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimPlayerMonIndex, 3);
}
void sub_807867C(struct Sprite *sprite, s16 a2) {
- u16 v1 = sub_8077ABC(gUnknown_0202F7C8, 0);
- u16 v2 = sub_8077ABC(gUnknown_0202F7C9, 0);
+ u16 v1 = sub_8077ABC(gBattleAnimPlayerMonIndex, 0);
+ u16 v2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 0);
if (v1 > v2) {
sprite->pos1.x -= a2;
} else if (v1 < v2) {
sprite->pos1.x += a2;
} else {
- if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) {
sprite->pos1.x -= a2;
} else {
sprite->pos1.x += a2;
@@ -769,8 +769,8 @@ void oamt_add_pos2_onto_pos1(struct Sprite *sprite) {
void sub_8078764(struct Sprite *sprite, u8 a2) {
if (!a2) {
- sprite->pos1.x = sub_8077EE4(gUnknown_0202F7C9, 0);
- sprite->pos1.y = sub_8077EE4(gUnknown_0202F7C9, 1);
+ sprite->pos1.x = sub_8077EE4(gBattleAnimEnemyMonIndex, 0);
+ sprite->pos1.y = sub_8077EE4(gBattleAnimEnemyMonIndex, 1);
}
sub_807867C(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
@@ -778,11 +778,11 @@ void sub_8078764(struct Sprite *sprite, u8 a2) {
void sub_80787B0(struct Sprite *sprite, u8 a2) {
if (!a2) {
- sprite->pos1.x = sub_8077EE4(gUnknown_0202F7C8, 0);
- sprite->pos1.y = sub_8077EE4(gUnknown_0202F7C8, 1);
+ sprite->pos1.x = sub_8077EE4(gBattleAnimPlayerMonIndex, 0);
+ sprite->pos1.y = sub_8077EE4(gBattleAnimPlayerMonIndex, 1);
} else {
- sprite->pos1.x = sub_8077EE4(gUnknown_0202F7C8, 2);
- sprite->pos1.y = sub_8077EE4(gUnknown_0202F7C8, 3);
+ sprite->pos1.x = sub_8077EE4(gBattleAnimPlayerMonIndex, 2);
+ sprite->pos1.y = sub_8077EE4(gBattleAnimPlayerMonIndex, 3);
}
sub_807867C(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
@@ -807,11 +807,11 @@ u8 battle_get_side_with_given_state(u8 slot) {
}
bool8 sub_8078874(u8 slot) {
- if (sub_8076BE0()) {
- if (gUnknown_0202F7C8 == slot) {
+ if (IsContest()) {
+ if (gBattleAnimPlayerMonIndex == slot) {
return TRUE;
}
- if (gUnknown_0202F7C9 == slot) {
+ if (gBattleAnimEnemyMonIndex == slot) {
return TRUE;
}
return FALSE;
@@ -837,7 +837,7 @@ bool8 IsDoubleBattle() {
}
void sub_8078914(struct Struct_sub_8078914 *unk) {
- if (sub_8076BE0()) {
+ if (IsContest()) {
unk->field_0 = (u8 *)0x6008000;
unk->field_4 = (u8 *)0x600f000;
unk->field_8 = 0xe;
@@ -849,11 +849,11 @@ void sub_8078914(struct Struct_sub_8078914 *unk) {
}
void sub_8078954(struct Struct_sub_8078914 *unk) {
- if (sub_8076BE0()) {
+ if (IsContest()) {
unk->field_0 = (u8 *)0x6008000;
unk->field_4 = (u8 *)0x600f000;
unk->field_8 = 0xe;
- } else if (battle_get_per_side_status_permutated(gUnknown_0202F7C8) == 1) {
+ } else if (battle_get_per_side_status_permutated(gBattleAnimPlayerMonIndex) == 1) {
unk->field_0 = (u8 *)0x6004000;
unk->field_4 = (u8 *)0x600e000;
unk->field_8 = 0x8;
@@ -865,7 +865,7 @@ void sub_8078954(struct Struct_sub_8078914 *unk) {
}
u8 sub_80789BC() {
- if (sub_8076BE0()) {
+ if (IsContest()) {
return 1;
}
return 2;
@@ -875,7 +875,7 @@ void sub_80789D4(bool8 a1) {
if (!a1) {
BG3CNT.size = 0;
BG3CNT.overflow = 1;
- } else if (sub_8076BE0()) {
+ } else if (IsContest()) {
BG3CNT.size = 0;
BG3CNT.overflow = 1;
} else {
@@ -1080,7 +1080,7 @@ void obj_id_set_rotscale(u8 sprite, s16 xScale, s16 yScale, u16 rotation) {
}
bool8 sub_8078E38() {
- if (sub_8076BE0()) {
+ if (IsContest()) {
if (gSprites[obj_id_for_side_relative_to_move(0)].data2 == 0xc9 /* XXX SPECIES_UNOWN? */) {
return FALSE;
}
@@ -1092,12 +1092,12 @@ bool8 sub_8078E38() {
void sub_8078E70(u8 sprite, u8 a2) {
struct Struct_2017810 *unk;
u8 r7 = gSprites[sprite].data0;
- if (sub_8076BE0() || b_side_obj__get_some_boolean(r7)) {
+ if (IsContest() || b_side_obj__get_some_boolean(r7)) {
gSprites[sprite].invisible = FALSE;
}
gSprites[sprite].oam.objMode = a2;
gSprites[sprite].affineAnimPaused = TRUE;
- if (!sub_8076BE0() && !gSprites[sprite].oam.affineMode) {
+ if (!IsContest() && !gSprites[sprite].oam.affineMode) {
unk = &unk_2017810[r7];
gSprites[sprite].oam.matrixNum = unk->field_6;
}
@@ -1190,41 +1190,41 @@ u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) {
u32 var = 0;
u32 shift;
if (a1) {
- if (!sub_8076BE0()) {
+ if (!IsContest()) {
var = 0xe;
} else {
var = 1 << sub_80789BC();
}
}
if (a2) {
- shift = gUnknown_0202F7C8 + 16;
+ shift = gBattleAnimPlayerMonIndex + 16;
var |= 1 << shift;
}
if (a3) {
- shift = gUnknown_0202F7C9 + 16;
+ shift = gBattleAnimEnemyMonIndex + 16;
var |= 1 << shift;
}
if (a4) {
- if (b_side_obj__get_some_boolean(gUnknown_0202F7C8 ^ 2)) {
- shift = (gUnknown_0202F7C8 ^ 2) + 16;
+ if (b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2)) {
+ shift = (gBattleAnimPlayerMonIndex ^ 2) + 16;
var |= 1 << shift;
}
}
if (a5) {
- if (b_side_obj__get_some_boolean(gUnknown_0202F7C9 ^ 2)) {
- shift = (gUnknown_0202F7C9 ^ 2) + 16;
+ if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2)) {
+ shift = (gBattleAnimEnemyMonIndex ^ 2) + 16;
var |= 1 << shift;
}
}
if (a6) {
- if (!sub_8076BE0()) {
+ if (!IsContest()) {
var |= 0x100;
} else {
var |= 0x4000;
}
}
if (a7) {
- if (!sub_8076BE0()) {
+ if (!IsContest()) {
var |= 0x200;
}
}
@@ -1234,7 +1234,7 @@ u32 sub_80791A8(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7) {
u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) {
u32 var = 0;
u32 shift;
- if (sub_8076BE0()) {
+ if (IsContest()) {
if (a1) {
var |= 1 << 18;
return var;
@@ -1309,24 +1309,24 @@ void sub_807941C(struct Sprite *sprite) {
v2 = 1;
}
sub_80787B0(sprite, v1);
- if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sprite->data0 = gBattleAnimArgs[4];
- sprite->data2 = sub_8077ABC(gUnknown_0202F7C9, 2) + gBattleAnimArgs[2];
- sprite->data4 = sub_8077ABC(gUnknown_0202F7C9, v2) + gBattleAnimArgs[3];
+ sprite->data2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2) + gBattleAnimArgs[2];
+ sprite->data4 = sub_8077ABC(gBattleAnimEnemyMonIndex, v2) + gBattleAnimArgs[3];
sprite->callback = sub_8078B34;
oamt_set_x3A_32(sprite, move_anim_8072740);
}
void sub_80794A8(struct Sprite *sprite) {
sub_80787B0(sprite, 1);
- if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sprite->data0 = gBattleAnimArgs[4];
- sprite->data2 = sub_8077ABC(gUnknown_0202F7C9, 2) + gBattleAnimArgs[2];
- sprite->data4 = sub_8077ABC(gUnknown_0202F7C9, 3) + gBattleAnimArgs[3];
+ sprite->data2 = sub_8077ABC(gBattleAnimEnemyMonIndex, 2) + gBattleAnimArgs[2];
+ sprite->data4 = sub_8077ABC(gBattleAnimEnemyMonIndex, 3) + gBattleAnimArgs[3];
sprite->data5 = gBattleAnimArgs[5];
sub_80786EC(sprite);
sprite->callback = sub_8079518;
@@ -1349,12 +1349,12 @@ void sub_8079534(struct Sprite *sprite) {
}
if (!gBattleAnimArgs[5]) {
sub_80787B0(sprite, r4);
- slot = gUnknown_0202F7C8;
+ slot = gBattleAnimPlayerMonIndex;
} else {
sub_8078764(sprite, r4);
- slot = gUnknown_0202F7C9;
+ slot = gBattleAnimEnemyMonIndex;
}
- if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) {
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
}
sub_8078764(sprite, r4);
@@ -1430,7 +1430,7 @@ void sub_80796F8(u8 taskId) {
}
REG_BLDALPHA = (task->data[4] << 8) | task->data[3];
if (task->data[3] == task->data[7] && task->data[4] == task->data[8]) {
- move_anim_task_del(taskId);
+ DestroyAnimVisualTask(taskId);
return;
}
}
@@ -1439,7 +1439,7 @@ void sub_80796F8(u8 taskId) {
void sub_8079790(u8 task) {
u8 sprite = obj_id_for_side_relative_to_move(gBattleAnimArgs[0]);
if (sprite == 0xff) {
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
gTasks[task].data[0] = (gSprites[sprite].oam.paletteNum * 0x10) + 0x101;
@@ -1475,7 +1475,7 @@ void sub_8079814(u8 taskId) {
task->data[4] = 0;
task->data[6] = 0;
} else {
- move_anim_task_del(taskId);
+ DestroyAnimVisualTask(taskId);
return;
}
}
@@ -1486,7 +1486,7 @@ void sub_8079814(u8 taskId) {
void sub_80798AC(u8 task) {
u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]);
if (palette == 0xff) {
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
return;
}
gTasks[task].data[0] = (palette * 0x10) + 0x101;
@@ -1595,7 +1595,7 @@ u16 sub_8079B10(u8 sprite) {
u16 i;
for (i = 0; i < (sizeof(gBattleMonSprites) / sizeof(u8)); i++) {
if (gBattleMonSprites[i] == sprite) {
- if (sub_8076BE0()) {
+ if (IsContest()) {
species = unk_2019348.field_0;
return gMonBackPicCoords[species].y_offset;
} else {
@@ -1677,21 +1677,21 @@ void sub_8079CEC(u8 task) {
v1 = 3;
}
gBattleAnimArgs[7] = v1;
- move_anim_task_del(task);
+ DestroyAnimVisualTask(task);
}
void unref_sub_8079D20(u8 priority) {
- if (b_side_obj__get_some_boolean(gUnknown_0202F7C9)) {
- gSprites[gBattleMonSprites[gUnknown_0202F7C9]].oam.priority = priority;
+ if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex)) {
+ gSprites[gBattleMonSprites[gBattleAnimEnemyMonIndex]].oam.priority = priority;
}
- if (b_side_obj__get_some_boolean(gUnknown_0202F7C8)) {
- gSprites[gBattleMonSprites[gUnknown_0202F7C8]].oam.priority = priority;
+ if (b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex)) {
+ gSprites[gBattleMonSprites[gBattleAnimPlayerMonIndex]].oam.priority = priority;
}
- if (b_side_obj__get_some_boolean(gUnknown_0202F7C9 ^ 2)) {
- gSprites[gBattleMonSprites[gUnknown_0202F7C9 ^ 2]].oam.priority = priority;
+ if (b_side_obj__get_some_boolean(gBattleAnimEnemyMonIndex ^ 2)) {
+ gSprites[gBattleMonSprites[gBattleAnimEnemyMonIndex ^ 2]].oam.priority = priority;
}
- if (b_side_obj__get_some_boolean(gUnknown_0202F7C8 ^ 2)) {
- gSprites[gBattleMonSprites[gUnknown_0202F7C8 ^ 2]].oam.priority = priority;
+ if (b_side_obj__get_some_boolean(gBattleAnimPlayerMonIndex ^ 2)) {
+ gSprites[gBattleMonSprites[gBattleAnimPlayerMonIndex ^ 2]].oam.priority = priority;
}
}
@@ -1708,7 +1708,7 @@ void sub_8079E24() {
u8 sub_8079E90(u8 slot) {
u8 status;
u8 ret;
- if (sub_8076BE0()) {
+ if (IsContest()) {
if (slot == 2) {
return 30;
} else {
@@ -1731,7 +1731,7 @@ u8 sub_8079E90(u8 slot) {
u8 sub_8079ED4(u8 slot) {
u8 status = battle_get_per_side_status(slot);
- if (sub_8076BE0()) {
+ if (IsContest()) {
return 2;
}
if (status == 0 || status == 3) {
@@ -1743,7 +1743,7 @@ u8 sub_8079ED4(u8 slot) {
u8 battle_get_per_side_status_permutated(u8 slot) {
u8 status;
- if (!sub_8076BE0()) {
+ if (!IsContest()) {
status = battle_get_per_side_status(slot);
if (status == 0 || status == 3) {
return 2;
@@ -1799,7 +1799,7 @@ u8 sub_8079F44(u16 species, u8 isBackpic, u8 a3, s16 a4, s16 a5, u8 a6, u32 a7,
} else {
sprite = CreateSprite(&gSpriteTemplate_837F5B0[a3], a4, a5 + gMonBackPicCoords[species].y_offset, a6);
}
- if (sub_8076BE0()) {
+ if (IsContest()) {
gSprites[sprite].affineAnims = &gSpriteAffineAnimTable_81E7C18;
StartSpriteAffineAnim(&gSprites[sprite], 0);
}
@@ -1818,7 +1818,7 @@ int sub_807A100(u8 slot, u8 a2) {
int ret;
const struct MonCoords *coords;
struct TransformStatus *transform;
- if (sub_8076BE0()) {
+ if (IsContest()) {
if (unk_2019348.field_4 & 1) {
species = unk_2019348.field_2;
personality = unk_2019348.field_10;
@@ -1925,7 +1925,7 @@ void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4) {
}
v3 = sub_8077ABC(slot, v1);
v4 = sub_8077ABC(slot, v2);
- if (IsDoubleBattle() && !sub_8076BE0()) {
+ if (IsDoubleBattle() && !IsContest()) {
v5 = sub_8077ABC(slot ^ 2, v1);
v6 = sub_8077ABC(slot ^ 2, v2);
} else {
@@ -1949,7 +1949,7 @@ u8 sub_807A4A0(int a1, u8 sprite, int a3) {
void sub_807A544(struct Sprite *sprite) {
sub_8078650(sprite);
- if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) {
sprite->pos1.x -= gBattleAnimArgs[0];
gBattleAnimArgs[3] = -gBattleAnimArgs[3];
sprite->hFlip = TRUE;
@@ -1966,7 +1966,7 @@ void sub_807A544(struct Sprite *sprite) {
}
void sub_807A5C4(struct Sprite *sprite) {
- if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) {
sprite->pos1.x -= gBattleAnimArgs[0];
gBattleAnimArgs[3] *= -1;
} else {
@@ -1984,7 +1984,7 @@ void sub_807A5C4(struct Sprite *sprite) {
void sub_807A63C(struct Sprite *sprite) {
sub_8078650(sprite);
- if (battle_side_get_owner(gUnknown_0202F7C8)) {
+ if (battle_side_get_owner(gBattleAnimPlayerMonIndex)) {
sprite->pos1.x -= gBattleAnimArgs[0];
} else {
sprite->pos1.x += gBattleAnimArgs[0];
@@ -1999,7 +1999,7 @@ void sub_807A69C(u8 taskId) {
u16 dest;
struct Task *task = &gTasks[taskId];
task->data[0] = obj_id_for_side_relative_to_move(0);
- task->data[1] = (battle_side_get_owner(gUnknown_0202F7C8)) ? -8 : 8;
+ task->data[1] = (battle_side_get_owner(gBattleAnimPlayerMonIndex)) ? -8 : 8;
task->data[2] = 0;
task->data[3] = 0;
gSprites[task->data[0]].pos2.x -= task->data[0];
@@ -2008,7 +2008,7 @@ void sub_807A69C(u8 taskId) {
dest = (task->data[4] + 0x10) * 0x10;
src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10;
- task->data[6] = sub_8079E90(gUnknown_0202F7C8);
+ task->data[6] = sub_8079E90(gBattleAnimPlayerMonIndex);
if (task->data[6] == 20 || task->data[6] == 40) {
task->data[6] = 2;
} else {
@@ -2041,7 +2041,7 @@ void sub_807A784(u8 taskId) {
case 2:
if (!task->data[5]) {
FreeSpritePaletteByTag(10097);
- move_anim_task_del(taskId);
+ DestroyAnimVisualTask(taskId);
}
break;
}
@@ -2069,9 +2069,9 @@ void sub_807A8D4(struct Sprite *sprite) {
}
void sub_807A908(struct Sprite *sprite) {
- sprite->pos1.x = sub_8077ABC(gUnknown_0202F7C8, 2);
- sprite->pos1.y = sub_8077ABC(gUnknown_0202F7C8, 3);
- if (!battle_side_get_owner(gUnknown_0202F7C8)) {
+ sprite->pos1.x = sub_8077ABC(gBattleAnimPlayerMonIndex, 2);
+ sprite->pos1.y = sub_8077ABC(gBattleAnimPlayerMonIndex, 3);
+ if (!battle_side_get_owner(gBattleAnimPlayerMonIndex)) {
sprite->data0 = 5;
} else {
sprite->data0 = -10;
@@ -2098,7 +2098,7 @@ void sub_807A9BC(struct Sprite *sprite) {
sprite->data0 = gBattleAnimArgs[2];
sprite->data2 = sprite->pos1.x + gBattleAnimArgs[4];
sprite->data4 = sprite->pos1.y + gBattleAnimArgs[5];
- if (!battle_side_get_owner(gUnknown_0202F7C9)) {
+ if (!battle_side_get_owner(gBattleAnimEnemyMonIndex)) {
x = (u16)gBattleAnimArgs[4] + 30;
sprite->pos1.x += x;
sprite->pos1.y = gBattleAnimArgs[5] - 20;