1 #ifndef GAME_MWMECHANICS_AISEQUENCE_H
2 #define GAME_MWMECHANICS_AISEQUENCE_H
28 class CharacterController;
67 std::list<AiPackage*>::const_iterator
begin()
const;
68 std::list<AiPackage*>::const_iterator
end()
const;
70 void erase (std::list<AiPackage*>::const_iterator package);
base class for the temporary storage of AiPackages.
Definition: aistate.hpp:90
bool mRepeat
Does this AI sequence repeat (repeating of Wander packages handled separately)
Definition: aisequence.hpp:45
void stopCombat()
Removes all combat packages until first non-combat or stack empty.
Definition: aisequence.cpp:163
Definition: aipackage.hpp:90
stores one object of any class derived from Base. Requesting a certain derived class via get() either...
Definition: aisequence.hpp:30
bool isEngagedWithActor() const
Are we in combat with any other actor, who's also engaging us?
Definition: aisequence.cpp:126
bool isPackageDone() const
Has a package been completed during the last update?
Definition: aisequence.cpp:191
DerivedClassStorage< AiTemporaryBase > AiState
Container for AI package status.
Definition: aisequence.hpp:31
std::list< AiPackage * >::const_iterator end() const
Definition: aisequence.cpp:96
AiSequence()
Default constructor.
Definition: aisequence.cpp:34
void readState(const ESM::AiSequence::AiSequence &sequence)
Definition: aisequence.cpp:452
void stopPursuit()
Removes all pursue packages until first non-pursue or stack empty.
Definition: aisequence.cpp:177
void writeState(ESM::AiSequence::AiSequence &sequence) const
Definition: aisequence.cpp:442
Base class for AI packages.
Definition: aipackage.hpp:33
virtual ~AiSequence()
Definition: aisequence.cpp:57
bool mDone
Finished with top AIPackage, set for one frame.
Definition: aisequence.hpp:42
void stack(const AiPackage &package, const MWWorld::Ptr &actor, bool cancelOther=true)
Definition: aisequence.cpp:313
Sequence of AI-packages for a single actor.
Definition: aisequence.hpp:36
void erase(std::list< AiPackage * >::const_iterator package)
Definition: aisequence.cpp:101
Definition: character.hpp:154
bool canAddTarget(const ESM::Position &actorPos, float distToTarget) const
Function assumes that actor can have only 1 target apart player.
bool getCombatTargets(std::vector< MWWorld::Ptr > &targetActors) const
Return true and assign targets for all combat packages, or return false if there are no combat packag...
Definition: aisequence.cpp:80
int getLastRunTypeId() const
Get the typeid of the Ai package that ran last.
Definition: aisequence.hpp:80
void fill(const ESM::AIPackageList &list)
Fills the AiSequence with packages.
Definition: aisequence.cpp:400
std::list< AiPackage * >::const_iterator begin() const
Iterator may be invalidated by any function calls other than begin() or end().
Definition: aisequence.cpp:91
void copy(const AiSequence &sequence)
Copy AiSequence.
Definition: aisequence.cpp:27
void fastForward(const MWWorld::Ptr &actor)
Simulate the passing of time using the currently active AI package.
Definition: aisequence.cpp:524
Definition: aisequence.hpp:151
bool hasPackage(int typeId) const
Does this AI sequence have the given package type?
Definition: aisequence.cpp:140
bool getCombatTarget(MWWorld::Ptr &targetActor) const
Return true and assign target if combat package is currently active, return false otherwise...
Definition: aisequence.cpp:70
AiState mAiState
Definition: aisequence.hpp:52
bool isInCombat() const
Is there any combat package?
Definition: aisequence.cpp:116
int mLastAiPackage
The type of AI package that ran last.
Definition: aisequence.hpp:51
void clear()
Remove all packages.
Definition: aisequence.cpp:305
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
AiSequence & operator=(const AiSequence &sequence)
Assignment operator.
Definition: aisequence.cpp:44
void execute(const MWWorld::Ptr &actor, CharacterController &characterController, float duration)
Execute current package, switching if needed.
Definition: aisequence.cpp:202
std::list< AiPackage * > mPackages
AiPackages to run though.
Definition: aisequence.hpp:39
int getTypeId() const
Returns currently executing AiPackage type.
Definition: aisequence.cpp:62
AiPackage * getActivePackage()
Return the current active package.
Definition: aisequence.cpp:392