aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorclick <none@none>2010-05-01 08:10:14 +0200
committerclick <none@none>2010-05-01 08:10:14 +0200
commit3a616674921763c5cf3f3409dbd1fe06251ec9c2 (patch)
tree8413f86248f603d5a74e6ab87b4b659266e5b9e3
parentea2d4d95366fa74415e90bf3dd551697ec2a0eaa (diff)
Add support for sorting vendor itemlists
--HG-- branch : trunk
-rw-r--r--sql/updates/8057_world_game_event_npc_vendor.sql2
-rw-r--r--sql/updates/8057_world_npc_vendor.sql2
-rw-r--r--sql/world.sql8
-rw-r--r--src/game/GameEventMgr.cpp2
-rw-r--r--src/game/ObjectMgr.cpp4
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);