mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-09 12:42:11 +00:00
71 lines
1.7 KiB
C++
71 lines
1.7 KiB
C++
|
#ifndef _ESM_MGEF_H
|
||
|
#define _ESM_MGEF_H
|
||
|
|
||
|
#include "esm_reader.hpp"
|
||
|
|
||
|
namespace ESM {
|
||
|
|
||
|
struct MagicEffect
|
||
|
{
|
||
|
enum Flags
|
||
|
{
|
||
|
SpellMaking = 0x0200,
|
||
|
Enchanting = 0x0400,
|
||
|
Negative = 0x0800 // A harmful effect. Will determine whether
|
||
|
// eg. NPCs regard this spell as an attack.
|
||
|
};
|
||
|
|
||
|
struct MEDTstruct
|
||
|
{
|
||
|
int school; // SpellSchool, see defs.hpp
|
||
|
float baseCost;
|
||
|
int flags;
|
||
|
// Properties of the fired magic 'ball' I think
|
||
|
int red, blue, green;
|
||
|
float speed, size, sizeCap;
|
||
|
}; // 36 bytes
|
||
|
|
||
|
MEDTstruct data;
|
||
|
|
||
|
std::string icon, particle, // Textures
|
||
|
casting, hit, area, // Statics
|
||
|
bolt, // Weapon
|
||
|
castSound, boltSound,
|
||
|
hitSound, areaSound, // Sounds
|
||
|
description;
|
||
|
|
||
|
// Index of this magical effect. Corresponds to one of the
|
||
|
// hard-coded effects in the original engine:
|
||
|
// 0-136 in Morrowind
|
||
|
// 137 in Tribunal
|
||
|
// 138-140 in Bloodmoon (also changes 64?)
|
||
|
// 141-142 are summon effects introduced in bloodmoon, but not used
|
||
|
// there. They can be redefined in mods by setting the name in GMST
|
||
|
// sEffectSummonCreature04/05 creature id in
|
||
|
// sMagicCreature04ID/05ID.
|
||
|
int index;
|
||
|
|
||
|
void load(ESMReader &esm)
|
||
|
{
|
||
|
esm.getHNT(index, "INDX");
|
||
|
|
||
|
esm.getHNT(data, "MEDT", 36);
|
||
|
icon = esm.getHNOString("ITEX");
|
||
|
particle = esm.getHNOString("PTEX");
|
||
|
|
||
|
boltSound = esm.getHNOString("BSND");
|
||
|
castSound = esm.getHNOString("CSND");
|
||
|
hitSound = esm.getHNOString("HSND");
|
||
|
areaSound = esm.getHNOString("ASND");
|
||
|
|
||
|
casting = esm.getHNOString("CVFX");
|
||
|
bolt = esm.getHNOString("BVFX");
|
||
|
hit = esm.getHNOString("HVFX");
|
||
|
area = esm.getHNOString("AVFX");
|
||
|
|
||
|
description = esm.getHNOString("DESC");
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
#endif
|