[7393] Implement access to client side holiday ids. Author: VladimirMangos
* src/game/GameEvent.* renamed to src/game/GameEventMgr.* for consistence
* `game_event` now have new `holiday` field for store client side holiday id associated with game event
* Added new enum HolidayIds with existed at this moment holiday ids.
* New function "bool IsHolidayActive(HolidayIds id)" added accessabel from scripts for active holidays check.
--HG--
branch : trunk
This commit is contained in:
@@ -22,7 +22,11 @@
|
|||||||
DROP TABLE IF EXISTS `db_version`;
|
DROP TABLE IF EXISTS `db_version`;
|
||||||
CREATE TABLE `db_version` (
|
CREATE TABLE `db_version` (
|
||||||
`version` varchar(120) default NULL,
|
`version` varchar(120) default NULL,
|
||||||
|
<<<<<<< HEAD:sql/mangos.sql
|
||||||
`required_7388_01_mangos_mangos_string` bit(1) default NULL
|
`required_7388_01_mangos_mangos_string` bit(1) default NULL
|
||||||
|
=======
|
||||||
|
`required_7393_01_mangos_game_event` bit(1) default NULL
|
||||||
|
>>>>>>> a19b2511e943073ffad0bf7c9bc0efad5614d6bf:sql/mangos.sql
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||||
|
|
||||||
--
|
--
|
||||||
@@ -1071,6 +1075,7 @@ CREATE TABLE `game_event` (
|
|||||||
`end_time` timestamp NOT NULL default '0000-00-00 00:00:00' COMMENT 'Absolute end date, the event will never start afler',
|
`end_time` timestamp NOT NULL default '0000-00-00 00:00:00' COMMENT 'Absolute end date, the event will never start afler',
|
||||||
`occurence` bigint(20) unsigned NOT NULL default '86400' COMMENT 'Delay in hours between occurences of the event',
|
`occurence` bigint(20) unsigned NOT NULL default '86400' COMMENT 'Delay in hours between occurences of the event',
|
||||||
`length` bigint(20) unsigned NOT NULL default '43200' COMMENT 'Length in hours of the event',
|
`length` bigint(20) unsigned NOT NULL default '43200' COMMENT 'Length in hours of the event',
|
||||||
|
`holiday` mediumint(8) unsigned NOT NULL default '0' COMMENT 'Client side holiday id',
|
||||||
`description` varchar(255) default NULL COMMENT 'Description of the event displayed in console',
|
`description` varchar(255) default NULL COMMENT 'Description of the event displayed in console',
|
||||||
PRIMARY KEY (`entry`)
|
PRIMARY KEY (`entry`)
|
||||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
ALTER TABLE db_version CHANGE COLUMN required_7390_01_mangos_areatrigger_teleport required_7393_01_mangos_game_event bit;
|
||||||
|
|
||||||
|
ALTER TABLE game_event
|
||||||
|
ADD COLUMN holiday mediumint(8) unsigned NOT NULL default '0' COMMENT 'Client side holiday id' AFTER length;
|
||||||
@@ -21,10 +21,10 @@
|
|||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
#include "WorldPacket.h"
|
#include "WorldPacket.h"
|
||||||
#include "Database/DBCEnums.h"
|
#include "Database/DBCEnums.h"
|
||||||
|
#include "GameEventMgr.h"
|
||||||
#include "ObjectMgr.h"
|
#include "ObjectMgr.h"
|
||||||
#include "Guild.h"
|
#include "Guild.h"
|
||||||
#include "Database/DatabaseEnv.h"
|
#include "Database/DatabaseEnv.h"
|
||||||
#include "GameEvent.h"
|
|
||||||
#include "World.h"
|
#include "World.h"
|
||||||
#include "SpellMgr.h"
|
#include "SpellMgr.h"
|
||||||
#include "ArenaTeam.h"
|
#include "ArenaTeam.h"
|
||||||
@@ -607,7 +607,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
|
|||||||
if(Player::GetDrunkenstateByValue(GetPlayer()->GetDrunkValue()) != DRUNKEN_SMASHED)
|
if(Player::GetDrunkenstateByValue(GetPlayer()->GetDrunkValue()) != DRUNKEN_SMASHED)
|
||||||
continue;
|
continue;
|
||||||
// TODO: hardcoding eventid is bad, it can differ from DB to DB - maye implement something using HolidayNames.dbc?
|
// TODO: hardcoding eventid is bad, it can differ from DB to DB - maye implement something using HolidayNames.dbc?
|
||||||
if(!gameeventmgr.IsActiveEvent(26))
|
if(!IsHolidayActive(HOLIDAY_BREWFEST))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// miscvalue1 is the ingame fallheight*100 as stored in dbc
|
// miscvalue1 is the ingame fallheight*100 as stored in dbc
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
#include "GridNotifiersImpl.h"
|
#include "GridNotifiersImpl.h"
|
||||||
#include "CellImpl.h"
|
#include "CellImpl.h"
|
||||||
#include "OutdoorPvPMgr.h"
|
#include "OutdoorPvPMgr.h"
|
||||||
#include "GameEvent.h"
|
#include "GameEventMgr.h"
|
||||||
#include "PossessedAI.h"
|
#include "PossessedAI.h"
|
||||||
#include "CreatureGroups.h"
|
#include "CreatureGroups.h"
|
||||||
// apply implementation of the singletons
|
// apply implementation of the singletons
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,166 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>
|
|
||||||
*
|
|
||||||
* Copyright (C) 2008-2009 Trinity <http://www.trinitycore.org/>
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* 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_H
|
|
||||||
#define TRINITY_GAMEEVENT_H
|
|
||||||
|
|
||||||
#include "Platform/Define.h"
|
|
||||||
#include "Creature.h"
|
|
||||||
#include "GameObject.h"
|
|
||||||
|
|
||||||
#define max_ge_check_delay 86400 // 1 day in seconds
|
|
||||||
|
|
||||||
enum GameEventState
|
|
||||||
{
|
|
||||||
GAMEEVENT_NORMAL = 0, // standard game events
|
|
||||||
GAMEEVENT_WORLD_INACTIVE, // not yet started
|
|
||||||
GAMEEVENT_WORLD_CONDITIONS, // condition matching phase
|
|
||||||
GAMEEVENT_WORLD_NEXTPHASE, // conditions are met, now 'lenght' timer to start next event
|
|
||||||
GAMEEVENT_WORLD_FINISHED // next events are started, unapply this one
|
|
||||||
};
|
|
||||||
|
|
||||||
struct GameEventFinishCondition
|
|
||||||
{
|
|
||||||
float reqNum; // required number // use float, since some events use percent
|
|
||||||
float done; // done number
|
|
||||||
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) {}
|
|
||||||
time_t start; // occurs after this time
|
|
||||||
time_t end; // occurs before this time
|
|
||||||
time_t nextstart; // after this time the follow-up events count this phase completed
|
|
||||||
uint32 occurence; // time between end and start
|
|
||||||
uint32 length; // length of the event (minutes) after finishing all conditions
|
|
||||||
GameEventState state; // state of the game event, these are saved into the game_event table on change!
|
|
||||||
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;
|
|
||||||
uint32 equipment_id;
|
|
||||||
uint32 modelid_prev;
|
|
||||||
uint32 equipement_id_prev;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct NPCVendorEntry
|
|
||||||
{
|
|
||||||
uint32 entry; // creature entry
|
|
||||||
uint32 item; // item id
|
|
||||||
uint32 maxcount; // 0 for infinite
|
|
||||||
uint32 incrtime; // time for restore items amount if maxcount != 0
|
|
||||||
uint32 ExtendedCost;
|
|
||||||
};
|
|
||||||
|
|
||||||
class Player;
|
|
||||||
class GameEvent
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
GameEvent();
|
|
||||||
~GameEvent() {};
|
|
||||||
typedef std::set<uint16> ActiveEvents;
|
|
||||||
typedef std::vector<GameEventData> GameEventDataMap;
|
|
||||||
ActiveEvents const& GetActiveEventList() const { return m_ActiveEvents; }
|
|
||||||
GameEventDataMap const& GetEventMap() const { return mGameEvent; }
|
|
||||||
bool CheckOneGameEvent(uint16 entry) const;
|
|
||||||
uint32 NextCheck(uint16 entry) const;
|
|
||||||
void LoadFromDB();
|
|
||||||
uint32 Update();
|
|
||||||
bool IsActiveEvent(uint16 event_id) { return ( m_ActiveEvents.find(event_id)!=m_ActiveEvents.end()); }
|
|
||||||
uint32 Initialize();
|
|
||||||
bool StartEvent(uint16 event_id, bool overwrite = false);
|
|
||||||
void StopEvent(uint16 event_id, bool overwrite = false);
|
|
||||||
void HandleQuestComplete(uint32 quest_id); // called on world event type quest completions
|
|
||||||
void HandleWorldEventGossip(Player * plr, Creature * c);
|
|
||||||
uint32 GetNPCFlag(Creature * cr);
|
|
||||||
uint32 GetNpcTextId(uint32 guid);
|
|
||||||
private:
|
|
||||||
void SendWorldStateUpdate(Player * plr, uint16 event_id);
|
|
||||||
void AddActiveEvent(uint16 event_id) { m_ActiveEvents.insert(event_id); }
|
|
||||||
void RemoveActiveEvent(uint16 event_id) { m_ActiveEvents.erase(event_id); }
|
|
||||||
void ApplyNewEvent(uint16 event_id);
|
|
||||||
void UnApplyEvent(uint16 event_id);
|
|
||||||
void GameEventSpawn(int16 event_id);
|
|
||||||
void GameEventUnspawn(int16 event_id);
|
|
||||||
void ChangeEquipOrModel(int16 event_id, bool activate);
|
|
||||||
void UpdateEventQuests(uint16 event_id, bool Activate);
|
|
||||||
void UpdateEventNPCFlags(uint16 event_id);
|
|
||||||
void UpdateEventNPCVendor(uint16 event_id, bool activate);
|
|
||||||
void UpdateBattleGroundSettings();
|
|
||||||
bool CheckOneGameEventConditions(uint16 event_id);
|
|
||||||
void SaveWorldEventStateToDB(uint16 event_id);
|
|
||||||
bool hasCreatureQuestActiveEventExcept(uint32 quest_id, uint16 event_id);
|
|
||||||
bool hasGameObjectQuestActiveEventExcept(uint32 quest_id, uint16 event_id);
|
|
||||||
bool hasCreatureActiveEventExcept(uint32 creature_guid, uint16 event_id);
|
|
||||||
bool hasGameObjectActiveEventExcept(uint32 go_guid, uint16 event_id);
|
|
||||||
protected:
|
|
||||||
typedef std::list<uint32> GuidList;
|
|
||||||
typedef std::list<uint16> IdList;
|
|
||||||
typedef std::vector<GuidList> GameEventGuidMap;
|
|
||||||
typedef std::vector<IdList> GameEventIdMap;
|
|
||||||
typedef std::pair<uint32, ModelEquip> ModelEquipPair;
|
|
||||||
typedef std::list<ModelEquipPair> ModelEquipList;
|
|
||||||
typedef std::vector<ModelEquipList> GameEventModelEquipMap;
|
|
||||||
typedef std::pair<uint32, uint32> QuestRelation;
|
|
||||||
typedef std::list<QuestRelation> QuestRelList;
|
|
||||||
typedef std::vector<QuestRelList> GameEventQuestMap;
|
|
||||||
typedef std::list<NPCVendorEntry> NPCVendorList;
|
|
||||||
typedef std::vector<NPCVendorList> GameEventNPCVendorMap;
|
|
||||||
typedef std::map<uint32 /*quest id*/, GameEventQuestToEventConditionNum> QuestIdToEventConditionMap;
|
|
||||||
typedef std::pair<uint32 /*guid*/, uint32 /*npcflag*/> GuidNPCFlagPair;
|
|
||||||
typedef std::list<GuidNPCFlagPair> NPCFlagList;
|
|
||||||
typedef std::vector<NPCFlagList> GameEventNPCFlagMap;
|
|
||||||
typedef std::pair<uint16 /*event id*/, uint32 /*gossip id*/> EventNPCGossipIdPair;
|
|
||||||
typedef std::map<uint32 /*guid*/, EventNPCGossipIdPair> GuidEventNpcGossipIdMap;
|
|
||||||
typedef std::vector<uint32> GameEventBitmask;
|
|
||||||
GameEventQuestMap mGameEventCreatureQuests;
|
|
||||||
GameEventQuestMap mGameEventGameObjectQuests;
|
|
||||||
GameEventNPCVendorMap mGameEventVendors;
|
|
||||||
GameEventModelEquipMap mGameEventModelEquip;
|
|
||||||
GameEventGuidMap mGameEventCreatureGuids;
|
|
||||||
GameEventGuidMap mGameEventGameobjectGuids;
|
|
||||||
GameEventIdMap mGameEventPoolIds;
|
|
||||||
GameEventDataMap mGameEvent;
|
|
||||||
GameEventBitmask mGameEventBattleGroundHolidays;
|
|
||||||
QuestIdToEventConditionMap mQuestToEventConditions;
|
|
||||||
GameEventNPCFlagMap mGameEventNPCFlags;
|
|
||||||
GuidEventNpcGossipIdMap mNPCGossipIds;
|
|
||||||
ActiveEvents m_ActiveEvents;
|
|
||||||
bool isSystemInit;
|
|
||||||
};
|
|
||||||
|
|
||||||
#define gameeventmgr Trinity::Singleton<GameEvent>::Instance()
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+14
-14
@@ -33,7 +33,7 @@
|
|||||||
#include "MapManager.h"
|
#include "MapManager.h"
|
||||||
#include "Language.h"
|
#include "Language.h"
|
||||||
#include "World.h"
|
#include "World.h"
|
||||||
#include "GameEvent.h"
|
#include "GameEventMgr.h"
|
||||||
#include "SpellMgr.h"
|
#include "SpellMgr.h"
|
||||||
#include "PoolHandler.h"
|
#include "PoolHandler.h"
|
||||||
#include "AccountMgr.h"
|
#include "AccountMgr.h"
|
||||||
@@ -164,7 +164,7 @@ bool ChatHandler::HandleTargetObjectCommand(const char* args)
|
|||||||
{
|
{
|
||||||
Player* pl = m_session->GetPlayer();
|
Player* pl = m_session->GetPlayer();
|
||||||
QueryResult *result;
|
QueryResult *result;
|
||||||
GameEvent::ActiveEvents const& activeEventsList = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEventsList = gameeventmgr.GetActiveEventList();
|
||||||
if(*args)
|
if(*args)
|
||||||
{
|
{
|
||||||
int32 id = atoi((char*)args);
|
int32 id = atoi((char*)args);
|
||||||
@@ -187,7 +187,7 @@ bool ChatHandler::HandleTargetObjectCommand(const char* args)
|
|||||||
eventFilter << " AND (event IS NULL ";
|
eventFilter << " AND (event IS NULL ";
|
||||||
bool initString = true;
|
bool initString = true;
|
||||||
|
|
||||||
for (GameEvent::ActiveEvents::const_iterator itr = activeEventsList.begin(); itr != activeEventsList.end(); ++itr)
|
for (GameEventMgr::ActiveEvents::const_iterator itr = activeEventsList.begin(); itr != activeEventsList.end(); ++itr)
|
||||||
{
|
{
|
||||||
if (initString)
|
if (initString)
|
||||||
{
|
{
|
||||||
@@ -3509,8 +3509,8 @@ bool ChatHandler::HandleLookupEventCommand(const char* args)
|
|||||||
|
|
||||||
uint32 counter = 0;
|
uint32 counter = 0;
|
||||||
|
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
GameEvent::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
||||||
|
|
||||||
for(uint32 id = 0; id < events.size(); ++id )
|
for(uint32 id = 0; id < events.size(); ++id )
|
||||||
{
|
{
|
||||||
@@ -3543,12 +3543,12 @@ bool ChatHandler::HandleEventActiveListCommand(const char* args)
|
|||||||
{
|
{
|
||||||
uint32 counter = 0;
|
uint32 counter = 0;
|
||||||
|
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
GameEvent::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
||||||
|
|
||||||
char const* active = GetTrinityString(LANG_ACTIVE);
|
char const* active = GetTrinityString(LANG_ACTIVE);
|
||||||
|
|
||||||
for(GameEvent::ActiveEvents::const_iterator itr = activeEvents.begin(); itr != activeEvents.end(); ++itr )
|
for(GameEventMgr::ActiveEvents::const_iterator itr = activeEvents.begin(); itr != activeEvents.end(); ++itr )
|
||||||
{
|
{
|
||||||
uint32 event_id = *itr;
|
uint32 event_id = *itr;
|
||||||
GameEventData const& eventData = events[event_id];
|
GameEventData const& eventData = events[event_id];
|
||||||
@@ -3579,7 +3579,7 @@ bool ChatHandler::HandleEventInfoCommand(const char* args)
|
|||||||
|
|
||||||
uint32 event_id = atoi(cId);
|
uint32 event_id = atoi(cId);
|
||||||
|
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
|
|
||||||
if(event_id >=events.size())
|
if(event_id >=events.size())
|
||||||
{
|
{
|
||||||
@@ -3596,7 +3596,7 @@ bool ChatHandler::HandleEventInfoCommand(const char* args)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameEvent::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
||||||
bool active = activeEvents.find(event_id) != activeEvents.end();
|
bool active = activeEvents.find(event_id) != activeEvents.end();
|
||||||
char const* activeStr = active ? GetTrinityString(LANG_ACTIVE) : "";
|
char const* activeStr = active ? GetTrinityString(LANG_ACTIVE) : "";
|
||||||
|
|
||||||
@@ -3628,7 +3628,7 @@ bool ChatHandler::HandleEventStartCommand(const char* args)
|
|||||||
|
|
||||||
int32 event_id = atoi(cId);
|
int32 event_id = atoi(cId);
|
||||||
|
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
|
|
||||||
if(event_id < 1 || event_id >=events.size())
|
if(event_id < 1 || event_id >=events.size())
|
||||||
{
|
{
|
||||||
@@ -3645,7 +3645,7 @@ bool ChatHandler::HandleEventStartCommand(const char* args)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameEvent::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
||||||
if(activeEvents.find(event_id) != activeEvents.end())
|
if(activeEvents.find(event_id) != activeEvents.end())
|
||||||
{
|
{
|
||||||
PSendSysMessage(LANG_EVENT_ALREADY_ACTIVE,event_id);
|
PSendSysMessage(LANG_EVENT_ALREADY_ACTIVE,event_id);
|
||||||
@@ -3669,7 +3669,7 @@ bool ChatHandler::HandleEventStopCommand(const char* args)
|
|||||||
|
|
||||||
int32 event_id = atoi(cId);
|
int32 event_id = atoi(cId);
|
||||||
|
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
|
|
||||||
if(event_id < 1 || event_id >=events.size())
|
if(event_id < 1 || event_id >=events.size())
|
||||||
{
|
{
|
||||||
@@ -3686,7 +3686,7 @@ bool ChatHandler::HandleEventStopCommand(const char* args)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameEvent::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
GameEventMgr::ActiveEvents const& activeEvents = gameeventmgr.GetActiveEventList();
|
||||||
|
|
||||||
if(activeEvents.find(event_id) == activeEvents.end())
|
if(activeEvents.find(event_id) == activeEvents.end())
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -115,8 +115,8 @@ libmangosgame_a_SOURCES = \
|
|||||||
FleeingMovementGenerator.cpp \
|
FleeingMovementGenerator.cpp \
|
||||||
FleeingMovementGenerator.h \
|
FleeingMovementGenerator.h \
|
||||||
Formulas.h \
|
Formulas.h \
|
||||||
GameEvent.cpp \
|
GameEventMgr.cpp \
|
||||||
GameEvent.h \
|
GameEventMgr.h \
|
||||||
GameObject.cpp \
|
GameObject.cpp \
|
||||||
GameObject.h \
|
GameObject.h \
|
||||||
GlobalEvents.cpp \
|
GlobalEvents.cpp \
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
#include "Transports.h"
|
#include "Transports.h"
|
||||||
#include "ProgressBar.h"
|
#include "ProgressBar.h"
|
||||||
#include "Language.h"
|
#include "Language.h"
|
||||||
#include "GameEvent.h"
|
#include "GameEventMgr.h"
|
||||||
#include "Spell.h"
|
#include "Spell.h"
|
||||||
#include "Chat.h"
|
#include "Chat.h"
|
||||||
#include "AccountMgr.h"
|
#include "AccountMgr.h"
|
||||||
@@ -6944,7 +6944,7 @@ bool PlayerCondition::IsValid(ConditionType condition, uint32 value1, uint32 val
|
|||||||
}
|
}
|
||||||
case CONDITION_ACTIVE_EVENT:
|
case CONDITION_ACTIVE_EVENT:
|
||||||
{
|
{
|
||||||
GameEvent::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
GameEventMgr::GameEventDataMap const& events = gameeventmgr.GetEventMap();
|
||||||
if(value1 >=events.size() || !events[value1].isValid())
|
if(value1 >=events.size() || !events[value1].isValid())
|
||||||
{
|
{
|
||||||
sLog.outErrorDb("Active event condition requires existed event id (%u), skipped", value1);
|
sLog.outErrorDb("Active event condition requires existed event id (%u), skipped", value1);
|
||||||
|
|||||||
+1
-1
@@ -63,7 +63,7 @@
|
|||||||
#include "Database/DatabaseImpl.h"
|
#include "Database/DatabaseImpl.h"
|
||||||
#include "Spell.h"
|
#include "Spell.h"
|
||||||
#include "SocialMgr.h"
|
#include "SocialMgr.h"
|
||||||
#include "GameEvent.h"
|
#include "GameEventMgr.h"
|
||||||
#include "AchievementMgr.h"
|
#include "AchievementMgr.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|||||||
@@ -1672,6 +1672,31 @@ enum CreatureEliteType
|
|||||||
CREATURE_UNKNOWN = 5 // found in 2.2.3 for 2 mobs
|
CREATURE_UNKNOWN = 5 // found in 2.2.3 for 2 mobs
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// values based at Holidays.dbc
|
||||||
|
enum HolidayIds
|
||||||
|
{
|
||||||
|
HOLIDAY_FIREWORKS_SPECTACULAR = 62,
|
||||||
|
HOLIDAY_FEAST_OF_WINTER_VEIL = 141,
|
||||||
|
HOLIDAY_NOBLEGARDEN = 181,
|
||||||
|
HOLIDAY_CHILDRENS_WEEK = 201,
|
||||||
|
HOLIDAY_CALL_TO_ARMS_AV = 283,
|
||||||
|
HOLIDAY_CALL_TO_ARMS_WG = 284,
|
||||||
|
HOLIDAY_CALL_TO_ARMS_AB = 285,
|
||||||
|
HOLIDAY_FISHING_EXTRAVAGANZA = 301,
|
||||||
|
HOLIDAY_HARVEST_FESTIVAL = 321,
|
||||||
|
HOLIDAY_HALLOWS_END = 324,
|
||||||
|
HOLIDAY_LUNAR_FESTIVAL = 327,
|
||||||
|
HOLIDAY_LOVE_IS_IN_THE_AIR = 335,
|
||||||
|
HOLIDAY_FIRE_FESTIVAL = 341,
|
||||||
|
HOLIDAY_CALL_TO_ARMS_ES = 353,
|
||||||
|
HOLIDAY_BREWFEST = 372,
|
||||||
|
HOLIDAY_DARKMOON_FAIRE_ELWYNN = 374,
|
||||||
|
HOLIDAY_DARKMOON_FAIRE_THUNDER = 375,
|
||||||
|
HOLIDAY_DARKMOON_FAIRE_SHATTRATH = 376,
|
||||||
|
HOLIDAY_CALL_TO_ARMS_SA = 400,
|
||||||
|
HOLIDAY_WOTLK_LAUNCH = 406
|
||||||
|
};
|
||||||
|
|
||||||
// values based at QuestInfo.dbc
|
// values based at QuestInfo.dbc
|
||||||
enum QuestTypes
|
enum QuestTypes
|
||||||
{
|
{
|
||||||
|
|||||||
+1
-1
@@ -56,7 +56,7 @@
|
|||||||
#include "WaypointMovementGenerator.h"
|
#include "WaypointMovementGenerator.h"
|
||||||
#include "VMapFactory.h"
|
#include "VMapFactory.h"
|
||||||
#include "GlobalEvents.h"
|
#include "GlobalEvents.h"
|
||||||
#include "GameEvent.h"
|
#include "GameEventMgr.h"
|
||||||
#include "PoolHandler.h"
|
#include "PoolHandler.h"
|
||||||
#include "Database/DatabaseImpl.h"
|
#include "Database/DatabaseImpl.h"
|
||||||
#include "GridNotifiersImpl.h"
|
#include "GridNotifiersImpl.h"
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ DBCStorage <GtOCTRegenHPEntry> sGtOCTRegenHPStore(GtOCTRegenHPfmt);
|
|||||||
//DBCStorage <GtOCTRegenMPEntry> sGtOCTRegenMPStore(GtOCTRegenMPfmt); -- not used currently
|
//DBCStorage <GtOCTRegenMPEntry> sGtOCTRegenMPStore(GtOCTRegenMPfmt); -- not used currently
|
||||||
DBCStorage <GtRegenHPPerSptEntry> sGtRegenHPPerSptStore(GtRegenHPPerSptfmt);
|
DBCStorage <GtRegenHPPerSptEntry> sGtRegenHPPerSptStore(GtRegenHPPerSptfmt);
|
||||||
DBCStorage <GtRegenMPPerSptEntry> sGtRegenMPPerSptStore(GtRegenMPPerSptfmt);
|
DBCStorage <GtRegenMPPerSptEntry> sGtRegenMPPerSptStore(GtRegenMPPerSptfmt);
|
||||||
|
DBCStorage <HolidaysEntry> sHolidaysStore(Holidaysfmt);
|
||||||
DBCStorage <ItemEntry> sItemStore(Itemfmt);
|
DBCStorage <ItemEntry> sItemStore(Itemfmt);
|
||||||
//DBCStorage <ItemCondExtCostsEntry> sItemCondExtCostsStore(ItemCondExtCostsEntryfmt);
|
//DBCStorage <ItemCondExtCostsEntry> sItemCondExtCostsStore(ItemCondExtCostsEntryfmt);
|
||||||
//DBCStorage <ItemDisplayInfoEntry> sItemDisplayInfoStore(ItemDisplayTemplateEntryfmt); -- not used currently
|
//DBCStorage <ItemDisplayInfoEntry> sItemDisplayInfoStore(ItemDisplayTemplateEntryfmt); -- not used currently
|
||||||
@@ -195,7 +196,7 @@ void LoadDBCStores(const std::string& dataPath)
|
|||||||
{
|
{
|
||||||
std::string dbcPath = dataPath+"dbc/";
|
std::string dbcPath = dataPath+"dbc/";
|
||||||
|
|
||||||
const uint32 DBCFilesCount = 72;
|
const uint32 DBCFilesCount = 73;
|
||||||
|
|
||||||
barGoLink bar( DBCFilesCount );
|
barGoLink bar( DBCFilesCount );
|
||||||
|
|
||||||
@@ -268,6 +269,7 @@ void LoadDBCStores(const std::string& dataPath)
|
|||||||
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtOCTRegenMPStore, dbcPath,"gtOCTRegenMP.dbc"); -- not used currently
|
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtOCTRegenMPStore, dbcPath,"gtOCTRegenMP.dbc"); -- not used currently
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenHPPerSptStore, dbcPath,"gtRegenHPPerSpt.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenHPPerSptStore, dbcPath,"gtRegenHPPerSpt.dbc");
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenMPPerSptStore, dbcPath,"gtRegenMPPerSpt.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sGtRegenMPPerSptStore, dbcPath,"gtRegenMPPerSpt.dbc");
|
||||||
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sHolidaysStore, dbcPath,"Holidays.dbc");
|
||||||
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemStore, dbcPath,"Item.dbc");
|
LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemStore, dbcPath,"Item.dbc");
|
||||||
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemDisplayInfoStore, dbcPath,"ItemDisplayInfo.dbc"); -- not used currently
|
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemDisplayInfoStore, dbcPath,"ItemDisplayInfo.dbc"); -- not used currently
|
||||||
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemCondExtCostsStore, dbcPath,"ItemCondExtCosts.dbc");
|
//LoadDBC(availableDbcLocales,bar,bad_dbc_files,sItemCondExtCostsStore, dbcPath,"ItemCondExtCosts.dbc");
|
||||||
|
|||||||
@@ -169,6 +169,7 @@ extern DBCStorage <GtOCTRegenHPEntry> sGtOCTRegenHPStore;
|
|||||||
//extern DBCStorage <GtOCTRegenMPEntry> sGtOCTRegenMPStore; -- not used currently
|
//extern DBCStorage <GtOCTRegenMPEntry> sGtOCTRegenMPStore; -- not used currently
|
||||||
extern DBCStorage <GtRegenHPPerSptEntry> sGtRegenHPPerSptStore;
|
extern DBCStorage <GtRegenHPPerSptEntry> sGtRegenHPPerSptStore;
|
||||||
extern DBCStorage <GtRegenMPPerSptEntry> sGtRegenMPPerSptStore;
|
extern DBCStorage <GtRegenMPPerSptEntry> sGtRegenMPPerSptStore;
|
||||||
|
extern DBCStorage <HolidaysEntry> sHolidaysStore;
|
||||||
extern DBCStorage <ItemEntry> sItemStore;
|
extern DBCStorage <ItemEntry> sItemStore;
|
||||||
//extern DBCStorage <ItemDisplayInfoEntry> sItemDisplayInfoStore; -- not used currently
|
//extern DBCStorage <ItemDisplayInfoEntry> sItemDisplayInfoStore; -- not used currently
|
||||||
extern DBCStorage <ItemExtendedCostEntry> sItemExtendedCostStore;
|
extern DBCStorage <ItemExtendedCostEntry> sItemExtendedCostStore;
|
||||||
|
|||||||
@@ -861,6 +861,40 @@ struct GtRegenMPPerSptEntry
|
|||||||
float ratio;
|
float ratio;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* no used
|
||||||
|
struct HolidayDescriptionsEntry
|
||||||
|
{
|
||||||
|
uint32 ID; // 0, this is NOT holiday id
|
||||||
|
//char* name[16] // 1-16 m_name_lang
|
||||||
|
// 17 name flags
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* no used
|
||||||
|
struct HolidayNamesEntry
|
||||||
|
{
|
||||||
|
uint32 ID; // 0, this is NOT holiday id
|
||||||
|
//char* name[16] // 1-16 m_name_lang
|
||||||
|
// 17 name flags
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct HolidaysEntry
|
||||||
|
{
|
||||||
|
uint32 ID; // 0, holiday id
|
||||||
|
//uint32 unk1; // 1
|
||||||
|
//uint32 unk2; // 2
|
||||||
|
//uint32 unk3[8] // 3-10, empty fields
|
||||||
|
//uint32 unk11[13] // 11-23, some unknown data (bit strings?)
|
||||||
|
//uint32 unk11[13] // 24-36, some empty fields (continue prev?)
|
||||||
|
//uint32 unk11[12] // 37-48, counters?
|
||||||
|
//uint32 holidayNameId; // 49, id for HolidayNames.dbc
|
||||||
|
//uint32 holidayDescriptionId; // 50, id for HolidayDescriptions.dbc
|
||||||
|
//uint32 unk51; // 51
|
||||||
|
//uint32 unk52; // 52
|
||||||
|
//uint32 unk53; // 53
|
||||||
|
};
|
||||||
|
|
||||||
struct ItemEntry
|
struct ItemEntry
|
||||||
{
|
{
|
||||||
uint32 ID; // 0
|
uint32 ID; // 0
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ const char GtOCTRegenHPfmt[]="f";
|
|||||||
//const char GtOCTRegenMPfmt[]="f";
|
//const char GtOCTRegenMPfmt[]="f";
|
||||||
const char GtRegenHPPerSptfmt[]="f";
|
const char GtRegenHPPerSptfmt[]="f";
|
||||||
const char GtRegenMPPerSptfmt[]="f";
|
const char GtRegenMPPerSptfmt[]="f";
|
||||||
|
const char Holidaysfmt[]="nxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
||||||
const char Itemfmt[]="nixiiiii";
|
const char Itemfmt[]="nixiiiii";
|
||||||
//const char ItemDisplayTemplateEntryfmt[]="nxxxxxxxxxxixxxxxxxxxxx";
|
//const char ItemDisplayTemplateEntryfmt[]="nxxxxxxxxxxixxxxxxxxxxx";
|
||||||
//const char ItemCondExtCostsEntryfmt[]="xiii";
|
//const char ItemCondExtCostsEntryfmt[]="xiii";
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "7392"
|
#define REVISION_NR "7393"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|||||||
@@ -286,10 +286,10 @@
|
|||||||
RelativePath="..\..\src\game\DuelHandler.cpp">
|
RelativePath="..\..\src\game\DuelHandler.cpp">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.cpp">
|
RelativePath="..\..\src\game\GameEventMgr.cpp">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.h">
|
RelativePath="..\..\src\game\GameEventMgr.h">
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GossipDef.cpp">
|
RelativePath="..\..\src\game\GossipDef.cpp">
|
||||||
|
|||||||
@@ -552,11 +552,11 @@
|
|||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.cpp"
|
RelativePath="..\..\src\game\GameEventMgr.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.h"
|
RelativePath="..\..\src\game\GameEventMgr.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
|
|||||||
@@ -541,11 +541,11 @@
|
|||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.cpp"
|
RelativePath="..\..\src\game\GameEventMgr.cpp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\src\game\GameEvent.h"
|
RelativePath="..\..\src\game\GameEventMgr.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
|
|||||||
Reference in New Issue
Block a user