diff options
author | click <none@none> | 2010-05-01 08:10:14 +0200 |
---|---|---|
committer | click <none@none> | 2010-05-01 08:10:14 +0200 |
commit | 3a616674921763c5cf3f3409dbd1fe06251ec9c2 (patch) | |
tree | 8413f86248f603d5a74e6ab87b4b659266e5b9e3 | |
parent | ea2d4d95366fa74415e90bf3dd551697ec2a0eaa (diff) |
Add support for sorting vendor itemlists
--HG--
branch : trunk
-rw-r--r-- | sql/updates/8057_world_game_event_npc_vendor.sql | 2 | ||||
-rw-r--r-- | sql/updates/8057_world_npc_vendor.sql | 2 | ||||
-rw-r--r-- | sql/world.sql | 8 | ||||
-rw-r--r-- | src/game/GameEventMgr.cpp | 2 | ||||
-rw-r--r-- | src/game/ObjectMgr.cpp | 4 |
5 files changed, 13 insertions, 5 deletions
diff --git a/sql/updates/8057_world_game_event_npc_vendor.sql b/sql/updates/8057_world_game_event_npc_vendor.sql new file mode 100644 index 00000000000..92923390b31 --- /dev/null +++ b/sql/updates/8057_world_game_event_npc_vendor.sql @@ -0,0 +1,2 @@ +ALTER TABLE `game_event_npc_vendor` ADD `slot` SMALLINT(6) NOT NULL DEFAULT '0' AFTER `guid`; +ALTER TABLE `game_event_npc_vendor` ADD INDEX (`slot`); diff --git a/sql/updates/8057_world_npc_vendor.sql b/sql/updates/8057_world_npc_vendor.sql new file mode 100644 index 00000000000..7703e035790 --- /dev/null +++ b/sql/updates/8057_world_npc_vendor.sql @@ -0,0 +1,2 @@ +ALTER TABLE `npc_vendor` ADD `slot` SMALLINT(6) NOT NULL DEFAULT '0' AFTER `entry`; +ALTER TABLE `npc_vendor` ADD INDEX (`slot`); diff --git a/sql/world.sql b/sql/world.sql index 8c8bf8b1ef1..bd299941180 100644 --- a/sql/world.sql +++ b/sql/world.sql @@ -2093,11 +2093,13 @@ DROP TABLE IF EXISTS `game_event_npc_vendor`; CREATE TABLE `game_event_npc_vendor` ( `event` mediumint(8) unsigned NOT NULL DEFAULT '0', `guid` mediumint(8) unsigned NOT NULL DEFAULT '0', + `slot` smallint(6) unsigned NOT NULL DEFAULT '0', `item` mediumint(8) NOT NULL DEFAULT '0', `maxcount` mediumint(8) unsigned NOT NULL DEFAULT '0', `incrtime` mediumint(8) unsigned NOT NULL DEFAULT '0', `ExtendedCost` mediumint(8) unsigned NOT NULL DEFAULT '0', - PRIMARY KEY (`guid`,`item`) + PRIMARY KEY (`guid`,`item`), + INDEX (`slot`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; @@ -3687,11 +3689,13 @@ DROP TABLE IF EXISTS `npc_vendor`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `npc_vendor` ( `entry` mediumint(8) unsigned NOT NULL DEFAULT '0', + `slot` smallint(6) unsigned NOT NULL DEFAULT '0', `item` mediumint(8) unsigned NOT NULL DEFAULT '0', `maxcount` tinyint(3) unsigned NOT NULL DEFAULT '0', `incrtime` int(10) unsigned NOT NULL DEFAULT '0', `ExtendedCost` mediumint(8) unsigned NOT NULL DEFAULT '0', - PRIMARY KEY (`entry`,`item`,`extendedCost`) + PRIMARY KEY (`entry`,`item`,`extendedCost`), + INDEX (`slot`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Npc System'; /*!40101 SET character_set_client = @saved_cs_client */; diff --git a/src/game/GameEventMgr.cpp b/src/game/GameEventMgr.cpp index 965651ae2f6..c285376ffd3 100644 --- a/src/game/GameEventMgr.cpp +++ b/src/game/GameEventMgr.cpp @@ -823,7 +823,7 @@ void GameEventMgr::LoadFromDB() sLog.outString("Loading Game Event Vendor Additions Data..."); // 0 1 2 3 4 5 - result = WorldDatabase.Query("SELECT event, guid, item, maxcount, incrtime, ExtendedCost FROM game_event_npc_vendor"); + result = WorldDatabase.Query("SELECT event, guid, item, maxcount, incrtime, ExtendedCost FROM game_event_npc_vendor ORDER BY guid, slot ASC"); count = 0; if (!result) diff --git a/src/game/ObjectMgr.cpp b/src/game/ObjectMgr.cpp index 94d735f10f0..54ed69417dc 100644 --- a/src/game/ObjectMgr.cpp +++ b/src/game/ObjectMgr.cpp @@ -8252,7 +8252,7 @@ void ObjectMgr::LoadTrainerSpell() int ObjectMgr::LoadReferenceVendor(int32 vendor, int32 item, std::set<uint32> *skip_vendors) { // find all items from the reference vendor - QueryResult_AutoPtr result = WorldDatabase.PQuery("SELECT item, maxcount, incrtime, ExtendedCost FROM npc_vendor WHERE entry='%d'", item); + QueryResult_AutoPtr result = WorldDatabase.PQuery("SELECT item, maxcount, incrtime, ExtendedCost FROM npc_vendor WHERE entry='%d' ORDER BY slot ASC", item); if (!result) { barGoLink bar(1); @@ -8303,7 +8303,7 @@ void ObjectMgr::LoadVendors() std::set<uint32> skip_vendors; - QueryResult_AutoPtr result = WorldDatabase.Query("SELECT entry, item, maxcount, incrtime, ExtendedCost FROM npc_vendor"); + QueryResult_AutoPtr result = WorldDatabase.Query("SELECT entry, item, maxcount, incrtime, ExtendedCost FROM npc_vendor ORDER BY entry, slot ASC"); if (!result) { barGoLink bar(1); |