|
|
@ -17,7 +17,7 @@ namespace ESSImport
|
|
|
|
/// Other player data
|
|
|
|
/// Other player data
|
|
|
|
struct PCDT
|
|
|
|
struct PCDT
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int mBounty;
|
|
|
|
int32_t mBounty;
|
|
|
|
std::string mBirthsign;
|
|
|
|
std::string mBirthsign;
|
|
|
|
|
|
|
|
|
|
|
|
std::vector<std::string> mKnownDialogueTopics;
|
|
|
|
std::vector<std::string> mKnownDialogueTopics;
|
|
|
@ -41,13 +41,11 @@ namespace ESSImport
|
|
|
|
PlayerFlags_LevitationDisabled = 0x80000
|
|
|
|
PlayerFlags_LevitationDisabled = 0x80000
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
#pragma pack(push)
|
|
|
|
|
|
|
|
#pragma pack(1)
|
|
|
|
|
|
|
|
struct FNAM
|
|
|
|
struct FNAM
|
|
|
|
{
|
|
|
|
{
|
|
|
|
unsigned char mRank;
|
|
|
|
unsigned char mRank;
|
|
|
|
unsigned char mUnknown1[3];
|
|
|
|
unsigned char mUnknown1[3];
|
|
|
|
int mReputation;
|
|
|
|
int32_t mReputation;
|
|
|
|
unsigned char mFlags; // 0x1: unknown, 0x2: expelled
|
|
|
|
unsigned char mFlags; // 0x1: unknown, 0x2: expelled
|
|
|
|
unsigned char mUnknown2[3];
|
|
|
|
unsigned char mUnknown2[3];
|
|
|
|
ESM::NAME32 mFactionName;
|
|
|
|
ESM::NAME32 mFactionName;
|
|
|
@ -59,7 +57,7 @@ namespace ESSImport
|
|
|
|
{
|
|
|
|
{
|
|
|
|
float mX, mY, mZ; // worldspace position
|
|
|
|
float mX, mY, mZ; // worldspace position
|
|
|
|
float mRotZ; // Z angle in radians
|
|
|
|
float mRotZ; // Z angle in radians
|
|
|
|
int mCellX, mCellY; // grid coordinates; for interior cells this is always (0, 0)
|
|
|
|
int32_t mCellX, mCellY; // grid coordinates; for interior cells this is always (0, 0)
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct Rotation
|
|
|
|
struct Rotation
|
|
|
@ -67,15 +65,15 @@ namespace ESSImport
|
|
|
|
float mData[3][3];
|
|
|
|
float mData[3][3];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
int mPlayerFlags; // controls, camera and draw state
|
|
|
|
int32_t mPlayerFlags; // controls, camera and draw state
|
|
|
|
unsigned int mLevelProgress;
|
|
|
|
uint32_t mLevelProgress;
|
|
|
|
float mSkillProgress[27]; // skill progress, non-uniform scaled
|
|
|
|
float mSkillProgress[27]; // skill progress, non-uniform scaled
|
|
|
|
unsigned char mSkillIncreases[8]; // number of skill increases for each attribute
|
|
|
|
unsigned char mSkillIncreases[8]; // number of skill increases for each attribute
|
|
|
|
int mTelekinesisRangeBonus; // in units; seems redundant
|
|
|
|
int32_t mTelekinesisRangeBonus; // in units; seems redundant
|
|
|
|
float mVisionBonus; // range: <0.0, 1.0>; affected by light spells and Get/Mod/SetPCVisionBonus
|
|
|
|
float mVisionBonus; // range: <0.0, 1.0>; affected by light spells and Get/Mod/SetPCVisionBonus
|
|
|
|
int mDetectKeyMagnitude; // seems redundant
|
|
|
|
int32_t mDetectKeyMagnitude; // seems redundant
|
|
|
|
int mDetectEnchantmentMagnitude; // seems redundant
|
|
|
|
int32_t mDetectEnchantmentMagnitude; // seems redundant
|
|
|
|
int mDetectAnimalMagnitude; // seems redundant
|
|
|
|
int32_t mDetectAnimalMagnitude; // seems redundant
|
|
|
|
MarkLocation mMarkLocation;
|
|
|
|
MarkLocation mMarkLocation;
|
|
|
|
unsigned char mUnknown3[4];
|
|
|
|
unsigned char mUnknown3[4];
|
|
|
|
Rotation mVerticalRotation;
|
|
|
|
Rotation mVerticalRotation;
|
|
|
@ -85,16 +83,15 @@ namespace ESSImport
|
|
|
|
|
|
|
|
|
|
|
|
struct ENAM
|
|
|
|
struct ENAM
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int mCellX;
|
|
|
|
int32_t mCellX;
|
|
|
|
int mCellY;
|
|
|
|
int32_t mCellY;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
struct AADT // 44 bytes
|
|
|
|
struct AADT // 44 bytes
|
|
|
|
{
|
|
|
|
{
|
|
|
|
int animGroupIndex; // See convertANIS() for the mapping.
|
|
|
|
int32_t animGroupIndex; // See convertANIS() for the mapping.
|
|
|
|
unsigned char mUnknown5[40];
|
|
|
|
unsigned char mUnknown5[40];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
#pragma pack(pop)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
std::vector<FNAM> mFactions;
|
|
|
|
std::vector<FNAM> mFactions;
|
|
|
|
PNAM mPNAM;
|
|
|
|
PNAM mPNAM;
|
|
|
|