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
 
SmartScriptGetScript ()
 
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, uint32aiDataSet
 
- 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.

1462{
1463 GetScript()->ProcessEventsFor(SMART_EVENT_DEATH, player, eventId, 0, false, nullptr, me);
1464}
@ 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.

1509{
1511}
@ 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.

1483{
1484 std::unordered_map<uint32, uint32>::const_iterator itr = aiDataSet.find(id);
1485 if (itr != aiDataSet.end())
1486 return itr->second;
1487
1488 return 0;
1489}
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.

1427{
1428 LOG_DEBUG("sql.sql", "SmartGameObjectAI::GossipHello");
1429 GetScript()->ProcessEventsFor(SMART_EVENT_GOSSIP_HELLO, player, (uint32)reportUse, 0, false, nullptr, me);
1430 return false;
1431}
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.

1435{
1436 GetScript()->ProcessEventsFor(SMART_EVENT_GOSSIP_SELECT, player, sender, action, false, nullptr, me);
1437 return false;
1438}
@ 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.

1442{
1443 return false;
1444}

◆ InitializeAI()

void SmartGameObjectAI::InitializeAI ( )
overridevirtual

Reimplemented from GameObjectAI.

1407{
1409 aiDataSet.clear();
1410
1411 // Xinef: do not call respawn event if go is not spawned
1412 if (me->isSpawned())
1414 //Reset();
1415}
@ SMART_EVENT_RESPAWN
Definition SmartScriptMgr.h:110
bool isSpawned() const
Definition GameObject.h:190
void OnInitialize(WorldObject *obj, AreaTrigger const *at=nullptr)
Definition SmartScript.cpp:5368

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.

1519{
1521}
@ 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.

1499{
1501}
@ 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.

1504{
1506}
@ 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.

1448{
1449 GetScript()->ProcessEventsFor(SMART_EVENT_ACCEPTED_QUEST, player, quest->GetQuestId(), 0, false, nullptr, me);
1450 return false;
1451}
@ 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.

1455{
1456 GetScript()->ProcessEventsFor(SMART_EVENT_REWARD_QUEST, player, quest->GetQuestId(), opt, false, nullptr, me);
1457 return false;
1458}
@ 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.

1418{
1419 // Xinef: call respawn event on reset
1421
1422 GetScript()->OnReset();
1423}
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 
)
1467{
1468 Unit* unit = nullptr;
1469 GameObject* gob = nullptr;
1470
1471 if (invoker)
1472 {
1473 unit = invoker->ToUnit();
1474 if (!unit)
1475 gob = invoker->ToGameObject();
1476 }
1477
1478 aiDataSet[id] = value;
1479 GetScript()->ProcessEventsFor(SMART_EVENT_DATA_SET, unit, id, value, false, nullptr, gob);
1480}
@ SMART_EVENT_DATA_SET
Definition SmartScriptMgr.h:137
Definition GameObject.h:120
GameObject * ToGameObject()
Definition Object.h:214
Unit * ToUnit()
Definition Object.h:210
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 
)
1492{
1493 if (invoker)
1494 GetScript()->mLastInvoker = invoker->GetGUID();
1495 GetScript()->SetScript9(e, entry);
1496}
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
ObjectGuid mLastInvoker
Definition SmartScript.h:200
void SetScript9(SmartScriptHolder &e, uint32 entry)
Definition SmartScript.cpp:5523

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

◆ SpellHit()

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

Reimplemented from GameObjectAI.

1514{
1515 GetScript()->ProcessEventsFor(SMART_EVENT_SPELLHIT, unit, 0, 0, false, spellInfo);
1516}
@ 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.

1524{
1526}
@ SMART_EVENT_SUMMON_DESPAWNED
Definition SmartScriptMgr.h:134
uint32 GetEntry() const
Definition Object.h:117

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

◆ SummonedCreatureDies()

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

Reimplemented from GameObjectAI.

1392{
1394}
@ 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.

1397{
1399}
@ 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.

1402{
1403 GetScript()->OnUpdate(diff);
1404}
void OnUpdate(const uint32 diff)
Definition SmartScript.cpp:5204

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: