mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 10:26:39 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef _ESM_LOCKS_H
 | 
						|
#define _ESM_LOCKS_H
 | 
						|
 | 
						|
#include "esm_reader.hpp"
 | 
						|
 | 
						|
namespace ESM {
 | 
						|
 | 
						|
/*
 | 
						|
 * This file covers lockpicks (LOCK), probes (PROB) and armor repair
 | 
						|
 * items (REPA). These have nearly identical data structures.
 | 
						|
 */
 | 
						|
 | 
						|
struct Tool
 | 
						|
{
 | 
						|
  struct Data
 | 
						|
  {
 | 
						|
    float weight;
 | 
						|
    int value;
 | 
						|
 | 
						|
    float quality; // And when I say nearly identical structure, I
 | 
						|
    int uses;      // mean perfectly identical except that these two
 | 
						|
                   // variables are swaped for repair items. Don't ask
 | 
						|
                   // me why.
 | 
						|
  }; // Size = 16
 | 
						|
 | 
						|
  Data data;
 | 
						|
  std::string name, model, icon, script;
 | 
						|
 | 
						|
  void load(ESMReader &esm)
 | 
						|
  {
 | 
						|
    model = esm.getHNString("MODL");
 | 
						|
    name = esm.getHNString("FNAM");
 | 
						|
 | 
						|
    esm.getSubName();
 | 
						|
    NAME n = esm.retSubName();
 | 
						|
    // The data name varies, RIDT for repair items, LKDT for lock
 | 
						|
    // picks, PBDT for probes
 | 
						|
 | 
						|
    esm.getHT(data, 16);
 | 
						|
 | 
						|
    if(n == "RIDT")
 | 
						|
      {
 | 
						|
        // Swap t.data.quality and t.data.uses for repair items (sigh)
 | 
						|
        float tmp = *((float*)&data.uses);
 | 
						|
        data.uses = *((int*)&data.quality);
 | 
						|
        data.quality = tmp;
 | 
						|
      }
 | 
						|
 | 
						|
    script = esm.getHNOString("SCRI");
 | 
						|
    icon = esm.getHNOString("ITEX");
 | 
						|
  }
 | 
						|
};
 | 
						|
}
 | 
						|
#endif
 |