AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
SmartGameObjectAI Class Reference

#include "SmartAI.h"

Inheritance diagram for SmartGameObjectAI:
GameObjectAI

Public Member Functions

 SmartGameObjectAI (GameObject *g)
 
 ~SmartGameObjectAI () override
 
void UpdateAI (uint32 diff) override
 
void InitializeAI () override
 
void Reset () override
 
SmartScript * GetScript ()
 
bool GossipHello (Player *player, bool reportUse) override
 
bool GossipSelect (Player *player, uint32 sender, uint32 action) override
 
bool GossipSelectCode (Player *, uint32, uint32, char const *) override
 
bool QuestAccept (Player *player, Quest const *quest) override
 
bool QuestReward (Player *player, Quest const *quest, uint32 opt) override
 
void Destroyed (Player *player, uint32 eventId) override
 
void SetData (uint32 id, uint32 value) override
 
void SetData (uint32 id, uint32 value, WorldObject *invoker)
 
uint32 GetData (uint32 id) const override
 
void SetScript9 (SmartScriptHolder &e, uint32 entry, WorldObject *invoker)
 
void OnGameEvent (bool start, uint16 eventId) override
 
void OnStateChanged (uint32 state, Unit *unit) override
 
void EventInform (uint32 eventId) override
 
void SpellHit (Unit *unit, SpellInfo const *spellInfo) override
 
void JustSummoned (Creature *creature) override
 
void SummonedCreatureDespawn (Creature *unit) override
 
void SummonedCreatureDies (Creature *summon, Unit *killer) override
 
void SummonedCreatureEvade (Creature *summon) override
 
- Public Member Functions inherited from GameObjectAI
 GameObjectAI (GameObject *go)
 
virtual ~GameObjectAI ()
 
virtual void DoAction (int32)
 
virtual void SetGUID (ObjectGuid const &, int32)
 
virtual ObjectGuid GetGUID (int32) const
 
virtual uint32 GetDialogStatus (Player *)
 
virtual bool CanBeSeen (Player const *)
 

Static Public Member Functions

static int32 Permissible (GameObject const *)
 
- Static Public Member Functions inherited from GameObjectAI
static int32 Permissible (GameObject const *go)
 

Protected Attributes

SmartScript mScript
 
std::unordered_map< uint32, uint32 > aiDataSet
 
- Protected Attributes inherited from GameObjectAI
GameObject *const me
 

Detailed Description

Constructor & Destructor Documentation

◆ SmartGameObjectAI()

SmartGameObjectAI::SmartGameObjectAI ( GameObject *  g)
inline
291: GameObjectAI(g) {}
Definition GameObjectAI.h:33

◆ ~SmartGameObjectAI()

SmartGameObjectAI::~SmartGameObjectAI ( )
inlineoverride
292{}

Member Function Documentation

◆ Destroyed()

void SmartGameObjectAI::Destroyed ( Player *  player,
uint32  eventId 
)
overridevirtual

Reimplemented from GameObjectAI.

1520{
1521 GetScript()->ProcessEventsFor(SMART_EVENT_DEATH, player, eventId, 0, false, nullptr, me);
1522}
@ SMART_EVENT_DEATH
Definition SmartScriptMgr.h:105
GameObject *const me
Definition GameObjectAI.h:35
SmartScript * GetScript()
Definition SmartAI.h:297
void ProcessEventsFor(SMART_EVENT e, Unit *unit=nullptr, uint32 var0=0, uint32 var1=0, bool bvar=false, SpellInfo const *spell=nullptr, GameObject *gob=nullptr)
Definition SmartScript.cpp:157

References GetScript(), GameObjectAI::me, SmartScript::ProcessEventsFor(), and SMART_EVENT_DEATH.

◆ EventInform()

void SmartGameObjectAI::EventInform ( uint32  eventId)
overridevirtual

Reimplemented from GameObjectAI.

1567{
1569}
@ SMART_EVENT_GO_EVENT_INFORM
Definition SmartScriptMgr.h:170

References GetScript(), SmartScript::ProcessEventsFor(), and SMART_EVENT_GO_EVENT_INFORM.

◆ GetData()

uint32 SmartGameObjectAI::GetData ( uint32  id) const
overridevirtual

Reimplemented from GameObjectAI.

1541{
1542 std::unordered_map<uint32, uint32>::const_iterator itr = aiDataSet.find(id);
1543 if (itr != aiDataSet.end())
1544 return itr->second;
1545
1546 return 0;
1547}
std::unordered_map< uint32, uint32 > aiDataSet
Definition SmartAI.h:329

References aiDataSet.

◆ GetScript()

◆ GossipHello()

bool SmartGameObjectAI::GossipHello ( Player *  player,
bool  reportUse 
)
overridevirtual

Reimplemented from GameObjectAI.

1485{
1486 LOG_DEBUG("sql.sql", "SmartGameObjectAI::GossipHello");
1487 GetScript()->ProcessEventsFor(SMART_EVENT_GOSSIP_HELLO, player, (uint32)reportUse, 0, false, nullptr, me);
1488 return false;
1489}
std::uint32_t uint32
Definition Define.h:107
#define LOG_DEBUG(filterType__,...)
Definition Log.h:157
@ SMART_EVENT_GOSSIP_HELLO
Definition SmartScriptMgr.h:163

