#ifndef STAT_DEFS #define STAT_DEFS namespace fallout { // The minimum value of SPECIAL stat. #define PRIMARY_STAT_MIN (1) // The maximum value of SPECIAL stat. #define PRIMARY_STAT_MAX (10) // The number of values of SPECIAL stat. // // Every stat value has it's own human readable description. This value is used // as number of these descriptions. #define PRIMARY_STAT_RANGE ((PRIMARY_STAT_MAX) - (PRIMARY_STAT_MIN) + 1) // The maximum number of PC level. #define PC_LEVEL_MAX 99 // Available stats. typedef enum Stat { STAT_STRENGTH, STAT_PERCEPTION, STAT_ENDURANCE, STAT_CHARISMA, STAT_INTELLIGENCE, STAT_AGILITY, STAT_LUCK, STAT_MAXIMUM_HIT_POINTS, STAT_MAXIMUM_ACTION_POINTS, STAT_ARMOR_CLASS, STAT_UNARMED_DAMAGE, STAT_MELEE_DAMAGE, STAT_CARRY_WEIGHT, STAT_SEQUENCE, STAT_HEALING_RATE, STAT_CRITICAL_CHANCE, STAT_BETTER_CRITICALS, STAT_DAMAGE_THRESHOLD, STAT_DAMAGE_THRESHOLD_LASER, STAT_DAMAGE_THRESHOLD_FIRE, STAT_DAMAGE_THRESHOLD_PLASMA, STAT_DAMAGE_THRESHOLD_ELECTRICAL, STAT_DAMAGE_THRESHOLD_EMP, STAT_DAMAGE_THRESHOLD_EXPLOSION, STAT_DAMAGE_RESISTANCE, STAT_DAMAGE_RESISTANCE_LASER, STAT_DAMAGE_RESISTANCE_FIRE, STAT_DAMAGE_RESISTANCE_PLASMA, STAT_DAMAGE_RESISTANCE_ELECTRICAL, STAT_DAMAGE_RESISTANCE_EMP, STAT_DAMAGE_RESISTANCE_EXPLOSION, STAT_RADIATION_RESISTANCE, STAT_POISON_RESISTANCE, STAT_AGE, STAT_GENDER, STAT_CURRENT_HIT_POINTS, STAT_CURRENT_POISON_LEVEL, STAT_CURRENT_RADIATION_LEVEL, STAT_COUNT, // Number of primary stats. PRIMARY_STAT_COUNT = 7, // Number of SPECIAL stats (primary + secondary). SPECIAL_STAT_COUNT = 33, // Number of saveable stats (i.e. excluding CURRENT pseudostats). SAVEABLE_STAT_COUNT = 35, } Stat; #define STAT_INVALID -1 // Special stats that are only relevant to player character. typedef enum PcStat { PC_STAT_UNSPENT_SKILL_POINTS, PC_STAT_LEVEL, PC_STAT_EXPERIENCE, PC_STAT_REPUTATION, PC_STAT_KARMA, PC_STAT_COUNT, } PcStat; } // namespace fallout #endif /* STAT_DEFS */