summaryrefslogtreecommitdiff
path: root/src/battle
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2017-11-11 13:20:03 -0800
committerMarcus Huderle <huderlem@gmail.com>2017-11-11 13:20:03 -0800
commit92fda2cc0d5afa76e94927cb72ceac9700f54c1b (patch)
tree24a7840f1c49602a6ad033ea6cc1cb27b7e12be4 /src/battle
parent955c5a8e90c9afba35114c583628f74f849a0da4 (diff)
parent999c4d59793e761ca71ab7b27272de46d78de138 (diff)
Merge remote-tracking branch 'upstream/master' into pokenav
Diffstat (limited to 'src/battle')
-rw-r--r--src/battle/battle_2.c223
-rw-r--r--src/battle/battle_3.c30
-rw-r--r--src/battle/battle_4.c903
-rw-r--r--src/battle/battle_7.c67
-rw-r--r--src/battle/battle_ai.c213
-rw-r--r--src/battle/battle_anim.c220
-rw-r--r--src/battle/battle_anim_807B69C.c3
-rw-r--r--src/battle/battle_anim_80A7E7C.c4
-rw-r--r--src/battle/battle_controller_linkopponent.c66
-rw-r--r--src/battle/battle_controller_linkpartner.c65
-rw-r--r--src/battle/battle_controller_opponent.c82
-rw-r--r--src/battle/battle_controller_player.c93
-rw-r--r--src/battle/battle_controller_safari.c3
-rw-r--r--src/battle/battle_controller_wally.c115
-rw-r--r--src/battle/battle_interface.c93
-rw-r--r--src/battle/battle_message.c3
-rw-r--r--src/battle/battle_party_menu.c6
-rw-r--r--src/battle/battle_records.c2
-rw-r--r--src/battle/battle_setup.c23
-rw-r--r--src/battle/battle_transition.c7
-rw-r--r--src/battle/calculate_base_damage.c4
-rw-r--r--src/battle/pokeball.c1
-rw-r--r--src/battle/reshow_battle_screen.c4
23 files changed, 1045 insertions, 1185 deletions
diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c
index a447cf498..14afc1537 100644
--- a/src/battle/battle_2.c
+++ b/src/battle/battle_2.c
@@ -29,6 +29,7 @@
#include "items.h"
#include "hold_effects.h"
#include "battle_move_effects.h"
+#include "ewram.h"
struct UnknownStruct6
{
@@ -62,48 +63,6 @@ struct UnknownStruct12
extern const u16 gUnknown_08D004E0[];
extern const struct MonCoords gCastformFrontSpriteCoords[];
-extern u8 ewram[];
-#define ewram0 (*(struct UnknownStruct7 *)(ewram + 0x0))
-#define ewram4 (*(struct UnknownStruct8 *)(ewram + 0x4))
-#define ewram16000 (ewram[0x16000])
-#define ewram16001 (ewram[0x16001])
-#define ewram16002 (ewram[0x16002])
-#define ewram16003 (ewram[0x16003])
-#define ewram1600C (ewram[0x1600C])
-#define ewram1600E (ewram[0x1600E])
-#define ewram1601B (ewram[0x1601B])
-#define ewram16020 ((u8 *)(ewram + 0x16020))
-#define ewram16056 (ewram[0x16056])
-#define ewram16058 (ewram[0x16058])
-#define ewram16059 (ewram[0x16059])
-#define ewram16078 (ewram[0x16078])
-#define ewram16084 (ewram[0x16084])
-#define ewram16086 (ewram[0x16086])
-#define ewram16087 (ewram[0x16087])
-#define ewram16088 (ewram[0x16088])
-#define ewram16089 (ewram[0x16089])
-#define ewram160A1 (ewram[0x160A1])
-#define ewram160A6 (ewram[0x160A6])
-#define ewram160AC ((u8 *)(ewram + 0x160AC))
-#define ewram160BC ((u16 *)(ewram + 0x160BC)) // hp
-#define ewram160C8 (ewram[0x160C8])
-#define ewram160C9 (ewram[0x160C9])
-#define ewram160CB (ewram[0x160CB])
-#define ewram160CC ((u8 *)(ewram + 0x160CC))
-#define ewram160E6 (ewram[0x160E6])
-#define ewram160E8 ((u8 *)(ewram + 0x160E8))
-#define ewram160F0 ((u8 *)(ewram + 0x160F0))
-#define ewram160F9 (ewram[0x160F9])
-#define ewram16100 ((u8 *)(ewram + 0x16100))
-#define ewram16108 ((u8 *)(ewram + 0x16108))
-#define ewram16110 (ewram[0x16110])
-#define ewram16111 (ewram[0x16111])
-#define ewram16113 (ewram[0x16113])
-#define ewram17100 ((u32 *)(ewram + 0x17100))
-#define ewram17130 (ewram[0x17130])
-#define ewram17160 (ewram[0x17160])
-#define ewram1D000 ((struct Pokemon *)(ewram + 0x1D000))
-
extern struct UnknownPokemonStruct2 gUnknown_02023A00[];
extern u8 gBattleBufferB[][0x200];
extern u8 gActiveBank;
@@ -294,8 +253,8 @@ void sub_800E9EC(void)
if (species != SPECIES_EGG && hp == 0)
r6 |= 3 << i * 2;
}
- ewram0.unk2 = r6;
- ewram0.unk3 = r6 >> 8;
+ BATTLE_STRUCT->unk2 = r6;
+ BATTLE_STRUCT->unk3 = r6 >> 8;
}
void sub_800EAAC(void)
@@ -391,11 +350,11 @@ void sub_800EC9C(void)
{
if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC())
{
- ewram0.unk0 = 1;
- ewram0.unk1 = 1;
+ BATTLE_STRUCT->unk0 = 1;
+ BATTLE_STRUCT->unk1 = 1;
sub_800E9EC();
sub_800EAAC();
- SendBlock(bitmask_all_link_players_but_self(), &ewram0, 32);
+ SendBlock(bitmask_all_link_players_but_self(), BATTLE_STRUCT, 32);
gBattleCommunication[0] = 1;
}
}
@@ -451,7 +410,7 @@ void sub_800EC9C(void)
gTasks[taskId].data[1] = 0x10E;
gTasks[taskId].data[2] = 0x5A;
gTasks[taskId].data[5] = 0;
- gTasks[taskId].data[3] = ewram0.unk2 | (ewram0.unk3 << 8);
+ gTasks[taskId].data[3] = BATTLE_STRUCT->unk2 | (BATTLE_STRUCT->unk3 << 8);
gTasks[taskId].data[4] = gBlockRecvBuffer[enemyId][1];
gBattleCommunication[0]++;
}
@@ -551,7 +510,7 @@ void sub_800F02C(void)
if (gUnknown_02023A00[i].language != 1)
PadNameString(nickname, 0);
}
- memcpy(ewram, gUnknown_02023A00, 0x60);
+ memcpy(gSharedMem, gUnknown_02023A00, 0x60);
}
void sub_800F104(void)
@@ -563,8 +522,8 @@ void sub_800F104(void)
playerId = GetMultiplayerId();
ewram160CB = playerId;
// Seriously, Game Freak?
- pSavedCallback = (MainCallback *)(ewram + 0x160C4);
- pSavedBattleTypeFlags = (u16 *)(ewram + 0x160C2);
+ pSavedCallback = ewram160C4_Callback;
+ pSavedBattleTypeFlags = ewram160C2_Flags;
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -575,7 +534,7 @@ void sub_800F104(void)
if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC())
{
sub_800F02C();
- SendBlock(bitmask_all_link_players_but_self(), ewram, 0x60);
+ SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60);
gBattleCommunication[0]++;
}
break;
@@ -634,11 +593,11 @@ void sub_800F298(void)
case 0:
if (gReceivedRemoteLinkPlayers != 0 && sub_8007ECC())
{
- ewram0.unk0 = 1;
- ewram0.unk1 = 1;
+ BATTLE_STRUCT->unk0 = 1;
+ BATTLE_STRUCT->unk1 = 1;
sub_800E9EC();
sub_800EAAC();
- SendBlock(bitmask_all_link_players_but_self(), ewram, 0x20);
+ SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20);
gBattleCommunication[0]++;
}
break;
@@ -904,7 +863,7 @@ void sub_800F828(struct Sprite *sprite)
void sub_800F838(struct Sprite *sprite)
{
- u16 *arr = (u16 *)ewram;
+ u16 *arr = (u16 *)gSharedMem;
switch (sprite->data0)
{
@@ -999,7 +958,7 @@ u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
for (j = 0; j < 4; j++)
{
- SetMonData(&party[i], MON_DATA_MOVE1 + j, (u8 *)&partyData[i].moves[j]);
+ SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]);
SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp);
}
break;
@@ -1014,7 +973,7 @@ u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
fixedIV = partyData[i].iv * 31 / 255;
CreateMon(&party[i], partyData[i].species, partyData[i].level, fixedIV, TRUE, personalityValue, 2, 0);
- SetMonData(&party[i], MON_DATA_HELD_ITEM, (u8 *)&partyData[i].heldItem);
+ SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem);
break;
}
case 3:
@@ -1027,10 +986,10 @@ u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum)
fixedIV = partyData[i].iv * 31 / 255;
CreateMon(&party[i], partyData[i].species, partyData[i].level, fixedIV, TRUE, personalityValue, 2, 0);
- SetMonData(&party[i], MON_DATA_HELD_ITEM, (u8 *)&partyData[i].heldItem);
+ SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem);
for (j = 0; j < 4; j++)
{
- SetMonData(&party[i], MON_DATA_MOVE1 + j, (u8 *)&partyData[i].moves[j]);
+ SetMonData(&party[i], MON_DATA_MOVE1 + j, &partyData[i].moves[j]);
SetMonData(&party[i], MON_DATA_PP1 + j, &gBattleMoves[partyData[i].moves[j]].pp);
}
break;
@@ -1375,6 +1334,7 @@ void sub_8010384(struct Sprite *sprite)
void sub_8010494(struct Sprite *sprite)
{
s32 i;
+ u8 *dst;
sprite->data4--;
if (sprite->data4 == 0)
@@ -1389,8 +1349,8 @@ void sub_8010494(struct Sprite *sprite)
}
else
{
- u8 *dst = (u8 *)gUnknown_081FAF4C[GetBankIdentity(sprite->data0)] + (gBattleMonForms[sprite->data0] << 11) + (sprite->data3 << 8);
-
+ // this should use a MEMSET_ALT, but *(dst++) wont match with it.
+ dst = (u8 *)gUnknown_081FAF4C[GetBankIdentity(sprite->data0)] + (gBattleMonForms[sprite->data0] << 11) + (sprite->data3 << 8);
for (i = 0; i < 0x100; i++)
*(dst++) = 0;
StartSpriteAnim(sprite, gBattleMonForms[sprite->data0]);
@@ -1567,10 +1527,7 @@ void sub_8010874(void)
{
gStatuses3[i] = 0;
- r4 = (u8 *)&gDisableStructs[i];
- for (j = 0; j < (u32)0x1C; j++)
- r4[j] = 0;
-
+ MEMSET_ALT(&gDisableStructs[i], 0, 0x1C, j, r4);
gDisableStructs[i].isFirstTurn= 2;
gUnknown_02024C70[i] = 0;
gLastUsedMove[i] = 0;
@@ -1580,25 +1537,20 @@ void sub_8010874(void)
gUnknown_02024C5C[i] = 0xFF;
gLockedMove[i] = 0;
gUnknown_02024C2C[i] = 0;
- ewram17100[i] = 0;
+ eFlashFireArr.arr[i] = 0;
}
for (i = 0; i < 2; i++)
{
gSideAffecting[i] = 0;
-
- r4 = (u8 *)&gSideTimer[i];
- for (j = 0; j < 12; j++)
- r4[j] = 0;
+ MEMSET_ALT(&gSideTimer[i], 0, 12, j, r4);
}
gBankAttacker = 0;
gBankTarget = 0;
gBattleWeather = 0;
- r4 = (u8 *)&gWishFutureKnock;
- for (i = 0; i < (u32)0x2C; i++)
- r4[i] = 0;
+ MEMSET_ALT(&gWishFutureKnock, 0, 0x2C, i, r4);
gHitMarker = 0;
if ((gBattleTypeFlags & BATTLE_TYPE_LINK) == 0 && gSaveBlock2.optionsBattleSceneOff == TRUE)
@@ -1629,12 +1581,12 @@ void sub_8010874(void)
for (i = 0; i < 8; i++)
{
- ewram[i + 0x160AC] = 0;
- ewram[i + 0x160CC] = 0;
- ewram[i + 0x160E8] = 0;
- ewram[i + 0x160F0] = 0;
- ewram[i + 0x16100] = 0;
- ewram[i + 0x16108] = 0;
+ ewram160ACarr(i) = 0;
+ ewram160CCarr(i) = 0;
+ ewram160E8arr(i) = 0;
+ ewram160F0arr(i) = 0;
+ ewram16100arr(i) = 0;
+ ewram16108arr(i) = 0;
}
ewram160C8 = 6;
@@ -1669,7 +1621,6 @@ void SwitchInClearStructs(void)
struct DisableStruct sp0 = gDisableStructs[gActiveBank];
s32 i;
u8 *ptr;
- u32 *ptr2;
if (gBattleMoves[gCurrentMove].effect != EFFECT_BATON_PASS)
{
@@ -1714,16 +1665,14 @@ void SwitchInClearStructs(void)
{
if (gUnknown_02024AD0[i].unk0 & (gBitTable[gActiveBank] << 16))
gUnknown_02024AD0[i].unk0 &= ~(gBitTable[gActiveBank] << 16);
- if ((gUnknown_02024AD0[i].unk0 & 0xE000) && ewram[0x16020 + i] == gActiveBank)
+ if ((gUnknown_02024AD0[i].unk0 & 0xE000) && ewram16020arr(i) == gActiveBank)
gUnknown_02024AD0[i].unk0 &= ~0xE000;
}
gActionSelectionCursor[gActiveBank] = 0;
gMoveSelectionCursor[gActiveBank] = 0;
- ptr = (u8 *)&gDisableStructs[gActiveBank];
- for (i = 0; i < (u32)0x1C; i++)
- ptr[i] = 0;
+ MEMSET_ALT(&gDisableStructs[gActiveBank], 0, 0x1C, i, ptr);
if (gBattleMoves[gCurrentMove].effect == EFFECT_BATON_PASS)
{
@@ -1741,17 +1690,16 @@ void SwitchInClearStructs(void)
gUnknown_02024C2C[gActiveBank] = 0;
gUnknown_02024C5C[gActiveBank] = 0xFF;
- ewram[0x160AC + gActiveBank * 2 + 0] = 0;
- ewram[0x160AC + gActiveBank * 2 + 1] = 0;
- ewram[0x16100 + gActiveBank * 4 + 0] = 0;
- ewram[0x16100 + gActiveBank * 4 + 1] = 0;
- ewram[0x16100 + gActiveBank * 4 + 2] = 0;
- ewram[0x16100 + gActiveBank * 4 + 3] = 0;
- ewram[0x160E8 + gActiveBank * 2 + 0] = 0;
- ewram[0x160E8 + gActiveBank * 2 + 1] = 0;
+ ewram160ACarr2(0, gActiveBank) = 0;
+ ewram160ACarr2(1, gActiveBank) = 0;
+ ewram16100arr2(0, gActiveBank) = 0;
+ ewram16100arr2(1, gActiveBank) = 0;
+ ewram16100arr2(2, gActiveBank) = 0;
+ ewram16100arr2(3, gActiveBank) = 0;
+ ewram160E8arr2(0, gActiveBank) = 0;
+ ewram160E8arr2(1, gActiveBank) = 0;
- ptr2 = (u32 *)(ewram + 0x17100);
- ptr2[gActiveBank] = 0;
+ eFlashFireArr.arr[gActiveBank] = 0;
gCurrentMove = 0;
}
@@ -1760,7 +1708,6 @@ void UndoEffectsAfterFainting(void)
{
s32 i;
u8 *ptr;
- u32 *ptr2;
for (i = 0; i < 8; i++)
gBattleMons[gActiveBank].statStages[i] = 6;
@@ -1772,15 +1719,13 @@ void UndoEffectsAfterFainting(void)
gBattleMons[i].status2 &= ~STATUS2_ESCAPE_PREVENTION;
if (gBattleMons[i].status2 & (gBitTable[gActiveBank] << 16))
gBattleMons[i].status2 &= ~(gBitTable[gActiveBank] << 16);
- if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && ewram[0x16020 + i] == gActiveBank)
+ if ((gBattleMons[i].status2 & STATUS2_WRAPPED) && ewram16020arr(i) == gActiveBank)
gBattleMons[i].status2 &= ~STATUS2_WRAPPED;
}
gActionSelectionCursor[gActiveBank] = 0;
gMoveSelectionCursor[gActiveBank] = 0;
- ptr = (u8 *)&gDisableStructs[gActiveBank];
- for (i = 0; i < (u32)0x1C; i++)
- ptr[i] = 0;
+ MEMSET_ALT(&gDisableStructs[gActiveBank], 0, 0x1C, i, ptr);
gProtectStructs[gActiveBank].protected = 0;
gProtectStructs[gActiveBank].endured = 0;
gProtectStructs[gActiveBank].onlyStruggle = 0;
@@ -1809,17 +1754,16 @@ void UndoEffectsAfterFainting(void)
gUnknown_02024C2C[gActiveBank] = 0;
gUnknown_02024C5C[gActiveBank] = 0xFF;
- ewram[0x160E8 + gActiveBank * 2 + 0] = 0;
- ewram[0x160E8 + gActiveBank * 2 + 1] = 0;
- ewram[0x160AC + gActiveBank * 2 + 0] = 0;
- ewram[0x160AC + gActiveBank * 2 + 1] = 0;
- ewram[0x16100 + gActiveBank * 4 + 0] = 0;
- ewram[0x16100 + gActiveBank * 4 + 1] = 0;
- ewram[0x16100 + gActiveBank * 4 + 2] = 0;
- ewram[0x16100 + gActiveBank * 4 + 3] = 0;
+ ewram160E8arr2(0, gActiveBank) = 0;
+ ewram160E8arr2(1, gActiveBank) = 0;
+ ewram160ACarr2(0, gActiveBank) = 0;
+ ewram160ACarr2(1, gActiveBank) = 0;
+ ewram16100arr2(0, gActiveBank) = 0;
+ ewram16100arr2(1, gActiveBank) = 0;
+ ewram16100arr2(2, gActiveBank) = 0;
+ ewram16100arr2(3, gActiveBank) = 0;
- ptr2 = (u32 *)(ewram + 0x17100);
- ptr2[gActiveBank] = 0;
+ eFlashFireArr.arr[gActiveBank] = 0;
gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1;
gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2;
@@ -1873,18 +1817,13 @@ void sub_8011384(void)
if ((gBattleTypeFlags & BATTLE_TYPE_SAFARI)
&& GetBankSide(gActiveBank) == 0)
{
- ptr = (u8 *)&gBattleMons[gActiveBank];
- for (i = 0; i < (u32)0x58; i++)
- ptr[i] = 0;
+ MEMSET_ALT(&gBattleMons[gActiveBank], 0, 0x58, i, ptr);
}
else
{
u8 r0;
- ptr = (u8 *)&gBattleMons[gActiveBank];
- for (i = 0; i < (u32)0x58; i++)
- ptr[i] = gBattleBufferB[gActiveBank][4 + i];
-
+ MEMSET_ALT(&gBattleMons[gActiveBank], gBattleBufferB[gActiveBank][4 + i], 0x58, i, ptr);
gBattleMons[gActiveBank].type1 = gBaseStats[gBattleMons[gActiveBank].species].type1;
gBattleMons[gActiveBank].type2 = gBaseStats[gBattleMons[gActiveBank].species].type2;
gBattleMons[gActiveBank].ability = GetAbilityBySpecies(gBattleMons[gActiveBank].species, gBattleMons[gActiveBank].altAbility);
@@ -1943,11 +1882,7 @@ void bc_801333C(void)
if (gBattleExecBuffer == 0)
{
- struct
- {
- u16 hp;
- u32 status;
- } sp0[6];
+ struct HpAndStatus hpStatus[6];
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{
@@ -1956,17 +1891,17 @@ void bc_801333C(void)
if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == 0
|| GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
{
- sp0[i].hp = 0xFFFF;
- sp0[i].status = 0;
+ hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].status = 0;
}
else
{
- sp0[i].hp = GetMonData(&gEnemyParty[i], MON_DATA_HP);
- sp0[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS);
+ hpStatus[i].hp = GetMonData(&gEnemyParty[i], MON_DATA_HP);
+ hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS);
}
}
gActiveBank = GetBankByPlayerAI(1);
- Emitcmd48(0, (u8 *)sp0, 0x80);
+ EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank);
for (i = 0; i < 6; i++)
@@ -1974,17 +1909,17 @@ void bc_801333C(void)
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == 0
|| GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
{
- sp0[i].hp = 0xFFFF;
- sp0[i].status = 0;
+ hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].status = 0;
}
else
{
- sp0[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
- sp0[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
+ hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
+ hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
}
}
gActiveBank = GetBankByPlayerAI(0);
- Emitcmd48(0, (u8 *)sp0, 0x80);
+ EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank);
gBattleMainFunc = bc_battle_begin_message;
@@ -1999,13 +1934,13 @@ void bc_801333C(void)
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == 0
|| GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
{
- sp0[i].hp = 0xFFFF;
- sp0[i].status = 0;
+ hpStatus[i].hp = 0xFFFF;
+ hpStatus[i].status = 0;
}
else
{
- sp0[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
- sp0[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
+ hpStatus[i].hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
+ hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS);
}
}
@@ -2189,7 +2124,7 @@ void BattleBeginFirstTurn(void)
;
for (i = 0; i < 4; i++)
{
- ewram[0x16068 + i] = 6;
+ ewram16068arr(i) = 6;
gActionForBanks[i] = 0xFF;
gChosenMovesByBanks[i] = 0;
}
@@ -2281,7 +2216,7 @@ void BattleTurnPassed(void)
gChosenMovesByBanks[i] = 0;
}
for (i = 0; i < 4; i++)
- ewram[0x16068 + i] = 6;
+ ewram16068arr(i) = 6;
ewram160A6 = gAbsentBankFlags;
gBattleMainFunc = sub_8012324;
gRandomTurnNumber = Random();
@@ -2355,23 +2290,23 @@ void sub_8012258(u8 a)
u8 r1;
for (i = 0; i < 3; i++)
- gUnknown_02038470[i] = ewram[0x1606C + i + a * 3];
+ gUnknown_02038470[i] = ewram1606Carr(i, a);
r4 = pokemon_order_func(gBattlePartyID[a]);
- r1 = pokemon_order_func(ewram[0x16068 + a]);
+ r1 = pokemon_order_func(ewram16068arr(a));
sub_8094C98(r4, r1);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
for (i = 0; i < 3; i++)
{
- ewram[0x1606C + i + a * 3] = gUnknown_02038470[i];
- ewram[0x1606C + i + (a ^ 2) * 3] = gUnknown_02038470[i];
+ ewram1606Carr(i, a) = gUnknown_02038470[i];
+ ewram1606Carr(i, (a ^ 2)) = gUnknown_02038470[i];
}
}
else
{
for (i = 0; i < 3; i++)
{
- ewram[0x1606C + i + a * 3] = gUnknown_02038470[i];
+ ewram1606Carr(i, a) = gUnknown_02038470[i];
}
}
}
@@ -2390,7 +2325,7 @@ void sub_8012324(void)
switch (gBattleCommunication[gActiveBank])
{
case 0:
- ewram[0x016068 + gActiveBank] = 6;
+ ewram16068arr(gActiveBank) = 6;
if (!(gBattleTypeFlags & 0x40)
&& (r5 & 2)
&& !(ewram160A6 & gBitTable[GetBankByPlayerAI(r5 ^ 2)])
diff --git a/src/battle/battle_3.c b/src/battle/battle_3.c
index 346ca6d79..f37111af5 100644
--- a/src/battle/battle_3.c
+++ b/src/battle/battle_3.c
@@ -13,6 +13,7 @@
#include "battle_move_effects.h"
#include "string_util.h"
#include "flags.h"
+#include "ewram.h"
extern u8* gBattlescriptCurrInstr;
extern u8 gActiveBank;
@@ -198,8 +199,6 @@ extern u8 gUnknown_081D996F[]; //disobedient, uses a random move
extern u8 gUnknown_081D9989[]; //disobedient, went to sleep
extern u8 gUnknown_081D99A0[]; //disobedient, hits itself
-#define CHOICED_MOVE(bank)(((u16*)(&ewram[bank * 2 + 0x160e8])))
-
//array entries for battle communication
#define MOVE_EFFECT_BYTE 0x3
#define MULTISTRING_CHOOSER 0x5
@@ -722,12 +721,12 @@ u8 TurnBasedEffects(void)
gBattleMons[gActiveBank].status2 -= 0x2000;
if (gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) // damaged by wrap
{
- BATTLE_STRUCT->animArg1 = ewram[gActiveBank * 2 + 0x16004];
- BATTLE_STRUCT->animArg2 = ewram[gActiveBank * 2 + 0x16005];
+ BATTLE_STRUCT->animArg1 = ewram16004arr(0, gActiveBank);
+ BATTLE_STRUCT->animArg2 = ewram16004arr(1, gActiveBank);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = ewram[gActiveBank * 2 + 0x16004];
- gBattleTextBuff1[3] = ewram[gActiveBank * 2 + 0x16005];
+ gBattleTextBuff1[2] = ewram16004arr(0, gActiveBank);
+ gBattleTextBuff1[3] = ewram16004arr(1, gActiveBank);
gBattleTextBuff1[4] = EOS;
gBattlescriptCurrInstr = BattleScript_WrapTurnDmg;
gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16;
@@ -738,8 +737,8 @@ u8 TurnBasedEffects(void)
{
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = ewram[gActiveBank * 2 + 0x16004];
- gBattleTextBuff1[3] = ewram[gActiveBank * 2 + 0x16005];
+ gBattleTextBuff1[2] = ewram16004arr(0, gActiveBank);
+ gBattleTextBuff1[3] = ewram16004arr(1, gActiveBank);
gBattleTextBuff1[4] = EOS;
gBattlescriptCurrInstr = BattleScript_WrapEnds;
}
@@ -1378,7 +1377,7 @@ bool8 sub_8018018(u8 bank, u8 r1, u8 r2)
r2 = gBattlePartyID[r6];
for (i = 0; i < 6; i++)
{
- if (GetMonData(&party[i], MON_DATA_HP) && GetMonData(&party[i], MON_DATA_SPECIES2) && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG && i != r1 && i != r2 && i != ewram[r7 + 0x16068] && i != ewram[r6 + 0x16068])
+ if (GetMonData(&party[i], MON_DATA_HP) && GetMonData(&party[i], MON_DATA_SPECIES2) && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG && i != r1 && i != r2 && i != ewram16068arr(r7) && i != ewram16068arr(r6))
break;
}
return (i == 6);
@@ -1434,13 +1433,6 @@ u8 CastformDataTypeChange(u8 bank)
return formChange;
}
-struct Struct2017100
-{
- u32 arr[4];
-};
-
-#define ewram17100 (*(struct Struct2017100 *)(ewram + 0x17100))
-
u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
{
u8 effect = 0;
@@ -1726,14 +1718,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg)
case ABILITY_FLASH_FIRE:
if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS_FREEZE))
{
- if (!(ewram17100.arr[bank] & 1))
+ if (!(eFlashFireArr.arr[bank] & 1))
{
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
if (gProtectStructs[gBankAttacker].notFirstStrike)
gBattlescriptCurrInstr = BattleScript_FlashFireBoost;
else
gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss;
- ewram17100.arr[bank] |= 1;
+ eFlashFireArr.arr[bank] |= 1;
effect = 2;
}
else
@@ -3131,7 +3123,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target
targetBank = gBankAttacker;
break;
}
- ewram[gBankAttacker + 0x16010] = targetBank;
+ ewram16010arr(gBankAttacker) = targetBank;
return targetBank;
}
diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c
index a3b7ac41f..6f3be7804 100644
--- a/src/battle/battle_4.c
+++ b/src/battle/battle_4.c
@@ -19,6 +19,7 @@
#include "task.h"
#include "decompress.h"
#include "naming_screen.h"
+#include "ewram.h"
//extern needed variables
extern u8 gCritMultiplier;
@@ -220,18 +221,6 @@ extern u8 gUnknown_081D8C65[];
extern u8 gUnknown_081D9156[];
extern u8 gUnknown_081D9468[];
-
-//useful macros
-//read via orr
-#define BSScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24)
-#define BSScriptRead8(ptr) (((u8)((ptr)[0])))
-#define BSScriptReadPtr(ptr) ((void *)BSScriptRead32(ptr))
-
-//read via add
-#define BS2ScriptRead32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
-#define BS2ScriptRead16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
-#define BS2ScriptReadPtr(ptr) ((void *)BS2ScriptRead32(ptr))
-
#define TargetProtectAffected ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED))
//array entries for battle communication
@@ -271,14 +260,12 @@ extern u8 gUnknown_081D9468[];
#define sBYTE2_32(value)(( (u8) (((s32)(value) & (0x00FF0000)) >> 0x10)))
#define sBYTE3_32(value)(( (u8) (((s32)(value) & (0xFF000000)) >> 0x18)))
-#define USED_HELD_ITEM(bank)((((u16*)(&unk_2000000[bank * 2 + 0x160cc]))))
-
#define RecordAbilitySetField6(ability, fieldValue) \
(gLastUsedAbility = ability, gBattleCommunication[6] = fieldValue, RecordAbilityBattle(gBankTarget, ability))
#define TARGET_TURN_DAMAGED (((gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_physical.moveturnLostHP_special)))
-#define HP_ON_SWITCHOUT (((u16*)(0x020160bc)))
+#define HP_ON_SWITCHOUT (((u16*)(ewram_addr + 0x160BC)))
static void atk00_attackcanceler(void);
static void atk01_accuracycheck(void);
@@ -1119,7 +1106,7 @@ static void JumpIfMoveFailed(u8 adder, u16 move)
{
gMoveHitWith[gBankTarget] = 0;
gUnknown_02024C44[gBankTarget] = 0;
- to_store = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ to_store = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -1200,13 +1187,13 @@ static bool8 AccuracyCalcHelper(u16 move)
static void atk01_accuracycheck(void)
{
- u16 move = BS2ScriptRead16(gBattlescriptCurrInstr + 5);
+ u16 move = T2_READ_16(gBattlescriptCurrInstr + 5);
if (move == 0xFFFE || move == 0xFFFF)
{
if (gStatuses3[gBankTarget] & STATUS3_ALWAYS_HITS && move == 0xFFFF && gDisableStructs[gBankTarget].bankWithSureHit == gBankAttacker)
gBattlescriptCurrInstr += 7;
else if (gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER))
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else if (!JumpIfMoveAffectedByProtect(0))
gBattlescriptCurrInstr += 7;
}
@@ -1891,7 +1878,7 @@ static void atk0B_healthbarupdate(void)
if (gBattleMoveFlags & MOVESTATUS_NOEFFECT)
goto END;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
{
@@ -1930,7 +1917,7 @@ static void atk0C_datahpupdate(void)
if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE))
{
if (gDisableStructs[gActiveBank].substituteHP >= gBattleMoveDamage)
@@ -1975,7 +1962,7 @@ static void atk0C_datahpupdate(void)
else
{
gTakenDmg[gActiveBank] += gBattleMoveDamage;
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 0)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
gTakenDmgBanks[gActiveBank] = gBankAttacker;
else
gTakenDmgBanks[gActiveBank] = gBankTarget;
@@ -1999,7 +1986,7 @@ static void atk0C_datahpupdate(void)
{
gProtectStructs[gActiveBank].physicalDmg = gHP_dealt;
gSpecialStatuses[gActiveBank].moveturnLostHP_physical = gHP_dealt;
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 0)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
{
gProtectStructs[gActiveBank].physicalBank = gBankAttacker;
gSpecialStatuses[gActiveBank].moveturnPhysicalBank = gBankAttacker;
@@ -2014,7 +2001,7 @@ static void atk0C_datahpupdate(void)
{
gProtectStructs[gActiveBank].specialDmg = gHP_dealt;
gSpecialStatuses[gActiveBank].moveturnLostHP_special = gHP_dealt;
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 0)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
{
gProtectStructs[gActiveBank].specialBank = gBankAttacker;
gSpecialStatuses[gActiveBank].moveturnSpecialBank = gBankAttacker;
@@ -2033,7 +2020,7 @@ static void atk0C_datahpupdate(void)
}
else
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gSpecialStatuses[gActiveBank].moveturnLostHP == 0)
gSpecialStatuses[gActiveBank].moveturnLostHP = 0xFFFF;
}
@@ -2188,7 +2175,7 @@ static void atk10_printstring(void)
{
if (gBattleExecBuffer == 0)
{
- u16 var = BS2ScriptRead16(gBattlescriptCurrInstr + 1);
+ u16 var = T2_READ_16(gBattlescriptCurrInstr + 1);
PrepareStringBattle(var, gBankAttacker);
gBattlescriptCurrInstr += 3;
gBattleCommunication[MSG_DISPLAY] = 1;
@@ -2198,7 +2185,7 @@ static void atk10_printstring(void)
static void atk11_printstring_playeronly(void)
{
gActiveBank = gBankAttacker;
- EmitPrintStringPlayerOnly(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1));
+ EmitPrintStringPlayerOnly(0, T2_READ_16(gBattlescriptCurrInstr + 1));
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 3;
gBattleCommunication[MSG_DISPLAY] = 1;
@@ -2214,7 +2201,7 @@ static void atk12_waitmessage(void)
}
else
{
- u16 to_wait = BS2ScriptRead16(gBattlescriptCurrInstr + 1);
+ u16 to_wait = T2_READ_16(gBattlescriptCurrInstr + 1);
if (++gPauseCounterBattle >= to_wait)
{
gPauseCounterBattle = 0;
@@ -2229,7 +2216,7 @@ static void atk13_printfromtable(void)
{
if (gBattleExecBuffer == 0)
{
- u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u16 *ptr = (u16 *)T1_READ_PTR(gBattlescriptCurrInstr + 1);
ptr += gBattleCommunication[MULTISTRING_CHOOSER];
PrepareStringBattle(*(u16*)ptr, gBankAttacker);
gBattlescriptCurrInstr += 5;
@@ -2241,7 +2228,7 @@ static void atk14_printfromtable_playeronly(void)
{
if (gBattleExecBuffer == 0)
{
- u16 *ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u16 *ptr = (u16 *)T1_READ_PTR(gBattlescriptCurrInstr + 1); // FIXME
ptr += gBattleCommunication[MULTISTRING_CHOOSER];
gActiveBank = gBankAttacker;
EmitPrintStringPlayerOnly(0, *(u16*)ptr);
@@ -2652,7 +2639,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
{gBattlescriptCurrInstr++; return;}
gLastUsedItem = gBattleMons[gBankTarget].item;
- unk_2000000[gBankAttacker * 2 + 0x160cc] = gLastUsedItem;
+ USED_HELD_ITEM(bank) = gLastUsedItem;
gBattleMons[gBankTarget].item = 0;
gActiveBank = gBankAttacker;
@@ -2666,8 +2653,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_ItemSteal;
- ewram[gBankTarget * 2 + 0x160e8] = 0;
- //STORE_CHOICEMOVE(gBankTarget, 0);
+ CHOICED_MOVE(gBankTarget) = 0;
}
break;
case 32: //escape prevention
@@ -2742,8 +2728,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
b_movescr_stack_push(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr = BattleScript_KnockedOff;
- ewram[gEffectBank * 2 + 0x160e8] = 0;
- //STORE_CHOICEMOVE(gEffectBank, 0);
+ CHOICED_MOVE(gEffectBank) = 0;
}
break;
case 59: //overheat
@@ -2788,21 +2773,21 @@ void SetMoveEffect(bool8 primary, u8 certainArg)
ands r0, r3\n\
strb r0, [r7, 0x3]\n\
movs r6, 0x40\n\
- ldr r0, _0801E43C @ =0x02000000\n\
+ ldr r0, _0801E43C @ =gSharedMem\n\
ldr r1, _0801E440 @ =gBankTarget\n\
b _0801E450\n\
.align 2, 0\n\
_0801E430: .4byte gBattleCommunication\n\
_0801E434: .4byte gEffectBank\n\
_0801E438: .4byte gBankAttacker\n\
-_0801E43C: .4byte 0x02000000\n\
+_0801E43C: .4byte gSharedMem\n\
_0801E440: .4byte gBankTarget\n\
_0801E444:\n\
ldr r2, _0801E538 @ =gEffectBank\n\
ldr r0, _0801E53C @ =gBankTarget\n\
ldrb r0, [r0]\n\
strb r0, [r2]\n\
- ldr r0, _0801E540 @ =0x02000000\n\
+ ldr r0, _0801E540 @ =gSharedMem\n\
ldr r1, _0801E544 @ =gBankAttacker\n\
_0801E450:\n\
ldrb r1, [r1]\n\
@@ -2926,7 +2911,7 @@ _0801E536:\n\
.align 2, 0\n\
_0801E538: .4byte gEffectBank\n\
_0801E53C: .4byte gBankTarget\n\
-_0801E540: .4byte 0x02000000\n\
+_0801E540: .4byte gSharedMem\n\
_0801E544: .4byte gBankAttacker\n\
_0801E548: .4byte 0x00016003\n\
_0801E54C: .4byte gBattleMons\n\
@@ -3669,7 +3654,7 @@ _0801EAFA:\n\
beq _0801EB14\n\
bl _0801F5FA\n\
_0801EB14:\n\
- ldr r0, _0801EB30 @ =0x02000000\n\
+ ldr r0, _0801EB30 @ =gSharedMem\n\
ldrb r1, [r7, 0x3]\n\
ldr r2, _0801EB34 @ =0x000160ca\n\
adds r0, r2\n\
@@ -3681,7 +3666,7 @@ _0801EB14:\n\
bl _0801F4F2\n\
.align 2, 0\n\
_0801EB2C: .4byte gBattleCommunication\n\
-_0801EB30: .4byte 0x02000000\n\
+_0801EB30: .4byte gSharedMem\n\
_0801EB34: .4byte 0x000160ca\n\
_0801EB38: .4byte gHitMarker\n\
_0801EB3C:\n\
@@ -4090,7 +4075,7 @@ _0801EEE8:\n\
ldr r0, [r2]\n\
orrs r0, r1\n\
str r0, [r2]\n\
- ldr r2, _0801EF80 @ =0x02000000\n\
+ ldr r2, _0801EF80 @ =gSharedMem\n\
mov r3, r8\n\
ldrb r0, [r3]\n\
lsls r0, 1\n\
@@ -4155,7 +4140,7 @@ _0801EF70:\n\
bne _0801EF60\n\
b _0801F5FA\n\
.align 2, 0\n\
-_0801EF80: .4byte 0x02000000\n\
+_0801EF80: .4byte gSharedMem\n\
_0801EF84: .4byte 0x00016004\n\
_0801EF88: .4byte gCurrentMove\n\
_0801EF8C: .4byte 0x00016005\n\
@@ -4212,7 +4197,7 @@ _0801EFEC:\n\
beq _0801F008\n\
b _0801F5DC\n\
_0801F008:\n\
- ldr r2, _0801F02C @ =0x02000000\n\
+ ldr r2, _0801F02C @ =gSharedMem\n\
ldrb r1, [r7, 0x3]\n\
movs r0, 0x3F\n\
ands r0, r1\n\
@@ -4229,7 +4214,7 @@ _0801F008:\n\
ldr r0, _0801F03C @ =BattleScript_StatUp\n\
b _0801F5F8\n\
.align 2, 0\n\
-_0801F02C: .4byte 0x02000000\n\
+_0801F02C: .4byte gSharedMem\n\
_0801F030: .4byte 0x000160a4\n\
_0801F034: .4byte 0x000160a5\n\
_0801F038: .4byte gBattlescriptCurrInstr\n\
@@ -4250,7 +4235,7 @@ _0801F040:\n\
beq _0801F05E\n\
b _0801F5DC\n\
_0801F05E:\n\
- ldr r2, _0801F080 @ =0x02000000\n\
+ ldr r2, _0801F080 @ =gSharedMem\n\
ldrb r1, [r7, 0x3]\n\
movs r0, 0x3F\n\
ands r0, r1\n\
@@ -4267,7 +4252,7 @@ _0801F05E:\n\
ldr r0, _0801F090 @ =BattleScript_StatDown\n\
b _0801F5F8\n\
.align 2, 0\n\
-_0801F080: .4byte 0x02000000\n\
+_0801F080: .4byte gSharedMem\n\
_0801F084: .4byte 0x000160a4\n\
_0801F088: .4byte 0x000160a5\n\
_0801F08C: .4byte gBattlescriptCurrInstr\n\
@@ -4287,7 +4272,7 @@ _0801F094:\n\
beq _0801F0B0\n\
b _0801F5DC\n\
_0801F0B0:\n\
- ldr r2, _0801F0D4 @ =0x02000000\n\
+ ldr r2, _0801F0D4 @ =gSharedMem\n\
ldrb r1, [r7, 0x3]\n\
movs r0, 0x3F\n\
ands r0, r1\n\
@@ -4304,7 +4289,7 @@ _0801F0B0:\n\
ldr r0, _0801F0E4 @ =BattleScript_StatUp\n\
b _0801F5F8\n\
.align 2, 0\n\
-_0801F0D4: .4byte 0x02000000\n\
+_0801F0D4: .4byte gSharedMem\n\
_0801F0D8: .4byte 0x000160a4\n\
_0801F0DC: .4byte 0x000160a5\n\
_0801F0E0: .4byte gBattlescriptCurrInstr\n\
@@ -4325,7 +4310,7 @@ _0801F0E8:\n\
beq _0801F106\n\
b _0801F5DC\n\
_0801F106:\n\
- ldr r2, _0801F128 @ =0x02000000\n\
+ ldr r2, _0801F128 @ =gSharedMem\n\
ldrb r1, [r7, 0x3]\n\
movs r0, 0x3F\n\
ands r0, r1\n\
@@ -4342,7 +4327,7 @@ _0801F106:\n\
ldr r0, _0801F138 @ =BattleScript_StatDown\n\
b _0801F5F8\n\
.align 2, 0\n\
-_0801F128: .4byte 0x02000000\n\
+_0801F128: .4byte gSharedMem\n\
_0801F12C: .4byte 0x000160a4\n\
_0801F130: .4byte 0x000160a5\n\
_0801F134: .4byte gBattlescriptCurrInstr\n\
@@ -4530,7 +4515,7 @@ _0801F2B0:\n\
b _0801F5DC\n\
_0801F2B6:\n\
lsls r0, r1, 1\n\
- ldr r5, _0801F344 @ =0x020160f0\n\
+ ldr r5, _0801F344 @ =gSharedMem + 0x160F0\n\
adds r0, r5\n\
ldr r1, _0801F348 @ =gLastUsedItem\n\
strh r2, [r0]\n\
@@ -4595,7 +4580,7 @@ _0801F2B6:\n\
b _0801F5FA\n\
.align 2, 0\n\
_0801F340: .4byte gBankAttacker\n\
-_0801F344: .4byte 0x020160f0\n\
+_0801F344: .4byte gSharedMem + 0x160F0\n\
_0801F348: .4byte gLastUsedItem\n\
_0801F34C: .4byte gActiveBank\n\
_0801F350: .4byte gBattlescriptCurrInstr\n\
@@ -4866,7 +4851,7 @@ _0801F540:\n\
bl b_movescr_stack_push\n\
ldr r0, _0801F5CC @ =BattleScript_KnockedOff\n\
str r0, [r4]\n\
- ldr r1, _0801F5D0 @ =0x02000000\n\
+ ldr r1, _0801F5D0 @ =gSharedMem\n\
mov r2, r8\n\
ldrb r0, [r2]\n\
lsls r0, 1\n\
@@ -4888,7 +4873,7 @@ _0801F5C0: .4byte gBitTable\n\
_0801F5C4: .4byte gBattlePartyID\n\
_0801F5C8: .4byte gBattlescriptCurrInstr\n\
_0801F5CC: .4byte BattleScript_KnockedOff\n\
-_0801F5D0: .4byte 0x02000000\n\
+_0801F5D0: .4byte gSharedMem\n\
_0801F5D4: .4byte 0x000160e8\n\
_0801F5D8: .4byte 0x000160e9\n\
_0801F5DC:\n\
@@ -4961,7 +4946,7 @@ static void atk17_seteffectsecondary(void)
static void atk18_status_effect_clear(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleCommunication[MOVE_EFFECT_BYTE] <= 6)
gBattleMons[gActiveBank].status1 &= (~gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]);
else
@@ -4981,7 +4966,7 @@ static void atk19_faint_pokemon(void)
gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]);
if (gHitMarker & HITMARKER_FAINTED(gActiveBank))
{
- r4 = BSScriptReadPtr(gBattlescriptCurrInstr + 3);
+ r4 = T1_READ_PTR(gBattlescriptCurrInstr + 3);
b_movescr_stack_pop_cursor();
gBattlescriptCurrInstr = r4;
@@ -5011,12 +4996,12 @@ static void atk19_faint_pokemon(void)
if (!(gAbsentBankFlags & gBitTable[gActiveBank])
&& gBattleMons[gActiveBank].hp == 0)
{
- ewram[0x160AC + bank * 2 + 0] = 0;
- ewram[0x160AC + bank * 2 + 1] = 0;
- ewram[0x16100 + bank * 4 + 0] = 0;
- ewram[0x16100 + bank * 4 + 1] = 0;
- ewram[0x16100 + bank * 4 + 2] = 0;
- ewram[0x16100 + bank * 4 + 3] = 0;
+ ewram160ACarr2(0, bank) = 0;
+ ewram160ACarr2(1, bank) = 0;
+ ewram16100arr2(0, bank) = 0;
+ ewram16100arr2(1, bank) = 0;
+ ewram16100arr2(2, bank) = 0;
+ ewram16100arr2(3, bank) = 0;
gHitMarker |= HITMARKER_FAINTED(gActiveBank);
b_movescr_stack_push(gBattlescriptCurrInstr + 7);
@@ -5052,7 +5037,7 @@ static void atk19_faint_pokemon(void)
&& gBattleMons[gBankAttacker].hp != 0
&& gCurrentMove != MOVE_STRUGGLE)
{
- u8 moveIndex = ewram[0x1608C + gBankAttacker];
+ u8 moveIndex = ewram1608Carr(gBankAttacker);
gBattleMons[gBankAttacker].pp[moveIndex] = 0;
b_movescr_stack_push(gBattlescriptCurrInstr);
@@ -5079,7 +5064,7 @@ static void atk1A_faint_animation(void)
{
if (gBattleExecBuffer == 0)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
Emitcmd10(0);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -5091,7 +5076,7 @@ static void atk1B_faint_effects_clear(void)
//Clears things like attraction or trapping to other banks
if (gBattleExecBuffer == 0)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
gBattleMons[gActiveBank].status1 = 0;
EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
@@ -5102,9 +5087,9 @@ static void atk1B_faint_effects_clear(void)
static void atk1C_jumpifstatus(void)
{
- u8 bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- u32 flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2);
- void* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
+ u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u32 flags = T2_READ_32(gBattlescriptCurrInstr + 2);
+ void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 6);
if (gBattleMons[bank].status1 & flags && gBattleMons[bank].hp)
gBattlescriptCurrInstr = jump_loc;
else
@@ -5113,9 +5098,9 @@ static void atk1C_jumpifstatus(void)
static void atk1D_jumpifstatus2(void)
{
- u8 bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- u32 flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2);
- void* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
+ u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u32 flags = T2_READ_32(gBattlescriptCurrInstr + 2);
+ void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 6);
if (gBattleMons[bank].status2 & flags && gBattleMons[bank].hp)
gBattlescriptCurrInstr = jump_loc;
else
@@ -5125,9 +5110,9 @@ static void atk1D_jumpifstatus2(void)
static void atk1E_jumpifability(void)
{
u8 bank;
- u8 ability = BSScriptRead8(gBattlescriptCurrInstr + 2);
- void* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3);
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 8)
+ u8 ability = T2_READ_8(gBattlescriptCurrInstr + 2);
+ void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 3);
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 8)
{
bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBankAttacker, ability, 0, 0);
if (bank)
@@ -5135,12 +5120,12 @@ static void atk1E_jumpifability(void)
gLastUsedAbility = ability;
gBattlescriptCurrInstr = jump_loc;
RecordAbilityBattle(bank -1, gLastUsedAbility);
- unk_2000000[0x160f8] = bank - 1;
+ ewram160F8 = bank - 1;
}
else
gBattlescriptCurrInstr += 7;
}
- else if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 9)
+ else if (T2_READ_8(gBattlescriptCurrInstr + 1) == 9)
{
bank = AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gBankAttacker, ability, 0, 0);
if (bank)
@@ -5148,20 +5133,20 @@ static void atk1E_jumpifability(void)
gLastUsedAbility = ability;
gBattlescriptCurrInstr = jump_loc;
RecordAbilityBattle(bank - 1, gLastUsedAbility);
- unk_2000000[0x160f8] = bank - 1;
+ ewram160F8 = bank - 1;
}
else
gBattlescriptCurrInstr += 7;
}
else
{
- bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMons[bank].ability == ability)
{
gLastUsedAbility = ability;
gBattlescriptCurrInstr = jump_loc;
RecordAbilityBattle(bank, gLastUsedAbility);
- unk_2000000[0x160f8] = bank;
+ ewram160F8 = bank;
}
else
gBattlescriptCurrInstr += 7;
@@ -5173,13 +5158,13 @@ static void atk1F_jumpifsideaffecting(void)
u8 side;
u16 flags;
void* jump_loc;
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 1)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 1)
side = GetBankIdentity(gBankAttacker) & 1;
else
side = GetBankIdentity(gBankTarget) & 1;
- flags = BS2ScriptRead16(gBattlescriptCurrInstr + 2);
- jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 4);
+ flags = T2_READ_16(gBattlescriptCurrInstr + 2);
+ jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 4);
if (gSideAffecting[side] & flags)
gBattlescriptCurrInstr = jump_loc;
@@ -5190,37 +5175,37 @@ static void atk1F_jumpifsideaffecting(void)
static void atk20_jumpifstat(void)
{
u8 ret = 0;
- u8 bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- u8 value = gBattleMons[bank].statStages[BSScriptRead8(gBattlescriptCurrInstr + 3)];
- switch (BSScriptRead8(gBattlescriptCurrInstr + 2))
+ u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 value = gBattleMons[bank].statStages[T2_READ_8(gBattlescriptCurrInstr + 3)];
+ switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case CMP_EQUAL:
- if (value == BSScriptRead8(gBattlescriptCurrInstr + 4))
+ if (value == T2_READ_8(gBattlescriptCurrInstr + 4))
ret++;
break;
case CMP_NOT_EQUAL:
- if (value != BSScriptRead8(gBattlescriptCurrInstr + 4))
+ if (value != T2_READ_8(gBattlescriptCurrInstr + 4))
ret++;
break;
case CMP_GREATER_THAN:
- if (value > BSScriptRead8(gBattlescriptCurrInstr + 4))
+ if (value > T2_READ_8(gBattlescriptCurrInstr + 4))
ret++;
break;
case CMP_LESS_THAN:
- if (value < BSScriptRead8(gBattlescriptCurrInstr + 4))
+ if (value < T2_READ_8(gBattlescriptCurrInstr + 4))
ret++;
break;
case CMP_COMMON_BITS:
- if (value & BSScriptRead8(gBattlescriptCurrInstr + 4))
+ if (value & T2_READ_8(gBattlescriptCurrInstr + 4))
ret++;
break;
case CMP_NO_COMMON_BITS:
- if (!(value & BSScriptRead8(gBattlescriptCurrInstr + 4)))
+ if (!(value & T2_READ_8(gBattlescriptCurrInstr + 4)))
ret++;
break;
}
if (ret)
- gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 5);
else
gBattlescriptCurrInstr += 9;
}
@@ -5230,10 +5215,10 @@ static void atk21_jumpifstatus3(void)
u32 flags;
void* jump_loc;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2);
- jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 7);
- if (BSScriptRead8(gBattlescriptCurrInstr + 6))
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ flags = T2_READ_32(gBattlescriptCurrInstr + 2);
+ jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 7);
+ if (T2_READ_8(gBattlescriptCurrInstr + 6))
{
if ((gStatuses3[gActiveBank] & flags) != 0)
gBattlescriptCurrInstr += 11;
@@ -5251,9 +5236,9 @@ static void atk21_jumpifstatus3(void)
static void atk22_jumpiftype(void) //u8 bank, u8 type, *ptr
{
- u8 bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- u8 type = BSScriptRead8(gBattlescriptCurrInstr + 2);
- void* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 3);
+ u8 bank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ u8 type = T2_READ_8(gBattlescriptCurrInstr + 2);
+ void* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 3);
if (gBattleMons[bank].type1 == type || gBattleMons[bank].type2 == type)
gBattlescriptCurrInstr = jump_loc;
@@ -5268,7 +5253,7 @@ static void atk23_getexp(void)
u8 hold_effect;
int via_expshare = 0, sent_in;
u16* exp = &BATTLE_STRUCT->exp;
- gBank1 = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gBank1 = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
sent_in = gSentPokesToOpponent[(gBank1 & 2) >> 1];
switch (BATTLE_STRUCT->atk23StateTracker)
{
@@ -5555,7 +5540,7 @@ static void atk23_getexp(void)
mov r5, r8\n\
push {r5-r7}\n\
movs r6, 0\n\
- ldr r0, _0802004C @ =0x0201605c\n\
+ ldr r0, _0802004C @ =gSharedMem + 0x1605C\n\
mov r10, r0\n\
ldr r0, _08020050 @ =gBattlescriptCurrInstr\n\
ldr r0, [r0]\n\
@@ -5584,7 +5569,7 @@ _08020040:\n\
ldr r0, [r0]\n\
mov pc, r0\n\
.align 2, 0\n\
-_0802004C: .4byte 0x0201605c\n\
+_0802004C: .4byte gSharedMem + 0x1605C\n\
_08020050: .4byte gBattlescriptCurrInstr\n\
_08020054: .4byte gBank1\n\
_08020058: .4byte gSentPokesToOpponent\n\
@@ -5613,7 +5598,7 @@ _0802007C:\n\
cmp r0, 0\n\
beq _080200BC\n\
_08020098:\n\
- ldr r0, _080200B4 @ =0x02000000\n\
+ ldr r0, _080200B4 @ =gSharedMem\n\
ldr r1, _080200B8 @ =0x0001600f\n\
adds r0, r1\n\
movs r1, 0x6\n\
@@ -5623,10 +5608,10 @@ _08020098:\n\
_080200A8: .4byte gBank1\n\
_080200AC: .4byte gBattleTypeFlags\n\
_080200B0: .4byte 0x00000982\n\
-_080200B4: .4byte 0x02000000\n\
+_080200B4: .4byte gSharedMem\n\
_080200B8: .4byte 0x0001600f\n\
_080200BC:\n\
- ldr r2, _080200E8 @ =0x02000000\n\
+ ldr r2, _080200E8 @ =gSharedMem\n\
ldr r3, _080200EC @ =0x0001600f\n\
adds r1, r2, r3\n\
ldrb r0, [r1]\n\
@@ -5648,7 +5633,7 @@ _080200BC:\n\
strb r0, [r2]\n\
bl _08020996\n\
.align 2, 0\n\
-_080200E8: .4byte 0x02000000\n\
+_080200E8: .4byte gSharedMem\n\
_080200EC: .4byte 0x0001600f\n\
_080200F0: .4byte 0x00016113\n\
_080200F4: .4byte gBitTable\n\
@@ -5775,7 +5760,7 @@ _080201F6:\n\
ldr r0, _08020248 @ =gExpShareExp\n\
strh r6, [r0]\n\
_080201FA:\n\
- ldr r1, _0802024C @ =0x02000000\n\
+ ldr r1, _0802024C @ =gSharedMem\n\
ldr r3, _08020250 @ =0x0001600f\n\
adds r2, r1, r3\n\
ldrb r0, [r2]\n\
@@ -5796,7 +5781,7 @@ _08020216:\n\
beq _08020220\n\
b _08020996\n\
_08020220:\n\
- ldr r0, _0802024C @ =0x02000000\n\
+ ldr r0, _0802024C @ =gSharedMem\n\
ldr r1, _08020254 @ =0x00016018\n\
adds r0, r1\n\
ldrb r1, [r0]\n\
@@ -5817,7 +5802,7 @@ _08020220:\n\
b _08020274\n\
.align 2, 0\n\
_08020248: .4byte gExpShareExp\n\
-_0802024C: .4byte 0x02000000\n\
+_0802024C: .4byte gSharedMem\n\
_08020250: .4byte 0x0001600f\n\
_08020254: .4byte 0x00016018\n\
_08020258: .4byte 0x0001605f\n\
@@ -5830,7 +5815,7 @@ _0802026C:\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
_08020274:\n\
- ldr r5, _08020294 @ =0x02000000\n\
+ ldr r5, _08020294 @ =gSharedMem\n\
cmp r4, 0x19\n\
beq _080202A0\n\
ldr r3, _08020298 @ =0x0001605f\n\
@@ -5846,7 +5831,7 @@ _08020274:\n\
adds r1, r5, r0\n\
b _080202C8\n\
.align 2, 0\n\
-_08020294: .4byte 0x02000000\n\
+_08020294: .4byte gSharedMem\n\
_08020298: .4byte 0x0001605f\n\
_0802029C: .4byte 0x0001600f\n\
_080202A0:\n\
@@ -5904,7 +5889,7 @@ _080202E8:\n\
adds r0, 0x1\n\
strb r0, [r5]\n\
_08020316:\n\
- ldr r5, _0802035C @ =0x02000000\n\
+ ldr r5, _0802035C @ =gSharedMem\n\
ldr r1, _08020360 @ =0x00016018\n\
adds r0, r5, r1\n\
ldrb r1, [r0]\n\
@@ -5936,7 +5921,7 @@ _0802034C: .4byte gBattleTypeFlags\n\
_08020350: .4byte gBattleMons\n\
_08020354: .4byte 0x0001601b\n\
_08020358: .4byte 0x00000161\n\
-_0802035C: .4byte 0x02000000\n\
+_0802035C: .4byte gSharedMem\n\
_08020360: .4byte 0x00016018\n\
_08020364: .4byte gPlayerParty\n\
_08020368: .4byte 0x0001605f\n\
@@ -5980,7 +5965,7 @@ _0802039C:\n\
bl __divsi3\n\
str r0, [r4]\n\
_080203B8:\n\
- ldr r0, _080203F8 @ =0x02000000\n\
+ ldr r0, _080203F8 @ =gSharedMem\n\
ldr r2, _080203FC @ =0x00016018\n\
adds r0, r2\n\
ldrb r1, [r0]\n\
@@ -6007,7 +5992,7 @@ _080203B8:\n\
_080203EC: .4byte gBattleMoveDamage\n\
_080203F0: .4byte gExpShareExp\n\
_080203F4: .4byte gBattleTypeFlags\n\
-_080203F8: .4byte 0x02000000\n\
+_080203F8: .4byte gSharedMem\n\
_080203FC: .4byte 0x00016018\n\
_08020400: .4byte gPlayerParty\n\
_08020404:\n\
@@ -6022,7 +6007,7 @@ _0802040A:\n\
cmp r1, 0\n\
beq _08020488\n\
ldr r1, _08020448 @ =gBattlePartyID\n\
- ldr r0, _0802044C @ =0x02000000\n\
+ ldr r0, _0802044C @ =gSharedMem\n\
ldr r3, _08020450 @ =0x00016018\n\
adds r2, r0, r3\n\
ldrh r1, [r1, 0x4]\n\
@@ -6045,7 +6030,7 @@ _0802043C: .4byte 0x00000149\n\
_08020440: .4byte gBattleMoveDamage\n\
_08020444: .4byte gBattleTypeFlags\n\
_08020448: .4byte gBattlePartyID\n\
-_0802044C: .4byte 0x02000000\n\
+_0802044C: .4byte gSharedMem\n\
_08020450: .4byte 0x00016018\n\
_08020454: .4byte gBitTable\n\
_08020458: .4byte gAbsentBankFlags\n\
@@ -6072,7 +6057,7 @@ _0802047C:\n\
.align 2, 0\n\
_08020484: .4byte 0x000160a2\n\
_08020488:\n\
- ldr r0, _08020530 @ =0x02000000\n\
+ ldr r0, _08020530 @ =gSharedMem\n\
ldr r3, _08020534 @ =0x000160a2\n\
adds r0, r3\n\
strb r1, [r0]\n\
@@ -6083,7 +6068,7 @@ _08020490:\n\
strb r2, [r1]\n\
movs r5, 0x4\n\
strb r5, [r1, 0x1]\n\
- ldr r4, _08020530 @ =0x02000000\n\
+ ldr r4, _08020530 @ =gSharedMem\n\
ldr r0, _08020534 @ =0x000160a2\n\
adds r6, r4, r0\n\
ldrb r0, [r6]\n\
@@ -6147,7 +6132,7 @@ _08020490:\n\
ldrh r1, [r1]\n\
bl MonGainEVs\n\
_0802051E:\n\
- ldr r1, _08020530 @ =0x02000000\n\
+ ldr r1, _08020530 @ =gSharedMem\n\
ldr r3, _08020554 @ =0x0001605f\n\
adds r2, r1, r3\n\
ldrb r0, [r2]\n\
@@ -6157,7 +6142,7 @@ _0802051E:\n\
adds r1, r0\n\
b _08020618\n\
.align 2, 0\n\
-_08020530: .4byte 0x02000000\n\
+_08020530: .4byte gSharedMem\n\
_08020534: .4byte 0x000160a2\n\
_08020538: .4byte gBattleTextBuff1\n\
_0802053C: .4byte 0x00016018\n\
@@ -6176,7 +6161,7 @@ _0802055C:\n\
b _08020996\n\
_08020566:\n\
ldr r1, _08020624 @ =gBattleBufferB\n\
- ldr r4, _08020628 @ =0x02000000\n\
+ ldr r4, _08020628 @ =gSharedMem\n\
ldr r3, _0802062C @ =0x000160a2\n\
adds r3, r4\n\
mov r8, r3\n\
@@ -6252,7 +6237,7 @@ _08020566:\n\
ldrb r0, [r4]\n\
bl MarkBufferBankForExecution\n\
_08020612:\n\
- ldr r1, _08020628 @ =0x02000000\n\
+ ldr r1, _08020628 @ =gSharedMem\n\
ldr r3, _08020644 @ =0x0001600f\n\
adds r1, r3\n\
_08020618:\n\
@@ -6263,7 +6248,7 @@ _08020618:\n\
.align 2, 0\n\
_08020620: .4byte gBattleExecBuffer\n\
_08020624: .4byte gBattleBufferB\n\
-_08020628: .4byte 0x02000000\n\
+_08020628: .4byte gSharedMem\n\
_0802062C: .4byte 0x000160a2\n\
_08020630: .4byte 0x00016018\n\
_08020634: .4byte gPlayerParty\n\
@@ -6279,7 +6264,7 @@ _08020648:\n\
b _08020996\n\
_08020652:\n\
ldr r1, _080208B0 @ =gActiveBank\n\
- ldr r4, _080208B4 @ =0x02000000\n\
+ ldr r4, _080208B4 @ =gSharedMem\n\
ldr r2, _080208B8 @ =0x000160a2\n\
adds r0, r4, r2\n\
ldrb r0, [r0]\n\
@@ -6331,7 +6316,7 @@ _080206A8:\n\
ldr r5, _080208B0 @ =gActiveBank\n\
ldrb r0, [r5]\n\
strb r0, [r1, 0x2]\n\
- ldr r0, _080208B4 @ =0x02000000\n\
+ ldr r0, _080208B4 @ =gSharedMem\n\
ldr r3, _080208C8 @ =0x00016018\n\
adds r6, r0, r3\n\
ldrb r0, [r6]\n\
@@ -6475,7 +6460,7 @@ _080206A8:\n\
strh r0, [r4, 0xA]\n\
_080207EC:\n\
ldr r0, _080208C4 @ =gBattlePartyID\n\
- ldr r1, _080208B4 @ =0x02000000\n\
+ ldr r1, _080208B4 @ =gSharedMem\n\
ldr r3, _080208C8 @ =0x00016018\n\
adds r7, r1, r3\n\
ldrb r2, [r7]\n\
@@ -6564,7 +6549,7 @@ _080207EC:\n\
.align 2, 0\n\
_080208AC: .4byte gBattleExecBuffer\n\
_080208B0: .4byte gActiveBank\n\
-_080208B4: .4byte 0x02000000\n\
+_080208B4: .4byte gSharedMem\n\
_080208B8: .4byte 0x000160a2\n\
_080208BC: .4byte gBattleBufferB\n\
_080208C0: .4byte gBattleTypeFlags\n\
@@ -6584,7 +6569,7 @@ _080208F0:\n\
movs r0, 0\n\
str r0, [r1]\n\
_080208F6:\n\
- ldr r0, _08020908 @ =0x02000000\n\
+ ldr r0, _08020908 @ =gSharedMem\n\
ldr r1, _0802090C @ =0x0001600f\n\
adds r0, r1\n\
movs r1, 0x5\n\
@@ -6592,14 +6577,14 @@ _080208F6:\n\
b _08020996\n\
.align 2, 0\n\
_08020904: .4byte gBattleMoveDamage\n\
-_08020908: .4byte 0x02000000\n\
+_08020908: .4byte gSharedMem\n\
_0802090C: .4byte 0x0001600f\n\
_08020910:\n\
ldr r0, _08020924 @ =gBattleMoveDamage\n\
ldr r0, [r0]\n\
cmp r0, 0\n\
beq _08020930\n\
- ldr r0, _08020928 @ =0x02000000\n\
+ ldr r0, _08020928 @ =gSharedMem\n\
ldr r2, _0802092C @ =0x0001600f\n\
adds r0, r2\n\
movs r1, 0x3\n\
@@ -6607,10 +6592,10 @@ _08020910:\n\
b _08020996\n\
.align 2, 0\n\
_08020924: .4byte gBattleMoveDamage\n\
-_08020928: .4byte 0x02000000\n\
+_08020928: .4byte gSharedMem\n\
_0802092C: .4byte 0x0001600f\n\
_08020930:\n\
- ldr r2, _08020950 @ =0x02000000\n\
+ ldr r2, _08020950 @ =gSharedMem\n\
ldr r3, _08020954 @ =0x00016018\n\
adds r1, r2, r3\n\
ldrb r0, [r1]\n\
@@ -6626,7 +6611,7 @@ _08020930:\n\
strb r0, [r1]\n\
b _08020996\n\
.align 2, 0\n\
-_08020950: .4byte 0x02000000\n\
+_08020950: .4byte gSharedMem\n\
_08020954: .4byte 0x00016018\n\
_08020958: .4byte 0x0001600f\n\
_0802095C:\n\
@@ -6724,14 +6709,14 @@ static void atk24(void)
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
if (found2 + found1 > 1)
- gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
else
{
if (found2 != 0 && found1 != 0)
- gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
@@ -6979,7 +6964,7 @@ static void atk25_move_values_cleanup(void)
static void atk26_set_multihit(void)
{
- gMultiHitCounter = BSScriptRead8(gBattlescriptCurrInstr + 1);
+ gMultiHitCounter = T2_READ_8(gBattlescriptCurrInstr + 1);
gBattlescriptCurrInstr += 2;
}
@@ -6988,20 +6973,20 @@ static void atk27_decrement_multihit(void)
if (--gMultiHitCounter == 0)
gBattlescriptCurrInstr += 5;
else
- gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atk28_goto(void)
{
- gBattlescriptCurrInstr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T2_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atk29_jumpifbyte(void)
{
- u8 caseID = BSScriptRead8(gBattlescriptCurrInstr + 1);
- u8* ptr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
- u8 value = BSScriptRead8(gBattlescriptCurrInstr + 6);
- u8* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 7);
+ u8 caseID = T2_READ_8(gBattlescriptCurrInstr + 1);
+ u8* ptr = T2_READ_PTR(gBattlescriptCurrInstr + 2);
+ u8 value = T2_READ_8(gBattlescriptCurrInstr + 6);
+ u8* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 7);
gBattlescriptCurrInstr += 11;
switch (caseID)
{
@@ -7034,10 +7019,10 @@ static void atk29_jumpifbyte(void)
static void atk2A_jumpifhalfword(void)
{
- u8 caseID = BSScriptRead8(gBattlescriptCurrInstr + 1);
- u16* ptr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
- u16 value = BS2ScriptRead16(gBattlescriptCurrInstr + 6);
- u8* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 8);
+ u8 caseID = T2_READ_8(gBattlescriptCurrInstr + 1);
+ u16* ptr = T2_READ_PTR(gBattlescriptCurrInstr + 2);
+ u16 value = T2_READ_16(gBattlescriptCurrInstr + 6);
+ u8* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 8);
gBattlescriptCurrInstr += 12;
switch (caseID)
{
@@ -7068,12 +7053,13 @@ static void atk2A_jumpifhalfword(void)
}
}
+// Strange that there's an instance of T1_READ_32 in what seems to be a T2 function. see global.h for the distinction.
static void atk2B_jumpifword(void)
{
- u8 caseID = BSScriptRead8(gBattlescriptCurrInstr + 1);
- u32* ptr = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
- u32 value = BSScriptRead32(gBattlescriptCurrInstr + 6);
- u8* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 10);
+ u8 caseID = T2_READ_8(gBattlescriptCurrInstr + 1);
+ u32* ptr = T2_READ_PTR(gBattlescriptCurrInstr + 2);
+ u32 value = T1_READ_32(gBattlescriptCurrInstr + 6);
+ u8* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 10);
gBattlescriptCurrInstr += 14;
switch (caseID)
{
@@ -7107,10 +7093,10 @@ static void atk2B_jumpifword(void)
static void atk2C_jumpifarrayequal(void)
{
//Mem1, Mem2, Size, Jump Loc
- u8* mem1 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u8* mem2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5);
- u32 size = BSScriptRead8(gBattlescriptCurrInstr + 9);
- u8* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 10);
+ u8* mem1 = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u8* mem2 = T2_READ_PTR(gBattlescriptCurrInstr + 5);
+ u32 size = T2_READ_8(gBattlescriptCurrInstr + 9);
+ u8* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 10);
u8 i;
for (i = 0; i < size; i++)
@@ -7131,10 +7117,10 @@ static void atk2D_jumpifarraynotequal(void)
{
//Mem1, Mem2, Size, Jump Loc
u8 equal_bytes = 0;
- u8* mem1 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u8* mem2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5);
- u32 size = BSScriptRead8(gBattlescriptCurrInstr + 9);
- u8* jump_loc = BS2ScriptReadPtr(gBattlescriptCurrInstr + 10);
+ u8* mem1 = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u8* mem2 = T2_READ_PTR(gBattlescriptCurrInstr + 5);
+ u32 size = T2_READ_8(gBattlescriptCurrInstr + 9);
+ u8* jump_loc = T2_READ_PTR(gBattlescriptCurrInstr + 10);
u8 i;
for (i = 0; i < size; i++)
@@ -7154,30 +7140,30 @@ static void atk2D_jumpifarraynotequal(void)
static void atk2E_setbyte(void)
{
- u8* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- *mem = BSScriptRead8(gBattlescriptCurrInstr + 5);
+ u8* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ *mem = T2_READ_8(gBattlescriptCurrInstr + 5);
gBattlescriptCurrInstr += 6;
}
static void atk2F_addbyte(void)
{
- u8* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- *mem += BSScriptRead8(gBattlescriptCurrInstr + 5);
+ u8* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ *mem += T2_READ_8(gBattlescriptCurrInstr + 5);
gBattlescriptCurrInstr += 6;
}
static void atk30_subbyte(void)
{
- u8* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- *mem -= BSScriptRead8(gBattlescriptCurrInstr + 5);
+ u8* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ *mem -= T2_READ_8(gBattlescriptCurrInstr + 5);
gBattlescriptCurrInstr += 6;
}
static void atk31_copyarray(void)
{
- u8* mem1 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u8* mem2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5);
- s32 size = BSScriptRead8(gBattlescriptCurrInstr + 9);
+ u8* mem1 = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u8* mem2 = T2_READ_PTR(gBattlescriptCurrInstr + 5);
+ s32 size = T2_READ_8(gBattlescriptCurrInstr + 9);
s32 i;
for (i = 0; i < size; i++)
@@ -7190,10 +7176,10 @@ static void atk31_copyarray(void)
static void atk32_copyarray_withindex(void)
{
- u8* mem1 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u8* mem2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5);
- u8* index = BS2ScriptReadPtr(gBattlescriptCurrInstr + 9);
- s32 size = BSScriptRead8(gBattlescriptCurrInstr + 13);
+ u8* mem1 = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u8* mem2 = T2_READ_PTR(gBattlescriptCurrInstr + 5);
+ u8* index = T2_READ_PTR(gBattlescriptCurrInstr + 9);
+ s32 size = T2_READ_8(gBattlescriptCurrInstr + 13);
s32 i;
for (i = 0; i < size; i++)
@@ -7206,15 +7192,15 @@ static void atk32_copyarray_withindex(void)
static void atk33_orbyte(void)
{
- u8* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- *mem |= BSScriptRead8(gBattlescriptCurrInstr + 5);
+ u8* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ *mem |= T2_READ_8(gBattlescriptCurrInstr + 5);
gBattlescriptCurrInstr += 6;
}
static void atk34_orhalfword(void)
{
- u16* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u16 val = BS2ScriptRead16(gBattlescriptCurrInstr + 5);
+ u16* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u16 val = T2_READ_16(gBattlescriptCurrInstr + 5);
*mem |= val;
gBattlescriptCurrInstr += 7;
@@ -7222,8 +7208,8 @@ static void atk34_orhalfword(void)
static void atk35_orword(void)
{
- u32* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u32 val = BS2ScriptRead32(gBattlescriptCurrInstr + 5);
+ u32* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u32 val = T2_READ_32(gBattlescriptCurrInstr + 5);
*mem |= val;
gBattlescriptCurrInstr += 9;
@@ -7231,15 +7217,15 @@ static void atk35_orword(void)
static void atk36_bicbyte(void)
{
- u8* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- *mem &= ~(BSScriptRead8(gBattlescriptCurrInstr + 5));
+ u8* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ *mem &= ~(T2_READ_8(gBattlescriptCurrInstr + 5));
gBattlescriptCurrInstr += 6;
}
static void atk37_bichalfword(void)
{
- u16* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u16 val = BS2ScriptRead16(gBattlescriptCurrInstr + 5);
+ u16* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u16 val = T2_READ_16(gBattlescriptCurrInstr + 5);
*mem &= ~val;
gBattlescriptCurrInstr += 7;
@@ -7247,8 +7233,8 @@ static void atk37_bichalfword(void)
static void atk38_bicword(void)
{
- u32* mem = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1);
- u32 val = BS2ScriptRead32(gBattlescriptCurrInstr + 5);
+ u32* mem = T2_READ_PTR(gBattlescriptCurrInstr + 1);
+ u32 val = T2_READ_32(gBattlescriptCurrInstr + 5);
*mem &= ~val;
gBattlescriptCurrInstr += 9;
@@ -7258,7 +7244,7 @@ static void atk39_pause(void)
{
if (gBattleExecBuffer == 0)
{
- u16 value = BS2ScriptRead16(gBattlescriptCurrInstr + 1);
+ u16 value = T2_READ_16(gBattlescriptCurrInstr + 1);
if (++gPauseCounterBattle >= value)
{
gPauseCounterBattle = 0;
@@ -7275,7 +7261,7 @@ static void atk3A_waitstate(void)
static void atk3B_healthbar_update(void)
{
- if (!BSScriptRead8(gBattlescriptCurrInstr + 1))
+ if (!T2_READ_8(gBattlescriptCurrInstr + 1))
gActiveBank = gBankTarget;
else
gActiveBank = gBankAttacker;
@@ -7315,39 +7301,38 @@ static void atk3F_end3(void) //pops the main function stack
static void atk41_call(void)
{
b_movescr_stack_push(gBattlescriptCurrInstr + 5);
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atk42_jumpiftype2(void) //u8 bank, u8 type, *ptr
{
- u8 bank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ u8 bank = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
- if (BSScriptRead8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type1 || BSScriptRead8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type2)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 3);
+ if (T1_READ_8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type1 || T1_READ_8(gBattlescriptCurrInstr + 2) == gBattleMons[bank].type2)
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 3);
else
gBattlescriptCurrInstr += 7;
}
static void atk43_jumpifabilitypresent(void)
{
- if (AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, BSScriptRead8(gBattlescriptCurrInstr + 1), 0, 0))
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ if (AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, T2_READ_8(gBattlescriptCurrInstr + 1), 0, 0))
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
}
static void atk44(void)
{
- unk_2000000[gBankAttacker + 0x16060] = 1;
+ ewram16060(gBankAttacker) = 1;
}
#ifdef NONMATCHING
-
static void atk45_playanimation(void)
{
- #define ANIMATION_ID BSScriptRead8(gBattlescriptCurrInstr + 2)
- #define ARGUMENT (u16*) BS2ScriptReadPtr(gBattlescriptCurrInstr + 3)
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ #define ANIMATION_ID T2_READ_8(gBattlescriptCurrInstr + 2)
+ #define ARGUMENT (u16*) T2_READ_PTR(gBattlescriptCurrInstr + 3)
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if ( ANIMATION_ID == 1 || ANIMATION_ID == 0x11 || ANIMATION_ID == 2) {
EmitBattleAnimation(0, ANIMATION_ID, *argument);
@@ -7477,10 +7462,10 @@ static void atk46_playanimation2(void)
u16* arg3;
u32 something;
- arg1 = BSScriptRead8(gBattlescriptCurrInstr + 1);
+ arg1 = T2_READ_8(gBattlescriptCurrInstr + 1);
gActiveBank = GetBattleBank(arg1);
- arg2 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 2);
- arg3 = BS2ScriptReadPtr(gBattlescriptCurrInstr + 6);
+ arg2 = T2_READ_PTR(gBattlescriptCurrInstr + 2);
+ arg3 = T2_READ_PTR(gBattlescriptCurrInstr + 6);
if (*arg2 == 1 || *arg2 == 0x11 || *arg2 == 2)
{
@@ -7645,9 +7630,9 @@ static void atk48_playstatchangeanimation(void)
u32 stats_to_check;
u8 arg3;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- stats_to_check = BSScriptRead8(gBattlescriptCurrInstr + 2);
- arg3 = BSScriptRead8(gBattlescriptCurrInstr + 3);
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ stats_to_check = T2_READ_8(gBattlescriptCurrInstr + 2);
+ arg3 = T2_READ_8(gBattlescriptCurrInstr + 3);
if (arg3 & 1)
{
u16 r1 = 0x15;
@@ -7657,7 +7642,7 @@ static void atk48_playstatchangeanimation(void)
{
if (!(stats_to_check & 1))
continue;
- if (!(BSScriptRead8(gBattlescriptCurrInstr + 3)))
+ if (!(T2_READ_8(gBattlescriptCurrInstr + 3)))
{
u8 ability;
if (gSideTimer[GetBankIdentity(gActiveBank) & 1].mistTimer)
@@ -7676,7 +7661,7 @@ static void atk48_playstatchangeanimation(void)
r1 += 1;
curr_stat++;
}
- if (changeable_stats > 1 && BSScriptRead8(gBattlescriptCurrInstr + 3) & 2)
+ if (changeable_stats > 1 && T2_READ_8(gBattlescriptCurrInstr + 3) & 2)
stat_animID = 0x39;
else
stat_animID = 0x3A;
@@ -7700,19 +7685,19 @@ static void atk48_playstatchangeanimation(void)
r1 += 1;
curr_stat++;
}
- if (changeable_stats > 1 && BSScriptRead8(gBattlescriptCurrInstr + 3) & 2)
+ if (changeable_stats > 1 && T2_READ_8(gBattlescriptCurrInstr + 3) & 2)
stat_animID = 0x37;
else
stat_animID = 0x38;
}
- if ((BSScriptRead8(gBattlescriptCurrInstr + 3) & 2 && changeable_stats <= 1)
+ if ((T2_READ_8(gBattlescriptCurrInstr + 3) & 2 && changeable_stats <= 1)
|| changeable_stats == 0 || BATTLE_STRUCT->filler2[0] != 0)
gBattlescriptCurrInstr += 4;
else
{
EmitBattleAnimation(0, 1, stat_animID);
MarkBufferBankForExecution(gActiveBank);
- if ((BSScriptRead8(gBattlescriptCurrInstr + 3) & 4) && changeable_stats > 1)
+ if ((T2_READ_8(gBattlescriptCurrInstr + 3) & 4) && changeable_stats > 1)
BATTLE_STRUCT->filler2[0] = 1;
gBattlescriptCurrInstr += 4;
}
@@ -7934,7 +7919,7 @@ _0802178C: .4byte gUnknown_02024A98\n\
_08021790:\n\
cmp r3, 0\n\
beq _080217E0\n\
- ldr r0, _080217D0 @ =0x02000000\n\
+ ldr r0, _080217D0 @ =gSharedMem\n\
ldr r1, _080217D4 @ =0x000160dc\n\
adds r4, r0, r1\n\
ldrb r0, [r4]\n\
@@ -7964,7 +7949,7 @@ _080217CC:\n\
ldr r1, _080217DC @ =gBattlescriptCurrInstr\n\
b _080217E2\n\
.align 2, 0\n\
-_080217D0: .4byte 0x02000000\n\
+_080217D0: .4byte gSharedMem\n\
_080217D4: .4byte 0x000160dc\n\
_080217D8: .4byte gActiveBank\n\
_080217DC: .4byte gBattlescriptCurrInstr\n\
@@ -7998,14 +7983,14 @@ static void atk49_moveendturn(void)
if (gLastUsedMove != 0xFFFF)
last_move = gLastUsedMove;
- arg1 = BSScriptRead8(gBattlescriptCurrInstr + 1);
- arg2 = BSScriptRead8(gBattlescriptCurrInstr + 2);
+ arg1 = T2_READ_8(gBattlescriptCurrInstr + 1);
+ arg2 = T2_READ_8(gBattlescriptCurrInstr + 2);
if (gBattleMons[gBankTarget].item == ITEM_ENIGMA_BERRY)
hold_effect_atk = gEnigmaBerries[gBankAttacker].holdEffect;
else
hold_effect_atk = ItemId_GetHoldEffect(gBattleMons[gBankTarget].item);
- choiced_move_atk = (u16*)(gBankAttacker * 0x020160e8);
+ choiced_move_atk = (u16*)(gBankAttacker * (ewram_addr + 0x160E8));
if (BATTLE_STRUCT->dynamicMoveType)
move_type = BATTLE_STRUCT->dynamicMoveType & 0x3F;
else
@@ -8081,7 +8066,7 @@ static void atk49_moveendturn(void)
case 7: //changed held items
for (i = 0; i < gNoOfAllBanks; i++)
{
- #define CHANGED_ITEM (((*u16)(0x020160f0)))
+ #define CHANGED_ITEM (((*u16)(gSharedMem + 0x160F0)))
if (CHANGED_ITEM(i))
gBattleMons[i].item = CHANGED_ITEM(i);
}
@@ -8177,7 +8162,7 @@ _0802184E:\n\
ldr r0, _0802186C @ =gBankAttacker\n\
ldrb r1, [r0]\n\
lsls r1, 1\n\
- ldr r0, _08021870 @ =0x020160e8\n\
+ ldr r0, _08021870 @ =gSharedMem + 0x160E8\n\
adds r1, r0\n\
str r1, [sp, 0xC]\n\
subs r0, 0xCC\n\
@@ -8190,13 +8175,13 @@ _0802184E:\n\
b _080218D2\n\
.align 2, 0\n\
_0802186C: .4byte gBankAttacker\n\
-_08021870: .4byte 0x020160e8\n\
+_08021870: .4byte gSharedMem + 0x160E8\n\
_08021874:\n\
strb r2, [r7]\n\
ldr r0, [r5]\n\
orrs r0, r6\n\
str r0, [r5]\n\
- ldr r0, _080218AC @ =0x02000000\n\
+ ldr r0, _080218AC @ =gSharedMem\n\
ldr r3, _080218B0 @ =0x0001600c\n\
adds r0, r3\n\
strb r4, [r0]\n\
@@ -8217,7 +8202,7 @@ _08021874:\n\
ldr r0, _080218BC @ =gUnknown_081D9B2D\n\
bl _0802229C\n\
.align 2, 0\n\
-_080218AC: .4byte 0x02000000\n\
+_080218AC: .4byte gSharedMem\n\
_080218B0: .4byte 0x0001600c\n\
_080218B4: .4byte gBattleScriptsEffectsTable\n\
_080218B8: .4byte gBattlescriptCurrInstr\n\
@@ -8233,13 +8218,13 @@ _080218C0:\n\
ldrb r0, [r0, 0x2]\n\
str r0, [sp, 0x4]\n\
_080218D2:\n\
- ldr r5, _080218E0 @ =0x02000000\n\
+ ldr r5, _080218E0 @ =gSharedMem\n\
mov r12, r5\n\
b _080218EE\n\
.align 2, 0\n\
_080218D8: .4byte gBattleMoves\n\
_080218DC: .4byte gCurrentMove\n\
-_080218E0: .4byte 0x02000000\n\
+_080218E0: .4byte gSharedMem\n\
_080218E4:\n\
mov r0, r10\n\
cmp r0, 0\n\
@@ -8364,7 +8349,7 @@ _080219C8:\n\
movs r5, 0x1\n\
mov r10, r5\n\
_080219FE:\n\
- ldr r2, _08021A2C @ =0x02000000\n\
+ ldr r2, _08021A2C @ =gSharedMem\n\
ldr r0, _08021A30 @ =0x0001600c\n\
adds r1, r2, r0\n\
b _08021E00\n\
@@ -8378,7 +8363,7 @@ _08021A1C: .4byte gBattleMoves\n\
_08021A20: .4byte gCurrentMove\n\
_08021A24: .4byte gBattlescriptCurrInstr\n\
_08021A28: .4byte gUnknown_081D9132\n\
-_08021A2C: .4byte 0x02000000\n\
+_08021A2C: .4byte gSharedMem\n\
_08021A30: .4byte 0x0001600c\n\
_08021A34:\n\
ldr r2, _08021AD0 @ =gBattleMons\n\
@@ -8486,13 +8471,13 @@ _08021AF0:\n\
movs r4, 0x1\n\
mov r10, r4\n\
_08021B0C:\n\
- ldr r2, _08021B18 @ =0x02000000\n\
+ ldr r2, _08021B18 @ =gSharedMem\n\
ldr r5, _08021B1C @ =0x0001600c\n\
adds r1, r2, r5\n\
b _08021E00\n\
.align 2, 0\n\
_08021B14: .4byte gBankTarget\n\
-_08021B18: .4byte 0x02000000\n\
+_08021B18: .4byte gSharedMem\n\
_08021B1C: .4byte 0x0001600c\n\
_08021B20:\n\
ldr r0, _08021B40 @ =gBankTarget\n\
@@ -8526,18 +8511,18 @@ _08021B44:\n\
beq _08021B68\n\
movs r4, 0x1\n\
mov r10, r4\n\
- ldr r5, _08021B64 @ =0x02000000\n\
+ ldr r5, _08021B64 @ =gSharedMem\n\
mov r12, r5\n\
b _0802224E\n\
.align 2, 0\n\
-_08021B64: .4byte 0x02000000\n\
+_08021B64: .4byte gSharedMem\n\
_08021B68:\n\
- ldr r2, _08021B70 @ =0x02000000\n\
+ ldr r2, _08021B70 @ =gSharedMem\n\
ldr r0, _08021B74 @ =0x0001600c\n\
adds r1, r2, r0\n\
b _08021E00\n\
.align 2, 0\n\
-_08021B70: .4byte 0x02000000\n\
+_08021B70: .4byte gSharedMem\n\
_08021B74: .4byte 0x0001600c\n\
_08021B78:\n\
ldr r0, _08021B98 @ =gBankAttacker\n\
@@ -8651,7 +8636,7 @@ _08021C40:\n\
b _08022244\n\
_08021C4C:\n\
movs r5, 0\n\
- ldr r2, _08021C70 @ =0x020160f0\n\
+ ldr r2, _08021C70 @ =gSharedMem + 0x160F0\n\
ldr r3, _08021C74 @ =gBattleMons\n\
_08021C52:\n\
ldrh r1, [r2]\n\
@@ -8669,7 +8654,7 @@ _08021C5C:\n\
b _08022244\n\
.align 2, 0\n\
_08021C6C: .4byte gNoOfAllBanks\n\
-_08021C70: .4byte 0x020160f0\n\
+_08021C70: .4byte gSharedMem + 0x160F0\n\
_08021C74: .4byte gBattleMons\n\
_08021C78:\n\
movs r0, 0x3\n\
@@ -8681,18 +8666,18 @@ _08021C78:\n\
beq _08021C98\n\
movs r2, 0x1\n\
mov r10, r2\n\
- ldr r3, _08021C94 @ =0x02000000\n\
+ ldr r3, _08021C94 @ =gSharedMem\n\
mov r12, r3\n\
b _0802224E\n\
.align 2, 0\n\
-_08021C94: .4byte 0x02000000\n\
+_08021C94: .4byte gSharedMem\n\
_08021C98:\n\
- ldr r2, _08021CA0 @ =0x02000000\n\
+ ldr r2, _08021CA0 @ =gSharedMem\n\
ldr r4, _08021CA4 @ =0x0001600c\n\
adds r1, r2, r4\n\
b _08021E00\n\
.align 2, 0\n\
-_08021CA0: .4byte 0x02000000\n\
+_08021CA0: .4byte gSharedMem\n\
_08021CA4: .4byte 0x0001600c\n\
_08021CA8:\n\
movs r0, 0x4\n\
@@ -8705,12 +8690,12 @@ _08021CA8:\n\
movs r5, 0x1\n\
mov r10, r5\n\
_08021CBC:\n\
- ldr r2, _08021CC4 @ =0x02000000\n\
+ ldr r2, _08021CC4 @ =gSharedMem\n\
ldr r0, _08021CC8 @ =0x0001600c\n\
adds r1, r2, r0\n\
b _08021E00\n\
.align 2, 0\n\
-_08021CC4: .4byte 0x02000000\n\
+_08021CC4: .4byte gSharedMem\n\
_08021CC8: .4byte 0x0001600c\n\
_08021CCC:\n\
ldr r1, _08021D04 @ =gStatuses3\n\
@@ -8798,7 +8783,7 @@ _08021D44:\n\
orrs r1, r2\n\
strb r1, [r0]\n\
_08021D7E:\n\
- ldr r2, _08021DA4 @ =0x02000000\n\
+ ldr r2, _08021DA4 @ =gSharedMem\n\
ldr r4, _08021DA8 @ =0x0001600c\n\
adds r1, r2, r4\n\
b _08021E00\n\
@@ -8810,7 +8795,7 @@ _08021D94: .4byte 0x000400c0\n\
_08021D98: .4byte gActiveBank\n\
_08021D9C: .4byte 0xfffbff3f\n\
_08021DA0: .4byte gSpecialStatuses\n\
-_08021DA4: .4byte 0x02000000\n\
+_08021DA4: .4byte gSharedMem\n\
_08021DA8: .4byte 0x0001600c\n\
_08021DAC:\n\
ldr r2, _08021E0C @ =gSpecialStatuses\n\
@@ -8851,7 +8836,7 @@ _08021DAC:\n\
ands r0, r1\n\
str r0, [r2]\n\
_08021DFA:\n\
- ldr r2, _08021E28 @ =0x02000000\n\
+ ldr r2, _08021E28 @ =gSharedMem\n\
ldr r3, _08021E2C @ =0x0001600c\n\
adds r1, r2, r3\n\
_08021E00:\n\
@@ -8868,7 +8853,7 @@ _08021E18: .4byte gStatuses3\n\
_08021E1C: .4byte 0x000400c0\n\
_08021E20: .4byte gActiveBank\n\
_08021E24: .4byte 0xfffbff3f\n\
-_08021E28: .4byte 0x02000000\n\
+_08021E28: .4byte gSharedMem\n\
_08021E2C: .4byte 0x0001600c\n\
_08021E30:\n\
movs r4, 0\n\
@@ -9362,7 +9347,7 @@ _0802223A:\n\
ldr r0, [r5]\n\
orrs r0, r6\n\
str r0, [r5]\n\
- ldr r2, _080222D0 @ =0x02000000\n\
+ ldr r2, _080222D0 @ =gSharedMem\n\
mov r12, r2\n\
_08022244:\n\
ldr r1, _080222D4 @ =0x0001600c\n\
@@ -9432,7 +9417,7 @@ _080222C0: .4byte gBattleMoves\n\
_080222C4: .4byte gCurrentMove\n\
_080222C8: .4byte gBankTarget\n\
_080222CC: .4byte gBattleMons\n\
-_080222D0: .4byte 0x02000000\n\
+_080222D0: .4byte gSharedMem\n\
_080222D4: .4byte 0x0001600c\n\
_080222D8: .4byte gBattlescriptCurrInstr\n\
.syntax divided"
@@ -9531,9 +9516,9 @@ static void atk4C_copy_poke_data(void)
if (gBattleExecBuffer)
return;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
- gBattlePartyID[gActiveBank] = unk_2000000[0x16068 + gActiveBank];
+ gBattlePartyID[gActiveBank] = ewram16068arr(gActiveBank);
EmitGetAttributes(0, 0, gBitTable[gBattlePartyID[gActiveBank]]);
MarkBufferBankForExecution(gActiveBank);
@@ -9558,7 +9543,7 @@ static void atk4D_switch_data_update(void)
if (gBattleExecBuffer)
return;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
OldData = gBattleMons[gActiveBank];
monData = (u8*)(&gBattleMons[gActiveBank]);
for (i = 0; i < sizeof(struct BattlePokemon); i++)
@@ -9599,13 +9584,13 @@ static void atk4E_switchin_anim(void)
if (gBattleExecBuffer)
return;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (GetBankSide(gActiveBank) == 1 && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_BATTLE_TOWER)))
{
GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gActiveBank].species), 2);
}
gAbsentBankFlags &= ~(gBitTable[gActiveBank]);
- EmitSendOutPoke(0, gBattlePartyID[gActiveBank], BSScriptRead8(gBattlescriptCurrInstr + 2));
+ EmitSendOutPoke(0, gBattlePartyID[gActiveBank], T2_READ_8(gBattlescriptCurrInstr + 2));
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 3;
}
@@ -9616,12 +9601,12 @@ static void atk4F_jump_if_cannot_switch(void)
register struct Pokemon *party;
u8 r7;
//0x80 byte is used as a way of telling the function whether to not check status2/status3
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1) & 0x7F);
- if (!(BSScriptRead8(gBattlescriptCurrInstr + 1) & 0x80)
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x7F);
+ if (!(T2_READ_8(gBattlescriptCurrInstr + 1) & 0x80)
&& ((gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION))
|| (gStatuses3[gActiveBank] & STATUS3_ROOTED)))
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
return;
}
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
@@ -9642,7 +9627,7 @@ static void atk4F_jump_if_cannot_switch(void)
break;
}
if (val == to_cmp)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
}
@@ -9675,7 +9660,7 @@ static void atk4F_jump_if_cannot_switch(void)
break;
}
if (val == 6)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
}
@@ -9683,8 +9668,7 @@ static void atk4F_jump_if_cannot_switch(void)
void sub_8022A3C(u8 unkown)
{
- //BATTLE_STRUCT->unk16064[gActiveBank] = gBattlePartyID[gActiveBank];
- ewram[gActiveBank + 0x16064] = gBattlePartyID[gActiveBank];
+ BATTLE_PARTY_ID(gActiveBank) = gBattlePartyID[gActiveBank];
EmitChoosePokemon(0, 1, unkown, 0, BATTLE_STRUCT->unk1606C[gActiveBank]);
MarkBufferBankForExecution(gActiveBank);
}
@@ -9694,9 +9678,9 @@ static void atk50_openpartyscreen(void)
{
int i = 0;
int r9 = 0;
- u8* fail_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ u8* fail_loc = T1_READ_PTR(gBattlescriptCurrInstr + 2);
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 5)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 5)
{
if ((gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE)
{
@@ -9946,7 +9930,7 @@ _08022C2C:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _08022C6C\n\
- ldr r0, _08022C64 @ =0x02000000\n\
+ ldr r0, _08022C64 @ =gSharedMem\n\
ldr r1, _08022C68 @ =0x0001606a\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -9963,7 +9947,7 @@ _08022C2C:\n\
b _08022C7E\n\
.align 2, 0\n\
_08022C60: .4byte gSpecialStatuses\n\
-_08022C64: .4byte 0x02000000\n\
+_08022C64: .4byte gSharedMem\n\
_08022C68: .4byte 0x0001606a\n\
_08022C6C:\n\
movs r0, 0\n\
@@ -10031,7 +10015,7 @@ _08022CE8:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _08022D28\n\
- ldr r0, _08022D20 @ =0x02000000\n\
+ ldr r0, _08022D20 @ =gSharedMem\n\
ldr r1, _08022D24 @ =0x00016068\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -10048,7 +10032,7 @@ _08022CE8:\n\
b _08022D40\n\
.align 2, 0\n\
_08022D1C: .4byte gSpecialStatuses\n\
-_08022D20: .4byte 0x02000000\n\
+_08022D20: .4byte gSharedMem\n\
_08022D24: .4byte 0x00016068\n\
_08022D28:\n\
movs r0, 0x1\n\
@@ -10115,7 +10099,7 @@ _08022DA0:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _08022DE0\n\
- ldr r0, _08022DD8 @ =0x02000000\n\
+ ldr r0, _08022DD8 @ =gSharedMem\n\
ldr r1, _08022DDC @ =0x0001606b\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -10132,7 +10116,7 @@ _08022DA0:\n\
b _08022DF6\n\
.align 2, 0\n\
_08022DD4: .4byte gSpecialStatuses\n\
-_08022DD8: .4byte 0x02000000\n\
+_08022DD8: .4byte gSharedMem\n\
_08022DDC: .4byte 0x0001606b\n\
_08022DE0:\n\
movs r0, 0\n\
@@ -10202,7 +10186,7 @@ _08022E60:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _08022EA0\n\
- ldr r0, _08022E98 @ =0x02000000\n\
+ ldr r0, _08022E98 @ =gSharedMem\n\
ldr r1, _08022E9C @ =0x00016069\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -10219,7 +10203,7 @@ _08022E60:\n\
b _08022EB8\n\
.align 2, 0\n\
_08022E94: .4byte gSpecialStatuses\n\
-_08022E98: .4byte 0x02000000\n\
+_08022E98: .4byte gSharedMem\n\
_08022E9C: .4byte 0x00016069\n\
_08022EA0:\n\
movs r0, 0x2\n\
@@ -10402,7 +10386,7 @@ _08023008:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _0802303A\n\
- ldr r0, _0802309C @ =0x02000000\n\
+ ldr r0, _0802309C @ =gSharedMem\n\
ldr r1, _080230A0 @ =0x00016068\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -10463,7 +10447,7 @@ _0802303A:\n\
b _080230EE\n\
.align 2, 0\n\
_08023098: .4byte gSpecialStatuses\n\
-_0802309C: .4byte 0x02000000\n\
+_0802309C: .4byte gSharedMem\n\
_080230A0: .4byte 0x00016068\n\
_080230A4: .4byte gBitTable\n\
_080230A8: .4byte gActiveBank\n\
@@ -10482,7 +10466,7 @@ _080230BC:\n\
lsls r0, 25\n\
cmp r0, 0\n\
blt _080230EE\n\
- ldr r0, _08023100 @ =0x02000000\n\
+ ldr r0, _08023100 @ =gSharedMem\n\
ldr r1, _08023104 @ =0x00016069\n\
adds r0, r1\n\
ldrb r0, [r0]\n\
@@ -10505,7 +10489,7 @@ _080230EE:\n\
b _08023110\n\
.align 2, 0\n\
_080230FC: .4byte gSpecialStatuses\n\
-_08023100: .4byte 0x02000000\n\
+_08023100: .4byte gSharedMem\n\
_08023104: .4byte 0x00016069\n\
_08023108: .4byte gBattlescriptCurrInstr\n\
_0802310C:\n\
@@ -10626,7 +10610,7 @@ _080231F4: .4byte gHitMarker\n\
_080231F8:\n\
ldr r4, _080232A0 @ =gActiveBank\n\
strb r7, [r4]\n\
- ldr r3, _080232A4 @ =0x02000000\n\
+ ldr r3, _080232A4 @ =gSharedMem\n\
ldrb r0, [r4]\n\
ldr r2, _080232A8 @ =0x00016064\n\
adds r1, r0, r2\n\
@@ -10707,7 +10691,7 @@ _0802328A:\n\
b _08023302\n\
.align 2, 0\n\
_080232A0: .4byte gActiveBank\n\
-_080232A4: .4byte 0x02000000\n\
+_080232A4: .4byte gSharedMem\n\
_080232A8: .4byte 0x00016064\n\
_080232AC: .4byte gBattlePartyID\n\
_080232B0: .4byte 0x00016068\n\
@@ -10765,14 +10749,14 @@ static void atk51_switch_handle_order(void)
if (gBattleExecBuffer)
return;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- switch (BSScriptRead8(gBattlescriptCurrInstr + 2))
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case 0:
for (i = 0; i < gNoOfAllBanks; i++)
{
if (gBattleBufferB[i][0] == 0x22)
- ewram[i + 0x16068] = gBattleBufferB[i][1];
+ ewram16068arr(i) = gBattleBufferB[i][1];
}
break;
case 1:
@@ -10781,17 +10765,15 @@ static void atk51_switch_handle_order(void)
break;
case 2:
gBattleCommunication[0] = gBattleBufferB[gActiveBank][1];
- ewram[gActiveBank + 0x16068] = gBattleBufferB[gActiveBank][1];
+ ewram16068arr(gActiveBank) = gBattleBufferB[gActiveBank][1];
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
{
-
- ewram[(gActiveBank) * 3 + (0x1606C + 0)] &= 0xF;
- ewram[(gActiveBank) * 3 + (0x1606C + 0)] |= (gBattleBufferB[gActiveBank][2] & 0xF0);
- ewram[(gActiveBank) * 3 + (0x1606C + 1)] = gBattleBufferB[gActiveBank][3];
-
- ewram[(gActiveBank ^ 2) * 3 + (0x1606C + 0)] &= (0xF0);
- ewram[(gActiveBank ^ 2) * 3 + (0x1606C + 0)] |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4;
- ewram[(gActiveBank ^ 2) * 3 + (0x1606C + 2)] = gBattleBufferB[gActiveBank][3];
+ ewram1606Carr(0, gActiveBank) &= 0xF;
+ ewram1606Carr(0, gActiveBank) |= (gBattleBufferB[gActiveBank][2] & 0xF0);
+ ewram1606Carr(1, gActiveBank) = gBattleBufferB[gActiveBank][3];
+ ewram1606Carr(0, (gActiveBank ^ 2)) &= (0xF0);
+ ewram1606Carr(0, (gActiveBank ^ 2)) |= (gBattleBufferB[gActiveBank][2] & 0xF0) >> 4;
+ ewram1606Carr(2, (gActiveBank ^ 2)) = gBattleBufferB[gActiveBank][3];
}
else
sub_8012258(gActiveBank);
@@ -10816,7 +10798,7 @@ static void atk52_switch_in_effects(void)
{
int i;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
sub_80157C4(gActiveBank);
gHitMarker &= ~(HITMARKER_FAINTED(gActiveBank));
gSpecialStatuses[gActiveBank].flag40 = 0;
@@ -10836,9 +10818,9 @@ static void atk52_switch_in_effects(void)
BATTLE_STRUCT->scriptingActive = gActiveBank;
b_movescr_stack_push_cursor();
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 0)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0)
gBattlescriptCurrInstr = gUnknown_081D919F;
- else if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 1)
+ else if (T2_READ_8(gBattlescriptCurrInstr + 1) == 1)
gBattlescriptCurrInstr = gUnknown_081D9171;
else
gBattlescriptCurrInstr = gUnknown_081D91CD;
@@ -10865,7 +10847,7 @@ static void atk52_switch_in_effects(void)
*(HP_ON_SWITCHOUT + GetBankSide(i)) = gBattleMons[i].hp;
}
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) == 5)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) == 5)
{
u32 hitmark = gHitMarker >> 0x1C;
gBank1++;
@@ -10885,7 +10867,7 @@ static void atk52_switch_in_effects(void)
static void atk53_trainer_slide(void)
{
- if (!BSScriptRead8(gBattlescriptCurrInstr + 1))
+ if (!T2_READ_8(gBattlescriptCurrInstr + 1))
gActiveBank = GetBankByPlayerAI(0);
else
gActiveBank = GetBankByPlayerAI(1);
@@ -10898,7 +10880,7 @@ static void atk53_trainer_slide(void)
static void atk54_effectiveness_sound(void)
{
gActiveBank = gBankAttacker;
- EmitEffectivenessSound(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1));
+ EmitEffectivenessSound(0, T2_READ_16(gBattlescriptCurrInstr + 1));
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 3;
}
@@ -10906,14 +10888,14 @@ static void atk54_effectiveness_sound(void)
static void atk55_play_sound(void)
{
gActiveBank = gBankAttacker;
- Emitcmd44(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1));
+ Emitcmd44(0, T2_READ_16(gBattlescriptCurrInstr + 1));
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 3;
}
static void atk56_fainting_cry(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
EmitFaintingCry(0);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -10929,7 +10911,7 @@ static void atk57(void)
static void atk58_return_to_ball(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
EmitReturnPokeToBall(0, 1);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -10937,10 +10919,10 @@ static void atk58_return_to_ball(void)
void atk59_learnmove_inbattle(void)
{
- u8* loc1 = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
- u8* loc2 = BSScriptReadPtr(gBattlescriptCurrInstr + 5);
+ u8* loc1 = T1_READ_PTR(gBattlescriptCurrInstr + 1);
+ u8* loc2 = T1_READ_PTR(gBattlescriptCurrInstr + 5);
- u16 ret = MonTryLearningNewMove(&gPlayerParty[BATTLE_STRUCT->expGetterID], BSScriptRead8(gBattlescriptCurrInstr + 9));
+ u16 ret = MonTryLearningNewMove(&gPlayerParty[BATTLE_STRUCT->expGetterID], T2_READ_8(gBattlescriptCurrInstr + 9));
while (ret == 0xFFFE)
ret = MonTryLearningNewMove(&gPlayerParty[BATTLE_STRUCT->expGetterID], 0);
@@ -11053,7 +11035,7 @@ static void atk5A(void)
{
u8 *ptr;
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
ptr = gBattleTextBuff2;
{
ptr[0] = 0xFD;
@@ -11123,7 +11105,7 @@ static void atk5B_80256E0(void)
{
PlaySE(SE_SELECT);
if (gBattleCommunication[1] != 0)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
sub_8023AD8();
@@ -11131,7 +11113,7 @@ static void atk5B_80256E0(void)
else if (gMain.newKeys & B_BUTTON)
{
PlaySE(SE_SELECT);
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
sub_8023AD8();
}
}
@@ -11139,7 +11121,7 @@ static void atk5B_80256E0(void)
static void atk5C_hitanimation(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMoveFlags & MOVESTATUS_NOEFFECT)
gBattlescriptCurrInstr += 2;
else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE) || gDisableStructs[gActiveBank].substituteHP == 0)
@@ -11152,7 +11134,7 @@ static void atk5C_hitanimation(void)
gBattlescriptCurrInstr += 2;
}
-#define MONEY_UNKNOWN ((*(u8*)(0x02017000 + 0x94)))
+#define MONEY_UNKNOWN ((*(u8*)(ewram_addr + 0x17000 + 0x94)))
#ifdef NONMATCHING
static void atk5D_getmoneyreward(void)
@@ -11226,7 +11208,7 @@ static void atk5D_getmoneyreward(void)
lsls r1, 3\n\
cmp r2, r1\n\
bne _08024058\n\
- ldr r0, _0802404C @ =0x02017000\n\
+ ldr r0, _0802404C @ =gSharedMem + 0x17000\n\
adds r1, r0, 0\n\
adds r1, 0x94\n\
ldrb r2, [r1]\n\
@@ -11243,7 +11225,7 @@ static void atk5D_getmoneyreward(void)
b _08024140\n\
.align 2, 0\n\
_08024048: .4byte gTrainerBattleOpponent\n\
-_0802404C: .4byte 0x02017000\n\
+_0802404C: .4byte gSharedMem + 0x17000\n\
_08024050: .4byte 0xfffff056\n\
_08024054: .4byte gSaveBlock1 + 0x490\n\
_08024058:\n\
@@ -11313,7 +11295,7 @@ _080240C4:\n\
ldrb r1, [r3]\n\
mov r12, r0\n\
lsls r4, r5, 2\n\
- ldr r5, _08024124 @ =0x02000000\n\
+ ldr r5, _08024124 @ =gSharedMem\n\
ldr r7, _08024128 @ =gBattleTypeFlags\n\
ldr r0, _0802412C @ =gSaveBlock1 + 0x490\n\
mov r8, r0\n\
@@ -11357,7 +11339,7 @@ _080240FE:\n\
b _08024140\n\
.align 2, 0\n\
_08024120: .4byte gTrainerMoney\n\
-_08024124: .4byte 0x02000000\n\
+_08024124: .4byte gSharedMem\n\
_08024128: .4byte gBattleTypeFlags\n\
_0802412C: .4byte gSaveBlock1 + 0x490\n\
_08024130: .4byte gTrainers\n\
@@ -11412,7 +11394,7 @@ _08024190: .4byte gBattlescriptCurrInstr\n\
static void atk5E_8025A70(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (gBattleCommunication[0])
{
case 0:
@@ -11453,26 +11435,20 @@ static void atk60_increment_gamestat(void)
{
if (GetBankSide(gBankAttacker) == 0)
{
- IncrementGameStat(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ IncrementGameStat(T2_READ_8(gBattlescriptCurrInstr + 1));
}
gBattlescriptCurrInstr += 2;
}
-struct hp_status
-{
- u16 hp;
- u32 status;
-};
-
static void atk61_8025BA4(void)
{
int i;
struct Pokemon* party;
- struct hp_status hpStatus[6];
+ struct HpAndStatus hpStatus[6];
if (gBattleExecBuffer)
return;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (GetBankSide(gActiveBank) == 0)
party = gPlayerParty;
else
@@ -11491,14 +11467,14 @@ static void atk61_8025BA4(void)
hpStatus[i].status = GetMonData(&party[i], MON_DATA_STATUS);
}
}
- Emitcmd48(0, (u8*)(hpStatus), 1);
+ EmitDrawPartyStatusSummary(0, hpStatus, 1);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
}
static void atk62_08025C6C(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
Emitcmd49(0);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -11506,7 +11482,7 @@ static void atk62_08025C6C(void)
static void atk63_jumptorandomattack(void)
{
- if (BSScriptRead8(gBattlescriptCurrInstr + 1))
+ if (T2_READ_8(gBattlescriptCurrInstr + 1))
gCurrentMove = gRandomMove;
else
gUnknown_02024BE8 = gCurrentMove = gRandomMove;
@@ -11517,7 +11493,7 @@ static void atk64_statusanimation(void)
{
if (gBattleExecBuffer == 0)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBank].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
EmitStatusAnimation(0, 0, gBattleMons[gActiveBank].status1);
@@ -11532,8 +11508,8 @@ static void atk65_status2animation(void)
if (gBattleExecBuffer == 0)
{
u32 possible_to_anim;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- possible_to_anim = BSScriptRead32(gBattlescriptCurrInstr + 2);
+ gActiveBank = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
+ possible_to_anim = T1_READ_32(gBattlescriptCurrInstr + 2);
if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBank].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
EmitStatusAnimation(0, 1, gBattleMons[gActiveBank].status2 & possible_to_anim);
@@ -11548,11 +11524,11 @@ static void atk66_chosenstatusanimation(void)
if (gBattleExecBuffer == 0)
{
u32 status;
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- status = BSScriptRead32(gBattlescriptCurrInstr + 3);
+ gActiveBank = GetBattleBank(T1_READ_8(gBattlescriptCurrInstr + 1));
+ status = T1_READ_32(gBattlescriptCurrInstr + 3);
if (!(gStatuses3[gActiveBank] & STATUS3_SEMI_INVULNERABLE) && gDisableStructs[gActiveBank].substituteHP == 0 && !(gHitMarker & HITMARKER_NO_ANIMATIONS))
{
- EmitStatusAnimation(0, BSScriptRead8(gBattlescriptCurrInstr + 2), status);
+ EmitStatusAnimation(0, T1_READ_8(gBattlescriptCurrInstr + 2), status);
MarkBufferBankForExecution(gActiveBank);
}
gBattlescriptCurrInstr += 7;
@@ -11656,8 +11632,7 @@ static void atk69_dmg_adjustment2(void) //literally a copy of atk07 except there
void atk6A_removeitem(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- #define USED_HELD_ITEMS(bank) (*(u16 *)&ewram[0x160CC + 2 * (bank)])
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
USED_HELD_ITEMS(gActiveBank) = gBattleMons[gActiveBank].item;
gBattleMons[gActiveBank].item = 0;
@@ -11703,7 +11678,7 @@ static void atk6C_lvlbox_display(void)
sub sp, 0x4\n\
movs r1, 0\n\
movs r7, 0\n\
- ldr r0, _08024928 @ =0x02000000\n\
+ ldr r0, _08024928 @ =gSharedMem\n\
mov r10, r0\n\
ldr r4, _0802492C @ =0x0001609c\n\
add r4, r10\n\
@@ -11718,7 +11693,7 @@ _0802491C:\n\
beq _0802493E\n\
b _08024C38\n\
.align 2, 0\n\
-_08024928: .4byte 0x02000000\n\
+_08024928: .4byte gSharedMem\n\
_0802492C: .4byte 0x0001609c\n\
_08024930:\n\
cmp r0, 0x2\n\
@@ -11754,7 +11729,7 @@ _0802495A:\n\
adds r0, r5, 0\n\
bl StringAppend\n\
adds r5, r0, 0\n\
- ldr r0, _080249A8 @ =0x02000000\n\
+ ldr r0, _080249A8 @ =gSharedMem\n\
ldr r2, _080249AC @ =0x00016018\n\
adds r0, r2\n\
ldrb r1, [r0]\n\
@@ -11779,7 +11754,7 @@ _0802495A:\n\
_0802499C: .4byte gStringVar4\n\
_080249A0: .4byte gUnknown_08400D9F\n\
_080249A4: .4byte gUnknown_0840165C\n\
-_080249A8: .4byte 0x02000000\n\
+_080249A8: .4byte gSharedMem\n\
_080249AC: .4byte 0x00016018\n\
_080249B0: .4byte gPlayerParty\n\
_080249B4: .4byte gLevelUpStatBoxStats\n\
@@ -11793,37 +11768,37 @@ _080249BC:\n\
.4byte _08024A04\n\
.4byte _08024A10\n\
_080249D4:\n\
- ldr r0, _080249DC @ =0x02017180\n\
+ ldr r0, _080249DC @ =gSharedMem + 0x17180\n\
ldrh r0, [r0]\n\
b _08024A14\n\
.align 2, 0\n\
-_080249DC: .4byte 0x02017180\n\
+_080249DC: .4byte gSharedMem + 0x17180\n\
_080249E0:\n\
- ldr r0, _080249E8 @ =0x02017180\n\
+ ldr r0, _080249E8 @ =gSharedMem + 0x17180\n\
ldrh r0, [r0, 0x8]\n\
b _08024A14\n\
.align 2, 0\n\
-_080249E8: .4byte 0x02017180\n\
+_080249E8: .4byte gSharedMem + 0x17180\n\
_080249EC:\n\
- ldr r0, _080249F4 @ =0x02017180\n\
+ ldr r0, _080249F4 @ =gSharedMem + 0x17180\n\
ldrh r0, [r0, 0x2]\n\
b _08024A14\n\
.align 2, 0\n\
-_080249F4: .4byte 0x02017180\n\
+_080249F4: .4byte gSharedMem + 0x17180\n\
_080249F8:\n\
- ldr r0, _08024A00 @ =0x02017180\n\
+ ldr r0, _08024A00 @ =gSharedMem + 0x17180\n\
ldrh r0, [r0, 0xA]\n\
b _08024A14\n\
.align 2, 0\n\
-_08024A00: .4byte 0x02017180\n\
+_08024A00: .4byte gSharedMem + 0x17180\n\
_08024A04:\n\
- ldr r0, _08024A0C @ =0x02017180\n\
+ ldr r0, _08024A0C @ =gSharedMem + 0x17180\n\
ldrh r0, [r0, 0x4]\n\
b _08024A14\n\
.align 2, 0\n\
-_08024A0C: .4byte 0x02017180\n\
+_08024A0C: .4byte gSharedMem + 0x17180\n\
_08024A10:\n\
- ldr r0, _08024A54 @ =0x02017180\n\
+ ldr r0, _08024A54 @ =gSharedMem + 0x17180\n\
ldrh r0, [r0, 0x6]\n\
_08024A14:\n\
subs r0, r1, r0\n\
@@ -11860,7 +11835,7 @@ _08024A2C:\n\
ldr r1, _08024A58 @ =gUnknown_08400DAC\n\
b _08024A5E\n\
.align 2, 0\n\
-_08024A54: .4byte 0x02017180\n\
+_08024A54: .4byte gSharedMem + 0x17180\n\
_08024A58: .4byte gUnknown_08400DAC\n\
_08024A5C:\n\
ldr r1, _08024AA4 @ =gUnknown_08400DAA\n\
@@ -11927,14 +11902,14 @@ _08024AC4:\n\
bl InitWindow\n\
adds r0, r4, 0\n\
bl sub_8002F44\n\
- ldr r1, _08024AEC @ =0x02000000\n\
+ ldr r1, _08024AEC @ =gSharedMem\n\
ldr r2, _08024AF0 @ =0x0001609c\n\
adds r1, r2\n\
b _08024BEA\n\
.align 2, 0\n\
_08024AE4: .4byte gUnknown_03004210\n\
_08024AE8: .4byte gStringVar4\n\
-_08024AEC: .4byte 0x02000000\n\
+_08024AEC: .4byte gSharedMem\n\
_08024AF0: .4byte 0x0001609c\n\
_08024AF4:\n\
ldr r0, _08024B94 @ =gMain\n\
@@ -12048,7 +12023,7 @@ _08024BC0:\n\
bl InitWindow\n\
adds r0, r4, 0\n\
bl sub_8002F44\n\
- ldr r1, _08024BFC @ =0x02000000\n\
+ ldr r1, _08024BFC @ =gSharedMem\n\
ldr r0, _08024C00 @ =0x0001609c\n\
adds r1, r0\n\
_08024BEA:\n\
@@ -12059,7 +12034,7 @@ _08024BEA:\n\
.align 2, 0\n\
_08024BF4: .4byte gUnknown_03004210\n\
_08024BF8: .4byte gStringVar4\n\
-_08024BFC: .4byte 0x02000000\n\
+_08024BFC: .4byte gSharedMem\n\
_08024C00: .4byte 0x0001609c\n\
_08024C04:\n\
ldr r0, _08024C2C @ =gMain\n\
@@ -12116,7 +12091,7 @@ static void atk6E_set_atk_to_player0(void)
static void atk6F_set_visible(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
EmitSpriteInvisibility(0, 0);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -12124,7 +12099,7 @@ static void atk6F_set_visible(void)
static void atk70_record_ability(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
RecordAbilityBattle(gActiveBank, gLastUsedAbility);
gBattlescriptCurrInstr += 1; //buggy, should be += 2, one byte for command, one byte for argument...
}
@@ -12147,7 +12122,7 @@ static void atk71_buffer_move_to_learn(void)
static void atk72_jump_if_can_run_frombattle(void)
{
if (sub_8014AB8(gBank1))
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
@@ -12158,7 +12133,7 @@ static void atk73_hp_thresholds(void)
s32 result;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
opposing_bank = gActiveBank ^ 1;
result = gBattleMons[opposing_bank].hp * 100 / gBattleMons[opposing_bank].maxHP;
@@ -12185,9 +12160,9 @@ static void atk74_hp_thresholds2(void)
s32 result;
if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE))
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
opposing_bank = gActiveBank ^ 1;
- hp_switchout = ewram[2 * GetBankSide(opposing_bank) + 0x160bc]; //BATTLE_STRUCT->HP_OnSwitchout[GetBankSide(opposing_bank)];
+ hp_switchout = ewram160BCarr(GetBankSide(opposing_bank)); //BATTLE_STRUCT->HP_OnSwitchout[GetBankSide(opposing_bank)];
result = (hp_switchout - gBattleMons[opposing_bank].hp) * 100 / hp_switchout;
if (gBattleMons[opposing_bank].hp >= hp_switchout)
@@ -12212,8 +12187,8 @@ static void atk75_8026A58(void)
static void atk76_various(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
- switch (BSScriptRead8(gBattlescriptCurrInstr + 2))
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
+ switch (T2_READ_8(gBattlescriptCurrInstr + 2))
{
case 0:
CancelMultiTurnMoves(gActiveBank);
@@ -12261,7 +12236,7 @@ static void atk76_various(void)
else
gActiveBank = 2;
- choiced_move = (u16*)(&ewram[gActiveBank * 2 + 0x160e8]);
+ choiced_move = CHOICED_MOVE(gActiveBank);
for (i = 0; i < 4; i++)
{
if (gBattleMons[gActiveBank].moves[i] == *choiced_move)
@@ -12360,7 +12335,7 @@ static void atk79_setatkhptozero(void)
static void atk7A_jumpwhiletargetvalid(void) //used by intimidate to loop through all targets
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
{
@@ -12383,9 +12358,9 @@ static void atk7A_jumpwhiletargetvalid(void) //used by intimidate to loop throug
static void atk7B_healhalfHP_if_possible(void)
{
- u8* fail_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* fail_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
- if (BSScriptRead8(gBattlescriptCurrInstr + 5) == 1)
+ if (T2_READ_8(gBattlescriptCurrInstr + 5) == 1)
gBankTarget = gBankAttacker;
gBattleMoveDamage = gBattleMons[gBankTarget].maxHP / 2;
@@ -12401,11 +12376,11 @@ static void atk7B_healhalfHP_if_possible(void)
static void atk7C_8025508(void)
{
- u16 r7 = ewram[gBankAttacker * 2 + 0x160ac] | (ewram[gBankAttacker * 2 + 0x160ad] << 8);
- u16 r6 = ewram[gBankAttacker * 4 + 0x16100] | (ewram[gBankAttacker * 4 + 0x16101] << 8);
- u16 r5 = ewram[gBankAttacker * 4 + 0x16102] | (ewram[gBankAttacker * 4 + 0x16103] << 8);
+ u16 r7 = ewram160ACarr2(0, gBankAttacker) | (ewram160ACarr2(1, gBankAttacker) << 8);
+ u16 r6 = ewram16100arr2(0, gBankAttacker) | (ewram16100arr2(1, gBankAttacker) << 8);
+ u16 r5 = ewram16100arr2(2, gBankAttacker) | (ewram16100arr2(3, gBankAttacker) << 8);
- if (r7 !=0 && r7 != 0xFFFF)
+ if (r7 != 0 && r7 != 0xFFFF)
{
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
gCurrentMove = r7;
@@ -12502,7 +12477,7 @@ static void atk7F_setseeded(void)
static void atk80_manipulatedamage(void)
{
- switch (BSScriptRead8(gBattlescriptCurrInstr + 1))
+ switch (T2_READ_8(gBattlescriptCurrInstr + 1))
{
case 0:
gBattleMoveDamage *= -1;
@@ -12524,7 +12499,7 @@ static void atk80_manipulatedamage(void)
static void atk81_setrest(void)
{
- u8* fail_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* fail_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
gActiveBank = gBankTarget = gBankAttacker;
gBattleMoveDamage = gBattleMons[gBankTarget].maxHP * (-1);
if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP)
@@ -12545,7 +12520,7 @@ static void atk81_setrest(void)
static void atk82_jumpifnotfirstturn(void)
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
if (gDisableStructs[gBankAttacker].isFirstTurn)
gBattlescriptCurrInstr += 5;
@@ -12582,7 +12557,7 @@ bool8 UproarWakeUpCheck(u8 bank)
static void atk84_jump_if_cant_sleep(void)
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
if (UproarWakeUpCheck(gBankTarget))
gBattlescriptCurrInstr = jump_loc;
else if (gBattleMons[gBankTarget].ability == ABILITY_INSOMNIA || gBattleMons[gBankTarget].ability == ABILITY_VITAL_SPIRIT)
@@ -12621,7 +12596,7 @@ static void atk85_stockpile(void)
static void atk86_stockpiletobasedamage(void)
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
if (gDisableStructs[gBankAttacker].stockpileCounter == 0)
{
gBattlescriptCurrInstr = jump_loc;
@@ -12646,7 +12621,7 @@ static void atk86_stockpiletobasedamage(void)
static void atk87_stockpiletohpheal(void)
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 1);
if (gDisableStructs[gBankAttacker].stockpileCounter == 0)
{
gBattlescriptCurrInstr = jump_loc;
@@ -12979,7 +12954,7 @@ _08025F10: .4byte gBattlescriptCurrInstr\n\
_08025F14:\n\
mov r0, r8\n\
bl b_movescr_stack_push\n\
- ldr r0, _08025F40 @ =0x02000000\n\
+ ldr r0, _08025F40 @ =gSharedMem\n\
ldr r6, _08025F44 @ =gActiveBank\n\
ldrb r1, [r6]\n\
ldr r2, _08025F48 @ =0x00016003\n\
@@ -12999,7 +12974,7 @@ _08025F14:\n\
strb r1, [r0]\n\
b _08025F74\n\
.align 2, 0\n\
-_08025F40: .4byte 0x02000000\n\
+_08025F40: .4byte gSharedMem\n\
_08025F44: .4byte gActiveBank\n\
_08025F48: .4byte 0x00016003\n\
_08025F4C: .4byte gBattlescriptCurrInstr\n\
@@ -13074,7 +13049,7 @@ _08025FDC: .4byte gBattlescriptCurrInstr\n\
_08025FE0:\n\
mov r0, r8\n\
bl b_movescr_stack_push\n\
- ldr r0, _08026028 @ =0x02000000\n\
+ ldr r0, _08026028 @ =gSharedMem\n\
ldr r2, _0802602C @ =gActiveBank\n\
ldrb r1, [r2]\n\
ldr r3, _08026030 @ =0x00016003\n\
@@ -13106,7 +13081,7 @@ _08025FE0:\n\
strb r1, [r0]\n\
b _08025F74\n\
.align 2, 0\n\
-_08026028: .4byte 0x02000000\n\
+_08026028: .4byte gSharedMem\n\
_0802602C: .4byte gActiveBank\n\
_08026030: .4byte 0x00016003\n\
_08026034: .4byte gBattlescriptCurrInstr\n\
@@ -13131,7 +13106,7 @@ _08026040:\n\
bne _08025F74\n\
mov r0, r8\n\
bl b_movescr_stack_push\n\
- ldr r0, _08026094 @ =0x02000000\n\
+ ldr r0, _08026094 @ =gSharedMem\n\
ldr r3, _08026090 @ =gActiveBank\n\
ldrb r1, [r3]\n\
ldr r6, _08026098 @ =0x00016003\n\
@@ -13153,7 +13128,7 @@ _08026040:\n\
b _08025F74\n\
.align 2, 0\n\
_08026090: .4byte gActiveBank\n\
-_08026094: .4byte 0x02000000\n\
+_08026094: .4byte gSharedMem\n\
_08026098: .4byte 0x00016003\n\
_0802609C: .4byte gBattlescriptCurrInstr\n\
_080260A0: .4byte BattleScript_AbilityNoSpecificStatLoss\n\
@@ -13179,7 +13154,7 @@ _080260A8:\n\
_080260CA:\n\
mov r0, r8\n\
bl b_movescr_stack_push\n\
- ldr r0, _08026100 @ =0x02000000\n\
+ ldr r0, _08026100 @ =gSharedMem\n\
ldr r3, _080260FC @ =gActiveBank\n\
ldrb r1, [r3]\n\
ldr r6, _08026104 @ =0x00016003\n\
@@ -13201,7 +13176,7 @@ _080260CA:\n\
b _08025F74\n\
.align 2, 0\n\
_080260FC: .4byte gActiveBank\n\
-_08026100: .4byte 0x02000000\n\
+_08026100: .4byte gSharedMem\n\
_08026104: .4byte 0x00016003\n\
_08026108: .4byte gBattlescriptCurrInstr\n\
_0802610C: .4byte BattleScript_AbilityNoSpecificStatLoss\n\
@@ -13433,8 +13408,8 @@ _080262C0: .4byte gBattleMoveFlags\n\
static void atk89_statbuffchange(void)
{
- u8* jump_loc = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
- if (ChangeStatBuffs(BATTLE_STRUCT->statChanger & 0xF0, BATTLE_STRUCT->statChanger & 0xF, BSScriptRead8(gBattlescriptCurrInstr + 1), jump_loc) == 0)
+ u8* jump_loc = T1_READ_PTR(gBattlescriptCurrInstr + 2);
+ if (ChangeStatBuffs(BATTLE_STRUCT->statChanger & 0xF0, BATTLE_STRUCT->statChanger & 0xF, T2_READ_8(gBattlescriptCurrInstr + 1), jump_loc) == 0)
gBattlescriptCurrInstr += 6;
}
@@ -13469,8 +13444,8 @@ static void atk8C_confuseifrepeatingattackends(void)
static void atk8D_setmultihit_counter(void)
{
- if (BSScriptRead8(gBattlescriptCurrInstr + 1))
- gMultiHitCounter = BSScriptRead8(gBattlescriptCurrInstr + 1);
+ if (T2_READ_8(gBattlescriptCurrInstr + 1))
+ gMultiHitCounter = T2_READ_8(gBattlescriptCurrInstr + 1);
else
{
gMultiHitCounter = Random() & 3;
@@ -13484,12 +13459,12 @@ static void atk8D_setmultihit_counter(void)
static void atk8E_prepare_multihit(void)
{
- ewram[0x160e0] = 0xFD;
- ewram[0x160e1] = 1;
- ewram[0x160e2] = 1;
- ewram[0x160e3] = 1;
- ewram[0x160e4] = 0;
- ewram[0x160e5] = 0xFF;
+ ewram160E0(0) = 0xFD;
+ ewram160E0(1) = 1;
+ ewram160E0(2) = 1;
+ ewram160E0(3) = 1;
+ ewram160E0(4) = 0;
+ ewram160E0(5) = 0xFF;
gBattlescriptCurrInstr++;
}
@@ -13497,17 +13472,17 @@ static bool8 sub_80264C0(void)
{
if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level)
{
- ewram[gBankTarget + 0x16064] = gBattlePartyID[gBankTarget];
+ ewram16064arr(gBankTarget) = gBattlePartyID[gBankTarget];
}
else
{
u16 random = Random() & 0xFF;
if ((u32)((random * (gBattleMons[gBankAttacker].level + gBattleMons[gBankTarget].level) >> 8) + 1) <= (gBattleMons[gBankTarget].level / 4))
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
return 0;
}
- ewram[gBankTarget + 0x16064] = gBattlePartyID[gBankTarget];
+ ewram16064arr(gBankTarget) = gBattlePartyID[gBankTarget];
}
gBattlescriptCurrInstr = gUnknown_081D90FC;
return 1;
@@ -13555,7 +13530,7 @@ static void atk8F_forcerandomswitch(void)
if ((valid < 2 && (gBattleTypeFlags & (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_MULTI)) != BATTLE_TYPE_DOUBLE)
|| (valid < 3 && (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)))
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else if (sub_80264C0())
{
@@ -13588,7 +13563,7 @@ static void atk8F_forcerandomswitch(void)
} while (i == gBattlePartyID[gBankTarget] || !MON_CAN_BATTLE(&party[i]));
}
}
- ewram[gBankTarget + 0x16068] = i;
+ ewram16068arr(gBankTarget) = i;
if (!IsLinkDoubleBattle())
sub_8012258(gBankTarget);
sub_8094B6C(gBankTarget, i, 0);
@@ -13631,7 +13606,7 @@ static void atk90_conversion_type_change(void)
if (checked_move == valid_moves)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -13750,7 +13725,7 @@ MOVESTATUS_MISSED_LABEL:
gBattleCommunication[MULTISTRING_CHOOSER] = 1;
else
gBattleCommunication[MULTISTRING_CHOOSER] = 0;
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
#else
@@ -14205,7 +14180,7 @@ static void atk97_try_infatuation(void)
|| gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE || gBattleMons[gBankTarget].status2 & STATUS2_INFATUATION || GetGenderFromSpeciesAndPersonality(atk_species, atk_pid) == 0xFF
|| GetGenderFromSpeciesAndPersonality(def_species, def_pid) == 0xFF)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -14220,9 +14195,9 @@ static void atk98_status_icon_update(void)
if (gBattleExecBuffer)
return;
- if (BSScriptRead8(gBattlescriptCurrInstr + 1) != 4)
+ if (T2_READ_8(gBattlescriptCurrInstr + 1) != 4)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2);
MarkBufferBankForExecution(gActiveBank);
gBattlescriptCurrInstr += 2;
@@ -14362,7 +14337,7 @@ static void atk9D_copyattack(void)
if (IsMoveUncopyable(gLastUsedMove[gBankTarget]) || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED
|| gLastUsedMove[gBankTarget] == 0 || gLastUsedMove[gBankTarget] == 0xFFFF)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -14390,7 +14365,7 @@ static void atk9D_copyattack(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14527,7 +14502,7 @@ static void atkA1_counterdamagecalculator(void)
else
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14547,7 +14522,7 @@ static void atkA2_mirrorcoatdamagecalculator(void) //a copy of atkA1 with the ph
else
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14574,7 +14549,7 @@ static void atkA3_disablelastusedattack(void)
}
else
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14598,7 +14573,7 @@ static void atkA4_setencore(void)
}
else
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14619,14 +14594,14 @@ static void atkA5_painsplitdmgcalc(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
#ifdef NONMATCHING
static void atkA6_settypetorandomresistance(void)
{
if (gMoveHitWith[gBankAttacker] == 0 || gMoveHitWith[gBankAttacker] == 0xFFFF || (IsTwoTurnsMove(gMoveHitWith[gBankAttacker]) && !gProtectStructs[gBankAttacker].physicalDmg && !gProtectStructs[gBankAttacker].specialDmg))
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
int type = 0, rands = 0;
@@ -14668,7 +14643,7 @@ static void atkA6_settypetorandomresistance(void)
type += 3, rands += 3;
} while (rands < 336);
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -14957,7 +14932,7 @@ static void atkA8_copymovepermanently(void)
break;
}
if (i != 4) //sketch fail
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else //sketch worked
{
struct move_pp moves_data;
@@ -14981,7 +14956,7 @@ static void atkA8_copymovepermanently(void)
}
}
else //sketch fail
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static bool8 IsTwoTurnsMove(u16 move)
@@ -15042,7 +15017,7 @@ static void atkA9_sleeptalk_choose_move(void)
gCurrMovePos = random_pos;
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
gBankTarget = GetMoveTarget(gRandomMove, 0);
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -15122,7 +15097,7 @@ static void atkAD_spite_ppreduce(void)
return;
}
}
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkAE_heal_party_status(void)
@@ -15206,7 +15181,7 @@ static void atkAF_cursetarget(void)
{
if (gBattleMons[gBankTarget].status2 & STATUS2_CURSED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -15224,7 +15199,7 @@ static void atkB0_set_spikes(void)
if (gSideTimer[side].spikesAmount == 3)
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -15258,7 +15233,7 @@ static void atkB2_setperishsong(void)
sub_80153D0(gBankAttacker);
if (not_affected_pokes == gNoOfAllBanks)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
@@ -15296,8 +15271,8 @@ static void atkB3_rolloutdamagecalculation(void)
static void atkB4_jumpifconfusedandstatmaxed(void)
{
- if (gBattleMons[gBankTarget].status2 & STATUS2_CONFUSION && gBattleMons[gBankTarget].statStages[BSScriptRead8(gBattlescriptCurrInstr + 1)] == 0xC)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ if (gBattleMons[gBankTarget].status2 & STATUS2_CONFUSION && gBattleMons[gBankTarget].statStages[T2_READ_8(gBattlescriptCurrInstr + 1)] == 0xC)
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
}
@@ -15449,7 +15424,7 @@ static void atkBA_jumpifnopursuitswitchdmg(void)
gBankTarget = GetBankByPlayerAI(2);
}
- if (gActionForBanks[gBankTarget] == 0 && gBankAttacker == ewram[gBankTarget + 0x16010] && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE))
+ if (gActionForBanks[gBankTarget] == 0 && gBankAttacker == ewram16010arr(gBankTarget) && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE))
&& gBattleMons[gBankAttacker].hp && !gDisableStructs[gBankTarget].truantCounter && gChosenMovesByBanks[gBankTarget] == MOVE_PURSUIT)
{
int i;
@@ -15464,7 +15439,7 @@ static void atkBA_jumpifnopursuitswitchdmg(void)
gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED);
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkBB_setsunny(void)
@@ -15499,7 +15474,7 @@ static void atkBC_maxattackhalvehp(void) //belly drum
}
else
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -15518,11 +15493,11 @@ static void atkBE_breakfree(void) //rapid spin
if (gBattleMons[gBankAttacker].status2 & STATUS2_WRAPPED)
{
gBattleMons[gBankAttacker].status2 &= ~(STATUS2_WRAPPED);
- gBankTarget = ewram[gBankAttacker + 0x16020];
+ gBankTarget = ewram16020arr(gBankAttacker);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 2;
- gBattleTextBuff1[2] = ewram[gBankAttacker * 2 + 0x16004];
- gBattleTextBuff1[3] = ewram[gBankAttacker * 2 + 0x16005];
+ gBattleTextBuff1[2] = ewram16004arr(0, gBankAttacker);
+ gBattleTextBuff1[3] = ewram16004arr(1, gBankAttacker);
gBattleTextBuff1[4] = 0xFF;
b_movescr_stack_push_cursor();
gBattlescriptCurrInstr = BattleScript_WrapFree;
@@ -15569,7 +15544,7 @@ static void atkC0_recoverbasedonsunlight(void)
}
else
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
@@ -15681,7 +15656,7 @@ push {r4-r7,lr}\n\
bl __divsi3\n\
adds r0, 0x1E\n\
strh r0, [r5]\n\
- ldr r5, _080298A0 @ =0x02000000\n\
+ ldr r5, _080298A0 @ =gSharedMem\n\
lsls r0, r4, 4\n\
subs r0, r4\n\
movs r1, 0x3F\n\
@@ -15716,7 +15691,7 @@ _08029876:\n\
_08029894: .4byte gBattleMons\n\
_08029898: .4byte gBankAttacker\n\
_0802989C: .4byte gDynamicBasePower\n\
-_080298A0: .4byte 0x02000000\n\
+_080298A0: .4byte gSharedMem\n\
_080298A4: .4byte 0x0001601c\n\
_080298A8: .4byte gBattlescriptCurrInstr\n\
.syntax divided");
@@ -15738,7 +15713,7 @@ static void atkC3_setfutureattack(void)
{
if (gWishFutureKnock.futureSightCounter[gBankTarget] != 0)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -15771,7 +15746,7 @@ static void atkC4_beat_up(void)
party = gEnemyParty;
if (gBattleMons[gBankTarget].hp == 0)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
while (gBattleCommunication[0] < 6)
@@ -15801,9 +15776,9 @@ static void atkC4_beat_up(void)
gBattleCommunication[0]++;
}
else if (gBattleCommunication[0] != 0)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 5);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 5);
}
}
#else
@@ -16125,7 +16100,7 @@ static void atkC9_jumpifattackandspecialattackcannotfall(void) //memento
if (gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] == 0
&& gBattleMons[gBankTarget].statStages[STAT_STAGE_SPATK] == 0
&& gBattleCommunication[6] != 1)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gActiveBank = gBankAttacker;
@@ -16171,13 +16146,13 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) //refresh
MarkBufferBankForExecution(gActiveBank);
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkCE_settorment(void)
{
if (gBattleMons[gBankTarget].status2 & STATUS2_TORMENT)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gBattleMons[gBankTarget].status2 |= STATUS2_TORMENT;
@@ -16190,7 +16165,7 @@ static void atkCF_jumpifnodamage(void)
if (gProtectStructs[gBankAttacker].physicalDmg || gProtectStructs[gBankAttacker].specialDmg)
gBattlescriptCurrInstr += 5;
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkD0_settaunt(void)
@@ -16202,7 +16177,7 @@ static void atkD0_settaunt(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkD1_set_helpinghand(void)
@@ -16215,7 +16190,7 @@ static void atkD1_set_helpinghand(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
#ifdef NONMATCHING
@@ -16227,7 +16202,7 @@ static void atkD2_swap_items(void)
if (gBattleTypeFlags)
}
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
#else
@@ -16397,7 +16372,7 @@ _0802A364: .4byte BattleScript_NoItemSteal\n\
_0802A368: .4byte gLastUsedAbility\n\
_0802A36C:\n\
lsls r0, r4, 1\n\
- ldr r4, _0802A458 @ =0x020160f0\n\
+ ldr r4, _0802A458 @ =gSharedMem + 0x160F0\n\
adds r6, r0, r4\n\
ldrh r5, [r5, 0x2E]\n\
mov r10, r5\n\
@@ -16511,7 +16486,7 @@ _0802A36C:\n\
movs r0, 0x2\n\
b _0802A498\n\
.align 2, 0\n\
-_0802A458: .4byte 0x020160f0\n\
+_0802A458: .4byte gSharedMem + 0x160F0\n\
_0802A45C: .4byte gBankAttacker\n\
_0802A460: .4byte gActiveBank\n\
_0802A464: .4byte 0xfffe9f10\n\
@@ -16560,12 +16535,12 @@ static void atkD3_copy_ability(void) //role play
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkD4_wish_effect(void)
{
- switch (BSScriptRead8(gBattlescriptCurrInstr + 1))
+ switch (T2_READ_8(gBattlescriptCurrInstr + 1))
{
case 0: //use wish
if (gWishFutureKnock.wishCounter[gBankAttacker] == 0)
@@ -16575,7 +16550,7 @@ static void atkD4_wish_effect(void)
gBattlescriptCurrInstr += 6;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
break;
case 1: //heal effect
gBattleTextBuff1[0] = 0xFD;
@@ -16588,7 +16563,7 @@ static void atkD4_wish_effect(void)
gBattleMoveDamage = 1;
gBattleMoveDamage *= -1;
if (gBattleMons[gBankTarget].hp == gBattleMons[gBankTarget].maxHP)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
break;
@@ -16598,7 +16573,7 @@ static void atkD4_wish_effect(void)
static void atkD5_setroots(void) //ingrain
{
if (gStatuses3[gBankAttacker] & STATUS3_ROOTED)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gStatuses3[gBankAttacker] |= STATUS3_ROOTED;
@@ -16617,7 +16592,7 @@ static void atkD6_doubledamagedealtifdamaged(void)
static void atkD7_setyawn(void)
{
if (gStatuses3[gBankTarget] & STATUS3_YAWN || (u8) gBattleMons[gBankTarget].status1)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gStatuses3[gBankTarget] |= 0x1000;
@@ -16629,7 +16604,7 @@ static void atkD8_setdamagetohealthdifference(void)
{
if (gBattleMons[gBankTarget].hp <= gBattleMons[gBankAttacker].hp)
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -16655,7 +16630,7 @@ static void atkDA_abilityswap(void)
if ((gBattleMons[gBankAttacker].ability == 0 && gBattleMons[gBankTarget].ability == 0)
|| gBattleMons[gBankAttacker].ability == ABILITY_WONDER_GUARD || gBattleMons[gBankTarget].ability == ABILITY_WONDER_GUARD
|| gBattleMoveFlags & MOVESTATUS_NOEFFECT)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
u8 atk_ability = gBattleMons[gBankAttacker].ability;
@@ -16670,7 +16645,7 @@ static void atkDB_imprisoneffect(void)
u8 r8 = 0;
if ((gStatuses3[gBankAttacker] & STATUS3_IMPRISIONED))
{
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
else
{
@@ -16701,14 +16676,14 @@ static void atkDB_imprisoneffect(void)
}
}
if (bank == gNoOfAllBanks)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
}
static void atkDC_setgrudge(void)
{
if (gStatuses3[gBankAttacker] & STATUS3_GRUDGE)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gStatuses3[gBankAttacker] |= STATUS3_GRUDGE;
@@ -16782,7 +16757,7 @@ static void atkDE_asistattackselect(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
#else
@@ -16845,7 +16820,7 @@ _0802AAAE:\n\
mov r9, r6\n\
mov r1, r10\n\
lsls r0, r1, 1\n\
- ldr r1, _0802ABB0 @ =0x02016024\n\
+ ldr r1, _0802ABB0 @ =gSharedMem + 0x16024\n\
adds r6, r0, r1\n\
_0802AAF8:\n\
movs r7, 0\n\
@@ -16916,7 +16891,7 @@ _0802AB54:\n\
muls r0, r1\n\
asrs r0, 8\n\
lsls r0, 1\n\
- ldr r1, _0802ABB0 @ =0x02016024\n\
+ ldr r1, _0802ABB0 @ =gSharedMem + 0x16024\n\
adds r0, r1\n\
ldrh r0, [r0]\n\
strh r0, [r4]\n\
@@ -16936,7 +16911,7 @@ _0802ABA0: .4byte gPlayerParty\n\
_0802ABA4: .4byte gEnemyParty\n\
_0802ABA8: .4byte gBattlePartyID\n\
_0802ABAC: .4byte 0x0000ffff\n\
-_0802ABB0: .4byte 0x02016024\n\
+_0802ABB0: .4byte gSharedMem + 0x16024\n\
_0802ABB4: .4byte sUnknown_081FACFE\n\
_0802ABB8: .4byte gHitMarker\n\
_0802ABBC: .4byte 0xfffffbff\n\
@@ -16978,7 +16953,7 @@ static void atkDF_setmagiccoat(void)
gBankTarget = gBankAttacker;
gSpecialStatuses[gBankAttacker].flag20 = 1;
if (gCurrentMoveTurn == gNoOfAllBanks - 1) //last turn
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gProtectStructs[gBankAttacker].bounceMove = 1;
@@ -16990,7 +16965,7 @@ static void atkE0_setstealstatchange(void)
{
gSpecialStatuses[gBankAttacker].flag20 = 1;
if (gCurrentMoveTurn == gNoOfAllBanks - 1) //last turn
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
gProtectStructs[gBankAttacker].stealMove = 1;
@@ -17002,7 +16977,7 @@ static void atkE1_intimidate_string_loader(void)
{
u8 side;
- BATTLE_STRUCT->scriptingActive = ewram[0x160dd];
+ BATTLE_STRUCT->scriptingActive = ewram160DD;
side = GetBankSide(BATTLE_STRUCT->scriptingActive);
gBattleTextBuff1[0] = 0xFD;
gBattleTextBuff1[1] = 9;
@@ -17018,19 +16993,19 @@ static void atkE1_intimidate_string_loader(void)
}
if (gBankTarget >= gNoOfAllBanks)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
gBattlescriptCurrInstr += 5;
}
static void atkE2_switchout_abilities(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
switch (gBattleMons[gActiveBank].ability)
{
case ABILITY_NATURAL_CURE:
gBattleMons[gActiveBank].status1 = 0;
- EmitSetAttributes(0, REQUEST_STATUS_BATTLE, gBitTable[ewram[gActiveBank + 0x16064]], 4, &gBattleMons[gActiveBank].status1);
+ EmitSetAttributes(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBank)], 4, &gBattleMons[gActiveBank].status1);
MarkBufferBankForExecution(gActiveBank);
break;
}
@@ -17039,9 +17014,9 @@ static void atkE2_switchout_abilities(void)
static void atkE3_jumpiffainted(void)
{
- gActiveBank = GetBattleBank(BSScriptRead8(gBattlescriptCurrInstr + 1));
+ gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1));
if (gBattleMons[gActiveBank].hp == 0)
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 2);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 2);
else
gBattlescriptCurrInstr += 6;
}
@@ -17155,7 +17130,7 @@ static void atkE8_settypebasedhalvers(void) //water/mud sport
if (worked)
gBattlescriptCurrInstr += 5;
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkE9_setweatherballtype(void)
@@ -17193,7 +17168,7 @@ static void atkEA_recycleitem(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkEB_settypetoterrain(void)
@@ -17209,7 +17184,7 @@ static void atkEB_settypetoterrain(void)
gBattlescriptCurrInstr += 5;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkEC_pursuit_sth(void)
@@ -17225,7 +17200,7 @@ static void atkEC_pursuit_sth(void)
gBankAttacker = gActiveBank;
}
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
static void atkED_802B4B4(void)
@@ -17401,7 +17376,7 @@ static void atkF0_copy_caught_poke(void)
static void atkF1_setpoke_as_caught(void)
{
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 1))
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
else
{
GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBankTarget].species), 3);
@@ -17605,14 +17580,14 @@ static void atkF3_nickname_caught_poke(void)
if (gMain.callback2 == sub_800F808 && !gPaletteFade.active )
{
SetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, BATTLE_STRUCT->caughtNick);
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
}
break;
case 4:
if (CalculatePlayerPartyCount() == 6)
gBattlescriptCurrInstr += 5;
else
- gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
+ gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1);
break;
}
}
diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c
index ad96510cf..fe1d0b159 100644
--- a/src/battle/battle_7.c
+++ b/src/battle/battle_7.c
@@ -18,16 +18,7 @@
#include "task.h"
#include "text.h"
#include "gba/m4a_internal.h"
-
-struct Struct2019348
-{
- u8 filler0[2];
- u16 unk2;
- u8 filler4[4];
- u32 unk8;
- u32 unkC;
- u32 unk10;
-};
+#include "ewram.h"
extern u8 gBattleBufferA[][0x200];
extern u8 gActiveBank;
@@ -71,8 +62,6 @@ extern const struct CompressedSpriteSheet gUnknown_0820A4B4[];
extern const struct SpritePalette gUnknown_0820A4D4[];
extern const u8 gUnknown_08D09C48[];
-#define ewram19348 (*(struct Struct2019348 *)(ewram + 0x19348))
-
extern void c3_0802FDF4(u8);
extern void sub_80440EC();
extern void sub_804777C();
@@ -295,7 +284,7 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
&gMonFrontPicTable[species],
gMonFrontPicCoords[species].coords,
gMonFrontPicCoords[species].y_offset,
- 0x02000000,
+ eVoidSharedArr2,
gUnknown_081FAF4C[var],
species,
r7);
@@ -304,14 +293,14 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b)
lzPaletteData = GetMonSpritePal(pkmn);
else
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
- LZDecompressWram(lzPaletteData, ewram);
- LoadPalette(ewram, paletteOffset, 0x20);
- LoadPalette(ewram, 0x80 + b * 16, 0x20);
+ LZDecompressWram(lzPaletteData, gSharedMem);
+ LoadPalette(gSharedMem, paletteOffset, 0x20);
+ LoadPalette(gSharedMem, 0x80 + b * 16, 0x20);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
- LZDecompressWram(lzPaletteData, ewram + 0x16400);
- LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
+ LZDecompressWram(lzPaletteData, ewram16400);
+ LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
if (ewram17800[b].transformedSpecies != 0)
{
@@ -347,7 +336,7 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
gMonBackPicCoords[species].y_offset,
- 0x02000000,
+ eVoidSharedArr2,
gUnknown_081FAF4C[var],
species,
r7);
@@ -356,14 +345,14 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b)
lzPaletteData = GetMonSpritePal(pkmn);
else
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
- LZDecompressWram(lzPaletteData, ewram);
- LoadPalette(ewram, paletteOffset, 0x20);
- LoadPalette(ewram, 0x80 + b * 16, 0x20);
+ LZDecompressWram(lzPaletteData, gSharedMem);
+ LoadPalette(gSharedMem, paletteOffset, 0x20);
+ LoadPalette(gSharedMem, 0x80 + b * 16, 0x20);
if (species == SPECIES_CASTFORM)
{
paletteOffset = 0x100 + b * 16;
- LZDecompressWram(lzPaletteData, ewram + 0x16400);
- LoadPalette(ewram + 0x16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
+ LZDecompressWram(lzPaletteData, ewram16400);
+ LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20);
}
if (ewram17800[b].transformedSpecies != 0)
{
@@ -390,7 +379,7 @@ void sub_8031A6C(u16 a, u8 b)
&gTrainerFrontPicTable[a],
gTrainerFrontPicCoords[a].coords,
gTrainerFrontPicCoords[a].y_offset,
- (void *)0x02000000,
+ eVoidSharedArr,
gUnknown_081FAF4C[status],
0);
spriteSheet.data = gUnknown_081FAF4C[status];
@@ -409,7 +398,7 @@ void LoadPlayerTrainerBankSprite(u16 a, u8 b)
&gTrainerBackPicTable[a],
gTrainerBackPicCoords[a].coords,
gTrainerBackPicCoords[a].y_offset,
- (void *)0x02000000,
+ eVoidSharedArr,
gUnknown_081FAF4C[status],
0);
LoadCompressedPalette(gTrainerBackPicPaletteTable[a].data, 0x100 + b * 16, 32);
@@ -506,7 +495,7 @@ bool8 sub_8031C30(u8 a)
void load_gfxc_health_bar(void)
{
- LZDecompressWram(gUnknown_08D09C48, (void *)0x02000000);
+ LZDecompressWram(gUnknown_08D09C48, eVoidSharedArr);
}
u8 battle_load_something(u8 *pState, u8 *b)
@@ -623,7 +612,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
{
StartSpriteAnim(&gSprites[gObjectBankIDs[a]], ewram17840.unk0);
paletteOffset = 0x100 + a * 16;
- LoadPalette(ewram + 0x16400 + ewram17840.unk0 * 32, paletteOffset, 32);
+ LoadPalette(ewram16400 + ewram17840.unk0 * 32, paletteOffset, 32);
gBattleMonForms[a] = ewram17840.unk0;
if (ewram17800[a].transformedSpecies != 0)
{
@@ -637,7 +626,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
const void *src;
void *dst;
- if (IsContest())
+ if (NotInBattle())
{
r10 = 0;
species = ewram19348.unk2;
@@ -647,7 +636,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
gMonBackPicCoords[species].y_offset,
- 0x02000000,
+ eVoidSharedArr2,
gUnknown_081FAF4C[0],
species,
ewram19348.unk10);
@@ -667,7 +656,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
&gMonBackPicTable[species],
gMonBackPicCoords[species].coords,
gMonBackPicCoords[species].y_offset,
- 0x02000000,
+ eVoidSharedArr2,
gUnknown_081FAF4C[r10],
species,
gPID_perBank[a]);
@@ -680,7 +669,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
&gMonFrontPicTable[species],
gMonFrontPicCoords[species].coords,
gMonFrontPicCoords[species].y_offset,
- 0x02000000,
+ eVoidSharedArr2,
gUnknown_081FAF4C[r10],
species,
gPID_perBank[a]);
@@ -691,18 +680,18 @@ void sub_8031FC4(u8 a, u8 b, bool8 c)
DmaCopy32(3, src, dst, 0x800);
paletteOffset = 0x100 + a * 16;
lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue);
- LZDecompressWram(lzPaletteData, ewram);
- LoadPalette(ewram, paletteOffset, 32);
+ LZDecompressWram(lzPaletteData, gSharedMem);
+ LoadPalette(gSharedMem, paletteOffset, 32);
if (species == SPECIES_CASTFORM)
{
- u16 *paletteSrc = (u16 *)(ewram + 0x16400);
+ u16 *paletteSrc = (u16 *)ewram16400; // TODO: avoid casting?
LZDecompressWram(lzPaletteData, paletteSrc);
LoadPalette(paletteSrc + gBattleMonForms[b] * 16, paletteOffset, 32);
}
BlendPalette(paletteOffset, 16, 6, 0x7FFF);
CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32);
- if (!IsContest())
+ if (!NotInBattle())
{
ewram17800[a].transformedSpecies = species;
gBattleMonForms[a] = gBattleMonForms[b];
@@ -722,11 +711,11 @@ void BattleLoadSubstituteSprite(u8 a, u8 b)
if (b == 0)
{
- if (IsContest())
+ if (NotInBattle())
r4 = 0;
else
r4 = GetBankIdentity(a);
- if (IsContest())
+ if (NotInBattle())
LZDecompressVram(gSubstituteDollTilemap, gUnknown_081FAF4C[r4]);
else if (GetBankSide(a) != 0)
LZDecompressVram(gSubstituteDollGfx, gUnknown_081FAF4C[r4]);
@@ -742,7 +731,7 @@ void BattleLoadSubstituteSprite(u8 a, u8 b)
}
else
{
- if (!IsContest())
+ if (!NotInBattle())
{
if (GetBankSide(a) != 0)
BattleLoadOpponentMonSprite(&gEnemyParty[gBattlePartyID[a]], a);
diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c
index 1869bbe36..cb6c10676 100644
--- a/src/battle/battle_ai.c
+++ b/src/battle/battle_ai.c
@@ -11,6 +11,7 @@
#include "rom_8077ABC.h"
#include "species.h"
#include "util.h"
+#include "ewram.h"
extern u16 gBattleTypeFlags;
extern u16 gBattleWeather;
@@ -267,10 +268,9 @@ const u16 sDiscouragedPowerfulMoveEffects[] =
void BattleAI_HandleItemUseBeforeAISetup(void)
{
s32 i;
- u8 *data = (u8 *)UNK_2016A00_STRUCT;
+ u8 *data;
- for (i = 0; (u32)i < sizeof(struct UnkBattleStruct1); i++)
- data[i] = 0;
+ MEMSET_ALT(UNK_2016A00_STRUCT, 0, sizeof(struct UnkBattleStruct1), i, data);
if ((gBattleTypeFlags & BATTLE_TYPE_TRAINER)
&& gTrainerBattleOpponent != 0x400
@@ -292,21 +292,23 @@ void BattleAI_HandleItemUseBeforeAISetup(void)
void BattleAI_SetupAIData(void)
{
s32 i;
- u8 *data = (u8 *)AI_THINKING_STRUCT;
- u8 r7;
+ u8 limitations;
+ u8 *data;
// clear AI data and set default move score to 100. strange that they didn't use memset here.
- for (i = 0; (u32)i < sizeof(struct AI_ThinkingStruct); i++)
- data[i] = 0;
+ MEMSET_ALT(AI_THINKING_STRUCT, 0, sizeof(struct AI_ThinkingStruct), i, data);
+
for (i = 0; i < MAX_MON_MOVES; i++)
AI_THINKING_STRUCT->score[i] = 100;
- r7 = CheckMoveLimitations(gActiveBank, 0, 0xFF);
+ limitations = CheckMoveLimitations(gActiveBank, 0, 0xFF);
- // probably sets up the moves to consider and ignores non-valid moves such as NO_MOVE or glitch moves.
+ // do not consider moves the AI cannot select
+ // also, roll simulated RNG for moves that have a degree of
+ // randomness.
for (i = 0; i < MAX_MON_MOVES; i++)
{
- if (gBitTable[i] & r7)
+ if (gBitTable[i] & limitations)
AI_THINKING_STRUCT->score[i] = 0;
AI_THINKING_STRUCT->simulatedRNG[i] = 100 - (Random() % 16);
@@ -411,7 +413,7 @@ void BattleAI_DoAIProcessing(void)
break;
case AIState_Processing:
if (AI_THINKING_STRUCT->moveConsidered != MOVE_NONE)
- sBattleAICmdTable[*(u8 *)gAIScriptPtr](); // run AI command.
+ sBattleAICmdTable[*gAIScriptPtr](); // run AI command.
else
{
AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] = 0; // definitely do not consider any move that has 0 PP.
@@ -469,7 +471,7 @@ void RecordItemBattle(u8 a, u8 b)
static void BattleAICmd_if_random_less_than(void)
{
if (Random() % 256 < gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -477,7 +479,7 @@ static void BattleAICmd_if_random_less_than(void)
static void BattleAICmd_if_random_greater_than(void)
{
if (Random() % 256 > gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -485,7 +487,7 @@ static void BattleAICmd_if_random_greater_than(void)
static void BattleAICmd_if_random_equal(void)
{
if (Random() % 256 == gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -493,7 +495,7 @@ static void BattleAICmd_if_random_equal(void)
static void BattleAICmd_if_random_not_equal(void)
{
if (Random() % 256 != gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -518,7 +520,7 @@ static void BattleAICmd_if_hp_less_than(void)
index = gBankTarget;
if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) < gAIScriptPtr[2])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
@@ -533,7 +535,7 @@ static void BattleAICmd_if_hp_more_than(void)
index = gBankTarget;
if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) > gAIScriptPtr[2])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
@@ -548,7 +550,7 @@ static void BattleAICmd_if_hp_equal(void)
index = gBankTarget;
if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) == gAIScriptPtr[2])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
@@ -563,7 +565,7 @@ static void BattleAICmd_if_hp_not_equal(void)
index = gBankTarget;
if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) != gAIScriptPtr[2])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
@@ -578,10 +580,10 @@ static void BattleAICmd_if_status(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gBattleMons[index].status1 & arg) != 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -596,10 +598,10 @@ static void BattleAICmd_if_not_status(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gBattleMons[index].status1 & arg) == 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -614,10 +616,10 @@ static void BattleAICmd_if_status2(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gBattleMons[index].status2 & arg) != 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -632,10 +634,10 @@ static void BattleAICmd_if_not_status2(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gBattleMons[index].status2 & arg) == 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -650,10 +652,10 @@ static void BattleAICmd_if_status3(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gStatuses3[index] & arg) != 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -668,10 +670,10 @@ static void BattleAICmd_if_not_status3(void)
else
index = gBankTarget;
- arg = AIScriptRead32(gAIScriptPtr + 2);
+ arg = T1_READ_32(gAIScriptPtr + 2);
if ((gStatuses3[index] & arg) == 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -687,10 +689,10 @@ static void BattleAICmd_if_status4(void)
index = gBankTarget;
arg1 = GetBankIdentity(index) & 1;
- arg2 = AIScriptRead32(gAIScriptPtr + 2);
+ arg2 = T1_READ_32(gAIScriptPtr + 2);
if ((gSideAffecting[arg1] & arg2) != 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -706,10 +708,10 @@ static void BattleAICmd_if_not_status4(void)
index = gBankTarget;
arg1 = GetBankIdentity(index) & 1;
- arg2 = AIScriptRead32(gAIScriptPtr + 2);
+ arg2 = T1_READ_32(gAIScriptPtr + 2);
if ((gSideAffecting[arg1] & arg2) == 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
else
gAIScriptPtr += 10;
}
@@ -717,7 +719,7 @@ static void BattleAICmd_if_not_status4(void)
static void BattleAICmd_if_less_than(void)
{
if (AI_THINKING_STRUCT->funcResult < gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -725,7 +727,7 @@ static void BattleAICmd_if_less_than(void)
static void BattleAICmd_if_more_than(void)
{
if (AI_THINKING_STRUCT->funcResult > gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -733,7 +735,7 @@ static void BattleAICmd_if_more_than(void)
static void BattleAICmd_if_equal(void)
{
if (AI_THINKING_STRUCT->funcResult == gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -741,80 +743,80 @@ static void BattleAICmd_if_equal(void)
static void BattleAICmd_if_not_equal(void)
{
if (AI_THINKING_STRUCT->funcResult != gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
static void BattleAICmd_if_less_than_32(void)
{
- u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *temp = T1_READ_PTR(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->funcResult < *temp)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
else
gAIScriptPtr += 9;
}
static void BattleAICmd_if_more_than_32(void)
{
- u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *temp = T1_READ_PTR(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->funcResult > *temp)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
else
gAIScriptPtr += 9;
}
static void BattleAICmd_if_equal_32(void)
{
- u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *temp = T1_READ_PTR(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->funcResult == *temp)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
else
gAIScriptPtr += 9;
}
static void BattleAICmd_if_not_equal_32(void)
{
- u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *temp = T1_READ_PTR(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->funcResult != *temp)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
else
gAIScriptPtr += 9;
}
static void BattleAICmd_if_move(void)
{
- u16 move = AIScriptRead16(gAIScriptPtr + 1);
+ u16 move = T1_READ_16(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->moveConsidered == move)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
static void BattleAICmd_if_not_move(void)
{
- u16 move = AIScriptRead16(gAIScriptPtr + 1);
+ u16 move = T1_READ_16(gAIScriptPtr + 1);
if (AI_THINKING_STRUCT->moveConsidered != move)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
}
static void BattleAICmd_if_in_bytes(void)
{
- u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *ptr = T1_READ_PTR(gAIScriptPtr + 1);
while (*ptr != 0xFF)
{
if (AI_THINKING_STRUCT->funcResult == *ptr)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
return;
}
ptr++;
@@ -824,7 +826,7 @@ static void BattleAICmd_if_in_bytes(void)
static void BattleAICmd_if_not_in_bytes(void)
{
- u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1);
+ u8 *ptr = T1_READ_PTR(gAIScriptPtr + 1);
while (*ptr != 0xFF)
{
@@ -835,18 +837,18 @@ static void BattleAICmd_if_not_in_bytes(void)
}
ptr++;
}
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
}
static void BattleAICmd_if_in_words(void)
{
- u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
+ u16 *ptr = (u16 *)T1_READ_PTR(gAIScriptPtr + 1);
while (*ptr != 0xFFFF)
{
if (AI_THINKING_STRUCT->funcResult == *ptr)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
return;
}
ptr++;
@@ -856,7 +858,7 @@ static void BattleAICmd_if_in_words(void)
static void BattleAICmd_if_not_in_words(void)
{
- u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1);
+ u16 *ptr = (u16 *)T1_READ_PTR(gAIScriptPtr + 1);
while (*ptr != 0xFFFF)
{
@@ -867,7 +869,7 @@ static void BattleAICmd_if_not_in_words(void)
}
ptr++;
}
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5);
}
static void BattleAICmd_if_user_can_damage(void)
@@ -883,7 +885,7 @@ static void BattleAICmd_if_user_can_damage(void)
if (i == MAX_MON_MOVES)
gAIScriptPtr += 5;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
}
static void BattleAICmd_if_user_cant_damage(void)
@@ -899,7 +901,7 @@ static void BattleAICmd_if_user_cant_damage(void)
if (i != MAX_MON_MOVES)
gAIScriptPtr += 5;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
}
static void BattleAICmd_get_turn_count(void)
@@ -951,8 +953,8 @@ static void BattleAICmd_is_most_powerful_move(void)
&& sDiscouragedPowerfulMoveEffects[i] == 0xFFFF)
{
gDynamicBasePower = 0;
- ewram[0x1601C] = 0; // why is this a manual array?
- ewram[0x1601F] = 1;
+ eDynamicMoveType = 0;
+ eDmgMultiplier = 1;
gBattleMoveFlags = 0;
gCritMultiplier = 1;
@@ -1015,7 +1017,7 @@ static void BattleAICmd_is_most_powerful_move(void)
ldrh r1, [r0]\n\
ldr r4, _0810832C @ =0x0000ffff\n\
ldr r6, _08108330 @ =gBattleMoves\n\
- ldr r5, _08108334 @ =0x02016800\n\
+ ldr r5, _08108334 @ =gSharedMem + 0x16800\n\
cmp r1, r4\n\
beq _0810822E\n\
ldrh r1, [r5, 0x2]\n\
@@ -1148,7 +1150,7 @@ _081082BA:\n\
mov r4, sp\n\
add r4, r8\n\
ldr r2, _08108358 @ =gBattleMoveDamage\n\
- ldr r0, _08108334 @ =0x02016800\n\
+ ldr r0, _08108334 @ =gSharedMem + 0x16800\n\
adds r0, 0x18\n\
adds r0, r6, r0\n\
ldrb r1, [r0]\n\
@@ -1166,7 +1168,7 @@ _081082BA:\n\
_08108328: .4byte sDiscouragedPowerfulMoveEffects\n\
_0810832C: .4byte 0x0000ffff\n\
_08108330: .4byte gBattleMoves\n\
-_08108334: .4byte 0x02016800\n\
+_08108334: .4byte gSharedMem + 0x16800\n\
_08108338: .4byte gDynamicBasePower\n\
_0810833C: .4byte 0xfffff81c\n\
_08108340: .4byte gBattleMoveFlags\n\
@@ -1186,7 +1188,7 @@ _08108364:\n\
cmp r6, 0x3\n\
ble _08108276\n\
movs r6, 0\n\
- ldr r1, _081083A4 @ =0x02016800\n\
+ ldr r1, _081083A4 @ =gSharedMem + 0x16800\n\
ldrb r0, [r1, 0x1]\n\
lsls r0, 2\n\
add r0, sp\n\
@@ -1217,7 +1219,7 @@ _0810839A:\n\
str r0, [r5, 0x8]\n\
b _081083B8\n\
.align 2, 0\n\
-_081083A4: .4byte 0x02016800\n\
+_081083A4: .4byte gSharedMem + 0x16800\n\
_081083A8: .4byte gAIScriptPtr\n\
_081083AC:\n\
movs r0, 0x1\n\
@@ -1258,7 +1260,7 @@ static void BattleAICmd_get_move(void)
static void BattleAICmd_if_arg_equal(void)
{
if (gAIScriptPtr[1] == AI_THINKING_STRUCT->funcResult)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1266,7 +1268,7 @@ static void BattleAICmd_if_arg_equal(void)
static void BattleAICmd_if_arg_not_equal(void)
{
if (gAIScriptPtr[1] != AI_THINKING_STRUCT->funcResult)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1274,7 +1276,7 @@ static void BattleAICmd_if_arg_not_equal(void)
static void BattleAICmd_if_would_go_first(void)
{
if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) == gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1282,7 +1284,7 @@ static void BattleAICmd_if_would_go_first(void)
static void BattleAICmd_if_would_not_go_first(void)
{
if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) != gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1486,7 +1488,7 @@ static void BattleAICmd_if_damage_bonus(void)
damageVar = gBattleMoveDamage;
if (damageVar == gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1517,7 +1519,7 @@ static void BattleAICmd_if_status_in_party(void)
break;
}
- statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2);
+ statusToCompareTo = T1_READ_32(gAIScriptPtr + 2);
for (i = 0; i < 6; i++)
{
@@ -1527,7 +1529,7 @@ static void BattleAICmd_if_status_in_party(void)
if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6); // WHAT. why is this being merged into the above switch
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); // WHAT. why is this being merged into the above switch
return;
}
}
@@ -1553,7 +1555,7 @@ static void BattleAICmd_if_status_not_in_party(void)
break;
}
- statusToCompareTo = AIScriptRead32(gAIScriptPtr + 2);
+ statusToCompareTo = T1_READ_32(gAIScriptPtr + 2);
for (i = 0; i < 6; i++)
{
@@ -1565,7 +1567,7 @@ static void BattleAICmd_if_status_not_in_party(void)
if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo)
gAIScriptPtr += 10; // doesnt return?
}
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 6);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6);
}
static void BattleAICmd_get_weather(void)
@@ -1585,7 +1587,7 @@ static void BattleAICmd_get_weather(void)
static void BattleAICmd_if_effect(void)
{
if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect == gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1593,7 +1595,7 @@ static void BattleAICmd_if_effect(void)
static void BattleAICmd_if_not_effect(void)
{
if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect != gAIScriptPtr[1])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
else
gAIScriptPtr += 6;
}
@@ -1608,7 +1610,7 @@ static void BattleAICmd_if_stat_level_less_than(void)
party = gBankTarget;
if (gBattleMons[party].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
}
@@ -1623,7 +1625,7 @@ static void BattleAICmd_if_stat_level_more_than(void)
party = gBankTarget;
if (gBattleMons[party].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
}
@@ -1638,7 +1640,7 @@ static void BattleAICmd_if_stat_level_equal(void)
party = gBankTarget;
if (gBattleMons[party].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
}
@@ -1653,7 +1655,7 @@ static void BattleAICmd_if_stat_level_not_equal(void)
party = gBankTarget;
if (gBattleMons[party].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3])
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
else
gAIScriptPtr += 8;
}
@@ -1682,7 +1684,7 @@ static void BattleAICmd_if_can_faint(void)
gBattleMoveDamage = 1;
if (gBattleMons[gBankTarget].hp <= gBattleMoveDamage)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
@@ -1709,7 +1711,7 @@ static void BattleAICmd_if_cant_faint(void)
// this macro is missing the damage 0 = 1 assumption.
if (gBattleMons[gBankTarget].hp > gBattleMoveDamage)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
@@ -1731,7 +1733,7 @@ static void BattleAICmd_if_has_move(void)
if (i == MAX_MON_MOVES)
gAIScriptPtr += 8;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
break;
case 0:
case 2:
@@ -1743,7 +1745,7 @@ static void BattleAICmd_if_has_move(void)
if (i == 8)
gAIScriptPtr += 8;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
break;
}
}
@@ -1765,7 +1767,7 @@ static void BattleAICmd_if_dont_have_move(void)
if (i != MAX_MON_MOVES)
gAIScriptPtr += 8;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
break;
case 0:
case 2:
@@ -1777,7 +1779,7 @@ static void BattleAICmd_if_dont_have_move(void)
if (i != 8)
gAIScriptPtr += 8;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 4);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4);
break;
}
}
@@ -1796,7 +1798,7 @@ static void BattleAICmd_if_move_effect(void)
break;
}
if (i != MAX_MON_MOVES)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
else
gAIScriptPtr += 7;
break;
@@ -1807,7 +1809,7 @@ static void BattleAICmd_if_move_effect(void)
if (gBattleMons[gBankAttacker].moves[i] != 0 && gBattleMoves[UNK_2016A00_STRUCT->movesUsed[gBankTarget >> 1][i]].effect == gAIScriptPtr[2])
break;
}
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
}
}
@@ -1827,7 +1829,7 @@ static void BattleAICmd_if_not_move_effect(void)
if (i != MAX_MON_MOVES)
gAIScriptPtr += 7;
else
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
break;
case 0:
case 2:
@@ -1856,7 +1858,7 @@ static void BattleAICmd_if_last_move_did_damage(void)
gAIScriptPtr += 7;
return;
}
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
return;
}
else if (gAIScriptPtr[2] != 1) // ignore the macro if its not 0 or 1.
@@ -1866,7 +1868,7 @@ static void BattleAICmd_if_last_move_did_damage(void)
}
else if (gDisableStructs[index].encoredMove != 0)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 3);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3);
return;
}
gAIScriptPtr += 7;
@@ -1879,7 +1881,7 @@ static void BattleAICmd_if_encored(void)
case 0: // _08109348
if (gDisableStructs[gActiveBank].disabledMove == AI_THINKING_STRUCT->moveConsidered)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
return;
}
gAIScriptPtr += 6;
@@ -1887,7 +1889,7 @@ static void BattleAICmd_if_encored(void)
case 1: // _08109370
if (gDisableStructs[gActiveBank].encoredMove == AI_THINKING_STRUCT->moveConsidered)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
return;
}
gAIScriptPtr += 6;
@@ -1908,7 +1910,7 @@ static void BattleAICmd_if_random_100(void)
u8 safariFleeRate = BATTLE_STRUCT->safariFleeRate * 5; // safari flee rate, from 0-20
if ((u8)(Random() % 100) < safariFleeRate)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
@@ -1997,8 +1999,7 @@ static void BattleAICmd_get_used_item(void)
else
index = gBankTarget;
- // this hack and a half matches. whatever. i dont care. someone else fix this mess later. PS: still cant fix this.
- AI_THINKING_STRUCT->funcResult = ewram[MULTI_DIM_ARR(index, B_16, 0x160CC)];
+ AI_THINKING_STRUCT->funcResult = AI_ARRAY_160CC(index);
gAIScriptPtr += 2;
}
@@ -2065,12 +2066,12 @@ static void BattleAICmd_nullsub_57(void)
static void BattleAICmd_call(void)
{
AIStackPushVar(gAIScriptPtr + 5);
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
}
static void BattleAICmd_jump(void)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
}
static void BattleAICmd_end(void)
@@ -2086,7 +2087,7 @@ static void BattleAICmd_if_level_compare(void)
case 0: // greater than
if (gBattleMons[gBankAttacker].level > gBattleMons[gBankTarget].level)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
return;
}
gAIScriptPtr += 6;
@@ -2094,7 +2095,7 @@ static void BattleAICmd_if_level_compare(void)
case 1: // less than
if (gBattleMons[gBankAttacker].level < gBattleMons[gBankTarget].level)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
return;
}
gAIScriptPtr += 6;
@@ -2102,7 +2103,7 @@ static void BattleAICmd_if_level_compare(void)
case 2: // equal
if (gBattleMons[gBankAttacker].level == gBattleMons[gBankTarget].level)
{
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2);
return;
}
gAIScriptPtr += 6;
@@ -2113,7 +2114,7 @@ static void BattleAICmd_if_level_compare(void)
static void BattleAICmd_if_taunted(void)
{
if (gDisableStructs[gBankTarget].tauntTimer1 != 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
@@ -2121,7 +2122,7 @@ static void BattleAICmd_if_taunted(void)
static void BattleAICmd_if_not_taunted(void)
{
if (gDisableStructs[gBankTarget].tauntTimer1 == 0)
- gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 1);
+ gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1);
else
gAIScriptPtr += 5;
}
diff --git a/src/battle/battle_anim.c b/src/battle/battle_anim.c
index 111d72813..1a78b2863 100644
--- a/src/battle/battle_anim.c
+++ b/src/battle/battle_anim.c
@@ -12,11 +12,11 @@
#include "sound.h"
#include "sprite.h"
#include "task.h"
+#include "ewram.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 gBattlePartyID[4];
extern u8 gObjectBankIDs[];
extern u8 gBankAttacker;
@@ -217,7 +217,7 @@ void DoMoveAnim(const u8 *const moveAnims[], u16 move, u8 c)
{
s32 i;
- if (IsContest() == 0)
+ if (NotInBattle() == 0)
{
sub_8079E24();
sub_8043EB4(0);
@@ -335,7 +335,7 @@ static void RunAnimScriptCommand(void)
{
do
{
- sScriptCmdTable[SCRIPT_READ_8(gBattleAnimScriptPtr)]();
+ sScriptCmdTable[T1_READ_8(gBattleAnimScriptPtr)]();
} while (gAnimFramesToWait == 0 && gAnimScriptActive != FALSE);
}
@@ -344,7 +344,7 @@ static void ScriptCmd_loadsprite(void)
u16 index;
gBattleAnimScriptPtr++;
- index = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ index = T1_READ_16(gBattleAnimScriptPtr);
LoadCompressedObjectPic(&gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)]);
LoadCompressedObjectPalette(&gBattleAnimPaletteTable[GET_TRUE_SPRITE_INDEX(index)]);
gBattleAnimScriptPtr += 2;
@@ -358,7 +358,7 @@ static void ScriptCmd_unloadsprite(void)
u16 index;
gBattleAnimScriptPtr++;
- index = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ index = T1_READ_16(gBattleAnimScriptPtr);
FreeSpriteTilesByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag);
FreeSpritePaletteByTag(gBattleAnimPicTable[GET_TRUE_SPRITE_INDEX(index)].tag);
gBattleAnimScriptPtr += 2;
@@ -378,15 +378,15 @@ static void ScriptCmd_sprite(void)
s8 r1;
gBattleAnimScriptPtr++;
- r7 = (struct SpriteTemplate *)(SCRIPT_READ_32(gBattleAnimScriptPtr));
+ r7 = (struct SpriteTemplate *)(T2_READ_32(gBattleAnimScriptPtr));
gBattleAnimScriptPtr += 4;
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r4 = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
for (i = 0; i < r0; i++)
{
- gBattleAnimArgs[i] = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ gBattleAnimArgs[i] = T1_READ_16(gBattleAnimScriptPtr);
gBattleAnimScriptPtr += 2;
}
if (r4 & 0x80)
@@ -559,16 +559,16 @@ static void ScriptCmd_createtask(void)
s32 i;
gBattleAnimScriptPtr++;
- taskFunc = (TaskFunc)SCRIPT_READ_32(gBattleAnimScriptPtr);
+ taskFunc = (TaskFunc)T2_READ_32(gBattleAnimScriptPtr);
gBattleAnimScriptPtr += 4;
- taskPriority = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ taskPriority = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
- numArgs = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ numArgs = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
for (i = 0; i < numArgs; i++)
{
- gBattleAnimArgs[i] = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ gBattleAnimArgs[i] = T1_READ_16(gBattleAnimScriptPtr);
gBattleAnimScriptPtr += 2;
}
@@ -580,7 +580,7 @@ static void ScriptCmd_createtask(void)
static void ScriptCmd_delay(void)
{
gBattleAnimScriptPtr++;
- gAnimFramesToWait = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ gAnimFramesToWait = T1_READ_8(gBattleAnimScriptPtr);
if (gAnimFramesToWait == 0)
gAnimFramesToWait = -1;
gBattleAnimScriptPtr++;
@@ -654,7 +654,7 @@ static void ScriptCmd_end(void)
if (continuousAnim == FALSE) // may have been used for debug?
{
m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 256);
- if (IsContest() == 0)
+ if (NotInBattle() == 0)
{
sub_8079E24();
sub_8043EB4(1);
@@ -666,7 +666,7 @@ static void ScriptCmd_end(void)
static void ScriptCmd_playse(void)
{
gBattleAnimScriptPtr++;
- PlaySE(SCRIPT_READ_16(gBattleAnimScriptPtr));
+ PlaySE(T1_READ_16(gBattleAnimScriptPtr));
gBattleAnimScriptPtr += 2;
}
@@ -680,7 +680,7 @@ static void ScriptCmd_monbg(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r6 = T1_READ_8(gBattleAnimScriptPtr);
if (r6 == 0)
r6 = 2;
else if (r6 == 1)
@@ -693,7 +693,7 @@ static void ScriptCmd_monbg(void)
{
r0 = GetBankIdentity(r5);
r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
+ if (r0 <= 1 || NotInBattle() != 0)
r7 = 0;
else
r7 = 1;
@@ -723,7 +723,7 @@ static void ScriptCmd_monbg(void)
{
r0 = GetBankIdentity(r5);
r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
+ if (r0 <= 1 || NotInBattle() != 0)
r7 = 0;
else
r7 = 1;
@@ -753,7 +753,7 @@ static void ScriptCmd_monbg(void)
#ifdef NONMATCHING
bool8 IsAnimBankSpriteVisible(u8 a)
{
- if (IsContest())
+ if (NotInBattle())
{
if (a == gBattleAnimBankAttacker)
return TRUE;
@@ -762,7 +762,7 @@ bool8 IsAnimBankSpriteVisible(u8 a)
}
if (!AnimBankSpriteExists(a))
return FALSE;
- if (IsContest())
+ if (NotInBattle())
return TRUE; // this line wont ever be reached.
if (!(EWRAM_17800[a].unk0 & 1))
return TRUE;
@@ -779,7 +779,7 @@ bool8 IsAnimBankSpriteVisible(u8 a)
lsls r0, 24\n\
lsrs r4, r0, 24\n\
adds r5, r4, 0\n\
- bl IsContest\n\
+ bl NotInBattle\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _08075FDC\n\
@@ -796,12 +796,12 @@ _08075FDC:\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _0807602C\n\
- bl IsContest\n\
+ bl NotInBattle\n\
lsls r0, 24\n\
cmp r0, 0\n\
bne _0807601C\n\
lsls r0, r5, 2\n\
- ldr r1, _08076020 @ =0x02017800\n\
+ ldr r1, _08076020 @ =gSharedMem + 0x17800\n\
adds r0, r1\n\
ldrb r1, [r0]\n\
movs r0, 0x1\n\
@@ -825,7 +825,7 @@ _0807601C:\n\
movs r0, 0x1\n\
b _0807602E\n\
.align 2, 0\n\
-_08076020: .4byte 0x02017800\n\
+_08076020: .4byte gSharedMem + 0x17800\n\
_08076024: .4byte gSprites\n\
_08076028: .4byte gObjectBankIDs\n\
_0807602C:\n\
@@ -877,7 +877,7 @@ void sub_8076034(u8 a, u8 b)
spriteId = gObjectBankIDs[a];
gUnknown_030042C0 = -(gSprites[spriteId].pos1.x + gSprites[spriteId].pos2.x) + 32;
- if (IsContest() != 0 && sub_80AEB1C(EWRAM_19348) != 0)
+ if (NotInBattle() != 0 && sub_80AEB1C(EWRAM_19348) != 0)
gUnknown_030042C0--;
gUnknown_030041B4 = -(gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) + 32;
gSprites[gObjectBankIDs[a]].invisible = TRUE;
@@ -889,12 +889,12 @@ void sub_8076034(u8 a, u8 b)
addr3 = (u16 *)PLTT + s.unk8 * 16;
DmaCopy32(3, gPlttBufferUnfaded + 0x100 + a * 16, addr3, 32);
- if (IsContest() != 0)
+ if (NotInBattle() != 0)
r2 = 0;
else
r2 = GetBankIdentity(a);
sub_80E4EF8(0, 0, r2, s.unk8, (u32)s.unk0, (((s32)s.unk4 - VRAM) / 2048), REG_BG1CNT_BITFIELD.charBaseBlock);
- if (IsContest() != 0)
+ if (NotInBattle() != 0)
sub_8076380();
}
else
@@ -996,7 +996,7 @@ void sub_8076464(u8 a)
struct UnknownStruct2 s;
sub_8078914(&s);
- if (a == 0 || IsContest() != 0)
+ if (a == 0 || NotInBattle() != 0)
{
u16 *addr2;
@@ -1090,7 +1090,7 @@ static void ScriptCmd_clearmonbg(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r4 = T1_READ_8(gBattleAnimScriptPtr);
if (r4 == 0)
r4 = 2;
else if (r4 == 1)
@@ -1121,7 +1121,7 @@ static void sub_807672C(u8 taskId)
{
var = GetBankIdentity(gTasks[taskId].data[2]);
var += 0xFF;
- if (var <= 1 || IsContest() != 0)
+ if (var <= 1 || NotInBattle() != 0)
r4 = 0;
else
r4 = 1;
@@ -1149,7 +1149,7 @@ static void ScriptCmd_monbg_22(void)
u8 r1;
gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r5 = T1_READ_8(gBattleAnimScriptPtr);
if (r5 == 0)
r5 = 2;
else if (r5 == 1)
@@ -1162,7 +1162,7 @@ static void ScriptCmd_monbg_22(void)
{
r0 = GetBankIdentity(r4);
r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
+ if (r0 <= 1 || NotInBattle() != 0)
r1 = 0;
else
r1 = 1;
@@ -1174,7 +1174,7 @@ static void ScriptCmd_monbg_22(void)
{
r0 = GetBankIdentity(r4);
r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
+ if (r0 <= 1 || NotInBattle() != 0)
r1 = 0;
else
r1 = 1;
@@ -1191,7 +1191,7 @@ static void ScriptCmd_clearmonbg_23(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r5 = T1_READ_8(gBattleAnimScriptPtr);
if (r5 == 0)
r5 = 2;
else if (r5 == 1)
@@ -1224,7 +1224,7 @@ static void sub_80769A4(u8 taskId)
r4 = gTasks[taskId].data[2];
r0 = GetBankIdentity(r4);
r0 += 0xFF;
- if (r0 <= 1 || IsContest() != 0)
+ if (r0 <= 1 || NotInBattle() != 0)
r5 = 0;
else
r5 = 1;
@@ -1268,12 +1268,9 @@ static void ScriptCmd_blendoff(void)
static void ScriptCmd_call(void)
{
- u32 addr;
-
gBattleAnimScriptPtr++;
gBattleAnimScriptRetAddr = gBattleAnimScriptPtr + 4;
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
+ gBattleAnimScriptPtr = T2_READ_PTR(gBattleAnimScriptPtr);
}
static void ScriptCmd_return(void)
@@ -1288,36 +1285,31 @@ static void ScriptCmd_setvar(void)
u8 r2;
gBattleAnimScriptPtr++;
- r2 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r2 = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ r4 = T1_READ_16(gBattleAnimScriptPtr);
gBattleAnimScriptPtr = addr + 4;
gBattleAnimArgs[r2] = r4;
}
static void ScriptCmd_ifelse(void)
{
- u32 addr;
-
gBattleAnimScriptPtr++;
if (gUnknown_0202F7C4 & 1)
gBattleAnimScriptPtr += 4;
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
+ gBattleAnimScriptPtr = T2_READ_PTR(gBattleAnimScriptPtr);
}
static void ScriptCmd_jumpif(void)
{
u8 r1;
- u32 addr;
gBattleAnimScriptPtr++;
- r1 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r1 = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
if (r1 == gUnknown_0202F7C4)
{
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
+ gBattleAnimScriptPtr = T2_READ_PTR(gBattleAnimScriptPtr);
}
else
{
@@ -1327,15 +1319,11 @@ static void ScriptCmd_jumpif(void)
static void ScriptCmd_jump(void)
{
- u32 addr;
-
gBattleAnimScriptPtr++;
- addr = SCRIPT_READ_32(gBattleAnimScriptPtr);
- gBattleAnimScriptPtr = (u8 *)addr;
+ gBattleAnimScriptPtr = T2_READ_PTR(gBattleAnimScriptPtr);
}
-// 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)
+bool8 NotInBattle(void)
{
if (!gMain.inBattle)
return TRUE;
@@ -1349,7 +1337,7 @@ static void ScriptCmd_fadetobg(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r4 = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
gTasks[taskId].data[0] = r4;
@@ -1369,7 +1357,7 @@ static void ScriptCmd_fadetobg_25(void)
r6 = gBattleAnimScriptPtr[2];
gBattleAnimScriptPtr += 3;
taskId = CreateTask(task_p5_load_battle_screen_elements, 5);
- if (IsContest() != 0)
+ if (NotInBattle() != 0)
gTasks[taskId].data[0] = r6;
else if (GetBankSide(gBattleAnimBankTarget) == 0)
gTasks[taskId].data[0] = r7;
@@ -1416,15 +1404,15 @@ static void task_p5_load_battle_screen_elements(u8 taskId)
static void sub_8076DB8(u16 a)
{
- if (IsContest())
+ if (NotInBattle())
{
void *tilemap = gBattleAnimBackgroundTable[a].tilemap;
void *dmaSrc;
void *dmaDest;
- LZDecompressWram(tilemap, IsContest() ? EWRAM_14800 : EWRAM_18000);
- sub_80763FC(sub_80789BC(), IsContest() ? EWRAM_14800 : EWRAM_18000, 0x100, 0);
- dmaSrc = IsContest() ? EWRAM_14800 : EWRAM_18000;
+ LZDecompressWram(tilemap, NotInBattle() ? EWRAM_14800 : EWRAM_18000);
+ sub_80763FC(sub_80789BC(), NotInBattle() ? EWRAM_14800 : EWRAM_18000, 0x100, 0);
+ dmaSrc = NotInBattle() ? EWRAM_14800 : EWRAM_18000;
dmaDest = (void *)(VRAM + 0xD000);
DmaCopy32(3, dmaSrc, dmaDest, 0x800);
LZDecompressVram(gBattleAnimBackgroundTable[a].image, (void *)(VRAM + 0x2000));
@@ -1440,7 +1428,7 @@ static void sub_8076DB8(u16 a)
static void dp01t_11_3_message_for_player_only(void)
{
- if (IsContest())
+ if (NotInBattle())
sub_80AB2AC();
else
sub_800D7B8();
@@ -1485,7 +1473,7 @@ static void ScriptCmd_waitbgfadein(void)
static void ScriptCmd_changebg(void)
{
gBattleAnimScriptPtr++;
- sub_8076DB8(SCRIPT_READ_8(gBattleAnimScriptPtr));
+ sub_8076DB8(T1_READ_8(gBattleAnimScriptPtr));
gBattleAnimScriptPtr++;
}
@@ -1493,14 +1481,14 @@ static void ScriptCmd_changebg(void)
/*
s8 sub_8076F98(s8 a)
{
- if (!IsContest() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
+ if (!NotInBattle() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
{
a = GetBankSide(gBattleAnimBankAttacker) ? 0xC0 : 0x3F;
}
//_08076FDC
else
{
- if (IsContest())
+ if (NotInBattle())
{
if (gBattleAnimBankAttacker == gBattleAnimBankTarget && gBattleAnimBankAttacker == 2
&& a == 0x3F)
@@ -1536,7 +1524,7 @@ s8 sub_8076F98(s8 a)
push {r4,lr}\n\
lsls r0, 24\n\
lsrs r4, r0, 24\n\
- bl IsContest\n\
+ bl NotInBattle\n\
lsls r0, 24\n\
cmp r0, 0\n\
bne _08076FDC\n\
@@ -1545,7 +1533,7 @@ s8 sub_8076F98(s8 a)
lsls r0, r2, 1\n\
adds r0, r2\n\
lsls r0, 2\n\
- ldr r1, _08076FD8 @ =0x02017810\n\
+ ldr r1, _08076FD8 @ =gSharedMem + 0x17810\n\
adds r0, r1\n\
ldrb r1, [r0]\n\
movs r0, 0x10\n\
@@ -1562,9 +1550,9 @@ s8 sub_8076F98(s8 a)
b _0807706E\n\
.align 2, 0\n\
_08076FD4: .4byte gBattleAnimBankAttacker\n\
-_08076FD8: .4byte 0x02017810\n\
+_08076FD8: .4byte gSharedMem + 0x17810\n\
_08076FDC:\n\
- bl IsContest\n\
+ bl NotInBattle\n\
lsls r0, 24\n\
cmp r0, 0\n\
beq _08077004\n\
@@ -1661,7 +1649,7 @@ _08077088:\n\
s8 sub_8077094(s8 a)
{
- if (!IsContest() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
+ if (!NotInBattle() && (EWRAM_17810[gBattleAnimBankAttacker].unk0 & 0x10))
{
if (GetBankSide(gBattleAnimBankAttacker) != 0)
a = 0x3F;
@@ -1670,7 +1658,7 @@ s8 sub_8077094(s8 a)
}
else
{
- if (GetBankSide(gBattleAnimBankAttacker) != 0 || IsContest() != 0)
+ if (GetBankSide(gBattleAnimBankAttacker) != 0 || NotInBattle() != 0)
a = -a;
}
return a;
@@ -1706,8 +1694,8 @@ static void ScriptCmd_panse_19(void)
s8 r0;
gBattleAnimScriptPtr++;
- r4 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
+ r4 = T1_READ_16(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 2);
PlaySE12WithPanning(r4, sub_8076F98(r0));
gBattleAnimScriptPtr += 3;
}
@@ -1717,7 +1705,7 @@ static void ScriptCmd_setpan(void)
s8 r0;
gBattleAnimScriptPtr++;
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr);
SE12PanpotControl(sub_8076F98(r0));
gBattleAnimScriptPtr++;
}
@@ -1734,11 +1722,11 @@ static void ScriptCmd_panse_1B(void)
u8 taskId;
gBattleAnimScriptPtr++;
- songNum = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 5);
+ songNum = T1_READ_16(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 2);
+ r4 = T1_READ_8(gBattleAnimScriptPtr + 3);
+ r6 = T1_READ_8(gBattleAnimScriptPtr + 4);
+ r7 = T1_READ_8(gBattleAnimScriptPtr + 5);
panning = sub_8076F98(r0);
r8 = sub_8076F98(r4);
r4 = sub_807712C(panning, r8, r6);
@@ -1899,11 +1887,11 @@ static void ScriptCmd_panse_26(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r8 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r5 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
- r10 = SCRIPT_READ_8(gBattleAnimScriptPtr + 5);
+ r8 = T1_READ_16(gBattleAnimScriptPtr);
+ r4 = T1_READ_8(gBattleAnimScriptPtr + 2);
+ r5 = T1_READ_8(gBattleAnimScriptPtr + 3);
+ r6 = T1_READ_8(gBattleAnimScriptPtr + 4);
+ r10 = T1_READ_8(gBattleAnimScriptPtr + 5);
taskId = CreateTask(c3_08073CEC, 1);
gTasks[taskId].data[0] = r4;
gTasks[taskId].data[1] = r5;
@@ -1928,11 +1916,11 @@ static void ScriptCmd_panse_27(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r9 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r4 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r8 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 5);
+ r9 = T1_READ_16(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 2);
+ r4 = T1_READ_8(gBattleAnimScriptPtr + 3);
+ r8 = T1_READ_8(gBattleAnimScriptPtr + 4);
+ r7 = T1_READ_8(gBattleAnimScriptPtr + 5);
r6 = sub_8077094(r0);
r5 = sub_8077094(r4);
r4_2 = sub_8077094(r8);
@@ -1957,10 +1945,10 @@ static void ScriptCmd_panse_1C(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r8 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
- r9 = SCRIPT_READ_8(gBattleAnimScriptPtr + 4);
+ r5 = T1_READ_16(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 2);
+ r8 = T1_READ_8(gBattleAnimScriptPtr + 3);
+ r9 = T1_READ_8(gBattleAnimScriptPtr + 4);
r4 = sub_8076F98(r0);
taskId = CreateTask(sub_80774FC, 1);
gTasks[taskId].data[0] = r5;
@@ -2007,9 +1995,9 @@ static void ScriptCmd_panse_1D(void)
u8 taskId;
gBattleAnimScriptPtr++;
- r5 = SCRIPT_READ_16(gBattleAnimScriptPtr);
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 2);
- r8 = SCRIPT_READ_8(gBattleAnimScriptPtr + 3);
+ r5 = T1_READ_16(gBattleAnimScriptPtr);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 2);
+ r8 = T1_READ_8(gBattleAnimScriptPtr + 3);
r4 = sub_8076F98(r0);
taskId = CreateTask(sub_80775CC, 1);
gTasks[taskId].data[0] = r5;
@@ -2041,13 +2029,13 @@ static void ScriptCmd_createtask_1F(void)
u8 taskId;
gBattleAnimScriptPtr++;
- func = (TaskFunc)SCRIPT_READ_32(gBattleAnimScriptPtr);
+ func = (TaskFunc)T2_READ_32(gBattleAnimScriptPtr);
gBattleAnimScriptPtr += 4;
- numArgs = SCRIPT_READ_8(gBattleAnimScriptPtr);
+ numArgs = T1_READ_8(gBattleAnimScriptPtr);
gBattleAnimScriptPtr++;
for (i = 0; i < numArgs; i++)
{
- gBattleAnimArgs[i] = SCRIPT_READ_16(gBattleAnimScriptPtr);
+ gBattleAnimArgs[i] = T1_READ_16(gBattleAnimScriptPtr);
gBattleAnimScriptPtr += 2;
}
taskId = CreateTask(func, 1);
@@ -2090,11 +2078,11 @@ static void ScriptCmd_jumpvareq(void)
u8 *addr;
gBattleAnimScriptPtr++;
- r2 = SCRIPT_READ_8(gBattleAnimScriptPtr);
- r1 = SCRIPT_READ_16(gBattleAnimScriptPtr + 1);
+ r2 = T1_READ_8(gBattleAnimScriptPtr);
+ r1 = T1_READ_16(gBattleAnimScriptPtr + 1);
if (r1 == gBattleAnimArgs[r2])
{
- addr = (u8 *)SCRIPT_READ_32(gBattleAnimScriptPtr + 3);
+ addr = T2_READ_PTR(gBattleAnimScriptPtr + 3);
gBattleAnimScriptPtr = addr;
}
else
@@ -2108,9 +2096,9 @@ static void ScriptCmd_jumpunkcond(void)
u8 *addr;
gBattleAnimScriptPtr++;
- if (IsContest())
+ if (NotInBattle())
{
- addr = (u8 *)SCRIPT_READ_32(gBattleAnimScriptPtr);
+ addr = T2_READ_PTR(gBattleAnimScriptPtr);
gBattleAnimScriptPtr = addr;
}
else
@@ -2125,14 +2113,14 @@ static void ScriptCmd_monbgprio_28(void)
u8 r0;
u8 r4;
- r2 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r2 = T1_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
if (r2 != 0)
r0 = gBattleAnimBankTarget;
else
r0 = gBattleAnimBankAttacker;
r4 = GetBankIdentity(r0);
- if (!IsContest() && (r4 == 0 || r4 == 3))
+ if (!NotInBattle() && (r4 == 0 || r4 == 3))
{
REG_BG1CNT_BITFIELD.priority = 1;
REG_BG2CNT_BITFIELD.priority = 2;
@@ -2142,7 +2130,7 @@ static void ScriptCmd_monbgprio_28(void)
static void ScriptCmd_monbgprio_29(void)
{
gBattleAnimScriptPtr++;
- if (!IsContest())
+ if (!NotInBattle())
{
REG_BG1CNT_BITFIELD.priority = 1;
REG_BG2CNT_BITFIELD.priority = 2;
@@ -2155,7 +2143,7 @@ static void ScriptCmd_monbgprio_2A(void)
u8 r4;
u8 r0;
- r6 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r6 = T1_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
if (GetBankSide(gBattleAnimBankAttacker) != GetBankSide(gBattleAnimBankTarget))
{
@@ -2164,7 +2152,7 @@ static void ScriptCmd_monbgprio_2A(void)
else
r0 = gBattleAnimBankAttacker;
r4 = GetBankIdentity(r0);
- if (!IsContest() && (r4 == 0 || r4 == 3))
+ if (!NotInBattle() && (r4 == 0 || r4 == 3))
{
REG_BG1CNT_BITFIELD.priority = 1;
REG_BG2CNT_BITFIELD.priority = 2;
@@ -2177,7 +2165,7 @@ static void ScriptCmd_invisible(void)
u8 r0;
u8 spriteId;
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 1);
spriteId = GetAnimBankSpriteId(r0);
if (spriteId != 0xFF)
{
@@ -2191,7 +2179,7 @@ static void ScriptCmd_visible(void)
u8 r0;
u8 spriteId;
- r0 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r0 = T1_READ_8(gBattleAnimScriptPtr + 1);
spriteId = GetAnimBankSpriteId(r0);
if (spriteId != 0xFF)
{
@@ -2206,9 +2194,9 @@ static void ScriptCmd_doublebattle_2D(void)
u8 r4;
u8 spriteId;
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r7 = T1_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
- if (!IsContest() && IsDoubleBattle()
+ if (!NotInBattle() && IsDoubleBattle()
&& GetBankSide(gBattleAnimBankAttacker) == GetBankSide(gBattleAnimBankTarget))
{
if (r7 == 0)
@@ -2240,9 +2228,9 @@ static void ScriptCmd_doublebattle_2E(void)
u8 r4;
u8 spriteId;
- r7 = SCRIPT_READ_8(gBattleAnimScriptPtr + 1);
+ r7 = T1_READ_8(gBattleAnimScriptPtr + 1);
gBattleAnimScriptPtr += 2;
- if (!IsContest() && IsDoubleBattle()
+ if (!NotInBattle() && IsDoubleBattle()
&& GetBankSide(gBattleAnimBankAttacker) == GetBankSide(gBattleAnimBankTarget))
{
if (r7 == 0)
diff --git a/src/battle/battle_anim_807B69C.c b/src/battle/battle_anim_807B69C.c
index bf3eb7ef1..7fcd1e23f 100644
--- a/src/battle/battle_anim_807B69C.c
+++ b/src/battle/battle_anim_807B69C.c
@@ -7,6 +7,7 @@
#include "sprite.h"
#include "task.h"
#include "trig.h"
+#include "ewram.h"
extern u8 gBattleAnimBankAttacker;
extern u8 gBattleAnimBankTarget;
@@ -183,7 +184,7 @@ void sub_807B920(u8 taskId)
s16 y = sub_8077ABC(gBattleAnimBankTarget, 3) - 36;
u8 spriteId;
- if (IsContest())
+ if (NotInBattle())
x -= 6;
REG_BLDCNT = 0x3F40;
REG_BLDALPHA = 0x1000;
diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c
index e0c79dc8e..19ac7143e 100644
--- a/src/battle/battle_anim_80A7E7C.c
+++ b/src/battle/battle_anim_80A7E7C.c
@@ -769,7 +769,7 @@ void sub_80A8E04(u8 taskId)
TASK.data[4] = gBattleAnimArgs[1];
TASK.data[5] = spriteId;
TASK.data[6] = gBattleAnimArgs[3];
- if (IsContest())
+ if (NotInBattle())
{
TASK.data[7] = 1;
}
@@ -786,7 +786,7 @@ void sub_80A8E04(u8 taskId)
}
if (TASK.data[7])
{
- if (!IsContest())
+ if (!NotInBattle())
{
TASK.data[3] *= -1;
TASK.data[4] *= -1;
diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c
index edfd7e675..107c374a0 100644
--- a/src/battle/battle_controller_linkopponent.c
+++ b/src/battle/battle_controller_linkopponent.c
@@ -15,6 +15,7 @@
#include "task.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
struct UnknownStruct3
{
@@ -637,9 +638,8 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
GetMonData(&gEnemyParty[a], MON_DATA_NICKNAME, nickname);
StringCopy10(battlePokemon.nickname, nickname);
GetMonData(&gEnemyParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
- src = (u8 *)&battlePokemon;
- for (size = 0; size < sizeof(battlePokemon); size++)
- buffer[size] = src[size];
+
+ MEMCPY_ALT(&battlePokemon, buffer, sizeof(battlePokemon), size, src);
break;
case 1:
data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPECIES);
@@ -660,9 +660,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon__(u8 a, u8 *buffer)
moveData.pp[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + size);
}
moveData.ppBonuses = GetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES);
- src = (u8 *)&moveData;
- for (size = 0; size < sizeof(moveData); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&moveData, buffer, sizeof(moveData), size, src);
break;
case 4:
case 5:
@@ -936,38 +934,38 @@ void sub_8038900(u8 a)
{
u8 iv;
- SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
- SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, &battlePokemon->species);
+ SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, &battlePokemon->item);
for (i = 0; i < 4; i++)
{
- SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
- SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, &battlePokemon->pp[i]);
}
- SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
- SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
- SetMonData(&gEnemyParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &battlePokemon->ppBonuses);
+ SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, &battlePokemon->friendship);
+ SetMonData(&gEnemyParty[a], MON_DATA_EXP, &battlePokemon->experience);
iv = battlePokemon->hpIV;
- SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &iv);
iv = battlePokemon->attackIV;
- SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &iv);
iv = battlePokemon->defenseIV;
- SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &iv);
iv = battlePokemon->speedIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &iv);
iv = battlePokemon->spAttackIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &iv);
iv = battlePokemon->spDefenseIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
- SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
- SetMonData(&gEnemyParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
- SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
- SetMonData(&gEnemyParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
- SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
- SetMonData(&gEnemyParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
- SetMonData(&gEnemyParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
- SetMonData(&gEnemyParty[a], MON_DATA_SPEED, (u8 *)&battlePokemon->speed);
- SetMonData(&gEnemyParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
- SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, &battlePokemon->personality);
+ SetMonData(&gEnemyParty[a], MON_DATA_STATUS, &battlePokemon->status1);
+ SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, &battlePokemon->level);
+ SetMonData(&gEnemyParty[a], MON_DATA_HP, &battlePokemon->hp);
+ SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, &battlePokemon->maxHP);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK, &battlePokemon->attack);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF, &battlePokemon->defense);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED, &battlePokemon->speed);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &battlePokemon->spAttack);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, &battlePokemon->spDefense);
}
break;
case 1:
@@ -979,8 +977,8 @@ void sub_8038900(u8 a)
case 3:
for (i = 0; i < 4; i++)
{
- SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
- SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, &moveData->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, &moveData->pp[i]);
}
SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
break;
@@ -1145,9 +1143,9 @@ void LinkOpponentHandlecmd3(void)
u8 *dst;
u8 i;
- dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ MEMSET_ALT(&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1],
+ gBattleBufferA[gActiveBank][3 + i], gBattleBufferA[gActiveBank][2], i, dst);
+
LinkOpponentBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c
index 335ebcb12..25deebf78 100644
--- a/src/battle/battle_controller_linkpartner.c
+++ b/src/battle/battle_controller_linkpartner.c
@@ -19,6 +19,7 @@
#include "task.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
struct UnknownStruct1
{
@@ -593,9 +594,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
GetMonData(&gPlayerParty[a], MON_DATA_NICKNAME, nickname);
StringCopy10(battlePokemon.nickname, nickname);
GetMonData(&gPlayerParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
- src = (u8 *)&battlePokemon;
- for (size = 0; size < sizeof(battlePokemon); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&battlePokemon, buffer, sizeof(battlePokemon), size, src);
break;
case 1:
data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPECIES);
@@ -616,9 +615,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon(u8 a, u8 *buffer)
moveData.pp[size] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + size);
}
moveData.ppBonuses = GetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES);
- src = (u8 *)&moveData;
- for (size = 0; size < sizeof(moveData); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&moveData, buffer, sizeof(moveData), size, src);
break;
case 4:
case 5:
@@ -893,38 +890,38 @@ void sub_811EC68(u8 a)
{
u8 iv;
- SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
- SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &battlePokemon->species);
+ SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &battlePokemon->item);
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &battlePokemon->pp[i]);
}
- SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
- SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
- SetMonData(&gPlayerParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &battlePokemon->ppBonuses);
+ SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &battlePokemon->friendship);
+ SetMonData(&gPlayerParty[a], MON_DATA_EXP, &battlePokemon->experience);
iv = battlePokemon->hpIV;
- SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &iv);
iv = battlePokemon->attackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &iv);
iv = battlePokemon->defenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &iv);
iv = battlePokemon->speedIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &iv);
iv = battlePokemon->spAttackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &iv);
iv = battlePokemon->spDefenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
- SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
- SetMonData(&gPlayerParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
- SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
- SetMonData(&gPlayerParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
- SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
- SetMonData(&gPlayerParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
- SetMonData(&gPlayerParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
- SetMonData(&gPlayerParty[a], MON_DATA_SPEED, (u8 *)&battlePokemon->speed);
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &battlePokemon->personality);
+ SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &battlePokemon->status1);
+ SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &battlePokemon->level);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP, &battlePokemon->hp);
+ SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &battlePokemon->maxHP);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK, &battlePokemon->attack);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF, &battlePokemon->defense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &battlePokemon->speed);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &battlePokemon->spAttack);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &battlePokemon->spDefense);
}
break;
case 1:
@@ -936,8 +933,8 @@ void sub_811EC68(u8 a)
case 3:
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &moveData->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &moveData->pp[i]);
}
SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
break;
@@ -1103,9 +1100,9 @@ void LinkPartnerHandlecmd3(void)
u8 *dst;
u8 i;
- dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ MEMSET_ALT(&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1],
+ gBattleBufferA[gActiveBank][3 + i], gBattleBufferA[gActiveBank][2], i, dst);
+
LinkPartnerBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c
index 6594e4183..823d6702a 100644
--- a/src/battle/battle_controller_opponent.c
+++ b/src/battle/battle_controller_opponent.c
@@ -20,6 +20,7 @@
#include "task.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
struct UnknownStruct3
{
@@ -601,9 +602,7 @@ u32 sub_8033598(u8 a, u8 *buffer)
GetMonData(&gEnemyParty[a], MON_DATA_NICKNAME, nickname);
StringCopy10(battlePokemon.nickname, nickname);
GetMonData(&gEnemyParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
- src = (u8 *)&battlePokemon;
- for (size = 0; size < sizeof(battlePokemon); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&battlePokemon, buffer, sizeof(battlePokemon), size, src);
break;
case 1:
data16 = GetMonData(&gEnemyParty[a], MON_DATA_SPECIES);
@@ -624,9 +623,7 @@ u32 sub_8033598(u8 a, u8 *buffer)
moveData.pp[size] = GetMonData(&gEnemyParty[a], MON_DATA_PP1 + size);
}
moveData.ppBonuses = GetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES);
- src = (u8 *)&moveData;
- for (size = 0; size < sizeof(moveData); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&moveData, buffer, sizeof(moveData), size, src);
break;
case 4:
case 5:
@@ -864,12 +861,12 @@ u32 sub_8033598(u8 a, u8 *buffer)
void OpponentHandlecmd1(void)
{
struct BattlePokemon buffer;
- u8 *src = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- u8 *dst = (u8 *)&buffer + gBattleBufferA[gActiveBank][1];
u8 i;
+ // TODO: Maybe fix this. Integrating this into MEMSET_ALT is too hard.
+ u8 *src = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ u8 *dst;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = src[i];
+ MEMSET_ALT(&buffer + gBattleBufferA[gActiveBank][1], src[i], gBattleBufferA[gActiveBank][2], i, dst);
Emitcmd29(1, gBattleBufferA[gActiveBank][2], dst);
OpponentBufferExecCompleted();
}
@@ -908,38 +905,38 @@ void sub_8033E24(u8 a)
{
u8 iv;
- SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
- SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPECIES, &battlePokemon->species);
+ SetMonData(&gEnemyParty[a], MON_DATA_HELD_ITEM, &battlePokemon->item);
for (i = 0; i < 4; i++)
{
- SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
- SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, &battlePokemon->pp[i]);
}
- SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
- SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
- SetMonData(&gEnemyParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &battlePokemon->ppBonuses);
+ SetMonData(&gEnemyParty[a], MON_DATA_FRIENDSHIP, &battlePokemon->friendship);
+ SetMonData(&gEnemyParty[a], MON_DATA_EXP, &battlePokemon->experience);
iv = battlePokemon->hpIV;
- SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_HP_IV, &iv);
iv = battlePokemon->attackIV;
- SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK_IV, &iv);
iv = battlePokemon->defenseIV;
- SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF_IV, &iv);
iv = battlePokemon->speedIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED_IV, &iv);
iv = battlePokemon->spAttackIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK_IV, &iv);
iv = battlePokemon->spDefenseIV;
- SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
- SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
- SetMonData(&gEnemyParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
- SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
- SetMonData(&gEnemyParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
- SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
- SetMonData(&gEnemyParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
- SetMonData(&gEnemyParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
- SetMonData(&gEnemyParty[a], MON_DATA_SPEED, (u8 *)&battlePokemon->speed);
- SetMonData(&gEnemyParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
- SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF_IV, &iv);
+ SetMonData(&gEnemyParty[a], MON_DATA_PERSONALITY, &battlePokemon->personality);
+ SetMonData(&gEnemyParty[a], MON_DATA_STATUS, &battlePokemon->status1);
+ SetMonData(&gEnemyParty[a], MON_DATA_LEVEL, &battlePokemon->level);
+ SetMonData(&gEnemyParty[a], MON_DATA_HP, &battlePokemon->hp);
+ SetMonData(&gEnemyParty[a], MON_DATA_MAX_HP, &battlePokemon->maxHP);
+ SetMonData(&gEnemyParty[a], MON_DATA_ATK, &battlePokemon->attack);
+ SetMonData(&gEnemyParty[a], MON_DATA_DEF, &battlePokemon->defense);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPEED, &battlePokemon->speed);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPATK, &battlePokemon->spAttack);
+ SetMonData(&gEnemyParty[a], MON_DATA_SPDEF, &battlePokemon->spDefense);
}
break;
case 1:
@@ -951,8 +948,8 @@ void sub_8033E24(u8 a)
case 3:
for (i = 0; i < 4; i++)
{
- SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
- SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_MOVE1 + i, &moveData->moves[i]);
+ SetMonData(&gEnemyParty[a], MON_DATA_PP1 + i, &moveData->pp[i]);
}
SetMonData(&gEnemyParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
break;
@@ -1117,9 +1114,8 @@ void OpponentHandlecmd3(void)
u8 *dst;
u8 i;
- dst = (u8 *)&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ MEMSET_ALT(&gEnemyParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][3 + i],
+ gBattleBufferA[gActiveBank][2], i, dst);
OpponentBufferExecCompleted();
}
@@ -1678,7 +1674,7 @@ _0803558A:\n\
void OpponentHandleOpenBag(void)
{
// What is this?
- Emitcmd35(1, ewram[0x160D4 + gActiveBank / 2 * 2]);
+ Emitcmd35(1, ewram160D4(gActiveBank));
OpponentBufferExecCompleted();
}
@@ -1686,7 +1682,7 @@ void OpponentHandlecmd22(void)
{
s32 r4;
- if (ewram[0x160C8 + GetBankIdentity(gActiveBank) / 2] == 6)
+ if (ewram160C8arr(GetBankIdentity(gActiveBank)) == 6)
{
u8 r6;
u8 r5;
@@ -1715,10 +1711,10 @@ void OpponentHandlecmd22(void)
}
else
{
- r4 = ewram[0x160C8 + GetBankIdentity(gActiveBank) / 2];
- ewram[0x160C8 + GetBankIdentity(gActiveBank) / 2] = 6;
+ r4 = ewram160C8arr(GetBankIdentity(gActiveBank));
+ ewram160C8arr(GetBankIdentity(gActiveBank)) = 6;
}
- ewram[0x16068 + gActiveBank] = r4;
+ ewram16068arr(gActiveBank) = r4;
Emitcmd34(1, r4, 0);
OpponentBufferExecCompleted();
}
diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c
index 7f5c6c490..1aa73e90c 100644
--- a/src/battle/battle_controller_player.c
+++ b/src/battle/battle_controller_player.c
@@ -19,6 +19,7 @@
#include "task.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
//Possibly PokemonSubstruct1
struct UnknownStruct3
@@ -841,7 +842,7 @@ void sub_802CA60(void)
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i, (u8 *)&sp0.moves[i]);
+ SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_MOVE1 + i, &sp0.moves[i]);
SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP1 + i, &sp0.pp[i]);
}
SetMonData(&gPlayerParty[gBattlePartyID[gActiveBank]], MON_DATA_PP_BONUSES, &totalPPBonuses);
@@ -1149,7 +1150,7 @@ void sub_802D924(u8 taskId)
{
u8 savedActiveBank;
- SetMonData(pkmn, MON_DATA_EXP, (u8 *)&nextLvlExp);
+ SetMonData(pkmn, MON_DATA_EXP, &nextLvlExp);
CalculateMonStats(pkmn);
gainedExp -= nextLvlExp - currExp;
savedActiveBank = gActiveBank;
@@ -1166,7 +1167,7 @@ void sub_802D924(u8 taskId)
else
{
currExp += gainedExp;
- SetMonData(pkmn, MON_DATA_EXP, (u8 *)&currExp);
+ SetMonData(pkmn, MON_DATA_EXP, &currExp);
gBattleBankFunc[bank] = sub_802D90C;
DestroyTask(taskId);
}
@@ -1231,7 +1232,7 @@ void sub_802DB6C(u8 taskId)
u8 r5;
u32 asdf;
- SetMonData(pkmn, MON_DATA_EXP, (u8 *)&sp0);
+ SetMonData(pkmn, MON_DATA_EXP, &sp0);
CalculateMonStats(pkmn);
//r10 -= sp0 - sp4;
asdf = sp0 - sp4;
@@ -1247,7 +1248,7 @@ void sub_802DB6C(u8 taskId)
{
//u32 asdf = sp4 + r10;
sp4 += r10;
- SetMonData(pkmn, MON_DATA_EXP, (u8 *)&sp4);
+ SetMonData(pkmn, MON_DATA_EXP, &sp4);
gBattleBankFunc[r7] = sub_802D90C;
DestroyTask(taskId);
}
@@ -1773,9 +1774,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
GetMonData(&gPlayerParty[a], MON_DATA_NICKNAME, nickname);
StringCopy10(battlePokemon.nickname, nickname);
GetMonData(&gPlayerParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
- src = (u8 *)&battlePokemon;
- for (size = 0; size < sizeof(battlePokemon); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&battlePokemon, buffer, sizeof(battlePokemon), size, src);
break;
case 1:
data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPECIES);
@@ -1796,9 +1795,7 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
moveData.pp[size] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + size);
}
moveData.ppBonuses = GetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES);
- src = (u8 *)&moveData;
- for (size = 0; size < sizeof(moveData); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&moveData, buffer, sizeof(moveData), size, src);
break;
case 4:
case 5:
@@ -2035,13 +2032,13 @@ u32 dp01_getattr_by_ch1_for_player_pokemon_(u8 a, u8 *buffer)
void PlayerHandlecmd1(void)
{
- struct BattlePokemon battleMon; // I think this is a BattlePokemon
- u8 *src = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
- u8 *dst = (u8 *)&battleMon + gBattleBufferA[gActiveBank][1];
+ struct BattlePokemon battleMon;
u8 i;
+ // TODO: Maybe fix this. Integrating this into MEMSET_ALT is too hard.
+ u8 *src = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
+ u8 *dst;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = src[i];
+ MEMSET_ALT(&battleMon + gBattleBufferA[gActiveBank][1], src[i], gBattleBufferA[gActiveBank][2], i, dst);
Emitcmd29(1, gBattleBufferA[gActiveBank][2], dst);
PlayerBufferExecCompleted();
}
@@ -2081,38 +2078,38 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a)
{
u8 iv;
- SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
- SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &battlePokemon->species);
+ SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &battlePokemon->item);
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &battlePokemon->pp[i]);
}
- SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
- SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
- SetMonData(&gPlayerParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &battlePokemon->ppBonuses);
+ SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &battlePokemon->friendship);
+ SetMonData(&gPlayerParty[a], MON_DATA_EXP, &battlePokemon->experience);
iv = battlePokemon->hpIV;
- SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &iv);
iv = battlePokemon->attackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &iv);
iv = battlePokemon->defenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &iv);
iv = battlePokemon->speedIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &iv);
iv = battlePokemon->spAttackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &iv);
iv = battlePokemon->spDefenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
- SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
- SetMonData(&gPlayerParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
- SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
- SetMonData(&gPlayerParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
- SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
- SetMonData(&gPlayerParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
- SetMonData(&gPlayerParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
- SetMonData(&gPlayerParty[a], MON_DATA_SPEED, (u8 *)&battlePokemon->speed);
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &battlePokemon->personality);
+ SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &battlePokemon->status1);
+ SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &battlePokemon->level);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP, &battlePokemon->hp);
+ SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &battlePokemon->maxHP);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK, &battlePokemon->attack);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF, &battlePokemon->defense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &battlePokemon->speed);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &battlePokemon->spAttack);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &battlePokemon->spDefense);
}
break;
case 1:
@@ -2124,8 +2121,8 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a)
case 3:
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &moveData->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &moveData->pp[i]);
}
SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
break;
@@ -2288,11 +2285,11 @@ void dp01_setattr_by_ch1_for_player_pokemon(u8 a)
void PlayerHandlecmd3(void)
{
- u8 *dst = (u8 *)&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1];
u8 i;
+ u8 *dst;
- for (i = 0; i < gBattleBufferA[gActiveBank][2]; i++)
- dst[i] = gBattleBufferA[gActiveBank][3 + i];
+ MEMSET_ALT(&gPlayerParty[gBattlePartyID[gActiveBank]] + gBattleBufferA[gActiveBank][1], gBattleBufferA[gActiveBank][3 + i],
+ gBattleBufferA[gActiveBank][2], i, dst);
PlayerBufferExecCompleted();
}
@@ -2599,7 +2596,7 @@ void PlayerHandlecmd18(void)
sub_802E3E4(gActionSelectionCursor[gActiveBank], 0);
- StrCpyDecodeToDisplayedStringBattle((u8 *) gUnknown_08400CA8);
+ StrCpyDecodeToDisplayedStringBattle(gUnknown_08400CA8);
InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_803037C_TILE_DATA_OFFSET, 2, 35);
sub_8002F44(&gUnknown_03004210);
}
@@ -2648,9 +2645,9 @@ void PlayerHandlecmd22(void)
gUnknown_0300434C[gActiveBank] = CreateTask(TaskDummy, 0xFF);
gTasks[gUnknown_0300434C[gActiveBank]].data[0] = gBattleBufferA[gActiveBank][1] & 0xF;
- ewram[0x16054] = gBattleBufferA[gActiveBank][1] >> 4;
- ewram[0x1609D] = gBattleBufferA[gActiveBank][2];
- ewram[0x160C0] = gBattleBufferA[gActiveBank][3];
+ ewram16054 = gBattleBufferA[gActiveBank][1] >> 4;
+ EWRAM_1609D = gBattleBufferA[gActiveBank][2];
+ ewram160C0 = gBattleBufferA[gActiveBank][3];
for (i = 0; i < 3; i++)
gUnknown_02038470[i] = gBattleBufferA[gActiveBank][4 + i];
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c
index e05578c31..5b89cf9ba 100644
--- a/src/battle/battle_controller_safari.c
+++ b/src/battle/battle_controller_safari.c
@@ -12,6 +12,7 @@
#include "sound.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
extern struct Window gUnknown_03004210;
extern u8 gDisplayedStringBattle[];
@@ -483,7 +484,7 @@ void SafariHandlecmd18(void)
nullsub_8(i);
sub_802E3E4(gActionSelectionCursor[gActiveBank], 0);
- StrCpyDecodeToDisplayedStringBattle((u8 *) gUnknown_08400CBB);
+ StrCpyDecodeToDisplayedStringBattle(gUnknown_08400CBB);
InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_812BB10_TILE_DATA_OFFSET, 2, 35);
sub_8002F44(&gUnknown_03004210);
diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c
index 3531c1771..9392832d7 100644
--- a/src/battle/battle_controller_wally.c
+++ b/src/battle/battle_controller_wally.c
@@ -17,6 +17,7 @@
#include "task.h"
#include "text.h"
#include "util.h"
+#include "ewram.h"
//Possibly PokemonSubstruct1
struct UnknownStruct3
@@ -239,10 +240,10 @@ void unref_sub_8137220(void)
void SetBankFuncToWallyBufferRunCommand(void)
{
gBattleBankFunc[gActiveBank] = WallyBufferRunCommand;
- ewram[0x160A8] = 0;
- ewram[0x160A9] = 0;
- ewram[0x160AA] = 0;
- ewram[0x160AB] = 0;
+ ewram160A8 = 0;
+ ewram160A9 = 0;
+ ewram160AA = 0;
+ ewram160AB = 0;
}
void WallyBufferRunCommand(void)
@@ -260,59 +261,59 @@ void sub_81372BC(void)
{
u8 r4;
- switch (ewram[0x160A8])
+ switch (ewram160A8)
{
case 0:
- ewram[0x160AA] = 64;
- ewram[0x160A8]++;
+ ewram160AA = 64;
+ ewram160A8++;
// fall through
case 1:
- r4 = --ewram[0x160AA];
+ r4 = --ewram160AA;
if (r4 == 0)
{
PlaySE(SE_SELECT);
Emitcmd33(1, 0, 0);
WallyBufferExecCompleted();
- ewram[0x160A8]++;
- ewram[0x160A9] = r4;
- ewram[0x160AA] = 64;
+ ewram160A8++;
+ ewram160A9 = r4;
+ ewram160AA = 64;
}
break;
case 2:
- r4 = --ewram[0x160AA];
+ r4 = --ewram160AA;
if (r4 == 0)
{
PlaySE(SE_SELECT);
Emitcmd33(1, 0, 0);
WallyBufferExecCompleted();
- ewram[0x160A8]++;
- ewram[0x160A9] = r4;
- ewram[0x160AA] = 64;
+ ewram160A8++;
+ ewram160A9 = r4;
+ ewram160AA = 64;
}
break;
case 3:
- r4 = --ewram[0x160AA];
+ r4 = --ewram160AA;
if (r4 == 0)
{
Emitcmd33(1, 9, 0);
WallyBufferExecCompleted();
- ewram[0x160A8]++;
- ewram[0x160A9] = r4;
- ewram[0x160AA] = 64;
+ ewram160A8++;
+ ewram160A9 = r4;
+ ewram160AA = 64;
}
break;
case 4:
- if (--ewram[0x160AA] == 0)
+ if (--ewram160AA == 0)
{
PlaySE(SE_SELECT);
nullsub_8(0);
sub_802E3E4(1, 0);
- ewram[0x160AA] = 64;
- ewram[0x160A8]++;
+ ewram160AA = 64;
+ ewram160A8++;
}
break;
case 5:
- if (--ewram[0x160AA] == 0)
+ if (--ewram160AA == 0)
{
PlaySE(SE_SELECT);
DestroyMenuCursor();
@@ -569,9 +570,7 @@ u32 sub_8137A84(u8 a, u8 *buffer)
GetMonData(&gPlayerParty[a], MON_DATA_NICKNAME, nickname);
StringCopy10(battlePokemon.nickname, nickname);
GetMonData(&gPlayerParty[a], MON_DATA_OT_NAME, battlePokemon.otName);
- src = (u8 *)&battlePokemon;
- for (size = 0; size < sizeof(battlePokemon); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&battlePokemon, buffer, sizeof(battlePokemon), size, src);
break;
case 1:
data16 = GetMonData(&gPlayerParty[a], MON_DATA_SPECIES);
@@ -592,9 +591,7 @@ u32 sub_8137A84(u8 a, u8 *buffer)
moveData.pp[size] = GetMonData(&gPlayerParty[a], MON_DATA_PP1 + size);
}
moveData.ppBonuses = GetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES);
- src = (u8 *)&moveData;
- for (size = 0; size < sizeof(moveData); size++)
- buffer[size] = src[size];
+ MEMCPY_ALT(&moveData, buffer, sizeof(moveData), size, src);
break;
case 4:
case 5:
@@ -868,38 +865,38 @@ void sub_8138294(u8 a)
{
u8 iv;
- SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, (u8 *)&battlePokemon->species);
- SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, (u8 *)&battlePokemon->item);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPECIES, &battlePokemon->species);
+ SetMonData(&gPlayerParty[a], MON_DATA_HELD_ITEM, &battlePokemon->item);
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&battlePokemon->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&battlePokemon->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &battlePokemon->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &battlePokemon->pp[i]);
}
- SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, (u8 *)&battlePokemon->ppBonuses);
- SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, (u8 *)&battlePokemon->friendship);
- SetMonData(&gPlayerParty[a], MON_DATA_EXP, (u8 *)&battlePokemon->experience);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &battlePokemon->ppBonuses);
+ SetMonData(&gPlayerParty[a], MON_DATA_FRIENDSHIP, &battlePokemon->friendship);
+ SetMonData(&gPlayerParty[a], MON_DATA_EXP, &battlePokemon->experience);
iv = battlePokemon->hpIV;
- SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP_IV, &iv);
iv = battlePokemon->attackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK_IV, &iv);
iv = battlePokemon->defenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF_IV, &iv);
iv = battlePokemon->speedIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED_IV, &iv);
iv = battlePokemon->spAttackIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, (u8 *)&iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK_IV, &iv);
iv = battlePokemon->spDefenseIV;
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, (u8 *)&iv);
- SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, (u8 *)&battlePokemon->personality);
- SetMonData(&gPlayerParty[a], MON_DATA_STATUS, (u8 *)&battlePokemon->status1);
- SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, (u8 *)&battlePokemon->level);
- SetMonData(&gPlayerParty[a], MON_DATA_HP, (u8 *)&battlePokemon->hp);
- SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, (u8 *)&battlePokemon->maxHP);
- SetMonData(&gPlayerParty[a], MON_DATA_ATK, (u8 *)&battlePokemon->attack);
- SetMonData(&gPlayerParty[a], MON_DATA_DEF, (u8 *)&battlePokemon->defense);
- SetMonData(&gPlayerParty[a], MON_DATA_SPEED, (u8 *)&battlePokemon->speed);
- SetMonData(&gPlayerParty[a], MON_DATA_SPATK, (u8 *)&battlePokemon->spAttack);
- SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, (u8 *)&battlePokemon->spDefense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF_IV, &iv);
+ SetMonData(&gPlayerParty[a], MON_DATA_PERSONALITY, &battlePokemon->personality);
+ SetMonData(&gPlayerParty[a], MON_DATA_STATUS, &battlePokemon->status1);
+ SetMonData(&gPlayerParty[a], MON_DATA_LEVEL, &battlePokemon->level);
+ SetMonData(&gPlayerParty[a], MON_DATA_HP, &battlePokemon->hp);
+ SetMonData(&gPlayerParty[a], MON_DATA_MAX_HP, &battlePokemon->maxHP);
+ SetMonData(&gPlayerParty[a], MON_DATA_ATK, &battlePokemon->attack);
+ SetMonData(&gPlayerParty[a], MON_DATA_DEF, &battlePokemon->defense);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPEED, &battlePokemon->speed);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPATK, &battlePokemon->spAttack);
+ SetMonData(&gPlayerParty[a], MON_DATA_SPDEF, &battlePokemon->spDefense);
}
break;
case 1:
@@ -911,8 +908,8 @@ void sub_8138294(u8 a)
case 3:
for (i = 0; i < 4; i++)
{
- SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, (u8 *)&moveData->moves[i]);
- SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, (u8 *)&moveData->pp[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_MOVE1 + i, &moveData->moves[i]);
+ SetMonData(&gPlayerParty[a], MON_DATA_PP1 + i, &moveData->pp[i]);
}
SetMonData(&gPlayerParty[a], MON_DATA_PP_BONUSES, &moveData->ppBonuses);
break;
@@ -1294,16 +1291,16 @@ void WallyHandlecmd19(void)
void WallyHandlecmd20(void)
{
- switch (ewram[0x160A9])
+ switch (ewram160A9)
{
case 0:
sub_80304A8();
- ewram[0x160A9]++;
- ewram[0x160AB] = 80;
+ ewram160A9++;
+ ewram160AB = 80;
// fall through
case 1:
- ewram[0x160AB]--;
- if (ewram[0x160AB] == 0)
+ ewram160AB--;
+ if (ewram160AB == 0)
{
DestroyMenuCursor();
PlaySE(SE_SELECT);
diff --git a/src/battle/battle_interface.c b/src/battle/battle_interface.c
index 8bfeedd4d..0bd2e882f 100644
--- a/src/battle/battle_interface.c
+++ b/src/battle/battle_interface.c
@@ -13,6 +13,7 @@
#include "string_util.h"
#include "task.h"
#include "text.h"
+#include "ewram.h"
struct UnknownStruct5
{
@@ -28,12 +29,6 @@ struct UnknownStruct7
u8 filler0[0x180];
};
-extern u8 ewram[];
-#define ewram520 ((struct UnknownStruct7 *)(ewram + 0x00520))
-#define ewram16088 (*(u8 *) (ewram + 0x16088))
-#define ewram16089 (*(u8 *) (ewram + 0x16089))
-#define ewram17850 ((struct UnknownStruct5 *)(ewram + 0x17850))
-
extern u8 gDisplayedStringBattle[];
extern u8 gNoOfAllBanks;
extern u16 gBattlePartyID[];
@@ -482,7 +477,7 @@ u8 battle_make_oam_normal_battle(u8 a)
SetSubspriteTables(sprite, &gSubspriteTables_820A684[GetBankSide(a)]);
sprite->subspriteMode = 2;
sprite->oam.priority = 1;
- CpuCopy32(sub_8043CDC(1), (void *)(OBJ_VRAM0 + sprite->oam.tileNum * 32), 64);
+ CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + sprite->oam.tileNum * 32, 64);
gSprites[spriteId1].data5 = spriteId3;
gSprites[spriteId1].data6 = a;
@@ -705,11 +700,11 @@ static void sub_8043FC0(u8 a, u8 b)
*(ptr++) = 0x13;
*(ptr++) = 0xF;
*(ptr++) = EOS;
- sub_80034D4((u8 *)0x02000000, str);
+ sub_80034D4(ewram0_9(0), str);
two = 2;
for (i = 0; i < two; i++)
- CpuCopy32((void *)(0x02000020 + i * 64), r7[i] + gSprites[a].oam.tileNum * 32, 32);
+ CpuCopy32((void *)(ewram0_9(1) + i * 64), r7[i] + gSprites[a].oam.tileNum * 32, 32);
}
#ifdef NONMATCHING
@@ -743,7 +738,7 @@ void sub_80440EC(u8 a, s16 b, u8 c)
ptr = sub_8003504(ptr, b, 0x13, 1);
*(ptr++) = 0xBA;
*(ptr++) = 0xFF;
- sub_80034D4((u8 *)0x02000000, str);
+ sub_80034D4(ewram0_9(0), str);
}
else
{
@@ -753,14 +748,14 @@ void sub_80440EC(u8 a, s16 b, u8 c)
r4 = gUnknown_0820A85C;
c = 2;
sub_8003504(ptr, b, 0xF, 1);
- sub_80034D4((u8 *)0x02000000, str);
+ sub_80034D4(ewram0_9(0), str);
}
//asm(""::"r"(a));
//_080441B6
for (i = 0; i < c; i++) // _080440BC
{
void *temp = r4[i] + gSprites[a].oam.tileNum * 32;
- CpuCopy32((void *)(0x02000020 + i * 0x40), temp, 0x20);
+ CpuCopy32((void *)(ewram0_9(1) + i * 0x40), temp, 0x20);
}
}
#else
@@ -878,7 +873,7 @@ _080441B6:\n\
lsls r0, 2\n\
adds r6, r0, r1\n\
adds r7, r4, 0\n\
- ldr r5, _08044208 @ =0x02000020\n\
+ ldr r5, _08044208 @ =gSharedMem + 0x20\n\
mov r4, r8\n\
_080441D6:\n\
ldrh r0, [r6, 0x4]\n\
@@ -904,7 +899,7 @@ _080441F0:\n\
_080441FC: .4byte gUnknown_0820A85C\n\
_08044200: .4byte gUnknown_0820A854\n\
_08044204: .4byte gSprites\n\
-_08044208: .4byte 0x02000020\n\
+_08044208: .4byte gSharedMem + 0x20\n\
_0804420C: .4byte 0x04000008\n\
.syntax divided\n");
}
@@ -940,14 +935,14 @@ static void sub_8044210(u8 a, s16 b, u8 c)
sub_8003504(ptr, b, 0xF, 1);
if (GetBankSide(r4) == 0)
{
- CpuCopy32(sub_8043CDC(0x74), (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x34) * 32), 32);
+ CpuCopy32(sub_8043CDC(0x74), OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x34) * 32, 32);
}
}
r4 = gSprites[a].data5;
- sub_80034D4((u8 *)0x02000000, str);
+ sub_80034D4(ewram0_9(0), str);
for (i = 0; i < r10; i++)
{
- CpuCopy32((void *)(0x02000020 + i * 0x40), r7[i] + gSprites[r4].oam.tileNum * 32, 0x20);
+ CpuCopy32((void *)(ewram0_9(1) + i * 0x40), r7[i] + gSprites[r4].oam.tileNum * 32, 0x20);
}
}
@@ -1000,23 +995,23 @@ void sub_8044338(u8 a, struct Pokemon *pkmn)
}
//_08044486
r5 = gSprites[a].data5;
- ConvertIntToDecimalStringN(str + 6, ewram[0x16089], 1, 2);
- ConvertIntToDecimalStringN(str + 9, ewram[0x16088], 1, 2);
+ ConvertIntToDecimalStringN(str + 6, ewram16089, 1, 2);
+ ConvertIntToDecimalStringN(str + 9, ewram16088, 1, 2);
str[5] = 0;
str[8] = 0xBA;
- sub_80034D4((u8 *)0x02000000, str);
+ sub_80034D4(ewram0_9(0), str);
for (r7 = 0; r7 < 5; r7++)
{
if (r7 <= 1)
{
int foo = (gSprites[r5].oam.tileNum + 2 + r7);
- CpuCopy32((u8 *)0x02000020 + r7 * 0x40, (u8 *)0x06010000 + foo * 32, 32);
+ CpuCopy32(ewram0_9(1) + r7 * 0x40, (u8 *)0x06010000 + foo * 32, 32);
}
else
{
int foo = (r7 + gSprites[r5].oam.tileNum);
- CpuCopy32((u8 *)0x02000020 + r7 * 0x40, (u8 *)0x060100C0 + foo * 32, 32);
+ CpuCopy32(ewram0_9(1) + r7 * 0x40, (u8 *)0x060100C0 + foo * 32, 32);
}
}
}
@@ -1054,7 +1049,7 @@ void sub_8044338(u8 a, struct Pokemon *pkmn)
lsls r1, r0, 1\n\
adds r1, r0\n\
lsls r1, 7\n\
- ldr r3, _080443D4 @ =0x02000520\n\
+ ldr r3, _080443D4 @ =gSharedMem + 0x520\n\
adds r6, r1, r3\n\
movs r0, 0x5\n\
mov r8, r0\n\
@@ -1099,7 +1094,7 @@ _080443C8:\n\
.align 2, 0\n\
_080443CC: .4byte gUnknown_0820A864\n\
_080443D0: .4byte gSprites\n\
-_080443D4: .4byte 0x02000520\n\
+_080443D4: .4byte gSharedMem + 0x520\n\
_080443D8: .4byte gNatureNames\n\
_080443DC:\n\
adds r0, r1, 0\n\
@@ -1198,7 +1193,7 @@ _08044486:\n\
ldrh r5, [r0, 0x38]\n\
lsls r5, 24\n\
lsrs r5, 24\n\
- ldr r4, _08044504 @ =0x02000000\n\
+ ldr r4, _08044504 @ =gSharedMem\n\
ldr r2, _08044508 @ =0x00016089\n\
adds r0, r4, r2\n\
ldrb r1, [r0]\n\
@@ -1227,7 +1222,7 @@ _08044486:\n\
adds r0, r5\n\
lsls r0, 2\n\
adds r5, r0, r6\n\
- ldr r4, _08044510 @ =0x02000020\n\
+ ldr r4, _08044510 @ =gSharedMem + 0x20\n\
_080444DA:\n\
cmp r7, 0x1\n\
bgt _08044514\n\
@@ -1247,10 +1242,10 @@ _080444DA:\n\
_080444F8: .4byte 0x04000008\n\
_080444FC: .4byte gSprites\n\
_08044500: .4byte 0x06010000\n\
-_08044504: .4byte 0x02000000\n\
+_08044504: .4byte gSharedMem\n\
_08044508: .4byte 0x00016089\n\
_0804450C: .4byte 0x00016088\n\
-_08044510: .4byte 0x02000020\n\
+_08044510: .4byte gSharedMem + 0x20\n\
_08044514:\n\
ldrh r1, [r5, 0x4]\n\
lsls r1, 22\n\
@@ -1309,7 +1304,7 @@ void sub_804454C(void)
{
spriteId = gSprites[gHealthboxIDs[i]].data5;
- CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100);
+ CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100);
sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), 0);
sub_8044210(gHealthboxIDs[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1);
}
@@ -1317,7 +1312,7 @@ void sub_804454C(void)
{
draw_status_ailment_maybe(gHealthboxIDs[i]);
sub_8045A5C(gHealthboxIDs[i], &gPlayerParty[gBattlePartyID[i]], 5);
- CpuCopy32(sub_8043CDC(0x75), (void *)(OBJ_VRAM0 + 0x680 + gSprites[gHealthboxIDs[i]].oam.tileNum * 32), 32);
+ CpuCopy32(sub_8043CDC(0x75), OBJ_VRAM0 + 0x680 + gSprites[gHealthboxIDs[i]].oam.tileNum * 32, 32);
}
}
else
@@ -1332,7 +1327,7 @@ void sub_804454C(void)
{
spriteId = gSprites[gHealthboxIDs[i]].data5;
- CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100);
+ CpuFill32(0, OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32, 0x100);
sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), 0);
sub_8044210(gHealthboxIDs[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_MAX_HP), 1);
}
@@ -2414,7 +2409,7 @@ static void sub_80451A0(u8 a, struct Pokemon *pkmn)
ptr[1] = 0x13;
ptr[2] = 0x37;
ptr[3] = EOS;
- ptr = (u8 *)0x02000520 + GetBankIdentity(gSprites[a].data6) * 0x180;
+ ptr = ewram520_2 + GetBankIdentity(gSprites[a].data6) * 0x180;
sub_80034D4(ptr, gDisplayedStringBattle);
i = 0;
@@ -2505,9 +2500,9 @@ static void sub_8045458(u8 a, u8 b)
{
r4 = gSprites[a].data5;
if (b != 0)
- CpuCopy32(sub_8043CDC(0x46), (void *)(OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32), 32);
+ CpuCopy32(sub_8043CDC(0x46), OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32, 32);
else
- CpuFill32(0, (void *)(OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32), 32);
+ CpuFill32(0, OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 8) * 32, 32);
}
}
}
@@ -2568,10 +2563,10 @@ static void draw_status_ailment_maybe(u8 a)
r6 = sub_8043CDC(0x27);
for (i = 0; i < 3; i++)
- CpuCopy32(r6, (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8 + i) * 32), 32);
+ CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8 + i) * 32, 32);
if (!ewram17800[r7].unk0_4)
- CpuCopy32(sub_8043CDC(1), (void *)(OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32), 64);
+ CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 64);
sub_8045458(a, 1);
return;
@@ -2582,13 +2577,13 @@ static void draw_status_ailment_maybe(u8 a)
// I don't like writing the array index like this, but I can't get it to match otherwise.
FillPalette(r0[gBattleInterfaceStatusIcons_DynPal], r4_2 + 0x100, 2);
CpuCopy16(gPlttBufferUnfaded + 0x100 + r4_2, (void *)(OBJ_PLTT + r4_2 * 2), 2);
- CpuCopy32(r6, (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8) * 32), 96);
+ CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8) * 32, 96);
if (IsDoubleBattle() == TRUE || GetBankSide(r7) == TRUE)
{
if (!ewram17800[r7].unk0_4)
{
- CpuCopy32(sub_8043CDC(0), (void *)(OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32), 32);
- CpuCopy32(sub_8043CDC(0x41), (void *)(OBJ_VRAM0 + (gSprites[r10].oam.tileNum + 1) * 32), 32);
+ 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);
}
}
sub_8045458(a, 0);
@@ -2662,18 +2657,18 @@ static void sub_80458B0(u8 a)
s32 r7;
u8 *addr;
- r6 = (u8 *)0x02000520 + GetBankIdentity(gSprites[a].data6) * 0x180;
+ r6 = ewram520_2 + GetBankIdentity(gSprites[a].data6) * 0x180;
r8 = 7;
sub_80034D4(r6, BattleText_SafariBalls);
for (i = 0; i < r8; i++)
CpuCopy32(sub_8043CDC(0x2B), r6 + i * 64, 32);
for (r7 = 3; r7 < 3 + r8; r7++)
{
- addr = (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + MACRO1(r7)) * 32);
+ addr = OBJ_VRAM0 + (gSprites[a].oam.tileNum + MACRO1(r7)) * 32;
CpuCopy32(r6, addr, 32);
r6 += 32;
- addr = (void *)(OBJ_VRAM0 + (8 + gSprites[a].oam.tileNum + MACRO1(r7)) * 32);
+ addr = OBJ_VRAM0 + (8 + gSprites[a].oam.tileNum + MACRO1(r7)) * 32;
CpuCopy32(r6, addr, 32);
r6 += 32;
}
@@ -2691,13 +2686,13 @@ static void sub_8045998(u8 a)
r7 = sub_8003504(r7, gNumSafariBalls, 10, 1);
StringAppend(r7, BattleText_HighlightRed);
status = GetBankIdentity(gSprites[a].data6);
- r7 = (u8 *)0x02000520 + status * 0x180;
+ r7 = ewram520_2 + status * 0x180;
r6 = 5;
sub_80034D4(r7, gDisplayedStringBattle);
- r7 = (u8 *)0x02000520 + status * 0x180 + 32;
+ r7 = ewram520_2 + status * 0x180 + 32;
for (i = 6; i < 6 + r6; i++)
{
- CpuCopy32(r7, (void *)(OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x18 + MACRO1(i)) * 32), 32);
+ CpuCopy32(r7, OBJ_VRAM0 + (gSprites[a].oam.tileNum + 0x18 + MACRO1(i)) * 32, 32);
r7 += 64;
}
}
@@ -2821,9 +2816,9 @@ static void sub_8045D58(u8 a, u8 b)
{
u8 r4 = gSprites[ewram17850[a].unk0].data5;
if (i < 2)
- CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, (void *)(OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 2 + i) * 32), 32);
+ CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, OBJ_VRAM0 + (gSprites[r4].oam.tileNum + 2 + i) * 32, 32);
else
- CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, (void *)(OBJ_VRAM0 + 64 + (i + gSprites[r4].oam.tileNum) * 32), 32);
+ CpuCopy32(sub_8043CDC(r8) + sp8[i] * 32, OBJ_VRAM0 + 64 + (i + gSprites[r4].oam.tileNum) * 32, 32);
}
break;
case 1:
@@ -2837,9 +2832,9 @@ static void sub_8045D58(u8 a, u8 b)
for (i = 0; i < 8; i++)
{
if (i < 4)
- CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, (void *)(OBJ_VRAM0 + (gSprites[ewram17850[a].unk0].oam.tileNum + 0x24 + i) * 32), 32);
+ CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, OBJ_VRAM0 + (gSprites[ewram17850[a].unk0].oam.tileNum + 0x24 + i) * 32, 32);
else
- CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, (void *)(OBJ_VRAM0 + 0xB80 + (i + gSprites[ewram17850[a].unk0].oam.tileNum) * 32), 32);
+ CpuCopy32(sub_8043CDC(0xC) + sp8[i] * 32, OBJ_VRAM0 + 0xB80 + (i + gSprites[ewram17850[a].unk0].oam.tileNum) * 32, 32);
}
break;
}
diff --git a/src/battle/battle_message.c b/src/battle/battle_message.c
index 79855a614..4e8067a49 100644
--- a/src/battle/battle_message.c
+++ b/src/battle/battle_message.c
@@ -12,6 +12,7 @@
#include "battle_setup.h"
#include "battle_tower.h"
#include "flags.h"
+#include "ewram.h"
#define BATTLESTRING_TO_SUB 12
#define BATTLESTRINGS_NO 351
@@ -651,7 +652,7 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst)
if (gTrainerBattleOpponent == 0x400)
{
memset(text, 0xFF, 8);
- memcpy(text, &ewram[0x17002], 7);
+ memcpy(text, ewram17002, 7);
toCpy = text;
}
else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
diff --git a/src/battle/battle_party_menu.c b/src/battle/battle_party_menu.c
index 2f6dc6816..97e9dc0fc 100644
--- a/src/battle/battle_party_menu.c
+++ b/src/battle/battle_party_menu.c
@@ -18,9 +18,7 @@
#include "strings.h"
#include "task.h"
#include "text.h"
-
-extern u8 ewram[];
-#define UNK_201606C_ARRAY (ewram + 0x1606C) // lazy define but whatever.
+#include "ewram.h"
extern u8 sub_806BD58(u8, u8);
extern void PartyMenuPrintMonsLevelOrStatus(void);
@@ -206,7 +204,7 @@ void sub_8094B6C(u8 a, u8 b, u8 c)
if (IsLinkDoubleBattle())
{
- u8 *arr = ewram + 0x1606C + a * 3;
+ u8 *arr = &ewram1606Carr(0, a);
for (i = 0, j = 0; i < 3; i++)
{
diff --git a/src/battle/battle_records.c b/src/battle/battle_records.c
index fd1f528ac..54697593b 100644
--- a/src/battle/battle_records.c
+++ b/src/battle/battle_records.c
@@ -243,7 +243,7 @@ static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y)
void ShowLinkBattleRecords(void) {
s32 i;
MenuDrawTextWindow(1, 0, 28, 18);
- sub_8072BD8((u8 *) gOtherText_BattleResults, 0, 1, 240);
+ sub_8072BD8(gOtherText_BattleResults, 0, 1, 240);
PrintLinkBattleWinsLossesDraws(gSaveBlock1.linkBattleRecords);
#if ENGLISH
diff --git a/src/battle/battle_setup.c b/src/battle/battle_setup.c
index 91a0667d9..8327ed59d 100644
--- a/src/battle/battle_setup.c
+++ b/src/battle/battle_setup.c
@@ -880,19 +880,20 @@ static void CB2_EndFirstBattle(void)
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
}
+// why not just use the macros? maybe its because they didnt want to uncast const every time?
static u32 TrainerBattleLoadArg32(const u8 *ptr)
{
- return ptr[0] | (ptr[1] << 8) | (ptr[2] << 16) | (ptr[3] << 24);
+ return T1_READ_32(ptr);
}
static u16 TrainerBattleLoadArg16(const u8 *ptr)
{
- return ptr[0] | (ptr[1] << 8);
+ return T1_READ_16(ptr);
}
static u8 TrainerBattleLoadArg8(const u8 *ptr)
{
- return ptr[0];
+ return T1_READ_8(ptr);
}
static u16 CurrentOpponentTrainerFlag(void)
@@ -1123,8 +1124,8 @@ void ScrSpecial_StartTrainerEyeRematch(void)
ScriptContext1_Stop();
}
-static u8 *GetTrainerIntroSpeech(void);
-static u8 *GetTrainerNonBattlingSpeech(void);
+static const u8 *GetTrainerIntroSpeech(void);
+static const u8 *GetTrainerNonBattlingSpeech(void);
void ScrSpecial_ShowTrainerIntroSpeech(void)
{
@@ -1207,15 +1208,15 @@ void PlayTrainerEncounterMusic(void)
}
//Returns an empty string if a null pointer was passed, otherwise returns str
-static u8 *SanitizeString(const u8 *str)
+static const u8 *SanitizeString(const u8 *str)
{
if (str)
- return (u8 *) str;
+ return str;
else
- return (u8 *) gOtherText_CancelWithTerminator;
+ return gOtherText_CancelWithTerminator;
}
-static u8 *GetTrainerIntroSpeech(void)
+static const u8 *GetTrainerIntroSpeech(void)
{
return SanitizeString(sTrainerIntroSpeech);
}
@@ -1233,12 +1234,12 @@ u8 *sub_8082830(void)
return gStringVar4;
}
-u8 *unref_sub_808286C(void)
+const u8 *unref_sub_808286C(void)
{
return SanitizeString(sTrainerVictorySpeech);
}
-static u8 *GetTrainerNonBattlingSpeech(void)
+static const u8 *GetTrainerNonBattlingSpeech(void)
{
return SanitizeString(sTrainerCannotBattleSpeech);
}
diff --git a/src/battle/battle_transition.c b/src/battle/battle_transition.c
index 53d32d03a..d0a9bfb92 100644
--- a/src/battle/battle_transition.c
+++ b/src/battle/battle_transition.c
@@ -12,11 +12,11 @@
#include "songs.h"
#include "trainer.h"
#include "field_camera.h"
+#include "ewram.h"
void sub_807DE10(void);
void dp12_8087EA4(void);
-extern u8 ewram[];
extern u16 gUnknown_03005560[];
extern u16 gUnknown_03004DE0[][0x3C0];
@@ -45,7 +45,6 @@ struct TransitionData
s16 data[11];
};
-#define TRANSITION_STRUCT (*(struct TransitionData *) (ewram + 0xC000))
typedef bool8 (*TransitionState)(struct Task* task);
typedef bool8 (*TransitionSpriteCallback)(struct Sprite* sprite);
@@ -1734,8 +1733,8 @@ static void Mugshots_CreateOpponentPlayerSprites(struct Task* task)
task->tMugshotOpponentID = CreateTrainerSprite(sMugshotsTrainerPicIDsTable[mugshotID],
sMugshotsOpponentCoords[mugshotID][0] - 32,
sMugshotsOpponentCoords[mugshotID][1] + 42,
- 0, &ewram[0xC03C]);
- task->tMugshotPlayerID = CreateTrainerSprite(gSaveBlock2.playerGender, 272, 106, 0, &ewram[0xC03C]);
+ 0, ewramC03C);
+ task->tMugshotPlayerID = CreateTrainerSprite(gSaveBlock2.playerGender, 272, 106, 0, ewramC03C);
opponentSprite = &gSprites[task->tMugshotOpponentID];
playerSprite = &gSprites[task->tMugshotPlayerID];
diff --git a/src/battle/calculate_base_damage.c b/src/battle/calculate_base_damage.c
index f5c679876..42c26dee0 100644
--- a/src/battle/calculate_base_damage.c
+++ b/src/battle/calculate_base_damage.c
@@ -11,8 +11,8 @@
#include "species.h"
#include "moves.h"
#include "battle_move_effects.h"
+#include "ewram.h"
-extern u32 dword_2017100[];
extern u16 gBattleTypeFlags;
extern struct BattlePokemon gBattleMons[4];
extern u16 gCurrentMove;
@@ -301,7 +301,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de
}
// flash fire triggered
- if ((dword_2017100[bankAtk] & 1) && type == TYPE_FIRE)
+ if ((eFlashFireArr.arr[bankAtk] & 1) && type == TYPE_FIRE)
damage = (15 * damage) / 10;
}
diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c
index ee3b95678..afdf47979 100644
--- a/src/battle/pokeball.c
+++ b/src/battle/pokeball.c
@@ -14,6 +14,7 @@
#include "task.h"
#include "trig.h"
#include "util.h"
+#include "ewram.h"
extern struct MusicPlayerInfo gMPlay_BGM;
extern u16 gBattleTypeFlags;
diff --git a/src/battle/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c
index 343c8f183..396c4435e 100644
--- a/src/battle/reshow_battle_screen.c
+++ b/src/battle/reshow_battle_screen.c
@@ -7,6 +7,7 @@
#include "text.h"
#include "rom_8077ABC.h"
#include "data2.h"
+#include "ewram.h"
extern struct SpriteTemplate gUnknown_02024E8C;
extern struct Window gUnknown_03004210;
@@ -55,9 +56,6 @@ static void sub_807B184(u8 bank);
static void sub_807B508(u8 bank);
static void sub_807B06C(void);
-#define gReshowState ewram[0x1FFFF]
-#define gHelperState ewram[0x1FFFE]
-
void nullsub_14(void)
{