OpenMW
Classes | Enumerations | Functions | Variables
MWMechanics Namespace Reference

Game mechanics and NPC-AI. More...

Classes

class  ActiveSpells
 Lasting spell effects. More...
class  Actors
class  AiActivate
class  AiCombat
class  AiEscort
class  AiFollow
class  AiPackage
 Base class for AI packages. More...
class  AiSequence
 Sequence of AI-packages for a single actor. More...
class  AiTravel
class  AiWander
class  Alchemy
 Potion creation via alchemy skill. More...
struct  StateInfo
class  FindCharState
struct  WeaponInfo
class  FindWeaponType
class  CharacterController
class  CreatureStats
 Common creature stats. More...
class  Enchanting
struct  EffectKey
struct  EffectParam
struct  EffectSourceVisitor
class  MagicEffects
 Effects currently affecting a NPC or creature. More...
class  MechanicsManager
struct  Movement
 Desired movement for an actor. More...
class  NpcStats
 Additional stats for NPCs. More...
class  Objects
class  PathFinder
class  Repair
class  Security
 implementation of Security skill More...
class  CastSpell
class  Spells
 Spell list. More...
class  Stat
class  DynamicStat

Enumerations

enum  Priority {
  Priority_Default, Priority_Jump, Priority_Movement, Priority_Weapon,
  Priority_Torch, Priority_Death, Num_Priorities
}
enum  CharacterState {
  CharState_None, CharState_SpecialIdle, CharState_Idle, CharState_Idle2,
  CharState_Idle3, CharState_Idle4, CharState_Idle5, CharState_Idle6,
  CharState_Idle7, CharState_Idle8, CharState_Idle9, CharState_IdleSwim,
  CharState_IdleSneak, CharState_WalkForward, CharState_WalkBack, CharState_WalkLeft,
  CharState_WalkRight, CharState_SwimWalkForward, CharState_SwimWalkBack, CharState_SwimWalkLeft,
  CharState_SwimWalkRight, CharState_RunForward, CharState_RunBack, CharState_RunLeft,
  CharState_RunRight, CharState_SwimRunForward, CharState_SwimRunBack, CharState_SwimRunLeft,
  CharState_SwimRunRight, CharState_SneakForward, CharState_SneakBack, CharState_SneakLeft,
  CharState_SneakRight, CharState_TurnLeft, CharState_TurnRight, CharState_Jump,
  CharState_Death1, CharState_Death2, CharState_Death3, CharState_Death4,
  CharState_Death5, CharState_SwimDeath
}
enum  WeaponType {
  WeapType_None, WeapType_HandToHand, WeapType_OneHand, WeapType_TwoHand,
  WeapType_TwoWide, WeapType_BowAndArrow, WeapType_Crossbow, WeapType_ThowWeapon,
  WeapType_PickProbe, WeapType_Spell
}
enum  UpperBodyCharacterState {
  UpperCharState_Nothing, UpperCharState_EquipingWeap, UpperCharState_UnEquipingWeap, UpperCharState_WeapEquiped,
  UpperCharState_StartToMinAttack, UpperCharState_MinAttackToMaxAttack, UpperCharState_MaxAttackToMinHit, UpperCharState_MinHitToHit,
  UpperCharState_FollowStartToFollowStop, UpperCharState_CastingSpell
}
enum  JumpingState { JumpState_None, JumpState_Falling, JumpState_Landing }
enum  DrawState_ { DrawState_Weapon = 0, DrawState_Spell = 1, DrawState_Nothing = 2 }

Functions

bool operator< (const EffectKey &left, const EffectKey &right)
EffectParam operator+ (const EffectParam &left, const EffectParam &right)
EffectParam operator- (const EffectParam &left, const EffectParam &right)
int spellSchoolToSkill (int school)
float getSpellSuccessChance (const ESM::Spell *spell, const MWWorld::Ptr &actor, int *effectiveSchool=NULL)
float getSpellSuccessChance (const std::string &spellId, const MWWorld::Ptr &actor, int *effectiveSchool=NULL)
int getSpellSchool (const std::string &spellId, const MWWorld::Ptr &actor)
int getSpellSchool (const ESM::Spell *spell, const MWWorld::Ptr &actor)
float getEffectResistance (short effectId, const MWWorld::Ptr &actor, const MWWorld::Ptr &caster, const ESM::Spell *spell=NULL)
float getEffectMultiplier (short effectId, const MWWorld::Ptr &actor, const MWWorld::Ptr &caster, const ESM::Spell *spell=NULL)
template<typename T >
bool operator== (const Stat< T > &left, const Stat< T > &right)
template<typename T >
bool operator!= (const Stat< T > &left, const Stat< T > &right)
template<typename T >
bool operator== (const DynamicStat< T > &left, const DynamicStat< T > &right)
template<typename T >
bool operator!= (const DynamicStat< T > &left, const DynamicStat< T > &right)

Variables

static const StateInfo sDeathList []
static const StateInfosDeathListEnd = &sDeathList[sizeof(sDeathList)/sizeof(sDeathList[0])]
static const StateInfo sMovementList []
static const StateInfosMovementListEnd = &sMovementList[sizeof(sMovementList)/sizeof(sMovementList[0])]
static struct
MWMechanics::WeaponInfo 
sWeaponTypeList []
static const WeaponInfosWeaponTypeListEnd = &sWeaponTypeList[sizeof(sWeaponTypeList)/sizeof(sWeaponTypeList[0])]

