mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-31 22:26:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			104 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
	
		
			2 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
 |