fallout2-ce/src/stat.h

57 lines
1.6 KiB
C++

#ifndef STAT_H
#define STAT_H
#include "db.h"
#include "obj_types.h"
#include "proto_types.h"
#include "stat_defs.h"
namespace fallout {
#define STAT_ERR_INVALID_STAT (-5)
int statsInit();
int statsReset();
int statsExit();
int statsLoad(File* stream);
int statsSave(File* stream);
int critterGetStat(Object* critter, int stat);
int critterGetBaseStatWithTraitModifier(Object* critter, int stat);
int critterGetBaseStat(Object* critter, int stat);
int critterGetBonusStat(Object* critter, int stat);
int critterSetBaseStat(Object* critter, int stat, int value);
int critterIncBaseStat(Object* critter, int stat);
int critterDecBaseStat(Object* critter, int stat);
int critterSetBonusStat(Object* critter, int stat, int value);
void protoCritterDataResetStats(CritterProtoData* data);
void critterUpdateDerivedStats(Object* critter);
char* statGetName(int stat);
char* statGetDescription(int stat);
char* statGetValueDescription(int value);
int pcGetStat(int pcStat);
int pcSetStat(int pcStat, int value);
void pcStatsReset();
int pcGetExperienceForNextLevel();
int pcGetExperienceForLevel(int level);
char* pcStatGetName(int pcStat);
char* pcStatGetDescription(int pcStat);
int statGetFrmId(int stat);
int statRoll(Object* critter, int stat, int modifier, int* howMuch);
int pcAddExperience(int xp, int* xpGained = nullptr);
int pcAddExperienceWithOptions(int xp, bool a2, int* xpGained = nullptr);
int pcSetExperience(int a1);
static inline bool statIsValid(int stat)
{
return stat >= 0 && stat < STAT_COUNT;
}
static inline bool pcStatIsValid(int pcStat)
{
return pcStat >= 0 && pcStat < PC_STAT_COUNT;
}
} // namespace fallout
#endif /* STAT_H */