mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-13 03:32:28 -04:00
Core/DataStores: Updated db2 structures to 7.3.2.25480
This commit is contained in:
316
sql/updates/hotfixes/master/2017_11_18_00_hotfixes.sql
Normal file
316
sql/updates/hotfixes/master/2017_11_18_00_hotfixes.sql
Normal file
@@ -0,0 +1,316 @@
|
||||
--
|
||||
-- Table structure for table `achievement`
|
||||
--
|
||||
ALTER TABLE `achievement`
|
||||
MODIFY `Faction` tinyint(4) NOT NULL DEFAULT '0' AFTER `SharesCriteria`,
|
||||
MODIFY `Points` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `Faction`,
|
||||
MODIFY `MinimumCriteria` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `Points`,
|
||||
MODIFY `ID` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinimumCriteria`,
|
||||
MODIFY `IconFileDataID` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `ID`,
|
||||
MODIFY `CriteriaTree` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `IconFileDataID`;
|
||||
|
||||
--
|
||||
-- Table structure for table `chr_races`
|
||||
--
|
||||
ALTER TABLE `chr_races`
|
||||
MODIFY `MaleDisplayID` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `Flags`,
|
||||
MODIFY `FemaleDisplayID` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `MaleDisplayID`,
|
||||
CHANGE `Unk1` `AlteredFormTransitionSpellVisualID1` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `HighResFemaleDisplayID`,
|
||||
CHANGE `Unk2` `AlteredFormTransitionSpellVisualID2` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `AlteredFormTransitionSpellVisualID1`,
|
||||
CHANGE `Unk3` `AlteredFormTransitionSpellVisualID3` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `AlteredFormTransitionSpellVisualID2`,
|
||||
ADD `AlteredFormTransitionSpellVisualKitID1` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `AlteredFormTransitionSpellVisualID3`,
|
||||
ADD `AlteredFormTransitionSpellVisualKitID2` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `AlteredFormTransitionSpellVisualKitID1`,
|
||||
ADD `AlteredFormTransitionSpellVisualKitID3` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `AlteredFormTransitionSpellVisualKitID2`;
|
||||
|
||||
--
|
||||
-- Table structure for table `conversation_line`
|
||||
--
|
||||
ALTER TABLE `conversation_line`
|
||||
MODIFY `BroadcastTextID` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `ID`,
|
||||
MODIFY `SpellVisualKitID` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `BroadcastTextID`,
|
||||
MODIFY `Duration` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `SpellVisualKitID`,
|
||||
MODIFY `NextLineID` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `Duration`,
|
||||
MODIFY `Unk1` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `NextLineID`,
|
||||
MODIFY `Yell` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `Unk1`,
|
||||
MODIFY `Unk2` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `Yell`,
|
||||
MODIFY `Unk3` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `Unk2`,
|
||||
MODIFY `VerifiedBuild` smallint(6) NOT NULL DEFAULT '0' AFTER `Unk3`;
|
||||
|
||||
--
|
||||
-- Table structure for table `criteria`
|
||||
--
|
||||
ALTER TABLE `criteria` MODIFY `ModifierTreeId` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `FailAsset`;
|
||||
|
||||
--
|
||||
-- Table structure for table `criteria_tree`
|
||||
--
|
||||
ALTER TABLE `criteria_tree` MODIFY `Parent` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `CriteriaID`;
|
||||
|
||||
--
|
||||
-- Table structure for table `item_level_selector`
|
||||
--
|
||||
ALTER TABLE `item_level_selector` ADD `ItemLevelSelectorQualitySetID` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `ItemLevel`;
|
||||
|
||||
--
|
||||
-- Table structure for table `item_level_selector_quality`
|
||||
--
|
||||
DROP TABLE IF EXISTS `item_level_selector_quality`;
|
||||
CREATE TABLE `item_level_selector_quality` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`ItemBonusListID` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`ItemLevelSelectorQualitySetID` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`Quality` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||
`VerifiedBuild` smallint(6) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Table structure for table `item_level_selector_quality_set`
|
||||
--
|
||||
DROP TABLE IF EXISTS `item_level_selector_quality_set`;
|
||||
CREATE TABLE `item_level_selector_quality_set` (
|
||||
`ID` int(10) unsigned NOT NULL DEFAULT '0',
|
||||
`ItemLevelMin` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`ItemLevelMax` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||
`VerifiedBuild` smallint(6) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`ID`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
--
|
||||
-- Table structure for table `item_search_name`
|
||||
--
|
||||
ALTER TABLE `item_search_name`
|
||||
MODIFY `RequiredReputationFaction` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `AllowableClass`,
|
||||
MODIFY `RequiredReputationRank` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredReputationFaction`,
|
||||
MODIFY `RequiredSkill` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredReputationRank`,
|
||||
MODIFY `RequiredSkillRank` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSkill`,
|
||||
MODIFY `RequiredSpell` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `RequiredSkillRank`;
|
||||
|
||||
--
|
||||
-- Table structure for table `item_sparse`
|
||||
--
|
||||
ALTER TABLE `item_sparse` ADD `Flags4` int(10) UNSIGNED NOT NULL DEFAULT 0 AFTER `Flags3`;
|
||||
|
||||
--
|
||||
-- Table structure for table `keychain`
|
||||
--
|
||||
RENAME TABLE `key_chain` TO `keychain`;
|
||||
|
||||
--
|
||||
-- Table structure for table `modifier_tree`
|
||||
--
|
||||
ALTER TABLE `modifier_tree` MODIFY `Parent` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `Asset2`;
|
||||
|
||||
--
|
||||
-- Table structure for table `player_condition`
|
||||
--
|
||||
ALTER TABLE `player_condition`
|
||||
MODIFY `Time1` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `RaceMask`,
|
||||
MODIFY `Time2` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `Time1`,
|
||||
MODIFY `AuraSpellID1` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `Time2`,
|
||||
MODIFY `AuraSpellID2` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `AuraSpellID1`,
|
||||
MODIFY `AuraSpellID3` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `AuraSpellID2`,
|
||||
MODIFY `AuraSpellID4` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `AuraSpellID3`,
|
||||
MODIFY `FailureDescription` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL AFTER `AuraSpellID4`,
|
||||
MODIFY `SkillID1` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `FailureDescription`,
|
||||
MODIFY `SkillID2` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `SkillID1`,
|
||||
MODIFY `SkillID3` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `SkillID2`,
|
||||
MODIFY `SkillID4` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `SkillID3`,
|
||||
MODIFY `MinSkill1` smallint(6) NOT NULL DEFAULT '0' AFTER `SkillID4`,
|
||||
MODIFY `MinSkill2` smallint(6) NOT NULL DEFAULT '0' AFTER `MinSkill1`,
|
||||
MODIFY `MinSkill3` smallint(6) NOT NULL DEFAULT '0' AFTER `MinSkill2`,
|
||||
MODIFY `MinSkill4` smallint(6) NOT NULL DEFAULT '0' AFTER `MinSkill3`,
|
||||
MODIFY `MaxSkill1` smallint(6) NOT NULL DEFAULT '0' AFTER `MinSkill4`,
|
||||
MODIFY `MaxSkill2` smallint(6) NOT NULL DEFAULT '0' AFTER `MaxSkill1`,
|
||||
MODIFY `MaxSkill3` smallint(6) NOT NULL DEFAULT '0' AFTER `MaxSkill2`,
|
||||
MODIFY `MaxSkill4` smallint(6) NOT NULL DEFAULT '0' AFTER `MaxSkill3`,
|
||||
MODIFY `PrevQuestID1` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `MaxSkill4`,
|
||||
MODIFY `PrevQuestID2` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `PrevQuestID1`,
|
||||
MODIFY `PrevQuestID3` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `PrevQuestID2`,
|
||||
MODIFY `PrevQuestID4` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `PrevQuestID3`,
|
||||
MODIFY `CurrQuestID1` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `PrevQuestID4`,
|
||||
MODIFY `CurrQuestID2` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrQuestID1`,
|
||||
MODIFY `CurrQuestID3` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrQuestID2`,
|
||||
MODIFY `CurrQuestID4` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrQuestID3`,
|
||||
MODIFY `CurrentCompletedQuestID1` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrQuestID4`,
|
||||
MODIFY `CurrentCompletedQuestID2` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrentCompletedQuestID1`,
|
||||
MODIFY `CurrentCompletedQuestID3` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrentCompletedQuestID2`,
|
||||
MODIFY `CurrentCompletedQuestID4` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrentCompletedQuestID3`,
|
||||
MODIFY `Explored1` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrentCompletedQuestID4`,
|
||||
MODIFY `Explored2` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `Explored1`,
|
||||
MODIFY `Achievement1` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `Explored2`,
|
||||
MODIFY `Achievement2` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `Achievement1`,
|
||||
MODIFY `Achievement3` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `Achievement2`,
|
||||
MODIFY `Achievement4` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `Achievement3`,
|
||||
MODIFY `AreaID1` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `Achievement4`,
|
||||
MODIFY `AreaID2` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `AreaID1`,
|
||||
MODIFY `AreaID3` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `AreaID2`,
|
||||
MODIFY `AreaID4` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `AreaID3`,
|
||||
MODIFY `Flags` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `AreaID4`,
|
||||
MODIFY `MinReputation1` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `Flags`,
|
||||
MODIFY `MinReputation2` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinReputation1`,
|
||||
MODIFY `MinReputation3` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinReputation2`,
|
||||
MODIFY `AuraCount1` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinReputation3`,
|
||||
MODIFY `AuraCount2` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `AuraCount1`,
|
||||
MODIFY `AuraCount3` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `AuraCount2`,
|
||||
MODIFY `AuraCount4` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `AuraCount3`,
|
||||
MODIFY `LfgStatus1` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `AuraCount4`,
|
||||
MODIFY `LfgStatus2` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgStatus1`,
|
||||
MODIFY `LfgStatus3` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgStatus2`,
|
||||
MODIFY `LfgStatus4` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgStatus3`,
|
||||
MODIFY `LfgCompare1` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgStatus4`,
|
||||
MODIFY `LfgCompare2` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgCompare1`,
|
||||
MODIFY `LfgCompare3` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgCompare2`,
|
||||
MODIFY `LfgCompare4` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgCompare3`,
|
||||
MODIFY `CurrencyCount1` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgCompare4`,
|
||||
MODIFY `CurrencyCount2` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrencyCount1`,
|
||||
MODIFY `CurrencyCount3` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrencyCount2`,
|
||||
MODIFY `CurrencyCount4` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrencyCount3`,
|
||||
MODIFY `ClassMask` int(11) NOT NULL DEFAULT '0' AFTER `CurrencyCount4`,
|
||||
MODIFY `MinFactionID1` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `ClassMask`,
|
||||
MODIFY `MinFactionID2` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinFactionID1`,
|
||||
MODIFY `MinFactionID3` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinFactionID2`,
|
||||
MODIFY `SpellID1` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinFactionID3`,
|
||||
MODIFY `SpellID2` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `SpellID1`,
|
||||
MODIFY `SpellID3` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `SpellID2`,
|
||||
MODIFY `SpellID4` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `SpellID3`,
|
||||
MODIFY `ItemID1` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `SpellID4`,
|
||||
MODIFY `ItemID2` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `ItemID1`,
|
||||
MODIFY `ItemID3` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `ItemID2`,
|
||||
MODIFY `ItemID4` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `ItemID3`,
|
||||
MODIFY `ItemCount1` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `ItemID4`,
|
||||
MODIFY `ItemCount2` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `ItemCount1`,
|
||||
MODIFY `ItemCount3` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `ItemCount2`,
|
||||
MODIFY `ItemCount4` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `ItemCount3`,
|
||||
MODIFY `LfgValue1` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `ItemCount4`,
|
||||
MODIFY `LfgValue2` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgValue1`,
|
||||
MODIFY `LfgValue3` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgValue2`,
|
||||
MODIFY `LfgValue4` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgValue3`,
|
||||
MODIFY `CurrencyID1` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `LfgValue4`,
|
||||
MODIFY `CurrencyID2` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrencyID1`,
|
||||
MODIFY `CurrencyID3` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrencyID2`,
|
||||
MODIFY `CurrencyID4` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrencyID3`,
|
||||
MODIFY `QuestKillMonster1` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrencyID4`,
|
||||
MODIFY `QuestKillMonster2` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `QuestKillMonster1`,
|
||||
MODIFY `QuestKillMonster3` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `QuestKillMonster2`,
|
||||
MODIFY `QuestKillMonster4` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `QuestKillMonster3`,
|
||||
MODIFY `QuestKillMonster5` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `QuestKillMonster4`,
|
||||
MODIFY `QuestKillMonster6` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `QuestKillMonster5`,
|
||||
MODIFY `MovementFlags1` int(11) NOT NULL DEFAULT '0' AFTER `QuestKillMonster6`,
|
||||
MODIFY `MovementFlags2` int(11) NOT NULL DEFAULT '0' AFTER `MovementFlags1`,
|
||||
MODIFY `MinLevel` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `MovementFlags2`,
|
||||
MODIFY `MaxLevel` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinLevel`,
|
||||
MODIFY `Gender` tinyint(4) NOT NULL DEFAULT '0' AFTER `MaxLevel`,
|
||||
MODIFY `NativeGender` tinyint(4) NOT NULL DEFAULT '0' AFTER `Gender`,
|
||||
MODIFY `LanguageID` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `SkillLogic`,
|
||||
MODIFY `MinLanguage` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `LanguageID`,
|
||||
MODIFY `MaxLanguage` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinLanguage`,
|
||||
MODIFY `MaxFactionID` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `MaxLanguage`,
|
||||
MODIFY `MaxReputation` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `MaxFactionID`,
|
||||
MODIFY `Unknown1` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `ReputationLogic`,
|
||||
MODIFY `MinPVPRank` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `Unknown1`,
|
||||
MODIFY `MaxPVPRank` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinPVPRank`,
|
||||
MODIFY `PvpMedal` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `MaxPVPRank`,
|
||||
MODIFY `ItemFlags` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `ItemLogic`,
|
||||
MODIFY `WorldStateExpressionID` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `AuraSpellLogic`,
|
||||
MODIFY `WeatherID` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `WorldStateExpressionID`,
|
||||
MODIFY `PartyStatus` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `WeatherID`,
|
||||
MODIFY `LifetimeMaxPVPRank` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `PartyStatus`,
|
||||
MODIFY `LfgLogic` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `AchievementLogic`,
|
||||
MODIFY `CurrencyLogic` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `AreaLogic`,
|
||||
MODIFY `QuestKillID` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `CurrencyLogic`,
|
||||
MODIFY `MinExpansionLevel` tinyint(4) NOT NULL DEFAULT '0' AFTER `QuestKillLogic`,
|
||||
MODIFY `MaxExpansionLevel` tinyint(4) NOT NULL DEFAULT '0' AFTER `MinExpansionLevel`,
|
||||
MODIFY `MinExpansionTier` tinyint(4) NOT NULL DEFAULT '0' AFTER `MaxExpansionLevel`,
|
||||
MODIFY `MaxExpansionTier` tinyint(4) NOT NULL DEFAULT '0' AFTER `MinExpansionTier`,
|
||||
MODIFY `MinGuildLevel` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `MaxExpansionTier`,
|
||||
MODIFY `MaxGuildLevel` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinGuildLevel`,
|
||||
MODIFY `PhaseUseFlags` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `MaxGuildLevel`,
|
||||
MODIFY `PhaseGroupID` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `PhaseID`,
|
||||
MODIFY `MinAvgItemLevel` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `PhaseGroupID`,
|
||||
MODIFY `MaxAvgItemLevel` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `MinAvgItemLevel`,
|
||||
MODIFY `ChrSpecializationIndex` tinyint(4) NOT NULL DEFAULT '0' AFTER `MaxAvgEquippedItemLevel`,
|
||||
MODIFY `ChrSpecializationRole` tinyint(4) NOT NULL DEFAULT '0' AFTER `ChrSpecializationIndex`,
|
||||
MODIFY `PowerType` tinyint(4) NOT NULL DEFAULT '0' AFTER `ChrSpecializationRole`,
|
||||
MODIFY `PowerTypeComp` tinyint(4) NOT NULL DEFAULT '0' AFTER `PowerType`,
|
||||
MODIFY `PowerTypeValue` tinyint(4) NOT NULL DEFAULT '0' AFTER `PowerTypeComp`,
|
||||
MODIFY `ModifierTreeID` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `PowerTypeValue`;
|
||||
|
||||
--
|
||||
-- Table structure for table `scenario_step`
|
||||
--
|
||||
ALTER TABLE `scenario_step` MODIFY `CriteriaTreeID` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `Flags`;
|
||||
|
||||
--
|
||||
-- Table structure for table `sound_kit`
|
||||
--
|
||||
ALTER TABLE `sound_kit`
|
||||
MODIFY `ID` int(10) UNSIGNED NOT NULL DEFAULT '0' FIRST,
|
||||
MODIFY `Flags` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `DistanceCutoff`,
|
||||
MODIFY `SoundEntriesAdvancedID` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `Flags`,
|
||||
MODIFY `SoundType` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `SoundEntriesAdvancedID`,
|
||||
MODIFY `DialogType` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `SoundType`,
|
||||
MODIFY `EAXDef` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `DialogType`,
|
||||
DROP `Name`;
|
||||
|
||||
DROP TABLE `sound_kit_locale`;
|
||||
|
||||
--
|
||||
-- Table structure for table `spell_aura_options`
|
||||
--
|
||||
ALTER TABLE `spell_aura_options` MODIFY `SpellProcsPerMinuteID` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `CumulativeAura`;
|
||||
|
||||
--
|
||||
-- Table structure for table `spell_procs_per_minute_mod`
|
||||
--
|
||||
ALTER TABLE `spell_procs_per_minute_mod` MODIFY `SpellProcsPerMinuteID` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `Param`;
|
||||
|
||||
--
|
||||
-- Table structure for table `taxi_nodes`
|
||||
--
|
||||
ALTER TABLE `taxi_nodes`
|
||||
MODIFY `ID` int(10) UNSIGNED NOT NULL DEFAULT '0' FIRST,
|
||||
ADD `Unk730` float NOT NULL DEFAULT '0' AFTER `MapOffsetY`,
|
||||
ADD `FlightMapOffsetX` float NOT NULL DEFAULT '0' AFTER `Unk730`,
|
||||
ADD `FlightMapOffsetY` float NOT NULL DEFAULT '0' AFTER `FlightMapOffsetX`,
|
||||
ADD `UiTextureKitPrefixID` int(11) NOT NULL DEFAULT '0' AFTER `Flags`,
|
||||
ADD `SpecialAtlasIconPlayerConditionID` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `UiTextureKitPrefixID`;
|
||||
|
||||
--
|
||||
-- Table structure for table `taxi_path_node`
|
||||
--
|
||||
ALTER TABLE `taxi_path_node`
|
||||
MODIFY `Flags` tinyint(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `ID`,
|
||||
MODIFY `Delay` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `Flags`,
|
||||
MODIFY `ArrivalEventID` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `Delay`,
|
||||
MODIFY `DepartureEventID` smallint(5) UNSIGNED NOT NULL DEFAULT '0' AFTER `ArrivalEventID`;
|
||||
|
||||
--
|
||||
-- Table structure for table `vehicle`
|
||||
--
|
||||
ALTER TABLE `vehicle`
|
||||
ADD `MissileTargetingID` int(11) NOT NULL DEFAULT '0' AFTER `UILocomotionType`,
|
||||
DROP `MsslTrgtTurnLingering`,
|
||||
DROP `MsslTrgtPitchLingering`,
|
||||
DROP `MsslTrgtMouseLingering`,
|
||||
DROP `MsslTrgtEndOpacity`,
|
||||
DROP `MsslTrgtArcSpeed`,
|
||||
DROP `MsslTrgtArcRepeat`,
|
||||
DROP `MsslTrgtArcWidth`,
|
||||
DROP `MsslTrgtImpactRadius1`,
|
||||
DROP `MsslTrgtImpactRadius2`,
|
||||
DROP `MsslTrgtArcTexture`,
|
||||
DROP `MsslTrgtImpactTexture`,
|
||||
DROP `MsslTrgtImpactModel1`,
|
||||
DROP `MsslTrgtImpactModel2`,
|
||||
DROP `MsslTrgtImpactTexRadius`;
|
||||
|
||||
--
|
||||
-- Table structure for table `world_map_area`
|
||||
--
|
||||
ALTER TABLE `world_map_area` MODIFY `Flags` int(10) UNSIGNED NOT NULL DEFAULT '0' AFTER `LocBottom`;
|
||||
|
||||
--
|
||||
-- Table structure for table `world_map_transforms`
|
||||
--
|
||||
ALTER TABLE `world_map_transforms` ADD `Priority` int(11) NOT NULL DEFAULT '0' AFTER `Flags`;
|
||||
@@ -573,7 +573,6 @@ void DB2FileLoaderRegularImpl::FillCommonValues(char** indexTable)
|
||||
ASSERT(_loadInfo->Meta->Types[field] == FT_SHORT);
|
||||
uint16 value = *reinterpret_cast<uint16*>(commonDataItr);
|
||||
EndianConvert(value);
|
||||
commonDataItr += sizeof(uint16);
|
||||
for (uint32 arrayIndex = 0; arrayIndex < _loadInfo->Meta->ArraySizes[field]; ++arrayIndex)
|
||||
*reinterpret_cast<uint16*>(&recordData[fieldOffset + sizeof(uint16) * arrayIndex]) = value;
|
||||
break;
|
||||
@@ -582,7 +581,6 @@ void DB2FileLoaderRegularImpl::FillCommonValues(char** indexTable)
|
||||
{
|
||||
ASSERT(_loadInfo->Meta->Types[field] == FT_BYTE);
|
||||
uint8 value = *reinterpret_cast<uint8*>(commonDataItr);
|
||||
commonDataItr += sizeof(uint8);
|
||||
for (uint32 arrayIndex = 0; arrayIndex < _loadInfo->Meta->ArraySizes[field]; ++arrayIndex)
|
||||
*reinterpret_cast<uint8*>(&recordData[fieldOffset + sizeof(uint8) * arrayIndex]) = value;
|
||||
break;
|
||||
@@ -592,7 +590,6 @@ void DB2FileLoaderRegularImpl::FillCommonValues(char** indexTable)
|
||||
ASSERT(_loadInfo->Meta->Types[field] == FT_FLOAT);
|
||||
float value = *reinterpret_cast<float*>(commonDataItr);
|
||||
EndianConvert(value);
|
||||
commonDataItr += sizeof(float);
|
||||
for (uint32 arrayIndex = 0; arrayIndex < _loadInfo->Meta->ArraySizes[field]; ++arrayIndex)
|
||||
*reinterpret_cast<float*>(&recordData[fieldOffset + sizeof(float) * arrayIndex]) = value;
|
||||
break;
|
||||
@@ -602,14 +599,16 @@ void DB2FileLoaderRegularImpl::FillCommonValues(char** indexTable)
|
||||
ASSERT(_loadInfo->Meta->Types[field] == FT_INT);
|
||||
uint32 value = *reinterpret_cast<uint32*>(commonDataItr);
|
||||
EndianConvert(value);
|
||||
commonDataItr += sizeof(uint32);
|
||||
for (uint32 arrayIndex = 0; arrayIndex < _loadInfo->Meta->ArraySizes[field]; ++arrayIndex)
|
||||
*reinterpret_cast<uint32*>(&recordData[fieldOffset + sizeof(uint32) * arrayIndex]) = value;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
ASSERT(false, "Unhandled common value type %d found in %s", dataType, fileName);
|
||||
break;
|
||||
}
|
||||
|
||||
commonDataItr += sizeof(uint32);
|
||||
}
|
||||
|
||||
switch (_loadInfo->Meta->Types[field])
|
||||
|
||||
@@ -33,7 +33,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
|
||||
// Achievement.db2
|
||||
PrepareStatement(HOTFIX_SEL_ACHIEVEMENT, "SELECT Title, Description, Flags, Reward, MapID, Supercedes, Category, UIOrder, SharesCriteria, "
|
||||
"CriteriaTree, Faction, Points, MinimumCriteria, ID, IconFileDataID FROM achievement ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
"Faction, Points, MinimumCriteria, ID, IconFileDataID, CriteriaTree FROM achievement ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_ACHIEVEMENT, "SELECT ID, Title_lang, Description_lang, Reward_lang FROM achievement_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
// AnimKit.db2
|
||||
@@ -170,12 +170,14 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(HOTFIX_SEL_CHR_CLASSES_X_POWER_TYPES, "SELECT ID, ClassID, PowerType FROM chr_classes_x_power_types ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// ChrRaces.db2
|
||||
PrepareStatement(HOTFIX_SEL_CHR_RACES, "SELECT ID, Flags, ClientPrefix, ClientFileString, Name, NameFemale, NameMale, FacialHairCustomization1, "
|
||||
"FacialHairCustomization2, HairCustomization, CreateScreenFileDataID, SelectScreenFileDataID, MaleCustomizeOffset1, MaleCustomizeOffset2, "
|
||||
"MaleCustomizeOffset3, FemaleCustomizeOffset1, FemaleCustomizeOffset2, FemaleCustomizeOffset3, LowResScreenFileDataID, FactionID, "
|
||||
"MaleDisplayID, FemaleDisplayID, ResSicknessSpellID, SplashSoundID, CinematicSequenceID, BaseLanguage, CreatureType, TeamID, RaceRelated, "
|
||||
PrepareStatement(HOTFIX_SEL_CHR_RACES, "SELECT ID, Flags, MaleDisplayID, FemaleDisplayID, ClientPrefix, ClientFileString, Name, NameFemale, "
|
||||
"NameMale, FacialHairCustomization1, FacialHairCustomization2, HairCustomization, CreateScreenFileDataID, SelectScreenFileDataID, "
|
||||
"MaleCustomizeOffset1, MaleCustomizeOffset2, MaleCustomizeOffset3, FemaleCustomizeOffset1, FemaleCustomizeOffset2, FemaleCustomizeOffset3, "
|
||||
"LowResScreenFileDataID, FactionID, ResSicknessSpellID, SplashSoundID, CinematicSequenceID, BaseLanguage, CreatureType, TeamID, RaceRelated, "
|
||||
"UnalteredVisualRaceID, CharComponentTextureLayoutID, DefaultClassID, NeutralRaceID, ItemAppearanceFrameRaceID, "
|
||||
"CharComponentTexLayoutHiResID, HighResMaleDisplayID, HighResFemaleDisplayID, Unk1, Unk2, Unk3 FROM chr_races ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
"CharComponentTexLayoutHiResID, HighResMaleDisplayID, HighResFemaleDisplayID, AlteredFormTransitionSpellVisualID1, "
|
||||
"AlteredFormTransitionSpellVisualID2, AlteredFormTransitionSpellVisualID3, AlteredFormTransitionSpellVisualKitID1, "
|
||||
"AlteredFormTransitionSpellVisualKitID2, AlteredFormTransitionSpellVisualKitID3 FROM chr_races ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_CHR_RACES, "SELECT ID, Name_lang, NameFemale_lang, NameMale_lang FROM chr_races_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
// ChrSpecialization.db2
|
||||
@@ -224,11 +226,11 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_CREATURE_TYPE, "SELECT ID, Name_lang FROM creature_type_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
// Criteria.db2
|
||||
PrepareStatement(HOTFIX_SEL_CRITERIA, "SELECT ID, Asset, StartAsset, FailAsset, StartTimer, ModifierTreeId, EligibilityWorldStateID, Type, "
|
||||
PrepareStatement(HOTFIX_SEL_CRITERIA, "SELECT ID, Asset, StartAsset, FailAsset, ModifierTreeId, StartTimer, EligibilityWorldStateID, Type, "
|
||||
"StartEvent, FailEvent, Flags, EligibilityWorldStateValue FROM criteria ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// CriteriaTree.db2
|
||||
PrepareStatement(HOTFIX_SEL_CRITERIA_TREE, "SELECT ID, Amount, Description, Parent, Flags, Operator, CriteriaID, OrderIndex FROM criteria_tree"
|
||||
PrepareStatement(HOTFIX_SEL_CRITERIA_TREE, "SELECT ID, Amount, Description, Flags, Operator, CriteriaID, Parent, OrderIndex FROM criteria_tree"
|
||||
" ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_CRITERIA_TREE, "SELECT ID, Description_lang FROM criteria_tree_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
@@ -491,7 +493,15 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
"RequirementFlags, RequiredAchievement FROM item_extended_cost ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// ItemLevelSelector.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR, "SELECT ID, ItemLevel FROM item_level_selector ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR, "SELECT ID, ItemLevel, ItemLevelSelectorQualitySetID FROM item_level_selector ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// ItemLevelSelectorQuality.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY, "SELECT ID, ItemBonusListID, ItemLevelSelectorQualitySetID, Quality"
|
||||
" FROM item_level_selector_quality ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// ItemLevelSelectorQualitySet.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY_SET, "SELECT ID, ItemLevelMin, ItemLevelMax FROM item_level_selector_quality_set"
|
||||
" ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// ItemLimitCategory.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_LIMIT_CATEGORY, "SELECT ID, Name, Quantity, Flags FROM item_limit_category ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
@@ -515,8 +525,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_RANDOM_SUFFIX, "SELECT ID, Name_lang FROM item_random_suffix_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
// ItemSearchName.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_SEARCH_NAME, "SELECT ID, Name, Flags1, Flags2, Flags3, AllowableRace, RequiredSpell, RequiredReputationFaction, "
|
||||
"RequiredSkill, RequiredSkillRank, ItemLevel, Quality, RequiredExpansion, RequiredReputationRank, RequiredLevel, AllowableClass"
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_SEARCH_NAME, "SELECT ID, Name, Flags1, Flags2, Flags3, AllowableRace, ItemLevel, Quality, RequiredExpansion, "
|
||||
"RequiredLevel, AllowableClass, RequiredReputationFaction, RequiredReputationRank, RequiredSkill, RequiredSkillRank, RequiredSpell"
|
||||
" FROM item_search_name ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_SEARCH_NAME, "SELECT ID, Name_lang FROM item_search_name_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
@@ -530,7 +540,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_SET_SPELL, "SELECT ID, SpellID, ItemSetID, ChrSpecID, Threshold FROM item_set_spell ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// ItemSparse.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_SPARSE, "SELECT ID, Flags1, Flags2, Flags3, Unk1, Unk2, BuyCount, BuyPrice, SellPrice, AllowableRace, "
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_SPARSE, "SELECT ID, Flags1, Flags2, Flags3, Flags4, Unk1, Unk2, BuyCount, BuyPrice, SellPrice, AllowableRace, "
|
||||
"RequiredSpell, MaxCount, Stackable, ItemStatAllocation1, ItemStatAllocation2, ItemStatAllocation3, ItemStatAllocation4, ItemStatAllocation5, "
|
||||
"ItemStatAllocation6, ItemStatAllocation7, ItemStatAllocation8, ItemStatAllocation9, ItemStatAllocation10, ItemStatSocketCostMultiplier1, "
|
||||
"ItemStatSocketCostMultiplier2, ItemStatSocketCostMultiplier3, ItemStatSocketCostMultiplier4, ItemStatSocketCostMultiplier5, "
|
||||
@@ -561,9 +571,9 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
// ItemXBonusTree.db2
|
||||
PrepareStatement(HOTFIX_SEL_ITEM_X_BONUS_TREE, "SELECT ID, ItemID, BonusTreeID FROM item_x_bonus_tree ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// KeyChain.db2
|
||||
PrepareStatement(HOTFIX_SEL_KEY_CHAIN, "SELECT ID, Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key10, Key11, Key12, Key13, Key14, "
|
||||
"Key15, Key16, Key17, Key18, Key19, Key20, Key21, Key22, Key23, Key24, Key25, Key26, Key27, Key28, Key29, Key30, Key31, Key32 FROM key_chain"
|
||||
// Keychain.db2
|
||||
PrepareStatement(HOTFIX_SEL_KEYCHAIN, "SELECT ID, Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key10, Key11, Key12, Key13, Key14, Key15, "
|
||||
"Key16, Key17, Key18, Key19, Key20, Key21, Key22, Key23, Key24, Key25, Key26, Key27, Key28, Key29, Key30, Key31, Key32 FROM keychain"
|
||||
" ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// LfgDungeons.db2
|
||||
@@ -653,22 +663,23 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(HOTFIX_SEL_PHASE_X_PHASE_GROUP, "SELECT ID, PhaseID, PhaseGroupID FROM phase_x_phase_group ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// PlayerCondition.db2
|
||||
PrepareStatement(HOTFIX_SEL_PLAYER_CONDITION, "SELECT ID, RaceMask, SkillLogic, ReputationLogic, PrevQuestLogic, CurrQuestLogic, "
|
||||
"CurrentCompletedQuestLogic, SpellLogic, ItemLogic, Time1, Time2, AuraSpellLogic, AuraSpellID1, AuraSpellID2, AuraSpellID3, AuraSpellID4, "
|
||||
"AchievementLogic, AreaLogic, QuestKillLogic, FailureDescription, MinLevel, MaxLevel, SkillID1, SkillID2, SkillID3, SkillID4, MinSkill1, "
|
||||
"MinSkill2, MinSkill3, MinSkill4, MaxSkill1, MaxSkill2, MaxSkill3, MaxSkill4, MaxFactionID, PrevQuestID1, PrevQuestID2, PrevQuestID3, "
|
||||
"PrevQuestID4, CurrQuestID1, CurrQuestID2, CurrQuestID3, CurrQuestID4, CurrentCompletedQuestID1, CurrentCompletedQuestID2, "
|
||||
"CurrentCompletedQuestID3, CurrentCompletedQuestID4, Explored1, Explored2, WorldStateExpressionID, Achievement1, Achievement2, Achievement3, "
|
||||
"Achievement4, AreaID1, AreaID2, AreaID3, AreaID4, QuestKillID, PhaseID, MinAvgEquippedItemLevel, MaxAvgEquippedItemLevel, ModifierTreeID, "
|
||||
"Flags, Gender, NativeGender, MinLanguage, MaxLanguage, MinReputation1, MinReputation2, MinReputation3, MaxReputation, Unknown1, MinPVPRank, "
|
||||
"MaxPVPRank, PvpMedal, ItemFlags, AuraCount1, AuraCount2, AuraCount3, AuraCount4, WeatherID, PartyStatus, LifetimeMaxPVPRank, LfgStatus1, "
|
||||
"LfgStatus2, LfgStatus3, LfgStatus4, LfgCompare1, LfgCompare2, LfgCompare3, LfgCompare4, CurrencyCount1, CurrencyCount2, CurrencyCount3, "
|
||||
"CurrencyCount4, MinExpansionLevel, MaxExpansionLevel, MinExpansionTier, MaxExpansionTier, MinGuildLevel, MaxGuildLevel, PhaseUseFlags, "
|
||||
"ChrSpecializationIndex, ChrSpecializationRole, PowerType, PowerTypeComp, PowerTypeValue, ClassMask, LanguageID, MinFactionID1, "
|
||||
"MinFactionID2, MinFactionID3, SpellID1, SpellID2, SpellID3, SpellID4, ItemID1, ItemID2, ItemID3, ItemID4, ItemCount1, ItemCount2, "
|
||||
"ItemCount3, ItemCount4, LfgLogic, LfgValue1, LfgValue2, LfgValue3, LfgValue4, CurrencyLogic, CurrencyID1, CurrencyID2, CurrencyID3, "
|
||||
"CurrencyID4, QuestKillMonster1, QuestKillMonster2, QuestKillMonster3, QuestKillMonster4, QuestKillMonster5, QuestKillMonster6, PhaseGroupID, "
|
||||
"MinAvgItemLevel, MaxAvgItemLevel, MovementFlags1, MovementFlags2, MainHandItemSubclassMask FROM player_condition ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PrepareStatement(HOTFIX_SEL_PLAYER_CONDITION, "SELECT ID, RaceMask, Time1, Time2, AuraSpellID1, AuraSpellID2, AuraSpellID3, AuraSpellID4, "
|
||||
"FailureDescription, SkillID1, SkillID2, SkillID3, SkillID4, MinSkill1, MinSkill2, MinSkill3, MinSkill4, MaxSkill1, MaxSkill2, MaxSkill3, "
|
||||
"MaxSkill4, PrevQuestID1, PrevQuestID2, PrevQuestID3, PrevQuestID4, CurrQuestID1, CurrQuestID2, CurrQuestID3, CurrQuestID4, "
|
||||
"CurrentCompletedQuestID1, CurrentCompletedQuestID2, CurrentCompletedQuestID3, CurrentCompletedQuestID4, Explored1, Explored2, Achievement1, "
|
||||
"Achievement2, Achievement3, Achievement4, AreaID1, AreaID2, AreaID3, AreaID4, Flags, MinReputation1, MinReputation2, MinReputation3, "
|
||||
"AuraCount1, AuraCount2, AuraCount3, AuraCount4, LfgStatus1, LfgStatus2, LfgStatus3, LfgStatus4, LfgCompare1, LfgCompare2, LfgCompare3, "
|
||||
"LfgCompare4, CurrencyCount1, CurrencyCount2, CurrencyCount3, CurrencyCount4, ClassMask, MinFactionID1, MinFactionID2, MinFactionID3, "
|
||||
"SpellID1, SpellID2, SpellID3, SpellID4, ItemID1, ItemID2, ItemID3, ItemID4, ItemCount1, ItemCount2, ItemCount3, ItemCount4, LfgValue1, "
|
||||
"LfgValue2, LfgValue3, LfgValue4, CurrencyID1, CurrencyID2, CurrencyID3, CurrencyID4, QuestKillMonster1, QuestKillMonster2, "
|
||||
"QuestKillMonster3, QuestKillMonster4, QuestKillMonster5, QuestKillMonster6, MovementFlags1, MovementFlags2, MinLevel, MaxLevel, Gender, "
|
||||
"NativeGender, SkillLogic, LanguageID, MinLanguage, MaxLanguage, MaxFactionID, MaxReputation, ReputationLogic, Unknown1, MinPVPRank, "
|
||||
"MaxPVPRank, PvpMedal, PrevQuestLogic, CurrQuestLogic, CurrentCompletedQuestLogic, SpellLogic, ItemLogic, ItemFlags, AuraSpellLogic, "
|
||||
"WorldStateExpressionID, WeatherID, PartyStatus, LifetimeMaxPVPRank, AchievementLogic, LfgLogic, AreaLogic, CurrencyLogic, QuestKillID, "
|
||||
"QuestKillLogic, MinExpansionLevel, MaxExpansionLevel, MinExpansionTier, MaxExpansionTier, MinGuildLevel, MaxGuildLevel, PhaseUseFlags, "
|
||||
"PhaseID, PhaseGroupID, MinAvgItemLevel, MaxAvgItemLevel, MinAvgEquippedItemLevel, MaxAvgEquippedItemLevel, ChrSpecializationIndex, "
|
||||
"ChrSpecializationRole, PowerType, PowerTypeComp, PowerTypeValue, ModifierTreeID, MainHandItemSubclassMask FROM player_condition"
|
||||
" ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_PLAYER_CONDITION, "SELECT ID, FailureDescription_lang FROM player_condition_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
// PowerDisplay.db2
|
||||
@@ -735,7 +746,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_SCENARIO, "SELECT ID, Name_lang FROM scenario_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
// ScenarioStep.db2
|
||||
PrepareStatement(HOTFIX_SEL_SCENARIO_STEP, "SELECT ID, Description, Name, CriteriaTreeID, ScenarioID, PreviousStepID, QuestRewardID, Step, Flags, "
|
||||
PrepareStatement(HOTFIX_SEL_SCENARIO_STEP, "SELECT ID, Description, Name, ScenarioID, PreviousStepID, QuestRewardID, Step, Flags, CriteriaTreeID, "
|
||||
"BonusRequiredStepID FROM scenario_step ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_SCENARIO_STEP, "SELECT ID, Description_lang, Name_lang FROM scenario_step_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
@@ -761,10 +772,9 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
" FROM skill_race_class_info ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// SoundKit.db2
|
||||
PrepareStatement(HOTFIX_SEL_SOUND_KIT, "SELECT Name, VolumeFloat, MinDistance, DistanceCutoff, VolumeVariationPlus, VolumeVariationMinus, "
|
||||
"PitchVariationPlus, PitchVariationMinus, PitchAdjust, Flags, SoundEntriesAdvancedID, BusOverwriteID, SoundType, EAXDef, DialogType, Unk700, "
|
||||
"ID FROM sound_kit ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_SOUND_KIT, "SELECT ID, Name_lang FROM sound_kit_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
PrepareStatement(HOTFIX_SEL_SOUND_KIT, "SELECT ID, VolumeFloat, MinDistance, DistanceCutoff, Flags, SoundEntriesAdvancedID, SoundType, "
|
||||
"DialogType, EAXDef, VolumeVariationPlus, VolumeVariationMinus, PitchVariationPlus, PitchVariationMinus, PitchAdjust, BusOverwriteID, Unk700"
|
||||
" FROM sound_kit ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// SpecializationSpells.db2
|
||||
PrepareStatement(HOTFIX_SEL_SPECIALIZATION_SPELLS, "SELECT SpellID, OverridesSpellID, Description, SpecID, OrderIndex, ID"
|
||||
@@ -779,7 +789,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
|
||||
// SpellAuraOptions.db2
|
||||
PrepareStatement(HOTFIX_SEL_SPELL_AURA_OPTIONS, "SELECT ID, SpellID, ProcCharges, ProcTypeMask, ProcCategoryRecovery, CumulativeAura, "
|
||||
"DifficultyID, ProcChance, SpellProcsPerMinuteID FROM spell_aura_options ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
"SpellProcsPerMinuteID, DifficultyID, ProcChance FROM spell_aura_options ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// SpellAuraRestrictions.db2
|
||||
PrepareStatement(HOTFIX_SEL_SPELL_AURA_RESTRICTIONS, "SELECT ID, SpellID, CasterAuraSpell, TargetAuraSpell, ExcludeCasterAuraSpell, "
|
||||
@@ -874,7 +884,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
PrepareStatement(HOTFIX_SEL_SPELL_PROCS_PER_MINUTE, "SELECT ID, BaseProcRate, Flags FROM spell_procs_per_minute ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// SpellProcsPerMinuteMod.db2
|
||||
PrepareStatement(HOTFIX_SEL_SPELL_PROCS_PER_MINUTE_MOD, "SELECT ID, Coeff, Param, Type, SpellProcsPerMinuteID FROM spell_procs_per_minute_mod"
|
||||
PrepareStatement(HOTFIX_SEL_SPELL_PROCS_PER_MINUTE_MOD, "SELECT ID, Coeff, Param, SpellProcsPerMinuteID, Type FROM spell_procs_per_minute_mod"
|
||||
" ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// SpellRadius.db2
|
||||
@@ -931,16 +941,17 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_TALENT, "SELECT ID, Description_lang FROM talent_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
// TaxiNodes.db2
|
||||
PrepareStatement(HOTFIX_SEL_TAXI_NODES, "SELECT PosX, PosY, PosZ, Name, MountCreatureID1, MountCreatureID2, MapOffsetX, MapOffsetY, MapID, "
|
||||
"ConditionID, LearnableIndex, Flags, ID FROM taxi_nodes ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PrepareStatement(HOTFIX_SEL_TAXI_NODES, "SELECT ID, PosX, PosY, PosZ, Name, MountCreatureID1, MountCreatureID2, MapOffsetX, MapOffsetY, Unk730, "
|
||||
"FlightMapOffsetX, FlightMapOffsetY, MapID, ConditionID, LearnableIndex, Flags, UiTextureKitPrefixID, SpecialAtlasIconPlayerConditionID"
|
||||
" FROM taxi_nodes ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PREPARE_LOCALE_STMT(HOTFIX_SEL_TAXI_NODES, "SELECT ID, Name_lang FROM taxi_nodes_locale WHERE locale = ?", CONNECTION_SYNCH);
|
||||
|
||||
// TaxiPath.db2
|
||||
PrepareStatement(HOTFIX_SEL_TAXI_PATH, "SELECT `From`, `To`, ID, Cost FROM taxi_path ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// TaxiPathNode.db2
|
||||
PrepareStatement(HOTFIX_SEL_TAXI_PATH_NODE, "SELECT LocX, LocY, LocZ, Delay, PathID, MapID, ArrivalEventID, DepartureEventID, NodeIndex, Flags, "
|
||||
"ID FROM taxi_path_node ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
PrepareStatement(HOTFIX_SEL_TAXI_PATH_NODE, "SELECT LocX, LocY, LocZ, PathID, MapID, NodeIndex, ID, Flags, Delay, ArrivalEventID, "
|
||||
"DepartureEventID FROM taxi_path_node ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// TotemCategory.db2
|
||||
PrepareStatement(HOTFIX_SEL_TOTEM_CATEGORY, "SELECT ID, Name, CategoryMask, CategoryType FROM totem_category ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
@@ -981,11 +992,9 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
|
||||
// Vehicle.db2
|
||||
PrepareStatement(HOTFIX_SEL_VEHICLE, "SELECT ID, Flags, TurnSpeed, PitchSpeed, PitchMin, PitchMax, MouseLookOffsetPitch, CameraFadeDistScalarMin, "
|
||||
"CameraFadeDistScalarMax, CameraPitchOffset, FacingLimitRight, FacingLimitLeft, MsslTrgtTurnLingering, MsslTrgtPitchLingering, "
|
||||
"MsslTrgtMouseLingering, MsslTrgtEndOpacity, MsslTrgtArcSpeed, MsslTrgtArcRepeat, MsslTrgtArcWidth, MsslTrgtImpactRadius1, "
|
||||
"MsslTrgtImpactRadius2, MsslTrgtArcTexture, MsslTrgtImpactTexture, MsslTrgtImpactModel1, MsslTrgtImpactModel2, CameraYawOffset, "
|
||||
"MsslTrgtImpactTexRadius, SeatID1, SeatID2, SeatID3, SeatID4, SeatID5, SeatID6, SeatID7, SeatID8, VehicleUIIndicatorID, PowerDisplayID1, "
|
||||
"PowerDisplayID2, PowerDisplayID3, FlagsB, UILocomotionType FROM vehicle ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
"CameraFadeDistScalarMax, CameraPitchOffset, FacingLimitRight, FacingLimitLeft, CameraYawOffset, SeatID1, SeatID2, SeatID3, SeatID4, SeatID5, "
|
||||
"SeatID6, SeatID7, SeatID8, VehicleUIIndicatorID, PowerDisplayID1, PowerDisplayID2, PowerDisplayID3, FlagsB, UILocomotionType, "
|
||||
"MissileTargetingID FROM vehicle ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// VehicleSeat.db2
|
||||
PrepareStatement(HOTFIX_SEL_VEHICLE_SEAT, "SELECT ID, Flags1, Flags2, Flags3, AttachmentOffsetX, AttachmentOffsetY, AttachmentOffsetZ, "
|
||||
@@ -1009,8 +1018,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
"PlayerConditionID FROM world_effect ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// WorldMapArea.db2
|
||||
PrepareStatement(HOTFIX_SEL_WORLD_MAP_AREA, "SELECT AreaName, LocLeft, LocRight, LocTop, LocBottom, MapID, AreaID, DisplayMapID, "
|
||||
"DefaultDungeonFloor, ParentWorldMapID, Flags, LevelRangeMin, LevelRangeMax, BountySetID, BountyBoardLocation, ID, PlayerConditionID"
|
||||
PrepareStatement(HOTFIX_SEL_WORLD_MAP_AREA, "SELECT AreaName, LocLeft, LocRight, LocTop, LocBottom, Flags, MapID, AreaID, DisplayMapID, "
|
||||
"DefaultDungeonFloor, ParentWorldMapID, LevelRangeMin, LevelRangeMax, BountySetID, BountyBoardLocation, ID, PlayerConditionID"
|
||||
" FROM world_map_area ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// WorldMapOverlay.db2
|
||||
@@ -1020,7 +1029,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
|
||||
|
||||
// WorldMapTransforms.db2
|
||||
PrepareStatement(HOTFIX_SEL_WORLD_MAP_TRANSFORMS, "SELECT ID, RegionMinX, RegionMinY, RegionMinZ, RegionMaxX, RegionMaxY, RegionMaxZ, "
|
||||
"RegionOffsetX, RegionOffsetY, RegionScale, MapID, AreaID, NewMapID, NewDungeonMapID, NewAreaID, Flags FROM world_map_transforms"
|
||||
"RegionOffsetX, RegionOffsetY, RegionScale, MapID, AreaID, NewMapID, NewDungeonMapID, NewAreaID, Flags, Priority FROM world_map_transforms"
|
||||
" ORDER BY ID DESC", CONNECTION_SYNCH);
|
||||
|
||||
// WorldSafeLocs.db2
|
||||
|
||||
@@ -276,6 +276,10 @@ enum HotfixDatabaseStatements : uint32
|
||||
|
||||
HOTFIX_SEL_ITEM_LEVEL_SELECTOR,
|
||||
|
||||
HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY,
|
||||
|
||||
HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY_SET,
|
||||
|
||||
HOTFIX_SEL_ITEM_LIMIT_CATEGORY,
|
||||
HOTFIX_SEL_ITEM_LIMIT_CATEGORY_LOCALE,
|
||||
|
||||
@@ -308,7 +312,7 @@ enum HotfixDatabaseStatements : uint32
|
||||
|
||||
HOTFIX_SEL_ITEM_X_BONUS_TREE,
|
||||
|
||||
HOTFIX_SEL_KEY_CHAIN,
|
||||
HOTFIX_SEL_KEYCHAIN,
|
||||
|
||||
HOTFIX_SEL_LFG_DUNGEONS,
|
||||
HOTFIX_SEL_LFG_DUNGEONS_LOCALE,
|
||||
@@ -412,7 +416,6 @@ enum HotfixDatabaseStatements : uint32
|
||||
HOTFIX_SEL_SKILL_RACE_CLASS_INFO,
|
||||
|
||||
HOTFIX_SEL_SOUND_KIT,
|
||||
HOTFIX_SEL_SOUND_KIT_LOCALE,
|
||||
|
||||
HOTFIX_SEL_SPECIALIZATION_SPELLS,
|
||||
HOTFIX_SEL_SPECIALIZATION_SPELLS_LOCALE,
|
||||
|
||||
@@ -1904,7 +1904,7 @@ void Battleground::StartCriteriaTimer(CriteriaTimedTypes type, uint32 entry)
|
||||
player->StartCriteriaTimer(type, entry);
|
||||
}
|
||||
|
||||
void Battleground::SetBracket(PvpDifficultyEntry const* bracketEntry)
|
||||
void Battleground::SetBracket(PVPDifficultyEntry const* bracketEntry)
|
||||
{
|
||||
m_BracketId = bracketEntry->GetBracketId();
|
||||
SetLevelRange(bracketEntry->MinLevel, bracketEntry->MaxLevel);
|
||||
|
||||
@@ -35,7 +35,7 @@ class Unit;
|
||||
class WorldObject;
|
||||
class WorldPacket;
|
||||
struct BattlegroundScore;
|
||||
struct PvpDifficultyEntry;
|
||||
struct PVPDifficultyEntry;
|
||||
struct WorldSafeLocsEntry;
|
||||
|
||||
namespace WorldPackets
|
||||
@@ -301,7 +301,7 @@ class TC_GAME_API Battleground
|
||||
void SetTypeID(BattlegroundTypeId TypeID) { m_TypeID = TypeID; }
|
||||
void SetRandomTypeID(BattlegroundTypeId TypeID) { m_RandomTypeID = TypeID; }
|
||||
//here we can count minlevel and maxlevel for players
|
||||
void SetBracket(PvpDifficultyEntry const* bracketEntry);
|
||||
void SetBracket(PVPDifficultyEntry const* bracketEntry);
|
||||
void SetInstanceID(uint32 InstanceID) { m_InstanceID = InstanceID; }
|
||||
void SetStatus(BattlegroundStatus Status) { m_Status = Status; }
|
||||
void SetClientInstanceID(uint32 InstanceID) { m_ClientInstanceID = InstanceID; }
|
||||
|
||||
@@ -296,7 +296,7 @@ uint32 BattlegroundMgr::CreateClientVisibleInstanceId(BattlegroundTypeId bgTypeI
|
||||
}
|
||||
|
||||
// create a new battleground that will really be used to play
|
||||
Battleground* BattlegroundMgr::CreateNewBattleground(BattlegroundTypeId originalBgTypeId, PvpDifficultyEntry const* bracketEntry, uint8 arenaType, bool isRated)
|
||||
Battleground* BattlegroundMgr::CreateNewBattleground(BattlegroundTypeId originalBgTypeId, PVPDifficultyEntry const* bracketEntry, uint8 arenaType, bool isRated)
|
||||
{
|
||||
BattlegroundTypeId bgTypeId = GetRandomBG(originalBgTypeId);
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ class TC_GAME_API BattlegroundMgr
|
||||
/* Battlegrounds */
|
||||
Battleground* GetBattleground(uint32 InstanceID, BattlegroundTypeId bgTypeId);
|
||||
Battleground* GetBattlegroundTemplate(BattlegroundTypeId bgTypeId);
|
||||
Battleground* CreateNewBattleground(BattlegroundTypeId bgTypeId, PvpDifficultyEntry const* bracketEntry, uint8 arenaType, bool isRated);
|
||||
Battleground* CreateNewBattleground(BattlegroundTypeId bgTypeId, PVPDifficultyEntry const* bracketEntry, uint8 arenaType, bool isRated);
|
||||
|
||||
void AddBattleground(Battleground* bg);
|
||||
void RemoveBattleground(BattlegroundTypeId bgTypeId, uint32 instanceId);
|
||||
|
||||
@@ -130,7 +130,7 @@ bool BattlegroundQueue::SelectionPool::AddGroup(GroupQueueInfo* ginfo, uint32 de
|
||||
/*********************************************************/
|
||||
|
||||
// add group or player (grp == NULL) to bg queue with the given leader and bg specifications
|
||||
GroupQueueInfo* BattlegroundQueue::AddGroup(Player* leader, Group* grp, BattlegroundTypeId BgTypeId, PvpDifficultyEntry const* bracketEntry, uint8 ArenaType, bool isRated, bool isPremade, uint32 ArenaRating, uint32 MatchmakerRating, uint32 arenateamid)
|
||||
GroupQueueInfo* BattlegroundQueue::AddGroup(Player* leader, Group* grp, BattlegroundTypeId BgTypeId, PVPDifficultyEntry const* bracketEntry, uint8 ArenaType, bool isRated, bool isPremade, uint32 ArenaRating, uint32 MatchmakerRating, uint32 arenateamid)
|
||||
{
|
||||
BattlegroundBracketId bracketId = bracketEntry->GetBracketId();
|
||||
|
||||
@@ -818,7 +818,7 @@ void BattlegroundQueue::BattlegroundQueueUpdate(uint32 /*diff*/, BattlegroundTyp
|
||||
return;
|
||||
}
|
||||
|
||||
PvpDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketById(bg_template->GetMapId(), bracket_id);
|
||||
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketById(bg_template->GetMapId(), bracket_id);
|
||||
if (!bracketEntry)
|
||||
{
|
||||
TC_LOG_ERROR("bg.battleground", "Battleground: Update: bg bracket entry not found for map %u bracket id %u", bg_template->GetMapId(), bracket_id);
|
||||
|
||||
@@ -85,7 +85,7 @@ class TC_GAME_API BattlegroundQueue
|
||||
bool CheckPremadeMatch(BattlegroundBracketId bracket_id, uint32 MinPlayersPerTeam, uint32 MaxPlayersPerTeam);
|
||||
bool CheckNormalMatch(Battleground* bg_template, BattlegroundBracketId bracket_id, uint32 minPlayers, uint32 maxPlayers);
|
||||
bool CheckSkirmishForSameFaction(BattlegroundBracketId bracket_id, uint32 minPlayersPerTeam);
|
||||
GroupQueueInfo* AddGroup(Player* leader, Group* group, BattlegroundTypeId bgTypeId, PvpDifficultyEntry const* bracketEntry, uint8 ArenaType, bool isRated, bool isPremade, uint32 ArenaRating, uint32 MatchmakerRating, uint32 ArenaTeamId = 0);
|
||||
GroupQueueInfo* AddGroup(Player* leader, Group* group, BattlegroundTypeId bgTypeId, PVPDifficultyEntry const* bracketEntry, uint8 ArenaType, bool isRated, bool isPremade, uint32 ArenaRating, uint32 MatchmakerRating, uint32 ArenaTeamId = 0);
|
||||
void RemovePlayer(ObjectGuid guid, bool decreaseInvitedCount);
|
||||
bool IsPlayerInvited(ObjectGuid pl_guid, const uint32 bgInstanceGuid, const uint32 removeTime);
|
||||
bool GetPlayerGroupInfoData(ObjectGuid guid, GroupQueueInfo* ginfo);
|
||||
|
||||
@@ -39,12 +39,12 @@ struct AchievementLoadInfo
|
||||
{ false, FT_SHORT, "Category" },
|
||||
{ false, FT_SHORT, "UIOrder" },
|
||||
{ false, FT_SHORT, "SharesCriteria" },
|
||||
{ false, FT_SHORT, "CriteriaTree" },
|
||||
{ true, FT_BYTE, "Faction" },
|
||||
{ false, FT_BYTE, "Points" },
|
||||
{ false, FT_BYTE, "MinimumCriteria" },
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_INT, "IconFileDataID" },
|
||||
{ false, FT_INT, "CriteriaTree" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, AchievementMeta::Instance(), HOTFIX_SEL_ACHIEVEMENT);
|
||||
return &loadInfo;
|
||||
@@ -387,7 +387,7 @@ struct BannedAddonsLoadInfo
|
||||
{ false, FT_STRING_NOT_LOCALIZED, "Version" },
|
||||
{ false, FT_BYTE, "Flags" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, BannedAddOnsMeta::Instance(), HOTFIX_SEL_BANNED_ADDONS);
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, BannedAddonsMeta::Instance(), HOTFIX_SEL_BANNED_ADDONS);
|
||||
return &loadInfo;
|
||||
}
|
||||
};
|
||||
@@ -744,6 +744,8 @@ struct ChrRacesLoadInfo
|
||||
{
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_INT, "Flags" },
|
||||
{ false, FT_INT, "MaleDisplayID" },
|
||||
{ false, FT_INT, "FemaleDisplayID" },
|
||||
{ false, FT_STRING_NOT_LOCALIZED, "ClientPrefix" },
|
||||
{ false, FT_STRING_NOT_LOCALIZED, "ClientFileString" },
|
||||
{ false, FT_STRING, "Name" },
|
||||
@@ -762,8 +764,6 @@ struct ChrRacesLoadInfo
|
||||
{ false, FT_FLOAT, "FemaleCustomizeOffset3" },
|
||||
{ false, FT_INT, "LowResScreenFileDataID" },
|
||||
{ false, FT_SHORT, "FactionID" },
|
||||
{ false, FT_SHORT, "MaleDisplayID" },
|
||||
{ false, FT_SHORT, "FemaleDisplayID" },
|
||||
{ false, FT_SHORT, "ResSicknessSpellID" },
|
||||
{ false, FT_SHORT, "SplashSoundID" },
|
||||
{ false, FT_SHORT, "CinematicSequenceID" },
|
||||
@@ -779,9 +779,12 @@ struct ChrRacesLoadInfo
|
||||
{ false, FT_BYTE, "CharComponentTexLayoutHiResID" },
|
||||
{ false, FT_INT, "HighResMaleDisplayID" },
|
||||
{ false, FT_INT, "HighResFemaleDisplayID" },
|
||||
{ false, FT_INT, "Unk1" },
|
||||
{ false, FT_INT, "Unk2" },
|
||||
{ false, FT_INT, "Unk3" },
|
||||
{ false, FT_INT, "AlteredFormTransitionSpellVisualID1" },
|
||||
{ false, FT_INT, "AlteredFormTransitionSpellVisualID2" },
|
||||
{ false, FT_INT, "AlteredFormTransitionSpellVisualID3" },
|
||||
{ false, FT_INT, "AlteredFormTransitionSpellVisualKitID1" },
|
||||
{ false, FT_INT, "AlteredFormTransitionSpellVisualKitID2" },
|
||||
{ false, FT_INT, "AlteredFormTransitionSpellVisualKitID3" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ChrRacesMeta::Instance(), HOTFIX_SEL_CHR_RACES);
|
||||
return &loadInfo;
|
||||
@@ -1034,8 +1037,8 @@ struct CriteriaLoadInfo
|
||||
{ false, FT_INT, "Asset" },
|
||||
{ false, FT_INT, "StartAsset" },
|
||||
{ false, FT_INT, "FailAsset" },
|
||||
{ false, FT_INT, "ModifierTreeId" },
|
||||
{ false, FT_SHORT, "StartTimer" },
|
||||
{ false, FT_SHORT, "ModifierTreeId" },
|
||||
{ false, FT_SHORT, "EligibilityWorldStateID" },
|
||||
{ false, FT_BYTE, "Type" },
|
||||
{ false, FT_BYTE, "StartEvent" },
|
||||
@@ -1057,10 +1060,10 @@ struct CriteriaTreeLoadInfo
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_INT, "Amount" },
|
||||
{ false, FT_STRING, "Description" },
|
||||
{ false, FT_SHORT, "Parent" },
|
||||
{ false, FT_SHORT, "Flags" },
|
||||
{ false, FT_BYTE, "Operator" },
|
||||
{ false, FT_INT, "CriteriaID" },
|
||||
{ false, FT_INT, "Parent" },
|
||||
{ true, FT_INT, "OrderIndex" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CriteriaTreeMeta::Instance(), HOTFIX_SEL_CRITERIA_TREE);
|
||||
@@ -2364,12 +2367,44 @@ struct ItemLevelSelectorLoadInfo
|
||||
{
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_SHORT, "ItemLevel" },
|
||||
{ false, FT_SHORT, "ItemLevelSelectorQualitySetID" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemLevelSelectorMeta::Instance(), HOTFIX_SEL_ITEM_LEVEL_SELECTOR);
|
||||
return &loadInfo;
|
||||
}
|
||||
};
|
||||
|
||||
struct ItemLevelSelectorQualityLoadInfo
|
||||
{
|
||||
static DB2LoadInfo const* Instance()
|
||||
{
|
||||
static DB2FieldMeta const fields[] =
|
||||
{
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_INT, "ItemBonusListID" },
|
||||
{ false, FT_SHORT, "ItemLevelSelectorQualitySetID" },
|
||||
{ false, FT_BYTE, "Quality" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemLevelSelectorQualityMeta::Instance(), HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY);
|
||||
return &loadInfo;
|
||||
}
|
||||
};
|
||||
|
||||
struct ItemLevelSelectorQualitySetLoadInfo
|
||||
{
|
||||
static DB2LoadInfo const* Instance()
|
||||
{
|
||||
static DB2FieldMeta const fields[] =
|
||||
{
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_SHORT, "ItemLevelMin" },
|
||||
{ false, FT_SHORT, "ItemLevelMax" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemLevelSelectorQualitySetMeta::Instance(), HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY_SET);
|
||||
return &loadInfo;
|
||||
}
|
||||
};
|
||||
|
||||
struct ItemLimitCategoryLoadInfo
|
||||
{
|
||||
static DB2LoadInfo const* Instance()
|
||||
@@ -2475,16 +2510,16 @@ struct ItemSearchNameLoadInfo
|
||||
{ false, FT_INT, "Flags2" },
|
||||
{ false, FT_INT, "Flags3" },
|
||||
{ false, FT_INT, "AllowableRace" },
|
||||
{ false, FT_INT, "RequiredSpell" },
|
||||
{ false, FT_SHORT, "RequiredReputationFaction" },
|
||||
{ false, FT_SHORT, "RequiredSkill" },
|
||||
{ false, FT_SHORT, "RequiredSkillRank" },
|
||||
{ false, FT_SHORT, "ItemLevel" },
|
||||
{ false, FT_BYTE, "Quality" },
|
||||
{ false, FT_BYTE, "RequiredExpansion" },
|
||||
{ false, FT_BYTE, "RequiredReputationRank" },
|
||||
{ false, FT_BYTE, "RequiredLevel" },
|
||||
{ true, FT_INT, "AllowableClass" },
|
||||
{ false, FT_SHORT, "RequiredReputationFaction" },
|
||||
{ false, FT_BYTE, "RequiredReputationRank" },
|
||||
{ false, FT_SHORT, "RequiredSkill" },
|
||||
{ false, FT_SHORT, "RequiredSkillRank" },
|
||||
{ false, FT_INT, "RequiredSpell" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemSearchNameMeta::Instance(), HOTFIX_SEL_ITEM_SEARCH_NAME);
|
||||
return &loadInfo;
|
||||
@@ -2552,6 +2587,7 @@ struct ItemSparseLoadInfo
|
||||
{ false, FT_INT, "Flags1" },
|
||||
{ false, FT_INT, "Flags2" },
|
||||
{ false, FT_INT, "Flags3" },
|
||||
{ false, FT_INT, "Flags4" },
|
||||
{ false, FT_FLOAT, "Unk1" },
|
||||
{ false, FT_FLOAT, "Unk2" },
|
||||
{ false, FT_INT, "BuyCount" },
|
||||
@@ -2726,7 +2762,7 @@ struct ItemXBonusTreeLoadInfo
|
||||
}
|
||||
};
|
||||
|
||||
struct KeyChainLoadInfo
|
||||
struct KeychainLoadInfo
|
||||
{
|
||||
static DB2LoadInfo const* Instance()
|
||||
{
|
||||
@@ -2766,7 +2802,7 @@ struct KeyChainLoadInfo
|
||||
{ false, FT_BYTE, "Key31" },
|
||||
{ false, FT_BYTE, "Key32" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, KeyChainMeta::Instance(), HOTFIX_SEL_KEY_CHAIN);
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, KeychainMeta::Instance(), HOTFIX_SEL_KEYCHAIN);
|
||||
return &loadInfo;
|
||||
}
|
||||
};
|
||||
@@ -2812,7 +2848,7 @@ struct LfgDungeonsLoadInfo
|
||||
{ true, FT_INT, "RewardIconFileDataID" },
|
||||
{ true, FT_INT, "ProposalTextureFileDataID" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, LfgDungeonsMeta::Instance(), HOTFIX_SEL_LFG_DUNGEONS);
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, LFGDungeonsMeta::Instance(), HOTFIX_SEL_LFG_DUNGEONS);
|
||||
return &loadInfo;
|
||||
}
|
||||
};
|
||||
@@ -3033,7 +3069,7 @@ struct ModifierTreeLoadInfo
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_INT, "Asset1" },
|
||||
{ false, FT_INT, "Asset2" },
|
||||
{ false, FT_SHORT, "Parent" },
|
||||
{ false, FT_INT, "Parent" },
|
||||
{ false, FT_BYTE, "Type" },
|
||||
{ false, FT_BYTE, "Unk700" },
|
||||
{ false, FT_BYTE, "Operator" },
|
||||
@@ -3258,26 +3294,13 @@ struct PlayerConditionLoadInfo
|
||||
{
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_INT, "RaceMask" },
|
||||
{ false, FT_INT, "SkillLogic" },
|
||||
{ false, FT_INT, "ReputationLogic" },
|
||||
{ false, FT_INT, "PrevQuestLogic" },
|
||||
{ false, FT_INT, "CurrQuestLogic" },
|
||||
{ false, FT_INT, "CurrentCompletedQuestLogic" },
|
||||
{ false, FT_INT, "SpellLogic" },
|
||||
{ false, FT_INT, "ItemLogic" },
|
||||
{ false, FT_INT, "Time1" },
|
||||
{ false, FT_INT, "Time2" },
|
||||
{ false, FT_INT, "AuraSpellLogic" },
|
||||
{ false, FT_INT, "AuraSpellID1" },
|
||||
{ false, FT_INT, "AuraSpellID2" },
|
||||
{ false, FT_INT, "AuraSpellID3" },
|
||||
{ false, FT_INT, "AuraSpellID4" },
|
||||
{ false, FT_INT, "AchievementLogic" },
|
||||
{ false, FT_INT, "AreaLogic" },
|
||||
{ false, FT_INT, "QuestKillLogic" },
|
||||
{ false, FT_STRING, "FailureDescription" },
|
||||
{ false, FT_SHORT, "MinLevel" },
|
||||
{ false, FT_SHORT, "MaxLevel" },
|
||||
{ false, FT_SHORT, "SkillID1" },
|
||||
{ false, FT_SHORT, "SkillID2" },
|
||||
{ false, FT_SHORT, "SkillID3" },
|
||||
@@ -3290,7 +3313,6 @@ struct PlayerConditionLoadInfo
|
||||
{ true, FT_SHORT, "MaxSkill2" },
|
||||
{ true, FT_SHORT, "MaxSkill3" },
|
||||
{ true, FT_SHORT, "MaxSkill4" },
|
||||
{ false, FT_SHORT, "MaxFactionID" },
|
||||
{ false, FT_SHORT, "PrevQuestID1" },
|
||||
{ false, FT_SHORT, "PrevQuestID2" },
|
||||
{ false, FT_SHORT, "PrevQuestID3" },
|
||||
@@ -3305,7 +3327,6 @@ struct PlayerConditionLoadInfo
|
||||
{ false, FT_SHORT, "CurrentCompletedQuestID4" },
|
||||
{ false, FT_SHORT, "Explored1" },
|
||||
{ false, FT_SHORT, "Explored2" },
|
||||
{ false, FT_SHORT, "WorldStateExpressionID" },
|
||||
{ false, FT_SHORT, "Achievement1" },
|
||||
{ false, FT_SHORT, "Achievement2" },
|
||||
{ false, FT_SHORT, "Achievement3" },
|
||||
@@ -3314,32 +3335,14 @@ struct PlayerConditionLoadInfo
|
||||
{ false, FT_SHORT, "AreaID2" },
|
||||
{ false, FT_SHORT, "AreaID3" },
|
||||
{ false, FT_SHORT, "AreaID4" },
|
||||
{ false, FT_SHORT, "QuestKillID" },
|
||||
{ false, FT_SHORT, "PhaseID" },
|
||||
{ false, FT_SHORT, "MinAvgEquippedItemLevel" },
|
||||
{ false, FT_SHORT, "MaxAvgEquippedItemLevel" },
|
||||
{ false, FT_SHORT, "ModifierTreeID" },
|
||||
{ false, FT_BYTE, "Flags" },
|
||||
{ true, FT_BYTE, "Gender" },
|
||||
{ true, FT_BYTE, "NativeGender" },
|
||||
{ false, FT_BYTE, "MinLanguage" },
|
||||
{ false, FT_BYTE, "MaxLanguage" },
|
||||
{ false, FT_BYTE, "MinReputation1" },
|
||||
{ false, FT_BYTE, "MinReputation2" },
|
||||
{ false, FT_BYTE, "MinReputation3" },
|
||||
{ false, FT_BYTE, "MaxReputation" },
|
||||
{ false, FT_BYTE, "Unknown1" },
|
||||
{ false, FT_BYTE, "MinPVPRank" },
|
||||
{ false, FT_BYTE, "MaxPVPRank" },
|
||||
{ false, FT_BYTE, "PvpMedal" },
|
||||
{ false, FT_BYTE, "ItemFlags" },
|
||||
{ false, FT_BYTE, "AuraCount1" },
|
||||
{ false, FT_BYTE, "AuraCount2" },
|
||||
{ false, FT_BYTE, "AuraCount3" },
|
||||
{ false, FT_BYTE, "AuraCount4" },
|
||||
{ false, FT_BYTE, "WeatherID" },
|
||||
{ false, FT_BYTE, "PartyStatus" },
|
||||
{ false, FT_BYTE, "LifetimeMaxPVPRank" },
|
||||
{ false, FT_BYTE, "LfgStatus1" },
|
||||
{ false, FT_BYTE, "LfgStatus2" },
|
||||
{ false, FT_BYTE, "LfgStatus3" },
|
||||
@@ -3352,20 +3355,7 @@ struct PlayerConditionLoadInfo
|
||||
{ false, FT_BYTE, "CurrencyCount2" },
|
||||
{ false, FT_BYTE, "CurrencyCount3" },
|
||||
{ false, FT_BYTE, "CurrencyCount4" },
|
||||
{ true, FT_BYTE, "MinExpansionLevel" },
|
||||
{ true, FT_BYTE, "MaxExpansionLevel" },
|
||||
{ true, FT_BYTE, "MinExpansionTier" },
|
||||
{ true, FT_BYTE, "MaxExpansionTier" },
|
||||
{ false, FT_BYTE, "MinGuildLevel" },
|
||||
{ false, FT_BYTE, "MaxGuildLevel" },
|
||||
{ false, FT_BYTE, "PhaseUseFlags" },
|
||||
{ true, FT_BYTE, "ChrSpecializationIndex" },
|
||||
{ true, FT_BYTE, "ChrSpecializationRole" },
|
||||
{ true, FT_BYTE, "PowerType" },
|
||||
{ true, FT_BYTE, "PowerTypeComp" },
|
||||
{ true, FT_BYTE, "PowerTypeValue" },
|
||||
{ true, FT_INT, "ClassMask" },
|
||||
{ false, FT_INT, "LanguageID" },
|
||||
{ false, FT_INT, "MinFactionID1" },
|
||||
{ false, FT_INT, "MinFactionID2" },
|
||||
{ false, FT_INT, "MinFactionID3" },
|
||||
@@ -3381,12 +3371,10 @@ struct PlayerConditionLoadInfo
|
||||
{ false, FT_INT, "ItemCount2" },
|
||||
{ false, FT_INT, "ItemCount3" },
|
||||
{ false, FT_INT, "ItemCount4" },
|
||||
{ false, FT_INT, "LfgLogic" },
|
||||
{ false, FT_INT, "LfgValue1" },
|
||||
{ false, FT_INT, "LfgValue2" },
|
||||
{ false, FT_INT, "LfgValue3" },
|
||||
{ false, FT_INT, "LfgValue4" },
|
||||
{ false, FT_INT, "CurrencyLogic" },
|
||||
{ false, FT_INT, "CurrencyID1" },
|
||||
{ false, FT_INT, "CurrencyID2" },
|
||||
{ false, FT_INT, "CurrencyID3" },
|
||||
@@ -3397,11 +3385,59 @@ struct PlayerConditionLoadInfo
|
||||
{ false, FT_INT, "QuestKillMonster4" },
|
||||
{ false, FT_INT, "QuestKillMonster5" },
|
||||
{ false, FT_INT, "QuestKillMonster6" },
|
||||
{ true, FT_INT, "MovementFlags1" },
|
||||
{ true, FT_INT, "MovementFlags2" },
|
||||
{ false, FT_SHORT, "MinLevel" },
|
||||
{ false, FT_SHORT, "MaxLevel" },
|
||||
{ true, FT_BYTE, "Gender" },
|
||||
{ true, FT_BYTE, "NativeGender" },
|
||||
{ false, FT_INT, "SkillLogic" },
|
||||
{ false, FT_BYTE, "LanguageID" },
|
||||
{ false, FT_BYTE, "MinLanguage" },
|
||||
{ false, FT_INT, "MaxLanguage" },
|
||||
{ false, FT_SHORT, "MaxFactionID" },
|
||||
{ false, FT_BYTE, "MaxReputation" },
|
||||
{ false, FT_INT, "ReputationLogic" },
|
||||
{ false, FT_BYTE, "Unknown1" },
|
||||
{ false, FT_BYTE, "MinPVPRank" },
|
||||
{ false, FT_BYTE, "MaxPVPRank" },
|
||||
{ false, FT_BYTE, "PvpMedal" },
|
||||
{ false, FT_INT, "PrevQuestLogic" },
|
||||
{ false, FT_INT, "CurrQuestLogic" },
|
||||
{ false, FT_INT, "CurrentCompletedQuestLogic" },
|
||||
{ false, FT_INT, "SpellLogic" },
|
||||
{ false, FT_INT, "ItemLogic" },
|
||||
{ false, FT_BYTE, "ItemFlags" },
|
||||
{ false, FT_INT, "AuraSpellLogic" },
|
||||
{ false, FT_SHORT, "WorldStateExpressionID" },
|
||||
{ false, FT_BYTE, "WeatherID" },
|
||||
{ false, FT_BYTE, "PartyStatus" },
|
||||
{ false, FT_BYTE, "LifetimeMaxPVPRank" },
|
||||
{ false, FT_INT, "AchievementLogic" },
|
||||
{ false, FT_INT, "LfgLogic" },
|
||||
{ false, FT_INT, "AreaLogic" },
|
||||
{ false, FT_INT, "CurrencyLogic" },
|
||||
{ false, FT_SHORT, "QuestKillID" },
|
||||
{ false, FT_INT, "QuestKillLogic" },
|
||||
{ true, FT_BYTE, "MinExpansionLevel" },
|
||||
{ true, FT_BYTE, "MaxExpansionLevel" },
|
||||
{ true, FT_BYTE, "MinExpansionTier" },
|
||||
{ true, FT_BYTE, "MaxExpansionTier" },
|
||||
{ false, FT_BYTE, "MinGuildLevel" },
|
||||
{ false, FT_BYTE, "MaxGuildLevel" },
|
||||
{ false, FT_BYTE, "PhaseUseFlags" },
|
||||
{ false, FT_SHORT, "PhaseID" },
|
||||
{ false, FT_INT, "PhaseGroupID" },
|
||||
{ false, FT_INT, "MinAvgItemLevel" },
|
||||
{ false, FT_INT, "MaxAvgItemLevel" },
|
||||
{ true, FT_INT, "MovementFlags1" },
|
||||
{ true, FT_INT, "MovementFlags2" },
|
||||
{ false, FT_SHORT, "MinAvgEquippedItemLevel" },
|
||||
{ false, FT_SHORT, "MaxAvgEquippedItemLevel" },
|
||||
{ true, FT_BYTE, "ChrSpecializationIndex" },
|
||||
{ true, FT_BYTE, "ChrSpecializationRole" },
|
||||
{ true, FT_BYTE, "PowerType" },
|
||||
{ true, FT_BYTE, "PowerTypeComp" },
|
||||
{ true, FT_BYTE, "PowerTypeValue" },
|
||||
{ false, FT_INT, "ModifierTreeID" },
|
||||
{ false, FT_INT, "MainHandItemSubclassMask" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, PlayerConditionMeta::Instance(), HOTFIX_SEL_PLAYER_CONDITION);
|
||||
@@ -3481,7 +3517,7 @@ struct PvpDifficultyLoadInfo
|
||||
{ false, FT_BYTE, "MinLevel" },
|
||||
{ false, FT_BYTE, "MaxLevel" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, PvpDifficultyMeta::Instance(), HOTFIX_SEL_PVP_DIFFICULTY);
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, PVPDifficultyMeta::Instance(), HOTFIX_SEL_PVP_DIFFICULTY);
|
||||
return &loadInfo;
|
||||
}
|
||||
};
|
||||
@@ -3737,12 +3773,12 @@ struct ScenarioStepLoadInfo
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_STRING, "Description" },
|
||||
{ false, FT_STRING, "Name" },
|
||||
{ false, FT_SHORT, "CriteriaTreeID" },
|
||||
{ false, FT_SHORT, "ScenarioID" },
|
||||
{ false, FT_SHORT, "PreviousStepID" },
|
||||
{ false, FT_SHORT, "QuestRewardID" },
|
||||
{ false, FT_BYTE, "Step" },
|
||||
{ false, FT_BYTE, "Flags" },
|
||||
{ false, FT_INT, "CriteriaTreeID" },
|
||||
{ false, FT_INT, "BonusRequiredStepID" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ScenarioStepMeta::Instance(), HOTFIX_SEL_SCENARIO_STEP);
|
||||
@@ -3854,23 +3890,22 @@ struct SoundKitLoadInfo
|
||||
{
|
||||
static DB2FieldMeta const fields[] =
|
||||
{
|
||||
{ false, FT_STRING, "Name" },
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_FLOAT, "VolumeFloat" },
|
||||
{ false, FT_FLOAT, "MinDistance" },
|
||||
{ false, FT_FLOAT, "DistanceCutoff" },
|
||||
{ false, FT_SHORT, "Flags" },
|
||||
{ false, FT_SHORT, "SoundEntriesAdvancedID" },
|
||||
{ false, FT_BYTE, "SoundType" },
|
||||
{ false, FT_BYTE, "DialogType" },
|
||||
{ false, FT_BYTE, "EAXDef" },
|
||||
{ false, FT_FLOAT, "VolumeVariationPlus" },
|
||||
{ false, FT_FLOAT, "VolumeVariationMinus" },
|
||||
{ false, FT_FLOAT, "PitchVariationPlus" },
|
||||
{ false, FT_FLOAT, "PitchVariationMinus" },
|
||||
{ false, FT_FLOAT, "PitchAdjust" },
|
||||
{ false, FT_SHORT, "Flags" },
|
||||
{ false, FT_SHORT, "SoundEntriesAdvancedID" },
|
||||
{ false, FT_SHORT, "BusOverwriteID" },
|
||||
{ false, FT_BYTE, "SoundType" },
|
||||
{ false, FT_BYTE, "EAXDef" },
|
||||
{ false, FT_BYTE, "DialogType" },
|
||||
{ false, FT_BYTE, "Unk700" },
|
||||
{ false, FT_INT, "ID" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SoundKitMeta::Instance(), HOTFIX_SEL_SOUND_KIT);
|
||||
return &loadInfo;
|
||||
@@ -3926,9 +3961,9 @@ struct SpellAuraOptionsLoadInfo
|
||||
{ false, FT_INT, "ProcTypeMask" },
|
||||
{ false, FT_INT, "ProcCategoryRecovery" },
|
||||
{ false, FT_SHORT, "CumulativeAura" },
|
||||
{ false, FT_SHORT, "SpellProcsPerMinuteID" },
|
||||
{ false, FT_BYTE, "DifficultyID" },
|
||||
{ false, FT_BYTE, "ProcChance" },
|
||||
{ false, FT_BYTE, "SpellProcsPerMinuteID" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellAuraOptionsMeta::Instance(), HOTFIX_SEL_SPELL_AURA_OPTIONS);
|
||||
return &loadInfo;
|
||||
@@ -4419,8 +4454,8 @@ struct SpellProcsPerMinuteModLoadInfo
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_FLOAT, "Coeff" },
|
||||
{ false, FT_SHORT, "Param" },
|
||||
{ false, FT_SHORT, "SpellProcsPerMinuteID" },
|
||||
{ false, FT_BYTE, "Type" },
|
||||
{ false, FT_BYTE, "SpellProcsPerMinuteID" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellProcsPerMinuteModMeta::Instance(), HOTFIX_SEL_SPELL_PROCS_PER_MINUTE_MOD);
|
||||
return &loadInfo;
|
||||
@@ -4704,6 +4739,7 @@ struct TaxiNodesLoadInfo
|
||||
{
|
||||
static DB2FieldMeta const fields[] =
|
||||
{
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_FLOAT, "PosX" },
|
||||
{ false, FT_FLOAT, "PosY" },
|
||||
{ false, FT_FLOAT, "PosZ" },
|
||||
@@ -4712,11 +4748,15 @@ struct TaxiNodesLoadInfo
|
||||
{ false, FT_INT, "MountCreatureID2" },
|
||||
{ false, FT_FLOAT, "MapOffsetX" },
|
||||
{ false, FT_FLOAT, "MapOffsetY" },
|
||||
{ false, FT_FLOAT, "Unk730" },
|
||||
{ false, FT_FLOAT, "FlightMapOffsetX" },
|
||||
{ false, FT_FLOAT, "FlightMapOffsetY" },
|
||||
{ false, FT_SHORT, "MapID" },
|
||||
{ false, FT_SHORT, "ConditionID" },
|
||||
{ false, FT_SHORT, "LearnableIndex" },
|
||||
{ false, FT_BYTE, "Flags" },
|
||||
{ false, FT_INT, "ID" },
|
||||
{ true, FT_INT, "UiTextureKitPrefixID" },
|
||||
{ false, FT_INT, "SpecialAtlasIconPlayerConditionID" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, TaxiNodesMeta::Instance(), HOTFIX_SEL_TAXI_NODES);
|
||||
return &loadInfo;
|
||||
@@ -4748,14 +4788,14 @@ struct TaxiPathNodeLoadInfo
|
||||
{ false, FT_FLOAT, "LocX" },
|
||||
{ false, FT_FLOAT, "LocY" },
|
||||
{ false, FT_FLOAT, "LocZ" },
|
||||
{ false, FT_INT, "Delay" },
|
||||
{ false, FT_SHORT, "PathID" },
|
||||
{ false, FT_SHORT, "MapID" },
|
||||
{ false, FT_BYTE, "NodeIndex" },
|
||||
{ false, FT_INT, "ID" },
|
||||
{ false, FT_BYTE, "Flags" },
|
||||
{ false, FT_INT, "Delay" },
|
||||
{ false, FT_SHORT, "ArrivalEventID" },
|
||||
{ false, FT_SHORT, "DepartureEventID" },
|
||||
{ false, FT_BYTE, "NodeIndex" },
|
||||
{ false, FT_BYTE, "Flags" },
|
||||
{ false, FT_INT, "ID" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, TaxiPathNodeMeta::Instance(), HOTFIX_SEL_TAXI_PATH_NODE);
|
||||
return &loadInfo;
|
||||
@@ -4956,21 +4996,7 @@ struct VehicleLoadInfo
|
||||
{ false, FT_FLOAT, "CameraPitchOffset" },
|
||||
{ false, FT_FLOAT, "FacingLimitRight" },
|
||||
{ false, FT_FLOAT, "FacingLimitLeft" },
|
||||
{ false, FT_FLOAT, "MsslTrgtTurnLingering" },
|
||||
{ false, FT_FLOAT, "MsslTrgtPitchLingering" },
|
||||
{ false, FT_FLOAT, "MsslTrgtMouseLingering" },
|
||||
{ false, FT_FLOAT, "MsslTrgtEndOpacity" },
|
||||
{ false, FT_FLOAT, "MsslTrgtArcSpeed" },
|
||||
{ false, FT_FLOAT, "MsslTrgtArcRepeat" },
|
||||
{ false, FT_FLOAT, "MsslTrgtArcWidth" },
|
||||
{ false, FT_FLOAT, "MsslTrgtImpactRadius1" },
|
||||
{ false, FT_FLOAT, "MsslTrgtImpactRadius2" },
|
||||
{ false, FT_STRING_NOT_LOCALIZED, "MsslTrgtArcTexture" },
|
||||
{ false, FT_STRING_NOT_LOCALIZED, "MsslTrgtImpactTexture" },
|
||||
{ false, FT_STRING_NOT_LOCALIZED, "MsslTrgtImpactModel1" },
|
||||
{ false, FT_STRING_NOT_LOCALIZED, "MsslTrgtImpactModel2" },
|
||||
{ false, FT_FLOAT, "CameraYawOffset" },
|
||||
{ false, FT_FLOAT, "MsslTrgtImpactTexRadius" },
|
||||
{ false, FT_SHORT, "SeatID1" },
|
||||
{ false, FT_SHORT, "SeatID2" },
|
||||
{ false, FT_SHORT, "SeatID3" },
|
||||
@@ -4985,6 +5011,7 @@ struct VehicleLoadInfo
|
||||
{ false, FT_SHORT, "PowerDisplayID3" },
|
||||
{ false, FT_BYTE, "FlagsB" },
|
||||
{ false, FT_BYTE, "UILocomotionType" },
|
||||
{ true, FT_INT, "MissileTargetingID" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, VehicleMeta::Instance(), HOTFIX_SEL_VEHICLE);
|
||||
return &loadInfo;
|
||||
@@ -5126,12 +5153,12 @@ struct WorldMapAreaLoadInfo
|
||||
{ false, FT_FLOAT, "LocRight" },
|
||||
{ false, FT_FLOAT, "LocTop" },
|
||||
{ false, FT_FLOAT, "LocBottom" },
|
||||
{ false, FT_INT, "Flags" },
|
||||
{ false, FT_SHORT, "MapID" },
|
||||
{ false, FT_SHORT, "AreaID" },
|
||||
{ true, FT_SHORT, "DisplayMapID" },
|
||||
{ true, FT_SHORT, "DefaultDungeonFloor" },
|
||||
{ false, FT_SHORT, "ParentWorldMapID" },
|
||||
{ false, FT_SHORT, "Flags" },
|
||||
{ false, FT_BYTE, "LevelRangeMin" },
|
||||
{ false, FT_BYTE, "LevelRangeMax" },
|
||||
{ false, FT_BYTE, "BountySetID" },
|
||||
@@ -5195,6 +5222,7 @@ struct WorldMapTransformsLoadInfo
|
||||
{ false, FT_SHORT, "NewDungeonMapID" },
|
||||
{ false, FT_SHORT, "NewAreaID" },
|
||||
{ false, FT_BYTE, "Flags" },
|
||||
{ true, FT_INT, "Priority" },
|
||||
};
|
||||
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, WorldMapTransformsMeta::Instance(), HOTFIX_SEL_WORLD_MAP_TRANSFORMS);
|
||||
return &loadInfo;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -52,7 +52,7 @@ DB2Storage<ArtifactPowerRankEntry> sArtifactPowerRankStore("Artifac
|
||||
DB2Storage<ArtifactQuestXPEntry> sArtifactQuestXPStore("ArtifactQuestXP.db2", ArtifactQuestXpLoadInfo::Instance());
|
||||
DB2Storage<AuctionHouseEntry> sAuctionHouseStore("AuctionHouse.db2", AuctionHouseLoadInfo::Instance());
|
||||
DB2Storage<BankBagSlotPricesEntry> sBankBagSlotPricesStore("BankBagSlotPrices.db2", BankBagSlotPricesLoadInfo::Instance());
|
||||
DB2Storage<BannedAddOnsEntry> sBannedAddOnsStore("BannedAddOns.db2", BannedAddonsLoadInfo::Instance());
|
||||
DB2Storage<BannedAddonsEntry> sBannedAddonsStore("BannedAddons.db2", BannedAddonsLoadInfo::Instance());
|
||||
DB2Storage<BarberShopStyleEntry> sBarberShopStyleStore("BarberShopStyle.db2", BarberShopStyleLoadInfo::Instance());
|
||||
DB2Storage<BattlePetBreedQualityEntry> sBattlePetBreedQualityStore("BattlePetBreedQuality.db2", BattlePetBreedQualityLoadInfo::Instance());
|
||||
DB2Storage<BattlePetBreedStateEntry> sBattlePetBreedStateStore("BattlePetBreedState.db2", BattlePetBreedStateLoadInfo::Instance());
|
||||
@@ -141,6 +141,8 @@ DB2Storage<ItemEffectEntry> sItemEffectStore("ItemEffect.db2
|
||||
DB2Storage<ItemEntry> sItemStore("Item.db2", ItemLoadInfo::Instance());
|
||||
DB2Storage<ItemExtendedCostEntry> sItemExtendedCostStore("ItemExtendedCost.db2", ItemExtendedCostLoadInfo::Instance());
|
||||
DB2Storage<ItemLevelSelectorEntry> sItemLevelSelectorStore("ItemLevelSelector.db2", ItemLevelSelectorLoadInfo::Instance());
|
||||
DB2Storage<ItemLevelSelectorQualityEntry> sItemLevelSelectorQualityStore("ItemLevelSelectorQuality.db2", ItemLevelSelectorQualityLoadInfo::Instance());
|
||||
DB2Storage<ItemLevelSelectorQualitySetEntry> sItemLevelSelectorQualitySetStore("ItemLevelSelectorQualitySet.db2", ItemLevelSelectorQualitySetLoadInfo::Instance());
|
||||
DB2Storage<ItemLimitCategoryEntry> sItemLimitCategoryStore("ItemLimitCategory.db2", ItemLimitCategoryLoadInfo::Instance());
|
||||
DB2Storage<ItemModifiedAppearanceEntry> sItemModifiedAppearanceStore("ItemModifiedAppearance.db2", ItemModifiedAppearanceLoadInfo::Instance());
|
||||
DB2Storage<ItemPriceBaseEntry> sItemPriceBaseStore("ItemPriceBase.db2", ItemPriceBaseLoadInfo::Instance());
|
||||
@@ -154,8 +156,8 @@ DB2Storage<ItemSpecEntry> sItemSpecStore("ItemSpec.db2", I
|
||||
DB2Storage<ItemSpecOverrideEntry> sItemSpecOverrideStore("ItemSpecOverride.db2", ItemSpecOverrideLoadInfo::Instance());
|
||||
DB2Storage<ItemUpgradeEntry> sItemUpgradeStore("ItemUpgrade.db2", ItemUpgradeLoadInfo::Instance());
|
||||
DB2Storage<ItemXBonusTreeEntry> sItemXBonusTreeStore("ItemXBonusTree.db2", ItemXBonusTreeLoadInfo::Instance());
|
||||
DB2Storage<KeyChainEntry> sKeyChainStore("KeyChain.db2", KeyChainLoadInfo::Instance());
|
||||
DB2Storage<LfgDungeonsEntry> sLfgDungeonsStore("LfgDungeons.db2", LfgDungeonsLoadInfo::Instance());
|
||||
DB2Storage<KeychainEntry> sKeychainStore("Keychain.db2", KeychainLoadInfo::Instance());
|
||||
DB2Storage<LFGDungeonsEntry> sLFGDungeonsStore("LFGDungeons.db2", LfgDungeonsLoadInfo::Instance());
|
||||
DB2Storage<LightEntry> sLightStore("Light.db2", LightLoadInfo::Instance());
|
||||
DB2Storage<LiquidTypeEntry> sLiquidTypeStore("LiquidType.db2", LiquidTypeLoadInfo::Instance());
|
||||
DB2Storage<LockEntry> sLockStore("Lock.db2", LockLoadInfo::Instance());
|
||||
@@ -179,7 +181,7 @@ DB2Storage<PlayerConditionEntry> sPlayerConditionStore("PlayerCon
|
||||
DB2Storage<PowerDisplayEntry> sPowerDisplayStore("PowerDisplay.db2", PowerDisplayLoadInfo::Instance());
|
||||
DB2Storage<PowerTypeEntry> sPowerTypeStore("PowerType.db2", PowerTypeLoadInfo::Instance());
|
||||
DB2Storage<PrestigeLevelInfoEntry> sPrestigeLevelInfoStore("PrestigeLevelInfo.db2", PrestigeLevelInfoLoadInfo::Instance());
|
||||
DB2Storage<PvpDifficultyEntry> sPvpDifficultyStore("PvpDifficulty.db2", PvpDifficultyLoadInfo::Instance());
|
||||
DB2Storage<PVPDifficultyEntry> sPVPDifficultyStore("PVPDifficulty.db2", PvpDifficultyLoadInfo::Instance());
|
||||
DB2Storage<PvpRewardEntry> sPvpRewardStore("PvpReward.db2", PvpRewardLoadInfo::Instance());
|
||||
DB2Storage<QuestFactionRewardEntry> sQuestFactionRewardStore("QuestFactionReward.db2", QuestFactionRewardLoadInfo::Instance());
|
||||
DB2Storage<QuestMoneyRewardEntry> sQuestMoneyRewardStore("QuestMoneyReward.db2", QuestMoneyRewardLoadInfo::Instance());
|
||||
@@ -267,6 +269,13 @@ TaxiPathNodesByPath sTaxiPathNodesByPath;
|
||||
|
||||
DEFINE_DB2_SET_COMPARATOR(ChrClassesXPowerTypesEntry)
|
||||
|
||||
struct ItemLevelSelectorQualityEntryComparator
|
||||
{
|
||||
bool operator()(ItemLevelSelectorQualityEntry const* left, ItemLevelSelectorQualityEntry const* right) const { return Compare(left, right); }
|
||||
bool operator()(ItemLevelSelectorQualityEntry const* left, ItemQualities quality) const { return left->Quality < quality; }
|
||||
static bool Compare(ItemLevelSelectorQualityEntry const* left, ItemLevelSelectorQualityEntry const* right);
|
||||
};
|
||||
|
||||
typedef std::map<uint32 /*hash*/, DB2StorageBase*> StorageMap;
|
||||
typedef std::unordered_map<uint32 /*areaGroupId*/, std::vector<uint32/*areaId*/>> AreaGroupMemberContainer;
|
||||
typedef std::unordered_map<uint32, std::vector<ArtifactPowerEntry const*>> ArtifactPowersContainer;
|
||||
@@ -286,6 +295,7 @@ typedef std::unordered_map<int16, uint32> ItemBonusListLevelDeltaContainer;
|
||||
typedef std::unordered_multimap<uint32 /*itemId*/, uint32 /*bonusTreeId*/> ItemToBonusTreeContainer;
|
||||
typedef std::unordered_map<uint32 /*itemId*/, ItemChildEquipmentEntry const*> ItemChildEquipmentContainer;
|
||||
typedef std::array<ItemClassEntry const*, 19> ItemClassByOldEnumContainer;
|
||||
typedef std::set<ItemLevelSelectorQualityEntry const*, ItemLevelSelectorQualityEntryComparator> ItemLevelSelectorQualities;
|
||||
typedef std::unordered_map<uint32 /*itemId | appearanceMod << 24*/, ItemModifiedAppearanceEntry const*> ItemModifiedAppearanceByItemContainer;
|
||||
typedef std::unordered_map<uint32, std::set<ItemBonusTreeNodeEntry const*>> ItemBonusTreeContainer;
|
||||
typedef std::unordered_map<uint32, std::vector<ItemSetSpellEntry const*>> ItemSetSpellContainer;
|
||||
@@ -336,6 +346,7 @@ namespace
|
||||
ItemChildEquipmentContainer _itemChildEquipment;
|
||||
ItemClassByOldEnumContainer _itemClassByOldEnum;
|
||||
std::unordered_set<uint32> _itemsWithCurrencyCost;
|
||||
std::unordered_map<uint32 /*itemLevelSelectorQualitySetId*/, ItemLevelSelectorQualities> _itemLevelQualitySelectorQualities;
|
||||
ItemModifiedAppearanceByItemContainer _itemModifiedAppearancesByItem;
|
||||
ItemToBonusTreeContainer _itemToBonusTree;
|
||||
ItemSetSpellContainer _itemSetSpells;
|
||||
@@ -462,7 +473,7 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
|
||||
LOAD_DB2(sArtifactPowerRankStore);
|
||||
LOAD_DB2(sAuctionHouseStore);
|
||||
LOAD_DB2(sBankBagSlotPricesStore);
|
||||
LOAD_DB2(sBannedAddOnsStore);
|
||||
LOAD_DB2(sBannedAddonsStore);
|
||||
LOAD_DB2(sBarberShopStyleStore);
|
||||
LOAD_DB2(sBattlePetBreedQualityStore);
|
||||
LOAD_DB2(sBattlePetBreedStateStore);
|
||||
@@ -551,6 +562,8 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
|
||||
LOAD_DB2(sItemStore);
|
||||
LOAD_DB2(sItemExtendedCostStore);
|
||||
LOAD_DB2(sItemLevelSelectorStore);
|
||||
LOAD_DB2(sItemLevelSelectorQualityStore);
|
||||
LOAD_DB2(sItemLevelSelectorQualitySetStore);
|
||||
LOAD_DB2(sItemLimitCategoryStore);
|
||||
LOAD_DB2(sItemModifiedAppearanceStore);
|
||||
LOAD_DB2(sItemPriceBaseStore);
|
||||
@@ -564,8 +577,8 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
|
||||
LOAD_DB2(sItemSpecOverrideStore);
|
||||
LOAD_DB2(sItemUpgradeStore);
|
||||
LOAD_DB2(sItemXBonusTreeStore);
|
||||
LOAD_DB2(sKeyChainStore);
|
||||
LOAD_DB2(sLfgDungeonsStore);
|
||||
LOAD_DB2(sKeychainStore);
|
||||
LOAD_DB2(sLFGDungeonsStore);
|
||||
LOAD_DB2(sLightStore);
|
||||
LOAD_DB2(sLiquidTypeStore);
|
||||
LOAD_DB2(sLockStore);
|
||||
@@ -589,7 +602,7 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
|
||||
LOAD_DB2(sPowerDisplayStore);
|
||||
LOAD_DB2(sPowerTypeStore);
|
||||
LOAD_DB2(sPrestigeLevelInfoStore);
|
||||
LOAD_DB2(sPvpDifficultyStore);
|
||||
LOAD_DB2(sPVPDifficultyStore);
|
||||
LOAD_DB2(sPvpRewardStore);
|
||||
LOAD_DB2(sQuestFactionRewardStore);
|
||||
LOAD_DB2(sQuestMoneyRewardStore);
|
||||
@@ -828,6 +841,9 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
|
||||
for (ItemCurrencyCostEntry const* itemCurrencyCost : sItemCurrencyCostStore)
|
||||
_itemsWithCurrencyCost.insert(itemCurrencyCost->ItemId);
|
||||
|
||||
for (ItemLevelSelectorQualityEntry const* itemLevelSelectorQuality : sItemLevelSelectorQualityStore)
|
||||
_itemLevelQualitySelectorQualities[itemLevelSelectorQuality->ItemLevelSelectorQualitySetID].insert(itemLevelSelectorQuality);
|
||||
|
||||
for (ItemModifiedAppearanceEntry const* appearanceMod : sItemModifiedAppearanceStore)
|
||||
{
|
||||
ASSERT(appearanceMod->ItemID <= 0xFFFFFF);
|
||||
@@ -912,7 +928,7 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
|
||||
_powerTypes[powerType->PowerTypeEnum] = powerType;
|
||||
}
|
||||
|
||||
for (PvpDifficultyEntry const* entry : sPvpDifficultyStore)
|
||||
for (PVPDifficultyEntry const* entry : sPVPDifficultyStore)
|
||||
{
|
||||
ASSERT(entry->BracketID < MAX_BATTLEGROUND_BRACKETS, "PvpDifficulty bracket (%d) exceeded max allowed value (%d)", entry->BracketID, MAX_BATTLEGROUND_BRACKETS);
|
||||
}
|
||||
@@ -1069,13 +1085,13 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
|
||||
}
|
||||
|
||||
// Check loaded DB2 files proper version
|
||||
if (!sAreaTableStore.LookupEntry(8485) || // last area (areaflag) added in 7.0.3 (22594)
|
||||
!sCharTitlesStore.LookupEntry(486) || // last char title added in 7.0.3 (22594)
|
||||
!sGemPropertiesStore.LookupEntry(3363) || // last gem property added in 7.0.3 (22594)
|
||||
!sItemStore.LookupEntry(142526) || // last item added in 7.0.3 (22594)
|
||||
!sItemExtendedCostStore.LookupEntry(6125) || // last item extended cost added in 7.0.3 (22594)
|
||||
!sMapStore.LookupEntry(1670) || // last map added in 7.0.3 (22594)
|
||||
!sSpellStore.LookupEntry(231371)) // last spell added in 7.0.3 (22594)
|
||||
if (!sAreaTableStore.LookupEntry(9333) || // last area added in 7.3.2 (25480)
|
||||
!sCharTitlesStore.LookupEntry(518) || // last char title added in 7.3.2 (25480)
|
||||
!sGemPropertiesStore.LookupEntry(3632) || // last gem property added in 7.3.2 (25480)
|
||||
!sItemStore.LookupEntry(155880) || // last item added in 7.3.2 (25480)
|
||||
!sItemExtendedCostStore.LookupEntry(6255) || // last item extended cost added in 7.3.2 (25480)
|
||||
!sMapStore.LookupEntry(1817) || // last map added in 7.3.2 (25480)
|
||||
!sSpellStore.LookupEntry(259088)) // last spell added in 7.3.2 (25480)
|
||||
{
|
||||
TC_LOG_ERROR("misc", "You have _outdated_ DB2 files. Please extract correct versions from current using client.");
|
||||
exit(1);
|
||||
@@ -1086,7 +1102,7 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
|
||||
|
||||
DB2StorageBase const* DB2Manager::GetStorage(uint32 type) const
|
||||
{
|
||||
StorageMap::const_iterator itr = _stores.find(type);
|
||||
auto itr = _stores.find(type);
|
||||
if (itr != _stores.end())
|
||||
return itr->second;
|
||||
|
||||
@@ -1554,6 +1570,25 @@ std::set<uint32> DB2Manager::GetItemBonusTree(uint32 itemId, uint32 itemBonusTre
|
||||
|
||||
if (uint32 bonus = GetItemBonusListForItemLevelDelta(delta))
|
||||
bonusListIDs.insert(bonus);
|
||||
|
||||
if (ItemLevelSelectorQualitySetEntry const* selectorQualitySet = sItemLevelSelectorQualitySetStore.LookupEntry(selector->ItemLevelSelectorQualitySetID))
|
||||
{
|
||||
auto itemSelectorQualities = _itemLevelQualitySelectorQualities.find(selector->ItemLevelSelectorQualitySetID);
|
||||
if (itemSelectorQualities != _itemLevelQualitySelectorQualities.end())
|
||||
{
|
||||
ItemQualities quality = ITEM_QUALITY_UNCOMMON;
|
||||
if (selector->ItemLevel >= selectorQualitySet->ItemLevelMax)
|
||||
quality = ITEM_QUALITY_EPIC;
|
||||
else if (selector->ItemLevel >= selectorQualitySet->ItemLevelMin)
|
||||
quality = ITEM_QUALITY_RARE;
|
||||
|
||||
auto itemSelectorQuality = std::lower_bound(itemSelectorQualities->second.begin(), itemSelectorQualities->second.end(),
|
||||
quality, ItemLevelSelectorQualityEntryComparator{});
|
||||
|
||||
if (itemSelectorQuality != itemSelectorQualities->second.end())
|
||||
bonusListIDs.insert((*itemSelectorQuality)->ItemBonusListID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1633,9 +1668,9 @@ std::vector<ItemSpecOverrideEntry const*> const* DB2Manager::GetItemSpecOverride
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
LfgDungeonsEntry const* DB2Manager::GetLfgDungeon(uint32 mapId, Difficulty difficulty)
|
||||
LFGDungeonsEntry const* DB2Manager::GetLfgDungeon(uint32 mapId, Difficulty difficulty)
|
||||
{
|
||||
for (LfgDungeonsEntry const* dungeon : sLfgDungeonsStore)
|
||||
for (LFGDungeonsEntry const* dungeon : sLFGDungeonsStore)
|
||||
if (dungeon->MapID == int32(mapId) && Difficulty(dungeon->DifficultyID) == difficulty)
|
||||
return dungeon;
|
||||
|
||||
@@ -1805,36 +1840,32 @@ uint8 DB2Manager::GetMaxPrestige() const
|
||||
return max;
|
||||
}
|
||||
|
||||
PvpDifficultyEntry const* DB2Manager::GetBattlegroundBracketByLevel(uint32 mapid, uint32 level)
|
||||
PVPDifficultyEntry const* DB2Manager::GetBattlegroundBracketByLevel(uint32 mapid, uint32 level)
|
||||
{
|
||||
PvpDifficultyEntry const* maxEntry = nullptr; // used for level > max listed level case
|
||||
for (uint32 i = 0; i < sPvpDifficultyStore.GetNumRows(); ++i)
|
||||
PVPDifficultyEntry const* maxEntry = nullptr; // used for level > max listed level case
|
||||
for (PVPDifficultyEntry const* entry : sPVPDifficultyStore)
|
||||
{
|
||||
if (PvpDifficultyEntry const* entry = sPvpDifficultyStore.LookupEntry(i))
|
||||
{
|
||||
// skip unrelated and too-high brackets
|
||||
if (entry->MapID != mapid || entry->MinLevel > level)
|
||||
continue;
|
||||
// skip unrelated and too-high brackets
|
||||
if (entry->MapID != mapid || entry->MinLevel > level)
|
||||
continue;
|
||||
|
||||
// exactly fit
|
||||
if (entry->MaxLevel >= level)
|
||||
return entry;
|
||||
// exactly fit
|
||||
if (entry->MaxLevel >= level)
|
||||
return entry;
|
||||
|
||||
// remember for possible out-of-range case (search higher from existed)
|
||||
if (!maxEntry || maxEntry->MaxLevel < entry->MaxLevel)
|
||||
maxEntry = entry;
|
||||
}
|
||||
// remember for possible out-of-range case (search higher from existed)
|
||||
if (!maxEntry || maxEntry->MaxLevel < entry->MaxLevel)
|
||||
maxEntry = entry;
|
||||
}
|
||||
|
||||
return maxEntry;
|
||||
}
|
||||
|
||||
PvpDifficultyEntry const* DB2Manager::GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id)
|
||||
PVPDifficultyEntry const* DB2Manager::GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id)
|
||||
{
|
||||
for (uint32 i = 0; i < sPvpDifficultyStore.GetNumRows(); ++i)
|
||||
if (PvpDifficultyEntry const* entry = sPvpDifficultyStore.LookupEntry(i))
|
||||
if (entry->MapID == mapid && entry->GetBracketId() == id)
|
||||
return entry;
|
||||
for (PVPDifficultyEntry const* entry : sPVPDifficultyStore)
|
||||
if (entry->MapID == mapid && entry->GetBracketId() == id)
|
||||
return entry;
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
@@ -2100,7 +2131,10 @@ void DB2Manager::DeterminaAlternateMapPosition(uint32 mapId, float x, float y, f
|
||||
{
|
||||
if (transform->MapID != mapId)
|
||||
continue;
|
||||
|
||||
if (transform->AreaID)
|
||||
continue;
|
||||
if (transform->Flags & WORLD_MAP_TRANSFORMS_FLAG_DUNGEON)
|
||||
continue;
|
||||
if (transform->RegionMin.X > x || transform->RegionMax.X < x)
|
||||
continue;
|
||||
if (transform->RegionMin.Y > y || transform->RegionMax.Y < y)
|
||||
@@ -2108,8 +2142,8 @@ void DB2Manager::DeterminaAlternateMapPosition(uint32 mapId, float x, float y, f
|
||||
if (transform->RegionMin.Z > z || transform->RegionMax.Z < z)
|
||||
continue;
|
||||
|
||||
transformation = transform;
|
||||
break;
|
||||
if (!transformation || transformation->Priority < transform->Priority)
|
||||
transformation = transform;
|
||||
}
|
||||
|
||||
if (!transformation)
|
||||
@@ -2131,7 +2165,7 @@ void DB2Manager::DeterminaAlternateMapPosition(uint32 mapId, float x, float y, f
|
||||
if (!newPos)
|
||||
return;
|
||||
|
||||
if (transformation->RegionScale > 0.0f && transformation->RegionScale < 1.0f)
|
||||
if (std::abs(transformation->RegionScale - 1.0f) > 0.001f)
|
||||
{
|
||||
x = (x - transformation->RegionMin.X) * transformation->RegionScale + transformation->RegionMin.X;
|
||||
y = (y - transformation->RegionMin.Y) * transformation->RegionScale + transformation->RegionMin.Y;
|
||||
@@ -2148,6 +2182,11 @@ bool ChrClassesXPowerTypesEntryComparator::Compare(ChrClassesXPowerTypesEntry co
|
||||
return left->PowerType < right->PowerType;
|
||||
}
|
||||
|
||||
bool ItemLevelSelectorQualityEntryComparator::Compare(ItemLevelSelectorQualityEntry const* left, ItemLevelSelectorQualityEntry const* right)
|
||||
{
|
||||
return left->Quality > right->Quality;
|
||||
}
|
||||
|
||||
bool DB2Manager::MountTypeXCapabilityEntryComparator::Compare(MountTypeXCapabilityEntry const* left, MountTypeXCapabilityEntry const* right)
|
||||
{
|
||||
if (left->MountTypeID == right->MountTypeID)
|
||||
|
||||
@@ -45,7 +45,7 @@ TC_GAME_API extern DB2Storage<ArtifactPowerEntry> sArtifactPow
|
||||
TC_GAME_API extern DB2Storage<ArtifactPowerPickerEntry> sArtifactPowerPickerStore;
|
||||
TC_GAME_API extern DB2Storage<AuctionHouseEntry> sAuctionHouseStore;
|
||||
TC_GAME_API extern DB2Storage<BankBagSlotPricesEntry> sBankBagSlotPricesStore;
|
||||
TC_GAME_API extern DB2Storage<BannedAddOnsEntry> sBannedAddOnsStore;
|
||||
TC_GAME_API extern DB2Storage<BannedAddonsEntry> sBannedAddonsStore;
|
||||
TC_GAME_API extern DB2Storage<BarberShopStyleEntry> sBarberShopStyleStore;
|
||||
TC_GAME_API extern DB2Storage<BattlePetBreedQualityEntry> sBattlePetBreedQualityStore;
|
||||
TC_GAME_API extern DB2Storage<BattlePetBreedStateEntry> sBattlePetBreedStateStore;
|
||||
@@ -130,7 +130,7 @@ TC_GAME_API extern DB2Storage<ItemSparseEntry> sItemSparseS
|
||||
TC_GAME_API extern DB2Storage<ItemSpecEntry> sItemSpecStore;
|
||||
TC_GAME_API extern DB2Storage<ItemSpecOverrideEntry> sItemSpecOverrideStore;
|
||||
TC_GAME_API extern DB2Storage<ItemUpgradeEntry> sItemUpgradeStore;
|
||||
TC_GAME_API extern DB2Storage<LfgDungeonsEntry> sLfgDungeonsStore;
|
||||
TC_GAME_API extern DB2Storage<LFGDungeonsEntry> sLFGDungeonsStore;
|
||||
TC_GAME_API extern DB2Storage<LiquidTypeEntry> sLiquidTypeStore;
|
||||
TC_GAME_API extern DB2Storage<LockEntry> sLockStore;
|
||||
TC_GAME_API extern DB2Storage<MailTemplateEntry> sMailTemplateStore;
|
||||
@@ -286,7 +286,7 @@ public:
|
||||
ItemModifiedAppearanceEntry const* GetDefaultItemModifiedAppearance(uint32 itemId) const;
|
||||
std::vector<ItemSetSpellEntry const*> const* GetItemSetSpells(uint32 itemSetId) const;
|
||||
std::vector<ItemSpecOverrideEntry const*> const* GetItemSpecOverrides(uint32 itemId) const;
|
||||
static LfgDungeonsEntry const* GetLfgDungeon(uint32 mapId, Difficulty difficulty);
|
||||
static LFGDungeonsEntry const* GetLfgDungeon(uint32 mapId, Difficulty difficulty);
|
||||
static uint32 GetDefaultMapLight(uint32 mapId);
|
||||
static uint32 GetLiquidFlags(uint32 liquidType);
|
||||
MapDifficultyContainer const& GetMapDifficulties() const;
|
||||
@@ -303,8 +303,8 @@ public:
|
||||
PowerTypeEntry const* GetPowerTypeEntry(Powers power) const;
|
||||
PowerTypeEntry const* GetPowerTypeByName(std::string const& name) const;
|
||||
uint8 GetMaxPrestige() const;
|
||||
static PvpDifficultyEntry const* GetBattlegroundBracketByLevel(uint32 mapid, uint32 level);
|
||||
static PvpDifficultyEntry const* GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id);
|
||||
static PVPDifficultyEntry const* GetBattlegroundBracketByLevel(uint32 mapid, uint32 level);
|
||||
static PVPDifficultyEntry const* GetBattlegroundBracketById(uint32 mapid, BattlegroundBracketId id);
|
||||
uint32 GetRewardPackIDForPvpRewardByHonorLevelAndPrestige(uint8 honorLevel, uint8 prestige) const;
|
||||
std::vector<QuestPackageItemEntry const*> const* GetQuestPackageItems(uint32 questPackageID) const;
|
||||
std::vector<QuestPackageItemEntry const*> const* GetQuestPackageItemsFallback(uint32 questPackageID) const;
|
||||
|
||||
@@ -37,12 +37,12 @@ struct AchievementEntry
|
||||
uint16 Category;
|
||||
uint16 UIOrder;
|
||||
uint16 SharesCriteria; // referenced achievement (counting of all completed criterias)
|
||||
uint16 CriteriaTree;
|
||||
int8 Faction; // -1 = all, 0 = horde, 1 = alliance
|
||||
uint8 Points;
|
||||
uint8 MinimumCriteria; // need this count of completed criterias (own or referenced achievement criterias)
|
||||
uint32 ID;
|
||||
uint32 IconFileDataID;
|
||||
uint32 CriteriaTree;
|
||||
};
|
||||
|
||||
struct AnimKitEntry
|
||||
@@ -230,7 +230,7 @@ struct BankBagSlotPricesEntry
|
||||
uint32 Cost;
|
||||
};
|
||||
|
||||
struct BannedAddOnsEntry
|
||||
struct BannedAddonsEntry
|
||||
{
|
||||
uint32 ID;
|
||||
char const* Name;
|
||||
@@ -421,6 +421,8 @@ struct ChrRacesEntry
|
||||
{
|
||||
uint32 ID;
|
||||
uint32 Flags;
|
||||
uint32 MaleDisplayID;
|
||||
uint32 FemaleDisplayID;
|
||||
char const* ClientPrefix;
|
||||
char const* ClientFileString;
|
||||
LocalizedString* Name;
|
||||
@@ -434,8 +436,6 @@ struct ChrRacesEntry
|
||||
float FemaleCustomizeOffset[3];
|
||||
uint32 LowResScreenFileDataID;
|
||||
uint16 FactionID;
|
||||
uint16 MaleDisplayID;
|
||||
uint16 FemaleDisplayID;
|
||||
uint16 ResSicknessSpellID;
|
||||
uint16 SplashSoundID;
|
||||
uint16 CinematicSequenceID;
|
||||
@@ -451,7 +451,8 @@ struct ChrRacesEntry
|
||||
uint8 CharComponentTexLayoutHiResID;
|
||||
uint32 HighResMaleDisplayID;
|
||||
uint32 HighResFemaleDisplayID;
|
||||
uint32 Unk[3];
|
||||
uint32 AlteredFormTransitionSpellVisualID[3];
|
||||
uint32 AlteredFormTransitionSpellVisualKitID[3];
|
||||
};
|
||||
|
||||
#define MAX_MASTERY_SPELLS 2
|
||||
@@ -679,6 +680,7 @@ struct CriteriaEntry
|
||||
uint32 WorldMapOverlayID;
|
||||
|
||||
// CRITERIA_TYPE_GAIN_REPUTATION = 46
|
||||
// CRITERIA_TYPE_GAIN_PARAGON_REPUTATION = 206
|
||||
uint32 FactionID;
|
||||
|
||||
// CRITERIA_TYPE_EQUIP_EPIC_ITEM = 49
|
||||
@@ -733,11 +735,14 @@ struct CriteriaEntry
|
||||
|
||||
// CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED = 205
|
||||
uint32 TransmogSetGroupID;
|
||||
|
||||
// CRITERIA_TYPE_RELIC_TALENT_UNLOCKED = 211
|
||||
uint32 ArtifactPowerID;
|
||||
} Asset;
|
||||
uint32 StartAsset;
|
||||
uint32 FailAsset;
|
||||
uint32 ModifierTreeId;
|
||||
uint16 StartTimer;
|
||||
uint16 ModifierTreeId;
|
||||
uint16 EligibilityWorldStateID;
|
||||
uint8 Type;
|
||||
uint8 StartEvent;
|
||||
@@ -751,10 +756,10 @@ struct CriteriaTreeEntry
|
||||
uint32 ID;
|
||||
uint32 Amount;
|
||||
LocalizedString* Description;
|
||||
uint16 Parent;
|
||||
uint16 Flags;
|
||||
uint8 Operator;
|
||||
uint32 CriteriaID;
|
||||
uint32 Parent;
|
||||
int32 OrderIndex;
|
||||
};
|
||||
|
||||
@@ -1463,6 +1468,22 @@ struct ItemLevelSelectorEntry
|
||||
{
|
||||
uint32 ID;
|
||||
uint16 ItemLevel;
|
||||
uint16 ItemLevelSelectorQualitySetID;
|
||||
};
|
||||
|
||||
struct ItemLevelSelectorQualityEntry
|
||||
{
|
||||
uint32 ID;
|
||||
uint32 ItemBonusListID;
|
||||
uint16 ItemLevelSelectorQualitySetID;
|
||||
uint8 Quality;
|
||||
};
|
||||
|
||||
struct ItemLevelSelectorQualitySetEntry
|
||||
{
|
||||
uint32 ID;
|
||||
uint16 ItemLevelMin;
|
||||
uint16 ItemLevelMax;
|
||||
};
|
||||
|
||||
struct ItemLimitCategoryEntry
|
||||
@@ -1514,16 +1535,16 @@ struct ItemSearchNameEntry
|
||||
LocalizedString* Name;
|
||||
uint32 Flags[3];
|
||||
uint32 AllowableRace;
|
||||
uint32 RequiredSpell;
|
||||
uint16 RequiredReputationFaction;
|
||||
uint16 RequiredSkill;
|
||||
uint16 RequiredSkillRank;
|
||||
uint16 ItemLevel;
|
||||
uint8 Quality;
|
||||
uint8 RequiredExpansion;
|
||||
uint8 RequiredReputationRank;
|
||||
uint8 RequiredLevel;
|
||||
int32 AllowableClass;
|
||||
uint16 RequiredReputationFaction;
|
||||
uint8 RequiredReputationRank;
|
||||
uint16 RequiredSkill;
|
||||
uint16 RequiredSkillRank;
|
||||
uint32 RequiredSpell;
|
||||
};
|
||||
|
||||
#define MAX_ITEM_SET_ITEMS 17
|
||||
@@ -1653,13 +1674,13 @@ struct ItemXBonusTreeEntry
|
||||
|
||||
#define KEYCHAIN_SIZE 32
|
||||
|
||||
struct KeyChainEntry
|
||||
struct KeychainEntry
|
||||
{
|
||||
uint32 ID;
|
||||
uint8 Key[KEYCHAIN_SIZE];
|
||||
};
|
||||
|
||||
struct LfgDungeonsEntry
|
||||
struct LFGDungeonsEntry
|
||||
{
|
||||
uint32 ID;
|
||||
LocalizedString* Name;
|
||||
@@ -1835,7 +1856,7 @@ struct ModifierTreeEntry
|
||||
{
|
||||
uint32 ID;
|
||||
uint32 Asset[2];
|
||||
uint16 Parent;
|
||||
uint32 Parent;
|
||||
uint8 Type;
|
||||
uint8 Unk700;
|
||||
uint8 Operator;
|
||||
@@ -1949,57 +1970,65 @@ struct PlayerConditionEntry
|
||||
{
|
||||
uint32 ID;
|
||||
uint32 RaceMask;
|
||||
uint32 Time[2];
|
||||
uint32 AuraSpellID[4];
|
||||
LocalizedString* FailureDescription;
|
||||
uint16 SkillID[4];
|
||||
int16 MinSkill[4];
|
||||
int16 MaxSkill[4];
|
||||
uint16 PrevQuestID[4];
|
||||
uint16 CurrQuestID[4];
|
||||
uint16 CurrentCompletedQuestID[4];
|
||||
uint16 Explored[2];
|
||||
uint16 Achievement[4];
|
||||
uint16 AreaID[4];
|
||||
uint8 Flags;
|
||||
uint8 MinReputation[3];
|
||||
uint8 AuraCount[4];
|
||||
uint8 LfgStatus[4];
|
||||
uint8 LfgCompare[4];
|
||||
uint8 CurrencyCount[4];
|
||||
int32 ClassMask;
|
||||
uint32 MinFactionID[3];
|
||||
uint32 SpellID[4];
|
||||
uint32 ItemID[4];
|
||||
uint32 ItemCount[4];
|
||||
uint32 LfgValue[4];
|
||||
uint32 CurrencyID[4];
|
||||
uint32 QuestKillMonster[6];
|
||||
int32 MovementFlags[2];
|
||||
uint16 MinLevel;
|
||||
uint16 MaxLevel;
|
||||
int8 Gender;
|
||||
int8 NativeGender;
|
||||
uint32 SkillLogic;
|
||||
uint8 LanguageID;
|
||||
uint8 MinLanguage;
|
||||
uint32 MaxLanguage;
|
||||
uint16 MaxFactionID;
|
||||
uint8 MaxReputation;
|
||||
uint32 ReputationLogic;
|
||||
uint8 Unknown1;
|
||||
uint8 MinPVPRank;
|
||||
uint8 MaxPVPRank;
|
||||
uint8 PvpMedal;
|
||||
uint32 PrevQuestLogic;
|
||||
uint32 CurrQuestLogic;
|
||||
uint32 CurrentCompletedQuestLogic;
|
||||
uint32 SpellLogic;
|
||||
uint32 ItemLogic;
|
||||
uint32 Time[2];
|
||||
uint32 AuraSpellLogic;
|
||||
uint32 AuraSpellID[4];
|
||||
uint32 AchievementLogic;
|
||||
uint32 AreaLogic;
|
||||
uint32 QuestKillLogic;
|
||||
LocalizedString* FailureDescription;
|
||||
uint16 MinLevel;
|
||||
uint16 MaxLevel;
|
||||
uint16 SkillID[4];
|
||||
int16 MinSkill[4];
|
||||
int16 MaxSkill[4];
|
||||
uint16 MaxFactionID;
|
||||
uint16 PrevQuestID[4];
|
||||
uint16 CurrQuestID[4];
|
||||
uint16 CurrentCompletedQuestID[4];
|
||||
uint16 Explored[2];
|
||||
uint16 WorldStateExpressionID;
|
||||
uint16 Achievement[4];
|
||||
uint16 AreaID[4];
|
||||
uint16 QuestKillID;
|
||||
uint16 PhaseID;
|
||||
uint16 MinAvgEquippedItemLevel;
|
||||
uint16 MaxAvgEquippedItemLevel;
|
||||
uint16 ModifierTreeID;
|
||||
uint8 Flags;
|
||||
int8 Gender;
|
||||
int8 NativeGender;
|
||||
uint8 MinLanguage;
|
||||
uint8 MaxLanguage;
|
||||
uint8 MinReputation[3];
|
||||
uint8 MaxReputation;
|
||||
uint8 Unknown1;
|
||||
uint8 MinPVPRank;
|
||||
uint8 MaxPVPRank;
|
||||
uint8 PvpMedal;
|
||||
uint8 ItemFlags;
|
||||
uint8 AuraCount[4];
|
||||
uint32 AuraSpellLogic;
|
||||
uint16 WorldStateExpressionID;
|
||||
uint8 WeatherID;
|
||||
uint8 PartyStatus;
|
||||
uint8 LifetimeMaxPVPRank;
|
||||
uint8 LfgStatus[4];
|
||||
uint8 LfgCompare[4];
|
||||
uint8 CurrencyCount[4];
|
||||
uint32 AchievementLogic;
|
||||
uint32 LfgLogic;
|
||||
uint32 AreaLogic;
|
||||
uint32 CurrencyLogic;
|
||||
uint16 QuestKillID;
|
||||
uint32 QuestKillLogic;
|
||||
int8 MinExpansionLevel;
|
||||
int8 MaxExpansionLevel;
|
||||
int8 MinExpansionTier;
|
||||
@@ -2007,26 +2036,18 @@ struct PlayerConditionEntry
|
||||
uint8 MinGuildLevel;
|
||||
uint8 MaxGuildLevel;
|
||||
uint8 PhaseUseFlags;
|
||||
uint16 PhaseID;
|
||||
uint32 PhaseGroupID;
|
||||
uint32 MinAvgItemLevel;
|
||||
uint32 MaxAvgItemLevel;
|
||||
uint16 MinAvgEquippedItemLevel;
|
||||
uint16 MaxAvgEquippedItemLevel;
|
||||
int8 ChrSpecializationIndex;
|
||||
int8 ChrSpecializationRole;
|
||||
int8 PowerType;
|
||||
int8 PowerTypeComp;
|
||||
int8 PowerTypeValue;
|
||||
int32 ClassMask;
|
||||
uint32 LanguageID;
|
||||
uint32 MinFactionID[3];
|
||||
uint32 SpellID[4];
|
||||
uint32 ItemID[4];
|
||||
uint32 ItemCount[4];
|
||||
uint32 LfgLogic;
|
||||
uint32 LfgValue[4];
|
||||
uint32 CurrencyLogic;
|
||||
uint32 CurrencyID[4];
|
||||
uint32 QuestKillMonster[6];
|
||||
uint32 PhaseGroupID;
|
||||
uint32 MinAvgItemLevel;
|
||||
uint32 MaxAvgItemLevel;
|
||||
int32 MovementFlags[2];
|
||||
uint32 ModifierTreeID;
|
||||
uint32 MainHandItemSubclassMask;
|
||||
};
|
||||
|
||||
@@ -2068,7 +2089,7 @@ struct PrestigeLevelInfoEntry
|
||||
bool IsDisabled() const { return (Flags & PRESTIGE_FLAG_DISABLED) != 0; }
|
||||
};
|
||||
|
||||
struct PvpDifficultyEntry
|
||||
struct PVPDifficultyEntry
|
||||
{
|
||||
uint32 ID;
|
||||
uint16 MapID;
|
||||
@@ -2184,12 +2205,12 @@ struct ScenarioStepEntry
|
||||
uint32 ID;
|
||||
LocalizedString* Description;
|
||||
LocalizedString* Name;
|
||||
uint16 CriteriaTreeID;
|
||||
uint16 ScenarioID;
|
||||
uint16 PreviousStepID; // Used in conjunction with Proving Grounds scenarios, when sequencing steps (Not using step order?)
|
||||
uint16 QuestRewardID;
|
||||
uint8 Step;
|
||||
uint8 Flags;
|
||||
uint32 CriteriaTreeID;
|
||||
uint32 BonusRequiredStepID; // Bonus step can only be completed if scenario is in the step specified in this field
|
||||
|
||||
// helpers
|
||||
@@ -2259,23 +2280,22 @@ struct SkillRaceClassInfoEntry
|
||||
|
||||
struct SoundKitEntry
|
||||
{
|
||||
LocalizedString* Name;
|
||||
uint32 ID;
|
||||
float VolumeFloat;
|
||||
float MinDistance;
|
||||
float DistanceCutoff;
|
||||
uint16 Flags;
|
||||
uint16 SoundEntriesAdvancedID;
|
||||
uint8 SoundType;
|
||||
uint8 DialogType;
|
||||
uint8 EAXDef;
|
||||
float VolumeVariationPlus;
|
||||
float VolumeVariationMinus;
|
||||
float PitchVariationPlus;
|
||||
float PitchVariationMinus;
|
||||
float PitchAdjust;
|
||||
uint16 Flags;
|
||||
uint16 SoundEntriesAdvancedID;
|
||||
uint16 BusOverwriteID;
|
||||
uint8 SoundType;
|
||||
uint8 EAXDef;
|
||||
uint8 DialogType;
|
||||
uint8 Unk700;
|
||||
uint32 ID;
|
||||
};
|
||||
|
||||
struct SpecializationSpellsEntry
|
||||
@@ -2307,9 +2327,9 @@ struct SpellAuraOptionsEntry
|
||||
uint32 ProcTypeMask;
|
||||
uint32 ProcCategoryRecovery;
|
||||
uint16 CumulativeAura;
|
||||
uint16 SpellProcsPerMinuteID;
|
||||
uint8 DifficultyID;
|
||||
uint8 ProcChance;
|
||||
uint8 SpellProcsPerMinuteID;
|
||||
};
|
||||
|
||||
struct SpellAuraRestrictionsEntry
|
||||
@@ -2586,8 +2606,8 @@ struct SpellProcsPerMinuteModEntry
|
||||
uint32 ID;
|
||||
float Coeff;
|
||||
uint16 Param;
|
||||
uint16 SpellProcsPerMinuteID;
|
||||
uint8 Type;
|
||||
uint8 SpellProcsPerMinuteID;
|
||||
};
|
||||
|
||||
struct SpellRadiusEntry
|
||||
@@ -2731,15 +2751,19 @@ struct TalentEntry
|
||||
|
||||
struct TaxiNodesEntry
|
||||
{
|
||||
uint32 ID;
|
||||
DBCPosition3D Pos;
|
||||
LocalizedString* Name;
|
||||
uint32 MountCreatureID[2];
|
||||
DBCPosition2D MapOffset;
|
||||
float Unk730;
|
||||
DBCPosition2D FlightMapOffset;
|
||||
uint16 MapID;
|
||||
uint16 ConditionID;
|
||||
uint16 LearnableIndex;
|
||||
uint8 Flags;
|
||||
uint32 ID;
|
||||
int32 UiTextureKitPrefixID;
|
||||
uint32 SpecialAtlasIconPlayerConditionID;
|
||||
};
|
||||
|
||||
struct TaxiPathEntry
|
||||
@@ -2753,14 +2777,14 @@ struct TaxiPathEntry
|
||||
struct TaxiPathNodeEntry
|
||||
{
|
||||
DBCPosition3D Loc;
|
||||
uint32 Delay;
|
||||
uint16 PathID;
|
||||
uint16 MapID;
|
||||
uint8 NodeIndex;
|
||||
uint32 ID;
|
||||
uint8 Flags;
|
||||
uint32 Delay;
|
||||
uint16 ArrivalEventID;
|
||||
uint16 DepartureEventID;
|
||||
uint8 NodeIndex;
|
||||
uint8 Flags;
|
||||
uint32 ID;
|
||||
};
|
||||
|
||||
struct TotemCategoryEntry
|
||||
@@ -2871,24 +2895,13 @@ struct VehicleEntry
|
||||
float CameraPitchOffset;
|
||||
float FacingLimitRight;
|
||||
float FacingLimitLeft;
|
||||
float MsslTrgtTurnLingering;
|
||||
float MsslTrgtPitchLingering;
|
||||
float MsslTrgtMouseLingering;
|
||||
float MsslTrgtEndOpacity;
|
||||
float MsslTrgtArcSpeed;
|
||||
float MsslTrgtArcRepeat;
|
||||
float MsslTrgtArcWidth;
|
||||
float MsslTrgtImpactRadius[2];
|
||||
char const* MsslTrgtArcTexture;
|
||||
char const* MsslTrgtImpactTexture;
|
||||
char const* MsslTrgtImpactModel[2];
|
||||
float CameraYawOffset;
|
||||
float MsslTrgtImpactTexRadius;
|
||||
uint16 SeatID[MAX_VEHICLE_SEATS];
|
||||
uint16 VehicleUIIndicatorID;
|
||||
uint16 PowerDisplayID[3];
|
||||
uint8 FlagsB;
|
||||
uint8 UILocomotionType;
|
||||
int32 MissileTargetingID;
|
||||
};
|
||||
|
||||
struct VehicleSeatEntry
|
||||
@@ -3007,12 +3020,12 @@ struct WorldMapAreaEntry
|
||||
float LocRight;
|
||||
float LocTop;
|
||||
float LocBottom;
|
||||
uint32 Flags;
|
||||
uint16 MapID;
|
||||
uint16 AreaID;
|
||||
int16 DisplayMapID;
|
||||
int16 DefaultDungeonFloor;
|
||||
uint16 ParentWorldMapID;
|
||||
uint16 Flags;
|
||||
uint8 LevelRangeMin;
|
||||
uint8 LevelRangeMax;
|
||||
uint8 BountySetID;
|
||||
@@ -3054,6 +3067,7 @@ struct WorldMapTransformsEntry
|
||||
uint16 NewDungeonMapID;
|
||||
uint16 NewAreaID;
|
||||
uint8 Flags;
|
||||
int32 Priority;
|
||||
};
|
||||
|
||||
struct WorldSafeLocsEntry
|
||||
|
||||
@@ -155,7 +155,7 @@ enum ArtifactPowerFlag : uint8
|
||||
ARTIFACT_POWER_FLAG_DONT_COUNT_FIRST_BONUS_RANK = 0x10,
|
||||
};
|
||||
|
||||
#define BATTLE_PET_SPECIES_MAX_ID 2073
|
||||
#define BATTLE_PET_SPECIES_MAX_ID 2137
|
||||
|
||||
enum ChrSpecializationFlag
|
||||
{
|
||||
@@ -487,10 +487,13 @@ enum CriteriaTypes : uint8
|
||||
// 202 - 0 criterias (Legion - 23420)
|
||||
CRITERIA_TYPE_COMPLETE_WORLD_QUEST = 203,
|
||||
// 204 - Special criteria type to award players for some external events? Comes with what looks like an identifier, so guessing it's not unique.
|
||||
CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED = 205
|
||||
CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED = 205,
|
||||
CRITERIA_TYPE_GAIN_PARAGON_REPUTATION = 206,
|
||||
CRITERIA_TYPE_EARN_HONOR_XP = 207,
|
||||
CRITERIA_TYPE_RELIC_TALENT_UNLOCKED = 211
|
||||
};
|
||||
|
||||
#define CRITERIA_TYPE_TOTAL 208
|
||||
#define CRITERIA_TYPE_TOTAL 212
|
||||
|
||||
enum CriteriaTreeFlags : uint16
|
||||
{
|
||||
@@ -592,6 +595,7 @@ enum Difficulty : uint8
|
||||
DIFFICULTY_EVENT_SCENARIO_6 = 30,
|
||||
DIFFICULTY_WORLD_PVP_SCENARIO_2 = 32,
|
||||
DIFFICULTY_TIMEWALKING_RAID = 33,
|
||||
DIFFICULTY_PVP = 34,
|
||||
|
||||
MAX_DIFFICULTY
|
||||
};
|
||||
@@ -644,7 +648,7 @@ enum FactionMasks
|
||||
// if none flags set then non-aggressive creature
|
||||
};
|
||||
|
||||
#define MAX_ITEM_PROTO_FLAGS 3
|
||||
#define MAX_ITEM_PROTO_FLAGS 4
|
||||
#define MAX_ITEM_PROTO_SOCKETS 3
|
||||
#define MAX_ITEM_PROTO_STATS 10
|
||||
|
||||
@@ -883,7 +887,7 @@ enum SpellShapeshiftFormFlags
|
||||
SHAPESHIFT_FORM_PREVENT_EMOTE_SOUNDS = 0x1000
|
||||
};
|
||||
|
||||
#define TaxiMaskSize 243
|
||||
#define TaxiMaskSize 253
|
||||
typedef std::array<uint8, TaxiMaskSize> TaxiMask;
|
||||
|
||||
enum TotemCategoryType
|
||||
@@ -1028,4 +1032,9 @@ enum CurrencyTypes
|
||||
CURRENCY_TYPE_ARTIFACT_KNOWLEDGE = 1171,
|
||||
};
|
||||
|
||||
enum WorldMapTransformsFlags
|
||||
{
|
||||
WORLD_MAP_TRANSFORMS_FLAG_DUNGEON = 0x04
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -48,7 +48,7 @@ requiredItemLevel(0)
|
||||
{
|
||||
}
|
||||
|
||||
LFGDungeonData::LFGDungeonData(LfgDungeonsEntry const* dbc) : id(dbc->ID), name(dbc->Name->Str[sWorld->GetDefaultDbcLocale()]), map(dbc->MapID),
|
||||
LFGDungeonData::LFGDungeonData(LFGDungeonsEntry const* dbc) : id(dbc->ID), name(dbc->Name->Str[sWorld->GetDefaultDbcLocale()]), map(dbc->MapID),
|
||||
type(uint8(dbc->Type)), expansion(uint8(dbc->Expansion)), group(uint8(dbc->GroupID)),
|
||||
minlevel(uint8(dbc->MinLevel)), maxlevel(uint8(dbc->MaxLevel)), difficulty(Difficulty(dbc->DifficultyID)),
|
||||
seasonal((dbc->Flags & LFG_FLAG_SEASONAL) != 0), x(0.0f), y(0.0f), z(0.0f), o(0.0f),
|
||||
@@ -193,9 +193,9 @@ void LFGMgr::LoadLFGDungeons(bool reload /* = false */)
|
||||
LfgDungeonStore.clear();
|
||||
|
||||
// Initialize Dungeon map with data from dbcs
|
||||
for (uint32 i = 0; i < sLfgDungeonsStore.GetNumRows(); ++i)
|
||||
for (uint32 i = 0; i < sLFGDungeonsStore.GetNumRows(); ++i)
|
||||
{
|
||||
LfgDungeonsEntry const* dungeon = sLfgDungeonsStore.LookupEntry(i);
|
||||
LFGDungeonsEntry const* dungeon = sLFGDungeonsStore.LookupEntry(i);
|
||||
if (!dungeon)
|
||||
continue;
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
class Group;
|
||||
class Player;
|
||||
class Quest;
|
||||
struct LfgDungeonsEntry;
|
||||
struct LFGDungeonsEntry;
|
||||
enum Difficulty : uint8;
|
||||
|
||||
namespace WorldPackets
|
||||
@@ -289,7 +289,7 @@ struct LfgPlayerBoot
|
||||
struct LFGDungeonData
|
||||
{
|
||||
LFGDungeonData();
|
||||
LFGDungeonData(LfgDungeonsEntry const* dbc);
|
||||
LFGDungeonData(LFGDungeonsEntry const* dbc);
|
||||
|
||||
uint32 id;
|
||||
std::string name;
|
||||
|
||||
@@ -713,6 +713,7 @@ struct TC_GAME_API ItemTemplate
|
||||
uint32 GetFlags() const { return ExtendedData->Flags[0]; }
|
||||
uint32 GetFlags2() const { return ExtendedData->Flags[1]; }
|
||||
uint32 GetFlags3() const { return ExtendedData->Flags[2]; }
|
||||
uint32 GetFlags4() const { return ExtendedData->Flags[3]; }
|
||||
float GetUnk1() const { return ExtendedData->Unk1; }
|
||||
float GetUnk2() const { return ExtendedData->Unk2; }
|
||||
uint32 GetBuyCount() const { return std::max<uint32>(ExtendedData->BuyCount, 1u); }
|
||||
|
||||
@@ -6115,7 +6115,7 @@ void Player::RewardReputation(Unit* victim, float rate)
|
||||
// support for: Championing - http://www.wowwiki.com/Championing
|
||||
Map const* map = GetMap();
|
||||
if (map->IsNonRaidDungeon())
|
||||
if (LfgDungeonsEntry const* dungeon = DB2Manager::GetLfgDungeon(map->GetId(), map->GetDifficultyID()))
|
||||
if (LFGDungeonsEntry const* dungeon = DB2Manager::GetLfgDungeon(map->GetId(), map->GetDifficultyID()))
|
||||
if (dungeon->TargetLevel == 80)
|
||||
ChampioningFaction = GetChampioningFaction();
|
||||
}
|
||||
|
||||
@@ -468,7 +468,7 @@ enum PlayerFieldBytesOffsets
|
||||
PLAYER_FIELD_BYTES_OFFSET_RAF_GRANTABLE_LEVEL = 0,
|
||||
PLAYER_FIELD_BYTES_OFFSET_ACTION_BAR_TOGGLES = 1,
|
||||
PLAYER_FIELD_BYTES_OFFSET_LIFETIME_MAX_PVP_RANK = 2,
|
||||
PLAYER_FIELD_BYTES_OFFSET_MAX_ARTIFACT_POWER_RANKS = 3,
|
||||
PLAYER_FIELD_BYTES_OFFSET_NUM_RESPECS = 3,
|
||||
};
|
||||
|
||||
enum PlayerFieldBytes2Offsets
|
||||
|
||||
@@ -1504,7 +1504,7 @@ void Group::SendUpdateToPlayer(ObjectGuid playerGUID, MemberSlot* slot)
|
||||
{
|
||||
lfg::LfgDungeonSet const& selectedDungeons = sLFGMgr->GetSelectedDungeons(player->GetGUID());
|
||||
if (selectedDungeons.size() == 1)
|
||||
if (LfgDungeonsEntry const* dungeon = sLfgDungeonsStore.LookupEntry(*selectedDungeons.begin()))
|
||||
if (LFGDungeonsEntry const* dungeon = sLFGDungeonsStore.LookupEntry(*selectedDungeons.begin()))
|
||||
if (dungeon->Type == lfg::LFG_TYPE_RANDOM)
|
||||
return dungeon->ID;
|
||||
|
||||
@@ -1806,7 +1806,7 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const*
|
||||
if (!reference)
|
||||
return ERR_BATTLEGROUND_JOIN_FAILED;
|
||||
|
||||
PvpDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bgOrTemplate->GetMapId(), reference->getLevel());
|
||||
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bgOrTemplate->GetMapId(), reference->getLevel());
|
||||
if (!bracketEntry)
|
||||
return ERR_BATTLEGROUND_JOIN_FAILED;
|
||||
|
||||
@@ -1830,7 +1830,7 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const*
|
||||
return ERR_BATTLEGROUND_JOIN_TIMED_OUT;
|
||||
}
|
||||
// not in the same battleground level braket, don't let join
|
||||
PvpDifficultyEntry const* memberBracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bracketEntry->MapID, member->getLevel());
|
||||
PVPDifficultyEntry const* memberBracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bracketEntry->MapID, member->getLevel());
|
||||
if (memberBracketEntry != bracketEntry)
|
||||
return ERR_BATTLEGROUND_JOIN_RANGE_INDEX;
|
||||
// don't let join rated matches if the arena team id doesn't match
|
||||
|
||||
@@ -94,7 +94,7 @@ void WorldSession::HandleBattlemasterJoinOpcode(WorldPackets::Battleground::Batt
|
||||
return;
|
||||
|
||||
// expected bracket entry
|
||||
PvpDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bg->GetMapId(), _player->getLevel());
|
||||
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bg->GetMapId(), _player->getLevel());
|
||||
if (!bracketEntry)
|
||||
return;
|
||||
|
||||
@@ -313,7 +313,7 @@ void WorldSession::HandleBattleFieldPortOpcode(WorldPackets::Battleground::Battl
|
||||
bgTypeId = bg->GetTypeID();
|
||||
|
||||
// expected bracket entry
|
||||
PvpDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bg->GetMapId(), _player->getLevel());
|
||||
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bg->GetMapId(), _player->getLevel());
|
||||
if (!bracketEntry)
|
||||
return;
|
||||
|
||||
@@ -474,7 +474,7 @@ void WorldSession::HandleRequestBattlefieldStatusOpcode(WorldPackets::Battlegrou
|
||||
continue;
|
||||
|
||||
// expected bracket entry
|
||||
PvpDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bg->GetMapId(), _player->getLevel());
|
||||
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bg->GetMapId(), _player->getLevel());
|
||||
if (!bracketEntry)
|
||||
continue;
|
||||
|
||||
@@ -510,7 +510,7 @@ void WorldSession::HandleBattlemasterJoinArena(WorldPackets::Battleground::Battl
|
||||
|
||||
BattlegroundTypeId bgTypeId = bg->GetTypeID();
|
||||
BattlegroundQueueTypeId bgQueueTypeId = BattlegroundMgr::BGQueueTypeId(bgTypeId, arenatype);
|
||||
PvpDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bg->GetMapId(), _player->getLevel());
|
||||
PVPDifficultyEntry const* bracketEntry = DB2Manager::GetBattlegroundBracketByLevel(bg->GetMapId(), _player->getLevel());
|
||||
if (!bracketEntry)
|
||||
return;
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ void WorldSession::HandleLfgJoinOpcode(WorldPackets::LFG::DFJoin& dfJoin)
|
||||
for (uint32 slot : dfJoin.Slots)
|
||||
{
|
||||
uint32 dungeon = slot & 0x00FFFFFF;
|
||||
if (sLfgDungeonsStore.LookupEntry(dungeon))
|
||||
if (sLFGDungeonsStore.LookupEntry(dungeon))
|
||||
newDungeons.insert(dungeon);
|
||||
}
|
||||
|
||||
|
||||
@@ -2281,6 +2281,7 @@ enum Targets
|
||||
TARGET_UNK_146 = 146,
|
||||
TARGET_UNK_147 = 147,
|
||||
TARGET_UNK_148 = 148,
|
||||
TARGET_UNK_149 = 149,
|
||||
TOTAL_SPELL_TARGETS
|
||||
};
|
||||
|
||||
|
||||
@@ -366,6 +366,7 @@ SpellImplicitTargetInfo::StaticData SpellImplicitTargetInfo::_data[TOTAL_SPELL_
|
||||
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 146
|
||||
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 147
|
||||
{TARGET_OBJECT_TYPE_NONE, TARGET_REFERENCE_TYPE_NONE, TARGET_SELECT_CATEGORY_NYI, TARGET_CHECK_DEFAULT, TARGET_DIR_NONE}, // 148
|
||||
{TARGET_OBJECT_TYPE_DEST, TARGET_REFERENCE_TYPE_CASTER, TARGET_SELECT_CATEGORY_DEFAULT, TARGET_CHECK_DEFAULT, TARGET_DIR_RANDOM}, // 149
|
||||
};
|
||||
|
||||
SpellEffectInfo::SpellEffectInfo(SpellEffectScalingEntry const* spellEffectScaling, SpellInfo const* spellInfo, uint8 effIndex, SpellEffectEntry const* _effect)
|
||||
|
||||
Reference in New Issue
Block a user