From 7d754c3f7f0046ae432028ba8745256bbcbaeb39 Mon Sep 17 00:00:00 2001 From: Brian Date: Thu, 26 Nov 2009 12:23:33 -0700 Subject: [PATCH] * Added support for questItem5 and questItem6 in creature and gameobject * templates. * * Thanks to Malcrom for doing the research. --HG-- branch : trunk --- sql/updates/6374_world.sql | 4 ++++ sql/world.sql | 4 ++++ src/game/Creature.h | 2 +- src/game/GameObject.h | 2 +- src/game/QueryHandler.cpp | 8 ++++---- src/shared/Database/SQLStorage.cpp | 8 ++++---- 6 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 sql/updates/6374_world.sql diff --git a/sql/updates/6374_world.sql b/sql/updates/6374_world.sql new file mode 100644 index 00000000000..a1a8fdf5278 --- /dev/null +++ b/sql/updates/6374_world.sql @@ -0,0 +1,4 @@ +ALTER TABLE `creature_template` ADD `questItem5` int(11) UNSIGNED NOT NULL DEFAULT 0 AFTER `questItem4`; +ALTER TABLE `creature_template` ADD `questItem6` int(11) UNSIGNED NOT NULL DEFAULT 0 AFTER `questItem5`; +ALTER TABLE `gameobject_template` ADD `questItem5` int(11) UNSIGNED NOT NULL DEFAULT 0 AFTER `questItem4`; +ALTER TABLE `gameobject_template` ADD `questItem6` int(11) UNSIGNED NOT NULL DEFAULT 0 AFTER `questItem5`; diff --git a/sql/world.sql b/sql/world.sql index 1c24a339b95..1b9e3d41296 100644 --- a/sql/world.sql +++ b/sql/world.sql @@ -565,6 +565,8 @@ CREATE TABLE `creature_template` ( `questItem2` int(11) unsigned NOT NULL default '0', `questItem3` int(11) unsigned NOT NULL default '0', `questItem4` int(11) unsigned NOT NULL default '0', + `questItem5` int(11) unsigned NOT NULL default '0', + `questItem6` int(11) unsigned NOT NULL default '0', `movementId` int(11) unsigned NOT NULL default '0', `RegenHealth` tinyint(3) unsigned NOT NULL default '1', `equipment_id` mediumint(8) unsigned NOT NULL default '0', @@ -1134,6 +1136,8 @@ CREATE TABLE `gameobject_template` ( `questItem2` int(11) unsigned NOT NULL default '0', `questItem3` int(11) unsigned NOT NULL default '0', `questItem4` int(11) unsigned NOT NULL default '0', + `questItem5` int(11) unsigned NOT NULL default '0', + `questItem6` int(11) unsigned NOT NULL default '0', `data0` int(10) unsigned NOT NULL default '0', `data1` int(10) unsigned NOT NULL default '0', `data2` int(10) unsigned NOT NULL default '0', diff --git a/src/game/Creature.h b/src/game/Creature.h index 1ab3bdbbb62..ab9915c0bda 100644 --- a/src/game/Creature.h +++ b/src/game/Creature.h @@ -229,7 +229,7 @@ struct CreatureInfo float unk16; float unk17; bool RacialLeader; - uint32 questItems[4]; + uint32 questItems[6]; uint32 movementId; bool RegenHealth; uint32 equipmentId; diff --git a/src/game/GameObject.h b/src/game/GameObject.h index 232b711bcf9..c65938000bb 100644 --- a/src/game/GameObject.h +++ b/src/game/GameObject.h @@ -47,7 +47,7 @@ struct GameObjectInfo uint32 faction; uint32 flags; float size; - uint32 questItems[4]; + uint32 questItems[6]; union // different GO types have different data field { //0 GAMEOBJECT_TYPE_DOOR diff --git a/src/game/QueryHandler.cpp b/src/game/QueryHandler.cpp index 8e231228f20..f3ceb16dc6b 100644 --- a/src/game/QueryHandler.cpp +++ b/src/game/QueryHandler.cpp @@ -197,8 +197,8 @@ void WorldSession::HandleCreatureQueryOpcode( WorldPacket & recv_data ) data << float(ci->unk16); // unk data << float(ci->unk17); // unk data << uint8(ci->RacialLeader); - for (uint32 i = 0; i < 4; ++i) - data << uint32(ci->questItems[i]); // itemId[4], quest drop + for (uint32 i = 0; i < 6; ++i) + data << uint32(ci->questItems[i]); // itemId[6], quest drop data << uint32(ci->movementId); // CreatureMovementInfo.dbc SendPacket( &data ); sLog.outDebug( "WORLD: Sent SMSG_CREATURE_QUERY_RESPONSE" ); @@ -259,8 +259,8 @@ void WorldSession::HandleGameObjectQueryOpcode( WorldPacket & recv_data ) data << info->unk1; // 2.0.3, string data.append(info->raw.data, 24); data << float(info->size); // go size - for (uint32 i = 0; i < 4; ++i) - data << uint32(info->questItems[i]); // itemId[4], quest drop + for (uint32 i = 0; i < 6; ++i) + data << uint32(info->questItems[i]); // itemId[6], quest drop SendPacket( &data ); sLog.outDebug( "WORLD: Sent SMSG_GAMEOBJECT_QUERY_RESPONSE" ); } diff --git a/src/shared/Database/SQLStorage.cpp b/src/shared/Database/SQLStorage.cpp index e6b3c7bfc5f..0ea5c3d826b 100644 --- a/src/shared/Database/SQLStorage.cpp +++ b/src/shared/Database/SQLStorage.cpp @@ -27,14 +27,14 @@ extern DatabasePostgre WorldDatabase; extern DatabaseMysql WorldDatabase; #endif -const char CreatureInfosrcfmt[]="iiiiiiiisssiiiiiiiiiiffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiiiiiiisiiffliiiiiliiis"; -const char CreatureInfodstfmt[]="iiiiiiiisssiiiiiiiiiiffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiiiiiiisiiffliiiiiliiii"; +const char CreatureInfosrcfmt[]="iiiiiiiisssiiiiiiiiiiffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiiiiiiisiiffliiiiiiiliiis"; +const char CreatureInfodstfmt[]="iiiiiiiisssiiiiiiiiiiffiffiifiiiiiiiiiiffiiiiiiiiiiiiiiiiiiiiiiiisiiffliiiiiiiliiii"; const char CreatureDataAddonInfofmt[]="iiiiiiis"; const char CreatureModelfmt[]="iffbi"; const char CreatureInfoAddonInfofmt[]="iiiiiiis"; const char EquipmentInfofmt[]="iiii"; -const char GameObjectInfosrcfmt[]="iiissssiifiiiiiiiiiiiiiiiiiiiiiiiiiiiis"; -const char GameObjectInfodstfmt[]="iiissssiifiiiiiiiiiiiiiiiiiiiiiiiiiiiii"; +const char GameObjectInfosrcfmt[]="iiissssiifiiiiiiiiiiiiiiiiiiiiiiiiiiiiiis"; +const char GameObjectInfodstfmt[]="iiissssiifiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii"; const char ItemPrototypesrcfmt[]="iiiisiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffiffiiiiiiiiiifiiifiiiiiifiiiiiifiiiiiifiiiiiifiiiisiiiiiiiiiiiiiiiiiiiiiiiiifiiisiiii"; const char ItemPrototypedstfmt[]="iiiisiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiffiffiiiiiiiiiifiiifiiiiiifiiiiiifiiiiiifiiiiiifiiiisiiiiiiiiiiiiiiiiiiiiiiiiifiiiiiiii"; const char PageTextfmt[]="isi";