diff options
-rw-r--r-- | arm9/src/pokemon.c | 2 | ||||
-rw-r--r-- | arm9/src/waza.c | 46 | ||||
-rw-r--r-- | include/move_data.h | 33 |
3 files changed, 49 insertions, 32 deletions
diff --git a/arm9/src/pokemon.c b/arm9/src/pokemon.c index 9bd9764d..8df597a6 100644 --- a/arm9/src/pokemon.c +++ b/arm9/src/pokemon.c @@ -2859,7 +2859,7 @@ void FUN_02069718(struct BoxPokemon * boxmon, u16 move) } moves[3] = move; - pp[3] = (u8)GetWazaAttr(move, 5); + pp[3] = (u8)GetWazaAttr(move, MOVEATTR_PP); ppUp[3] = 0; for (i = 0; i < 4; i++) diff --git a/arm9/src/waza.c b/arm9/src/waza.c index 4b505482..f394fedd 100644 --- a/arm9/src/waza.c +++ b/arm9/src/waza.c @@ -15,7 +15,7 @@ void LoadAllWazaTbl(struct WazaTbl * dest) ReadFromNarcMemberByIdPair(dest, NARC_POKETOOL_WAZA_WAZA_TBL, 0, 0, (NUM_MOVES + 1) * sizeof(struct WazaTbl)); } -u32 GetWazaAttr(u16 waza, u32 attr) +u32 GetWazaAttr(u16 waza, MoveAttr attr) { struct WazaTbl wazaTbl; LoadWazaEntry(waza, &wazaTbl); @@ -27,38 +27,40 @@ u8 WazaGetMaxPp(u16 waza, u8 ppUp) u8 pp; if (ppUp > 3) ppUp = 3; - pp = (u8)GetWazaAttr(waza, 5); + pp = (u8)GetWazaAttr(waza, MOVEATTR_PP); return (u8)(pp + (pp * 20 * ppUp) / 100); } -u32 GetAttrFromWazaTbl(struct WazaTbl * wazaTbl, u32 attr) +u32 GetAttrFromWazaTbl(struct WazaTbl * wazaTbl, MoveAttr attr) { switch (attr) { - case 0: - return wazaTbl->unk0; - case 1: + case MOVEATTR_EFFECT: + return wazaTbl->effect; + case MOVEATTR_UNK1: return wazaTbl->unk2; - case 2: - return wazaTbl->unk3; - case 3: - return wazaTbl->unk4; - case 4: - return wazaTbl->unk5; - case 5: + case MOVEATTR_POWER: + return wazaTbl->power; + case MOVEATTR_TYPE: + return wazaTbl->type; + case MOVEATTR_ACCURACY: + return wazaTbl->accuracy; + case MOVEATTR_PP: return wazaTbl->pp; - case 6: - return wazaTbl->unk7; - case 7: + case MOVEATTR_EFFECT_CHANCE: + return wazaTbl->effectChance; + case MOVEATTR_UNK7: return wazaTbl->unk8; - case 8: - return wazaTbl->unkA; - case 9: + case MOVEATTR_PRIORTY: + return wazaTbl->priority; + case MOVEATTR_UNK9: return wazaTbl->unkB; - case 10: + case MOVEATTR_UNK10: return wazaTbl->unkC; - case 11: - return wazaTbl->unkD; + case MOVEATTR_CONTEST_TYPE: + return wazaTbl->contestType; + default: + return (u32)wazaTbl; } } diff --git a/include/move_data.h b/include/move_data.h index 5267bfb1..a970e1bf 100644 --- a/include/move_data.h +++ b/include/move_data.h @@ -3,24 +3,39 @@ struct WazaTbl { - u16 unk0; + u16 effect; u8 unk2; - u8 unk3; - u8 unk4; - u8 unk5; + u8 power; + u8 type; + u8 accuracy; u8 pp; - u8 unk7; + u8 effectChance; u16 unk8; - s8 unkA; + s8 priority; u8 unkB; u8 unkC; - u8 unkD; + u8 contestType; u8 padding[2]; }; +typedef enum MoveAttr { + MOVEATTR_EFFECT = 0, + MOVEATTR_UNK1, + MOVEATTR_POWER, + MOVEATTR_TYPE, + MOVEATTR_ACCURACY, + MOVEATTR_PP, + MOVEATTR_EFFECT_CHANCE, + MOVEATTR_UNK7, + MOVEATTR_PRIORTY, + MOVEATTR_UNK9, + MOVEATTR_UNK10, + MOVEATTR_CONTEST_TYPE, +} MoveAttr; + void LoadAllWazaTbl(struct WazaTbl * dest); u8 WazaGetMaxPp(u16 move, u8 ppUp); -u32 GetWazaAttr(u16 move, u32 attr); -u32 GetAttrFromWazaTbl(struct WazaTbl * wazaTbl, u32 attr); +u32 GetWazaAttr(u16 move, MoveAttr attr); +u32 GetAttrFromWazaTbl(struct WazaTbl * wazaTbl, MoveAttr attr); #endif //POKEDIAMOND_MOVE_DATA_H |