References GetScript(), LOG_DEBUG, GameObjectAI::me, SmartScript::ProcessEventsFor(), and SMART_EVENT_GOSSIP_HELLO.

◆ GossipSelect()

bool SmartGameObjectAI::GossipSelect ( Player *  player,
uint32  sender,
uint32  action 
)
overridevirtual

Reimplemented from GameObjectAI.

1493{
1494 GetScript()->ProcessEventsFor(SMART_EVENT_GOSSIP_SELECT, player, sender, action, false, nullptr, me);
1495 return false;
1496}
@ SMART_EVENT_GOSSIP_SELECT
Definition SmartScriptMgr.h:161

References GetScript(), GameObjectAI::me, SmartScript::ProcessEventsFor(), and SMART_EVENT_GOSSIP_SELECT.

◆ GossipSelectCode()

bool SmartGameObjectAI::GossipSelectCode ( Player *  ,
uint32  ,
uint32  ,
char const *   
)
overridevirtual

Reimplemented from GameObjectAI.

1500{
1501 return false;
1502}

◆ InitializeAI()

void SmartGameObjectAI::InitializeAI ( )
overridevirtual

Reimplemented from GameObjectAI.

1465{
1467 aiDataSet.clear();
1468
1469 // Xinef: do not call respawn event if go is not spawned
1470 if (me->isSpawned())
1472 //Reset();
1473}
@ SMART_EVENT_RESPAWN
Definition SmartScriptMgr.h:110
bool isSpawned() const
Definition GameObject.h:191
void OnInitialize(WorldObject *obj, AreaTrigger const *at=nullptr)
Definition SmartScript.cpp:5440

References aiDataSet, GetScript(), GameObject::isSpawned(), GameObjectAI::me, SmartScript::OnInitialize(), SmartScript::ProcessEventsFor(), and SMART_EVENT_RESPAWN.

◆ JustSummoned()

void SmartGameObjectAI::JustSummoned ( Creature *  creature)
overridevirtual

Reimplemented from GameObjectAI.

1577{
1579}
@ SMART_EVENT_SUMMONED_UNIT
Definition SmartScriptMgr.h:116

References GetScript(), SmartScript::ProcessEventsFor(), and SMART_EVENT_SUMMONED_UNIT.

◆ OnGameEvent()

void SmartGameObjectAI::OnGameEvent ( bool  start,
uint16  eventId 
)
overridevirtual

Reimplemented from GameObjectAI.

1557{
1559}
@ SMART_EVENT_GAME_EVENT_START
Definition SmartScriptMgr.h:167
@ SMART_EVENT_GAME_EVENT_END
Definition SmartScriptMgr.h:168

References GetScript(), SmartScript::ProcessEventsFor(), SMART_EVENT_GAME_EVENT_END, and SMART_EVENT_GAME_EVENT_START.

◆ OnStateChanged()

void SmartGameObjectAI::OnStateChanged ( uint32  state,
Unit *  unit 
)
overridevirtual

Reimplemented from GameObjectAI.

1562{
1564}
@ SMART_EVENT_GO_STATE_CHANGED
Definition SmartScriptMgr.h:169

References GetScript(), SmartScript::ProcessEventsFor(), and SMART_EVENT_GO_STATE_CHANGED.

◆ Permissible()

static int32 SmartGameObjectAI::Permissible ( GameObject const *  )
inlinestatic
298{ return PERMIT_BASE_NO; }
@ PERMIT_BASE_NO
Definition CreatureAI.h:288

References PERMIT_BASE_NO.

◆ QuestAccept()

bool SmartGameObjectAI::QuestAccept ( Player *  player,
Quest const *  quest 
)
overridevirtual

Reimplemented from GameObjectAI.

1506{
1507 GetScript()->ProcessEventsFor(SMART_EVENT_ACCEPTED_QUEST, player, quest->GetQuestId(), 0, false, nullptr, me);
1508 return false;
1509}
@ SMART_EVENT_ACCEPTED_QUEST
Definition SmartScriptMgr.h:118

References Quest::GetQuestId(), GetScript(), GameObjectAI::me, SmartScript::ProcessEventsFor(), and SMART_EVENT_ACCEPTED_QUEST.

◆ QuestReward()

bool SmartGameObjectAI::QuestReward ( Player *  player,
Quest const *  quest,
uint32  opt 
)
overridevirtual

Reimplemented from GameObjectAI.

1513{
1514 GetScript()->ProcessEventsFor(SMART_EVENT_REWARD_QUEST, player, quest->GetQuestId(), opt, false, nullptr, me);
1515 return false;
1516}
@ SMART_EVENT_REWARD_QUEST
Definition SmartScriptMgr.h:119

References Quest::GetQuestId(), GetScript(), GameObjectAI::me, SmartScript::ProcessEventsFor(), and SMART_EVENT_REWARD_QUEST.

◆ Reset()

