You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.3 KiB
C++
52 lines
1.3 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);
|
|
};
|
|
}
|
|
#endif
|