aboutsummaryrefslogtreecommitdiff
path: root/src/game/GameEventMgr.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/GameEventMgr.h')
-rw-r--r--src/game/GameEventMgr.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/game/GameEventMgr.h b/src/game/GameEventMgr.h
index fb3947b4daf..e5c72524004 100644
--- a/src/game/GameEventMgr.h
+++ b/src/game/GameEventMgr.h
@@ -17,13 +17,17 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+
#ifndef TRINITY_GAMEEVENT_MGR_H
#define TRINITY_GAMEEVENT_MGR_H
+
#include "Common.h"
#include "SharedDefines.h"
#include "Platform/Define.h"
#include "Policies/Singleton.h"
+
#define max_ge_check_delay 86400 // 1 day in seconds
+
enum GameEventState
{
GAMEEVENT_NORMAL = 0, // standard game events
@@ -33,6 +37,7 @@ enum GameEventState
GAMEEVENT_WORLD_FINISHED = 4, // next events are started, unapply this one
GAMEEVENT_INTERNAL = 5, // never handled in update
};
+
struct GameEventFinishCondition
{
float reqNum; // required number // use float, since some events use percent
@@ -40,12 +45,14 @@ struct GameEventFinishCondition
uint32 max_world_state; // max resource count world state update id
uint32 done_world_state; // done resource count world state update id
};
+
struct GameEventQuestToEventConditionNum
{
uint16 event_id;
uint32 condition;
float num;
};
+
struct GameEventData
{
GameEventData() : start(1),end(0),nextstart(0),occurence(0),length(0),state(GAMEEVENT_NORMAL) {}
@@ -59,8 +66,10 @@ struct GameEventData
std::map<uint32 /*condition id*/, GameEventFinishCondition> conditions; // conditions to finish
std::set<uint16 /*gameevent id*/> prerequisite_events; // events that must be completed before starting this event
std::string description;
+
bool isValid() const { return ((length > 0) || (state > GAMEEVENT_NORMAL)); }
};
+
struct ModelEquip
{
uint32 modelid;
@@ -68,6 +77,7 @@ struct ModelEquip
uint32 modelid_prev;
uint32 equipement_id_prev;
};
+
struct NPCVendorEntry
{
uint32 entry; // creature entry
@@ -76,8 +86,10 @@ struct NPCVendorEntry
uint32 incrtime; // time for restore items amount if maxcount != 0
uint32 ExtendedCost;
};
+
class Player;
class Creature;
+
class GameEventMgr
{
public:
@@ -157,7 +169,10 @@ class GameEventMgr
GameEventGuidMap mGameEventCreatureGuids;
GameEventGuidMap mGameEventGameobjectGuids;
};
+
#define gameeventmgr Trinity::Singleton<GameEventMgr>::Instance()
+
TRINITY_DLL_SPEC bool IsHolidayActive(HolidayIds id);
+
#endif