Detailed Description

Game mechanics and NPC-AI.


Enumeration Type Documentation

Enumerator:
CharState_None 
CharState_SpecialIdle 
CharState_Idle 
CharState_Idle2 
CharState_Idle3 
CharState_Idle4 
CharState_Idle5 
CharState_Idle6 
CharState_Idle7 
CharState_Idle8 
CharState_Idle9 
CharState_IdleSwim 
CharState_IdleSneak 
CharState_WalkForward 
CharState_WalkBack 
CharState_WalkLeft 
CharState_WalkRight 
CharState_SwimWalkForward 
CharState_SwimWalkBack 
CharState_SwimWalkLeft 
CharState_SwimWalkRight 
CharState_RunForward 
CharState_RunBack 
CharState_RunLeft 
CharState_RunRight 
CharState_SwimRunForward 
CharState_SwimRunBack 
CharState_SwimRunLeft 
CharState_SwimRunRight 
CharState_SneakForward 
CharState_SneakBack 
CharState_SneakLeft 
CharState_SneakRight 
CharState_TurnLeft 
CharState_TurnRight 
CharState_Jump 
CharState_Death1 
CharState_Death2 
CharState_Death3 
CharState_Death4 
CharState_Death5 
CharState_SwimDeath 
Note:
The _ suffix is required to avoid a collision with a Windoze macro. Die, Microsoft! Die!
Enumerator:
DrawState_Weapon 
DrawState_Spell 
DrawState_Nothing 
Enumerator:
JumpState_None 
JumpState_Falling 
JumpState_Landing 
Enumerator:
Priority_Default 
Priority_Jump 
Priority_Movement 
Priority_Weapon 
Priority_Torch 
Priority_Death 
Num_Priorities 
Enumerator:
UpperCharState_Nothing 
UpperCharState_EquipingWeap 
UpperCharState_UnEquipingWeap 
UpperCharState_WeapEquiped 
UpperCharState_StartToMinAttack 
UpperCharState_MinAttackToMaxAttack 
UpperCharState_MaxAttackToMinHit 
UpperCharState_MinHitToHit 
UpperCharState_FollowStartToFollowStop 
UpperCharState_CastingSpell 
Enumerator:
WeapType_None 
WeapType_HandToHand 
WeapType_OneHand 
WeapType_TwoHand 
WeapType_TwoWide 
WeapType_BowAndArrow 
WeapType_Crossbow 
WeapType_ThowWeapon 
WeapType_PickProbe 
WeapType_Spell 

Function Documentation

float MWMechanics::getEffectMultiplier ( short  effectId,
const MWWorld::Ptr actor,
const MWWorld::Ptr caster,
const ESM::Spell spell = NULL 
) [inline]
float MWMechanics::getEffectResistance ( short  effectId,
const MWWorld::Ptr actor,
const MWWorld::Ptr caster,
const ESM::Spell spell = NULL 
) [inline]
Returns:
>=100 for fully resisted. can also return negative value for damage amplification.
int MWMechanics::getSpellSchool ( const std::string &  spellId,
const MWWorld::Ptr actor 
) [inline]
int MWMechanics::getSpellSchool ( const ESM::Spell spell,
const MWWorld::Ptr actor 
) [inline]
float MWMechanics::getSpellSuccessChance ( const ESM::Spell spell,
const MWWorld::Ptr actor,
int *  effectiveSchool = NULL 
) [inline]
Parameters:
spellspell to cast
actorcalculate spell success chance for this actor (depends on actor's skills)
effectiveSchoolthe spell's effective school (relevant for skill progress) will be written here
Attention:
actor has to be an NPC and not a creature!
Returns:
success chance from 0 to 100 (in percent)
float MWMechanics::getSpellSuccessChance ( const std::string &  spellId,
const MWWorld::Ptr actor,
int *  effectiveSchool = NULL 
) [inline]
template<typename T >
bool MWMechanics::operator!= ( const Stat< T > &  left,
const Stat< T > &  right 
) [inline]
template<typename T >
bool MWMechanics::operator!= ( const DynamicStat< T > &  left,
const DynamicStat< T > &  right 
) [inline]
EffectParam MWMechanics::operator+ ( const EffectParam &  left,
const EffectParam &  right 
) [inline]
EffectParam MWMechanics::operator- ( const EffectParam &  left,
const EffectParam &  right 
) [inline]
bool MWMechanics::operator< ( const EffectKey &  left,
const EffectKey &  right 
)
template<typename T >
bool MWMechanics::operator== ( const Stat< T > &  left,
const Stat< T > &  right 
) [inline]
template<typename T >
bool MWMechanics::operator== ( const DynamicStat< T > &  left,
const DynamicStat< T > &  right 
) [inline]
int MWMechanics::spellSchoolToSkill ( int  school) [inline]

Variable Documentation

Initial value:
 {
    { CharState_Death1, "death1" },
    { CharState_Death2, "death2" },
    { CharState_Death3, "death3" },
    { CharState_Death4, "death4" },
    { CharState_Death5, "death5" },
    { CharState_SwimDeath, "swimdeath" },
}
const StateInfo* MWMechanics::sDeathListEnd = &sDeathList[sizeof(sDeathList)/sizeof(sDeathList[0])] [static]