mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 07:26:39 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			104 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#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
 |