Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
GameObjectAI.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SKYFIRE_GAMEOBJECTAI_H
7#define SKYFIRE_GAMEOBJECTAI_H
8
9#include "CreatureAI.h"
10#include "Define.h"
11#include "GameObject.h"
12#include "Object.h"
13#include <list>
14
16{
17protected:
18 GameObject* const go;
19public:
20 explicit GameObjectAI(GameObject* g) : go(g) { }
21 virtual ~GameObjectAI() { }
22
23 virtual void UpdateAI(uint32 /*diff*/) { }
24
25 virtual void InitializeAI() { Reset(); }
26
27 virtual void Reset() { }
28
29 // Pass parameters between AI
30 virtual void DoAction(int32 /*param = 0 */) { }
31 virtual void SetGUID(uint64 /*guid*/, int32 /*id = 0 */) { }
32 virtual uint64 GetGUID(int32 /*id = 0 */) const { return 0; }
33
34 static int Permissible(GameObject const* go);
35
36 virtual bool GossipHello(Player* /*player*/) { return false; }
37 virtual bool GossipSelect(Player* /*player*/, uint32 /*sender*/, uint32 /*action*/) { return false; }
38 virtual bool GossipSelectCode(Player* /*player*/, uint32 /*sender*/, uint32 /*action*/, char const* /*code*/) { return false; }
39 virtual bool QuestAccept(Player* /*player*/, Quest const* /*quest*/) { return false; }
40 virtual bool QuestReward(Player* /*player*/, Quest const* /*quest*/, uint32 /*opt*/) { return false; }
41 virtual uint32 GetDialogStatus(Player* /*player*/) { return 100; }
42 virtual void Destroyed(Player* /*player*/, uint32 /*eventId*/) { }
43 virtual uint32 GetData(uint32 /*id*/) const { return 0; }
44 virtual void SetData64(uint32 /*id*/, uint64 /*value*/) { }
45 virtual uint64 GetData64(uint32 /*id*/) const { return 0; }
46 virtual void SetData(uint32 /*id*/, uint32 /*value*/) { }
47 virtual void OnGameEvent(bool /*start*/, uint16 /*eventId*/) { }
48 virtual void OnStateChanged(uint32 /*state*/, Unit* /*unit*/) { }
49 virtual void EventInform(uint32 /*eventId*/) { }
50};
51
53{
54public:
55 explicit NullGameObjectAI(GameObject* g);
56
57 void UpdateAI(uint32 /*diff*/) { }
58
59 static int Permissible(GameObject const* /*go*/) { return PERMIT_BASE_IDLE; }
60};
61#endif
@ PERMIT_BASE_IDLE
Definition CreatureAI.h:181
std::int32_t int32
Definition Define.h:73
std::uint32_t uint32
Definition Define.h:77
std::uint64_t uint64
Definition Define.h:76
std::uint16_t uint16
Definition Define.h:78
virtual bool GossipHello(Player *)
virtual void OnGameEvent(bool, uint16)
virtual uint32 GetData(uint32) const
virtual void DoAction(int32)
virtual void SetGUID(uint64, int32)
GameObject *const go
virtual bool QuestReward(Player *, Quest const *, uint32)
virtual bool QuestAccept(Player *, Quest const *)
virtual void InitializeAI()
virtual void Destroyed(Player *, uint32)
virtual void SetData64(uint32, uint64)
virtual void SetData(uint32, uint32)
GameObjectAI(GameObject *g)
virtual void UpdateAI(uint32)
static int Permissible(GameObject const *go)
virtual uint64 GetGUID(int32) const
virtual ~GameObjectAI()
virtual bool GossipSelectCode(Player *, uint32, uint32, char const *)
virtual uint32 GetDialogStatus(Player *)
virtual bool GossipSelect(Player *, uint32, uint32)
virtual void Reset()
virtual uint64 GetData64(uint32) const
virtual void OnStateChanged(uint32, Unit *)
virtual void EventInform(uint32)
void UpdateAI(uint32)
NullGameObjectAI(GameObject *g)
static int Permissible(GameObject const *)
Definition Unit.h:1367