void SmartGameObjectAI::Reset ( )
overridevirtual

Reimplemented from GameObjectAI.

1476{
1477 // Xinef: call respawn event on reset
1479
1480 GetScript()->OnReset();
1481}
void OnReset()
Definition SmartScript.cpp:131

References GetScript(), SmartScript::OnReset(), SmartScript::ProcessEventsFor(), and SMART_EVENT_RESPAWN.

◆ SetData() [1/2]

void SmartGameObjectAI::SetData ( uint32  id,
uint32  value 
)
inlineoverridevirtual

Reimplemented from GameObjectAI.

306{ SetData(id, value, nullptr); }
void SetData(uint32 id, uint32 value) override
Definition SmartAI.h:306

References SetData().

Referenced by SetData().

◆ SetData() [2/2]

void SmartGameObjectAI::SetData ( uint32  id,
uint32  value,
WorldObject *  invoker 
)
1525{
1526 Unit* unit = nullptr;
1527 GameObject* gob = nullptr;
1528
1529 if (invoker)
1530 {
1531 unit = invoker->ToUnit();
1532 if (!unit)
1533 gob = invoker->ToGameObject();
1534 }
1535
1536 aiDataSet[id] = value;
1537 GetScript()->ProcessEventsFor(SMART_EVENT_DATA_SET, unit, id, value, false, nullptr, gob);
1538}
@ SMART_EVENT_DATA_SET
Definition SmartScriptMgr.h:137
Definition GameObject.h:120
GameObject * ToGameObject()
Definition Object.h:220
Unit * ToUnit()
Definition Object.h:216
Definition Unit.h:665

References aiDataSet, GetScript(), SmartScript::ProcessEventsFor(), SMART_EVENT_DATA_SET, Object::ToGameObject(), and Object::ToUnit().

◆ SetScript9()

void SmartGameObjectAI::SetScript9 ( SmartScriptHolder &  e,
uint32  entry,
WorldObject *  invoker 
)
1550{
1551 if (invoker)
1552 GetScript()->mLastInvoker = invoker->GetGUID();
1553 GetScript()->SetScript9(e, entry);
1554}
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:120
ObjectGuid mLastInvoker
Definition SmartScript.h:200
void SetScript9(SmartScriptHolder &e, uint32 entry)
Definition SmartScript.cpp:5595

References Object::GetGUID(), GetScript(), SmartScript::mLastInvoker, and SmartScript::SetScript9().

◆ SpellHit()

void SmartGameObjectAI::SpellHit ( Unit *  unit,
SpellInfo const *  spellInfo 
)
overridevirtual

Reimplemented from GameObjectAI.

1572{
1573 GetScript()->ProcessEventsFor(SMART_EVENT_SPELLHIT, unit, 0, 0, false, spellInfo);
1574}
@ SMART_EVENT_SPELLHIT
Definition SmartScriptMgr.h:107

References GetScript(), SmartScript::ProcessEventsFor(), and SMART_EVENT_SPELLHIT.

◆ SummonedCreatureDespawn()

void SmartGameObjectAI::SummonedCreatureDespawn ( Creature *  unit)
overridevirtual

Reimplemented from GameObjectAI.

1582{
1584}
@ SMART_EVENT_SUMMON_DESPAWNED
Definition SmartScriptMgr.h:134
uint32 GetEntry() const
Definition Object.h:123

References Object::GetEntry(), GetScript(), SmartScript::ProcessEventsFor(), and SMART_EVENT_SUMMON_DESPAWNED.

◆ SummonedCreatureDies()

void SmartGameObjectAI::SummonedCreatureDies ( Creature *  summon,
Unit *  killer 
)
overridevirtual

Reimplemented from GameObjectAI.

1450{
1452}
@ SMART_EVENT_SUMMONED_UNIT_DIES
Definition SmartScriptMgr.h:183

References GetScript(), SmartScript::ProcessEventsFor(), and SMART_EVENT_SUMMONED_UNIT_DIES.

◆ SummonedCreatureEvade()

void SmartGameObjectAI::SummonedCreatureEvade ( Creature *  summon)
overridevirtual

Reimplemented from GameObjectAI.

1455{
1457}
@ SMART_EVENT_SUMMONED_UNIT_EVADE
Definition SmartScriptMgr.h:196

References GetScript(), SmartScript::ProcessEventsFor(), and SMART_EVENT_SUMMONED_UNIT_EVADE.

◆ UpdateAI()

void SmartGameObjectAI::UpdateAI ( uint32  diff)
overridevirtual

Reimplemented from GameObjectAI.

1460{
1461 GetScript()->OnUpdate(diff);
1462}
void OnUpdate(const uint32 diff)
Definition SmartScript.cpp:5268

References GetScript(), and SmartScript::OnUpdate().

Member Data Documentation

◆ aiDataSet

std::unordered_map<uint32, uint32> SmartGameObjectAI::aiDataSet
protected

Referenced by GetData(), InitializeAI(), and SetData().

◆ mScript

SmartScript SmartGameObjectAI::mScript
protected

Referenced by GetScript().


The documentation for this class was generated from the following files: