mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-11-04 00:56:39 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef OPENMW_ESSIMPORT_IMPORTSPLM_H
 | 
						|
#define OPENMW_ESSIMPORT_IMPORTSPLM_H
 | 
						|
 | 
						|
#include <vector>
 | 
						|
#include <components/esm/esmcommon.hpp>
 | 
						|
#include <components/esm/util.hpp>
 | 
						|
 | 
						|
namespace ESM
 | 
						|
{
 | 
						|
    class ESMReader;
 | 
						|
}
 | 
						|
 | 
						|
namespace ESSImport
 | 
						|
{
 | 
						|
 | 
						|
struct SPLM
 | 
						|
{
 | 
						|
 | 
						|
#pragma pack(push)
 | 
						|
#pragma pack(1)
 | 
						|
    struct SPDT // 160 bytes
 | 
						|
    {
 | 
						|
        int mType; // 1 = spell, 2 = enchantment, 3 = potion
 | 
						|
        ESM::NAME32 mId; // base ID of a spell/enchantment/potion
 | 
						|
        unsigned char mUnknown[4*4];
 | 
						|
        ESM::NAME32 mCasterId;
 | 
						|
        ESM::NAME32 mSourceId; // empty for spells
 | 
						|
        unsigned char mUnknown2[4*11];
 | 
						|
    };
 | 
						|
 | 
						|
    struct NPDT // 56 bytes
 | 
						|
    {
 | 
						|
        ESM::NAME32 mAffectedActorId;
 | 
						|
        unsigned char mUnknown[4*2];
 | 
						|
        int mMagnitude;
 | 
						|
        float mSecondsActive;
 | 
						|
        unsigned char mUnknown2[4*2];
 | 
						|
    };
 | 
						|
 | 
						|
    struct INAM // 40 bytes
 | 
						|
    {
 | 
						|
        int mUnknown;
 | 
						|
        unsigned char mUnknown2;
 | 
						|
        ESM::FIXED_STRING<35> mItemId; // disintegrated item / bound item / item to re-equip after expiration
 | 
						|
    };
 | 
						|
 | 
						|
    struct CNAM // 36 bytes
 | 
						|
    {
 | 
						|
        int mUnknown; // seems to always be 0
 | 
						|
        ESM::NAME32 mSummonedOrCommandedActor[32];
 | 
						|
    };
 | 
						|
 | 
						|
    struct VNAM // 4 bytes
 | 
						|
    {
 | 
						|
        int mUnknown;
 | 
						|
    };
 | 
						|
 | 
						|
 | 
						|
#pragma pack(pop)
 | 
						|
 | 
						|
    struct ActiveEffect
 | 
						|
    {
 | 
						|
        NPDT mNPDT;
 | 
						|
    };
 | 
						|
 | 
						|
    struct ActiveSpell
 | 
						|
    {
 | 
						|
        int mIndex;
 | 
						|
        SPDT mSPDT;
 | 
						|
        std::string mTarget;
 | 
						|
        std::vector<ActiveEffect> mActiveEffects;
 | 
						|
    };
 | 
						|
 | 
						|
    std::vector<ActiveSpell> mActiveSpells;
 | 
						|
 | 
						|
    void load(ESM::ESMReader& esm);
 | 
						|
};
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
#endif
 |