diff --git a/sql/mangos.sql b/sql/mangos.sql index d09fb2ab9..f5981b160 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -22,7 +22,7 @@ DROP TABLE IF EXISTS `db_version`; CREATE TABLE `db_version` ( `version` varchar(120) default NULL, - `required_7290_01_mangos_command` bit(1) default NULL + `required_7292_02_mangos_locales_points_of_interest` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -2152,6 +2152,33 @@ LOCK TABLES `locales_page_text` WRITE; /*!40000 ALTER TABLE `locales_page_text` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `locales_points_of_interest` +-- + +DROP TABLE IF EXISTS `locales_points_of_interest`; +CREATE TABLE `locales_points_of_interest` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `icon_name_loc1` text, + `icon_name_loc2` text, + `icon_name_loc3` text, + `icon_name_loc4` text, + `icon_name_loc5` text, + `icon_name_loc6` text, + `icon_name_loc7` text, + `icon_name_loc8` text, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `locales_points_of_interest` +-- + +LOCK TABLES `locales_points_of_interest` WRITE; +/*!40000 ALTER TABLE `locales_points_of_interest` DISABLE KEYS */; +/*!40000 ALTER TABLE `locales_points_of_interest` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `locales_quest` -- @@ -12720,6 +12747,31 @@ INSERT INTO `playercreateinfo_spell` VALUES /*!40000 ALTER TABLE `playercreateinfo_spell` ENABLE KEYS */; UNLOCK TABLES; +-- +-- Table structure for table `points_of_interest` +-- + +DROP TABLE IF EXISTS `points_of_interest`; +CREATE TABLE `points_of_interest` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `x` float NOT NULL default '0', + `y` float NOT NULL default '0', + `icon` mediumint(8) unsigned NOT NULL default '0', + `flags` mediumint(8) unsigned NOT NULL default '0', + `data` mediumint(8) unsigned NOT NULL default '0', + `icon_name` text NOT NULL, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; + +-- +-- Dumping data for table `points_of_interest` +-- + +LOCK TABLES `points_of_interest` WRITE; +/*!40000 ALTER TABLE `points_of_interest` DISABLE KEYS */; +/*!40000 ALTER TABLE `points_of_interest` ENABLE KEYS */; +UNLOCK TABLES; + -- -- Table structure for table `prospecting_loot_template` -- diff --git a/sql/updates/7292_01_mangos_points_of_interest.sql b/sql/updates/7292_01_mangos_points_of_interest.sql new file mode 100644 index 000000000..800a31e70 --- /dev/null +++ b/sql/updates/7292_01_mangos_points_of_interest.sql @@ -0,0 +1,13 @@ +ALTER TABLE db_version CHANGE COLUMN required_7290_01_mangos_command required_7292_01_mangos_points_of_interest bit; + +DROP TABLE IF EXISTS `points_of_interest`; +CREATE TABLE `points_of_interest` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `x` float NOT NULL default '0', + `y` float NOT NULL default '0', + `icon` mediumint(8) unsigned NOT NULL default '0', + `flags` mediumint(8) unsigned NOT NULL default '0', + `data` mediumint(8) unsigned NOT NULL default '0', + `icon_name` text NOT NULL, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; diff --git a/sql/updates/7292_02_mangos_locales_points_of_interest.sql b/sql/updates/7292_02_mangos_locales_points_of_interest.sql new file mode 100644 index 000000000..ec763a3fc --- /dev/null +++ b/sql/updates/7292_02_mangos_locales_points_of_interest.sql @@ -0,0 +1,15 @@ +ALTER TABLE db_version CHANGE COLUMN required_7292_01_mangos_points_of_interest required_7292_02_mangos_locales_points_of_interest bit; + +DROP TABLE IF EXISTS `locales_points_of_interest`; +CREATE TABLE `locales_points_of_interest` ( + `entry` mediumint(8) unsigned NOT NULL default '0', + `icon_name_loc1` text, + `icon_name_loc2` text, + `icon_name_loc3` text, + `icon_name_loc4` text, + `icon_name_loc5` text, + `icon_name_loc6` text, + `icon_name_loc7` text, + `icon_name_loc8` text, + PRIMARY KEY (`entry`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8; diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index f0887a4b1..50775b885 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -177,6 +177,8 @@ pkgdata_DATA = \ 7255_01_characters_characters.sql \ 7267_01_characters_auctionhouse.sql \ 7290_01_mangos_command.sql \ + 7292_01_mangos_points_of_interest.sql \ + 7292_02_mangos_locales_points_of_interest.sql \ README ## Additional files to include when running 'make dist' @@ -334,4 +336,6 @@ EXTRA_DIST = \ 7255_01_characters_characters.sql \ 7267_01_characters_auctionhouse.sql \ 7290_01_mangos_command.sql \ + 7292_01_mangos_points_of_interest.sql \ + 7292_02_mangos_locales_points_of_interest.sql \ README diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp index b889648f6..4cf9cdbc5 100644 --- a/src/game/Chat.cpp +++ b/src/game/Chat.cpp @@ -281,6 +281,13 @@ ChatCommand * ChatHandler::getCommandTable() { "gameobject_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadGameObjectScriptsCommand, "", NULL }, { "item_enchantment_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadItemEnchantementsCommand, "", NULL }, { "item_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesItemCommand, "", NULL }, + { "locales_creature", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesCreatureCommand, "", NULL }, + { "locales_gameobject", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesGameobjectCommand, "", NULL }, + { "locales_item", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesItemCommand, "", NULL }, + { "locales_npc_text", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesNpcTextCommand, "", NULL }, + { "locales_page_text", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesPageTextCommand, "", NULL }, + { "locales_points_of_interest", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesPointsOfInterestCommand, "", NULL }, + { "locales_quest", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesQuestCommand, "", NULL }, { "mangos_string", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadMangosStringCommand, "", NULL }, { "milling_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesMillingCommand, "", NULL }, { "npc_gossip", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadNpcGossipCommand, "", NULL }, @@ -289,6 +296,7 @@ ChatCommand * ChatHandler::getCommandTable() { "npc_vendor", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadNpcVendorCommand, "", NULL }, { "page_text", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadPageTextsCommand, "", NULL }, { "pickpocketing_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesPickpocketingCommand,"",NULL}, + { "points_of_interest", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadPointsOfInterestCommand, "",NULL}, { "prospecting_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesProspectingCommand,"", NULL }, { "quest_mail_loot_template", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLootTemplatesQuestMailCommand, "", NULL }, { "quest_end_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadQuestEndScriptsCommand, "", NULL }, @@ -312,12 +320,6 @@ ChatCommand * ChatHandler::getCommandTable() { "spell_scripts", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellScriptsCommand, "", NULL }, { "spell_target_position", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellTargetPositionCommand, "", NULL }, { "spell_threats", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadSpellThreatsCommand, "", NULL }, - { "locales_creature", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesCreatureCommand, "", NULL }, - { "locales_gameobject", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesGameobjectCommand, "", NULL }, - { "locales_item", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesItemCommand, "", NULL }, - { "locales_npc_text", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesNpcTextCommand, "", NULL }, - { "locales_page_text", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesPageTextCommand, "", NULL }, - { "locales_quest", SEC_ADMINISTRATOR, true, &ChatHandler::HandleReloadLocalesQuestCommand, "", NULL }, { NULL, 0, false, NULL, "", NULL } }; diff --git a/src/game/Chat.h b/src/game/Chat.h index 08716f940..87dd31610 100644 --- a/src/game/Chat.h +++ b/src/game/Chat.h @@ -223,6 +223,14 @@ class ChatHandler bool HandleReloadGameTeleCommand(const char* args); bool HandleReloadGOQuestRelationsCommand(const char* args); bool HandleReloadGOQuestInvRelationsCommand(const char* args); + bool HandleReloadItemEnchantementsCommand(const char* args); + bool HandleReloadLocalesCreatureCommand(const char* args); + bool HandleReloadLocalesGameobjectCommand(const char* args); + bool HandleReloadLocalesItemCommand(const char* args); + bool HandleReloadLocalesNpcTextCommand(const char* args); + bool HandleReloadLocalesPageTextCommand(const char* args); + bool HandleReloadLocalesPointsOfInterestCommand(const char* args); + bool HandleReloadLocalesQuestCommand(const char* args); bool HandleReloadLootTemplatesCreatureCommand(const char* args); bool HandleReloadLootTemplatesDisenchantCommand(const char* args); bool HandleReloadLootTemplatesFishingCommand(const char* args); @@ -240,6 +248,8 @@ class ChatHandler bool HandleReloadNpcOptionCommand(const char* args); bool HandleReloadNpcTrainerCommand(const char* args); bool HandleReloadNpcVendorCommand(const char* args); + bool HandleReloadPageTextsCommand(const char* args); + bool HandleReloadPointsOfInterestCommand(const char* args); bool HandleReloadQuestAreaTriggersCommand(const char* args); bool HandleReloadQuestEndScriptsCommand(const char* args); bool HandleReloadQuestStartScriptsCommand(const char* args); @@ -259,14 +269,6 @@ class ChatHandler bool HandleReloadSpellTargetPositionCommand(const char* args); bool HandleReloadSpellThreatsCommand(const char* args); bool HandleReloadSpellPetAurasCommand(const char* args); - bool HandleReloadPageTextsCommand(const char* args); - bool HandleReloadItemEnchantementsCommand(const char* args); - bool HandleReloadLocalesCreatureCommand(const char* args); - bool HandleReloadLocalesGameobjectCommand(const char* args); - bool HandleReloadLocalesItemCommand(const char* args); - bool HandleReloadLocalesNpcTextCommand(const char* args); - bool HandleReloadLocalesPageTextCommand(const char* args); - bool HandleReloadLocalesQuestCommand(const char* args); bool HandleInstanceListBindsCommand(const char* args); bool HandleInstanceUnbindCommand(const char* args); diff --git a/src/game/Creature.h b/src/game/Creature.h index 431cbee61..73b5c4ae2 100644 --- a/src/game/Creature.h +++ b/src/game/Creature.h @@ -233,6 +233,11 @@ struct NpcOptionLocale std::vector BoxText; }; +struct PointOfInterestLocale +{ + std::vector IconName; +}; + struct EquipmentInfo { uint32 entry; diff --git a/src/game/GossipDef.cpp b/src/game/GossipDef.cpp index c8291bd66..e1fad9ef9 100644 --- a/src/game/GossipDef.cpp +++ b/src/game/GossipDef.cpp @@ -179,6 +179,7 @@ void PlayerMenu::CloseGossip() //sLog.outDebug( "WORLD: Sent SMSG_GOSSIP_COMPLETE" ); } +// Outdated void PlayerMenu::SendPointOfInterest( float X, float Y, uint32 Icon, uint32 Flags, uint32 Data, char const * locName ) { WorldPacket data( SMSG_GOSSIP_POI, (4+4+4+4+4+10) ); // guess size @@ -192,6 +193,40 @@ void PlayerMenu::SendPointOfInterest( float X, float Y, uint32 Icon, uint32 Flag //sLog.outDebug("WORLD: Sent SMSG_GOSSIP_POI"); } +void PlayerMenu::SendPointOfInterest( uint32 poi_id ) +{ + PointOfInterest const* poi = objmgr.GetPointOfInterest(poi_id); + if(!poi) + { + sLog.outErrorDb("Requested send not existed POI (Id: %u), ignore."); + return; + } + + std::string icon_name = poi->icon_name; + + int loc_idx = pSession->GetSessionDbLocaleIndex(); + if (loc_idx >= 0) + { + PointOfInterestLocale const *pl = objmgr.GetPointOfInterestLocale(poi_id); + if (pl) + { + if (pl->IconName.size() > size_t(loc_idx) && !pl->IconName[loc_idx].empty()) + icon_name = pl->IconName[loc_idx]; + } + } + + WorldPacket data( SMSG_GOSSIP_POI, (4+4+4+4+4+10) ); // guess size + data << uint32(poi->flags); + data << float(poi->x); + data << float(poi->y); + data << uint32(poi->icon); + data << uint32(poi->data); + data << icon_name; + + pSession->SendPacket( &data ); + //sLog.outDebug("WORLD: Sent SMSG_GOSSIP_POI"); +} + void PlayerMenu::SendTalking( uint32 textID ) { GossipText const* pGossip = objmgr.GetGossipText(textID); diff --git a/src/game/GossipDef.h b/src/game/GossipDef.h index 5ddfb10de..0ab2ba893 100644 --- a/src/game/GossipDef.h +++ b/src/game/GossipDef.h @@ -187,6 +187,7 @@ class MANGOS_DLL_SPEC PlayerMenu void SendGossipMenu( uint32 TitleTextId, uint64 npcGUID ); void CloseGossip(); void SendPointOfInterest( float X, float Y, uint32 Icon, uint32 Flags, uint32 Data, const char * locName ); + void SendPointOfInterest( uint32 poi_id ); void SendTalking( uint32 textID ); void SendTalking( char const * title, char const * text ); diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index 36fd8ab3a..70b25ab1c 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -94,6 +94,7 @@ bool ChatHandler::HandleReloadAllNpcCommand(const char* /*args*/) HandleReloadNpcOptionCommand("a"); HandleReloadNpcTrainerCommand("a"); HandleReloadNpcVendorCommand("a"); + HandleReloadPointsOfInterestCommand("a"); return true; } @@ -159,6 +160,7 @@ bool ChatHandler::HandleReloadAllLocalesCommand(const char* /*args*/) HandleReloadLocalesItemCommand("a"); HandleReloadLocalesNpcTextCommand("a"); HandleReloadLocalesPageTextCommand("a"); + HandleReloadLocalesPointsOfInterestCommand("a"); HandleReloadLocalesQuestCommand("a"); return true; } @@ -394,6 +396,14 @@ bool ChatHandler::HandleReloadNpcVendorCommand(const char*) return true; } +bool ChatHandler::HandleReloadPointsOfInterestCommand(const char*) +{ + sLog.outString( "Re-Loading `points_of_interest` Table!" ); + objmgr.LoadPointsOfInterest(); + SendGlobalSysMessage("DB table `points_of_interest` reloaded."); + return true; +} + bool ChatHandler::HandleReloadReservedNameCommand(const char*) { sLog.outString( "Loading ReservedNames... (`reserved_name`)" ); @@ -692,6 +702,14 @@ bool ChatHandler::HandleReloadLocalesPageTextCommand(const char* /*arg*/) return true; } +bool ChatHandler::HandleReloadLocalesPointsOfInterestCommand(const char* /*arg*/) +{ + sLog.outString( "Re-Loading Locales Points Of Interest ... "); + objmgr.LoadPointOfInterestLocales(); + SendGlobalSysMessage("DB table `locales_points_of_interest` reloaded."); + return true; +} + bool ChatHandler::HandleReloadLocalesQuestCommand(const char* /*arg*/) { sLog.outString( "Re-Loading Locales Quest ... "); diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index 8cff6e47a..9cd6dfcfe 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -395,6 +395,57 @@ void ObjectMgr::LoadNpcOptionLocales() sLog.outString( ">> Loaded %u npc_option locale strings", mNpcOptionLocaleMap.size() ); } +void ObjectMgr::LoadPointOfInterestLocales() +{ + mPointOfInterestLocaleMap.clear(); // need for reload case + + QueryResult *result = WorldDatabase.Query("SELECT entry,icon_name_loc1,icon_name_loc2,icon_name_loc3,icon_name_loc4,icon_name_loc5,icon_name_loc6,icon_name_loc7,icon_name_loc8 FROM locales_points_of_interest"); + + if(!result) + { + barGoLink bar(1); + + bar.step(); + + sLog.outString(""); + sLog.outString(">> Loaded 0 points_of_interest locale strings. DB table `locales_points_of_interest` is empty."); + return; + } + + barGoLink bar(result->GetRowCount()); + + do + { + Field *fields = result->Fetch(); + bar.step(); + + uint32 entry = fields[0].GetUInt32(); + + PointOfInterestLocale& data = mPointOfInterestLocaleMap[entry]; + + for(int i = 1; i < MAX_LOCALE; ++i) + { + std::string str = fields[i].GetCppString(); + if(str.empty()) + continue; + + int idx = GetOrNewIndexForLocale(LocaleConstant(i)); + if(idx >= 0) + { + if(data.IconName.size() <= idx) + data.IconName.resize(idx+1); + + data.IconName[idx] = str; + } + } + } while (result->NextRow()); + + delete result; + + sLog.outString(); + sLog.outString( ">> Loaded %u points_of_interest locale strings", mPointOfInterestLocaleMap.size() ); +} + struct SQLCreatureLoader : public SQLStorageLoaderBase { template @@ -5715,6 +5766,58 @@ void ObjectMgr::LoadReputationOnKill() sLog.outString(">> Loaded %u creature award reputation definitions", count); } +void ObjectMgr::LoadPointsOfInterest() +{ + uint32 count = 0; + + // 0 1 2 3 4 5 + QueryResult *result = WorldDatabase.Query("SELECT entry, x, y, icon, flags, data, icon_name FROM points_of_interest"); + + if(!result) + { + barGoLink bar(1); + + bar.step(); + + sLog.outString(); + sLog.outErrorDb(">> Loaded 0 Points of Interest definitions. DB table `points_of_interest` is empty."); + return; + } + + barGoLink bar(result->GetRowCount()); + + do + { + Field *fields = result->Fetch(); + bar.step(); + + uint32 point_id = fields[0].GetUInt32(); + + PointOfInterest POI; + POI.x = fields[1].GetFloat(); + POI.y = fields[2].GetFloat(); + POI.icon = fields[3].GetUInt32(); + POI.flags = fields[4].GetUInt32(); + POI.data = fields[5].GetUInt32(); + POI.icon_name = fields[6].GetCppString(); + + if(!MaNGOS::IsValidMapCoord(POI.x,POI.y)) + { + sLog.outErrorDb("Table `points_of_interest` (Entry: %u) have invalid coordinates (X: %f Y: %f), ignored.",point_id,POI.x,POI.y); + continue; + } + + mPointsOfInterest[point_id] = POI; + + ++count; + } while (result->NextRow()); + + delete result; + + sLog.outString(); + sLog.outString(">> Loaded %u Points of Interest definitions", count); +} + void ObjectMgr::LoadWeatherZoneChances() { uint32 count = 0; diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h index b84ca51cd..3e4073a59 100644 --- a/src/game/ObjectMgr.h +++ b/src/game/ObjectMgr.h @@ -146,6 +146,7 @@ typedef UNORDERED_MAP NpcTextLocaleMap; typedef UNORDERED_MAP PageTextLocaleMap; typedef UNORDERED_MAP MangosStringLocaleMap; typedef UNORDERED_MAP NpcOptionLocaleMap; +typedef UNORDERED_MAP PointOfInterestLocaleMap; typedef std::multimap QuestRelations; @@ -172,6 +173,17 @@ struct ReputationOnKillEntry bool team_dependent; }; +struct PointOfInterest +{ + uint32 entry; + float x; + float y; + uint32 icon; + uint32 flags; + uint32 data; + std::string icon_name; +}; + struct PetCreateSpellEntry { uint32 spellid[4]; @@ -292,6 +304,7 @@ class ObjectMgr typedef UNORDERED_MAP AreaTriggerScriptMap; typedef UNORDERED_MAP RepOnKillMap; + typedef UNORDERED_MAP PointOfInterestMap; typedef UNORDERED_MAP WeatherZoneMap; @@ -431,6 +444,14 @@ class ObjectMgr return NULL; } + PointOfInterest const* GetPointOfInterest(uint32 id) const + { + PointOfInterestMap::const_iterator itr = mPointsOfInterest.find(id); + if(itr != mPointsOfInterest.end()) + return &itr->second; + return NULL; + } + PetCreateSpellEntry const* GetPetCreateSpellEntry(uint32 id) const { PetCreateSpellMap::const_iterator itr = mPetCreateSpell.find(id); @@ -486,6 +507,7 @@ class ObjectMgr void LoadNpcTextLocales(); void LoadPageTextLocales(); void LoadNpcOptionLocales(); + void LoadPointOfInterestLocales(); void LoadInstanceTemplate(); void LoadGossipText(); @@ -508,6 +530,7 @@ class ObjectMgr void LoadFishingBaseSkillLevel(); void LoadReputationOnKill(); + void LoadPointsOfInterest(); void LoadWeatherZoneChances(); void LoadGameTele(); @@ -615,6 +638,12 @@ class ObjectMgr if(itr==mNpcOptionLocaleMap.end()) return NULL; return &itr->second; } + PointOfInterestLocale const* GetPointOfInterestLocale(uint32 poi_id) const + { + PointOfInterestLocaleMap::const_iterator itr = mPointOfInterestLocaleMap.find(poi_id); + if(itr==mPointOfInterestLocaleMap.end()) return NULL; + return &itr->second; + } GameObjectData const* GetGOData(uint32 guid) const { @@ -768,6 +797,8 @@ class ObjectMgr RepOnKillMap mRepOnKill; + PointOfInterestMap mPointsOfInterest; + WeatherZoneMap mWeatherZoneMap; PetCreateSpellMap mPetCreateSpell; @@ -826,6 +857,7 @@ class ObjectMgr PageTextLocaleMap mPageTextLocaleMap; MangosStringLocaleMap mMangosStringLocaleMap; NpcOptionLocaleMap mNpcOptionLocaleMap; + PointOfInterestLocaleMap mPointOfInterestLocaleMap; RespawnTimes mCreatureRespawnTimes; RespawnTimes mGORespawnTimes; diff --git a/src/game/World.cpp b/src/game/World.cpp index 8ef0bd812..d8be5cf1a 100644 --- a/src/game/World.cpp +++ b/src/game/World.cpp @@ -1094,6 +1094,7 @@ void World::SetInitialWorldSettings() objmgr.LoadNpcTextLocales(); objmgr.LoadPageTextLocales(); objmgr.LoadNpcOptionLocales(); + objmgr.LoadPointOfInterestLocales(); objmgr.SetDBCLocaleIndex(GetDefaultDbcLocale()); // Get once for all the locale index of DBC language (console/broadcasts) sLog.outString( ">>> Localization strings loaded" ); sLog.outString(); @@ -1152,6 +1153,9 @@ void World::SetInitialWorldSettings() sLog.outString( "Loading Creature Reputation OnKill Data..." ); objmgr.LoadReputationOnKill(); + sLog.outString( "Loading Points Of Interest Data..." ); + objmgr.LoadPointsOfInterest(); + sLog.outString( "Loading Pet Create Spells..." ); objmgr.LoadPetCreateSpells(); diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 3d9e1623b..3eb4d8c1f 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7291" + #define REVISION_NR "7292" #endif // __REVISION_NR_H__