diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2021-06-29 21:31:19 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2021-06-29 21:31:19 -0400 |
commit | fe2897c8a49579e6aac147d5d365b7fa6c6cdb72 (patch) | |
tree | 0154143abc4812cb2797077501bd889988b265db | |
parent | 7929bdf80b174f31c512970b2fa64652f222a09b (diff) |
Define BSTRUCT_OFF for gBattleStruct macro hacks
-rw-r--r-- | include/ewram.h | 63 | ||||
-rw-r--r-- | src/battle_ai_script_commands.c | 2 | ||||
-rw-r--r-- | src/battle_interface.c | 4 | ||||
-rw-r--r-- | src/battle_main.c | 4 | ||||
-rw-r--r-- | src/battle_script_commands.c | 6 |
5 files changed, 38 insertions, 41 deletions
diff --git a/include/ewram.h b/include/ewram.h index 947fa274e..0f5abd9c7 100644 --- a/include/ewram.h +++ b/include/ewram.h @@ -89,40 +89,37 @@ extern u8 gSharedMem[]; // Battle Struct // For matching purposes, the struct is placed at 0x02000000 and // there's a ton of filler. -#define ewram16004arr(i, battler) (gSharedMem[0x16004 + i + battler * 2]) -#define ewram16010arr(battler) (gSharedMem[0x16010 + battler]) -#define ewram16020arr(i) (gSharedMem[0x16020 + i]) -#define ewram16058 (gSharedMem[0x16058]) -#define ewram16060(battler) (gSharedMem[0x16060 + battler]) -#define BATTLE_PARTY_ID(battler) (gSharedMem[0x16064 + battler]) -#define ewram16064arr(battler) (gSharedMem[0x16064 + battler]) -#define ewram16068arr(i) (gSharedMem[0x16068 + i]) -#define ewram1606Carr(i, a) (gSharedMem[0x1606C + i + a * 3]) -#define ewram16088 (gSharedMem[0x16088]) -#define ewram16089 (gSharedMem[0x16089]) - -#define ewram1608Carr(battler) (gSharedMem[0x1608C + battler]) -#define ewram16094arr(battler) (gSharedMem[0x16094 + battler]) -#define eLastTakenMove_flat(i) (gSharedMem[0x160AC + i]) -#define eLastTakenMove_2d(i, battler) (gSharedMem[0x160AC + i + battler * 2]) -#define eHpOnSwitchout(battler) (gSharedMem[0x160BC + battler * 2]) -#define ewram160C8arr(battler) (gSharedMem[0x160C8 + (battler / 2)]) -#define ewram160CCarr(i) (gSharedMem[0x160CC + i]) -#define USED_HELD_ITEM(battler) ((((u16*)(&gSharedMem[0x160CC + battler * 2])))) -#define USED_HELD_ITEMS(battler) (*(u16 *)&gSharedMem[0x160CC + 2 * (battler)]) -#define ewram160D4(battler) (gSharedMem[0x160D4 + (battler / 2) * 2]) -#define ewram160D8(battler) (gSharedMem[0x160D8 + (battler / 2)]) -#define ewram160DA(battler) (gSharedMem[0x160DA + (battler >> 1)]) -#define ewram160E0(i) (gSharedMem[0x160E0 + i]) -#define CHOICED_MOVE(battler) (((u16*)(&gSharedMem[0x160E8 + battler * 2]))) -#define ewram160E8arr(i) (gSharedMem[0x160E8 + i]) -#define ewram160E8arr2(i, battler) (gSharedMem[0x160E8 + i + battler * 2]) -#define ewram160F0arr(i) (gSharedMem[0x160F0 + i]) -#define ewram16100arr(i) (gSharedMem[0x16100 + i]) -#define ewram16100arr2(i, battler) (gSharedMem[0x16100 + i + battler * 4]) -#define ewram16108arr(i) (gSharedMem[0x16108 + i]) +#define BSTRUCT_OFF(member) (offsetof(struct BattleStruct, member) + ((u8 *)gBattleStruct - gSharedMem)) + +#define ewram16004arr(i, battler) (gSharedMem[BSTRUCT_OFF(wrappedMove) + i + battler * 2]) +#define ewram16010arr(battler) (gSharedMem[BSTRUCT_OFF(moveTarget) + battler]) +#define ewram16020arr(i) (gSharedMem[BSTRUCT_OFF(wrappedBy) + i]) +#define ewram16060(battler) (gSharedMem[BSTRUCT_OFF(unk16060) + battler]) +#define BATTLE_PARTY_ID(battler) (gSharedMem[BSTRUCT_OFF(unk16064) + battler]) +#define ewram16068arr(i) (gSharedMem[BSTRUCT_OFF(monToSwitchIntoId) + i]) +#define ewram1606Carr(i, a) (gSharedMem[BSTRUCT_OFF(unk1606C) + i + a * 3]) +#define ewram1608Carr(battler) (gSharedMem[BSTRUCT_OFF(ChosenMoveID) + battler]) +#define ewram16094arr(battler) (gSharedMem[BSTRUCT_OFF(unk16094) + battler]) +#define eLastTakenMove_flat(i) (gSharedMem[BSTRUCT_OFF(lastTakenMove) + i]) +#define eLastTakenMove_2d(i, battler) (gSharedMem[BSTRUCT_OFF(lastTakenMove) + i + battler * 2]) +#define eHpOnSwitchout(battler) (gSharedMem[BSTRUCT_OFF(HP_OnSwitchout) + battler * 2]) +#define ewram160C8arr(battler) (gSharedMem[BSTRUCT_OFF(AI_monToSwitchIntoId) + (battler / 2)]) +#define ewram160CCarr(i) (gSharedMem[BSTRUCT_OFF(usedHeldItems) + i]) +#define USED_HELD_ITEM(battler) ((((u16*)(&gSharedMem[BSTRUCT_OFF(usedHeldItems) + battler * 2])))) +#define USED_HELD_ITEMS(battler) (*(u16 *)&gSharedMem[BSTRUCT_OFF(usedHeldItems) + 2 * (battler)]) +#define AI_ARRAY_160CC(i) (gSharedMem[BSTRUCT_OFF(usedHeldItems) + i * 2]) +#define ewram160D4(battler) (gSharedMem[BSTRUCT_OFF(unk160D4) + (battler / 2) * 2]) +#define ewram160D8(battler) (gSharedMem[BSTRUCT_OFF(unk160D8) + (battler / 2)]) +#define ewram160DA(battler) (gSharedMem[BSTRUCT_OFF(unk160DA) + (battler >> 1)]) +#define ewram160E0(i) (gSharedMem[BSTRUCT_OFF(unk160E0) + i]) +#define CHOICED_MOVE(battler) (((u16*)(&gSharedMem[BSTRUCT_OFF(choicedMove) + battler * 2]))) +#define ewram160E8arr(i) (gSharedMem[BSTRUCT_OFF(choicedMove) + i]) +#define ewram160E8arr2(i, battler) (gSharedMem[BSTRUCT_OFF(choicedMove) + i + battler * 2]) +#define ewram160F0arr(i) (gSharedMem[BSTRUCT_OFF(changedItems) + i]) +#define ewram16100arr(i) (gSharedMem[BSTRUCT_OFF(lastTakenMoveFrom) + i]) +#define ewram16100arr2(i, battler) (gSharedMem[BSTRUCT_OFF(lastTakenMoveFrom) + i + battler * 4]) +#define ewram16108arr(i) (gSharedMem[BSTRUCT_OFF(lastTakenMoveFrom) + 8 + i]) #define ewram16400 (gSharedMem + 0x16400) -#define AI_ARRAY_160CC(i) (gSharedMem[0x160CC + i * 2]) // gBattleResources #define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800)) diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 9f0cc406d..0d1a4c351 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -1758,7 +1758,7 @@ static void BattleAICmd_get_used_item(void) else index = gBattlerTarget; - AI_THINKING_STRUCT->funcResult = AI_ARRAY_160CC(index); + AI_THINKING_STRUCT->funcResult = gSharedMem[offsetof(struct BattleStruct, usedHeldItems) + 2 * index]; gAIScriptPtr += 2; } diff --git a/src/battle_interface.c b/src/battle_interface.c index 3d17bedd8..7b27b3997 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1121,8 +1121,8 @@ void sub_8044338(u8 a, struct Pokemon *pkmn) } //_08044486 r5 = gSprites[a].data[5]; - ConvertIntToDecimalStringN(str + 6, ewram16089, 1, 2); - ConvertIntToDecimalStringN(str + 9, ewram16088, 1, 2); + ConvertIntToDecimalStringN(str + 6, gBattleStruct->safariCatchFactor, 1, 2); + ConvertIntToDecimalStringN(str + 9, gBattleStruct->safariFleeRate, 1, 2); str[5] = 0; str[8] = 0xBA; sub_80034D4(eBattleInterfaceGfxBuffer, str); diff --git a/src/battle_main.c b/src/battle_main.c index e8978b01c..4988fe660 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -4338,7 +4338,7 @@ void sub_8012324(void) } break; case B_ACTION_SWITCH: - ewram16064arr(gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; + BATTLE_PARTY_ID(gActiveBattler) = gBattlerPartyIndexes[gActiveBattler]; if (gBattleMons[gActiveBattler].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION) || gStatuses3[gActiveBattler] & STATUS3_ROOTED) { @@ -5367,7 +5367,7 @@ void HandleAction_Switch(void) gActionSelectionCursor[gBattlerAttacker] = 0; gMoveSelectionCursor[gBattlerAttacker] = 0; - PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, ewram16064arr(gBattlerAttacker)) + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, BATTLE_PARTY_ID(gBattlerAttacker)) gBattleStruct->scriptingActive = gBattlerAttacker; gBattlescriptCurrInstr = BattleScript_ActionSwitch; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 270151d17..a41c7678e 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -10303,7 +10303,7 @@ static bool8 sub_80264C0(void) { if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) { - ewram16064arr(gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; + BATTLE_PARTY_ID(gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; } else { @@ -10313,7 +10313,7 @@ static bool8 sub_80264C0(void) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); return 0; } - ewram16064arr(gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; + BATTLE_PARTY_ID(gBattlerTarget) = gBattlerPartyIndexes[gBattlerTarget]; } gBattlescriptCurrInstr = BattleScript_SuccessForceOut; return 1; @@ -13122,7 +13122,7 @@ static void atkE2_switchoutabilities(void) { case ABILITY_NATURAL_CURE: gBattleMons[gActiveBattler].status1 = 0; - BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBattler)], 4, &gBattleMons[gActiveBattler].status1); + BtlController_EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[BATTLE_PARTY_ID(gActiveBattler)], 4, &gBattleMons[gActiveBattler].status1); MarkBattlerForControllerExec(gActiveBattler); break; } |