summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-06-17 16:56:13 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-06-17 16:56:13 -0400
commitf5a444af5d4e7b33706bc051c3e932d3d75d8a24 (patch)
treea7a567d55a07f077903164a4d500c0fb0bb7bf0a
parent42650e1507008d0ad3a710e0b8ec27d8ad97bd26 (diff)
Replace simple ewram access with battle struct, 2
-rw-r--r--data/btl_attrs.s37
-rw-r--r--include/battle.h15
-rw-r--r--include/ewram.h62
-rw-r--r--src/battle/anim/battle_intro.c8
-rw-r--r--src/battle/anim/normal.c6
-rw-r--r--src/battle_ai_switch_items.c2
-rwxr-xr-xsrc/battle_anim_special.c2
-rw-r--r--src/battle_controller_link_opponent.c14
-rw-r--r--src/battle_controller_link_partner.c14
-rw-r--r--src/battle_controller_opponent.c14
-rw-r--r--src/battle_controller_player.c21
-rw-r--r--src/battle_controller_wally.c6
-rw-r--r--src/battle_gfx_sfx_util.c58
-rw-r--r--src/battle_interface.c12
-rw-r--r--src/battle_main.c187
-rw-r--r--src/battle_script_commands.c12
-rw-r--r--src/pokemon_2.c5
-rw-r--r--src/reshow_battle_screen.c8
18 files changed, 236 insertions, 247 deletions
diff --git a/data/btl_attrs.s b/data/btl_attrs.s
index 54328e7c7..e7868555b 100644
--- a/data/btl_attrs.s
+++ b/data/btl_attrs.s
@@ -98,11 +98,40 @@ gUnknown_Debug_821F58C::
gUnknown_Debug_821F598::
.byte 0x00, 0x00, 0x09, 0x00, 0x08, 0x00, 0x09, 0x00, 0x0a, 0x00, 0x0b, 0x00, 0x4b, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00
+ .align 2, 0
+ @ struct Pokeblock
gUnknown_Debug_821F5AC::
- .byte 0x01, 0x14, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x03, 0x00, 0x00, 0x14, 0x00, 0x00, 0x14, 0x00, 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00
- .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x14, 0x14, 0x00, 0x06, 0x14, 0x00, 0x14, 0x00, 0x00, 0x14, 0x00, 0x07, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14, 0x00, 0x08, 0x00, 0x00, 0x14, 0x00, 0x14, 0x14, 0x00
- .byte 0x09, 0x14, 0x00, 0x00, 0x14, 0x00, 0x14, 0x00, 0x0a, 0x00, 0x14, 0x00, 0x00, 0x14, 0x14, 0x00, 0x0b, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00, 0x00, 0x0c, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00
- .byte 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x0e, 0x14, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ @ color, spicy, dry, sweet, bitter, sour, feel
+ .byte 0x01, 0x14, 0x00, 0x00, 0x00, 0x00, 0x14
+ .align 2, 0
+ .byte 0x02, 0x00, 0x14, 0x00, 0x00, 0x00, 0x14
+ .align 2, 0
+ .byte 0x03, 0x00, 0x00, 0x14, 0x00, 0x00, 0x14
+ .align 2, 0
+ .byte 0x04, 0x00, 0x00, 0x00, 0x14, 0x00, 0x14
+ .align 2, 0
+ .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x14, 0x14
+ .align 2, 0
+ .byte 0x06, 0x14, 0x00, 0x14, 0x00, 0x00, 0x14
+ .align 2, 0
+ .byte 0x07, 0x00, 0x14, 0x00, 0x14, 0x00, 0x14
+ .align 2, 0
+ .byte 0x08, 0x00, 0x00, 0x14, 0x00, 0x14, 0x14
+ .align 2, 0
+ .byte 0x09, 0x14, 0x00, 0x00, 0x14, 0x00, 0x14
+ .align 2, 0
+ .byte 0x0a, 0x00, 0x14, 0x00, 0x00, 0x14, 0x14
+ .align 2, 0
+ .byte 0x0b, 0x00, 0x02, 0x00, 0x02, 0x02, 0x00
+ .align 2, 0
+ .byte 0x0c, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00
+ .align 2, 0
+ .byte 0x0d, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01
+ .align 2, 0
+ .byte 0x0e, 0x14, 0x00, 0x00, 0x00, 0x00, 0x14
+ .align 2, 0
+ .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+ .align 2, 0
.ifdef ENGLISH
Str_821F624:: @ 0x821F624
diff --git a/include/battle.h b/include/battle.h
index 4820227dc..8911218eb 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -380,8 +380,7 @@ struct BattleStruct /* 0x2000000 */
/*0x160BC*/ u16 HP_OnSwitchout[2];
/*0x160C0*/ u8 unk160C0;
/*0x160C1*/ u8 hpScale;
- /*0x160C2*/ u8 unk160C2;
- /*0x160C3*/ u8 unk160C3;
+ /*0x160C2*/ u16 unk160C2;
/*0x160C4*/ MainCallback unk160C4;
/*0x160C8*/ u8 AI_monToSwitchIntoId[2];
/*0x160CA*/ u8 synchroniseEffect;
@@ -418,7 +417,7 @@ struct BattleStruct /* 0x2000000 */
/*0x16100*/ u8 lastTakenMoveFrom[2 * 2 * 4];
/*0x16110*/ u8 wishPerishSongState;
/*0x16111*/ u8 wishPerishSongBattlerId;
- /*0x16112*/ u8 unk16112;
+ /*0x16112*/ u8 multihitMoveEffect;
/*0x16113*/ u8 givenExpMons;
/*0x16114*/ u8 unk16114;
/*0x16115*/ u8 unk16115;
@@ -442,13 +441,13 @@ struct ResourceFlags
u32 arr[4];
};
-struct Struct2017800
+struct BattleSpriteInfo
{
u8 invisible:1;
- u8 unk0_1:1;
+ u8 lowHpSong:1;
u8 substituteSprite:1;
- u8 unk0_3:1;
- u8 unk0_4:1;
+ u8 flag_x8:1;
+ u8 hpNumbersNoBars:1;
u16 transformedSpecies;
};
@@ -492,8 +491,6 @@ struct Struct20238C8
u8 unk0_7:1;
};
-#define gBattleResources_statsBeforeLvlUp ((struct StatsArray *)(gSharedMem + 0x17180))
-
#define GET_MOVE_TYPE(move, typeArg) \
{ \
if (gBattleStruct->dynamicMoveType) \
diff --git a/include/ewram.h b/include/ewram.h
index 3feed99ae..0efac7bda 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -91,68 +91,35 @@ extern u8 gSharedMem[];
#define ewram15E00 ((*(struct Unk2015E00*)(gSharedMem + 0x15E00)))
#define ewram16000 (gSharedMem[0x16000])
#define ewram16000_2 (&gSharedMem[0x16000])
-#define ewram16001 (gSharedMem[0x16001])
-#define ewram16002 (gSharedMem[0x16002])
#define ewram16003 (gSharedMem[0x16003])
#define ewram16004arr(i, battler) (gSharedMem[0x16004 + i + battler * 2])
-#define ewram1600C (gSharedMem[0x1600C])
-#define ewram1600E (gSharedMem[0x1600E])
#define ewram16010arr(battler) (gSharedMem[0x16010 + battler])
-#define ewram1601B (gSharedMem[0x1601B])
#define eDynamicMoveType (gSharedMem[0x1601C])
#define eFocusPunchBattler (gSharedMem[0x1601D])
#define eDmgMultiplier (gSharedMem[0x1601F])
#define ewram16020 ((u8 *)(gSharedMem + 0x16020))
#define ewram16020arr(i) (gSharedMem[0x16020 + i])
-#define ewram16054 (gSharedMem[0x16054])
-#define ewram16056 (gSharedMem[0x16056])
#define ewram16058 (gSharedMem[0x16058])
-#define ewram16059 (gSharedMem[0x16059])
#define ewram16060(battler) (gSharedMem[0x16060 + battler])
#define BATTLE_PARTY_ID(battler) (gSharedMem[0x16064 + battler])
-#define ewram16064 (&gSharedMem[0x16064])
#define ewram16064arr(battler) (gSharedMem[0x16064 + battler])
#define ewram16068arr(i) (gSharedMem[0x16068 + i])
#define UNK_201606C_ARRAY (gSharedMem + 0x1606C) // lazy define but whatever.
#define ewram1606Carr(i, a) (gSharedMem[0x1606C + i + a * 3])
-#define ewram16078 (gSharedMem[0x16078])
-#define ewram16084 (gSharedMem[0x16084])
-#define ewram16086 (gSharedMem[0x16086])
-#define ewram16087 (gSharedMem[0x16087])
#define ewram16088 (gSharedMem[0x16088])
-#define ewram16088_2 (*(u8 *)(gSharedMem + 0x16088))
#define ewram16089 (gSharedMem[0x16089])
-#define ewram16089_2 (*(u8 *)(gSharedMem + 0x16089))
-
-// src/battle/anim/battle_intro.c
-#define ewram1608A gSharedMem[0x1608A]
-#define ewram1608B gSharedMem[0x1608B]
#define ewram1608Carr(battler) (gSharedMem[0x1608C + battler])
#define ewram16094arr(battler) (gSharedMem[0x16094 + battler])
#define EWRAM_1609D (gSharedMem[0x1609D])
-#define ewram1609e(flank) (gSharedMem[0x1609E + (flank)])
-#define ewram160A1 (gSharedMem[0x160A1])
-#define ewram160A4 (gSharedMem[0x160A4])
-#define ewram160A5 (gSharedMem[0x160A5])
-#define ewram160A6 (gSharedMem[0x160A6])
#define ewram160A8 (gSharedMem[0x160A8])
#define ewram160A9 (gSharedMem[0x160A9])
#define ewram160AA (gSharedMem[0x160AA])
#define ewram160AB (gSharedMem[0x160AB])
-#define ewram160AC ((u8 *)(gSharedMem + 0x160AC))
-#define ewram160ACarr(i) (gSharedMem[0x160AC + i])
-#define ewram160ACarr2(i, battler) (gSharedMem[0x160AC + i + battler * 2])
-#define ewram160BC ((u16 *)(gSharedMem + 0x160BC)) // hp
-#define ewram160BCarr(battler) (gSharedMem[0x160BC + battler * 2])
-#define ewram160C0 (gSharedMem[0x160C0])
-#define ewram160C2_Flags ((u16 *)(gSharedMem + 0x160C2))
-#define ewram160C4_Callback ((MainCallback *)(gSharedMem + 0x160C4))
-#define ewram160C8 (gSharedMem[0x160C8])
+#define eLastTakenMove_flat(i) (gSharedMem[0x160AC + i])
+#define eLastTakenMove_2d(i, battler) (gSharedMem[0x160AC + i + battler * 2])
+#define eHpOnSwitchout(battler) (gSharedMem[0x160BC + battler * 2])
#define ewram160C8arr(battler) (gSharedMem[0x160C8 + (battler / 2)])
-#define ewram160C9 (gSharedMem[0x160C9])
-#define ewram160CB (gSharedMem[0x160CB])
-#define ewram160CC ((u8 *)(gSharedMem + 0x160CC))
#define ewram160CCarr(i) (gSharedMem[0x160CC + i])
#define USED_HELD_ITEM(battler) ((((u16*)(&gSharedMem[0x160CC + battler * 2]))))
#define USED_HELD_ITEMS(battler) (*(u16 *)&gSharedMem[0x160CC + 2 * (battler)])
@@ -161,8 +128,6 @@ extern u8 gSharedMem[];
#define ewram160DA(battler) (gSharedMem[0x160DA + (battler >> 1)])
#define ewram160DD (gSharedMem[0x160DD])
#define ewram160E0(i) (gSharedMem[0x160E0 + i])
-#define ewram160E6 (gSharedMem[0x160E6])
-#define ewram160E7 (gSharedMem[0x160E7])
#define CHOICED_MOVE(battler) (((u16*)(&gSharedMem[0x160E8 + battler * 2])))
#define ewram160E8 ((u8 *)(gSharedMem + 0x160E8))
#define ewram160E8arr(i) (gSharedMem[0x160E8 + i])
@@ -170,7 +135,6 @@ extern u8 gSharedMem[];
#define ewram160F0 ((u8 *)(gSharedMem + 0x160F0))
#define ewram160F0arr(i) (gSharedMem[0x160F0 + i])
#define ewram160F8 (gSharedMem[0x160F8])
-#define ewram160F9 (gSharedMem[0x160F9])
#define eStatHp (gSharedMem[0x160FA])
#define ewram160FB (gSharedMem[0x160FB])
#define ewram16100 ((u8 *)(gSharedMem + 0x16100))
@@ -178,30 +142,24 @@ extern u8 gSharedMem[];
#define ewram16100arr2(i, battler) (gSharedMem[0x16100 + i + battler * 4])
#define ewram16108 ((u8 *)(gSharedMem + 0x16108))
#define ewram16108arr(i) (gSharedMem[0x16108 + i])
-#define ewram16110 (gSharedMem[0x16110])
-#define ewram16111 (gSharedMem[0x16111])
-#define eMultihitMoveEffect (gSharedMem[0x16112])
-#define ewram16113 (gSharedMem[0x16113])
#define ewram16400 (gSharedMem + 0x16400)
-#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800))
-#define AI_BATTLE_HISTORY ((struct BattleHistory *) (gSharedMem + 0x16A00))
-#define AI_STACK ((struct AI_Stack *) (gSharedMem + 0x16C00))
#define AI_ARRAY_160CC(i) (gSharedMem[0x160CC + i * 2])
#define ewram16800 (&gSharedMem[0x16800])
-#define ewram17000 (&gSharedMem[0x17000])
-#define eMoveTutorMenu (struct MoveTutorMenu *)(gSharedMem + 0x17000)
// gBattleResources
+#define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800))
+#define AI_BATTLE_HISTORY ((struct BattleHistory *) (gSharedMem + 0x16A00))
+#define AI_STACK ((struct AI_Stack *) (gSharedMem + 0x16C00))
#define eSecretBaseRecord ((struct SecretBaseRecord *)(gSharedMem + 0x17000))
#define eBattleFlagsArr (*(struct ResourceFlags *)(gSharedMem + 0x17100))
#define B_BATTLESCRIPTS_STACK ((struct BattleScriptsStack *) (gSharedMem + 0x17110))
#define B_FUNCTION_STACK ((struct BattleCallbacksStack *) (gSharedMem + 0x17140))
+#define gBattleResources_statsBeforeLvlUp ((struct StatsArray *)(gSharedMem + 0x17180))
-
+#define ewram17000 (&gSharedMem[0x17000])
+#define eMoveTutorMenu (struct MoveTutorMenu *)(gSharedMem + 0x17000)
#define eCableCar1 ((struct CableCarEwramStruct1 *)(gSharedMem + 0x17000))
-#define ewram17130 (gSharedMem[0x17130])
-#define ewram17160 (gSharedMem[0x17160])
-#define ewram17800 ((struct Struct2017800 *) (gSharedMem + 0x17800))
+#define gBattleSpriteInfo ((struct BattleSpriteInfo *) (gSharedMem + 0x17800))
#define ewram17800_2 (&gSharedMem[0x17800])
#define EWRAM_17800 ((struct UnknownStruct1 *)(gSharedMem + 0x17800))
#define eTransformStatuses ((struct TransformStatus *)(gSharedMem + 0x17800))
diff --git a/src/battle/anim/battle_intro.c b/src/battle/anim/battle_intro.c
index 568f5071d..1c1972bb4 100644
--- a/src/battle/anim/battle_intro.c
+++ b/src/battle/anim/battle_intro.c
@@ -402,10 +402,10 @@ static void BattleIntroTask_80E4C34(u8 taskId)
if (gTasks[taskId].tBgXOffset == 0)
{
gTasks[taskId].tState++;
- gSprites[ewram1608A].oam.objMode = 2;
- gSprites[ewram1608A].callback = sub_800FE20;
- gSprites[ewram1608B].oam.objMode = 2;
- gSprites[ewram1608B].callback = sub_800FE20;
+ gSprites[gBattleStruct->unk1608A].oam.objMode = 2;
+ gSprites[gBattleStruct->unk1608A].callback = sub_800FE20;
+ gSprites[gBattleStruct->unk1608B].oam.objMode = 2;
+ gSprites[gBattleStruct->unk1608B].callback = sub_800FE20;
REG_WININ = 0x3F;
REG_WINOUT = 0x3F06;
}
diff --git a/src/battle/anim/normal.c b/src/battle/anim/normal.c
index 9053d7844..9be913b70 100644
--- a/src/battle/anim/normal.c
+++ b/src/battle/anim/normal.c
@@ -1932,8 +1932,8 @@ void sub_80E4300(u8 taskId)
}
else
{
- gTasks[taskId].data[0] = ewram17800[gBattleAnimAttacker].invisible;
- ewram17800[gBattleAnimAttacker].invisible = TRUE;
+ gTasks[taskId].data[0] = gBattleSpriteInfo[gBattleAnimAttacker].invisible;
+ gBattleSpriteInfo[gBattleAnimAttacker].invisible = TRUE;
gTasks[taskId].func = sub_80E4368;
gAnimVisualTaskCount--;
}
@@ -1943,7 +1943,7 @@ static void sub_80E4368(u8 taskId)
{
if (gBattleAnimArgs[7] == 0x1000)
{
- ewram17800[gBattleAnimAttacker].invisible = gTasks[taskId].data[0] & 1;
+ gBattleSpriteInfo[gBattleAnimAttacker].invisible = gTasks[taskId].data[0] & 1;
DestroyTask(taskId);
}
}
diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c
index f83334be3..9de1e9b1f 100644
--- a/src/battle_ai_switch_items.c
+++ b/src/battle_ai_switch_items.c
@@ -82,7 +82,7 @@ static bool8 ShouldSwitchIfWonderGuard(void)
continue;
GetMonData(&gEnemyParty[i], MON_DATA_SPECIES); // Unused return value.
GetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY); // Unused return value.
-
+
for (opposingBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT), j = 0; j < MAX_MON_MOVES; ++j)
{
move = GetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j);
diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c
index e86b9359c..50a5323e3 100755
--- a/src/battle_anim_special.c
+++ b/src/battle_anim_special.c
@@ -1843,7 +1843,7 @@ void sub_81416C4(u8 taskId)
void sub_81417D8(u8 taskId)
{
- gBattleAnimArgs[7] = ewram17800[gBattleAnimAttacker].substituteSprite;
+ gBattleAnimArgs[7] = gBattleSpriteInfo[gBattleAnimAttacker].substituteSprite;
DestroyAnimVisualTask(taskId);
}
diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c
index bd1ab3e23..eafe78b42 100644
--- a/src/battle_controller_link_opponent.c
+++ b/src/battle_controller_link_opponent.c
@@ -454,7 +454,7 @@ void sub_8037CC0(void)
{
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
gBattlerControllerFuncs[gActiveBattler] = sub_8037D2C;
}
@@ -1214,7 +1214,7 @@ void sub_8039648(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4 = 1;
break;
@@ -1283,7 +1283,7 @@ void LinkOpponentHandlecmd10(void)
{
if (ewram17810[gActiveBattler].unk4 == 0)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4++;
}
@@ -1358,9 +1358,9 @@ void sub_8039B64(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite && !gBattleSpriteInfo[gActiveBattler].flag_x8)
{
- ewram17800[gActiveBattler].unk0_3 = 1;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 1;
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
}
ewram17810[gActiveBattler].unk4 = 1;
@@ -1378,10 +1378,10 @@ void sub_8039B64(void)
if (!gAnimScriptActive)
{
sub_80326EC(1);
- if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1)
+ if ((gBattleSpriteInfo[gActiveBattler].substituteSprite) && r7 <= 1)
{
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
- ewram17800[gActiveBattler].unk0_3 = 0;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 0;
}
ewram17810[gActiveBattler].unk4 = 3;
}
diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c
index bbe366ac0..946e943e4 100644
--- a/src/battle_controller_link_partner.c
+++ b/src/battle_controller_link_partner.c
@@ -396,7 +396,7 @@ void sub_811E034(void)
{
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
gBattlerControllerFuncs[gActiveBattler] = sub_811E0A0;
}
@@ -1153,7 +1153,7 @@ void sub_811FA5C(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4 = 1;
break;
@@ -1219,7 +1219,7 @@ void LinkPartnerHandlecmd10(void)
{
if (ewram17810[gActiveBattler].unk4 == 0)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4++;
}
@@ -1294,9 +1294,9 @@ void sub_811FF30(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite && !gBattleSpriteInfo[gActiveBattler].flag_x8)
{
- ewram17800[gActiveBattler].unk0_3 = 1;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 1;
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
}
ewram17810[gActiveBattler].unk4 = 1;
@@ -1314,10 +1314,10 @@ void sub_811FF30(void)
if (!gAnimScriptActive)
{
sub_80326EC(1);
- if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1)
+ if ((gBattleSpriteInfo[gActiveBattler].substituteSprite) && r7 <= 1)
{
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
- ewram17800[gActiveBattler].unk0_3 = 0;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 0;
}
ewram17810[gActiveBattler].unk4 = 3;
}
diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c
index 39a05c2af..882c34b7f 100644
--- a/src/battle_controller_opponent.c
+++ b/src/battle_controller_opponent.c
@@ -459,7 +459,7 @@ void sub_8033264(void)
{
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
gBattlerControllerFuncs[gActiveBattler] = sub_80332D0;
}
@@ -1187,7 +1187,7 @@ void sub_8034B74(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4 = 1;
break;
@@ -1287,7 +1287,7 @@ void OpponentHandlecmd10(void)
{
if (ewram17810[gActiveBattler].unk4 == 0)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4++;
}
@@ -1362,9 +1362,9 @@ void sub_8035238(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite && !gBattleSpriteInfo[gActiveBattler].flag_x8)
{
- ewram17800[gActiveBattler].unk0_3 = 1;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 1;
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
}
ewram17810[gActiveBattler].unk4 = 1;
@@ -1382,10 +1382,10 @@ void sub_8035238(void)
if (!gAnimScriptActive)
{
sub_80326EC(1);
- if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1)
+ if ((gBattleSpriteInfo[gActiveBattler].substituteSprite) && r7 <= 1)
{
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
- ewram17800[gActiveBattler].unk0_3 = 0;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 0;
}
ewram17810[gActiveBattler].unk4 = 3;
}
diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c
index 24968cb9d..271f5cfd1 100644
--- a/src/battle_controller_player.c
+++ b/src/battle_controller_player.c
@@ -1258,7 +1258,7 @@ void sub_802D680(void)
ewram17810[gActiveBattler].unk1_0 = 0;
FreeSpriteTilesByTag(0x27F9);
FreeSpritePaletteByTag(0x27F9);
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
gBattlerControllerFuncs[gActiveBattler] = sub_802D730;
}
@@ -2385,7 +2385,7 @@ void sub_802FB2C(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4 = 1;
break;
@@ -2460,7 +2460,7 @@ void PlayerHandlecmd10(void)
{
if (ewram17810[gActiveBattler].unk4 == 0)
{
- if (ewram17800[gActiveBattler].substituteSprite)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4++;
}
@@ -2548,9 +2548,10 @@ void sub_8030190(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite == 1 && ewram17800[gActiveBattler].unk0_3 == 0)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1 &&
+ gBattleSpriteInfo[gActiveBattler].flag_x8 == 0)
{
- ewram17800[gActiveBattler].unk0_3 = 1;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 1;
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
}
ewram17810[gActiveBattler].unk4 = 1;
@@ -2568,10 +2569,10 @@ void sub_8030190(void)
if (!gAnimScriptActive)
{
sub_80326EC(1);
- if (ewram17800[gActiveBattler].substituteSprite == 1 && r7 < 2)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1 && r7 < 2)
{
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
- ewram17800[gActiveBattler].unk0_3 = 0;
+ gBattleSpriteInfo[gActiveBattler].flag_x8 = 0;
}
ewram17810[gActiveBattler].unk4 = 3;
}
@@ -2674,9 +2675,9 @@ void PlayerHandlecmd22(void)
gUnknown_0300434C[gActiveBattler] = CreateTask(TaskDummy, 0xFF);
gTasks[gUnknown_0300434C[gActiveBattler]].data[0] = gBattleBufferA[gActiveBattler][1] & 0xF;
- ewram16054 = gBattleBufferA[gActiveBattler][1] >> 4;
- EWRAM_1609D = gBattleBufferA[gActiveBattler][2];
- ewram160C0 = gBattleBufferA[gActiveBattler][3];
+ gBattleStruct->unk16054 = gBattleBufferA[gActiveBattler][1] >> 4;
+ gBattleStruct->unk1609D = gBattleBufferA[gActiveBattler][2];
+ gBattleStruct->unk160C0 = gBattleBufferA[gActiveBattler][3];
for (i = 0; i < 3; i++)
gUnknown_02038470[i] = gBattleBufferA[gActiveBattler][4 + i];
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0));
diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c
index 7d6070aa1..3e54668b0 100644
--- a/src/battle_controller_wally.c
+++ b/src/battle_controller_wally.c
@@ -1195,7 +1195,7 @@ void sub_81390D0(void)
switch (ewram17810[gActiveBattler].unk4)
{
case 0:
- if (ewram17800[gActiveBattler].substituteSprite == 1)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5);
ewram17810[gActiveBattler].unk4 = 1;
break;
@@ -1212,7 +1212,7 @@ void sub_81390D0(void)
if (!gAnimScriptActive)
{
sub_80326EC(1);
- if (ewram17800[gActiveBattler].substituteSprite == 1)
+ if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1)
move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6);
ewram17810[gActiveBattler].unk4 = 3;
}
@@ -1496,7 +1496,7 @@ void sub_81398BC(u8 bank)
{
u16 species;
- ewram17800[bank].transformedSpecies = 0;
+ gBattleSpriteInfo[bank].transformedSpecies = 0;
gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1];
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
gUnknown_0300434C[bank] = CreateInvisibleSpriteWithCallback(sub_80312F0);
diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c
index a7e65137d..49da3c9e6 100644
--- a/src/battle_gfx_sfx_util.c
+++ b/src/battle_gfx_sfx_util.c
@@ -194,9 +194,9 @@ bool8 move_anim_start_t3(u8 a, u8 b, u8 c, u8 d, u16 e)
gBattleMonForms[a] = e & 0x7F;
return TRUE;
}
- if (ewram17800[a].substituteSprite && sub_803163C(d) == 0)
+ if (gBattleSpriteInfo[a].substituteSprite && sub_803163C(d) == 0)
return TRUE;
- if (ewram17800[a].substituteSprite && d == 2 && gSprites[gBattlerSpriteIds[a]].invisible)
+ if (gBattleSpriteInfo[a].substituteSprite && d == 2 && gSprites[gBattlerSpriteIds[a]].invisible)
{
refresh_graphics_maybe(a, 1, gBattlerSpriteIds[a]);
sub_80324E0(a);
@@ -296,14 +296,14 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
const u8 *lzPaletteData;
personalityValue = GetMonData(pkmn, MON_DATA_PERSONALITY);
- if (ewram17800[b].transformedSpecies == 0)
+ if (gBattleSpriteInfo[b].transformedSpecies == 0)
{
species = GetMonData(pkmn, MON_DATA_SPECIES);
r7 = personalityValue;
}
else
{
- species = ewram17800[b].transformedSpecies;
+ species = gBattleSpriteInfo[b].transformedSpecies;
r7 = gTransformedPersonalities[b];
}
otId = GetMonData(pkmn, MON_DATA_OT_ID);
@@ -317,7 +317,7 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
species,
r7);
paletteOffset = 0x100 + b * 16;
- if (ewram17800[b].transformedSpecies == 0)
+ if (gBattleSpriteInfo[b].transformedSpecies == 0)
lzPaletteData = GetMonSpritePal(pkmn);
else
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
@@ -330,7 +330,7 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
LZDecompressWram(lzPaletteData, ewram16400);
LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
- if (ewram17800[b].transformedSpecies != 0)
+ if (gBattleSpriteInfo[b].transformedSpecies != 0)
{
BlendPalette(paletteOffset, 16, 6, RGB(31, 31, 31));
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
@@ -348,14 +348,14 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
const u8 *lzPaletteData;
personalityValue = GetMonData(pkmn, MON_DATA_PERSONALITY);
- if (ewram17800[b].transformedSpecies == 0)
+ if (gBattleSpriteInfo[b].transformedSpecies == 0)
{
species = GetMonData(pkmn, MON_DATA_SPECIES);
r7 = personalityValue;
}
else
{
- species = ewram17800[b].transformedSpecies;
+ species = gBattleSpriteInfo[b].transformedSpecies;
r7 = gTransformedPersonalities[b];
}
otId = GetMonData(pkmn, MON_DATA_OT_ID);
@@ -369,7 +369,7 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
species,
r7);
paletteOffset = 0x100 + b * 16;
- if (ewram17800[b].transformedSpecies == 0)
+ if (gBattleSpriteInfo[b].transformedSpecies == 0)
lzPaletteData = GetMonSpritePal(pkmn);
else
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
@@ -382,7 +382,7 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
LZDecompressWram(lzPaletteData, ewram16400);
LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
- if (ewram17800[b].transformedSpecies != 0)
+ if (gBattleSpriteInfo[b].transformedSpecies != 0)
{
BlendPalette(paletteOffset, 16, 6, RGB(31, 31, 31));
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
@@ -611,7 +611,7 @@ void sub_8031EE8(void)
void sub_8031F0C(void)
{
sub_8031EE8();
- memset(ewram17800, 0, 0x10);
+ memset(gBattleSpriteInfo, 0, 0x10);
}
void sub_8031F24(void)
@@ -619,12 +619,12 @@ void sub_8031F24(void)
s32 i;
for (i = 0; i < gBattlersCount; i++)
- ewram17800[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible;
+ gBattleSpriteInfo[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible;
}
void sub_8031F88(u8 a)
{
- ewram17800[a].invisible = gSprites[gBattlerSpriteIds[a]].invisible;
+ gBattleSpriteInfo[a].invisible = gSprites[gBattlerSpriteIds[a]].invisible;
}
void sub_8031FC4(u8 a, u8 b, bool8 c)
@@ -642,7 +642,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
paletteOffset = 0x100 + a * 16;
LoadPalette(ewram16400 + ewram17840.unk0 * 32, paletteOffset, 32);
gBattleMonForms[a] = ewram17840.unk0;
- if (ewram17800[a].transformedSpecies != 0)
+ if (gBattleSpriteInfo[a].transformedSpecies != 0)
{
BlendPalette(paletteOffset, 16, 6, RGB(31, 31, 31));
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
@@ -716,7 +716,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
if (!IsContest())
{
- ewram17800[a].transformedSpecies = species;
+ gBattleSpriteInfo[a].transformedSpecies = species;
gBattleMonForms[a] = gBattleMonForms[b];
}
gSprites[gBattlerSpriteIds[a]].pos1.y = sub_8077F68(a);
@@ -777,12 +777,12 @@ void refresh_graphics_maybe(u8 a, u8 b, u8 spriteId)
void sub_80324BC(u8 a, u16 b)
{
if (b == 0xA4)
- ewram17800[a].substituteSprite = 1;
+ gBattleSpriteInfo[a].substituteSprite = 1;
}
void sub_80324E0(u8 a)
{
- ewram17800[a].substituteSprite = 0;
+ gBattleSpriteInfo[a].substituteSprite = 0;
}
void HandleLowHpMusicChange(struct Pokemon *pkmn, u8 b)
@@ -792,22 +792,22 @@ void HandleLowHpMusicChange(struct Pokemon *pkmn, u8 b)
if (GetHPBarLevel(hp, maxHP) == 1)
{
- if (!ewram17800[b].unk0_1)
+ if (!gBattleSpriteInfo[b].lowHpSong)
{
- if (!ewram17800[b ^ 2].unk0_1)
+ if (!gBattleSpriteInfo[b ^ 2].lowHpSong)
PlaySE(SE_LOW_HEALTH);
- ewram17800[b].unk0_1 = 1;
+ gBattleSpriteInfo[b].lowHpSong = 1;
}
}
else
{
- ewram17800[b].unk0_1 = 0;
+ gBattleSpriteInfo[b].lowHpSong = 0;
if (!IsDoubleBattle())
{
m4aSongNumStop(SE_LOW_HEALTH);
return;
}
- if (IsDoubleBattle() && !ewram17800[b ^ 2].unk0_1)
+ if (IsDoubleBattle() && !gBattleSpriteInfo[b ^ 2].lowHpSong)
{
m4aSongNumStop(SE_LOW_HEALTH);
return;
@@ -819,9 +819,9 @@ void BattleStopLowHpSound(void)
{
u8 r4 = GetBattlerAtPosition(0);
- ewram17800[r4].unk0_1 = 0;
+ gBattleSpriteInfo[r4].lowHpSong = 0;
if (IsDoubleBattle())
- ewram17800[r4 ^ 2].unk0_1 = 0;
+ gBattleSpriteInfo[r4 ^ 2].lowHpSong = 0;
m4aSongNumStop(SE_LOW_HEALTH);
}
@@ -903,9 +903,9 @@ void sub_80328A4(struct Sprite *sprite)
}
if (gAnimScriptActive || r7->invisible)
invisible = TRUE;
- else if (ewram17800[r4].transformedSpecies != 0 && gEnemyMonElevation[ewram17800[r4].transformedSpecies] == 0)
+ else if (gBattleSpriteInfo[r4].transformedSpecies != 0 && gEnemyMonElevation[gBattleSpriteInfo[r4].transformedSpecies] == 0)
invisible = TRUE;
- if (ewram17800[r4].substituteSprite)
+ if (gBattleSpriteInfo[r4].substituteSprite)
invisible = TRUE;
sprite->pos1.x = r7->pos1.x;
sprite->pos2.x = r7->pos2.x;
@@ -921,8 +921,8 @@ void sub_8032984(u8 a, u16 b)
{
if (GetBattlerSide(a) != 0)
{
- if (ewram17800[a].transformedSpecies != 0)
- b = ewram17800[a].transformedSpecies;
+ if (gBattleSpriteInfo[a].transformedSpecies != 0)
+ b = gBattleSpriteInfo[a].transformedSpecies;
if (gEnemyMonElevation[b] != 0)
gSprites[ewram17810[a].unk7].callback = sub_80328A4;
else
@@ -960,7 +960,7 @@ void sub_8032A38(void)
void sub_8032AA8(u8 a, u8 b)
{
- ewram17800[a].transformedSpecies = 0;
+ gBattleSpriteInfo[a].transformedSpecies = 0;
gBattleMonForms[a] = 0;
if (b == 0)
sub_80324E0(a);
diff --git a/src/battle_interface.c b/src/battle_interface.c
index c36556f11..be9554bf2 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -1048,7 +1048,7 @@ _0804420C: .4byte 0x04000008\n\
// TODO: make this a local variable
memcpy(str, gUnknown_0820A89C, sizeof(str));
r4 = gSprites[a].data[6];
- if ((ewram17800[r4].unk0_4) == 0)
+ if ((gBattleSpriteInfo[r4].hpNumbersNoBars) == 0)
return;
ptr = str + 6;
if (c == 0)
@@ -1427,8 +1427,8 @@ void sub_804454C(void)
{
u8 r6;
- ewram17800[i].unk0_4 ^= 1;
- r6 = ewram17800[i].unk0_4;
+ gBattleSpriteInfo[i].hpNumbersNoBars ^= 1;
+ r6 = gBattleSpriteInfo[i].hpNumbersNoBars;
if (GetBattlerSide(i) == 0)
{
@@ -2702,7 +2702,7 @@ static void sub_8045458(u8 a, u8 b)
for (i = 0; i < 3; i++)
CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8 + i) * 32, 32);
- if (!ewram17800[r7].unk0_4)
+ if (!gBattleSpriteInfo[r7].hpNumbersNoBars)
CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 64);
sub_8045458(a, 1);
@@ -2717,7 +2717,7 @@ static void sub_8045458(u8 a, u8 b)
CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8) * 32, 96);
if (IsDoubleBattle() == TRUE || GetBattlerSide(r7) == TRUE)
{
- if (!ewram17800[r7].unk0_4)
+ if (!gBattleSpriteInfo[r7].hpNumbersNoBars)
{
CpuCopy32(sub_8043CDC(0), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 32);
CpuCopy32(sub_8043CDC(0x41), OBJ_VRAM0 + (gSprites[r10].oam.tileNum + 1) * 32, 32);
@@ -2933,7 +2933,7 @@ s32 sub_8045C78(u8 a, u8 unused1, u8 c, u8 unused2)
r5 = ABS(r8 / r5);
r6 = sub_8045F58(ewram17850[a].unk4, ewram17850[a].unk8, r8, &ewram17850[a].unk10, 8, r5);
}
- if (c == 1 || (c == 0 && (!ewram17800[a].unk0_4)))
+ if (c == 1 || (c == 0 && (!gBattleSpriteInfo[a].hpNumbersNoBars)))
sub_8045D58(a, c);
if (r6 == -1)
ewram17850[a].unk10 = 0;
diff --git a/src/battle_main.c b/src/battle_main.c
index 1d4736d60..fee505c43 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -611,8 +611,8 @@ void sub_800F104(void)
playerId = GetMultiplayerId();
gBattleStruct->multiplayerId = playerId;
// Seriously, Game Freak?
- pSavedCallback = ewram160C4_Callback;
- pSavedBattleTypeFlags = ewram160C2_Flags;
+ pSavedCallback = &gBattleStruct->unk160C4;
+ pSavedBattleTypeFlags = &gBattleStruct->unk160C2;
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -2084,9 +2084,9 @@ void debug_sub_801174C(void)
{
gUnknown_02023A14_50 |= 0x10;
if (gUnknown_Debug_2023A76[0][2] > 5)
- gSharedMem[0x160A3] = gUnknown_Debug_2023A76[0][2] - 2;
+ gBattleStruct->unk160A3 = gUnknown_Debug_2023A76[0][2] - 2;
else
- gSharedMem[0x160A3] = gUnknown_Debug_2023A76[0][2];
+ gBattleStruct->unk160A3 = gUnknown_Debug_2023A76[0][2];
sub_80408BC();
}
else if (gUnknown_Debug_2023A76[0][0x22] == 5)
@@ -3122,8 +3122,8 @@ void sub_8010384(struct Sprite *sprite)
u16 species;
u8 yOffset;
- if (ewram17800[r6].transformedSpecies != 0)
- species = ewram17800[r6].transformedSpecies;
+ if (gBattleSpriteInfo[r6].transformedSpecies != 0)
+ species = gBattleSpriteInfo[r6].transformedSpecies;
else
species = sprite->data[2];
@@ -3340,39 +3340,39 @@ void debug_sub_80138CC(void)
{
if (GetBattlerSide(gActiveBattler) == 0)
{
- switch (gSharedMem[0x160FD])
+ switch (gBattleStruct->unk160FD)
{
case 0:
if (gBattlerControllerFuncs[gActiveBattler] == sub_802C098)
- gSharedMem[0x160FD]++;
+ gBattleStruct->unk160FD++;
break;
case 1:
gMain.heldKeys = A_BUTTON;
gMain.newKeys = A_BUTTON;
- gSharedMem[0x160FD]++;
- gSharedMem[0x160FE] = 0x80;
+ gBattleStruct->unk160FD++;
+ gBattleStruct->unk160FE = 0x80;
break;
case 2:
- gSharedMem[0x160FE]--;
- if (gSharedMem[0x160FE] == 0)
+ gBattleStruct->unk160FE--;
+ if (gBattleStruct->unk160FE == 0)
{
gMain.heldKeys = A_BUTTON;
gMain.newKeys = A_BUTTON;
- gSharedMem[0x160FD]++;
- gSharedMem[0x160FE] = 0x80;
+ gBattleStruct->unk160FD++;
+ gBattleStruct->unk160FE = 0x80;
}
break;
case 3:
- gSharedMem[0x160FE]--;
- if (gSharedMem[0x160FE] == 0)
+ gBattleStruct->unk160FE--;
+ if (gBattleStruct->unk160FE == 0)
{
gMain.heldKeys = A_BUTTON;
gMain.newKeys = A_BUTTON;
- gSharedMem[0x160FD]++;
+ gBattleStruct->unk160FD++;
}
break;
case 4:
- gSharedMem[0x160FD] = 0;
+ gBattleStruct->unk160FD = 0;
break;
}
}
@@ -3471,7 +3471,7 @@ void BattleStartClearSetData(void)
for (i = 0; i < 8; i++)
{
// TODO: Find matching access here
- ewram160ACarr(i) = 0;/*((u8 *)(gBattleStruct->lastTakenMove))[i] = 0;*/
+ eLastTakenMove_flat(i) = 0;/*((u8 *)(gBattleStruct->lastTakenMove))[i] = 0;*/
ewram160CCarr(i) = 0;/*((u8 *)(gBattleStruct->usedHeldItems))[i] = 0;*/
ewram160E8arr(i) = 0;/*((u8 *)(gBattleStruct->choicedMove))[i] = 0;*/
ewram160F0arr(i) = 0;/*((u8 *)(gBattleStruct->changedItems))[i] = 0;*/
@@ -3585,8 +3585,8 @@ void SwitchInClearSetData(void)
gLastPrintedMoves[gActiveBattler] = 0;
gLastHitBy[gActiveBattler] = 0xFF;
- ewram160ACarr2(0, gActiveBattler) = 0;
- ewram160ACarr2(1, gActiveBattler) = 0;
+ eLastTakenMove_2d(0, gActiveBattler) = 0;
+ eLastTakenMove_2d(1, gActiveBattler) = 0;
ewram16100arr2(0, gActiveBattler) = 0;
ewram16100arr2(1, gActiveBattler) = 0;
ewram16100arr2(2, gActiveBattler) = 0;
@@ -3651,8 +3651,8 @@ void UndoEffectsAfterFainting(void)
ewram160E8arr2(0, gActiveBattler) = 0;
ewram160E8arr2(1, gActiveBattler) = 0;
- ewram160ACarr2(0, gActiveBattler) = 0;
- ewram160ACarr2(1, gActiveBattler) = 0;
+ eLastTakenMove_2d(0, gActiveBattler) = 0;
+ eLastTakenMove_2d(1, gActiveBattler) = 0;
ewram16100arr2(0, gActiveBattler) = 0;
ewram16100arr2(1, gActiveBattler) = 0;
ewram16100arr2(2, gActiveBattler) = 0;
@@ -3716,14 +3716,15 @@ void sub_8011384(void)
}
else
{
- u8 r0;
+ u16 *hpOnSwitchout;
MEMSET_ALT(&gBattleMons[gActiveBattler], gBattleBufferB[gActiveBattler][4 + i], 0x58, i, ptr);
gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1;
gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2;
gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].altAbility);
- r0 = GetBattlerSide(gActiveBattler);
- ewram160BC[r0] = gBattleMons[gActiveBattler].hp;
+
+ hpOnSwitchout = &gBattleStruct->HP_OnSwitchout[GetBattlerSide(gActiveBattler)];
+ *hpOnSwitchout = gBattleMons[gActiveBattler].hp;
for (i = 0; i < 8; i++)
gBattleMons[gActiveBattler].statStages[i] = 6;
gBattleMons[gActiveBattler].status2 = 0;
@@ -3942,9 +3943,9 @@ void sub_80119B4(void)
MarkBattlerForControllerExec(gActiveBattler);
}
}
- ewram16058 = 0;
- ewram160F9 = 0;
- ewram160E6 = 0;
+ gBattleStruct->unk16058 = 0;
+ gBattleStruct->unk160F9 = 0;
+ gBattleStruct->unk160E6 = 0;
gBattleMainFunc = BattleBeginFirstTurn;
}
}
@@ -3961,9 +3962,9 @@ void unref_sub_8011A68(void)
MarkBattlerForControllerExec(gActiveBattler);
}
}
- ewram16058 = 0;
- ewram160F9 = 0;
- ewram160E6 = 0;
+ gBattleStruct->unk16058 = 0;
+ gBattleStruct->unk160F9 = 0;
+ gBattleStruct->unk160E6 = 0;
gBattleMainFunc = BattleBeginFirstTurn;
}
}
@@ -3976,7 +3977,7 @@ void BattleBeginFirstTurn(void)
if (gBattleControllerExecFlags == 0)
{
- if (ewram16058 == 0)
+ if (gBattleStruct->unk16058 == 0)
{
for (i = 0; i < gBattlersCount; i++)
gBattlerByTurnOrder[i] = i;
@@ -3989,16 +3990,16 @@ void BattleBeginFirstTurn(void)
}
}
}
- if (ewram160E6 == 0 && AbilityBattleEffects(0, 0, 0, 0xFF, 0) != 0)
+ if (gBattleStruct->unk160E6 == 0 && AbilityBattleEffects(0, 0, 0, 0xFF, 0) != 0)
{
- ewram160E6 = 1;
+ gBattleStruct->unk160E6 = 1;
return;
}
- while (ewram16058 < gBattlersCount)
+ while (gBattleStruct->unk16058 < gBattlersCount)
{
- if (AbilityBattleEffects(0, gBattlerByTurnOrder[ewram16058], 0, 0, 0) != 0)
+ if (AbilityBattleEffects(0, gBattlerByTurnOrder[gBattleStruct->unk16058], 0, 0, 0) != 0)
r9++;
- ewram16058++;
+ gBattleStruct->unk16058++;
if (r9 != 0)
return;
}
@@ -4006,11 +4007,11 @@ void BattleBeginFirstTurn(void)
return;
if (AbilityBattleEffects(11, 0, 0, 0, 0) != 0)
return;
- while (ewram160F9 < gBattlersCount)
+ while (gBattleStruct->unk160F9 < gBattlersCount)
{
- if (ItemBattleEffects(0, gBattlerByTurnOrder[ewram160F9], 0) != 0)
+ if (ItemBattleEffects(0, gBattlerByTurnOrder[gBattleStruct->unk160F9], 0) != 0)
r9++;
- ewram160F9++;
+ gBattleStruct->unk160F9++;
if (r9 != 0)
return;
}
@@ -4025,20 +4026,20 @@ void BattleBeginFirstTurn(void)
}
TurnValuesCleanUp(0);
SpecialStatusesClear();
- ewram160A6 = gAbsentBattlerFlags;
+ gBattleStruct->unk160A6 = gAbsentBattlerFlags;
gBattleMainFunc = sub_8012324;
ResetSentPokesToOpponentValue();
for (i = 0; i < 8; i++)
gBattleCommunication[i] = 0;
for (i = 0; i < gBattlersCount; i++)
gBattleMons[i].status2 &= ~8;
- ewram16000 = 0;
- ewram16001 = 0;
- ewram16110 = 0;
- ewram16111 = 0;
- ewram1600C = 0;
- ewram16059 = 0;
- ewram1600E = 0;
+ gBattleStruct->turnEffectsTracker = 0;
+ gBattleStruct->turnEffectsBattlerId = 0;
+ gBattleStruct->wishPerishSongState = 0;
+ gBattleStruct->wishPerishSongBattlerId = 0;
+ gBattleStruct->cmd49StateTracker = 0;
+ gBattleStruct->sub80173A4_Tracker = 0;
+ gBattleStruct->turnCountersTracker = 0;
gMoveResultFlags = 0;
gRandomTurnNumber = Random();
}
@@ -4059,11 +4060,11 @@ void bc_8013B1C(void)
if ((gBattleMons[i].status1 & 7) && (gBattleMons[i].status2 & 0x1000))
CancelMultiTurnMoves(i);
}
- ewram16000 = 0;
- ewram16001 = 0;
- ewram16110 = 0;
- ewram16111 = 0;
- ewram1600E = 0;
+ gBattleStruct->turnEffectsTracker = 0;
+ gBattleStruct->turnEffectsBattlerId = 0;
+ gBattleStruct->wishPerishSongState = 0;
+ gBattleStruct->wishPerishSongBattlerId = 0;
+ gBattleStruct->turnCountersTracker = 0;
gMoveResultFlags = 0;
}
}
@@ -4082,7 +4083,7 @@ void BattleTurnPassed(void)
}
if (HandleFaintedMonActions() != 0)
return;
- ewram16059 = 0;
+ gBattleStruct->sub80173A4_Tracker = 0;
if (HandleWishPerishSongOnTurnEnd() != 0)
return;
TurnValuesCleanUp(0);
@@ -4090,9 +4091,9 @@ void BattleTurnPassed(void)
gHitMarker &= ~0x80000;
gHitMarker &= ~0x400000;
gHitMarker &= ~0x100000;
- ewram16002 = 0;
- ewram160A1 = 0;
- ewram1600C = 0;
+ gBattleStruct->animTurn = 0;
+ gBattleStruct->animTargetsHit = 0;
+ gBattleStruct->cmd49StateTracker = 0;
gBattleMoveDamage = 0;
gMoveResultFlags = 0;
for (i = 0; i < 5; i++)
@@ -4112,7 +4113,7 @@ void BattleTurnPassed(void)
}
for (i = 0; i < 4; i++)
ewram16068arr(i) = 6;
- ewram160A6 = gAbsentBattlerFlags;
+ gBattleStruct->unk160A6 = gAbsentBattlerFlags;
gBattleMainFunc = sub_8012324;
gRandomTurnNumber = Random();
}
@@ -4140,7 +4141,7 @@ u8 CanRunFromBattle(void)
if (r6 != GetBattlerSide(i)
&& gBattleMons[i].ability == ABILITY_SHADOW_TAG)
{
- ewram16003 = i;
+ gBattleStruct->scriptingActive = i;
gLastUsedAbility = gBattleMons[i].ability;
gBattleCommunication[5] = 2;
return 2;
@@ -4151,7 +4152,7 @@ u8 CanRunFromBattle(void)
&& gBattleMons[gActiveBattler].type2 != 2
&& gBattleMons[i].ability == ABILITY_ARENA_TRAP)
{
- ewram16003 = i;
+ gBattleStruct->scriptingActive = i;
gLastUsedAbility = gBattleMons[i].ability;
gBattleCommunication[5] = 2;
return 2;
@@ -4160,7 +4161,7 @@ u8 CanRunFromBattle(void)
i = AbilityBattleEffects(15, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0);
if (i != 0 && (gBattleMons[gActiveBattler].type1 == 8 || gBattleMons[gActiveBattler].type2 == 8))
{
- ewram16003 = i - 1;
+ gBattleStruct->scriptingActive = i - 1;
gLastUsedAbility = gBattleMons[i - 1].ability;
gBattleCommunication[5] = 2;
return 2;
@@ -4241,11 +4242,11 @@ void sub_8012324(void)
ewram16068arr(gActiveBattler) = 6;
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)
&& (position & BIT_FLANK) != B_FLANK_LEFT
- && !(ewram160A6 & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))])
+ && !(gBattleStruct->unk160A6 & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))])
&& gBattleCommunication[GetBattlerAtPosition(BATTLE_PARTNER(position))] != STATE_WAIT_ACTION_CONFIRMED)
break;
//_080123F8
- if (ewram160A6 & gBitTable[gActiveBattler])
+ if (gBattleStruct->unk160A6 & gBitTable[gActiveBattler])
{
gActionForBanks[gActiveBattler] = 13;
if (!(gBattleTypeFlags & 0x40))
@@ -4518,7 +4519,7 @@ void sub_8012324(void)
{
if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE)
|| (position & BIT_FLANK) != B_FLANK_LEFT
- || (ewram160A6 & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)]))
+ || (gBattleStruct->unk160A6 & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)]))
{
BtlController_EmitLinkStandbyMsg(0, 0);
}
@@ -4904,7 +4905,7 @@ void CheckFocusPunch_ClearVarsBeforeTurnStarts(void)
gBattleMainFunc = RunTurnActionsFunctions;
gBattleCommunication[3] = 0;
gBattleCommunication[4] = 0;
- eMultihitMoveEffect = 0;
+ gBattleStruct->multihitMoveEffect = 0;
B_BATTLESCRIPTS_STACK->size = 0;
}
@@ -5179,7 +5180,7 @@ void HandleAction_UseMove(void)
gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber];
- if (ewram160A6 & gBitTable[gBattlerAttacker])
+ if (gBattleStruct->unk160A6 & gBitTable[gBattlerAttacker])
{
gCurrentActionFuncId = B_ACTION_FINISHED;
return;
@@ -5187,7 +5188,7 @@ void HandleAction_UseMove(void)
gCritMultiplier = 1;
eDmgMultiplier = 1;
- ewram160E7 = 0;
+ gBattleStruct->atkCancellerTracker = 0;
gMoveResultFlags = 0;
gMultiHitCounter = 0;
gBattleCommunication[6] = 0;
@@ -5368,7 +5369,7 @@ void HandleAction_Switch(void)
PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, ewram16064arr(gBattlerAttacker))
- ewram16003 = gBattlerAttacker;
+ gBattleStruct->scriptingActive = gBattlerAttacker;
gBattlescriptCurrInstr = BattleScript_ActionSwitch;
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
@@ -5399,7 +5400,7 @@ void HandleAction_UseItem(void)
else
{
- switch (ewram160D8((ewram16003 = gBattlerAttacker)))
+ switch (ewram160D8((gBattleStruct->scriptingActive = gBattlerAttacker)))
{
case AI_ITEM_FULL_RESTORE:
case AI_ITEM_HEAL_HP:
@@ -5437,8 +5438,8 @@ void HandleAction_UseItem(void)
gBattleTextBuff1[2]++;
}
- ewram160A4 = gBattleTextBuff1[2] + 14;
- ewram160A5 = 0;
+ gBattleStruct->animArg1 = gBattleTextBuff1[2] + 14;
+ gBattleStruct->animArg2 = 0;
}
break;
case AI_ITEM_GUARD_SPECS:
@@ -5485,7 +5486,7 @@ bool8 TryRunFromBattle(u8 bank)
{
if (gBattleMons[bank].speed < gBattleMons[bank ^ BIT_SIDE].speed)
{
- speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (ewram16078 * 30);
+ speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30);
if (speedVar > (Random() & 0xFF))
effect++;
}
@@ -5495,7 +5496,7 @@ bool8 TryRunFromBattle(u8 bank)
}
}
- ewram16078++;
+ gBattleStruct->runTries++;
}
if (effect)
@@ -5588,14 +5589,14 @@ void HandleAction_ThrowPokeblock(void)
gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBattlerAttacker][1] - 1;
gLastUsedItem = gBattleBufferB[gBattlerAttacker][2];
- if (ewram16087 < 3)
- ewram16087++;
- if (ewram16088 > 1)
+ if (gBattleStruct->safariPkblThrowCounter < 3)
+ gBattleStruct->safariPkblThrowCounter++;
+ if (gBattleStruct->safariFleeRate > 1)
{
- if (ewram16088 < gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]])
- ewram16088 = 1;
+ if (gBattleStruct->safariFleeRate < gUnknown_081FA70C[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]])
+ gBattleStruct->safariFleeRate = 1;
else
- ewram16088 -= gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]];
+ gBattleStruct->safariFleeRate -= gUnknown_081FA70C[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]];
}
gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2];
@@ -5608,17 +5609,17 @@ void HandleAction_GoNear(void)
gBattle_BG0_X = 0;
gBattle_BG0_Y = 0;
- ewram16089 += gUnknown_081FA71B[ewram16086];
- if (ewram16089 > 20)
- ewram16089 = 20;
+ gBattleStruct->safariCatchFactor += gUnknown_081FA71B[gBattleStruct->safariGoNearCounter];
+ if (gBattleStruct->safariCatchFactor > 20)
+ gBattleStruct->safariCatchFactor = 20;
- ewram16088 += gUnknown_081FA71F[ewram16086];
- if (ewram16088 > 20)
- ewram16088 = 20;
+ gBattleStruct->safariFleeRate += gUnknown_081FA71F[gBattleStruct->safariGoNearCounter];
+ if (gBattleStruct->safariFleeRate > 20)
+ gBattleStruct->safariFleeRate = 20;
- if (ewram16086 < 3)
+ if (gBattleStruct->safariGoNearCounter < 3)
{
- ewram16086++;
+ gBattleStruct->safariGoNearCounter++;
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
}
else
@@ -5654,7 +5655,7 @@ void HandleAction_Action11(void)
{
if (!HandleFaintedMonActions())
{
- ewram16059 = 0;
+ gBattleStruct->sub80173A4_Tracker = 0;
gCurrentActionFuncId = B_ACTION_FINISHED;
}
}
@@ -5682,15 +5683,15 @@ void HandleAction_ActionFinished(void)
| HITMARKER_CHARGING | HITMARKER_x4000000);
gBattleMoveDamage = 0;
- ewram16002 = 0;
- ewram160A1 = 0;
+ gBattleStruct->animTurn = 0;
+ gBattleStruct->animTargetsHit = 0;
gLastLandedMoves[gBattlerAttacker] = 0;
gLastHitByType[gBattlerAttacker] = 0;
eDynamicMoveType = 0;
gDynamicBasePower = 0;
- ewram1600C = 0;
+ gBattleStruct->cmd49StateTracker = 0;
gBattleCommunication[3] = 0;
gBattleCommunication[4] = 0;
- eMultihitMoveEffect = 0;
+ gBattleStruct->multihitMoveEffect = 0;
B_BATTLESCRIPTS_STACK->size = 0;
}
diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c
index 2ac0c114f..c9c22ec6f 100644
--- a/src/battle_script_commands.c
+++ b/src/battle_script_commands.c
@@ -4991,7 +4991,7 @@ static void atk15_seteffectwithchance(void)
}
gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
- gBattleStruct->unk16112 = 0;
+ gBattleStruct->multihitMoveEffect = 0;
}
static void atk16_seteffectprimary(void)
@@ -5015,7 +5015,7 @@ static void atk18_clearstatusfromeffect(void)
gBattleCommunication[MOVE_EFFECT_BYTE] = 0;
gBattlescriptCurrInstr += 2;
- gBattleStruct->unk16112 = 0;
+ gBattleStruct->multihitMoveEffect = 0;
}
static void atk19_tryfaintmon(void)
@@ -5057,8 +5057,8 @@ static void atk19_tryfaintmon(void)
if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler])
&& gBattleMons[gActiveBattler].hp == 0)
{
- ewram160ACarr2(0, battlerId) = 0;
- ewram160ACarr2(1, battlerId) = 0;
+ eLastTakenMove_2d(0, battlerId) = 0;
+ eLastTakenMove_2d(1, battlerId) = 0;
ewram16100arr2(0, battlerId) = 0;
ewram16100arr2(1, battlerId) = 0;
ewram16100arr2(2, battlerId) = 0;
@@ -9574,7 +9574,7 @@ static void atk74_hpthresholds2(void)
{
gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1));
opposing_bank = gActiveBattler ^ 1;
- hp_switchout = ewram160BCarr(GetBattlerSide(opposing_bank)); //gBattleStruct->HP_OnSwitchout[GetBattlerSide(opposing_bank)];
+ hp_switchout = eHpOnSwitchout(GetBattlerSide(opposing_bank)); //gBattleStruct->HP_OnSwitchout[GetBattlerSide(opposing_bank)];
result = (hp_switchout - gBattleMons[opposing_bank].hp) * 100 / hp_switchout;
if (gBattleMons[opposing_bank].hp >= hp_switchout)
@@ -9788,7 +9788,7 @@ static void atk7B_tryhealhalfhealth(void)
static void atk7C_trymirrormove(void)
{
- u16 r7 = ewram160ACarr2(0, gBattlerAttacker) | (ewram160ACarr2(1, gBattlerAttacker) << 8);
+ u16 r7 = eLastTakenMove_2d(0, gBattlerAttacker) | (eLastTakenMove_2d(1, gBattlerAttacker) << 8);
u16 r6 = ewram16100arr2(0, gBattlerAttacker) | (ewram16100arr2(1, gBattlerAttacker) << 8);
u16 r5 = ewram16100arr2(2, gBattlerAttacker) | (ewram16100arr2(3, gBattlerAttacker) << 8);
diff --git a/src/pokemon_2.c b/src/pokemon_2.c
index f19b0f0be..2d0ee9cfb 100644
--- a/src/pokemon_2.c
+++ b/src/pokemon_2.c
@@ -1188,6 +1188,7 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex)
{
s32 i;
s8 nickname[POKEMON_NAME_LENGTH * 2];
+ u16 * hpSwitchout;
gBattleMons[battleIndex].species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL);
gBattleMons[battleIndex].item = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HELD_ITEM, NULL);
@@ -1226,7 +1227,9 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex)
GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, nickname);
StringCopy10(gBattleMons[battleIndex].nickname, nickname);
GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_NAME, gBattleMons[battleIndex].otName);
- ewram160BC[GetBattlerSide(battleIndex)] = gBattleMons[battleIndex].hp;
+
+ hpSwitchout = &gBattleStruct->HP_OnSwitchout[GetBattlerSide(battleIndex)];
+ *hpSwitchout = gBattleMons[battleIndex].hp;
for (i = 0; i < 8; i++)
gBattleMons[battleIndex].statStages[i] = 6;
diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c
index ad18b3594..e6a1081cc 100644
--- a/src/reshow_battle_screen.c
+++ b/src/reshow_battle_screen.c
@@ -201,7 +201,7 @@ static bool8 LoadAppropiateBankSprite(u8 bank)
{
if (GetBattlerSide(bank))
{
- if (!ewram17800[bank].substituteSprite)
+ if (!gBattleSpriteInfo[bank].substituteSprite)
BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[bank]], bank);
else
BattleLoadSubstituteSprite(bank, 0);
@@ -210,7 +210,7 @@ static bool8 LoadAppropiateBankSprite(u8 bank)
LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, 0);
else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0)
LoadPlayerTrainerBankSprite(2, 0);
- else if (!ewram17800[bank].substituteSprite)
+ else if (!gBattleSpriteInfo[bank].substituteSprite)
BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[bank]], bank);
else
BattleLoadSubstituteSprite(bank, 0);
@@ -226,7 +226,7 @@ static void sub_807B184(u8 bank)
{
u8 posY;
- if (ewram17800[bank].substituteSprite)
+ if (gBattleSpriteInfo[bank].substituteSprite)
posY = sub_8077F7C(bank);
else
posY = sub_8077F68(bank);
@@ -274,7 +274,7 @@ static void sub_807B184(u8 bank)
gSprites[gBattlerSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES);
StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]);
}
- gSprites[gBattlerSpriteIds[bank]].invisible = ewram17800[bank].invisible;
+ gSprites[gBattlerSpriteIds[bank]].invisible = gBattleSpriteInfo[bank].invisible;
}
}