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 /include/ewram.h | |
parent | 7929bdf80b174f31c512970b2fa64652f222a09b (diff) |
Define BSTRUCT_OFF for gBattleStruct macro hacks
Diffstat (limited to 'include/ewram.h')
-rw-r--r-- | include/ewram.h | 63 |
1 files changed, 30 insertions, 33 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)) |