|
|
|
#ifndef _ESM_ARMO_H
|
|
|
|
#define _ESM_ARMO_H
|
|
|
|
|
|
|
|
#include "esm_reader.hpp"
|
|
|
|
|
|
|
|
namespace ESM {
|
|
|
|
|
|
|
|
enum PartReferenceType
|
|
|
|
{
|
|
|
|
PRT_Head = 0,
|
|
|
|
PRT_Hair = 1,
|
|
|
|
PRT_Neck = 2,
|
|
|
|
PRT_Cuirass = 3,
|
|
|
|
PRT_Groin = 4,
|
|
|
|
PRT_Skirt = 5,
|
|
|
|
PRT_RHand = 6,
|
|
|
|
PRT_LHand = 7,
|
|
|
|
PRT_RWrist = 8,
|
|
|
|
PRT_LWrist = 9,
|
|
|
|
PRT_Shield = 10,
|
|
|
|
PRT_RForearm = 11,
|
|
|
|
PRT_LForearm = 12,
|
|
|
|
PRT_RUpperarm = 13,
|
|
|
|
PRT_LUpperarm = 14,
|
|
|
|
PRT_RFoot = 15,
|
|
|
|
PRT_LFoot = 16,
|
|
|
|
PRT_RAnkle = 17,
|
|
|
|
PRT_LAnkle = 18,
|
|
|
|
PRT_RKnee = 19,
|
|
|
|
PRT_LKnee = 20,
|
|
|
|
PRT_RLeg = 21,
|
|
|
|
PRT_LLeg = 22,
|
|
|
|
PRT_RPauldron = 23,
|
|
|
|
PRT_LPauldron = 24,
|
|
|
|
PRT_Weapon = 25,
|
|
|
|
PRT_Tail = 26
|
|
|
|
};
|
|
|
|
|
|
|
|
// Reference to body parts
|
|
|
|
struct PartReference
|
|
|
|
{
|
|
|
|
char part;
|
|
|
|
std::string male, female;
|
|
|
|
};
|
|
|
|
|
|
|
|
// A list of references to body parts
|
|
|
|
struct PartReferenceList
|
|
|
|
{
|
|
|
|
std::vector<PartReference> parts;
|
|
|
|
|
|
|
|
void load(ESMReader &esm)
|
|
|
|
{
|
|
|
|
while(esm.isNextSub("INDX"))
|
|
|
|
{
|
|
|
|
PartReference pr;
|
|
|
|
esm.getHT(pr.part); // The INDX byte
|
|
|
|
pr.male = esm.getHNOString("BNAM");
|
|
|
|
pr.female = esm.getHNOString("CNAM");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Armor
|
|
|
|
{
|
|
|
|
enum Type
|
|
|
|
{
|
|
|
|
Helmet = 0,
|
|
|
|
Cuirass = 1,
|
|
|
|
LPauldron = 2,
|
|
|
|
RPauldron = 3,
|
|
|
|
Greaves = 4,
|
|
|
|
Boots = 5,
|
|
|
|
LGauntlet = 6,
|
|
|
|
RGauntlet = 7,
|
|
|
|
Shield = 8,
|
|
|
|
LBracer = 9,
|
|
|
|
RBracer = 10
|
|
|
|
};
|
|
|
|
|
|
|
|
struct AODTstruct
|
|
|
|
{
|
|
|
|
int type;
|
|
|
|
float weight;
|
|
|
|
int value, health, enchant, armor;
|
|
|
|
};
|
|
|
|
|
|
|
|
AODTstruct data;
|
|
|
|
PartReferenceList parts;
|
|
|
|
|
|
|
|
std::string name, model, icon, script, enchant;
|
|
|
|
|
|
|
|
void load(ESMReader &esm)
|
|
|
|
{
|
|
|
|
model = esm.getHNString("MODL");
|
|
|
|
name = esm.getHNString("FNAM");
|
|
|
|
script = esm.getHNOString("SCRI");
|
|
|
|
esm.getHNT(data, "AODT", 24);
|
|
|
|
icon = esm.getHNOString("ITEX");
|
|
|
|
parts.load(esm);
|
|
|
|
enchant = esm.getHNOString("ENAM");
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|