diff options
26 files changed, 55 insertions, 3433 deletions
diff --git a/sql/updates/hotfixes/cata_classic/2024_06_25_00_hotfixes.sql b/sql/updates/hotfixes/cata_classic/2024_06_25_00_hotfixes.sql new file mode 100644 index 00000000000..913efdf3de5 --- /dev/null +++ b/sql/updates/hotfixes/cata_classic/2024_06_25_00_hotfixes.sql @@ -0,0 +1,50 @@ +DROP TABLE IF EXISTS `adventure_journal`; +DROP TABLE IF EXISTS `adventure_journal_locale`; +DROP TABLE IF EXISTS `adventure_map_poi`; +DROP TABLE IF EXISTS `adventure_map_poi_locale`; +DROP TABLE IF EXISTS `artifact`; +DROP TABLE IF EXISTS `artifact_appearance`; +DROP TABLE IF EXISTS `artifact_appearance_locale`; +DROP TABLE IF EXISTS `artifact_appearance_set`; +DROP TABLE IF EXISTS `artifact_appearance_set_locale`; +DROP TABLE IF EXISTS `artifact_category`; +DROP TABLE IF EXISTS `artifact_locale`; +DROP TABLE IF EXISTS `artifact_power`; +DROP TABLE IF EXISTS `artifact_power_link`; +DROP TABLE IF EXISTS `artifact_power_picker`; +DROP TABLE IF EXISTS `artifact_power_rank`; +DROP TABLE IF EXISTS `artifact_quest_xp`; +DROP TABLE IF EXISTS `artifact_tier`; +DROP TABLE IF EXISTS `artifact_unlock`; +DROP TABLE IF EXISTS `azerite_empowered_item`; +DROP TABLE IF EXISTS `azerite_essence`; +DROP TABLE IF EXISTS `azerite_essence_locale`; +DROP TABLE IF EXISTS `azerite_essence_power`; +DROP TABLE IF EXISTS `azerite_essence_power_locale`; +DROP TABLE IF EXISTS `azerite_item`; +DROP TABLE IF EXISTS `azerite_item_milestone_power`; +DROP TABLE IF EXISTS `azerite_knowledge_multiplier`; +DROP TABLE IF EXISTS `azerite_level_info`; +DROP TABLE IF EXISTS `azerite_power`; +DROP TABLE IF EXISTS `azerite_power_set_member`; +DROP TABLE IF EXISTS `azerite_tier_unlock`; +DROP TABLE IF EXISTS `azerite_tier_unlock_set`; +DROP TABLE IF EXISTS `garr_ability`; +DROP TABLE IF EXISTS `garr_ability_locale`; +DROP TABLE IF EXISTS `garr_building`; +DROP TABLE IF EXISTS `garr_building_locale`; +DROP TABLE IF EXISTS `garr_building_plot_inst`; +DROP TABLE IF EXISTS `garr_class_spec`; +DROP TABLE IF EXISTS `garr_class_spec_locale`; +DROP TABLE IF EXISTS `garr_follower`; +DROP TABLE IF EXISTS `garr_follower_locale`; +DROP TABLE IF EXISTS `garr_follower_x_ability`; +DROP TABLE IF EXISTS `garr_mission`; +DROP TABLE IF EXISTS `garr_mission_locale`; +DROP TABLE IF EXISTS `garr_plot`; +DROP TABLE IF EXISTS `garr_plot_building`; +DROP TABLE IF EXISTS `garr_plot_instance`; +DROP TABLE IF EXISTS `garr_site_level`; +DROP TABLE IF EXISTS `garr_site_level_plot_inst`; +DROP TABLE IF EXISTS `garr_talent_tree`; +DROP TABLE IF EXISTS `garr_talent_tree_locale`; diff --git a/src/server/database/Database/Implementation/HotfixDatabase.cpp b/src/server/database/Database/Implementation/HotfixDatabase.cpp index 0f2aa515a65..9302f0d6cb4 100644 --- a/src/server/database/Database/Implementation/HotfixDatabase.cpp +++ b/src/server/database/Database/Implementation/HotfixDatabase.cpp @@ -49,22 +49,6 @@ void HotfixDatabaseConnection::DoPrepareStatements() PREPARE_LOCALE_STMT(HOTFIX_SEL_ACHIEVEMENT_CATEGORY, "SELECT ID, Name_lang FROM achievement_category_locale WHERE (`VerifiedBuild` > 0) = ?" " AND locale = ?", CONNECTION_SYNCH); - // AdventureJournal.db2 - PrepareStatement(HOTFIX_SEL_ADVENTURE_JOURNAL, "SELECT ID, Name, Description, ButtonText, RewardDescription, ContinueDescription, Type, " - "PlayerConditionID, Flags, ButtonActionType, TextureFileDataID, LfgDungeonID, QuestID, BattleMasterListID, PriorityMin, PriorityMax, ItemID, " - "ItemQuantity, CurrencyType, CurrencyQuantity, UiMapID, BonusPlayerConditionID1, BonusPlayerConditionID2, BonusValue1, BonusValue2" - " FROM adventure_journal WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ADVENTURE_JOURNAL, "SELECT MAX(ID) + 1 FROM adventure_journal", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_ADVENTURE_JOURNAL, "SELECT ID, Name_lang, Description_lang, ButtonText_lang, RewardDescription_lang, " - "ContinueDescription_lang FROM adventure_journal_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - - // AdventureMapPoi.db2 - PrepareStatement(HOTFIX_SEL_ADVENTURE_MAP_POI, "SELECT ID, Title, Description, WorldPositionX, WorldPositionY, Type, PlayerConditionID, QuestID, " - "LfgDungeonID, RewardItemID, UiTextureAtlasMemberID, UiTextureKitID, MapID, AreaTableID FROM adventure_map_poi WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ADVENTURE_MAP_POI, "SELECT MAX(ID) + 1 FROM adventure_map_poi", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_ADVENTURE_MAP_POI, "SELECT ID, Title_lang, Description_lang FROM adventure_map_poi_locale" - " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - // AnimationData.db2 PrepareStatement(HOTFIX_SEL_ANIMATION_DATA, "SELECT ID, Fallback, BehaviorTier, BehaviorID, Flags1, Flags2 FROM animation_data" " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); @@ -102,125 +86,12 @@ void HotfixDatabaseConnection::DoPrepareStatements() " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARMOR_LOCATION, "SELECT MAX(ID) + 1 FROM armor_location", CONNECTION_SYNCH); - // Artifact.db2 - PrepareStatement(HOTFIX_SEL_ARTIFACT, "SELECT Name, ID, UiTextureKitID, UiNameColor, UiBarOverlayColor, UiBarBackgroundColor, " - "ChrSpecializationID, Flags, ArtifactCategoryID, UiModelSceneID, SpellVisualKitID FROM artifact WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT, "SELECT MAX(ID) + 1 FROM artifact", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_ARTIFACT, "SELECT ID, Name_lang FROM artifact_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - - // ArtifactAppearance.db2 - PrepareStatement(HOTFIX_SEL_ARTIFACT_APPEARANCE, "SELECT Name, ID, ArtifactAppearanceSetID, DisplayIndex, UnlockPlayerConditionID, " - "ItemAppearanceModifierID, UiSwatchColor, UiModelSaturation, UiModelOpacity, OverrideShapeshiftFormID, OverrideShapeshiftDisplayID, " - "UiItemAppearanceID, UiAltItemAppearanceID, Flags, UiCameraID FROM artifact_appearance WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT_APPEARANCE, "SELECT MAX(ID) + 1 FROM artifact_appearance", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_ARTIFACT_APPEARANCE, "SELECT ID, Name_lang FROM artifact_appearance_locale WHERE (`VerifiedBuild` > 0) = ?" - " AND locale = ?", CONNECTION_SYNCH); - - // ArtifactAppearanceSet.db2 - PrepareStatement(HOTFIX_SEL_ARTIFACT_APPEARANCE_SET, "SELECT Name, Description, ID, DisplayIndex, UiCameraID, AltHandUICameraID, " - "ForgeAttachmentOverride, Flags, ArtifactID FROM artifact_appearance_set WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT_APPEARANCE_SET, "SELECT MAX(ID) + 1 FROM artifact_appearance_set", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_ARTIFACT_APPEARANCE_SET, "SELECT ID, Name_lang, Description_lang FROM artifact_appearance_set_locale" - " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - - // ArtifactCategory.db2 - PrepareStatement(HOTFIX_SEL_ARTIFACT_CATEGORY, "SELECT ID, XpMultCurrencyID, XpMultCurveID FROM artifact_category WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT_CATEGORY, "SELECT MAX(ID) + 1 FROM artifact_category", CONNECTION_SYNCH); - - // ArtifactPower.db2 - PrepareStatement(HOTFIX_SEL_ARTIFACT_POWER, "SELECT DisplayPosX, DisplayPosY, ID, ArtifactID, MaxPurchasableRank, Label, Flags, Tier" - " FROM artifact_power WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT_POWER, "SELECT MAX(ID) + 1 FROM artifact_power", CONNECTION_SYNCH); - - // ArtifactPowerLink.db2 - PrepareStatement(HOTFIX_SEL_ARTIFACT_POWER_LINK, "SELECT ID, PowerA, PowerB FROM artifact_power_link WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT_POWER_LINK, "SELECT MAX(ID) + 1 FROM artifact_power_link", CONNECTION_SYNCH); - - // ArtifactPowerPicker.db2 - PrepareStatement(HOTFIX_SEL_ARTIFACT_POWER_PICKER, "SELECT ID, PlayerConditionID FROM artifact_power_picker WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT_POWER_PICKER, "SELECT MAX(ID) + 1 FROM artifact_power_picker", CONNECTION_SYNCH); - - // ArtifactPowerRank.db2 - PrepareStatement(HOTFIX_SEL_ARTIFACT_POWER_RANK, "SELECT ID, RankIndex, SpellID, ItemBonusListID, AuraPointsOverride, ArtifactPowerID" - " FROM artifact_power_rank WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT_POWER_RANK, "SELECT MAX(ID) + 1 FROM artifact_power_rank", CONNECTION_SYNCH); - - // ArtifactQuestXp.db2 - PrepareStatement(HOTFIX_SEL_ARTIFACT_QUEST_XP, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, " - "Difficulty7, Difficulty8, Difficulty9, Difficulty10 FROM artifact_quest_xp WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT_QUEST_XP, "SELECT MAX(ID) + 1 FROM artifact_quest_xp", CONNECTION_SYNCH); - - // ArtifactTier.db2 - PrepareStatement(HOTFIX_SEL_ARTIFACT_TIER, "SELECT ID, ArtifactTier, MaxNumTraits, MaxArtifactKnowledge, KnowledgePlayerCondition, " - "MinimumEmpowerKnowledge FROM artifact_tier WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT_TIER, "SELECT MAX(ID) + 1 FROM artifact_tier", CONNECTION_SYNCH); - - // ArtifactUnlock.db2 - PrepareStatement(HOTFIX_SEL_ARTIFACT_UNLOCK, "SELECT ID, PowerID, PowerRank, ItemBonusListID, PlayerConditionID, ArtifactID FROM artifact_unlock" - " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT_UNLOCK, "SELECT MAX(ID) + 1 FROM artifact_unlock", CONNECTION_SYNCH); - // AuctionHouse.db2 PrepareStatement(HOTFIX_SEL_AUCTION_HOUSE, "SELECT ID, Name, FactionID, DepositRate, ConsignmentRate FROM auction_house" " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_AUCTION_HOUSE, "SELECT MAX(ID) + 1 FROM auction_house", CONNECTION_SYNCH); PREPARE_LOCALE_STMT(HOTFIX_SEL_AUCTION_HOUSE, "SELECT ID, Name_lang FROM auction_house_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - // AzeriteEmpoweredItem.db2 - PrepareStatement(HOTFIX_SEL_AZERITE_EMPOWERED_ITEM, "SELECT ID, ItemID, AzeriteTierUnlockSetID, AzeritePowerSetID FROM azerite_empowered_item" - " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_EMPOWERED_ITEM, "SELECT MAX(ID) + 1 FROM azerite_empowered_item", CONNECTION_SYNCH); - - // AzeriteEssence.db2 - PrepareStatement(HOTFIX_SEL_AZERITE_ESSENCE, "SELECT ID, Name, Description, SpecSetID FROM azerite_essence WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_ESSENCE, "SELECT MAX(ID) + 1 FROM azerite_essence", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_AZERITE_ESSENCE, "SELECT ID, Name_lang, Description_lang FROM azerite_essence_locale" - " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - - // AzeriteEssencePower.db2 - PrepareStatement(HOTFIX_SEL_AZERITE_ESSENCE_POWER, "SELECT ID, SourceAlliance, SourceHorde, AzeriteEssenceID, Tier, MajorPowerDescription, " - "MinorPowerDescription, MajorPowerActual, MinorPowerActual FROM azerite_essence_power WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_ESSENCE_POWER, "SELECT MAX(ID) + 1 FROM azerite_essence_power", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_AZERITE_ESSENCE_POWER, "SELECT ID, SourceAlliance_lang, SourceHorde_lang FROM azerite_essence_power_locale" - " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - - // AzeriteItem.db2 - PrepareStatement(HOTFIX_SEL_AZERITE_ITEM, "SELECT ID, ItemID FROM azerite_item WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_ITEM, "SELECT MAX(ID) + 1 FROM azerite_item", CONNECTION_SYNCH); - - // AzeriteItemMilestonePower.db2 - PrepareStatement(HOTFIX_SEL_AZERITE_ITEM_MILESTONE_POWER, "SELECT ID, RequiredLevel, AzeritePowerID, Type, AutoUnlock" - " FROM azerite_item_milestone_power WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_ITEM_MILESTONE_POWER, "SELECT MAX(ID) + 1 FROM azerite_item_milestone_power", CONNECTION_SYNCH); - - // AzeriteKnowledgeMultiplier.db2 - PrepareStatement(HOTFIX_SEL_AZERITE_KNOWLEDGE_MULTIPLIER, "SELECT ID, Multiplier FROM azerite_knowledge_multiplier WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_KNOWLEDGE_MULTIPLIER, "SELECT MAX(ID) + 1 FROM azerite_knowledge_multiplier", CONNECTION_SYNCH); - - // AzeriteLevelInfo.db2 - PrepareStatement(HOTFIX_SEL_AZERITE_LEVEL_INFO, "SELECT ID, BaseExperienceToNextLevel, MinimumExperienceToNextLevel, ItemLevel" - " FROM azerite_level_info WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_LEVEL_INFO, "SELECT MAX(ID) + 1 FROM azerite_level_info", CONNECTION_SYNCH); - - // AzeritePower.db2 - PrepareStatement(HOTFIX_SEL_AZERITE_POWER, "SELECT ID, SpellID, ItemBonusListID, SpecSetID, Flags FROM azerite_power" - " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_POWER, "SELECT MAX(ID) + 1 FROM azerite_power", CONNECTION_SYNCH); - - // AzeritePowerSetMember.db2 - PrepareStatement(HOTFIX_SEL_AZERITE_POWER_SET_MEMBER, "SELECT ID, AzeritePowerSetID, AzeritePowerID, Class, Tier, OrderIndex" - " FROM azerite_power_set_member WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_POWER_SET_MEMBER, "SELECT MAX(ID) + 1 FROM azerite_power_set_member", CONNECTION_SYNCH); - - // AzeriteTierUnlock.db2 - PrepareStatement(HOTFIX_SEL_AZERITE_TIER_UNLOCK, "SELECT ID, ItemCreationContext, Tier, AzeriteLevel, AzeriteTierUnlockSetID" - " FROM azerite_tier_unlock WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_TIER_UNLOCK, "SELECT MAX(ID) + 1 FROM azerite_tier_unlock", CONNECTION_SYNCH); - - // AzeriteTierUnlockSet.db2 - PrepareStatement(HOTFIX_SEL_AZERITE_TIER_UNLOCK_SET, "SELECT ID, Flags FROM azerite_tier_unlock_set WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_TIER_UNLOCK_SET, "SELECT MAX(ID) + 1 FROM azerite_tier_unlock_set", CONNECTION_SYNCH); - // BankBagSlotPrices.db2 PrepareStatement(HOTFIX_SEL_BANK_BAG_SLOT_PRICES, "SELECT ID, Cost FROM bank_bag_slot_prices WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_BANK_BAG_SLOT_PRICES, "SELECT MAX(ID) + 1 FROM bank_bag_slot_prices", CONNECTION_SYNCH); @@ -621,89 +492,6 @@ void HotfixDatabaseConnection::DoPrepareStatements() PREPARE_MAX_ID_STMT(HOTFIX_SEL_GAMEOBJECTS, "SELECT MAX(ID) + 1 FROM gameobjects", CONNECTION_SYNCH); PREPARE_LOCALE_STMT(HOTFIX_SEL_GAMEOBJECTS, "SELECT ID, Name_lang FROM gameobjects_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - // GarrAbility.db2 - PrepareStatement(HOTFIX_SEL_GARR_ABILITY, "SELECT Name, Description, ID, GarrAbilityCategoryID, GarrFollowerTypeID, IconFileDataID, " - "FactionChangeGarrAbilityID, Flags FROM garr_ability WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_ABILITY, "SELECT MAX(ID) + 1 FROM garr_ability", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_ABILITY, "SELECT ID, Name_lang, Description_lang FROM garr_ability_locale WHERE (`VerifiedBuild` > 0) = ?" - " AND locale = ?", CONNECTION_SYNCH); - - // GarrBuilding.db2 - PrepareStatement(HOTFIX_SEL_GARR_BUILDING, "SELECT ID, HordeName, AllianceName, Description, Tooltip, GarrTypeID, BuildingType, " - "HordeGameObjectID, AllianceGameObjectID, GarrSiteID, UpgradeLevel, BuildSeconds, CurrencyTypeID, CurrencyQty, HordeUiTextureKitID, " - "AllianceUiTextureKitID, IconFileDataID, AllianceSceneScriptPackageID, HordeSceneScriptPackageID, MaxAssignments, ShipmentCapacity, " - "GarrAbilityID, BonusGarrAbilityID, GoldCost, Flags FROM garr_building WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_BUILDING, "SELECT MAX(ID) + 1 FROM garr_building", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_BUILDING, "SELECT ID, HordeName_lang, AllianceName_lang, Description_lang, Tooltip_lang" - " FROM garr_building_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - - // GarrBuildingPlotInst.db2 - PrepareStatement(HOTFIX_SEL_GARR_BUILDING_PLOT_INST, "SELECT MapOffsetX, MapOffsetY, ID, GarrBuildingID, GarrSiteLevelPlotInstID, " - "UiTextureAtlasMemberID FROM garr_building_plot_inst WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_BUILDING_PLOT_INST, "SELECT MAX(ID) + 1 FROM garr_building_plot_inst", CONNECTION_SYNCH); - - // GarrClassSpec.db2 - PrepareStatement(HOTFIX_SEL_GARR_CLASS_SPEC, "SELECT ClassSpec, ClassSpecMale, ClassSpecFemale, ID, UiTextureAtlasMemberID, GarrFollItemSetID, " - "FollowerClassLimit, Flags FROM garr_class_spec WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_CLASS_SPEC, "SELECT MAX(ID) + 1 FROM garr_class_spec", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_CLASS_SPEC, "SELECT ID, ClassSpec_lang, ClassSpecMale_lang, ClassSpecFemale_lang FROM garr_class_spec_locale" - " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - - // GarrFollower.db2 - PrepareStatement(HOTFIX_SEL_GARR_FOLLOWER, "SELECT HordeSourceText, AllianceSourceText, TitleName, ID, GarrTypeID, GarrFollowerTypeID, " - "HordeCreatureID, AllianceCreatureID, HordeGarrFollRaceID, AllianceGarrFollRaceID, HordeGarrClassSpecID, AllianceGarrClassSpecID, Quality, " - "FollowerLevel, ItemLevelWeapon, ItemLevelArmor, HordeSourceTypeEnum, AllianceSourceTypeEnum, HordeIconFileDataID, AllianceIconFileDataID, " - "HordeGarrFollItemSetID, AllianceGarrFollItemSetID, HordeUITextureKitID, AllianceUITextureKitID, Vitality, HordeFlavorGarrStringID, " - "AllianceFlavorGarrStringID, HordeSlottingBroadcastTextID, AllySlottingBroadcastTextID, ChrClassID, Flags, Gender FROM garr_follower" - " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_FOLLOWER, "SELECT MAX(ID) + 1 FROM garr_follower", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_FOLLOWER, "SELECT ID, HordeSourceText_lang, AllianceSourceText_lang, TitleName_lang FROM garr_follower_locale" - " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - - // GarrFollowerXAbility.db2 - PrepareStatement(HOTFIX_SEL_GARR_FOLLOWER_X_ABILITY, "SELECT ID, OrderIndex, FactionIndex, GarrAbilityID, GarrFollowerID" - " FROM garr_follower_x_ability WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_FOLLOWER_X_ABILITY, "SELECT MAX(ID) + 1 FROM garr_follower_x_ability", CONNECTION_SYNCH); - - // GarrMission.db2 - PrepareStatement(HOTFIX_SEL_GARR_MISSION, "SELECT Name, Location, Description, MapPosX, MapPosY, WorldPosX, WorldPosY, ID, GarrTypeID, " - "GarrMissionTypeID, GarrFollowerTypeID, MaxFollowers, MissionCost, MissionCostCurrencyTypesID, OfferedGarrMissionTextureID, UiTextureKitID, " - "EnvGarrMechanicID, EnvGarrMechanicTypeID, PlayerConditionID, TargetLevel, TargetItemLevel, MissionDuration, TravelDuration, OfferDuration, " - "BaseCompletionChance, BaseFollowerXP, OvermaxRewardPackID, FollowerDeathChance, AreaID, Flags, GarrMissionSetID FROM garr_mission" - " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_MISSION, "SELECT MAX(ID) + 1 FROM garr_mission", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_MISSION, "SELECT ID, Name_lang, Location_lang, Description_lang FROM garr_mission_locale" - " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - - // GarrPlot.db2 - PrepareStatement(HOTFIX_SEL_GARR_PLOT, "SELECT ID, Name, PlotType, HordeConstructObjID, AllianceConstructObjID, Flags, UiCategoryID, " - "UpgradeRequirement1, UpgradeRequirement2 FROM garr_plot WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_PLOT, "SELECT MAX(ID) + 1 FROM garr_plot", CONNECTION_SYNCH); - - // GarrPlotBuilding.db2 - PrepareStatement(HOTFIX_SEL_GARR_PLOT_BUILDING, "SELECT ID, GarrPlotID, GarrBuildingID FROM garr_plot_building WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_PLOT_BUILDING, "SELECT MAX(ID) + 1 FROM garr_plot_building", CONNECTION_SYNCH); - - // GarrPlotInstance.db2 - PrepareStatement(HOTFIX_SEL_GARR_PLOT_INSTANCE, "SELECT ID, Name, GarrPlotID FROM garr_plot_instance WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_PLOT_INSTANCE, "SELECT MAX(ID) + 1 FROM garr_plot_instance", CONNECTION_SYNCH); - - // GarrSiteLevel.db2 - PrepareStatement(HOTFIX_SEL_GARR_SITE_LEVEL, "SELECT ID, TownHallUiPosX, TownHallUiPosY, GarrSiteID, GarrLevel, MapID, UpgradeMovieID, " - "UiTextureKitID, MaxBuildingLevel, UpgradeCost, UpgradeGoldCost FROM garr_site_level WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_SITE_LEVEL, "SELECT MAX(ID) + 1 FROM garr_site_level", CONNECTION_SYNCH); - - // GarrSiteLevelPlotInst.db2 - PrepareStatement(HOTFIX_SEL_GARR_SITE_LEVEL_PLOT_INST, "SELECT ID, UiMarkerPosX, UiMarkerPosY, GarrSiteLevelID, GarrPlotInstanceID, UiMarkerSize" - " FROM garr_site_level_plot_inst WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_SITE_LEVEL_PLOT_INST, "SELECT MAX(ID) + 1 FROM garr_site_level_plot_inst", CONNECTION_SYNCH); - - // GarrTalentTree.db2 - PrepareStatement(HOTFIX_SEL_GARR_TALENT_TREE, "SELECT ID, Name, GarrTypeID, ClassID, MaxTiers, UiOrder, Flags, UiTextureKitID" - " FROM garr_talent_tree WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); - PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_TALENT_TREE, "SELECT MAX(ID) + 1 FROM garr_talent_tree", CONNECTION_SYNCH); - PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_TALENT_TREE, "SELECT ID, Name_lang FROM garr_talent_tree_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH); - // GemProperties.db2 PrepareStatement(HOTFIX_SEL_GEM_PROPERTIES, "SELECT ID, EnchantId, Type, MinItemLevel FROM gem_properties WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_GEM_PROPERTIES, "SELECT MAX(ID) + 1 FROM gem_properties", CONNECTION_SYNCH); diff --git a/src/server/database/Database/Implementation/HotfixDatabase.h b/src/server/database/Database/Implementation/HotfixDatabase.h index 9c1c4e4b9ad..aab81744a5e 100644 --- a/src/server/database/Database/Implementation/HotfixDatabase.h +++ b/src/server/database/Database/Implementation/HotfixDatabase.h @@ -39,14 +39,6 @@ enum HotfixDatabaseStatements : uint32 HOTFIX_SEL_ACHIEVEMENT_CATEGORY_MAX_ID, HOTFIX_SEL_ACHIEVEMENT_CATEGORY_LOCALE, - HOTFIX_SEL_ADVENTURE_JOURNAL, - HOTFIX_SEL_ADVENTURE_JOURNAL_MAX_ID, - HOTFIX_SEL_ADVENTURE_JOURNAL_LOCALE, - - HOTFIX_SEL_ADVENTURE_MAP_POI, - HOTFIX_SEL_ADVENTURE_MAP_POI_MAX_ID, - HOTFIX_SEL_ADVENTURE_MAP_POI_LOCALE, - HOTFIX_SEL_ANIMATION_DATA, HOTFIX_SEL_ANIMATION_DATA_MAX_ID, @@ -70,81 +62,10 @@ enum HotfixDatabaseStatements : uint32 HOTFIX_SEL_ARMOR_LOCATION, HOTFIX_SEL_ARMOR_LOCATION_MAX_ID, - HOTFIX_SEL_ARTIFACT, - HOTFIX_SEL_ARTIFACT_MAX_ID, - HOTFIX_SEL_ARTIFACT_LOCALE, - - HOTFIX_SEL_ARTIFACT_APPEARANCE, - HOTFIX_SEL_ARTIFACT_APPEARANCE_MAX_ID, - HOTFIX_SEL_ARTIFACT_APPEARANCE_LOCALE, - - HOTFIX_SEL_ARTIFACT_APPEARANCE_SET, - HOTFIX_SEL_ARTIFACT_APPEARANCE_SET_MAX_ID, - HOTFIX_SEL_ARTIFACT_APPEARANCE_SET_LOCALE, - - HOTFIX_SEL_ARTIFACT_CATEGORY, - HOTFIX_SEL_ARTIFACT_CATEGORY_MAX_ID, - - HOTFIX_SEL_ARTIFACT_POWER, - HOTFIX_SEL_ARTIFACT_POWER_MAX_ID, - - HOTFIX_SEL_ARTIFACT_POWER_LINK, - HOTFIX_SEL_ARTIFACT_POWER_LINK_MAX_ID, - - HOTFIX_SEL_ARTIFACT_POWER_PICKER, - HOTFIX_SEL_ARTIFACT_POWER_PICKER_MAX_ID, - - HOTFIX_SEL_ARTIFACT_POWER_RANK, - HOTFIX_SEL_ARTIFACT_POWER_RANK_MAX_ID, - - HOTFIX_SEL_ARTIFACT_QUEST_XP, - HOTFIX_SEL_ARTIFACT_QUEST_XP_MAX_ID, - - HOTFIX_SEL_ARTIFACT_TIER, - HOTFIX_SEL_ARTIFACT_TIER_MAX_ID, - - HOTFIX_SEL_ARTIFACT_UNLOCK, - HOTFIX_SEL_ARTIFACT_UNLOCK_MAX_ID, - HOTFIX_SEL_AUCTION_HOUSE, HOTFIX_SEL_AUCTION_HOUSE_MAX_ID, HOTFIX_SEL_AUCTION_HOUSE_LOCALE, - HOTFIX_SEL_AZERITE_EMPOWERED_ITEM, - HOTFIX_SEL_AZERITE_EMPOWERED_ITEM_MAX_ID, - - HOTFIX_SEL_AZERITE_ESSENCE, - HOTFIX_SEL_AZERITE_ESSENCE_MAX_ID, - HOTFIX_SEL_AZERITE_ESSENCE_LOCALE, - - HOTFIX_SEL_AZERITE_ESSENCE_POWER, - HOTFIX_SEL_AZERITE_ESSENCE_POWER_MAX_ID, - HOTFIX_SEL_AZERITE_ESSENCE_POWER_LOCALE, - - HOTFIX_SEL_AZERITE_ITEM, - HOTFIX_SEL_AZERITE_ITEM_MAX_ID, - - HOTFIX_SEL_AZERITE_ITEM_MILESTONE_POWER, - HOTFIX_SEL_AZERITE_ITEM_MILESTONE_POWER_MAX_ID, - - HOTFIX_SEL_AZERITE_KNOWLEDGE_MULTIPLIER, - HOTFIX_SEL_AZERITE_KNOWLEDGE_MULTIPLIER_MAX_ID, - - HOTFIX_SEL_AZERITE_LEVEL_INFO, - HOTFIX_SEL_AZERITE_LEVEL_INFO_MAX_ID, - - HOTFIX_SEL_AZERITE_POWER, - HOTFIX_SEL_AZERITE_POWER_MAX_ID, - - HOTFIX_SEL_AZERITE_POWER_SET_MEMBER, - HOTFIX_SEL_AZERITE_POWER_SET_MEMBER_MAX_ID, - - HOTFIX_SEL_AZERITE_TIER_UNLOCK, - HOTFIX_SEL_AZERITE_TIER_UNLOCK_MAX_ID, - - HOTFIX_SEL_AZERITE_TIER_UNLOCK_SET, - HOTFIX_SEL_AZERITE_TIER_UNLOCK_SET_MAX_ID, - HOTFIX_SEL_BANK_BAG_SLOT_PRICES, HOTFIX_SEL_BANK_BAG_SLOT_PRICES_MAX_ID, @@ -359,51 +280,6 @@ enum HotfixDatabaseStatements : uint32 HOTFIX_SEL_GAMEOBJECTS_MAX_ID, HOTFIX_SEL_GAMEOBJECTS_LOCALE, - HOTFIX_SEL_GARR_ABILITY, - HOTFIX_SEL_GARR_ABILITY_MAX_ID, - HOTFIX_SEL_GARR_ABILITY_LOCALE, - - HOTFIX_SEL_GARR_BUILDING, - HOTFIX_SEL_GARR_BUILDING_MAX_ID, - HOTFIX_SEL_GARR_BUILDING_LOCALE, - - HOTFIX_SEL_GARR_BUILDING_PLOT_INST, - HOTFIX_SEL_GARR_BUILDING_PLOT_INST_MAX_ID, - - HOTFIX_SEL_GARR_CLASS_SPEC, - HOTFIX_SEL_GARR_CLASS_SPEC_MAX_ID, - HOTFIX_SEL_GARR_CLASS_SPEC_LOCALE, - - HOTFIX_SEL_GARR_FOLLOWER, - HOTFIX_SEL_GARR_FOLLOWER_MAX_ID, - HOTFIX_SEL_GARR_FOLLOWER_LOCALE, - - HOTFIX_SEL_GARR_FOLLOWER_X_ABILITY, - HOTFIX_SEL_GARR_FOLLOWER_X_ABILITY_MAX_ID, - - HOTFIX_SEL_GARR_MISSION, - HOTFIX_SEL_GARR_MISSION_MAX_ID, - HOTFIX_SEL_GARR_MISSION_LOCALE, - - HOTFIX_SEL_GARR_PLOT, - HOTFIX_SEL_GARR_PLOT_MAX_ID, - - HOTFIX_SEL_GARR_PLOT_BUILDING, - HOTFIX_SEL_GARR_PLOT_BUILDING_MAX_ID, - - HOTFIX_SEL_GARR_PLOT_INSTANCE, - HOTFIX_SEL_GARR_PLOT_INSTANCE_MAX_ID, - - HOTFIX_SEL_GARR_SITE_LEVEL, - HOTFIX_SEL_GARR_SITE_LEVEL_MAX_ID, - - HOTFIX_SEL_GARR_SITE_LEVEL_PLOT_INST, - HOTFIX_SEL_GARR_SITE_LEVEL_PLOT_INST_MAX_ID, - - HOTFIX_SEL_GARR_TALENT_TREE, - HOTFIX_SEL_GARR_TALENT_TREE_MAX_ID, - HOTFIX_SEL_GARR_TALENT_TREE_LOCALE, - HOTFIX_SEL_GEM_PROPERTIES, HOTFIX_SEL_GEM_PROPERTIES_MAX_ID, diff --git a/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp b/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp index 69283d82e5e..c0cc5abd121 100644 --- a/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp +++ b/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp @@ -114,7 +114,6 @@ struct SpellInfoVisitor { using value_type = SpellInfo const*; - value_type operator()(Hyperlink<apower> artifactPower) const { return operator()(artifactPower->ArtifactPower->SpellID); } value_type operator()(Hyperlink<enchant> enchant) const { return enchant; } value_type operator()(Hyperlink<mount> const& mount) const { return mount->Spell; } value_type operator()(Hyperlink<spell> spell) const { return spell->Spell; } @@ -125,7 +124,7 @@ struct SpellInfoVisitor }; ChatCommandResult Trinity::Impl::ChatCommands::ArgInfo<SpellInfo const*>::TryConsume(SpellInfo const*& data, ChatHandler const* handler, std::string_view args) { - Variant<Hyperlink<apower>, Hyperlink<enchant>, Hyperlink<mount>, Hyperlink<spell>, Hyperlink<talent>, Hyperlink<trade>, uint32> val; + Variant<Hyperlink<enchant>, Hyperlink<mount>, Hyperlink<spell>, Hyperlink<talent>, Hyperlink<trade>, uint32> val; ChatCommandResult result = ArgInfo<decltype(val)>::TryConsume(val, handler, args); if (!result || (data = val.visit(SpellInfoVisitor()))) return result; diff --git a/src/server/game/Chat/HyperlinkTags.cpp b/src/server/game/Chat/HyperlinkTags.cpp index 91f35b95314..43727f98d61 100644 --- a/src/server/game/Chat/HyperlinkTags.cpp +++ b/src/server/game/Chat/HyperlinkTags.cpp @@ -106,30 +106,6 @@ bool Trinity::Hyperlinks::LinkTags::api::StoreTo(ApiLinkData& val, std::string_v return true; } -bool Trinity::Hyperlinks::LinkTags::apower::StoreTo(ArtifactPowerLinkData& val, std::string_view text) -{ - HyperlinkDataTokenizer t(text); - uint32 artifactPowerId; - if (!(t.TryConsumeTo(artifactPowerId) && t.TryConsumeTo(val.PurchasedRank) && t.TryConsumeTo(val.CurrentRankWithBonus) && t.IsEmpty())) - return false; - if (!sArtifactPowerStore.LookupEntry(artifactPowerId)) - return false; - val.ArtifactPower = sDB2Manager.GetArtifactPowerRank(artifactPowerId, std::max<uint8>(val.CurrentRankWithBonus, 1)); - if (val.ArtifactPower) - return false; - return true; -} - -bool Trinity::Hyperlinks::LinkTags::azessence::StoreTo(AzeriteEssenceLinkData& val, std::string_view text) -{ - HyperlinkDataTokenizer t(text); - uint32 azeriteEssenceId; - if (!t.TryConsumeTo(azeriteEssenceId)) - return false; - return (val.Essence = sAzeriteEssenceStore.LookupEntry(azeriteEssenceId)) && t.TryConsumeTo(val.Rank) - && sDB2Manager.GetAzeriteEssencePower(azeriteEssenceId, val.Rank) && t.IsEmpty(); -} - bool Trinity::Hyperlinks::LinkTags::battlepet::StoreTo(BattlePetLinkData& val, std::string_view text) { HyperlinkDataTokenizer t(text); @@ -202,52 +178,6 @@ bool Trinity::Hyperlinks::LinkTags::enchant::StoreTo(SpellInfo const*& val, std: return !!(val = sSpellMgr->GetSpellInfo(spellId, DIFFICULTY_NONE)) && val->HasAttribute(SPELL_ATTR0_IS_TRADESKILL); } -bool Trinity::Hyperlinks::LinkTags::garrfollower::StoreTo(GarrisonFollowerLinkData& val, std::string_view text) -{ - HyperlinkDataTokenizer t(text); - uint32 garrFollowerId; - if (!t.TryConsumeTo(garrFollowerId)) - return false; - - val.Follower = sGarrFollowerStore.LookupEntry(garrFollowerId); - if (!val.Follower || !t.TryConsumeTo(val.Quality) || val.Quality >= MAX_ITEM_QUALITY || !t.TryConsumeTo(val.Level) || !t.TryConsumeTo(val.ItemLevel) - || !t.TryConsumeTo(val.Abilities[0]) || !t.TryConsumeTo(val.Abilities[1]) || !t.TryConsumeTo(val.Abilities[2]) || !t.TryConsumeTo(val.Abilities[3]) - || !t.TryConsumeTo(val.Traits[0]) || !t.TryConsumeTo(val.Traits[1]) || !t.TryConsumeTo(val.Traits[2]) || !t.TryConsumeTo(val.Traits[3]) - || !t.TryConsumeTo(val.Specialization) || !t.IsEmpty()) - return false; - - for (uint32 ability : val.Abilities) - if (ability && !sGarrAbilityStore.LookupEntry(ability)) - return false; - - for (uint32 trait : val.Traits) - if (trait && !sGarrAbilityStore.LookupEntry(trait)) - return false; - - if (val.Specialization && !sGarrAbilityStore.LookupEntry(val.Specialization)) - return false; - - return true; -} - -bool Trinity::Hyperlinks::LinkTags::garrfollowerability::StoreTo(GarrAbilityEntry const*& val, std::string_view text) -{ - HyperlinkDataTokenizer t(text); - uint32 garrAbilityId; - if (!t.TryConsumeTo(garrAbilityId)) - return false; - return !!(val = sGarrAbilityStore.LookupEntry(garrAbilityId)) && t.IsEmpty(); -} - -bool Trinity::Hyperlinks::LinkTags::garrmission::StoreTo(GarrisonMissionLinkData& val, std::string_view text) -{ - HyperlinkDataTokenizer t(text); - uint32 garrMissionId; - if (!t.TryConsumeTo(garrMissionId)) - return false; - return !!(val.Mission = sGarrMissionStore.LookupEntry(garrMissionId)) && t.TryConsumeTo(val.DbID) && t.IsEmpty(); -} - bool Trinity::Hyperlinks::LinkTags::instancelock::StoreTo(InstanceLockLinkData& val, std::string_view text) { HyperlinkDataTokenizer t(text); diff --git a/src/server/game/Chat/Hyperlinks.cpp b/src/server/game/Chat/Hyperlinks.cpp index 771c1fe59e4..88a2374740e 100644 --- a/src/server/game/Chat/Hyperlinks.cpp +++ b/src/server/game/Chat/Hyperlinks.cpp @@ -170,39 +170,6 @@ struct LinkValidator<LinkTags::achievement> }; template <> -struct LinkValidator<LinkTags::apower> -{ - static bool IsTextValid(ArtifactPowerLinkData const& data, std::string_view text) - { - if (SpellInfo const* info = sSpellMgr->GetSpellInfo(data.ArtifactPower->SpellID, DIFFICULTY_NONE)) - return LinkValidator<LinkTags::spell>::IsTextValid(info, text); - return false; - } - - static bool IsColorValid(ArtifactPowerLinkData const&, HyperlinkColor c) - { - return c == CHAT_LINK_COLOR_ARTIFACT_POWER; - } -}; - -template <> -struct LinkValidator<LinkTags::azessence> -{ - static bool IsTextValid(AzeriteEssenceLinkData const& data, std::string_view text) - { - for (LocaleConstant i = LOCALE_enUS; i < TOTAL_LOCALES; i = LocaleConstant(i + 1)) - if (data.Essence->Name[i] == text) - return true; - return false; - } - - static bool IsColorValid(AzeriteEssenceLinkData const& data, HyperlinkColor c) - { - return c == ItemQualityColors[data.Rank + 1]; - } -}; - -template <> struct LinkValidator<LinkTags::battlepet> { static bool IsTextValid(BattlePetLinkData const& data, std::string_view text) @@ -291,55 +258,6 @@ struct LinkValidator<LinkTags::enchant> }; template <> -struct LinkValidator<LinkTags::garrfollower> -{ - static bool IsTextValid(GarrisonFollowerLinkData const& data, std::string_view text) - { - return IsCreatureNameValid(data.Follower->HordeCreatureID, text) - || IsCreatureNameValid(data.Follower->AllianceCreatureID, text); - } - - static bool IsColorValid(GarrisonFollowerLinkData const& data, HyperlinkColor c) - { - return c == ItemQualityColors[data.Quality]; - } -}; - -template <> -struct LinkValidator<LinkTags::garrfollowerability> -{ - static bool IsTextValid(GarrAbilityEntry const* ability, std::string_view text) - { - for (LocaleConstant i = LOCALE_enUS; i < TOTAL_LOCALES; i = LocaleConstant(i + 1)) - if (ability->Name[i] == text) - return true; - return false; - } - - static bool IsColorValid(GarrAbilityEntry const*, HyperlinkColor c) - { - return c == CHAT_LINK_COLOR_GARR_ABILITY; - } -}; - -template <> -struct LinkValidator<LinkTags::garrmission> -{ - static bool IsTextValid(GarrisonMissionLinkData const& data, std::string_view text) - { - for (LocaleConstant i = LOCALE_enUS; i < TOTAL_LOCALES; i = LocaleConstant(i + 1)) - if (data.Mission->Name[i] == text) - return true; - return false; - } - - static bool IsColorValid(GarrisonMissionLinkData const&, HyperlinkColor c) - { - return c == QuestDifficultyColors[2]; - } -}; - -template <> struct LinkValidator<LinkTags::instancelock> { static bool IsTextValid(InstanceLockLinkData const& data, std::string_view text) @@ -622,8 +540,6 @@ static bool ValidateLinkInfo(HyperlinkInfo const& info) using namespace LinkTags; TryValidateAs(achievement); TryValidateAs(api); - TryValidateAs(apower); - TryValidateAs(azessence); TryValidateAs(area); TryValidateAs(areatrigger); TryValidateAs(battlepet); @@ -638,9 +554,6 @@ static bool ValidateLinkInfo(HyperlinkInfo const& info) TryValidateAs(gameevent); TryValidateAs(gameobject); TryValidateAs(gameobject_entry); - TryValidateAs(garrfollower); - TryValidateAs(garrfollowerability); - TryValidateAs(garrmission); TryValidateAs(instancelock); TryValidateAs(item); TryValidateAs(itemset); diff --git a/src/server/game/Chat/Hyperlinks.h b/src/server/game/Chat/Hyperlinks.h index db9e63063b4..e66211ced1f 100644 --- a/src/server/game/Chat/Hyperlinks.h +++ b/src/server/game/Chat/Hyperlinks.h @@ -25,16 +25,11 @@ #include <string_view> struct AchievementEntry; -struct ArtifactPowerRankEntry; -struct AzeriteEssenceEntry; struct BattlePetAbilityEntry; struct BattlePetSpeciesEntry; struct ChrSpecializationEntry; struct CurrencyContainerEntry; struct CurrencyTypesEntry; -struct GarrAbilityEntry; -struct GarrFollowerEntry; -struct GarrMissionEntry; struct GlyphPropertiesEntry; struct ItemModifiedAppearanceEntry; struct ItemNameDescriptionEntry; @@ -71,19 +66,6 @@ namespace Trinity::Hyperlinks std::string_view Parent; }; - struct ArtifactPowerLinkData - { - ArtifactPowerRankEntry const* ArtifactPower = nullptr; - uint8 PurchasedRank = 0; - uint8 CurrentRankWithBonus = 0; - }; - - struct AzeriteEssenceLinkData - { - AzeriteEssenceEntry const* Essence = nullptr; - uint8 Rank = 0; - }; - struct BattlePetLinkData { BattlePetSpeciesEntry const* Species = nullptr; @@ -134,23 +116,6 @@ namespace Trinity::Hyperlinks std::vector<Dungeon> Dungeons; }; - struct GarrisonFollowerLinkData - { - GarrFollowerEntry const* Follower = nullptr; - uint32 Quality = 0; - uint32 Level = 0; - uint32 ItemLevel = 0; - std::array<uint32, 4> Abilities = { }; - uint32 Traits[4] = { }; - uint32 Specialization = 0; - }; - - struct GarrisonMissionLinkData - { - GarrMissionEntry const* Mission = nullptr; - uint64 DbID = 0; - }; - struct InstanceLockLinkData { ObjectGuid Owner; @@ -337,20 +302,6 @@ namespace Trinity::Hyperlinks static bool StoreTo(ApiLinkData& val, std::string_view text); }; - struct TC_GAME_API apower - { - using value_type = ArtifactPowerLinkData const&; - static constexpr std::string_view tag() { return "apower"; } - static bool StoreTo(ArtifactPowerLinkData& val, std::string_view text); - }; - - struct TC_GAME_API azessence - { - using value_type = AzeriteEssenceLinkData const&; - static constexpr std::string_view tag() { return "azessence"; } - static bool StoreTo(AzeriteEssenceLinkData& val, std::string_view text); - }; - struct TC_GAME_API battlepet { using value_type = BattlePetLinkData const&; @@ -386,27 +337,6 @@ namespace Trinity::Hyperlinks static bool StoreTo(SpellInfo const*& val, std::string_view text); }; - struct TC_GAME_API garrfollower - { - using value_type = GarrisonFollowerLinkData const&; - static constexpr std::string_view tag() { return "garrfollower"; } - static bool StoreTo(GarrisonFollowerLinkData& val, std::string_view text); - }; - - struct TC_GAME_API garrfollowerability - { - using value_type = GarrAbilityEntry const*; - static constexpr std::string_view tag() { return "garrfollowerability"; } - static bool StoreTo(GarrAbilityEntry const*& val, std::string_view text); - }; - - struct TC_GAME_API garrmission - { - using value_type = GarrisonMissionLinkData const&; - static constexpr std::string_view tag() { return "garrmission"; } - static bool StoreTo(GarrisonMissionLinkData& val, std::string_view text); - }; - struct TC_GAME_API instancelock { using value_type = InstanceLockLinkData const&; diff --git a/src/server/game/DataStores/DB2LoadInfo.h b/src/server/game/DataStores/DB2LoadInfo.h index e8ca19a6bfd..844e7d0b736 100644 --- a/src/server/game/DataStores/DB2LoadInfo.h +++ b/src/server/game/DataStores/DB2LoadInfo.h @@ -61,63 +61,6 @@ struct AchievementCategoryLoadInfo static constexpr DB2LoadInfo Instance{ Fields, 4, &Achievement_CategoryMeta::Instance, HOTFIX_SEL_ACHIEVEMENT_CATEGORY }; }; -struct AdventureJournalLoadInfo -{ - static constexpr DB2FieldMeta Fields[25] = - { - { false, FT_INT, "ID" }, - { false, FT_STRING, "Name" }, - { false, FT_STRING, "Description" }, - { false, FT_STRING, "ButtonText" }, - { false, FT_STRING, "RewardDescription" }, - { false, FT_STRING, "ContinueDescription" }, - { false, FT_BYTE, "Type" }, - { false, FT_INT, "PlayerConditionID" }, - { true, FT_INT, "Flags" }, - { false, FT_BYTE, "ButtonActionType" }, - { true, FT_INT, "TextureFileDataID" }, - { false, FT_SHORT, "LfgDungeonID" }, - { false, FT_INT, "QuestID" }, - { false, FT_SHORT, "BattleMasterListID" }, - { false, FT_BYTE, "PriorityMin" }, - { false, FT_BYTE, "PriorityMax" }, - { true, FT_INT, "ItemID" }, - { false, FT_INT, "ItemQuantity" }, - { false, FT_SHORT, "CurrencyType" }, - { false, FT_BYTE, "CurrencyQuantity" }, - { false, FT_SHORT, "UiMapID" }, - { false, FT_INT, "BonusPlayerConditionID1" }, - { false, FT_INT, "BonusPlayerConditionID2" }, - { false, FT_BYTE, "BonusValue1" }, - { false, FT_BYTE, "BonusValue2" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 25, &AdventureJournalMeta::Instance, HOTFIX_SEL_ADVENTURE_JOURNAL }; -}; - -struct AdventureMapPoiLoadInfo -{ - static constexpr DB2FieldMeta Fields[14] = - { - { false, FT_INT, "ID" }, - { false, FT_STRING, "Title" }, - { false, FT_STRING, "Description" }, - { false, FT_FLOAT, "WorldPositionX" }, - { false, FT_FLOAT, "WorldPositionY" }, - { true, FT_BYTE, "Type" }, - { false, FT_INT, "PlayerConditionID" }, - { false, FT_INT, "QuestID" }, - { false, FT_INT, "LfgDungeonID" }, - { true, FT_INT, "RewardItemID" }, - { false, FT_INT, "UiTextureAtlasMemberID" }, - { false, FT_INT, "UiTextureKitID" }, - { true, FT_INT, "MapID" }, - { false, FT_INT, "AreaTableID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 14, &AdventureMapPOIMeta::Instance, HOTFIX_SEL_ADVENTURE_MAP_POI }; -}; - struct AnimationDataLoadInfo { static constexpr DB2FieldMeta Fields[6] = @@ -248,185 +191,6 @@ struct ArmorLocationLoadInfo static constexpr DB2LoadInfo Instance{ Fields, 6, &ArmorLocationMeta::Instance, HOTFIX_SEL_ARMOR_LOCATION }; }; -struct ArtifactLoadInfo -{ - static constexpr DB2FieldMeta Fields[11] = - { - { false, FT_STRING, "Name" }, - { false, FT_INT, "ID" }, - { false, FT_SHORT, "UiTextureKitID" }, - { true, FT_INT, "UiNameColor" }, - { true, FT_INT, "UiBarOverlayColor" }, - { true, FT_INT, "UiBarBackgroundColor" }, - { false, FT_SHORT, "ChrSpecializationID" }, - { false, FT_BYTE, "Flags" }, - { false, FT_BYTE, "ArtifactCategoryID" }, - { false, FT_INT, "UiModelSceneID" }, - { false, FT_INT, "SpellVisualKitID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 11, &ArtifactMeta::Instance, HOTFIX_SEL_ARTIFACT }; -}; - -struct ArtifactAppearanceLoadInfo -{ - static constexpr DB2FieldMeta Fields[15] = - { - { false, FT_STRING, "Name" }, - { false, FT_INT, "ID" }, - { false, FT_SHORT, "ArtifactAppearanceSetID" }, - { false, FT_BYTE, "DisplayIndex" }, - { false, FT_INT, "UnlockPlayerConditionID" }, - { false, FT_BYTE, "ItemAppearanceModifierID" }, - { true, FT_INT, "UiSwatchColor" }, - { false, FT_FLOAT, "UiModelSaturation" }, - { false, FT_FLOAT, "UiModelOpacity" }, - { false, FT_BYTE, "OverrideShapeshiftFormID" }, - { false, FT_INT, "OverrideShapeshiftDisplayID" }, - { false, FT_INT, "UiItemAppearanceID" }, - { false, FT_INT, "UiAltItemAppearanceID" }, - { false, FT_BYTE, "Flags" }, - { false, FT_SHORT, "UiCameraID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 15, &ArtifactAppearanceMeta::Instance, HOTFIX_SEL_ARTIFACT_APPEARANCE }; -}; - -struct ArtifactAppearanceSetLoadInfo -{ - static constexpr DB2FieldMeta Fields[9] = - { - { false, FT_STRING, "Name" }, - { false, FT_STRING, "Description" }, - { false, FT_INT, "ID" }, - { false, FT_BYTE, "DisplayIndex" }, - { false, FT_SHORT, "UiCameraID" }, - { false, FT_SHORT, "AltHandUICameraID" }, - { true, FT_BYTE, "ForgeAttachmentOverride" }, - { false, FT_BYTE, "Flags" }, - { false, FT_INT, "ArtifactID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 9, &ArtifactAppearanceSetMeta::Instance, HOTFIX_SEL_ARTIFACT_APPEARANCE_SET }; -}; - -struct ArtifactCategoryLoadInfo -{ - static constexpr DB2FieldMeta Fields[3] = - { - { false, FT_INT, "ID" }, - { true, FT_SHORT, "XpMultCurrencyID" }, - { true, FT_SHORT, "XpMultCurveID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 3, &ArtifactCategoryMeta::Instance, HOTFIX_SEL_ARTIFACT_CATEGORY }; -}; - -struct ArtifactPowerLoadInfo -{ - static constexpr DB2FieldMeta Fields[8] = - { - { false, FT_FLOAT, "DisplayPosX" }, - { false, FT_FLOAT, "DisplayPosY" }, - { false, FT_INT, "ID" }, - { false, FT_BYTE, "ArtifactID" }, - { false, FT_BYTE, "MaxPurchasableRank" }, - { true, FT_INT, "Label" }, - { false, FT_BYTE, "Flags" }, - { false, FT_BYTE, "Tier" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 8, &ArtifactPowerMeta::Instance, HOTFIX_SEL_ARTIFACT_POWER }; -}; - -struct ArtifactPowerLinkLoadInfo -{ - static constexpr DB2FieldMeta Fields[3] = - { - { false, FT_INT, "ID" }, - { false, FT_SHORT, "PowerA" }, - { false, FT_SHORT, "PowerB" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 3, &ArtifactPowerLinkMeta::Instance, HOTFIX_SEL_ARTIFACT_POWER_LINK }; -}; - -struct ArtifactPowerPickerLoadInfo -{ - static constexpr DB2FieldMeta Fields[2] = - { - { false, FT_INT, "ID" }, - { false, FT_INT, "PlayerConditionID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 2, &ArtifactPowerPickerMeta::Instance, HOTFIX_SEL_ARTIFACT_POWER_PICKER }; -}; - -struct ArtifactPowerRankLoadInfo -{ - static constexpr DB2FieldMeta Fields[6] = - { - { false, FT_INT, "ID" }, - { false, FT_BYTE, "RankIndex" }, - { true, FT_INT, "SpellID" }, - { false, FT_SHORT, "ItemBonusListID" }, - { false, FT_FLOAT, "AuraPointsOverride" }, - { false, FT_INT, "ArtifactPowerID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 6, &ArtifactPowerRankMeta::Instance, HOTFIX_SEL_ARTIFACT_POWER_RANK }; -}; - -struct ArtifactQuestXpLoadInfo -{ - static constexpr DB2FieldMeta Fields[11] = - { - { false, FT_INT, "ID" }, - { false, FT_INT, "Difficulty1" }, - { false, FT_INT, "Difficulty2" }, - { false, FT_INT, "Difficulty3" }, - { false, FT_INT, "Difficulty4" }, - { false, FT_INT, "Difficulty5" }, - { false, FT_INT, "Difficulty6" }, - { false, FT_INT, "Difficulty7" }, - { false, FT_INT, "Difficulty8" }, - { false, FT_INT, "Difficulty9" }, - { false, FT_INT, "Difficulty10" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 11, &ArtifactQuestXPMeta::Instance, HOTFIX_SEL_ARTIFACT_QUEST_XP }; -}; - -struct ArtifactTierLoadInfo -{ - static constexpr DB2FieldMeta Fields[6] = - { - { false, FT_INT, "ID" }, - { false, FT_INT, "ArtifactTier" }, - { false, FT_INT, "MaxNumTraits" }, - { false, FT_INT, "MaxArtifactKnowledge" }, - { false, FT_INT, "KnowledgePlayerCondition" }, - { false, FT_INT, "MinimumEmpowerKnowledge" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 6, &ArtifactTierMeta::Instance, HOTFIX_SEL_ARTIFACT_TIER }; -}; - -struct ArtifactUnlockLoadInfo -{ - static constexpr DB2FieldMeta Fields[6] = - { - { false, FT_INT, "ID" }, - { false, FT_INT, "PowerID" }, - { false, FT_BYTE, "PowerRank" }, - { false, FT_SHORT, "ItemBonusListID" }, - { false, FT_INT, "PlayerConditionID" }, - { false, FT_INT, "ArtifactID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 6, &ArtifactUnlockMeta::Instance, HOTFIX_SEL_ARTIFACT_UNLOCK }; -}; - struct AuctionHouseLoadInfo { static constexpr DB2FieldMeta Fields[5] = @@ -441,153 +205,6 @@ struct AuctionHouseLoadInfo static constexpr DB2LoadInfo Instance{ Fields, 5, &AuctionHouseMeta::Instance, HOTFIX_SEL_AUCTION_HOUSE }; }; -struct AzeriteEmpoweredItemLoadInfo -{ - static constexpr DB2FieldMeta Fields[4] = - { - { false, FT_INT, "ID" }, - { true, FT_INT, "ItemID" }, - { false, FT_INT, "AzeriteTierUnlockSetID" }, - { false, FT_INT, "AzeritePowerSetID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 4, &AzeriteEmpoweredItemMeta::Instance, HOTFIX_SEL_AZERITE_EMPOWERED_ITEM }; -}; - -struct AzeriteEssenceLoadInfo -{ - static constexpr DB2FieldMeta Fields[4] = - { - { false, FT_INT, "ID" }, - { false, FT_STRING, "Name" }, - { false, FT_STRING, "Description" }, - { true, FT_INT, "SpecSetID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 4, &AzeriteEssenceMeta::Instance, HOTFIX_SEL_AZERITE_ESSENCE }; -}; - -struct AzeriteEssencePowerLoadInfo -{ - static constexpr DB2FieldMeta Fields[9] = - { - { false, FT_INT, "ID" }, - { false, FT_STRING, "SourceAlliance" }, - { false, FT_STRING, "SourceHorde" }, - { true, FT_INT, "AzeriteEssenceID" }, - { false, FT_BYTE, "Tier" }, - { true, FT_INT, "MajorPowerDescription" }, - { true, FT_INT, "MinorPowerDescription" }, - { true, FT_INT, "MajorPowerActual" }, - { true, FT_INT, "MinorPowerActual" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 9, &AzeriteEssencePowerMeta::Instance, HOTFIX_SEL_AZERITE_ESSENCE_POWER }; -}; - -struct AzeriteItemLoadInfo -{ - static constexpr DB2FieldMeta Fields[2] = - { - { false, FT_INT, "ID" }, - { true, FT_INT, "ItemID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 2, &AzeriteItemMeta::Instance, HOTFIX_SEL_AZERITE_ITEM }; -}; - -struct AzeriteItemMilestonePowerLoadInfo -{ - static constexpr DB2FieldMeta Fields[5] = - { - { false, FT_INT, "ID" }, - { true, FT_INT, "RequiredLevel" }, - { true, FT_INT, "AzeritePowerID" }, - { true, FT_INT, "Type" }, - { true, FT_INT, "AutoUnlock" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 5, &AzeriteItemMilestonePowerMeta::Instance, HOTFIX_SEL_AZERITE_ITEM_MILESTONE_POWER }; -}; - -struct AzeriteKnowledgeMultiplierLoadInfo -{ - static constexpr DB2FieldMeta Fields[2] = - { - { false, FT_INT, "ID" }, - { false, FT_FLOAT, "Multiplier" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 2, &AzeriteKnowledgeMultiplierMeta::Instance, HOTFIX_SEL_AZERITE_KNOWLEDGE_MULTIPLIER }; -}; - -struct AzeriteLevelInfoLoadInfo -{ - static constexpr DB2FieldMeta Fields[4] = - { - { false, FT_INT, "ID" }, - { false, FT_LONG, "BaseExperienceToNextLevel" }, - { false, FT_LONG, "MinimumExperienceToNextLevel" }, - { true, FT_INT, "ItemLevel" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 4, &AzeriteLevelInfoMeta::Instance, HOTFIX_SEL_AZERITE_LEVEL_INFO }; -}; - -struct AzeritePowerLoadInfo -{ - static constexpr DB2FieldMeta Fields[5] = - { - { false, FT_INT, "ID" }, - { true, FT_INT, "SpellID" }, - { true, FT_INT, "ItemBonusListID" }, - { true, FT_INT, "SpecSetID" }, - { true, FT_INT, "Flags" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 5, &AzeritePowerMeta::Instance, HOTFIX_SEL_AZERITE_POWER }; -}; - -struct AzeritePowerSetMemberLoadInfo -{ - static constexpr DB2FieldMeta Fields[6] = - { - { false, FT_INT, "ID" }, - { false, FT_INT, "AzeritePowerSetID" }, - { true, FT_INT, "AzeritePowerID" }, - { true, FT_INT, "Class" }, - { false, FT_BYTE, "Tier" }, - { true, FT_INT, "OrderIndex" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 6, &AzeritePowerSetMemberMeta::Instance, HOTFIX_SEL_AZERITE_POWER_SET_MEMBER }; -}; - -struct AzeriteTierUnlockLoadInfo -{ - static constexpr DB2FieldMeta Fields[5] = - { - { false, FT_INT, "ID" }, - { false, FT_BYTE, "ItemCreationContext" }, - { false, FT_BYTE, "Tier" }, - { false, FT_BYTE, "AzeriteLevel" }, - { false, FT_INT, "AzeriteTierUnlockSetID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 5, &AzeriteTierUnlockMeta::Instance, HOTFIX_SEL_AZERITE_TIER_UNLOCK }; -}; - -struct AzeriteTierUnlockSetLoadInfo -{ - static constexpr DB2FieldMeta Fields[2] = - { - { false, FT_INT, "ID" }, - { true, FT_INT, "Flags" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 2, &AzeriteTierUnlockSetMeta::Instance, HOTFIX_SEL_AZERITE_TIER_UNLOCK_SET }; -}; - struct BankBagSlotPricesLoadInfo { static constexpr DB2FieldMeta Fields[2] = @@ -1896,278 +1513,6 @@ struct GameobjectsLoadInfo static constexpr DB2LoadInfo Instance{ Fields, 24, &GameObjectsMeta::Instance, HOTFIX_SEL_GAMEOBJECTS }; }; -struct GarrAbilityLoadInfo -{ - static constexpr DB2FieldMeta Fields[8] = - { - { false, FT_STRING, "Name" }, - { false, FT_STRING, "Description" }, - { false, FT_INT, "ID" }, - { false, FT_BYTE, "GarrAbilityCategoryID" }, - { false, FT_BYTE, "GarrFollowerTypeID" }, - { true, FT_INT, "IconFileDataID" }, - { false, FT_SHORT, "FactionChangeGarrAbilityID" }, - { false, FT_SHORT, "Flags" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 8, &GarrAbilityMeta::Instance, HOTFIX_SEL_GARR_ABILITY }; -}; - -struct GarrBuildingLoadInfo -{ - static constexpr DB2FieldMeta Fields[25] = - { - { false, FT_INT, "ID" }, - { false, FT_STRING, "HordeName" }, - { false, FT_STRING, "AllianceName" }, - { false, FT_STRING, "Description" }, - { false, FT_STRING, "Tooltip" }, - { false, FT_BYTE, "GarrTypeID" }, - { false, FT_BYTE, "BuildingType" }, - { true, FT_INT, "HordeGameObjectID" }, - { true, FT_INT, "AllianceGameObjectID" }, - { false, FT_BYTE, "GarrSiteID" }, - { false, FT_BYTE, "UpgradeLevel" }, - { true, FT_INT, "BuildSeconds" }, - { false, FT_SHORT, "CurrencyTypeID" }, - { true, FT_INT, "CurrencyQty" }, - { false, FT_SHORT, "HordeUiTextureKitID" }, - { false, FT_SHORT, "AllianceUiTextureKitID" }, - { true, FT_INT, "IconFileDataID" }, - { false, FT_SHORT, "AllianceSceneScriptPackageID" }, - { false, FT_SHORT, "HordeSceneScriptPackageID" }, - { true, FT_INT, "MaxAssignments" }, - { false, FT_BYTE, "ShipmentCapacity" }, - { false, FT_SHORT, "GarrAbilityID" }, - { false, FT_SHORT, "BonusGarrAbilityID" }, - { false, FT_SHORT, "GoldCost" }, - { false, FT_BYTE, "Flags" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 25, &GarrBuildingMeta::Instance, HOTFIX_SEL_GARR_BUILDING }; -}; - -struct GarrBuildingPlotInstLoadInfo -{ - static constexpr DB2FieldMeta Fields[6] = - { - { false, FT_FLOAT, "MapOffsetX" }, - { false, FT_FLOAT, "MapOffsetY" }, - { false, FT_INT, "ID" }, - { false, FT_BYTE, "GarrBuildingID" }, - { false, FT_SHORT, "GarrSiteLevelPlotInstID" }, - { false, FT_SHORT, "UiTextureAtlasMemberID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 6, &GarrBuildingPlotInstMeta::Instance, HOTFIX_SEL_GARR_BUILDING_PLOT_INST }; -}; - -struct GarrClassSpecLoadInfo -{ - static constexpr DB2FieldMeta Fields[8] = - { - { false, FT_STRING, "ClassSpec" }, - { false, FT_STRING, "ClassSpecMale" }, - { false, FT_STRING, "ClassSpecFemale" }, - { false, FT_INT, "ID" }, - { false, FT_SHORT, "UiTextureAtlasMemberID" }, - { false, FT_SHORT, "GarrFollItemSetID" }, - { false, FT_BYTE, "FollowerClassLimit" }, - { false, FT_BYTE, "Flags" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 8, &GarrClassSpecMeta::Instance, HOTFIX_SEL_GARR_CLASS_SPEC }; -}; - -struct GarrFollowerLoadInfo -{ - static constexpr DB2FieldMeta Fields[32] = - { - { false, FT_STRING, "HordeSourceText" }, - { false, FT_STRING, "AllianceSourceText" }, - { false, FT_STRING, "TitleName" }, - { false, FT_INT, "ID" }, - { false, FT_BYTE, "GarrTypeID" }, - { false, FT_BYTE, "GarrFollowerTypeID" }, - { true, FT_INT, "HordeCreatureID" }, - { true, FT_INT, "AllianceCreatureID" }, - { false, FT_BYTE, "HordeGarrFollRaceID" }, - { false, FT_BYTE, "AllianceGarrFollRaceID" }, - { false, FT_BYTE, "HordeGarrClassSpecID" }, - { false, FT_BYTE, "AllianceGarrClassSpecID" }, - { false, FT_BYTE, "Quality" }, - { false, FT_BYTE, "FollowerLevel" }, - { false, FT_SHORT, "ItemLevelWeapon" }, - { false, FT_SHORT, "ItemLevelArmor" }, - { true, FT_BYTE, "HordeSourceTypeEnum" }, - { true, FT_BYTE, "AllianceSourceTypeEnum" }, - { true, FT_INT, "HordeIconFileDataID" }, - { true, FT_INT, "AllianceIconFileDataID" }, - { false, FT_SHORT, "HordeGarrFollItemSetID" }, - { false, FT_SHORT, "AllianceGarrFollItemSetID" }, - { false, FT_SHORT, "HordeUITextureKitID" }, - { false, FT_SHORT, "AllianceUITextureKitID" }, - { false, FT_BYTE, "Vitality" }, - { false, FT_BYTE, "HordeFlavorGarrStringID" }, - { false, FT_BYTE, "AllianceFlavorGarrStringID" }, - { false, FT_INT, "HordeSlottingBroadcastTextID" }, - { false, FT_INT, "AllySlottingBroadcastTextID" }, - { false, FT_BYTE, "ChrClassID" }, - { false, FT_BYTE, "Flags" }, - { false, FT_BYTE, "Gender" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 32, &GarrFollowerMeta::Instance, HOTFIX_SEL_GARR_FOLLOWER }; -}; - -struct GarrFollowerXAbilityLoadInfo -{ - static constexpr DB2FieldMeta Fields[5] = - { - { false, FT_INT, "ID" }, - { false, FT_BYTE, "OrderIndex" }, - { false, FT_BYTE, "FactionIndex" }, - { false, FT_SHORT, "GarrAbilityID" }, - { false, FT_INT, "GarrFollowerID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 5, &GarrFollowerXAbilityMeta::Instance, HOTFIX_SEL_GARR_FOLLOWER_X_ABILITY }; -}; - -struct GarrMissionLoadInfo -{ - static constexpr DB2FieldMeta Fields[31] = - { - { false, FT_STRING, "Name" }, - { false, FT_STRING, "Location" }, - { false, FT_STRING, "Description" }, - { false, FT_FLOAT, "MapPosX" }, - { false, FT_FLOAT, "MapPosY" }, - { false, FT_FLOAT, "WorldPosX" }, - { false, FT_FLOAT, "WorldPosY" }, - { false, FT_INT, "ID" }, - { false, FT_BYTE, "GarrTypeID" }, - { false, FT_BYTE, "GarrMissionTypeID" }, - { false, FT_BYTE, "GarrFollowerTypeID" }, - { false, FT_BYTE, "MaxFollowers" }, - { false, FT_INT, "MissionCost" }, - { false, FT_SHORT, "MissionCostCurrencyTypesID" }, - { false, FT_BYTE, "OfferedGarrMissionTextureID" }, - { false, FT_SHORT, "UiTextureKitID" }, - { false, FT_INT, "EnvGarrMechanicID" }, - { false, FT_BYTE, "EnvGarrMechanicTypeID" }, - { false, FT_INT, "PlayerConditionID" }, - { true, FT_BYTE, "TargetLevel" }, - { false, FT_SHORT, "TargetItemLevel" }, - { true, FT_INT, "MissionDuration" }, - { true, FT_INT, "TravelDuration" }, - { false, FT_INT, "OfferDuration" }, - { false, FT_BYTE, "BaseCompletionChance" }, - { false, FT_INT, "BaseFollowerXP" }, - { false, FT_INT, "OvermaxRewardPackID" }, - { false, FT_BYTE, "FollowerDeathChance" }, - { false, FT_INT, "AreaID" }, - { false, FT_INT, "Flags" }, - { false, FT_INT, "GarrMissionSetID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 31, &GarrMissionMeta::Instance, HOTFIX_SEL_GARR_MISSION }; -}; - -struct GarrPlotLoadInfo -{ - static constexpr DB2FieldMeta Fields[9] = - { - { false, FT_INT, "ID" }, - { false, FT_STRING_NOT_LOCALIZED, "Name" }, - { false, FT_BYTE, "PlotType" }, - { true, FT_INT, "HordeConstructObjID" }, - { true, FT_INT, "AllianceConstructObjID" }, - { false, FT_BYTE, "Flags" }, - { false, FT_BYTE, "UiCategoryID" }, - { false, FT_INT, "UpgradeRequirement1" }, - { false, FT_INT, "UpgradeRequirement2" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 9, &GarrPlotMeta::Instance, HOTFIX_SEL_GARR_PLOT }; -}; - -struct GarrPlotBuildingLoadInfo -{ - static constexpr DB2FieldMeta Fields[3] = - { - { false, FT_INT, "ID" }, - { false, FT_BYTE, "GarrPlotID" }, - { false, FT_BYTE, "GarrBuildingID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 3, &GarrPlotBuildingMeta::Instance, HOTFIX_SEL_GARR_PLOT_BUILDING }; -}; - -struct GarrPlotInstanceLoadInfo -{ - static constexpr DB2FieldMeta Fields[3] = - { - { false, FT_INT, "ID" }, - { false, FT_STRING_NOT_LOCALIZED, "Name" }, - { false, FT_BYTE, "GarrPlotID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 3, &GarrPlotInstanceMeta::Instance, HOTFIX_SEL_GARR_PLOT_INSTANCE }; -}; - -struct GarrSiteLevelLoadInfo -{ - static constexpr DB2FieldMeta Fields[11] = - { - { false, FT_INT, "ID" }, - { false, FT_FLOAT, "TownHallUiPosX" }, - { false, FT_FLOAT, "TownHallUiPosY" }, - { false, FT_INT, "GarrSiteID" }, - { false, FT_BYTE, "GarrLevel" }, - { false, FT_SHORT, "MapID" }, - { false, FT_SHORT, "UpgradeMovieID" }, - { false, FT_SHORT, "UiTextureKitID" }, - { false, FT_BYTE, "MaxBuildingLevel" }, - { false, FT_SHORT, "UpgradeCost" }, - { false, FT_SHORT, "UpgradeGoldCost" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 11, &GarrSiteLevelMeta::Instance, HOTFIX_SEL_GARR_SITE_LEVEL }; -}; - -struct GarrSiteLevelPlotInstLoadInfo -{ - static constexpr DB2FieldMeta Fields[6] = - { - { false, FT_INT, "ID" }, - { false, FT_FLOAT, "UiMarkerPosX" }, - { false, FT_FLOAT, "UiMarkerPosY" }, - { false, FT_SHORT, "GarrSiteLevelID" }, - { false, FT_BYTE, "GarrPlotInstanceID" }, - { false, FT_BYTE, "UiMarkerSize" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 6, &GarrSiteLevelPlotInstMeta::Instance, HOTFIX_SEL_GARR_SITE_LEVEL_PLOT_INST }; -}; - -struct GarrTalentTreeLoadInfo -{ - static constexpr DB2FieldMeta Fields[8] = - { - { false, FT_INT, "ID" }, - { false, FT_STRING, "Name" }, - { true, FT_INT, "GarrTypeID" }, - { true, FT_INT, "ClassID" }, - { true, FT_BYTE, "MaxTiers" }, - { true, FT_BYTE, "UiOrder" }, - { true, FT_BYTE, "Flags" }, - { false, FT_SHORT, "UiTextureKitID" }, - }; - - static constexpr DB2LoadInfo Instance{ Fields, 8, &GarrTalentTreeMeta::Instance, HOTFIX_SEL_GARR_TALENT_TREE }; -}; - struct GemPropertiesLoadInfo { static constexpr DB2FieldMeta Fields[4] = diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp index 0a845931673..dcd5836c643 100644 --- a/src/server/game/DataStores/DB2Stores.cpp +++ b/src/server/game/DataStores/DB2Stores.cpp @@ -43,8 +43,6 @@ DB2Storage<AchievementEntry> sAchievementStore("Achievement.db2", &AchievementLoadInfo::Instance); DB2Storage<Achievement_CategoryEntry> sAchievementCategoryStore("Achievement_Category.db2", &AchievementCategoryLoadInfo::Instance); -DB2Storage<AdventureJournalEntry> sAdventureJournalStore("AdventureJournal.db2", &AdventureJournalLoadInfo::Instance); -DB2Storage<AdventureMapPOIEntry> sAdventureMapPOIStore("AdventureMapPOI.db2", &AdventureMapPoiLoadInfo::Instance); DB2Storage<AnimationDataEntry> sAnimationDataStore("AnimationData.db2", &AnimationDataLoadInfo::Instance); DB2Storage<AnimKitEntry> sAnimKitStore("AnimKit.db2", &AnimKitLoadInfo::Instance); DB2Storage<AreaGroupMemberEntry> sAreaGroupMemberStore("AreaGroupMember.db2", &AreaGroupMemberLoadInfo::Instance); @@ -52,29 +50,7 @@ DB2Storage<AreaTableEntry> sAreaTableStore("AreaTable.db2", DB2Storage<AreaTriggerEntry> sAreaTriggerStore("AreaTrigger.db2", &AreaTriggerLoadInfo::Instance); DB2Storage<AreaTriggerActionSetEntry> sAreaTriggerActionSetStore("AreaTriggerActionSet.db2", &AreaTriggerActionSetLoadInfo::Instance); DB2Storage<ArmorLocationEntry> sArmorLocationStore("ArmorLocation.db2", &ArmorLocationLoadInfo::Instance); -DB2Storage<ArtifactEntry> sArtifactStore("Artifact.db2", &ArtifactLoadInfo::Instance); -DB2Storage<ArtifactAppearanceEntry> sArtifactAppearanceStore("ArtifactAppearance.db2", &ArtifactAppearanceLoadInfo::Instance); -DB2Storage<ArtifactAppearanceSetEntry> sArtifactAppearanceSetStore("ArtifactAppearanceSet.db2", &ArtifactAppearanceSetLoadInfo::Instance); -DB2Storage<ArtifactCategoryEntry> sArtifactCategoryStore("ArtifactCategory.db2", &ArtifactCategoryLoadInfo::Instance); -DB2Storage<ArtifactPowerEntry> sArtifactPowerStore("ArtifactPower.db2", &ArtifactPowerLoadInfo::Instance); -DB2Storage<ArtifactPowerLinkEntry> sArtifactPowerLinkStore("ArtifactPowerLink.db2", &ArtifactPowerLinkLoadInfo::Instance); -DB2Storage<ArtifactPowerPickerEntry> sArtifactPowerPickerStore("ArtifactPowerPicker.db2", &ArtifactPowerPickerLoadInfo::Instance); -DB2Storage<ArtifactPowerRankEntry> sArtifactPowerRankStore("ArtifactPowerRank.db2", &ArtifactPowerRankLoadInfo::Instance); -DB2Storage<ArtifactQuestXPEntry> sArtifactQuestXPStore("ArtifactQuestXP.db2", &ArtifactQuestXpLoadInfo::Instance); -DB2Storage<ArtifactTierEntry> sArtifactTierStore("ArtifactTier.db2", &ArtifactTierLoadInfo::Instance); -DB2Storage<ArtifactUnlockEntry> sArtifactUnlockStore("ArtifactUnlock.db2", &ArtifactUnlockLoadInfo::Instance); DB2Storage<AuctionHouseEntry> sAuctionHouseStore("AuctionHouse.db2", &AuctionHouseLoadInfo::Instance); -DB2Storage<AzeriteEmpoweredItemEntry> sAzeriteEmpoweredItemStore("AzeriteEmpoweredItem.db2", &AzeriteEmpoweredItemLoadInfo::Instance); -DB2Storage<AzeriteEssenceEntry> sAzeriteEssenceStore("AzeriteEssence.db2", &AzeriteEssenceLoadInfo::Instance); -DB2Storage<AzeriteEssencePowerEntry> sAzeriteEssencePowerStore("AzeriteEssencePower.db2", &AzeriteEssencePowerLoadInfo::Instance); -DB2Storage<AzeriteItemEntry> sAzeriteItemStore("AzeriteItem.db2", &AzeriteItemLoadInfo::Instance); -DB2Storage<AzeriteItemMilestonePowerEntry> sAzeriteItemMilestonePowerStore("AzeriteItemMilestonePower.db2", &AzeriteItemMilestonePowerLoadInfo::Instance); -DB2Storage<AzeriteKnowledgeMultiplierEntry> sAzeriteKnowledgeMultiplierStore("AzeriteKnowledgeMultiplier.db2", &AzeriteKnowledgeMultiplierLoadInfo::Instance); -DB2Storage<AzeriteLevelInfoEntry> sAzeriteLevelInfoStore("AzeriteLevelInfo.db2", &AzeriteLevelInfoLoadInfo::Instance); -DB2Storage<AzeritePowerEntry> sAzeritePowerStore("AzeritePower.db2", &AzeritePowerLoadInfo::Instance); -DB2Storage<AzeritePowerSetMemberEntry> sAzeritePowerSetMemberStore("AzeritePowerSetMember.db2", &AzeritePowerSetMemberLoadInfo::Instance); -DB2Storage<AzeriteTierUnlockEntry> sAzeriteTierUnlockStore("AzeriteTierUnlock.db2", &AzeriteTierUnlockLoadInfo::Instance); -DB2Storage<AzeriteTierUnlockSetEntry> sAzeriteTierUnlockSetStore("AzeriteTierUnlockSet.db2", &AzeriteTierUnlockSetLoadInfo::Instance); DB2Storage<BankBagSlotPricesEntry> sBankBagSlotPricesStore("BankBagSlotPrices.db2", &BankBagSlotPricesLoadInfo::Instance); DB2Storage<BannedAddonsEntry> sBannedAddonsStore("BannedAddons.db2", &BannedAddonsLoadInfo::Instance); DB2Storage<BarberShopStyleEntry> sBarberShopStyleStore("BarberShopStyle.db2", &BarberShopStyleLoadInfo::Instance); @@ -138,19 +114,6 @@ DB2Storage<FriendshipReputationEntry> sFriendshipReputationStore("Frie DB2Storage<GameObjectArtKitEntry> sGameObjectArtKitStore("GameObjectArtKit.db2", &GameobjectArtKitLoadInfo::Instance); DB2Storage<GameObjectDisplayInfoEntry> sGameObjectDisplayInfoStore("GameObjectDisplayInfo.db2", &GameobjectDisplayInfoLoadInfo::Instance); DB2Storage<GameObjectsEntry> sGameObjectsStore("GameObjects.db2", &GameobjectsLoadInfo::Instance); -DB2Storage<GarrAbilityEntry> sGarrAbilityStore("GarrAbility.db2", &GarrAbilityLoadInfo::Instance); -DB2Storage<GarrBuildingEntry> sGarrBuildingStore("GarrBuilding.db2", &GarrBuildingLoadInfo::Instance); -DB2Storage<GarrBuildingPlotInstEntry> sGarrBuildingPlotInstStore("GarrBuildingPlotInst.db2", &GarrBuildingPlotInstLoadInfo::Instance); -DB2Storage<GarrClassSpecEntry> sGarrClassSpecStore("GarrClassSpec.db2", &GarrClassSpecLoadInfo::Instance); -DB2Storage<GarrFollowerEntry> sGarrFollowerStore("GarrFollower.db2", &GarrFollowerLoadInfo::Instance); -DB2Storage<GarrFollowerXAbilityEntry> sGarrFollowerXAbilityStore("GarrFollowerXAbility.db2", &GarrFollowerXAbilityLoadInfo::Instance); -DB2Storage<GarrMissionEntry> sGarrMissionStore("GarrMission.db2", &GarrMissionLoadInfo::Instance); -DB2Storage<GarrPlotEntry> sGarrPlotStore("GarrPlot.db2", &GarrPlotLoadInfo::Instance); -DB2Storage<GarrPlotBuildingEntry> sGarrPlotBuildingStore("GarrPlotBuilding.db2", &GarrPlotBuildingLoadInfo::Instance); -DB2Storage<GarrPlotInstanceEntry> sGarrPlotInstanceStore("GarrPlotInstance.db2", &GarrPlotInstanceLoadInfo::Instance); -DB2Storage<GarrSiteLevelEntry> sGarrSiteLevelStore("GarrSiteLevel.db2", &GarrSiteLevelLoadInfo::Instance); -DB2Storage<GarrSiteLevelPlotInstEntry> sGarrSiteLevelPlotInstStore("GarrSiteLevelPlotInst.db2", &GarrSiteLevelPlotInstLoadInfo::Instance); -DB2Storage<GarrTalentTreeEntry> sGarrTalentTreeStore("GarrTalentTree.db2", &GarrTalentTreeLoadInfo::Instance); DB2Storage<GemPropertiesEntry> sGemPropertiesStore("GemProperties.db2", &GemPropertiesLoadInfo::Instance); DB2Storage<GlyphBindableSpellEntry> sGlyphBindableSpellStore("GlyphBindableSpell.db2", &GlyphBindableSpellLoadInfo::Instance); DB2Storage<GlyphSlotEntry> sGlyphSlotStore("GlyphSlot.db2", &GlyphSlotLoadInfo::Instance); @@ -378,9 +341,6 @@ DEFINE_DB2_SET_COMPARATOR(ChrClassesXPowerTypesEntry) 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; -typedef std::unordered_map<uint32, std::vector<uint32>> ArtifactPowerLinksContainer; -typedef std::unordered_map<std::pair<uint32, uint8>, ArtifactPowerRankEntry const*> ArtifactPowerRanksContainer; typedef ChrSpecializationEntry const* ChrSpecializationByIndexContainer[MAX_CLASSES + 1][MAX_SPECIALIZATIONS]; typedef std::unordered_map<uint32 /*curveID*/, std::vector<DBCPosition2D>> CurvePointsContainer; typedef std::map<std::tuple<uint32, uint8, uint8, uint8>, EmotesTextSoundEntry const*> EmotesTextSoundContainer; @@ -432,15 +392,6 @@ namespace std::array<std::map<HotfixBlobKey, std::vector<DB2Manager::HotfixOptionalData>>, TOTAL_LOCALES> _hotfixOptionalData; AreaGroupMemberContainer _areaGroupMembers; - ArtifactPowersContainer _artifactPowers; - ArtifactPowerLinksContainer _artifactPowerLinks; - ArtifactPowerRanksContainer _artifactPowerRanks; - std::unordered_map<uint32 /*itemId*/, AzeriteEmpoweredItemEntry const*> _azeriteEmpoweredItems; - std::unordered_map<std::pair<uint32 /*azeriteEssenceId*/, uint32 /*rank*/>, AzeriteEssencePowerEntry const*> _azeriteEssencePowersByIdAndRank; - std::vector<AzeriteItemMilestonePowerEntry const*> _azeriteItemMilestonePowers; - std::array<AzeriteItemMilestonePowerEntry const*, MAX_AZERITE_ESSENCE_SLOT> _azeriteItemMilestonePowerByEssenceSlot; - std::unordered_map<uint32 /*azeritePowerSetId*/, std::vector<AzeritePowerSetMemberEntry const*>> _azeritePowers; - std::unordered_map<std::pair<uint32 /*azeriteUnlockSetId*/, ItemContext>, std::array<uint8, MAX_AZERITE_EMPOWERED_TIER>> _azeriteTierUnlockLevels; std::array<ChrClassUIDisplayEntry const*, MAX_CLASSES> _uiDisplayByClass; std::array<std::array<uint32, MAX_POWERS>, MAX_CLASSES> _powersByClass; std::unordered_map<uint32 /*chrCustomizationOptionId*/, std::vector<ChrCustomizationChoiceEntry const*>> _chrCustomizationChoicesByOption; @@ -629,8 +580,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul LOAD_DB2(sAchievementStore); LOAD_DB2(sAchievementCategoryStore); - LOAD_DB2(sAdventureJournalStore); - LOAD_DB2(sAdventureMapPOIStore); LOAD_DB2(sAnimationDataStore); LOAD_DB2(sAnimKitStore); LOAD_DB2(sAreaGroupMemberStore); @@ -638,28 +587,7 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul LOAD_DB2(sAreaTriggerStore); LOAD_DB2(sAreaTriggerActionSetStore); LOAD_DB2(sArmorLocationStore); - LOAD_DB2(sArtifactStore); - LOAD_DB2(sArtifactAppearanceStore); - LOAD_DB2(sArtifactAppearanceSetStore); - LOAD_DB2(sArtifactCategoryStore); - LOAD_DB2(sArtifactPowerStore); - LOAD_DB2(sArtifactPowerLinkStore); - LOAD_DB2(sArtifactPowerPickerStore); - LOAD_DB2(sArtifactPowerRankStore); - LOAD_DB2(sArtifactTierStore); - LOAD_DB2(sArtifactUnlockStore); LOAD_DB2(sAuctionHouseStore); - LOAD_DB2(sAzeriteEmpoweredItemStore); - LOAD_DB2(sAzeriteEssenceStore); - LOAD_DB2(sAzeriteEssencePowerStore); - LOAD_DB2(sAzeriteItemStore); - LOAD_DB2(sAzeriteItemMilestonePowerStore); - LOAD_DB2(sAzeriteKnowledgeMultiplierStore); - LOAD_DB2(sAzeriteLevelInfoStore); - LOAD_DB2(sAzeritePowerStore); - LOAD_DB2(sAzeritePowerSetMemberStore); - LOAD_DB2(sAzeriteTierUnlockStore); - LOAD_DB2(sAzeriteTierUnlockSetStore); LOAD_DB2(sBankBagSlotPricesStore); LOAD_DB2(sBannedAddonsStore); LOAD_DB2(sBarberShopStyleStore); @@ -723,19 +651,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul LOAD_DB2(sGameObjectsStore); LOAD_DB2(sGameObjectArtKitStore); LOAD_DB2(sGameObjectDisplayInfoStore); - LOAD_DB2(sGarrAbilityStore); - LOAD_DB2(sGarrBuildingStore); - LOAD_DB2(sGarrBuildingPlotInstStore); - LOAD_DB2(sGarrClassSpecStore); - LOAD_DB2(sGarrFollowerStore); - LOAD_DB2(sGarrFollowerXAbilityStore); - LOAD_DB2(sGarrMissionStore); - LOAD_DB2(sGarrPlotStore); - LOAD_DB2(sGarrPlotBuildingStore); - LOAD_DB2(sGarrPlotInstanceStore); - LOAD_DB2(sGarrSiteLevelStore); - LOAD_DB2(sGarrSiteLevelPlotInstStore); - LOAD_DB2(sGarrTalentTreeStore); LOAD_DB2(sGemPropertiesStore); LOAD_DB2(sGlyphBindableSpellStore); LOAD_DB2(sGlyphSlotStore); @@ -986,53 +901,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul "PLAYER_EXPLORED_ZONES_SIZE must be at least %d", (areaTable->AreaBit + 63) / 64); } - for (ArtifactPowerEntry const* artifactPower : sArtifactPowerStore) - _artifactPowers[artifactPower->ArtifactID].push_back(artifactPower); - - for (ArtifactPowerLinkEntry const* artifactPowerLink : sArtifactPowerLinkStore) - { - _artifactPowerLinks[artifactPowerLink->PowerA].push_back(artifactPowerLink->PowerB); - _artifactPowerLinks[artifactPowerLink->PowerB].push_back(artifactPowerLink->PowerA); - } - - for (ArtifactPowerRankEntry const* artifactPowerRank : sArtifactPowerRankStore) - _artifactPowerRanks[std::pair<uint32, uint8>{ artifactPowerRank->ArtifactPowerID, artifactPowerRank->RankIndex }] = artifactPowerRank; - - for (AzeriteEmpoweredItemEntry const* azeriteEmpoweredItem : sAzeriteEmpoweredItemStore) - _azeriteEmpoweredItems[azeriteEmpoweredItem->ItemID] = azeriteEmpoweredItem; - - for (AzeriteEssencePowerEntry const* azeriteEssencePower : sAzeriteEssencePowerStore) - _azeriteEssencePowersByIdAndRank[std::pair<uint32, uint32>{ azeriteEssencePower->AzeriteEssenceID, azeriteEssencePower->Tier }] = azeriteEssencePower; - - for (AzeriteItemMilestonePowerEntry const* azeriteItemMilestonePower : sAzeriteItemMilestonePowerStore) - _azeriteItemMilestonePowers.push_back(azeriteItemMilestonePower); - - std::sort(_azeriteItemMilestonePowers.begin(), _azeriteItemMilestonePowers.end(), [](AzeriteItemMilestonePowerEntry const* a1, AzeriteItemMilestonePowerEntry const* a2) - { - return a1->RequiredLevel < a2->RequiredLevel; - }); - - { - uint32 azeriteEssenceSlot = 0; - for (AzeriteItemMilestonePowerEntry const* azeriteItemMilestonePower : _azeriteItemMilestonePowers) - { - AzeriteItemMilestoneType type = AzeriteItemMilestoneType(azeriteItemMilestonePower->Type); - if (type == AzeriteItemMilestoneType::MajorEssence || type == AzeriteItemMilestoneType::MinorEssence) - { - ASSERT(azeriteEssenceSlot < MAX_AZERITE_ESSENCE_SLOT); - _azeriteItemMilestonePowerByEssenceSlot[azeriteEssenceSlot] = azeriteItemMilestonePower; - ++azeriteEssenceSlot; - } - } - } - - for (AzeritePowerSetMemberEntry const* azeritePowerSetMember : sAzeritePowerSetMemberStore) - if (sAzeritePowerStore.LookupEntry(azeritePowerSetMember->AzeritePowerID)) - _azeritePowers[azeritePowerSetMember->AzeritePowerSetID].push_back(azeritePowerSetMember); - - for (AzeriteTierUnlockEntry const* azeriteTierUnlock : sAzeriteTierUnlockStore) - _azeriteTierUnlockLevels[std::pair<uint32, ItemContext>{ azeriteTierUnlock->AzeriteTierUnlockSetID, ItemContext(azeriteTierUnlock->ItemCreationContext) }][azeriteTierUnlock->Tier] = azeriteTierUnlock->AzeriteLevel; - for (BattlemasterListEntry const* battlemaster : sBattlemasterListStore) { if (battlemaster->MaxLevel < battlemaster->MinLevel) @@ -1892,74 +1760,6 @@ ContentTuningEntry const* DB2Manager::GetContentTuningForArea(AreaTableEntry con return nullptr; } -std::vector<ArtifactPowerEntry const*> DB2Manager::GetArtifactPowers(uint8 artifactId) const -{ - auto itr = _artifactPowers.find(artifactId); - if (itr != _artifactPowers.end()) - return itr->second; - - return std::vector<ArtifactPowerEntry const*>{}; -} - -std::vector<uint32> const* DB2Manager::GetArtifactPowerLinks(uint32 artifactPowerId) const -{ - return Trinity::Containers::MapGetValuePtr(_artifactPowerLinks, artifactPowerId); -} - -ArtifactPowerRankEntry const* DB2Manager::GetArtifactPowerRank(uint32 artifactPowerId, uint8 rank) const -{ - return Trinity::Containers::MapGetValuePtr(_artifactPowerRanks, { artifactPowerId, rank }); -} - -AzeriteEmpoweredItemEntry const* DB2Manager::GetAzeriteEmpoweredItem(uint32 itemId) const -{ - return Trinity::Containers::MapGetValuePtr(_azeriteEmpoweredItems, itemId); -} - -bool DB2Manager::IsAzeriteItem(uint32 itemId) const -{ - return std::find_if(sAzeriteItemStore.begin(), sAzeriteItemStore.end(), - [&](AzeriteItemEntry const* azeriteItem) { return azeriteItem->ItemID == int32(itemId); }) != sAzeriteItemStore.end(); -} - -AzeriteEssencePowerEntry const* DB2Manager::GetAzeriteEssencePower(uint32 azeriteEssenceId, uint32 rank) const -{ - return Trinity::Containers::MapGetValuePtr(_azeriteEssencePowersByIdAndRank, std::make_pair(azeriteEssenceId, rank)); -} - -std::vector<AzeriteItemMilestonePowerEntry const*> const& DB2Manager::GetAzeriteItemMilestonePowers() const -{ - return _azeriteItemMilestonePowers; -} - -AzeriteItemMilestonePowerEntry const* DB2Manager::GetAzeriteItemMilestonePower(uint8 slot) const -{ - ASSERT(slot < MAX_AZERITE_ESSENCE_SLOT, "Slot %u must be lower than MAX_AZERITE_ESSENCE_SLOT (%u)", uint32(slot), MAX_AZERITE_ESSENCE_SLOT); - return _azeriteItemMilestonePowerByEssenceSlot[slot]; -} - -std::vector<AzeritePowerSetMemberEntry const*> const* DB2Manager::GetAzeritePowers(uint32 itemId) const -{ - if (AzeriteEmpoweredItemEntry const* azeriteEmpoweredItem = GetAzeriteEmpoweredItem(itemId)) - return Trinity::Containers::MapGetValuePtr(_azeritePowers, azeriteEmpoweredItem->AzeritePowerSetID); - - return nullptr; -} - -uint32 DB2Manager::GetRequiredAzeriteLevelForAzeritePowerTier(uint32 azeriteUnlockSetId, ItemContext context, uint32 tier) const -{ - ASSERT(tier < MAX_AZERITE_EMPOWERED_TIER); - if (std::array<uint8, MAX_AZERITE_EMPOWERED_TIER> const* levels = Trinity::Containers::MapGetValuePtr(_azeriteTierUnlockLevels, std::make_pair(azeriteUnlockSetId, context))) - return (*levels)[tier]; - - AzeriteTierUnlockSetEntry const* azeriteTierUnlockSet = sAzeriteTierUnlockSetStore.LookupEntry(azeriteUnlockSetId); - if (azeriteTierUnlockSet && azeriteTierUnlockSet->Flags & AZERITE_TIER_UNLOCK_SET_FLAG_DEFAULT) - if (std::array<uint8, MAX_AZERITE_EMPOWERED_TIER> const* levels = Trinity::Containers::MapGetValuePtr(_azeriteTierUnlockLevels, std::make_pair(azeriteUnlockSetId, ItemContext::NONE))) - return (*levels)[tier]; - - return sAzeriteLevelInfoStore.GetNumRows(); -} - char const* DB2Manager::GetBroadcastTextValue(BroadcastTextEntry const* broadcastText, LocaleConstant locale /*= DEFAULT_LOCALE*/, uint8 gender /*= GENDER_MALE*/, bool forceGender /*= false*/) { if ((gender == GENDER_FEMALE || gender == GENDER_NONE) && (forceGender || broadcastText->Text1[DEFAULT_LOCALE][0] != '\0')) diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h index ace88e723cf..edb5625773c 100644 --- a/src/server/game/DataStores/DB2Stores.h +++ b/src/server/game/DataStores/DB2Stores.h @@ -38,28 +38,13 @@ class DB2HotfixGeneratorBase; TC_GAME_API extern DB2Storage<AchievementEntry> sAchievementStore; TC_GAME_API extern DB2Storage<Achievement_CategoryEntry> sAchievementCategoryStore; -TC_GAME_API extern DB2Storage<AdventureJournalEntry> sAdventureJournalStore; -TC_GAME_API extern DB2Storage<AdventureMapPOIEntry> sAdventureMapPOIStore; TC_GAME_API extern DB2Storage<AnimationDataEntry> sAnimationDataStore; TC_GAME_API extern DB2Storage<AnimKitEntry> sAnimKitStore; TC_GAME_API extern DB2Storage<AreaTableEntry> sAreaTableStore; TC_GAME_API extern DB2Storage<AreaTriggerEntry> sAreaTriggerStore; TC_GAME_API extern DB2Storage<AreaTriggerActionSetEntry> sAreaTriggerActionSetStore; TC_GAME_API extern DB2Storage<ArmorLocationEntry> sArmorLocationStore; -TC_GAME_API extern DB2Storage<ArtifactEntry> sArtifactStore; -TC_GAME_API extern DB2Storage<ArtifactCategoryEntry> sArtifactCategoryStore; -TC_GAME_API extern DB2Storage<ArtifactAppearanceEntry> sArtifactAppearanceStore; -TC_GAME_API extern DB2Storage<ArtifactAppearanceSetEntry> sArtifactAppearanceSetStore; -TC_GAME_API extern DB2Storage<ArtifactPowerEntry> sArtifactPowerStore; -TC_GAME_API extern DB2Storage<ArtifactPowerPickerEntry> sArtifactPowerPickerStore; -TC_GAME_API extern DB2Storage<ArtifactTierEntry> sArtifactTierStore; -TC_GAME_API extern DB2Storage<ArtifactUnlockEntry> sArtifactUnlockStore; TC_GAME_API extern DB2Storage<AuctionHouseEntry> sAuctionHouseStore; -TC_GAME_API extern DB2Storage<AzeriteEssenceEntry> sAzeriteEssenceStore; -TC_GAME_API extern DB2Storage<AzeriteKnowledgeMultiplierEntry> sAzeriteKnowledgeMultiplierStore; -TC_GAME_API extern DB2Storage<AzeriteItemMilestonePowerEntry> sAzeriteItemMilestonePowerStore; -TC_GAME_API extern DB2Storage<AzeriteLevelInfoEntry> sAzeriteLevelInfoStore; -TC_GAME_API extern DB2Storage<AzeritePowerEntry> sAzeritePowerStore; TC_GAME_API extern DB2Storage<BankBagSlotPricesEntry> sBankBagSlotPricesStore; TC_GAME_API extern DB2Storage<BannedAddonsEntry> sBannedAddonsStore; TC_GAME_API extern DB2Storage<BarberShopStyleEntry> sBarberShopStyleStore; @@ -109,19 +94,6 @@ TC_GAME_API extern DB2Storage<FriendshipReputationEntry> sFriendshipR TC_GAME_API extern DB2Storage<GameObjectArtKitEntry> sGameObjectArtKitStore; TC_GAME_API extern DB2Storage<GameObjectDisplayInfoEntry> sGameObjectDisplayInfoStore; TC_GAME_API extern DB2Storage<GameObjectsEntry> sGameObjectsStore; -TC_GAME_API extern DB2Storage<GarrAbilityEntry> sGarrAbilityStore; -TC_GAME_API extern DB2Storage<GarrBuildingEntry> sGarrBuildingStore; -TC_GAME_API extern DB2Storage<GarrBuildingPlotInstEntry> sGarrBuildingPlotInstStore; -TC_GAME_API extern DB2Storage<GarrClassSpecEntry> sGarrClassSpecStore; -TC_GAME_API extern DB2Storage<GarrFollowerEntry> sGarrFollowerStore; -TC_GAME_API extern DB2Storage<GarrFollowerXAbilityEntry> sGarrFollowerXAbilityStore; -TC_GAME_API extern DB2Storage<GarrMissionEntry> sGarrMissionStore; -TC_GAME_API extern DB2Storage<GarrPlotEntry> sGarrPlotStore; -TC_GAME_API extern DB2Storage<GarrPlotBuildingEntry> sGarrPlotBuildingStore; -TC_GAME_API extern DB2Storage<GarrPlotInstanceEntry> sGarrPlotInstanceStore; -TC_GAME_API extern DB2Storage<GarrSiteLevelEntry> sGarrSiteLevelStore; -TC_GAME_API extern DB2Storage<GarrSiteLevelPlotInstEntry> sGarrSiteLevelPlotInstStore; -TC_GAME_API extern DB2Storage<GarrTalentTreeEntry> sGarrTalentTreeStore; TC_GAME_API extern DB2Storage<GemPropertiesEntry> sGemPropertiesStore; TC_GAME_API extern DB2Storage<GlyphSlotEntry> sGlyphSlotStore; TC_GAME_API extern DB2Storage<GlyphPropertiesEntry> sGlyphPropertiesStore; @@ -425,16 +397,6 @@ public: std::vector<uint32> GetAreasForGroup(uint32 areaGroupId) const; static bool IsInArea(uint32 objectAreaId, uint32 areaId); static ContentTuningEntry const* GetContentTuningForArea(AreaTableEntry const* areaEntry); - std::vector<ArtifactPowerEntry const*> GetArtifactPowers(uint8 artifactId) const; - std::vector<uint32> const* GetArtifactPowerLinks(uint32 artifactPowerId) const; - ArtifactPowerRankEntry const* GetArtifactPowerRank(uint32 artifactPowerId, uint8 rank) const; - AzeriteEmpoweredItemEntry const* GetAzeriteEmpoweredItem(uint32 itemId) const; - bool IsAzeriteItem(uint32 itemId) const; - AzeriteEssencePowerEntry const* GetAzeriteEssencePower(uint32 azeriteEssenceId, uint32 rank) const; - std::vector<AzeriteItemMilestonePowerEntry const*> const& GetAzeriteItemMilestonePowers() const; - AzeriteItemMilestonePowerEntry const* GetAzeriteItemMilestonePower(uint8 slot) const; - std::vector<AzeritePowerSetMemberEntry const*> const* GetAzeritePowers(uint32 itemId) const; - uint32 GetRequiredAzeriteLevelForAzeritePowerTier(uint32 azeriteUnlockSetId, ItemContext context, uint32 tier) const; static char const* GetBroadcastTextValue(BroadcastTextEntry const* broadcastText, LocaleConstant locale = DEFAULT_LOCALE, uint8 gender = GENDER_MALE, bool forceGender = false); int32 const* GetBroadcastTextDuration(int32 broadcastTextId, LocaleConstant locale = DEFAULT_LOCALE) const; ChrClassUIDisplayEntry const* GetUiDisplayForClass(Classes unitClass) const; diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h index e141e2f0942..f2dc052d4dd 100644 --- a/src/server/game/DataStores/DB2Structure.h +++ b/src/server/game/DataStores/DB2Structure.h @@ -52,50 +52,6 @@ struct Achievement_CategoryEntry int8 UiOrder; }; -struct AdventureJournalEntry -{ - uint32 ID; - LocalizedString Name; - LocalizedString Description; - LocalizedString ButtonText; - LocalizedString RewardDescription; - LocalizedString ContinueDescription; - uint8 Type; - uint32 PlayerConditionID; - int32 Flags; - uint8 ButtonActionType; - int32 TextureFileDataID; - uint16 LfgDungeonID; - uint32 QuestID; - uint16 BattleMasterListID; - uint8 PriorityMin; - uint8 PriorityMax; - int32 ItemID; - uint32 ItemQuantity; - uint16 CurrencyType; - uint8 CurrencyQuantity; - uint16 UiMapID; - std::array<uint32, 2> BonusPlayerConditionID; - std::array<uint8, 2> BonusValue; -}; - -struct AdventureMapPOIEntry -{ - uint32 ID; - LocalizedString Title; - LocalizedString Description; - DBCPosition2D WorldPosition; - int8 Type; - uint32 PlayerConditionID; - uint32 QuestID; - uint32 LfgDungeonID; - int32 RewardItemID; - uint32 UiTextureAtlasMemberID; - uint32 UiTextureKitID; - int32 MapID; - uint32 AreaTableID; -}; - struct AnimationDataEntry { uint32 ID; @@ -198,120 +154,6 @@ struct ArmorLocationEntry float Modifier; }; -struct ArtifactEntry -{ - LocalizedString Name; - uint32 ID; - uint16 UiTextureKitID; - int32 UiNameColor; - int32 UiBarOverlayColor; - int32 UiBarBackgroundColor; - uint16 ChrSpecializationID; - uint8 Flags; - uint8 ArtifactCategoryID; - uint32 UiModelSceneID; - uint32 SpellVisualKitID; -}; - -struct ArtifactAppearanceEntry -{ - LocalizedString Name; - uint32 ID; - uint16 ArtifactAppearanceSetID; - uint8 DisplayIndex; - uint32 UnlockPlayerConditionID; - uint8 ItemAppearanceModifierID; - int32 UiSwatchColor; - float UiModelSaturation; - float UiModelOpacity; - uint8 OverrideShapeshiftFormID; - uint32 OverrideShapeshiftDisplayID; - uint32 UiItemAppearanceID; - uint32 UiAltItemAppearanceID; - uint8 Flags; - uint16 UiCameraID; -}; - -struct ArtifactAppearanceSetEntry -{ - LocalizedString Name; - LocalizedString Description; - uint32 ID; - uint8 DisplayIndex; - uint16 UiCameraID; - uint16 AltHandUICameraID; - int8 ForgeAttachmentOverride; - uint8 Flags; - uint32 ArtifactID; -}; - -struct ArtifactCategoryEntry -{ - uint32 ID; - int16 XpMultCurrencyID; - int16 XpMultCurveID; -}; - -struct ArtifactPowerEntry -{ - DBCPosition2D DisplayPos; - uint32 ID; - uint8 ArtifactID; - uint8 MaxPurchasableRank; - int32 Label; - uint8 Flags; - uint8 Tier; -}; - -struct ArtifactPowerLinkEntry -{ - uint32 ID; - uint16 PowerA; - uint16 PowerB; -}; - -struct ArtifactPowerPickerEntry -{ - uint32 ID; - uint32 PlayerConditionID; -}; - -struct ArtifactPowerRankEntry -{ - uint32 ID; - uint8 RankIndex; - int32 SpellID; - uint16 ItemBonusListID; - float AuraPointsOverride; - uint32 ArtifactPowerID; -}; - -struct ArtifactQuestXPEntry -{ - uint32 ID; - std::array<uint32, 10> Difficulty; -}; - -struct ArtifactTierEntry -{ - uint32 ID; - uint32 ArtifactTier; - uint32 MaxNumTraits; - uint32 MaxArtifactKnowledge; - uint32 KnowledgePlayerCondition; - uint32 MinimumEmpowerKnowledge; -}; - -struct ArtifactUnlockEntry -{ - uint32 ID; - uint32 PowerID; - uint8 PowerRank; - uint16 ItemBonusListID; - uint32 PlayerConditionID; - uint32 ArtifactID; -}; - struct AuctionHouseEntry { uint32 ID; @@ -321,98 +163,6 @@ struct AuctionHouseEntry uint8 ConsignmentRate; }; -struct AzeriteEmpoweredItemEntry -{ - uint32 ID; - int32 ItemID; - uint32 AzeriteTierUnlockSetID; - uint32 AzeritePowerSetID; -}; - -struct AzeriteEssenceEntry -{ - uint32 ID; - LocalizedString Name; - LocalizedString Description; - int32 SpecSetID; -}; - -struct AzeriteEssencePowerEntry -{ - uint32 ID; - LocalizedString SourceAlliance; - LocalizedString SourceHorde; - int32 AzeriteEssenceID; - uint8 Tier; - int32 MajorPowerDescription; - int32 MinorPowerDescription; - int32 MajorPowerActual; - int32 MinorPowerActual; -}; - -struct AzeriteItemEntry -{ - uint32 ID; - int32 ItemID; -}; - -struct AzeriteItemMilestonePowerEntry -{ - uint32 ID; - int32 RequiredLevel; - int32 AzeritePowerID; - int32 Type; - int32 AutoUnlock; -}; - -struct AzeriteKnowledgeMultiplierEntry -{ - uint32 ID; - float Multiplier; -}; - -struct AzeriteLevelInfoEntry -{ - uint32 ID; - uint64 BaseExperienceToNextLevel; - uint64 MinimumExperienceToNextLevel; - int32 ItemLevel; -}; - -struct AzeritePowerEntry -{ - uint32 ID; - int32 SpellID; - int32 ItemBonusListID; - int32 SpecSetID; - int32 Flags; -}; - -struct AzeritePowerSetMemberEntry -{ - uint32 ID; - uint32 AzeritePowerSetID; - int32 AzeritePowerID; - int32 Class; - uint8 Tier; - int32 OrderIndex; -}; - -struct AzeriteTierUnlockEntry -{ - uint32 ID; - uint8 ItemCreationContext; - uint8 Tier; - uint8 AzeriteLevel; - uint32 AzeriteTierUnlockSetID; -}; - -struct AzeriteTierUnlockSetEntry -{ - uint32 ID; - int32 Flags; -}; - struct BankBagSlotPricesEntry { uint32 ID; @@ -693,8 +443,8 @@ struct ChrCustomizationOptionEntry uint32 ID; uint16 SecondaryID; int32 Flags; - uint32 Field110055087004; - int32 Field110055087005; + uint32 ChrRacesID; + int32 Sex; int32 ChrModelID; int32 SortIndex; int32 ChrCustomizationCategoryID; @@ -1634,207 +1384,6 @@ struct GameObjectsEntry std::array<int32, 8> PropValue; }; -struct GarrAbilityEntry -{ - LocalizedString Name; - LocalizedString Description; - uint32 ID; - uint8 GarrAbilityCategoryID; - uint8 GarrFollowerTypeID; - int32 IconFileDataID; - uint16 FactionChangeGarrAbilityID; - uint16 Flags; -}; - -struct GarrBuildingEntry -{ - uint32 ID; - LocalizedString HordeName; - LocalizedString AllianceName; - LocalizedString Description; - LocalizedString Tooltip; - uint8 GarrTypeID; - uint8 BuildingType; - int32 HordeGameObjectID; - int32 AllianceGameObjectID; - uint8 GarrSiteID; - uint8 UpgradeLevel; - int32 BuildSeconds; - uint16 CurrencyTypeID; - int32 CurrencyQty; - uint16 HordeUiTextureKitID; - uint16 AllianceUiTextureKitID; - int32 IconFileDataID; - uint16 AllianceSceneScriptPackageID; - uint16 HordeSceneScriptPackageID; - int32 MaxAssignments; - uint8 ShipmentCapacity; - uint16 GarrAbilityID; - uint16 BonusGarrAbilityID; - uint16 GoldCost; - uint8 Flags; -}; - -struct GarrBuildingPlotInstEntry -{ - DBCPosition2D MapOffset; - uint32 ID; - uint8 GarrBuildingID; - uint16 GarrSiteLevelPlotInstID; - uint16 UiTextureAtlasMemberID; -}; - -struct GarrClassSpecEntry -{ - LocalizedString ClassSpec; - LocalizedString ClassSpecMale; - LocalizedString ClassSpecFemale; - uint32 ID; - uint16 UiTextureAtlasMemberID; - uint16 GarrFollItemSetID; - uint8 FollowerClassLimit; - uint8 Flags; -}; - -struct GarrFollowerEntry -{ - LocalizedString HordeSourceText; - LocalizedString AllianceSourceText; - LocalizedString TitleName; - uint32 ID; - uint8 GarrTypeID; - uint8 GarrFollowerTypeID; - int32 HordeCreatureID; - int32 AllianceCreatureID; - uint8 HordeGarrFollRaceID; - uint8 AllianceGarrFollRaceID; - uint8 HordeGarrClassSpecID; - uint8 AllianceGarrClassSpecID; - uint8 Quality; - uint8 FollowerLevel; - uint16 ItemLevelWeapon; - uint16 ItemLevelArmor; - int8 HordeSourceTypeEnum; - int8 AllianceSourceTypeEnum; - int32 HordeIconFileDataID; - int32 AllianceIconFileDataID; - uint16 HordeGarrFollItemSetID; - uint16 AllianceGarrFollItemSetID; - uint16 HordeUITextureKitID; - uint16 AllianceUITextureKitID; - uint8 Vitality; - uint8 HordeFlavorGarrStringID; - uint8 AllianceFlavorGarrStringID; - uint32 HordeSlottingBroadcastTextID; - uint32 AllySlottingBroadcastTextID; - uint8 ChrClassID; - uint8 Flags; - uint8 Gender; -}; - -struct GarrFollowerXAbilityEntry -{ - uint32 ID; - uint8 OrderIndex; - uint8 FactionIndex; - uint16 GarrAbilityID; - uint32 GarrFollowerID; -}; - -struct GarrMissionEntry -{ - LocalizedString Name; - LocalizedString Location; - LocalizedString Description; - DBCPosition2D MapPos; - DBCPosition2D WorldPos; - uint32 ID; - uint8 GarrTypeID; - uint8 GarrMissionTypeID; - uint8 GarrFollowerTypeID; - uint8 MaxFollowers; - uint32 MissionCost; - uint16 MissionCostCurrencyTypesID; - uint8 OfferedGarrMissionTextureID; - uint16 UiTextureKitID; - uint32 EnvGarrMechanicID; - uint8 EnvGarrMechanicTypeID; - uint32 PlayerConditionID; - int8 TargetLevel; - uint16 TargetItemLevel; - int32 MissionDuration; - int32 TravelDuration; - uint32 OfferDuration; - uint8 BaseCompletionChance; - uint32 BaseFollowerXP; - uint32 OvermaxRewardPackID; - uint8 FollowerDeathChance; - uint32 AreaID; - uint32 Flags; - uint32 GarrMissionSetID; -}; - -struct GarrPlotEntry -{ - uint32 ID; - char const* Name; - uint8 PlotType; - int32 HordeConstructObjID; - int32 AllianceConstructObjID; - uint8 Flags; - uint8 UiCategoryID; - std::array<uint32, 2> UpgradeRequirement; -}; - -struct GarrPlotBuildingEntry -{ - uint32 ID; - uint8 GarrPlotID; - uint8 GarrBuildingID; -}; - -struct GarrPlotInstanceEntry -{ - uint32 ID; - char const* Name; - uint8 GarrPlotID; -}; - -struct GarrSiteLevelEntry -{ - uint32 ID; - DBCPosition2D TownHallUiPos; - uint32 GarrSiteID; - uint8 GarrLevel; - uint16 MapID; - uint16 UpgradeMovieID; - uint16 UiTextureKitID; - uint8 MaxBuildingLevel; - uint16 UpgradeCost; - uint16 UpgradeGoldCost; -}; - -struct GarrSiteLevelPlotInstEntry -{ - uint32 ID; - DBCPosition2D UiMarkerPos; - uint16 GarrSiteLevelID; - uint8 GarrPlotInstanceID; - uint8 UiMarkerSize; -}; - -struct GarrTalentTreeEntry -{ - uint32 ID; - LocalizedString Name; - int32 GarrTypeID; - int32 ClassID; - int8 MaxTiers; - int8 UiOrder; - int8 Flags; - uint16 UiTextureKitID; -}; - struct GemPropertiesEntry { uint32 ID; @@ -3070,34 +2619,6 @@ struct PvpSeasonEntry int32 HordeAchievementID; }; -struct PvpTalentEntry -{ - LocalizedString Description; - uint32 ID; - uint32 SpecID; - int32 SpellID; - int32 OverridesSpellID; - int32 Flags; - int32 ActionBarSpellID; - int32 PvpTalentCategoryID; - int32 LevelRequired; -}; - -struct PvpTalentCategoryEntry -{ - uint32 ID; - uint8 TalentSlotMask; -}; - -struct PvpTalentSlotUnlockEntry -{ - uint32 ID; - int8 Slot; - int32 LevelRequired; - int32 DeathKnightLevelRequired; - int32 DemonHunterLevelRequired; -}; - struct PvpTierEntry { uint32 ID; diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h index 9b314ad7b37..a5d88d81f50 100644 --- a/src/server/game/DataStores/DBCEnums.h +++ b/src/server/game/DataStores/DBCEnums.h @@ -210,43 +210,6 @@ enum class AreaTriggerShapeType : int8 Max }; -enum ArtifactCategory : uint32 -{ - ARTIFACT_CATEGORY_PRIMARY = 1, - ARTIFACT_CATEGORY_FISHING = 2 -}; - -enum ArtifactPowerFlag : uint8 -{ - ARTIFACT_POWER_FLAG_GOLD = 0x01, - ARTIFACT_POWER_FLAG_NO_LINK_REQUIRED = 0x02, - ARTIFACT_POWER_FLAG_FINAL = 0x04, - ARTIFACT_POWER_FLAG_SCALES_WITH_NUM_POWERS = 0x08, - ARTIFACT_POWER_FLAG_DONT_COUNT_FIRST_BONUS_RANK = 0x10, - ARTIFACT_POWER_FLAG_MAX_RANK_WITH_TIER = 0x20, - - ARTIFACT_POWER_FLAG_FIRST = ARTIFACT_POWER_FLAG_NO_LINK_REQUIRED | ARTIFACT_POWER_FLAG_DONT_COUNT_FIRST_BONUS_RANK, -}; - -#define MAX_ARTIFACT_TIER 1 - -#define MAX_AZERITE_EMPOWERED_TIER 5 - -#define MAX_AZERITE_ESSENCE_SLOT 4 -#define MAX_AZERITE_ESSENCE_RANK 4 - -enum class AzeriteItemMilestoneType : int32 -{ - MajorEssence = 0, - MinorEssence = 1, - BonusStamina = 2 -}; - -enum AzeriteTierUnlockSetFlags -{ - AZERITE_TIER_UNLOCK_SET_FLAG_DEFAULT = 0x1 -}; - enum class BattlePetSpeciesFlags : int32 { NoRename = 0x00001, diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 5715bdfb589..b6e25d224a2 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -2306,9 +2306,6 @@ void BonusData::Initialize(ItemTemplate const* proto) RelicType = -1; HasFixedLevel = false; RequiredLevelOverride = 0; - AzeriteTierUnlockSetId = 0; - if (AzeriteEmpoweredItemEntry const* azeriteEmpoweredItem = sDB2Manager.GetAzeriteEmpoweredItem(proto->GetId())) - AzeriteTierUnlockSetId = azeriteEmpoweredItem->AzeriteTierUnlockSetID; Suffix = 0; RequiredLevelCurve = 0; @@ -2433,11 +2430,6 @@ void BonusData::AddBonus(uint32 type, std::array<int32, 4> const& values) RequiredLevelOverride = values[0]; break; case ITEM_BONUS_AZERITE_TIER_UNLOCK_SET: - if (values[1] < _state.AzeriteTierUnlockSetPriority) - { - AzeriteTierUnlockSetId = values[0]; - _state.AzeriteTierUnlockSetPriority = values[1]; - } break; case ITEM_BONUS_OVERRIDE_CAN_DISENCHANT: CanDisenchant = values[0] != 0; diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h index 069ec0b98af..6a1ee01d6ee 100644 --- a/src/server/game/Entities/Item/Item.h +++ b/src/server/game/Entities/Item/Item.h @@ -85,7 +85,6 @@ struct BonusData uint16 GemRelicRankBonus[MAX_ITEM_PROTO_SOCKETS]; int32 RelicType; int32 RequiredLevelOverride; - int32 AzeriteTierUnlockSetId; uint32 Suffix; int32 RequiredLevelCurve; std::array<ItemEffectEntry const*, 13> Effects; diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 6979c9ff82d..37faee79e04 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -38,9 +38,6 @@ struct AccessRequirement; struct AchievementEntry; struct AreaTableEntry; struct AreaTriggerEntry; -struct AzeriteEssencePowerEntry; -struct AzeriteItemMilestonePowerEntry; -struct AzeritePowerEntry; struct BarberShopStyleEntry; struct BattlegroundTemplate; struct CharTitlesEntry; diff --git a/src/server/game/Handlers/AdventureJournalHandler.cpp b/src/server/game/Handlers/AdventureJournalHandler.cpp deleted file mode 100644 index 0c4c0e405b2..00000000000 --- a/src/server/game/Handlers/AdventureJournalHandler.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/* - * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "WorldSession.h" -#include "AdventureJournalPackets.h" -#include "DB2Stores.h" -#include "GossipDef.h" -#include "ObjectMgr.h" -#include "Player.h" - -void WorldSession::HandleAdventureJournalOpenQuest(WorldPackets::AdventureJournal::AdventureJournalOpenQuest& openQuest) -{ - if (ChrClassUIDisplayEntry const* uiDisplay = sDB2Manager.GetUiDisplayForClass(Classes(_player->GetClass()))) - if (!_player->MeetPlayerCondition(uiDisplay->AdvGuidePlayerConditionID)) - return; - - AdventureJournalEntry const* adventureJournal = sAdventureJournalStore.LookupEntry(openQuest.AdventureJournalID); - if (!adventureJournal) - return; - - if (!_player->MeetPlayerCondition(adventureJournal->PlayerConditionID)) - return; - - Quest const* quest = sObjectMgr->GetQuestTemplate(adventureJournal->QuestID); - if (!quest) - return; - - if (_player->CanTakeQuest(quest, true)) - _player->PlayerTalkClass->SendQuestGiverQuestDetails(quest, _player->GetGUID(), true, false); -} - -void WorldSession::HandleAdventureJournalUpdateSuggestions(WorldPackets::AdventureJournal::AdventureJournalUpdateSuggestions& updateSuggestions) -{ - if (ChrClassUIDisplayEntry const* uiDisplay = sDB2Manager.GetUiDisplayForClass(Classes(_player->GetClass()))) - if (!_player->MeetPlayerCondition(uiDisplay->AdvGuidePlayerConditionID)) - return; - - WorldPackets::AdventureJournal::AdventureJournalDataResponse response; - response.OnLevelUp = updateSuggestions.OnLevelUp; - - for (AdventureJournalEntry const* adventureJournal : sAdventureJournalStore) - { - if (_player->MeetPlayerCondition(adventureJournal->PlayerConditionID)) - { - WorldPackets::AdventureJournal::AdventureJournalEntry adventureJournalData; - adventureJournalData.AdventureJournalID = int32(adventureJournal->ID); - adventureJournalData.Priority = int32(adventureJournal->PriorityMax); - response.Entries.push_back(adventureJournalData); - } - } - - SendPacket(response.Write()); -} diff --git a/src/server/game/Handlers/AdventureMapHandler.cpp b/src/server/game/Handlers/AdventureMapHandler.cpp index 4d2ae827613..c628f6b229f 100644 --- a/src/server/game/Handlers/AdventureMapHandler.cpp +++ b/src/server/game/Handlers/AdventureMapHandler.cpp @@ -17,54 +17,11 @@ #include "WorldSession.h" #include "AdventureMapPackets.h" -#include "DB2Stores.h" -#include "ObjectMgr.h" -#include "Player.h" -void WorldSession::HandleCheckIsAdventureMapPoiValid(WorldPackets::AdventureMap::CheckIsAdventureMapPoiValid& checkIsAdventureMapPoiValid) +void WorldSession::HandleCheckIsAdventureMapPoiValid(WorldPackets::AdventureMap::CheckIsAdventureMapPoiValid& /*checkIsAdventureMapPoiValid*/) { - AdventureMapPOIEntry const* entry = sAdventureMapPOIStore.LookupEntry(checkIsAdventureMapPoiValid.AdventureMapPoiID); - if (!entry) - return; - - auto sendIsPoiValid = [this](uint32 adventureMapPoiId, bool isVisible) -> void - { - WorldPackets::AdventureMap::PlayerIsAdventureMapPoiValid isMapPoiValid; - isMapPoiValid.AdventureMapPoiID = adventureMapPoiId; - isMapPoiValid.IsVisible = isVisible; - SendPacket(isMapPoiValid.Write()); - }; - - Quest const* quest = sObjectMgr->GetQuestTemplate(entry->QuestID); - if (!quest) - { - sendIsPoiValid(entry->ID, false); - return; - } - - if (!_player->MeetPlayerCondition(entry->PlayerConditionID)) - { - sendIsPoiValid(entry->ID, false); - return; - } - - sendIsPoiValid(entry->ID, true); } -void WorldSession::HandleAdventureMapStartQuest(WorldPackets::AdventureMap::AdventureMapStartQuest& startQuest) +void WorldSession::HandleAdventureMapStartQuest(WorldPackets::AdventureMap::AdventureMapStartQuest& /*startQuest*/) { - Quest const* quest = sObjectMgr->GetQuestTemplate(startQuest.QuestID); - if (!quest) - return; - - auto itr = std::find_if(sAdventureMapPOIStore.begin(), sAdventureMapPOIStore.end(), [&](AdventureMapPOIEntry const* adventureMap) - { - return adventureMap->QuestID == uint32(startQuest.QuestID) && _player->MeetPlayerCondition(adventureMap->PlayerConditionID); - }); - - if (itr == sAdventureMapPOIStore.end()) - return; - - if (_player->CanTakeQuest(quest, true)) - _player->AddQuestAndCheckCompletion(quest, _player); } diff --git a/src/server/game/Handlers/GarrisonHandler.cpp b/src/server/game/Handlers/GarrisonHandler.cpp deleted file mode 100644 index 6670cf3fefa..00000000000 --- a/src/server/game/Handlers/GarrisonHandler.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "WorldSession.h" -#include "GarrisonPackets.h" -#include "Player.h" - -void WorldSession::HandleGetGarrisonInfo(WorldPackets::Garrison::GetGarrisonInfo& /*getGarrisonInfo*/) -{ -} - -void WorldSession::HandleGarrisonPurchaseBuilding(WorldPackets::Garrison::GarrisonPurchaseBuilding& garrisonPurchaseBuilding) -{ - if (!_player->GetNPCIfCanInteractWith(garrisonPurchaseBuilding.NpcGUID, UNIT_NPC_FLAG_NONE, UNIT_NPC_FLAG_2_GARRISON_ARCHITECT)) - return; -} - -void WorldSession::HandleGarrisonCancelConstruction(WorldPackets::Garrison::GarrisonCancelConstruction& garrisonCancelConstruction) -{ - if (!_player->GetNPCIfCanInteractWith(garrisonCancelConstruction.NpcGUID, UNIT_NPC_FLAG_NONE, UNIT_NPC_FLAG_2_GARRISON_ARCHITECT)) - return; -} - -void WorldSession::HandleGarrisonRequestBlueprintAndSpecializationData(WorldPackets::Garrison::GarrisonRequestBlueprintAndSpecializationData& /*garrisonRequestBlueprintAndSpecializationData*/) -{ -} - -void WorldSession::HandleGarrisonGetMapData(WorldPackets::Garrison::GarrisonGetMapData& /*garrisonGetMapData*/) -{ -} diff --git a/src/server/game/Server/Packets/AdventureJournalPackets.cpp b/src/server/game/Server/Packets/AdventureJournalPackets.cpp deleted file mode 100644 index 49f4b9e785d..00000000000 --- a/src/server/game/Server/Packets/AdventureJournalPackets.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "AdventureJournalPackets.h" - -namespace WorldPackets -{ -namespace AdventureJournal -{ -void AdventureJournalOpenQuest::Read() -{ - _worldPacket >> AdventureJournalID; -} - -void AdventureJournalUpdateSuggestions::Read() -{ - OnLevelUp = _worldPacket.ReadBit(); -} - -ByteBuffer& operator<<(ByteBuffer& data, AdventureJournalEntry const& adventureJournalEntry) -{ - data << int32(adventureJournalEntry.AdventureJournalID); - data << int32(adventureJournalEntry.Priority); - - return data; -} - -WorldPacket const* AdventureJournalDataResponse::Write() -{ - _worldPacket.WriteBit(OnLevelUp); - _worldPacket.FlushBits(); - _worldPacket << uint32(Entries.size()); - - for (AdventureJournalEntry const& adventureJournalEntry : Entries) - _worldPacket << adventureJournalEntry; - - return &_worldPacket; -} -} -} diff --git a/src/server/game/Server/Packets/AdventureJournalPackets.h b/src/server/game/Server/Packets/AdventureJournalPackets.h deleted file mode 100644 index b87638b929c..00000000000 --- a/src/server/game/Server/Packets/AdventureJournalPackets.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef AdventureJournalPackets_h__ -#define AdventureJournalPackets_h__ - -#include "Packet.h" - -namespace WorldPackets -{ - namespace AdventureJournal - { - class AdventureJournalOpenQuest final : public ClientPacket - { - public: - AdventureJournalOpenQuest(WorldPacket&& packet) : ClientPacket(CMSG_ADVENTURE_JOURNAL_OPEN_QUEST, std::move(packet)) { } - - void Read() override; - - int32 AdventureJournalID = 0; - }; - - class AdventureJournalUpdateSuggestions final : public ClientPacket - { - public: - AdventureJournalUpdateSuggestions(WorldPacket&& packet) : ClientPacket(CMSG_ADVENTURE_JOURNAL_UPDATE_SUGGESTIONS, std::move(packet)) { } - - void Read() override; - - bool OnLevelUp = false; - }; - - struct AdventureJournalEntry - { - int32 AdventureJournalID = 0; - int32 Priority = 0; - }; - - class AdventureJournalDataResponse final : public ServerPacket - { - public: - AdventureJournalDataResponse() : ServerPacket(SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE, 7) { } - - WorldPacket const* Write() override; - - bool OnLevelUp = false; - std::vector<AdventureJournalEntry> Entries; - }; - } -} - -#endif // AdventureJournalPackets_h__ diff --git a/src/server/game/Server/Packets/AllPackets.h b/src/server/game/Server/Packets/AllPackets.h index fe35ac630df..c51cc8f8785 100644 --- a/src/server/game/Server/Packets/AllPackets.h +++ b/src/server/game/Server/Packets/AllPackets.h @@ -20,7 +20,6 @@ #include "AchievementPackets.h" #include "AddonPackets.h" -#include "AdventureJournalPackets.h" #include "AdventureMapPackets.h" #include "AreaTriggerPackets.h" #include "AuctionHousePackets.h" @@ -42,7 +41,6 @@ #include "DuelPackets.h" #include "EquipmentSetPackets.h" #include "GameObjectPackets.h" -#include "GarrisonPackets.h" #include "GuildPackets.h" #include "HotfixPackets.h" #include "InspectPackets.h" diff --git a/src/server/game/Server/Packets/GarrisonPackets.cpp b/src/server/game/Server/Packets/GarrisonPackets.cpp deleted file mode 100644 index 0796748d877..00000000000 --- a/src/server/game/Server/Packets/GarrisonPackets.cpp +++ /dev/null @@ -1,484 +0,0 @@ -/* - * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "GarrisonPackets.h" -#include "DB2Structure.h" -#include "Errors.h" - -namespace WorldPackets::Garrison -{ -WorldPacket const* GarrisonCreateResult::Write() -{ - _worldPacket << uint32(Result); - _worldPacket << uint32(GarrSiteLevelID); - - return &_worldPacket; -} - -WorldPacket const* GarrisonDeleteResult::Write() -{ - _worldPacket << uint32(Result); - _worldPacket << uint32(GarrSiteID); - - return &_worldPacket; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonPlotInfo const& plotInfo) -{ - data << uint32(plotInfo.GarrPlotInstanceID); - data << plotInfo.PlotPos; - data << uint32(plotInfo.PlotType); - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonBuildingInfo const& buildingInfo) -{ - data << uint32(buildingInfo.GarrPlotInstanceID); - data << uint32(buildingInfo.GarrBuildingID); - data << buildingInfo.TimeBuilt; - data << uint32(buildingInfo.CurrentGarSpecID); - data << buildingInfo.TimeSpecCooldown; - data.WriteBit(buildingInfo.Active); - data.FlushBits(); - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonFollower const& follower) -{ - data << uint64(follower.DbID); - data << uint32(follower.GarrFollowerID); - data << uint32(follower.Quality); - data << uint32(follower.FollowerLevel); - data << uint32(follower.ItemLevelWeapon); - data << uint32(follower.ItemLevelArmor); - data << uint32(follower.Xp); - data << uint32(follower.Durability); - data << uint32(follower.CurrentBuildingID); - data << uint32(follower.CurrentMissionID); - data << uint32(follower.AbilityID.size()); - data << uint32(follower.ZoneSupportSpellID); - data << uint32(follower.FollowerStatus); - data << int32(follower.Health); - data << int8(follower.BoardIndex); - data << follower.HealingTimestamp; - for (GarrAbilityEntry const* ability : follower.AbilityID) - data << uint32(ability->ID); - - data.WriteBits(follower.CustomName.length(), 7); - data.FlushBits(); - data.WriteString(follower.CustomName); - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonEncounter const& encounter) -{ - data << int32(encounter.GarrEncounterID); - data << uint32(encounter.Mechanics.size()); - data << int32(encounter.GarrAutoCombatantID); - data << int32(encounter.Health); - data << int32(encounter.MaxHealth); - data << int32(encounter.Attack); - data << int8(encounter.BoardIndex); - - if (!encounter.Mechanics.empty()) - data.append(encounter.Mechanics.data(), encounter.Mechanics.size()); - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonMissionReward const& missionRewardItem) -{ - data << int32(missionRewardItem.ItemID); - data << uint32(missionRewardItem.ItemQuantity); - data << int32(missionRewardItem.CurrencyID); - data << uint32(missionRewardItem.CurrencyQuantity); - data << uint32(missionRewardItem.FollowerXP); - data << uint32(missionRewardItem.GarrMssnBonusAbilityID); - data << int32(missionRewardItem.ItemFileDataID); - data.WriteBit(missionRewardItem.ItemInstance.has_value()); - data.FlushBits(); - - if (missionRewardItem.ItemInstance) - data << *missionRewardItem.ItemInstance; - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonMission const& mission) -{ - data << uint64(mission.DbID); - data << int32(mission.MissionRecID); - data << mission.OfferTime; - data << mission.OfferDuration; - data << mission.StartTime; - data << mission.TravelDuration; - data << mission.MissionDuration; - data << int32(mission.MissionState); - data << int32(mission.SuccessChance); - data << uint32(mission.Flags); - data << float(mission.MissionScalar); - data << int32(mission.ContentTuningID); - data << uint32(mission.Encounters.size()); - data << uint32(mission.Rewards.size()); - data << uint32(mission.OvermaxRewards.size()); - - for (GarrisonEncounter const& encounter : mission.Encounters) - data << encounter; - - for (GarrisonMissionReward const& missionRewardItem : mission.Rewards) - data << missionRewardItem; - - for (GarrisonMissionReward const& missionRewardItem : mission.OvermaxRewards) - data << missionRewardItem; - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonMissionBonusAbility const& areaBonus) -{ - data << areaBonus.StartTime; - data << uint32(areaBonus.GarrMssnBonusAbilityID); - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonTalentSocketData const& talentSocketData) -{ - data << int32(talentSocketData.SoulbindConduitID); - data << int32(talentSocketData.SoulbindConduitRank); - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonTalent const& talent) -{ - data << int32(talent.GarrTalentID); - data << int32(talent.Rank); - data << talent.ResearchStartTime; - data << int32(talent.Flags); - data.WriteBit(talent.Socket.has_value()); - data.FlushBits(); - - if (talent.Socket) - data << *talent.Socket; - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonCollectionEntry const& collectionEntry) -{ - data << int32(collectionEntry.EntryID); - data << int32(collectionEntry.Rank); - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonCollection const& collection) -{ - data << int32(collection.Type); - data << uint32(collection.Entries.size()); - for (GarrisonCollectionEntry const& collectionEntry : collection.Entries) - data << collectionEntry; - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonEventEntry const& event) -{ - data << int64(event.EventValue); - data << int32(event.EntryID); - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonEventList const& eventList) -{ - data << int32(eventList.Type); - data << uint32(eventList.Events.size()); - for (GarrisonEventEntry const& event : eventList.Events) - data << event; - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonSpecGroup const& specGroup) -{ - data << int32(specGroup.ChrSpecializationID); - data << int32(specGroup.SoulbindID); - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonInfo const& garrison) -{ - ASSERT(garrison.Missions.size() == garrison.MissionRewards.size()); - ASSERT(garrison.Missions.size() == garrison.MissionOvermaxRewards.size()); - ASSERT(garrison.Missions.size() == garrison.CanStartMission.size()); - - data << int32(garrison.GarrTypeID); - data << int32(garrison.GarrSiteID); - data << int32(garrison.GarrSiteLevelID); - data << uint32(garrison.Buildings.size()); - data << uint32(garrison.Plots.size()); - data << uint32(garrison.Followers.size()); - data << uint32(garrison.AutoTroops.size()); - data << uint32(garrison.Missions.size()); - data << uint32(garrison.MissionRewards.size()); - data << uint32(garrison.MissionOvermaxRewards.size()); - data << uint32(garrison.MissionAreaBonuses.size()); - data << uint32(garrison.Talents.size()); - data << uint32(garrison.Collections.size()); - data << uint32(garrison.EventLists.size()); - data << uint32(garrison.SpecGroups.size()); - data << uint32(garrison.CanStartMission.size()); - data << uint32(garrison.ArchivedMissions.size()); - data << int32(garrison.NumFollowerActivationsRemaining); - data << uint32(garrison.NumMissionsStartedToday); - data << int32(garrison.MinAutoTroopLevel); - - for (GarrisonPlotInfo* plot : garrison.Plots) - data << *plot; - - for (std::vector<GarrisonMissionReward> const& missionReward : garrison.MissionRewards) - data << uint32(missionReward.size()); - - for (std::vector<GarrisonMissionReward> const& missionReward : garrison.MissionOvermaxRewards) - data << uint32(missionReward.size()); - - for (GarrisonMissionBonusAbility const* areaBonus : garrison.MissionAreaBonuses) - data << *areaBonus; - - for (GarrisonCollection const& collection : garrison.Collections) - data << collection; - - for (GarrisonEventList const& eventList : garrison.EventLists) - data << eventList; - - for (GarrisonSpecGroup const& specGroup : garrison.SpecGroups) - data << specGroup; - - if (!garrison.ArchivedMissions.empty()) - data.append(garrison.ArchivedMissions.data(), garrison.ArchivedMissions.size()); - - for (GarrisonBuildingInfo const* building : garrison.Buildings) - data << *building; - - for (bool canStartMission : garrison.CanStartMission) - data.WriteBit(canStartMission); - - data.FlushBits(); - - for (GarrisonFollower const* follower : garrison.Followers) - data << *follower; - - for (GarrisonFollower const* follower : garrison.AutoTroops) - data << *follower; - - for (GarrisonMission const* mission : garrison.Missions) - data << *mission; - - for (GarrisonTalent const& talent : garrison.Talents) - data << talent; - - for (std::vector<GarrisonMissionReward> const& missionReward : garrison.MissionRewards) - for (GarrisonMissionReward const& missionRewardItem : missionReward) - data << missionRewardItem; - - for (std::vector<GarrisonMissionReward> const& missionReward : garrison.MissionOvermaxRewards) - for (GarrisonMissionReward const& missionRewardItem : missionReward) - data << missionRewardItem; - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, FollowerSoftCapInfo const& followerSoftCapInfo) -{ - data << int32(followerSoftCapInfo.GarrFollowerTypeID); - data << uint32(followerSoftCapInfo.Count); - return data; -} - -WorldPacket const* GetGarrisonInfoResult::Write() -{ - _worldPacket << int32(FactionIndex); - _worldPacket << uint32(Garrisons.size()); - _worldPacket << uint32(FollowerSoftCaps.size()); - for (FollowerSoftCapInfo const& followerSoftCapInfo : FollowerSoftCaps) - _worldPacket << followerSoftCapInfo; - - for (GarrisonInfo const& garrison : Garrisons) - _worldPacket << garrison; - - return &_worldPacket; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonRemoteBuildingInfo const& building) -{ - data << uint32(building.GarrPlotInstanceID); - data << uint32(building.GarrBuildingID); - - return data; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonRemoteSiteInfo const& site) -{ - data << uint32(site.GarrSiteLevelID); - data << uint32(site.Buildings.size()); - for (GarrisonRemoteBuildingInfo const& building : site.Buildings) - data << building; - - return data; -} - -WorldPacket const* GarrisonRemoteInfo::Write() -{ - _worldPacket << uint32(Sites.size()); - for (GarrisonRemoteSiteInfo const& site : Sites) - _worldPacket << site; - - return &_worldPacket; -} - -void GarrisonPurchaseBuilding::Read() -{ - _worldPacket >> NpcGUID; - _worldPacket >> PlotInstanceID; - _worldPacket >> BuildingID; -} - -WorldPacket const* GarrisonPlaceBuildingResult::Write() -{ - _worldPacket << int32(GarrTypeID); - _worldPacket << uint32(Result); - _worldPacket << BuildingInfo; - _worldPacket.WriteBit(PlayActivationCinematic); - _worldPacket.FlushBits(); - - return &_worldPacket; -} - -void GarrisonCancelConstruction::Read() -{ - _worldPacket >> NpcGUID; - _worldPacket >> PlotInstanceID; -} - -WorldPacket const* GarrisonBuildingRemoved::Write() -{ - _worldPacket << int32(GarrTypeID); - _worldPacket << uint32(Result); - _worldPacket << uint32(GarrPlotInstanceID); - _worldPacket << uint32(GarrBuildingID); - - return &_worldPacket; -} - -WorldPacket const* GarrisonLearnBlueprintResult::Write() -{ - _worldPacket << int32(GarrTypeID); - _worldPacket << uint32(Result); - _worldPacket << uint32(BuildingID); - - return &_worldPacket; -} - -WorldPacket const* GarrisonUnlearnBlueprintResult::Write() -{ - _worldPacket << int32(GarrTypeID); - _worldPacket << uint32(Result); - _worldPacket << uint32(BuildingID); - - return &_worldPacket; -} - -WorldPacket const* GarrisonRequestBlueprintAndSpecializationDataResult::Write() -{ - _worldPacket << int32(GarrTypeID); - _worldPacket << uint32(BlueprintsKnown ? BlueprintsKnown->size() : 0); - _worldPacket << uint32(SpecializationsKnown ? SpecializationsKnown->size() : 0); - if (BlueprintsKnown) - for (uint32 blueprint : *BlueprintsKnown) - _worldPacket << uint32(blueprint); - - if (SpecializationsKnown) - for (uint32 specialization : *SpecializationsKnown) - _worldPacket << uint32(specialization); - - return &_worldPacket; -} - -ByteBuffer& operator<<(ByteBuffer& data, GarrisonBuildingMapData const& building) -{ - data << uint32(building.GarrBuildingPlotInstID); - data << building.Pos; - - return data; -} - -WorldPacket const* GarrisonMapDataResponse::Write() -{ - _worldPacket << uint32(Buildings.size()); - for (GarrisonBuildingMapData& landmark : Buildings) - _worldPacket << landmark; - - return &_worldPacket; -} - -WorldPacket const* GarrisonPlotPlaced::Write() -{ - _worldPacket << int32(GarrTypeID); - _worldPacket << *PlotInfo; - - return &_worldPacket; -} - -WorldPacket const* GarrisonPlotRemoved::Write() -{ - _worldPacket << uint32(GarrPlotInstanceID); - - return &_worldPacket; -} - -WorldPacket const* GarrisonAddFollowerResult::Write() -{ - _worldPacket << int32(GarrTypeID); - _worldPacket << uint32(Result); - _worldPacket << Follower; - - return &_worldPacket; -} - -WorldPacket const* GarrisonRemoveFollowerResult::Write() -{ - _worldPacket << uint64(FollowerDBID); - _worldPacket << int32(GarrTypeID); - _worldPacket << uint32(Result); - _worldPacket << uint32(Destroyed); - - return &_worldPacket; -} - -WorldPacket const* GarrisonBuildingActivated::Write() -{ - _worldPacket << uint32(GarrPlotInstanceID); - - return &_worldPacket; -} -} diff --git a/src/server/game/Server/Packets/GarrisonPackets.h b/src/server/game/Server/Packets/GarrisonPackets.h deleted file mode 100644 index 983982842f8..00000000000 --- a/src/server/game/Server/Packets/GarrisonPackets.h +++ /dev/null @@ -1,443 +0,0 @@ -/* - * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef GarrisonPackets_h__ -#define GarrisonPackets_h__ - -#include "Packet.h" -#include "ItemPacketsCommon.h" -#include "ObjectGuid.h" -#include "Optional.h" -#include "Position.h" -#include "PacketUtilities.h" -#include <list> -#include <unordered_set> -#include <vector> - -struct GarrAbilityEntry; - -namespace WorldPackets -{ - namespace Garrison - { - class GarrisonCreateResult final : public ServerPacket - { - public: - GarrisonCreateResult() : ServerPacket(SMSG_GARRISON_CREATE_RESULT, 4 + 4) { } - - WorldPacket const* Write() override; - - uint32 GarrSiteLevelID = 0; - uint32 Result = 0; - }; - - class GarrisonDeleteResult final : public ServerPacket - { - public: - GarrisonDeleteResult() : ServerPacket(SMSG_GARRISON_DELETE_RESULT, 4 + 4) { } - - WorldPacket const* Write() override; - - uint32 Result = 0; - uint32 GarrSiteID = 0; - }; - - class GetGarrisonInfo final : public ClientPacket - { - public: - GetGarrisonInfo(WorldPacket&& packet) : ClientPacket(CMSG_GET_GARRISON_INFO, std::move(packet)) { } - - void Read() override { } - }; - - struct GarrisonPlotInfo - { - uint32 GarrPlotInstanceID = 0; - TaggedPosition<Position::XYZO> PlotPos; - uint32 PlotType = 0; - }; - - struct GarrisonBuildingInfo - { - uint32 GarrPlotInstanceID = 0; - uint32 GarrBuildingID = 0; - Timestamp<> TimeBuilt; - uint32 CurrentGarSpecID = 0; - Timestamp<> TimeSpecCooldown = time_t(2288912640); // 06/07/1906 18:35:44 - another in the series of magic blizz dates - bool Active = false; - }; - - struct GarrisonFollower - { - uint64 DbID = 0; - uint32 GarrFollowerID = 0; - uint32 Quality = 0; - uint32 FollowerLevel = 0; - uint32 ItemLevelWeapon = 0; - uint32 ItemLevelArmor = 0; - uint32 Xp = 0; - uint32 Durability = 0; - uint32 CurrentBuildingID = 0; - uint32 CurrentMissionID = 0; - std::list<GarrAbilityEntry const*> AbilityID; - uint32 ZoneSupportSpellID = 0; - uint32 FollowerStatus = 0; - int32 Health = 0; - Timestamp<> HealingTimestamp; - int8 BoardIndex = 0; - std::string CustomName; - }; - - struct GarrisonEncounter - { - int32 GarrEncounterID = 0; - std::vector<int32> Mechanics; - int32 GarrAutoCombatantID = 0; - int32 Health = 0; - int32 MaxHealth = 0; - int32 Attack = 0; - int8 BoardIndex = 0; - }; - - struct GarrisonMissionReward - { - int32 ItemID = 0; - uint32 ItemQuantity = 0; - int32 CurrencyID = 0; - uint32 CurrencyQuantity = 0; - uint32 FollowerXP = 0; - uint32 GarrMssnBonusAbilityID = 0; - int32 ItemFileDataID = 0; - Optional<Item::ItemInstance> ItemInstance; - }; - - struct GarrisonMission - { - uint64 DbID = 0; - int32 MissionRecID = 0; - Timestamp<> OfferTime; - Duration<Seconds> OfferDuration; - Timestamp<> StartTime = time_t(2288912640); - Duration<Seconds> TravelDuration; - Duration<Seconds> MissionDuration; - int32 MissionState = 0; - int32 SuccessChance = 0; - uint32 Flags = 0; - float MissionScalar = 1.0f; - int32 ContentTuningID = 0; - std::vector<GarrisonEncounter> Encounters; - std::vector<GarrisonMissionReward> Rewards; - std::vector<GarrisonMissionReward> OvermaxRewards; - }; - - struct GarrisonMissionBonusAbility - { - uint32 GarrMssnBonusAbilityID = 0; - Timestamp<> StartTime; - }; - - struct GarrisonTalentSocketData - { - int32 SoulbindConduitID = 0; - int32 SoulbindConduitRank = 0; - }; - - struct GarrisonTalent - { - int32 GarrTalentID = 0; - int32 Rank = 0; - Timestamp<> ResearchStartTime; - int32 Flags = 0; - Optional<GarrisonTalentSocketData> Socket; - }; - - struct GarrisonCollectionEntry - { - int32 EntryID = 0; - int32 Rank = 0; - }; - - struct GarrisonCollection - { - int32 Type = 0; - std::vector<GarrisonCollectionEntry> Entries; - }; - - struct GarrisonEventEntry - { - int32 EntryID = 0; - int64 EventValue = 0; - }; - - struct GarrisonEventList - { - int32 Type = 0; - std::vector<GarrisonEventEntry> Events; - }; - - struct GarrisonSpecGroup - { - int32 ChrSpecializationID = 0; - int32 SoulbindID = 0; - }; - - struct GarrisonInfo - { - int32 GarrTypeID = 0; - uint32 GarrSiteID = 0; - uint32 GarrSiteLevelID = 0; - uint32 NumFollowerActivationsRemaining = 0; - uint32 NumMissionsStartedToday = 0; // might mean something else, but sending 0 here enables follower abilities "Increase success chance of the first mission of the day by %." - int32 MinAutoTroopLevel = 0; - std::vector<GarrisonPlotInfo*> Plots; - std::vector<GarrisonBuildingInfo const*> Buildings; - std::vector<GarrisonFollower const*> Followers; - std::vector<GarrisonFollower const*> AutoTroops; - std::vector<GarrisonMission const*> Missions; - std::vector<std::vector<GarrisonMissionReward>> MissionRewards; - std::vector<std::vector<GarrisonMissionReward>> MissionOvermaxRewards; - std::vector<GarrisonMissionBonusAbility const*> MissionAreaBonuses; - std::vector<GarrisonTalent> Talents; - std::vector<GarrisonCollection> Collections; - std::vector<GarrisonEventList> EventLists; - std::vector<GarrisonSpecGroup> SpecGroups; - std::vector<bool> CanStartMission; - std::vector<int32> ArchivedMissions; - }; - - struct FollowerSoftCapInfo - { - int32 GarrFollowerTypeID; - uint32 Count; - }; - - class GetGarrisonInfoResult final : public ServerPacket - { - public: - GetGarrisonInfoResult() : ServerPacket(SMSG_GET_GARRISON_INFO_RESULT) { } - - WorldPacket const* Write() override; - - uint32 FactionIndex = 0; - std::vector<GarrisonInfo> Garrisons; - std::vector<FollowerSoftCapInfo> FollowerSoftCaps; - }; - - struct GarrisonRemoteBuildingInfo - { - GarrisonRemoteBuildingInfo() : GarrPlotInstanceID(0), GarrBuildingID(0) { } - GarrisonRemoteBuildingInfo(uint32 plotInstanceId, uint32 buildingId) : GarrPlotInstanceID(plotInstanceId), GarrBuildingID(buildingId) { } - - uint32 GarrPlotInstanceID; - uint32 GarrBuildingID; - }; - - struct GarrisonRemoteSiteInfo - { - uint32 GarrSiteLevelID = 0; - std::vector<GarrisonRemoteBuildingInfo> Buildings; - }; - - class GarrisonRemoteInfo final : public ServerPacket - { - public: - GarrisonRemoteInfo() : ServerPacket(SMSG_GARRISON_REMOTE_INFO) { } - - WorldPacket const* Write() override; - - std::vector<GarrisonRemoteSiteInfo> Sites; - }; - - class GarrisonPurchaseBuilding final : public ClientPacket - { - public: - GarrisonPurchaseBuilding(WorldPacket&& packet) : ClientPacket(CMSG_GARRISON_PURCHASE_BUILDING, std::move(packet)) { } - - void Read() override; - - ObjectGuid NpcGUID; - uint32 BuildingID = 0; - uint32 PlotInstanceID = 0; - }; - - class GarrisonPlaceBuildingResult final : public ServerPacket - { - public: - GarrisonPlaceBuildingResult() : ServerPacket(SMSG_GARRISON_PLACE_BUILDING_RESULT) { } - - WorldPacket const* Write() override; - - int32 GarrTypeID = 0; - uint32 Result = 0; - GarrisonBuildingInfo BuildingInfo; - bool PlayActivationCinematic = false; - }; - - class GarrisonCancelConstruction final : public ClientPacket - { - public: - GarrisonCancelConstruction(WorldPacket&& packet) : ClientPacket(CMSG_GARRISON_CANCEL_CONSTRUCTION, std::move(packet)) { } - - void Read() override; - - ObjectGuid NpcGUID; - uint32 PlotInstanceID = 0; - }; - - class GarrisonBuildingRemoved final : public ServerPacket - { - public: - GarrisonBuildingRemoved() : ServerPacket(SMSG_GARRISON_BUILDING_REMOVED, 4 + 4 + 4 + 4) { } - - WorldPacket const* Write() override; - - int32 GarrTypeID = 0; - uint32 Result = 0; - uint32 GarrPlotInstanceID = 0; - uint32 GarrBuildingID = 0; - }; - - class GarrisonLearnBlueprintResult final : public ServerPacket - { - public: - GarrisonLearnBlueprintResult() : ServerPacket(SMSG_GARRISON_LEARN_BLUEPRINT_RESULT, 4 + 4 + 4) { } - - WorldPacket const* Write() override; - - int32 GarrTypeID = 0; - uint32 BuildingID = 0; - uint32 Result = 0; - }; - - class GarrisonUnlearnBlueprintResult final : public ServerPacket - { - public: - GarrisonUnlearnBlueprintResult() : ServerPacket(SMSG_GARRISON_UNLEARN_BLUEPRINT_RESULT, 4 + 4) { } - - WorldPacket const* Write() override; - - int32 GarrTypeID = 0; - uint32 BuildingID = 0; - uint32 Result = 0; - }; - - class GarrisonRequestBlueprintAndSpecializationData final : public ClientPacket - { - public: - GarrisonRequestBlueprintAndSpecializationData(WorldPacket&& packet) : ClientPacket(CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA, std::move(packet)) { } - - void Read() override { } - }; - - class GarrisonRequestBlueprintAndSpecializationDataResult final : public ServerPacket - { - public: - GarrisonRequestBlueprintAndSpecializationDataResult() : ServerPacket(SMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA_RESULT, 400) { } - - WorldPacket const* Write() override; - - int32 GarrTypeID = 0; - std::unordered_set<uint32> const* SpecializationsKnown = nullptr; - std::unordered_set<uint32> const* BlueprintsKnown = nullptr; - }; - - class GarrisonGetMapData final : public ClientPacket - { - public: - GarrisonGetMapData(WorldPacket&& packet) : ClientPacket(CMSG_GARRISON_GET_MAP_DATA, std::move(packet)) { } - - void Read() override { } - }; - - struct GarrisonBuildingMapData - { - GarrisonBuildingMapData() : GarrBuildingPlotInstID(0), Pos() { } - GarrisonBuildingMapData(uint32 buildingPlotInstId, Position const& pos) : GarrBuildingPlotInstID(buildingPlotInstId), Pos(pos) { } - - uint32 GarrBuildingPlotInstID; - TaggedPosition<Position::XYZ> Pos; - }; - - class GarrisonMapDataResponse final : public ServerPacket - { - public: - GarrisonMapDataResponse() : ServerPacket(SMSG_GARRISON_MAP_DATA_RESPONSE) { } - - WorldPacket const* Write() override; - - std::vector<GarrisonBuildingMapData> Buildings; - }; - - class GarrisonPlotPlaced final : public ServerPacket - { - public: - GarrisonPlotPlaced() : ServerPacket(SMSG_GARRISON_PLOT_PLACED) { } - - WorldPacket const* Write() override; - - int32 GarrTypeID = 0; - GarrisonPlotInfo* PlotInfo = nullptr; - }; - - class GarrisonPlotRemoved final : public ServerPacket - { - public: - GarrisonPlotRemoved() : ServerPacket(SMSG_GARRISON_PLOT_REMOVED, 4) { } - - WorldPacket const* Write() override; - - uint32 GarrPlotInstanceID = 0; - }; - - class GarrisonAddFollowerResult final : public ServerPacket - { - public: - GarrisonAddFollowerResult() : ServerPacket(SMSG_GARRISON_ADD_FOLLOWER_RESULT, 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 5 * 4 + 4) { } - - WorldPacket const* Write() override; - - int32 GarrTypeID = 0; - GarrisonFollower Follower; - uint32 Result = 0; - }; - - class GarrisonRemoveFollowerResult final : public ServerPacket - { - public: - GarrisonRemoveFollowerResult() : ServerPacket(SMSG_GARRISON_REMOVE_FOLLOWER_RESULT, 8 + 4 + 4 + 4) { } - - WorldPacket const* Write() override; - - uint64 FollowerDBID = 0; - int32 GarrTypeID = 0; - uint32 Result = 0; - uint32 Destroyed = 0; - }; - - class GarrisonBuildingActivated final : public ServerPacket - { - public: - GarrisonBuildingActivated() : ServerPacket(SMSG_GARRISON_BUILDING_ACTIVATED, 4) { } - - WorldPacket const* Write() override; - - uint32 GarrPlotInstanceID = 0; - }; - } -} - -#endif // GarrisonPackets_h__ diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index a1d80be1054..d122169e57f 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -155,8 +155,6 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_ADD_FRIEND, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddFriendOpcode); DEFINE_HANDLER(CMSG_ADD_IGNORE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddIgnoreOpcode); DEFINE_HANDLER(CMSG_ADD_TOY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAddToy); - DEFINE_HANDLER(CMSG_ADVENTURE_JOURNAL_OPEN_QUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAdventureJournalOpenQuest); - DEFINE_HANDLER(CMSG_ADVENTURE_JOURNAL_UPDATE_SUGGESTIONS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAdventureJournalUpdateSuggestions); DEFINE_HANDLER(CMSG_ADVENTURE_MAP_START_QUEST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAdventureMapStartQuest); DEFINE_HANDLER(CMSG_ALTER_APPEARANCE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAlterAppearance); DEFINE_HANDLER(CMSG_AREA_SPIRIT_HEALER_QUERY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleAreaSpiritHealerQueryOpcode); @@ -441,37 +439,9 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_GAME_EVENT_DEBUG_ENABLE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_GAME_OBJ_REPORT_USE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGameobjectReportUse); DEFINE_HANDLER(CMSG_GAME_OBJ_USE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGameObjectUseOpcode); - DEFINE_HANDLER(CMSG_GARRISON_ADD_FOLLOWER_HEALTH, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_CANCEL_CONSTRUCTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGarrisonCancelConstruction); - DEFINE_HANDLER(CMSG_GARRISON_CHECK_UPGRADEABLE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_COMPLETE_MISSION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_FULLY_HEAL_ALL_FOLLOWERS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_GENERATE_RECRUITS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_GET_MAP_DATA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGarrisonGetMapData); - DEFINE_HANDLER(CMSG_GARRISON_GET_MISSION_REWARD, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_LEARN_TALENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_MISSION_BONUS_ROLL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_PURCHASE_BUILDING, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGarrisonPurchaseBuilding); - DEFINE_HANDLER(CMSG_GARRISON_RECRUIT_FOLLOWER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_REMOVE_FOLLOWER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_RENAME_FOLLOWER, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGarrisonRequestBlueprintAndSpecializationData); - DEFINE_HANDLER(CMSG_GARRISON_REQUEST_SHIPMENT_INFO, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_RESEARCH_TALENT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_SET_BUILDING_ACTIVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_SET_FOLLOWER_FAVORITE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_SET_FOLLOWER_INACTIVE, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_SOCKET_TALENT, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_START_MISSION, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GARRISON_SWAP_BUILDINGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_GENERATE_RANDOM_CHARACTER_NAME, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleRandomizeCharNameOpcode); DEFINE_HANDLER(CMSG_GET_ACCOUNT_CHARACTER_LIST, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_GET_ACCOUNT_NOTIFICATIONS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_GET_GARRISON_INFO, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGetGarrisonInfo); DEFINE_HANDLER(CMSG_GET_ITEM_PURCHASE_DATA, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGetItemPurchaseData); DEFINE_HANDLER(CMSG_GET_LANDING_PAGE_SHIPMENTS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_GET_MIRROR_IMAGE_DATA, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleMirrorImageDataRequest); @@ -738,7 +708,6 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_QUERY_COUNTDOWN_TIMER, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryCountdownTimer); DEFINE_HANDLER(CMSG_QUERY_CREATURE, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleCreatureQuery); DEFINE_HANDLER(CMSG_QUERY_GAME_OBJECT, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleGameObjectQueryOpcode); - DEFINE_HANDLER(CMSG_QUERY_GARRISON_PET_NAME, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_QUERY_GUILD_INFO, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildQueryOpcode); DEFINE_HANDLER(CMSG_QUERY_INSPECT_ACHIEVEMENTS, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleQueryInspectAchievements); DEFINE_HANDLER(CMSG_QUERY_NEXT_MAIL_TIME, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleQueryNextMailTime); @@ -810,7 +779,6 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_REQUEST_COVENANT_CALLINGS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_CROWD_CONTROL_SPELL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_FORCED_REACTIONS, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestForcedReactionsOpcode); - DEFINE_HANDLER(CMSG_REQUEST_GARRISON_TALENT_WORLD_QUEST_UNLOCKS, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_REQUEST_GUILD_PARTY_STATE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleGuildRequestPartyState); DEFINE_HANDLER(CMSG_REQUEST_GUILD_REWARDS_LIST, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleRequestGuildRewardsList); DEFINE_HANDLER(CMSG_REQUEST_LATEST_SPLASH_SCREEN, STATUS_LOGGEDIN, PROCESS_INPLACE, &WorldSession::HandleRequestLatestSplashScreen); @@ -899,7 +867,6 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_SET_TRADE_CURRENCY, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTradeCurrencyOpcode); DEFINE_HANDLER(CMSG_SET_TRADE_GOLD, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTradeGoldOpcode); DEFINE_HANDLER(CMSG_SET_TRADE_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetTradeItemOpcode); - DEFINE_HANDLER(CMSG_SET_USING_PARTY_GARRISON, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_SET_WAR_MODE, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetWarMode); DEFINE_HANDLER(CMSG_SET_WATCHED_FACTION, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleSetWatchedFactionOpcode); DEFINE_HANDLER(CMSG_SHOW_TRADE_SKILL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); @@ -973,7 +940,6 @@ void OpcodeTable::InitializeClientOpcodes() DEFINE_HANDLER(CMSG_UPDATE_RAID_TARGET, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUpdateRaidTargetOpcode); DEFINE_HANDLER(CMSG_UPDATE_SPELL_VISUAL, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_UPDATE_VAS_PURCHASE_STATES, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); - DEFINE_HANDLER(CMSG_UPGRADE_GARRISON, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_UPGRADE_RUNEFORGE_LEGENDARY, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_USED_FOLLOW, STATUS_UNHANDLED, PROCESS_INPLACE, &WorldSession::Handle_NULL); DEFINE_HANDLER(CMSG_USE_CRITTER_ITEM, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleUseCritterItem); @@ -1029,7 +995,6 @@ void OpcodeTable::InitializeServerOpcodes() DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADD_RUNE_POWER, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADJUST_SPLINE_DURATION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADVANCED_COMBAT_LOG, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AE_LOOT_TARGETS, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AE_LOOT_TARGET_ACK, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_AI_REACTION, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); @@ -1378,80 +1343,9 @@ void OpcodeTable::InitializeServerOpcodes() DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_SPEED_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_TIME_SET, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GAME_TIME_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ACTIVATE_MISSION_BONUS_ABILITY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_EVENT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_FOLLOWER_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ADD_SPEC_GROUPS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_APPLY_TALENT_SOCKET_DATA_CHANGES, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_AUTO_TROOP_MIN_LEVEL_UPDATE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_BUILDING_ACTIVATED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_BUILDING_REMOVED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_BUILDING_SET_ACTIVE_SPECIALIZATION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CHANGE_MISSION_START_TIME_RESULT,STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CLEAR_COLLECTION, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CLEAR_EVENT_LIST, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CLEAR_SPEC_GROUPS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COLLECTION_REMOVE_ENTRY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COLLECTION_UPDATE_ENTRY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COMPLETE_BUILDING_CONSTRUCTION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_COMPLETE_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_CREATE_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_DELETE_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_DELETE_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_ACTIVATIONS_SET, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_FLAGS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_ITEM_LEVEL, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_QUALITY, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_CHANGED_XP, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_FOLLOWER_FATIGUE_CLEARED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_GENERATE_FOLLOWERS_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_GET_RECALL_PORTAL_LAST_USED_TIME_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_IS_UPGRADEABLE_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LEARN_BLUEPRINT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LEARN_SPECIALIZATION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LIST_COMPLETED_MISSIONS_CHEAT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_LIST_FOLLOWERS_CHEAT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MAP_DATA_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MISSION_BONUS_ROLL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MISSION_REQUEST_REWARD_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_MISSION_START_CONDITION_UPDATE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_OPEN_CRAFTER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_OPEN_RECRUITMENT_NPC, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_PLACE_BUILDING_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_PLOT_PLACED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_PLOT_REMOVED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RECRUIT_FOLLOWER_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOTE_INFO, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_EVENT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_FOLLOWER_ABILITY_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REMOVE_FOLLOWER_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RENAME_FOLLOWER_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RESEARCH_TALENT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RESET_TALENT_TREE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_RESET_TALENT_TREE_SOCKET_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_START_MISSION_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_SWAP_BUILDINGS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_SWITCH_TALENT_TREE_BRANCH, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_COMPLETED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_REMOVED, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_REMOVE_SOCKET_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_UPDATE_SOCKET_DATA, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_TALENT_WORLD_QUEST_UNLOCKS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UNLEARN_BLUEPRINT_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPDATE_FOLLOWER, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPDATE_GARRISON_MONUMENT_SELECTIONS, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPDATE_MISSION_CHEAT_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_UPGRADE_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GARRISON_USE_RECALL_PORTAL_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GENERATE_RANDOM_CHARACTER_NAME_RESULT, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GENERATE_SSO_TOKEN_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_ACCOUNT_CHARACTER_LIST_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_GARRISON_INFO_RESULT, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_REALM_HIDDEN_RESULT, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_GET_REMAINING_GAME_TIME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); @@ -1901,7 +1795,6 @@ void OpcodeTable::InitializeServerOpcodes() DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_BATTLE_PET_NAME_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_CREATURE_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GAME_OBJECT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GARRISON_PET_NAME_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_GUILD_INFO_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_QUERY_ITEM_TEXT_RESPONSE, STATUS_NEVER, CONNECTION_TYPE_REALM); diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h index b404b6e5952..b2d3f8b7b41 100644 --- a/src/server/game/Server/Protocol/Opcodes.h +++ b/src/server/game/Server/Protocol/Opcodes.h @@ -742,8 +742,6 @@ enum OpcodeClient : uint16 CMSG_ACCEPT_RETURNING_PLAYER_PROMPT = UNKNOWN_OPCODE, CMSG_ACTIVATE_SOULBIND = UNKNOWN_OPCODE, CMSG_ADD_ACCOUNT_COSMETIC = UNKNOWN_OPCODE, - CMSG_ADVENTURE_JOURNAL_OPEN_QUEST = UNKNOWN_OPCODE, - CMSG_ADVENTURE_JOURNAL_UPDATE_SUGGESTIONS = UNKNOWN_OPCODE, CMSG_AUCTION_BROWSE_QUERY = UNKNOWN_OPCODE, CMSG_AUCTION_CANCEL_COMMODITIES_PURCHASE = UNKNOWN_OPCODE, CMSG_AUCTION_CONFIRM_COMMODITIES_PURCHASE = UNKNOWN_OPCODE, @@ -807,34 +805,6 @@ enum OpcodeClient : uint16 CMSG_DEPOSIT_REAGENT_BANK = UNKNOWN_OPCODE, CMSG_DF_CONFIRM_EXPAND_SEARCH = UNKNOWN_OPCODE, CMSG_DO_MASTER_LOOT_ROLL = UNKNOWN_OPCODE, - CMSG_GARRISON_ADD_FOLLOWER_HEALTH = UNKNOWN_OPCODE, - CMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING = UNKNOWN_OPCODE, - CMSG_GARRISON_CANCEL_CONSTRUCTION = UNKNOWN_OPCODE, - CMSG_GARRISON_CHECK_UPGRADEABLE = UNKNOWN_OPCODE, - CMSG_GARRISON_COMPLETE_MISSION = UNKNOWN_OPCODE, - CMSG_GARRISON_FULLY_HEAL_ALL_FOLLOWERS = UNKNOWN_OPCODE, - CMSG_GARRISON_GENERATE_RECRUITS = UNKNOWN_OPCODE, - CMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO = UNKNOWN_OPCODE, - CMSG_GARRISON_GET_MAP_DATA = UNKNOWN_OPCODE, - CMSG_GARRISON_GET_MISSION_REWARD = UNKNOWN_OPCODE, - CMSG_GARRISON_LEARN_TALENT = UNKNOWN_OPCODE, - CMSG_GARRISON_MISSION_BONUS_ROLL = UNKNOWN_OPCODE, - CMSG_GARRISON_PURCHASE_BUILDING = UNKNOWN_OPCODE, - CMSG_GARRISON_RECRUIT_FOLLOWER = UNKNOWN_OPCODE, - CMSG_GARRISON_REMOVE_FOLLOWER = UNKNOWN_OPCODE, - CMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING = UNKNOWN_OPCODE, - CMSG_GARRISON_RENAME_FOLLOWER = UNKNOWN_OPCODE, - CMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA = UNKNOWN_OPCODE, - CMSG_GARRISON_REQUEST_SHIPMENT_INFO = UNKNOWN_OPCODE, - CMSG_GARRISON_RESEARCH_TALENT = UNKNOWN_OPCODE, - CMSG_GARRISON_SET_BUILDING_ACTIVE = UNKNOWN_OPCODE, - CMSG_GARRISON_SET_FOLLOWER_FAVORITE = UNKNOWN_OPCODE, - CMSG_GARRISON_SET_FOLLOWER_INACTIVE = UNKNOWN_OPCODE, - CMSG_GARRISON_SET_RECRUITMENT_PREFERENCES = UNKNOWN_OPCODE, - CMSG_GARRISON_SOCKET_TALENT = UNKNOWN_OPCODE, - CMSG_GARRISON_START_MISSION = UNKNOWN_OPCODE, - CMSG_GARRISON_SWAP_BUILDINGS = UNKNOWN_OPCODE, - CMSG_GET_GARRISON_INFO = UNKNOWN_OPCODE, CMSG_GET_LANDING_PAGE_SHIPMENTS = UNKNOWN_OPCODE, CMSG_GET_RAF_ACCOUNT_INFO = UNKNOWN_OPCODE, CMSG_GET_TROPHY_LIST = UNKNOWN_OPCODE, @@ -869,7 +839,6 @@ enum OpcodeClient : uint16 CMSG_PET_BATTLE_REQUEST_WILD = UNKNOWN_OPCODE, CMSG_PET_BATTLE_SCRIPT_ERROR_NOTIFY = UNKNOWN_OPCODE, CMSG_PET_BATTLE_WILD_LOCATION_FAIL = UNKNOWN_OPCODE, - CMSG_QUERY_GARRISON_PET_NAME = UNKNOWN_OPCODE, CMSG_QUERY_SCENARIO_POI = UNKNOWN_OPCODE, CMSG_QUEST_SESSION_BEGIN_RESPONSE = UNKNOWN_OPCODE, CMSG_QUEST_SESSION_REQUEST_START = UNKNOWN_OPCODE, @@ -885,7 +854,6 @@ enum OpcodeClient : uint16 CMSG_REPORT_STUCK_IN_COMBAT = UNKNOWN_OPCODE, CMSG_REQUEST_CHARACTER_GUILD_FOLLOW_INFO = UNKNOWN_OPCODE, CMSG_REQUEST_COVENANT_CALLINGS = UNKNOWN_OPCODE, - CMSG_REQUEST_GARRISON_TALENT_WORLD_QUEST_UNLOCKS = UNKNOWN_OPCODE, CMSG_REQUEST_LATEST_SPLASH_SCREEN = UNKNOWN_OPCODE, CMSG_REQUEST_MYTHIC_PLUS_AFFIXES = UNKNOWN_OPCODE, CMSG_REQUEST_MYTHIC_PLUS_SEASON_DATA = UNKNOWN_OPCODE, @@ -911,7 +879,6 @@ enum OpcodeClient : uint16 CMSG_SET_SAVED_INSTANCE_EXTEND = UNKNOWN_OPCODE, CMSG_SET_SORT_BAGS_RIGHT_TO_LEFT = UNKNOWN_OPCODE, CMSG_SET_TRADE_CURRENCY = UNKNOWN_OPCODE, - CMSG_SET_USING_PARTY_GARRISON = UNKNOWN_OPCODE, CMSG_SET_WAR_MODE = UNKNOWN_OPCODE, CMSG_SORT_BAGS = UNKNOWN_OPCODE, CMSG_SORT_BANK_BAGS = UNKNOWN_OPCODE, @@ -926,7 +893,6 @@ enum OpcodeClient : uint16 CMSG_UI_MAP_QUEST_LINES_REQUEST = UNKNOWN_OPCODE, CMSG_UNLEARN_SPECIALIZATION = UNKNOWN_OPCODE, CMSG_UPDATE_CRAFTING_NPC_RECIPES = UNKNOWN_OPCODE, - CMSG_UPGRADE_GARRISON = UNKNOWN_OPCODE, CMSG_UPGRADE_RUNEFORGE_LEGENDARY = UNKNOWN_OPCODE, }; @@ -1895,7 +1861,6 @@ enum OpcodeServer : uint16 SMSG_ACTIVATE_SOULBIND_FAILED = UNKNOWN_OPCODE, SMSG_ACTIVE_SCHEDULED_WORLD_STATE_INFO = UNKNOWN_OPCODE, SMSG_ADVANCED_COMBAT_LOG = UNKNOWN_OPCODE, - SMSG_ADVENTURE_JOURNAL_DATA_RESPONSE = UNKNOWN_OPCODE, SMSG_APPLY_MOUNT_EQUIPMENT_RESULT = UNKNOWN_OPCODE, SMSG_AREA_TRIGGER_PLAY_SPELL_VISUAL = UNKNOWN_OPCODE, SMSG_AREA_TRIGGER_UPDATE_DECAL_PROPERTIES = UNKNOWN_OPCODE, @@ -1960,77 +1925,6 @@ enum OpcodeServer : uint16 SMSG_FORCE_ANIMATIONS = UNKNOWN_OPCODE, SMSG_FORCE_RANDOM_TRANSMOG_TOAST = UNKNOWN_OPCODE, SMSG_GAIN_MAW_POWER = UNKNOWN_OPCODE, - SMSG_GARRISON_ACTIVATE_MISSION_BONUS_ABILITY = UNKNOWN_OPCODE, - SMSG_GARRISON_ADD_EVENT = UNKNOWN_OPCODE, - SMSG_GARRISON_ADD_FOLLOWER_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_ADD_MISSION_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_ADD_SPEC_GROUPS = UNKNOWN_OPCODE, - SMSG_GARRISON_APPLY_TALENT_SOCKET_DATA_CHANGES = UNKNOWN_OPCODE, - SMSG_GARRISON_ASSIGN_FOLLOWER_TO_BUILDING_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_AUTO_TROOP_MIN_LEVEL_UPDATE_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_BUILDING_ACTIVATED = UNKNOWN_OPCODE, - SMSG_GARRISON_BUILDING_REMOVED = UNKNOWN_OPCODE, - SMSG_GARRISON_BUILDING_SET_ACTIVE_SPECIALIZATION_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_CHANGE_MISSION_START_TIME_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_CLEAR_COLLECTION = UNKNOWN_OPCODE, - SMSG_GARRISON_CLEAR_EVENT_LIST = UNKNOWN_OPCODE, - SMSG_GARRISON_CLEAR_SPEC_GROUPS = UNKNOWN_OPCODE, - SMSG_GARRISON_COLLECTION_REMOVE_ENTRY = UNKNOWN_OPCODE, - SMSG_GARRISON_COLLECTION_UPDATE_ENTRY = UNKNOWN_OPCODE, - SMSG_GARRISON_COMPLETE_BUILDING_CONSTRUCTION_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_COMPLETE_MISSION_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_CREATE_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_DELETE_MISSION_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_DELETE_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_FOLLOWER_ACTIVATIONS_SET = UNKNOWN_OPCODE, - SMSG_GARRISON_FOLLOWER_CHANGED_FLAGS = UNKNOWN_OPCODE, - SMSG_GARRISON_FOLLOWER_CHANGED_ITEM_LEVEL = UNKNOWN_OPCODE, - SMSG_GARRISON_FOLLOWER_CHANGED_QUALITY = UNKNOWN_OPCODE, - SMSG_GARRISON_FOLLOWER_CHANGED_XP = UNKNOWN_OPCODE, - SMSG_GARRISON_FOLLOWER_FATIGUE_CLEARED = UNKNOWN_OPCODE, - SMSG_GARRISON_GENERATE_FOLLOWERS_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_GET_CLASS_SPEC_CATEGORY_INFO_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_GET_RECALL_PORTAL_LAST_USED_TIME_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_IS_UPGRADEABLE_RESPONSE = UNKNOWN_OPCODE, - SMSG_GARRISON_LEARN_BLUEPRINT_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_LEARN_SPECIALIZATION_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_LIST_COMPLETED_MISSIONS_CHEAT_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_LIST_FOLLOWERS_CHEAT_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_MAP_DATA_RESPONSE = UNKNOWN_OPCODE, - SMSG_GARRISON_MISSION_BONUS_ROLL_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_MISSION_REQUEST_REWARD_INFO_RESPONSE = UNKNOWN_OPCODE, - SMSG_GARRISON_MISSION_START_CONDITION_UPDATE = UNKNOWN_OPCODE, - SMSG_GARRISON_OPEN_CRAFTER = UNKNOWN_OPCODE, - SMSG_GARRISON_OPEN_RECRUITMENT_NPC = UNKNOWN_OPCODE, - SMSG_GARRISON_PLACE_BUILDING_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_PLOT_PLACED = UNKNOWN_OPCODE, - SMSG_GARRISON_PLOT_REMOVED = UNKNOWN_OPCODE, - SMSG_GARRISON_RECRUIT_FOLLOWER_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_REMOTE_INFO = UNKNOWN_OPCODE, - SMSG_GARRISON_REMOVE_EVENT = UNKNOWN_OPCODE, - SMSG_GARRISON_REMOVE_FOLLOWER_ABILITY_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_REMOVE_FOLLOWER_FROM_BUILDING_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_REMOVE_FOLLOWER_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_RENAME_FOLLOWER_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_REQUEST_BLUEPRINT_AND_SPECIALIZATION_DATA_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_RESEARCH_TALENT_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_RESET_TALENT_TREE = UNKNOWN_OPCODE, - SMSG_GARRISON_RESET_TALENT_TREE_SOCKET_DATA = UNKNOWN_OPCODE, - SMSG_GARRISON_START_MISSION_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_SWAP_BUILDINGS_RESPONSE = UNKNOWN_OPCODE, - SMSG_GARRISON_SWITCH_TALENT_TREE_BRANCH = UNKNOWN_OPCODE, - SMSG_GARRISON_TALENT_COMPLETED = UNKNOWN_OPCODE, - SMSG_GARRISON_TALENT_REMOVED = UNKNOWN_OPCODE, - SMSG_GARRISON_TALENT_REMOVE_SOCKET_DATA = UNKNOWN_OPCODE, - SMSG_GARRISON_TALENT_UPDATE_SOCKET_DATA = UNKNOWN_OPCODE, - SMSG_GARRISON_TALENT_WORLD_QUEST_UNLOCKS_RESPONSE = UNKNOWN_OPCODE, - SMSG_GARRISON_UNLEARN_BLUEPRINT_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_UPDATE_FOLLOWER = UNKNOWN_OPCODE, - SMSG_GARRISON_UPDATE_GARRISON_MONUMENT_SELECTIONS = UNKNOWN_OPCODE, - SMSG_GARRISON_UPDATE_MISSION_CHEAT_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_UPGRADE_RESULT = UNKNOWN_OPCODE, - SMSG_GARRISON_USE_RECALL_PORTAL_RESULT = UNKNOWN_OPCODE, - SMSG_GET_GARRISON_INFO_RESULT = UNKNOWN_OPCODE, SMSG_GET_LANDING_PAGE_SHIPMENTS_RESPONSE = UNKNOWN_OPCODE, SMSG_GET_SELECTED_TROPHY_ID_RESPONSE = UNKNOWN_OPCODE, SMSG_GET_SHIPMENTS_OF_TYPE_RESPONSE = UNKNOWN_OPCODE, @@ -2100,7 +1994,6 @@ enum OpcodeServer : uint16 SMSG_PVP_MATCH_SET_STATE = UNKNOWN_OPCODE, SMSG_PVP_MATCH_STATISTICS = UNKNOWN_OPCODE, SMSG_PVP_TIER_RECORD = UNKNOWN_OPCODE, - SMSG_QUERY_GARRISON_PET_NAME_RESPONSE = UNKNOWN_OPCODE, SMSG_QUERY_GUILD_FOLLOW_INFO_RESPONSE = UNKNOWN_OPCODE, SMSG_QUERY_REALM_GUILD_MASTER_INFO_RESPONSE = UNKNOWN_OPCODE, SMSG_QUEST_SESSION_INFO_RESPONSE = UNKNOWN_OPCODE, diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 3b682752340..6a42e4c474f 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -104,12 +104,6 @@ namespace WorldPackets class GuildGetAchievementMembers; } - namespace AdventureJournal - { - class AdventureJournalOpenQuest; - class AdventureJournalUpdateSuggestions; - } - namespace AdventureMap { class CheckIsAdventureMapPoiValid; @@ -327,15 +321,6 @@ namespace WorldPackets class GameObjUse; } - namespace Garrison - { - class GetGarrisonInfo; - class GarrisonPurchaseBuilding; - class GarrisonCancelConstruction; - class GarrisonRequestBlueprintAndSpecializationData; - class GarrisonGetMapData; - } - namespace Guild { class QueryGuildInfo; @@ -1746,10 +1731,6 @@ class TC_GAME_API WorldSession void HandleKeyboundOverride(WorldPackets::Spells::KeyboundOverride& keyboundOverride); void HandleQueryCountdownTimer(WorldPackets::Misc::QueryCountdownTimer& queryCountdownTimer); - // Adventure Journal - void HandleAdventureJournalOpenQuest(WorldPackets::AdventureJournal::AdventureJournalOpenQuest& openQuest); - void HandleAdventureJournalUpdateSuggestions(WorldPackets::AdventureJournal::AdventureJournalUpdateSuggestions& updateSuggestions); - // Adventure Map void HandleCheckIsAdventureMapPoiValid(WorldPackets::AdventureMap::CheckIsAdventureMapPoiValid& CheckIsAdventureMapPoiValid); void HandleAdventureMapStartQuest(WorldPackets::AdventureMap::AdventureMapStartQuest& startQuest); @@ -1774,13 +1755,6 @@ class TC_GAME_API WorldSession void HandleSaveCUFProfiles(WorldPackets::Misc::SaveCUFProfiles& packet); void SendLoadCUFProfiles(); - // Garrison - void HandleGetGarrisonInfo(WorldPackets::Garrison::GetGarrisonInfo& getGarrisonInfo); - void HandleGarrisonPurchaseBuilding(WorldPackets::Garrison::GarrisonPurchaseBuilding& garrisonPurchaseBuilding); - void HandleGarrisonCancelConstruction(WorldPackets::Garrison::GarrisonCancelConstruction& garrisonCancelConstruction); - void HandleGarrisonRequestBlueprintAndSpecializationData(WorldPackets::Garrison::GarrisonRequestBlueprintAndSpecializationData& garrisonRequestBlueprintAndSpecializationData); - void HandleGarrisonGetMapData(WorldPackets::Garrison::GarrisonGetMapData& garrisonGetMapData); - // Battle Pets void HandleBattlePetRequestJournal(WorldPackets::BattlePet::BattlePetRequestJournal& battlePetRequestJournal); void HandleBattlePetRequestJournalLock(WorldPackets::BattlePet::BattlePetRequestJournalLock& battlePetRequestJournalLock); |