summaryrefslogtreecommitdiff
path: root/include/dungeon_entity.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/dungeon_entity.h')
-rw-r--r--include/dungeon_entity.h33
1 files changed, 21 insertions, 12 deletions
diff --git a/include/dungeon_entity.h b/include/dungeon_entity.h
index 2567f79..8a5a032 100644
--- a/include/dungeon_entity.h
+++ b/include/dungeon_entity.h
@@ -7,10 +7,20 @@
#include "position.h"
#define MAX_STAT_STAGE 20
+#define STAT_MULTIPLIER_THRESHOLD 63
+#define DEFAULT_STAT_STAGE 10
+#define DEFAULT_STAT_MULTIPLIER 256
#define MAX_MOVEMENT_SPEED 4
#define MAX_STOCKPILE_COUNT 3
#define NUM_SPEED_TURN_COUNTERS 5
+#define STAT_STAGE_ATTACK 0
+#define STAT_STAGE_SPECIAL_ATTACK 1
+#define STAT_STAGE_DEFENSE 0
+#define STAT_STAGE_SPECIAL_DEFENSE 1
+#define STAT_STAGE_ACCURACY 0
+#define STAT_STAGE_EVASION 1
+
struct DungeonActionContainer
{
/* 0x0 */ u16 action;
@@ -52,20 +62,20 @@ struct DungeonEntityData
/* 0x18 */ u32 expPoints;
// Temporary stat boosts/drops from effects like Growl or Swords Dance.
// These start at 10 and are in the range [1, 19].
- /* 0x1C */ s16 attackStage;
- /* 0x1E */ s16 specialAttackStage;
- /* 0x20 */ s16 defenseStage;
- /* 0x22 */ s16 specialDefenseStage;
- /* 0x24 */ s16 accuracyStage;
- /* 0x26 */ s16 evasionStage;
+ // Index 0 is Attack. Index 1 is Special Attack.
+ /* 0x1C */ s16 attackStages[2];
+ // Index 0 is Defense. Index 1 is Special Defense.
+ /* 0x20 */ s16 defenseStages[2];
+ // Index 0 is accuracy. Index 1 is evasion.
+ /* 0x24 */ s16 accuracyStages[2];
// // When a Fire-type move is used on a Pokémon with Flash Fire, this value increases the power of the Pokémon's Fire-type moves.
/* 0x28 */ s16 flashFireBoost;
u8 fill2A[0x2C - 0x2A];
// These start at 0x1000, and are halved by certain moves like Screech to lower the corresponding stat.
- /* 0x2C */ s32 attackMultiplier;
- /* 0x30 */ s32 specialAttackMultiplier;
- /* 0x34 */ s32 defenseMultiplier;
- /* 0x38 */ s32 specialDefenseMultiplier;
+ // Index 0 is Attack. Index 1 is Special Attack.
+ /* 0x2C */ s32 attackMultipliers[2];
+ // Index 0 is Defense. Index 1 is Special Defense.
+ /* 0x34 */ s32 defenseMultipliers[2];
/* 0x3C */ s16 hiddenPowerPower;
/* 0x3E */ u8 hiddenPowerType;
u8 fill3F;
@@ -77,8 +87,7 @@ struct DungeonEntityData
/* 0x58 */ struct Position itemTargetPosition;
/* 0x5C */ u8 type1;
/* 0x5D */ u8 type2;
- /* 0x5E */ u8 ability1;
- /* 0x5F */ u8 ability2;
+ /* 0x5E */ u8 abilities[2];
/* 0x60 */ struct ItemSlot heldItem;
u8 fill64[0x68 - 0x64];
/* 0x68 */ struct Position previousPosition1;