aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShocker <none@none>2010-08-28 01:44:35 +0300
committerShocker <none@none>2010-08-28 01:44:35 +0300
commite3b92f9630106570784aa84efba08a1fcd0770c6 (patch)
tree926fcf1c849c84b4885ed135e2bff2c29898c99b /src
parente85df477497de743dd6d862213238c25a7ebedc2 (diff)
Implement .reload all_gossips, .reload quest_poi, .reload locales_gossip_menu_option. Original code by VladimirMangos, ported by Ramus. Closes issue #3466, issue #3637 and issue #3477
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Chat/Chat.cpp3
-rw-r--r--src/server/game/Chat/Chat.h3
-rw-r--r--src/server/game/Chat/Commands/Level3.cpp35
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp4
5 files changed, 44 insertions, 3 deletions
diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp
index aed1818ca8b..373559b73cc 100644
--- a/src/server/game/Chat/Chat.cpp
+++ b/src/server/game/Chat/Chat.cpp
@@ -446,6 +446,7 @@ ChatCommand * ChatHandler::getCommandTable()
{ "all_achievement",SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllAchievementCommand,"", NULL },
{ "all_area", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllAreaCommand, "", NULL },
{ "all_eventai", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllEventAICommand, "", NULL },
+ { "all_gossips", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllGossipsCommand, "", NULL },
{ "all_item", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllItemCommand, "", NULL },
{ "all_locales", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllLocalesCommand, "", NULL },
{ "all_loot", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadAllLootCommand, "", NULL },
@@ -494,6 +495,7 @@ ChatCommand * ChatHandler::getCommandTable()
{ "locales_achievement_reward", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesAchievementRewardCommand,"", NULL },
{ "locales_creature", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesCreatureCommand, "", NULL },
{ "locales_gameobject", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesGameobjectCommand, "", NULL },
+ { "locales_gossip_menu_option", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesGossipMenuOptionCommand, "", NULL },
{ "locales_item", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesItemCommand, "", NULL },
{ "locales_item_set_name", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesItemSetNameCommand, "", NULL },
{ "locales_npc_text", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesNpcTextCommand, "", NULL },
@@ -513,6 +515,7 @@ ChatCommand * ChatHandler::getCommandTable()
{ "points_of_interest", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadPointsOfInterestCommand, "",NULL},
{ "prospecting_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesProspectingCommand,"", NULL },
{ "quest_end_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestEndScriptsCommand, "", NULL },
+ { "quest_poi", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestPOICommand, "", NULL },
{ "quest_start_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestStartScriptsCommand, "", NULL },
{ "quest_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestTemplateCommand, "", NULL },
{ "reference_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesReferenceCommand, "", NULL },
diff --git a/src/server/game/Chat/Chat.h b/src/server/game/Chat/Chat.h
index 630a8668e49..913e9b71360 100644
--- a/src/server/game/Chat/Chat.h
+++ b/src/server/game/Chat/Chat.h
@@ -348,6 +348,7 @@ class ChatHandler
bool HandleReloadAllCommand(const char* args);
bool HandleReloadAllAchievementCommand(const char* args);
bool HandleReloadAllAreaCommand(const char* args);
+ bool HandleReloadAllGossipsCommand(const char* args);
bool HandleReloadAllItemCommand(const char* args);
bool HandleReloadAllLootCommand(const char* args);
bool HandleReloadAllNpcCommand(const char* args);
@@ -389,6 +390,7 @@ class ChatHandler
bool HandleReloadLocalesAchievementRewardCommand(const char* args);
bool HandleReloadLocalesCreatureCommand(const char* args);
bool HandleReloadLocalesGameobjectCommand(const char* args);
+ bool HandleReloadLocalesGossipMenuOptionCommand(const char* args);
bool HandleReloadLocalesItemCommand(const char* args);
bool HandleReloadLocalesItemSetNameCommand(const char* args);
bool HandleReloadLocalesNpcTextCommand(const char* args);
@@ -418,6 +420,7 @@ class ChatHandler
bool HandleReloadSpellClickSpellsCommand(const char* args);
bool HandleReloadQuestAreaTriggersCommand(const char* args);
bool HandleReloadQuestEndScriptsCommand(const char* args);
+ bool HandleReloadQuestPOICommand(const char* args);
bool HandleReloadQuestStartScriptsCommand(const char* args);
bool HandleReloadQuestTemplateCommand(const char* args);
bool HandleReloadReservedNameCommand(const char*);
diff --git a/src/server/game/Chat/Commands/Level3.cpp b/src/server/game/Chat/Commands/Level3.cpp
index 30062e91619..3bc1c569889 100644
--- a/src/server/game/Chat/Commands/Level3.cpp
+++ b/src/server/game/Chat/Commands/Level3.cpp
@@ -73,6 +73,7 @@ bool ChatHandler::HandleReloadAllCommand(const char*)
HandleReloadAllQuestCommand("");
HandleReloadAllSpellCommand("");
HandleReloadAllItemCommand("");
+ HandleReloadAllGossipsCommand("");
HandleReloadAllLocalesCommand("");
HandleReloadAccessRequirementCommand("");
@@ -111,9 +112,10 @@ bool ChatHandler::HandleReloadAllLootCommand(const char*)
return true;
}
-bool ChatHandler::HandleReloadAllNpcCommand(const char* /*args*/)
+bool ChatHandler::HandleReloadAllNpcCommand(const char* args)
{
- HandleReloadNpcGossipCommand("a");
+ if(*args != 'a') // will be reloaded from all_gossips
+ HandleReloadNpcGossipCommand("a");
HandleReloadNpcTrainerCommand("a");
HandleReloadNpcVendorCommand("a");
HandleReloadPointsOfInterestCommand("a");
@@ -124,6 +126,7 @@ bool ChatHandler::HandleReloadAllNpcCommand(const char* /*args*/)
bool ChatHandler::HandleReloadAllQuestCommand(const char* /*args*/)
{
HandleReloadQuestAreaTriggersCommand("a");
+ HandleReloadQuestPOICommand("a");
HandleReloadQuestTemplateCommand("a");
sLog.outString("Re-Loading Quests Relations...");
@@ -180,6 +183,17 @@ bool ChatHandler::HandleReloadAllSpellCommand(const char*)
return true;
}
+bool ChatHandler::HandleReloadAllGossipsCommand(const char* args)
+{
+ HandleReloadGossipMenuCommand("a");
+ HandleReloadGossipMenuOptionCommand("a");
+ if(*args != 'a') // already reload from all_scripts
+ HandleReloadGossipScriptsCommand("a");
+ HandleReloadNpcGossipCommand("a");
+ HandleReloadPointsOfInterestCommand("a");
+ return true;
+}
+
bool ChatHandler::HandleReloadAllItemCommand(const char*)
{
HandleReloadPageTextsCommand("a");
@@ -192,6 +206,7 @@ bool ChatHandler::HandleReloadAllLocalesCommand(const char* /*args*/)
HandleReloadLocalesAchievementRewardCommand("a");
HandleReloadLocalesCreatureCommand("a");
HandleReloadLocalesGameobjectCommand("a");
+ HandleReloadLocalesGossipMenuOptionCommand("a");
HandleReloadLocalesItemCommand("a");
HandleReloadLocalesNpcTextCommand("a");
HandleReloadLocalesPageTextCommand("a");
@@ -651,6 +666,14 @@ bool ChatHandler::HandleReloadPointsOfInterestCommand(const char*)
return true;
}
+bool ChatHandler::HandleReloadQuestPOICommand(const char*)
+{
+ sLog.outString( "Re-Loading Quest POI ..." );
+ sObjectMgr.LoadQuestPOI();
+ SendGlobalGMSysMessage("DB Table `quest_poi` and `quest_poi_points` reloaded.");
+ return true;
+}
+
bool ChatHandler::HandleReloadSpellClickSpellsCommand(const char*)
{
sLog.outString("Re-Loading `npc_spellclick_spells` Table!");
@@ -1048,6 +1071,14 @@ bool ChatHandler::HandleReloadLocalesGameobjectCommand(const char* /*arg*/)
return true;
}
+bool ChatHandler::HandleReloadLocalesGossipMenuOptionCommand(const char* /*arg*/)
+{
+ sLog.outString( "Re-Loading Locales Gossip Menu Option ... ");
+ sObjectMgr.LoadGossipMenuItemsLocales();
+ SendGlobalGMSysMessage("DB table `locales_gossip_menu_option` reloaded.");
+ return true;
+}
+
bool ChatHandler::HandleReloadLocalesItemCommand(const char* /*arg*/)
{
sLog.outString("Re-Loading Locales Item ... ");
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 73bb481d0bc..06b5a7fd33b 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -20335,7 +20335,7 @@ bool Player::canSeeOrDetect(Unit const* u, bool detect, bool inVisibleList, bool
return true;
// Arena visibility before arena start
- if (InArena() && GetBattleground() && GetBattleground()->GetStatus() == STATUS_WAIT_JOIN)
+ if (InArena() && GetBattleground()->GetStatus() == STATUS_WAIT_JOIN)
if (const Player* target = u->GetCharmerOrOwnerPlayerOrPlayerItself())
return GetBGTeam() == target->GetBGTeam();
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 1e425dbe430..aecf48a4f1a 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -6986,6 +6986,8 @@ void ObjectMgr::LoadReputationSpilloverTemplate()
void ObjectMgr::LoadPointsOfInterest()
{
+ mPointsOfInterest.clear(); // need for reload case
+
uint32 count = 0;
// 0 1 2 3 4 5 6
@@ -7036,6 +7038,8 @@ void ObjectMgr::LoadPointsOfInterest()
void ObjectMgr::LoadQuestPOI()
{
+ mQuestPOIMap.clear(); // need for reload case
+
uint32 count = 0;
// 0 1 2 3