From 301bd611801c37a6c17b744d77bde3b997eb9dd9 Mon Sep 17 00:00:00 2001 From: collett Date: Tue, 27 Jul 2021 07:33:55 +0900 Subject: [PATCH 1/2] update to 5.55 hotfix Co-authored-by: Jeido Uran --- src/common/Common.h | 12 +- src/common/CommonGen.h | 31 +- src/common/Exd/ExdDataGenerated.cpp | 990 +++++++++++------- src/common/Exd/ExdDataGenerated.h | 526 +++++++--- src/common/Network/PacketDef/Ipcs.h | 375 ++++--- .../Network/PacketDef/Zone/ClientZoneDef.h | 2 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 40 +- .../quest/subquest/gridania/SubFst041.cpp | 2 +- src/world/Actor/Player.cpp | 2 +- src/world/Actor/Player.h | 10 +- src/world/Actor/PlayerSql.cpp | 3 + src/world/Manager/DebugCommandMgr.cpp | 22 +- src/world/Network/GameConnection.cpp | 8 +- .../PacketWrappers/PlayerSetupPacket.h | 2 +- 14 files changed, 1269 insertions(+), 756 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 3a951027..4e154989 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -25,7 +25,7 @@ namespace Sapphire::Common const uint8_t CURRENT_EXPANSION_ID = 3; const uint8_t CLASSJOB_TOTAL = 38; - const uint8_t CLASSJOB_SLOTS = 28; + const uint8_t CLASSJOB_SLOTS = 30; const uint8_t TOWN_COUNT = 6; @@ -51,11 +51,11 @@ namespace Sapphire::Common enum InventoryOperation : uint16_t { - Discard = 0x0117, - Move = 0x0118, - Swap = 0x0119, - Split = 0x011A, - Merge = 0x011C, + Discard = 0x01DE, + Move = 0x01DF, + Swap = 0x01E0, + Split = 0x01E1, + Merge = 0x01E3, }; enum ClientLanguage : uint8_t diff --git a/src/common/CommonGen.h b/src/common/CommonGen.h index 4833e57a..a0777232 100644 --- a/src/common/CommonGen.h +++ b/src/common/CommonGen.h @@ -204,6 +204,7 @@ enum class ContentType : uint8_t WondrousTails = 24, CustomDeliveries = 25, Eureka = 26, + UltimateRaids = 28, }; /////////////////////////////////////////////////////////// @@ -672,14 +673,14 @@ enum class Weather : uint8_t Moonlight1 = 98, Moonlight2 = 99, Moonlight3 = 100, - FairSkies10 = 101, + RedMoon = 101, Scarlet = 102, Scarlet1 = 103, Scarlet2 = 104, - FairSkies11 = 105, - FairSkies12 = 106, - FairSkies13 = 107, - FairSkies14 = 108, + FairSkies10 = 105, + FairSkies11 = 106, + FairSkies12 = 107, + FairSkies13 = 108, Flames = 109, Tsunamis = 110, Cyclones = 111, @@ -701,7 +702,23 @@ enum class Weather : uint8_t Termination2 = 127, Termination3 = 128, EverlastingLight1 = 129, + Eruptions1 = 130, Termination4 = 131, + FairSkies14 = 132, + UmbralFlare = 133, + UmbralDuststorm = 134, + UmbralLevin = 135, + UmbralTempest = 136, + Starshower = 137, + Delirium = 138, + Clouds2 = 139, + Clouds3 = 140, + Irradiance1 = 141, + Irradiance2 = 142, + StormClouds1 = 143, + Firestorm = 144, + SpectralCurrent = 145, + Climactic = 147, }; /////////////////////////////////////////////////////////// @@ -728,6 +745,10 @@ enum class HousingAppeal : uint8_t Bathhouse = 18, Garden = 19, FarEastern = 20, + VisitorsWelcome = 21, + Bakery = 22, + UnderRenovation = 23, + ConcertHall = 24, }; } diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index ca3d835a..4f04717e 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -7,22 +7,23 @@ Sapphire::Data::Achievement::Achievement( uint32_t row_id, Sapphire::Data::ExdDa achievementCategory = exdData->getField< uint8_t >( row, 0 ); name = exdData->getField< std::string >( row, 1 ); description = exdData->getField< std::string >( row, 2 ); - points = exdData->getField< uint8_t >( row, 3 ); - title = exdData->getField< uint16_t >( row, 4 ); - item = exdData->getField< uint32_t >( row, 5 ); - icon = exdData->getField< uint16_t >( row, 6 ); - type = exdData->getField< uint8_t >( row, 8 ); - key = exdData->getField< int32_t >( row, 9 ); - data.push_back( exdData->getField< int32_t >( row, 10 ) ); - data.push_back( exdData->getField< int32_t >( row, 11 ) ); - data.push_back( exdData->getField< int32_t >( row, 12 ) ); - data.push_back( exdData->getField< int32_t >( row, 13 ) ); - data.push_back( exdData->getField< int32_t >( row, 14 ) ); + achievementTarget = exdData->getField< uint8_t >( row, 3 ); + points = exdData->getField< uint8_t >( row, 5 ); + title = exdData->getField< uint16_t >( row, 6 ); + item = exdData->getField< uint32_t >( row, 7 ); + icon = exdData->getField< uint16_t >( row, 11 ); + type = exdData->getField< uint8_t >( row, 13 ); + key = exdData->getField< int32_t >( row, 14 ); data.push_back( exdData->getField< int32_t >( row, 15 ) ); data.push_back( exdData->getField< int32_t >( row, 16 ) ); data.push_back( exdData->getField< int32_t >( row, 17 ) ); - order = exdData->getField< uint16_t >( row, 18 ); - achievementHideCondition = exdData->getField< uint8_t >( row, 20 ); + data.push_back( exdData->getField< int32_t >( row, 18 ) ); + data.push_back( exdData->getField< int32_t >( row, 19 ) ); + data.push_back( exdData->getField< int32_t >( row, 20 ) ); + data.push_back( exdData->getField< int32_t >( row, 21 ) ); + data.push_back( exdData->getField< int32_t >( row, 22 ) ); + order = exdData->getField< uint16_t >( row, 23 ); + achievementHideCondition = exdData->getField< uint8_t >( row, 24 ); } Sapphire::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -50,6 +51,13 @@ Sapphire::Data::AchievementKind::AchievementKind( uint32_t row_id, Sapphire::Dat order = exdData->getField< uint8_t >( row, 1 ); } +Sapphire::Data::AchievementTarget::AchievementTarget( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_AchievementTargetDat.get_row( row_id ); + type = exdData->getField< uint8_t >( row, 0 ); + value = exdData->getField< uint32_t >( row, 1 ); +} + Sapphire::Data::Action::Action( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionDat.get_row( row_id ); @@ -83,6 +91,7 @@ Sapphire::Data::Action::Action( uint32_t row_id, Sapphire::Data::ExdDataGenerate cast100ms = exdData->getField< uint16_t >( row, 37 ); recast100ms = exdData->getField< uint16_t >( row, 38 ); cooldownGroup = exdData->getField< uint8_t >( row, 39 ); + additionalCooldownGroup = exdData->getField< uint8_t >( row, 40 ); maxCharges = exdData->getField< uint8_t >( row, 41 ); attackType = exdData->getField< int8_t >( row, 42 ); aspect = exdData->getField< uint8_t >( row, 43 ); @@ -129,6 +138,8 @@ Sapphire::Data::ActionIndirection::ActionIndirection( uint32_t row_id, Sapphire: { auto row = exdData->m_ActionIndirectionDat.get_row( row_id ); name = exdData->getField< int32_t >( row, 0 ); + classJob = exdData->getField< int8_t >( row, 1 ); + previousComboAction = exdData->getField< int32_t >( row, 2 ); } Sapphire::Data::ActionParam::ActionParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -307,6 +318,7 @@ Sapphire::Data::Aetheryte::Aetheryte( uint32_t row_id, Sapphire::Data::ExdDataGe level.push_back( exdData->getField< uint32_t >( row, 14 ) ); isAetheryte = exdData->getField< bool >( row, 15 ); aethernetGroup = exdData->getField< uint8_t >( row, 17 ); + invisible = exdData->getField< bool >( row, 18 ); requiredQuest = exdData->getField< uint32_t >( row, 19 ); map = exdData->getField< uint16_t >( row, 20 ); aetherstreamX = exdData->getField< int16_t >( row, 21 ); @@ -474,6 +486,7 @@ Sapphire::Data::AozAction::AozAction( uint32_t row_id, Sapphire::Data::ExdDataGe { auto row = exdData->m_AozActionDat.get_row( row_id ); action = exdData->getField< uint32_t >( row, 0 ); + rank = exdData->getField< uint8_t >( row, 1 ); } Sapphire::Data::AozActionTransient::AozActionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -566,6 +579,22 @@ Sapphire::Data::AOZContentBriefingBNpc::AOZContentBriefingBNpc( uint32_t row_id, flatOrDeathVuln = exdData->getField< bool >( row, 24 ); } +Sapphire::Data::AOZReport::AOZReport( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_AOZReportDat.get_row( row_id ); + reward = exdData->getField< uint8_t >( row, 1 ); + order = exdData->getField< int8_t >( row, 2 ); +} + +Sapphire::Data::AOZScore::AOZScore( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_AOZScoreDat.get_row( row_id ); + isHidden = exdData->getField< bool >( row, 0 ); + score = exdData->getField< int32_t >( row, 1 ); + name = exdData->getField< std::string >( row, 2 ); + description = exdData->getField< std::string >( row, 3 ); +} + Sapphire::Data::AquariumFish::AquariumFish( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AquariumFishDat.get_row( row_id ); @@ -1219,7 +1248,6 @@ Sapphire::Data::Channeling::Channeling( uint32_t row_id, Sapphire::Data::ExdData auto row = exdData->m_ChannelingDat.get_row( row_id ); file = exdData->getField< std::string >( row, 0 ); widthScale = exdData->getField< uint8_t >( row, 1 ); - addedIn53 = exdData->getField< bool >( row, 2 ); } Sapphire::Data::CharaMakeClassEquip::CharaMakeClassEquip( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -1633,6 +1661,7 @@ Sapphire::Data::ClassJob::ClassJob( uint32_t row_id, Sapphire::Data::ExdDataGene modifierIntelligence = exdData->getField< uint16_t >( row, 14 ); modifierMind = exdData->getField< uint16_t >( row, 15 ); modifierPiety = exdData->getField< uint16_t >( row, 16 ); + pvPActionSortRow = exdData->getField< uint8_t >( row, 24 ); classJobParent = exdData->getField< uint8_t >( row, 26 ); nameEnglish = exdData->getField< std::string >( row, 27 ); itemStartingWeapon = exdData->getField< int32_t >( row, 28 ); @@ -1704,6 +1733,7 @@ Sapphire::Data::CollectablesShop::CollectablesShop( uint32_t row_id, Sapphire::D auto row = exdData->m_CollectablesShopDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); quest = exdData->getField< uint32_t >( row, 1 ); + rewardType = exdData->getField< uint8_t >( row, 2 ); shopItems.push_back( exdData->getField< uint16_t >( row, 3 ) ); shopItems.push_back( exdData->getField< uint16_t >( row, 4 ) ); shopItems.push_back( exdData->getField< uint16_t >( row, 5 ) ); @@ -1724,6 +1754,8 @@ Sapphire::Data::CollectablesShopItem::CollectablesShopItem( uint32_t row_id, uin collectablesShopItemGroup = exdData->getField< uint8_t >( row, 1 ); levelMin = exdData->getField< uint16_t >( row, 2 ); levelMax = exdData->getField< uint16_t >( row, 3 ); + stars = exdData->getField< uint8_t >( row, 4 ); + key = exdData->getField< uint8_t >( row, 5 ); collectablesShopRefine = exdData->getField< uint16_t >( row, 6 ); collectablesShopRewardScrip = exdData->getField< uint16_t >( row, 7 ); } @@ -1746,6 +1778,9 @@ Sapphire::Data::CollectablesShopRewardItem::CollectablesShopRewardItem( uint32_t { auto row = exdData->m_CollectablesShopRewardItemDat.get_row( row_id ); item = exdData->getField< uint32_t >( row, 0 ); + rewardLow = exdData->getField< uint8_t >( row, 2 ); + rewardMid = exdData->getField< uint8_t >( row, 3 ); + rewardHigh = exdData->getField< uint8_t >( row, 4 ); } Sapphire::Data::CollectablesShopRewardScrip::CollectablesShopRewardScrip( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2016,6 +2051,16 @@ Sapphire::Data::CompleteJournalCategory::CompleteJournalCategory( uint32_t row_i lastQuest = exdData->getField< uint32_t >( row, 1 ); } +Sapphire::Data::Completion::Completion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_CompletionDat.get_row( row_id ); + group = exdData->getField< uint16_t >( row, 0 ); + key = exdData->getField< uint16_t >( row, 1 ); + lookupTable = exdData->getField< std::string >( row, 2 ); + text = exdData->getField< std::string >( row, 3 ); + groupTitle = exdData->getField< std::string >( row, 4 ); +} + Sapphire::Data::Condition::Condition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ConditionDat.get_row( row_id ); @@ -2062,31 +2107,30 @@ Sapphire::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, classJobLevelSync = exdData->getField< uint8_t >( row, 16 ); itemLevelRequired = exdData->getField< uint16_t >( row, 17 ); itemLevelSync = exdData->getField< uint16_t >( row, 18 ); - addedIn53 = exdData->getField< bool >( row, 19 ); allowUndersized = exdData->getField< bool >( row, 20 ); allowReplacement = exdData->getField< bool >( row, 21 ); allowExplorerMode = exdData->getField< bool >( row, 23 ); - unknown54 = exdData->getField< bool >( row, 25 ); highEndDuty = exdData->getField< bool >( row, 28 ); dutyRecorderAllowed = exdData->getField< bool >( row, 32 ); name = exdData->getField< std::string >( row, 37 ); - contentType = exdData->getField< uint8_t >( row, 38 ); - transientKey = exdData->getField< uint8_t >( row, 39 ); - transient = exdData->getField< uint32_t >( row, 40 ); - sortKey = exdData->getField< uint16_t >( row, 41 ); - image = exdData->getField< uint32_t >( row, 42 ); - icon = exdData->getField< uint32_t >( row, 43 ); - levelingRoulette = exdData->getField< bool >( row, 45 ); - level506070Roulette = exdData->getField< bool >( row, 46 ); - mSQRoulette = exdData->getField< bool >( row, 47 ); - guildHestRoulette = exdData->getField< bool >( row, 48 ); - expertRoulette = exdData->getField< bool >( row, 49 ); - trialRoulette = exdData->getField< bool >( row, 50 ); - dailyFrontlineChallenge = exdData->getField< bool >( row, 51 ); - level80Roulette = exdData->getField< bool >( row, 52 ); - mentorRoulette = exdData->getField< bool >( row, 53 ); - allianceRoulette = exdData->getField< bool >( row, 59 ); - normalRaidRoulette = exdData->getField< bool >( row, 61 ); + nameShort = exdData->getField< std::string >( row, 38 ); + contentType = exdData->getField< uint8_t >( row, 39 ); + transientKey = exdData->getField< uint8_t >( row, 40 ); + transient = exdData->getField< uint32_t >( row, 41 ); + sortKey = exdData->getField< uint16_t >( row, 42 ); + image = exdData->getField< uint32_t >( row, 43 ); + icon = exdData->getField< uint32_t >( row, 44 ); + levelingRoulette = exdData->getField< bool >( row, 46 ); + level506070Roulette = exdData->getField< bool >( row, 48 ); + mSQRoulette = exdData->getField< bool >( row, 49 ); + guildHestRoulette = exdData->getField< bool >( row, 50 ); + expertRoulette = exdData->getField< bool >( row, 51 ); + trialRoulette = exdData->getField< bool >( row, 52 ); + dailyFrontlineChallenge = exdData->getField< bool >( row, 53 ); + level80Roulette = exdData->getField< bool >( row, 54 ); + mentorRoulette = exdData->getField< bool >( row, 55 ); + allianceRoulette = exdData->getField< bool >( row, 61 ); + normalRaidRoulette = exdData->getField< bool >( row, 63 ); } Sapphire::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2118,7 +2162,6 @@ Sapphire::Data::ContentMemberType::ContentMemberType( uint32_t row_id, Sapphire: healersPerParty = exdData->getField< uint8_t >( row, 10 ); meleesPerParty = exdData->getField< uint8_t >( row, 11 ); rangedPerParty = exdData->getField< uint8_t >( row, 12 ); - unknown54 = exdData->getField< uint8_t >( row, 13 ); } Sapphire::Data::ContentNpcTalk::ContentNpcTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2280,6 +2323,17 @@ Sapphire::Data::CraftLevelDifference::CraftLevelDifference( uint32_t row_id, Sap qualityFactor = exdData->getField< int16_t >( row, 2 ); } +Sapphire::Data::CraftLeveTalk::CraftLeveTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_CraftLeveTalkDat.get_row( row_id ); + talk.push_back( exdData->getField< std::string >( row, 36 ) ); + talk.push_back( exdData->getField< std::string >( row, 37 ) ); + talk.push_back( exdData->getField< std::string >( row, 38 ) ); + talk.push_back( exdData->getField< std::string >( row, 39 ) ); + talk.push_back( exdData->getField< std::string >( row, 40 ) ); + talk.push_back( exdData->getField< std::string >( row, 41 ) ); +} + Sapphire::Data::CraftType::CraftType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CraftTypeDat.get_row( row_id ); @@ -2306,8 +2360,7 @@ Sapphire::Data::Credit::Credit( uint32_t row_id, uint32_t subRow, Sapphire::Data Sapphire::Data::CreditBackImage::CreditBackImage( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CreditBackImageDat.get_row( row_id, subRow ); - unknown54 = exdData->getField< bool >( row, 2 ); - backImage = exdData->getField< uint32_t >( row, 3 ); + backImage = exdData->getField< uint32_t >( row, 5 ); } Sapphire::Data::CreditCast::CreditCast( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2397,15 +2450,9 @@ Sapphire::Data::CustomTalk::CustomTalk( uint32_t row_id, Sapphire::Data::ExdData scriptArg.push_back( exdData->getField< uint32_t >( row, 60 ) ); scriptArg.push_back( exdData->getField< uint32_t >( row, 61 ) ); scriptArg.push_back( exdData->getField< uint32_t >( row, 62 ) ); - text = exdData->getField< bool >( row, 66 ); - unknown54 = exdData->getField< bool >( row, 77 ); -} - -Sapphire::Data::CustomTalkDynamicIcon::CustomTalkDynamicIcon( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) -{ - auto row = exdData->m_CustomTalkDynamicIconDat.get_row( row_id, subRow ); - smallIcon = exdData->getField< uint32_t >( row, 0 ); - largeIcon = exdData->getField< uint32_t >( row, 1 ); + mainOption = exdData->getField< std::string >( row, 64 ); + subOption = exdData->getField< std::string >( row, 65 ); + specialLinks = exdData->getField< uint32_t >( row, 75 ); } Sapphire::Data::CustomTalkNestHandlers::CustomTalkNestHandlers( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2420,6 +2467,12 @@ Sapphire::Data::Cutscene::Cutscene( uint32_t row_id, Sapphire::Data::ExdDataGene path = exdData->getField< std::string >( row, 0 ); } +Sapphire::Data::CutSceneIncompQuest::CutSceneIncompQuest( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_CutSceneIncompQuestDat.get_row( row_id, subRow ); + quest = exdData->getField< uint32_t >( row, 0 ); +} + Sapphire::Data::CutsceneMotion::CutsceneMotion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CutsceneMotionDat.get_row( row_id ); @@ -2686,25 +2739,7 @@ Sapphire::Data::Description::Description( uint32_t row_id, Sapphire::Data::ExdDa Sapphire::Data::DescriptionPage::DescriptionPage( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DescriptionPageDat.get_row( row_id, subRow ); - quest = exdData->getField< uint32_t >( row, 0 ); - text1 = exdData->getField< uint16_t >( row, 1 ); - image1 = exdData->getField< uint32_t >( row, 2 ); - text2 = exdData->getField< uint16_t >( row, 3 ); - image2 = exdData->getField< uint32_t >( row, 4 ); - text3 = exdData->getField< uint16_t >( row, 5 ); - image3 = exdData->getField< uint32_t >( row, 6 ); - text4 = exdData->getField< uint16_t >( row, 7 ); - image4 = exdData->getField< uint32_t >( row, 8 ); - text5 = exdData->getField< uint16_t >( row, 9 ); - image5 = exdData->getField< uint32_t >( row, 10 ); - text6 = exdData->getField< uint16_t >( row, 11 ); - image6 = exdData->getField< uint32_t >( row, 12 ); - text7 = exdData->getField< uint16_t >( row, 13 ); - image7 = exdData->getField< uint32_t >( row, 14 ); - text8 = exdData->getField< uint16_t >( row, 15 ); - image8 = exdData->getField< uint32_t >( row, 16 ); - text9 = exdData->getField< uint16_t >( row, 17 ); - image9 = exdData->getField< uint32_t >( row, 18 ); + quest = exdData->getField< uint32_t >( row, 1 ); } Sapphire::Data::DescriptionSection::DescriptionSection( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2983,11 +3018,8 @@ Sapphire::Data::ENpcDressUp::ENpcDressUp( uint32_t row_id, Sapphire::Data::ExdDa Sapphire::Data::ENpcDressUpDress::ENpcDressUpDress( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ENpcDressUpDressDat.get_row( row_id, subRow ); - addedIn530 = exdData->getField< bool >( row, 5 ); eNpc = exdData->getField< uint32_t >( row, 7 ); - addedIn531 = exdData->getField< uint16_t >( row, 8 ); behavior = exdData->getField< uint16_t >( row, 9 ); - addedIn532 = exdData->getField< uint8_t >( row, 36 ); modelMainHand = exdData->getField< uint64_t >( row, 37 ); dyeMainHand = exdData->getField< uint8_t >( row, 38 ); modelOffHand = exdData->getField< uint64_t >( row, 39 ); @@ -3145,6 +3177,61 @@ Sapphire::Data::EventAction::EventAction( uint32_t row_id, Sapphire::Data::ExdDa animation.push_back( exdData->getField< uint16_t >( row, 5 ) ); } +Sapphire::Data::EventCustomIconType::EventCustomIconType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_EventCustomIconTypeDat.get_row( row_id ); + announceQuest.push_back( exdData->getField< uint32_t >( row, 0 ) ); + announceQuest.push_back( exdData->getField< uint32_t >( row, 1 ) ); + announceQuest.push_back( exdData->getField< uint32_t >( row, 2 ) ); + announceQuest.push_back( exdData->getField< uint32_t >( row, 3 ) ); + announceQuest.push_back( exdData->getField< uint32_t >( row, 4 ) ); + announceQuest.push_back( exdData->getField< uint32_t >( row, 5 ) ); + announceQuest.push_back( exdData->getField< uint32_t >( row, 6 ) ); + announceQuest.push_back( exdData->getField< uint32_t >( row, 7 ) ); + announceQuest.push_back( exdData->getField< uint32_t >( row, 8 ) ); + announceQuest.push_back( exdData->getField< uint32_t >( row, 9 ) ); + announceQuestLocked.push_back( exdData->getField< uint32_t >( row, 10 ) ); + announceQuestLocked.push_back( exdData->getField< uint32_t >( row, 11 ) ); + announceQuestLocked.push_back( exdData->getField< uint32_t >( row, 12 ) ); + announceQuestLocked.push_back( exdData->getField< uint32_t >( row, 13 ) ); + announceQuestLocked.push_back( exdData->getField< uint32_t >( row, 14 ) ); + announceQuestLocked.push_back( exdData->getField< uint32_t >( row, 15 ) ); + announceQuestLocked.push_back( exdData->getField< uint32_t >( row, 16 ) ); + announceQuestLocked.push_back( exdData->getField< uint32_t >( row, 17 ) ); + announceQuestLocked.push_back( exdData->getField< uint32_t >( row, 18 ) ); + announceQuestLocked.push_back( exdData->getField< uint32_t >( row, 19 ) ); + mapAnnounceQuest0.push_back( exdData->getField< uint32_t >( row, 20 ) ); + mapAnnounceQuest0.push_back( exdData->getField< uint32_t >( row, 21 ) ); + mapAnnounceQuest0.push_back( exdData->getField< uint32_t >( row, 22 ) ); + mapAnnounceQuest0.push_back( exdData->getField< uint32_t >( row, 23 ) ); + mapAnnounceQuest0.push_back( exdData->getField< uint32_t >( row, 24 ) ); + mapAnnounceQuest0.push_back( exdData->getField< uint32_t >( row, 25 ) ); + mapAnnounceQuest0.push_back( exdData->getField< uint32_t >( row, 26 ) ); + mapAnnounceQuest0.push_back( exdData->getField< uint32_t >( row, 27 ) ); + mapAnnounceQuest0.push_back( exdData->getField< uint32_t >( row, 28 ) ); + mapAnnounceQuest0.push_back( exdData->getField< uint32_t >( row, 29 ) ); + mapAnnounceQuestLocked.push_back( exdData->getField< uint32_t >( row, 30 ) ); + mapAnnounceQuestLocked.push_back( exdData->getField< uint32_t >( row, 31 ) ); + mapAnnounceQuestLocked.push_back( exdData->getField< uint32_t >( row, 32 ) ); + mapAnnounceQuestLocked.push_back( exdData->getField< uint32_t >( row, 33 ) ); + mapAnnounceQuestLocked.push_back( exdData->getField< uint32_t >( row, 34 ) ); + mapAnnounceQuestLocked.push_back( exdData->getField< uint32_t >( row, 35 ) ); + mapAnnounceQuestLocked.push_back( exdData->getField< uint32_t >( row, 36 ) ); + mapAnnounceQuestLocked.push_back( exdData->getField< uint32_t >( row, 37 ) ); + mapAnnounceQuestLocked.push_back( exdData->getField< uint32_t >( row, 38 ) ); + mapAnnounceQuestLocked.push_back( exdData->getField< uint32_t >( row, 39 ) ); + mapAnnounceQuest1.push_back( exdData->getField< uint32_t >( row, 40 ) ); + mapAnnounceQuest1.push_back( exdData->getField< uint32_t >( row, 41 ) ); + mapAnnounceQuest1.push_back( exdData->getField< uint32_t >( row, 42 ) ); + mapAnnounceQuest1.push_back( exdData->getField< uint32_t >( row, 43 ) ); + mapAnnounceQuest1.push_back( exdData->getField< uint32_t >( row, 44 ) ); + mapAnnounceQuest1.push_back( exdData->getField< uint32_t >( row, 45 ) ); + mapAnnounceQuest1.push_back( exdData->getField< uint32_t >( row, 46 ) ); + mapAnnounceQuest1.push_back( exdData->getField< uint32_t >( row, 47 ) ); + mapAnnounceQuest1.push_back( exdData->getField< uint32_t >( row, 48 ) ); + mapAnnounceQuest1.push_back( exdData->getField< uint32_t >( row, 49 ) ); +} + Sapphire::Data::EventIconPriority::EventIconPriority( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EventIconPriorityDat.get_row( row_id ); @@ -3224,6 +3311,14 @@ Sapphire::Data::EventSystemDefine::EventSystemDefine( uint32_t row_id, Sapphire: defineValue = exdData->getField< uint32_t >( row, 1 ); } +Sapphire::Data::ExportedGatheringPoint::ExportedGatheringPoint( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_ExportedGatheringPointDat.get_row( row_id ); + x = exdData->getField< float >( row, 0 ); + y = exdData->getField< float >( row, 1 ); + radius = exdData->getField< uint8_t >( row, 2 ); +} + Sapphire::Data::ExportedSG::ExportedSG( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ExportedSGDat.get_row( row_id ); @@ -3241,46 +3336,47 @@ Sapphire::Data::ExVersion::ExVersion( uint32_t row_id, Sapphire::Data::ExdDataGe Sapphire::Data::Fate::Fate( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FateDat.get_row( row_id ); - eurekaFate = exdData->getField< uint8_t >( row, 0 ); - rule = exdData->getField< uint8_t >( row, 1 ); - fateRuleEx = exdData->getField< uint16_t >( row, 2 ); - location = exdData->getField< uint32_t >( row, 3 ); - classJobLevel = exdData->getField< uint8_t >( row, 4 ); - classJobLevelMax = exdData->getField< uint8_t >( row, 5 ); - eventItem = exdData->getField< uint32_t >( row, 6 ); - typeToDoValue.push_back( exdData->getField< uint8_t >( row, 7 ) ); - typeToDoValue.push_back( exdData->getField< uint8_t >( row, 8 ) ); - typeToDoValue.push_back( exdData->getField< uint8_t >( row, 9 ) ); - iconObjective = exdData->getField< uint32_t >( row, 10 ); - iconMap = exdData->getField< uint32_t >( row, 11 ); - iconInactiveMap = exdData->getField< uint32_t >( row, 12 ); - music = exdData->getField< int32_t >( row, 13 ); - lGBGuardNPCLocation = exdData->getField< uint32_t >( row, 14 ); - screenImageAccept = exdData->getField< uint16_t >( row, 15 ); - screenImageComplete = exdData->getField< uint16_t >( row, 16 ); - screenImageFailed = exdData->getField< uint16_t >( row, 17 ); - specialFate = exdData->getField< bool >( row, 20 ); - givenStatus = exdData->getField< uint16_t >( row, 22 ); - adventEvent = exdData->getField< bool >( row, 24 ); - moonFaireEvent = exdData->getField< bool >( row, 25 ); - fATEChain = exdData->getField< uint32_t >( row, 27 ); - name = exdData->getField< std::string >( row, 30 ); - description = exdData->getField< std::string >( row, 31 ); - objective = exdData->getField< std::string >( row, 32 ); - statusText.push_back( exdData->getField< std::string >( row, 33 ) ); - statusText.push_back( exdData->getField< std::string >( row, 34 ) ); - statusText.push_back( exdData->getField< std::string >( row, 35 ) ); + name = exdData->getField< std::string >( row, 0 ); + description = exdData->getField< std::string >( row, 1 ); + objective = exdData->getField< std::string >( row, 2 ); + statusText.push_back( exdData->getField< std::string >( row, 3 ) ); + statusText.push_back( exdData->getField< std::string >( row, 4 ) ); + statusText.push_back( exdData->getField< std::string >( row, 5 ) ); + eurekaFate = exdData->getField< uint8_t >( row, 6 ); + rule = exdData->getField< uint8_t >( row, 7 ); + fateRuleEx = exdData->getField< uint16_t >( row, 8 ); + location = exdData->getField< uint32_t >( row, 9 ); + classJobLevel = exdData->getField< uint8_t >( row, 10 ); + classJobLevelMax = exdData->getField< uint8_t >( row, 11 ); + eventItem = exdData->getField< uint32_t >( row, 12 ); + typeToDoValue.push_back( exdData->getField< uint8_t >( row, 13 ) ); + typeToDoValue.push_back( exdData->getField< uint8_t >( row, 14 ) ); + typeToDoValue.push_back( exdData->getField< uint8_t >( row, 15 ) ); + iconObjective = exdData->getField< uint32_t >( row, 16 ); + iconMap = exdData->getField< uint32_t >( row, 17 ); + iconInactiveMap = exdData->getField< uint32_t >( row, 18 ); + music = exdData->getField< int32_t >( row, 19 ); + lGBGuardNPCLocation = exdData->getField< uint32_t >( row, 20 ); + screenImageAccept = exdData->getField< uint16_t >( row, 21 ); + screenImageComplete = exdData->getField< uint16_t >( row, 22 ); + screenImageFailed = exdData->getField< uint16_t >( row, 23 ); + requiredQuest = exdData->getField< uint32_t >( row, 25 ); + specialFate = exdData->getField< bool >( row, 26 ); + givenStatus = exdData->getField< uint16_t >( row, 28 ); + adventEvent = exdData->getField< bool >( row, 30 ); + moonFaireEvent = exdData->getField< bool >( row, 31 ); + fATEChain = exdData->getField< uint32_t >( row, 33 ); arrayIndex = exdData->getField< uint32_t >( row, 36 ); reqEventItem = exdData->getField< uint32_t >( row, 38 ); turnInEventItem = exdData->getField< uint32_t >( row, 39 ); - objectiveIcon.push_back( exdData->getField< uint16_t >( row, 40 ) ); - objectiveIcon.push_back( exdData->getField< uint16_t >( row, 41 ) ); - objectiveIcon.push_back( exdData->getField< uint16_t >( row, 42 ) ); objectiveIcon.push_back( exdData->getField< uint16_t >( row, 43 ) ); objectiveIcon.push_back( exdData->getField< uint16_t >( row, 44 ) ); objectiveIcon.push_back( exdData->getField< uint16_t >( row, 45 ) ); objectiveIcon.push_back( exdData->getField< uint16_t >( row, 46 ) ); objectiveIcon.push_back( exdData->getField< uint16_t >( row, 47 ) ); + objectiveIcon.push_back( exdData->getField< uint16_t >( row, 48 ) ); + objectiveIcon.push_back( exdData->getField< uint16_t >( row, 49 ) ); + objectiveIcon.push_back( exdData->getField< uint16_t >( row, 50 ) ); } Sapphire::Data::FateEvent::FateEvent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3564,33 +3660,6 @@ Sapphire::Data::Frontline04::Frontline04( uint32_t row_id, Sapphire::Data::ExdDa level1 = exdData->getField< int32_t >( row, 0 ); level2 = exdData->getField< int32_t >( row, 1 ); level3 = exdData->getField< int32_t >( row, 2 ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 6 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 7 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 8 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 9 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 10 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 11 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 12 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 13 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 14 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 15 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 16 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 17 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 18 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 19 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 20 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 21 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 22 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 23 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 24 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 25 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 26 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 27 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 28 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 29 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 30 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 31 ) ); - unknownLevel.push_back( exdData->getField< int32_t >( row, 32 ) ); } Sapphire::Data::FurnitureCatalogCategory::FurnitureCatalogCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3825,8 +3894,6 @@ Sapphire::Data::GatheringPointBonus::GatheringPointBonus( uint32_t row_id, Sapph conditionValue = exdData->getField< uint32_t >( row, 1 ); bonusType = exdData->getField< uint8_t >( row, 3 ); bonusValue = exdData->getField< uint16_t >( row, 4 ); - unknown53 = exdData->getField< bool >( row, 6 ); - unknown54 = exdData->getField< uint32_t >( row, 7 ); } Sapphire::Data::GatheringPointBonusType::GatheringPointBonusType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3889,6 +3956,18 @@ Sapphire::Data::GcArmyCaptureTactics::GcArmyCaptureTactics( uint32_t row_id, Sap icon = exdData->getField< uint32_t >( row, 5 ); } +Sapphire::Data::GcArmyEquipPreset::GcArmyEquipPreset( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_GcArmyEquipPresetDat.get_row( row_id ); + mainHand = exdData->getField< int32_t >( row, 0 ); + offHand = exdData->getField< int32_t >( row, 1 ); + head = exdData->getField< int32_t >( row, 2 ); + body = exdData->getField< int32_t >( row, 3 ); + gloves = exdData->getField< int32_t >( row, 4 ); + legs = exdData->getField< int32_t >( row, 5 ); + feet = exdData->getField< int32_t >( row, 6 ); +} + Sapphire::Data::GcArmyExpedition::GcArmyExpedition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GcArmyExpeditionDat.get_row( row_id ); @@ -3921,6 +4000,246 @@ Sapphire::Data::GcArmyMemberGrow::GcArmyMemberGrow( uint32_t row_id, Sapphire::D auto row = exdData->m_GcArmyMemberGrowDat.get_row( row_id ); classJob = exdData->getField< uint8_t >( row, 0 ); classBook = exdData->getField< int32_t >( row, 1 ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 2 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 3 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 4 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 5 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 6 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 7 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 8 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 9 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 10 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 11 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 12 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 13 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 14 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 15 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 16 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 17 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 18 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 19 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 20 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 21 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 22 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 23 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 24 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 25 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 26 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 27 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 28 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 29 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 30 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 31 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 32 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 33 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 34 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 35 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 36 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 37 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 38 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 39 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 40 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 41 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 42 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 43 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 44 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 45 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 46 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 47 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 48 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 49 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 50 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 51 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 52 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 53 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 54 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 55 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 56 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 57 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 58 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 59 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 60 ) ); + equipPreset.push_back( exdData->getField< uint16_t >( row, 61 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 63 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 64 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 65 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 66 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 67 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 68 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 69 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 70 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 71 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 72 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 73 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 74 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 75 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 76 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 77 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 78 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 79 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 80 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 81 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 82 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 83 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 84 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 85 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 86 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 87 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 88 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 89 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 90 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 91 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 92 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 93 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 94 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 95 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 96 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 97 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 98 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 99 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 100 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 101 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 102 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 103 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 104 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 105 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 106 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 107 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 108 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 109 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 110 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 111 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 112 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 113 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 114 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 115 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 116 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 117 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 118 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 119 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 120 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 121 ) ); + physical.push_back( exdData->getField< uint8_t >( row, 122 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 124 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 125 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 126 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 127 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 128 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 129 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 130 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 131 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 132 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 133 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 134 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 135 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 136 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 137 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 138 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 139 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 140 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 141 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 142 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 143 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 144 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 145 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 146 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 147 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 148 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 149 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 150 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 151 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 152 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 153 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 154 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 155 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 156 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 157 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 158 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 159 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 160 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 161 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 162 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 163 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 164 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 165 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 166 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 167 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 168 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 169 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 170 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 171 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 172 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 173 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 174 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 175 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 176 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 177 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 178 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 179 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 180 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 181 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 182 ) ); + mental.push_back( exdData->getField< uint8_t >( row, 183 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 185 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 186 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 187 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 188 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 189 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 190 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 191 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 192 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 193 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 194 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 195 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 196 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 197 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 198 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 199 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 200 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 201 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 202 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 203 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 204 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 205 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 206 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 207 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 208 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 209 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 210 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 211 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 212 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 213 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 214 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 215 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 216 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 217 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 218 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 219 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 220 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 221 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 222 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 223 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 224 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 225 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 226 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 227 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 228 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 229 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 230 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 231 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 232 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 233 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 234 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 235 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 236 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 237 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 238 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 239 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 240 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 241 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 242 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 243 ) ); + tactical.push_back( exdData->getField< uint8_t >( row, 244 ) ); } Sapphire::Data::GcArmyTraining::GcArmyTraining( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -4127,9 +4446,9 @@ Sapphire::Data::GilShopItem::GilShopItem( uint32_t row_id, uint32_t subRow, Sapp { auto row = exdData->m_GilShopItemDat.get_row( row_id, subRow ); item = exdData->getField< int32_t >( row, 0 ); - rowRequired.push_back( exdData->getField< int32_t >( row, 3 ) ); - rowRequired.push_back( exdData->getField< int32_t >( row, 4 ) ); - rowRequired.push_back( exdData->getField< int32_t >( row, 5 ) ); + questRequired.push_back( exdData->getField< int32_t >( row, 3 ) ); + questRequired.push_back( exdData->getField< int32_t >( row, 4 ) ); + achievementRequired = exdData->getField< int32_t >( row, 5 ); stateRequired = exdData->getField< uint16_t >( row, 7 ); patch = exdData->getField< uint16_t >( row, 8 ); } @@ -4205,7 +4524,6 @@ Sapphire::Data::GroupPoseFrame::GroupPoseFrame( uint32_t row_id, Sapphire::Data: auto row = exdData->m_GroupPoseFrameDat.get_row( row_id ); image = exdData->getField< int32_t >( row, 1 ); gridText = exdData->getField< std::string >( row, 2 ); - unknown54 = exdData->getField< int32_t >( row, 6 ); text = exdData->getField< std::string >( row, 7 ); } @@ -4214,8 +4532,6 @@ Sapphire::Data::GroupPoseStamp::GroupPoseStamp( uint32_t row_id, Sapphire::Data: auto row = exdData->m_GroupPoseStampDat.get_row( row_id ); stampIcon = exdData->getField< int32_t >( row, 0 ); category = exdData->getField< int32_t >( row, 2 ); - unknown540 = exdData->getField< int32_t >( row, 4 ); - unknown541 = exdData->getField< bool >( row, 5 ); name = exdData->getField< std::string >( row, 8 ); } @@ -4262,7 +4578,7 @@ Sapphire::Data::GuideTitle::GuideTitle( uint32_t row_id, Sapphire::Data::ExdData Sapphire::Data::GuildleveAssignment::GuildleveAssignment( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GuildleveAssignmentDat.get_row( row_id ); - addedIn53 = exdData->getField< uint8_t >( row, 1 ); + type = exdData->getField< std::string >( row, 0 ); assignmentTalk = exdData->getField< uint32_t >( row, 2 ); quest.push_back( exdData->getField< uint32_t >( row, 3 ) ); quest.push_back( exdData->getField< uint32_t >( row, 4 ) ); @@ -4281,6 +4597,19 @@ Sapphire::Data::GuildleveAssignmentCategory::GuildleveAssignmentCategory( uint32 category.push_back( exdData->getField< int32_t >( row, 7 ) ); } +Sapphire::Data::GuildleveAssignmentTalk::GuildleveAssignmentTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_GuildleveAssignmentTalkDat.get_row( row_id ); + talk.push_back( exdData->getField< std::string >( row, 30 ) ); + talk.push_back( exdData->getField< std::string >( row, 31 ) ); + talk.push_back( exdData->getField< std::string >( row, 32 ) ); + talk.push_back( exdData->getField< std::string >( row, 33 ) ); + talk.push_back( exdData->getField< std::string >( row, 34 ) ); + talk.push_back( exdData->getField< std::string >( row, 35 ) ); + talk.push_back( exdData->getField< std::string >( row, 36 ) ); + talk.push_back( exdData->getField< std::string >( row, 37 ) ); +} + Sapphire::Data::GuildOrder::GuildOrder( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GuildOrderDat.get_row( row_id ); @@ -4635,17 +4964,20 @@ Sapphire::Data::HousingYardObject::HousingYardObject( uint32_t row_id, Sapphire: Sapphire::Data::HowTo::HowTo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HowToDat.get_row( row_id ); - images.push_back( exdData->getField< int16_t >( row, 2 ) ); - images.push_back( exdData->getField< int16_t >( row, 3 ) ); - images.push_back( exdData->getField< int16_t >( row, 4 ) ); - images.push_back( exdData->getField< int16_t >( row, 5 ) ); - images.push_back( exdData->getField< int16_t >( row, 6 ) ); - images.push_back( exdData->getField< int16_t >( row, 7 ) ); - images.push_back( exdData->getField< int16_t >( row, 8 ) ); - images.push_back( exdData->getField< int16_t >( row, 9 ) ); - images.push_back( exdData->getField< int16_t >( row, 10 ) ); - images.push_back( exdData->getField< int16_t >( row, 11 ) ); + name = exdData->getField< std::string >( row, 0 ); + announce = exdData->getField< bool >( row, 1 ); + howToPagePC.push_back( exdData->getField< int16_t >( row, 2 ) ); + howToPagePC.push_back( exdData->getField< int16_t >( row, 3 ) ); + howToPagePC.push_back( exdData->getField< int16_t >( row, 4 ) ); + howToPagePC.push_back( exdData->getField< int16_t >( row, 5 ) ); + howToPagePC.push_back( exdData->getField< int16_t >( row, 6 ) ); + howToPageController.push_back( exdData->getField< int16_t >( row, 7 ) ); + howToPageController.push_back( exdData->getField< int16_t >( row, 8 ) ); + howToPageController.push_back( exdData->getField< int16_t >( row, 9 ) ); + howToPageController.push_back( exdData->getField< int16_t >( row, 10 ) ); + howToPageController.push_back( exdData->getField< int16_t >( row, 11 ) ); category = exdData->getField< int8_t >( row, 12 ); + sort = exdData->getField< uint8_t >( row, 13 ); } Sapphire::Data::HowToCategory::HowToCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -4657,7 +4989,13 @@ Sapphire::Data::HowToCategory::HowToCategory( uint32_t row_id, Sapphire::Data::E Sapphire::Data::HowToPage::HowToPage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HowToPageDat.get_row( row_id ); + type = exdData->getField< uint8_t >( row, 0 ); + iconType = exdData->getField< uint8_t >( row, 1 ); image = exdData->getField< int32_t >( row, 2 ); + textType = exdData->getField< uint8_t >( row, 3 ); + text.push_back( exdData->getField< std::string >( row, 4 ) ); + text.push_back( exdData->getField< std::string >( row, 5 ) ); + text.push_back( exdData->getField< std::string >( row, 6 ) ); } Sapphire::Data::HugeCraftworksNpc::HugeCraftworksNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -5671,7 +6009,6 @@ Sapphire::Data::IKDFishParam::IKDFishParam( uint32_t row_id, Sapphire::Data::Exd auto row = exdData->m_IKDFishParamDat.get_row( row_id ); fish = exdData->getField< uint32_t >( row, 0 ); iKDContentBonus = exdData->getField< uint8_t >( row, 1 ); - unknown54 = exdData->getField< uint8_t >( row, 2 ); } Sapphire::Data::IKDRoute::IKDRoute( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -5754,8 +6091,6 @@ Sapphire::Data::IndividualWeather::IndividualWeather( uint32_t row_id, Sapphire: weather.push_back( exdData->getField< uint8_t >( row, 3 ) ); weather.push_back( exdData->getField< uint8_t >( row, 4 ) ); weather.push_back( exdData->getField< uint8_t >( row, 5 ) ); - addedIn530 = exdData->getField< uint8_t >( row, 12 ); - addedIn531 = exdData->getField< uint8_t >( row, 13 ); quest.push_back( exdData->getField< uint32_t >( row, 15 ) ); quest.push_back( exdData->getField< uint32_t >( row, 16 ) ); quest.push_back( exdData->getField< uint32_t >( row, 17 ) ); @@ -5773,6 +6108,7 @@ Sapphire::Data::InstanceContent::InstanceContent( uint32_t row_id, Sapphire::Dat bGM = exdData->getField< uint16_t >( row, 4 ); winBGM = exdData->getField< uint16_t >( row, 5 ); cutscene = exdData->getField< uint32_t >( row, 6 ); + lGBEventRange = exdData->getField< uint32_t >( row, 7 ); order = exdData->getField< uint16_t >( row, 8 ); colosseum = exdData->getField< uint8_t >( row, 9 ); instanceContentTextDataBossStart = exdData->getField< uint32_t >( row, 11 ); @@ -5793,8 +6129,6 @@ Sapphire::Data::InstanceContent::InstanceContent( uint32_t row_id, Sapphire::Dat instanceContentBuff = exdData->getField< uint32_t >( row, 50 ); reqInstance = exdData->getField< int32_t >( row, 51 ); partyCondition = exdData->getField< int16_t >( row, 53 ); - unknown540 = exdData->getField< uint16_t >( row, 61 ); - unknown541 = exdData->getField< uint16_t >( row, 62 ); } Sapphire::Data::InstanceContentBuff::InstanceContentBuff( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -5809,8 +6143,6 @@ Sapphire::Data::InstanceContentCSBonus::InstanceContentCSBonus( uint32_t row_id, auto row = exdData->m_InstanceContentCSBonusDat.get_row( row_id ); instance = exdData->getField< uint16_t >( row, 0 ); item = exdData->getField< uint32_t >( row, 1 ); - unknown540 = exdData->getField< uint8_t >( row, 3 ); - unknown541 = exdData->getField< uint8_t >( row, 4 ); } Sapphire::Data::InstanceContentGuide::InstanceContentGuide( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -5865,35 +6197,33 @@ Sapphire::Data::Item::Item( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e isCollectable = exdData->getField< bool >( row, 37 ); alwaysCollectable = exdData->getField< bool >( row, 38 ); aetherialReduce = exdData->getField< uint16_t >( row, 39 ); - unknown54 = exdData->getField< uint16_t >( row, 40 ); - levelEquip = exdData->getField< uint8_t >( row, 41 ); - equipRestriction = exdData->getField< uint8_t >( row, 43 ); - classJobCategory = exdData->getField< uint8_t >( row, 44 ); - grandCompany = exdData->getField< uint8_t >( row, 45 ); - itemSeries = exdData->getField< uint8_t >( row, 46 ); - baseParamModifier = exdData->getField< uint8_t >( row, 47 ); - modelMain = exdData->getField< uint64_t >( row, 48 ); - modelSub = exdData->getField< uint64_t >( row, 49 ); - classJobUse = exdData->getField< uint8_t >( row, 50 ); - damagePhys = exdData->getField< uint16_t >( row, 52 ); - damageMag = exdData->getField< uint16_t >( row, 53 ); - delayms = exdData->getField< uint16_t >( row, 54 ); - blockRate = exdData->getField< uint16_t >( row, 56 ); - block = exdData->getField< uint16_t >( row, 57 ); - defensePhys = exdData->getField< uint16_t >( row, 58 ); - defenseMag = exdData->getField< uint16_t >( row, 59 ); - itemSpecialBonus = exdData->getField< uint8_t >( row, 72 ); - itemSpecialBonusParam = exdData->getField< uint8_t >( row, 73 ); - materializeType = exdData->getField< uint8_t >( row, 86 ); - materiaSlotCount = exdData->getField< uint8_t >( row, 87 ); - isAdvancedMeldingPermitted = exdData->getField< bool >( row, 88 ); - isPvP = exdData->getField< bool >( row, 89 ); - isGlamourous = exdData->getField< bool >( row, 91 ); - + levelEquip = exdData->getField< uint8_t >( row, 40 ); + equipRestriction = exdData->getField< uint8_t >( row, 42 ); + classJobCategory = exdData->getField< uint8_t >( row, 43 ); + grandCompany = exdData->getField< uint8_t >( row, 44 ); + itemSeries = exdData->getField< uint8_t >( row, 45 ); + baseParamModifier = exdData->getField< uint8_t >( row, 46 ); + modelMain = exdData->getField< uint64_t >( row, 47 ); + modelSub = exdData->getField< uint64_t >( row, 48 ); + classJobUse = exdData->getField< uint8_t >( row, 49 ); + damagePhys = exdData->getField< uint16_t >( row, 51 ); + damageMag = exdData->getField< uint16_t >( row, 52 ); + delayms = exdData->getField< uint16_t >( row, 53 ); + blockRate = exdData->getField< uint16_t >( row, 55 ); + block = exdData->getField< uint16_t >( row, 56 ); + defensePhys = exdData->getField< uint16_t >( row, 57 ); + defenseMag = exdData->getField< uint16_t >( row, 58 ); + itemSpecialBonus = exdData->getField< uint8_t >( row, 71 ); + itemSpecialBonusParam = exdData->getField< uint8_t >( row, 72 ); + materializeType = exdData->getField< uint8_t >( row, 85 ); + materiaSlotCount = exdData->getField< uint8_t >( row, 86 ); + isAdvancedMeldingPermitted = exdData->getField< bool >( row, 87 ); + isPvP = exdData->getField< bool >( row, 88 ); + isGlamourous = exdData->getField< bool >( row, 90 ); for( int i = 0; i < 6; ++i ) { - param[i].baseparam = exdData->getField< uint8_t >( row, 60 + i * 2 ); - param[i].value = exdData->getField< int16_t >( row, 61 + i * 2 ); + param[i].baseparam = exdData->getField< uint8_t >( row, 59 + i * 2 ); + param[i].value = exdData->getField< int16_t >( row, 60 + i * 2 ); } } @@ -6061,6 +6391,12 @@ Sapphire::Data::ItemUICategory::ItemUICategory( uint32_t row_id, Sapphire::Data: orderMajor = exdData->getField< uint8_t >( row, 3 ); } +Sapphire::Data::Jingle::Jingle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_JingleDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 0 ); +} + Sapphire::Data::JobHudManual::JobHudManual( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_JobHudManualDat.get_row( row_id ); @@ -6309,70 +6645,6 @@ Sapphire::Data::LotteryExchangeShop::LotteryExchangeShop( uint32_t row_id, Sapph amountAccepted.push_back( exdData->getField< uint32_t >( row, 62 ) ); amountAccepted.push_back( exdData->getField< uint32_t >( row, 63 ) ); amountAccepted.push_back( exdData->getField< uint32_t >( row, 64 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 65 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 66 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 67 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 68 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 69 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 70 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 71 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 72 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 73 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 74 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 75 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 76 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 77 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 78 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 79 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 80 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 81 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 82 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 83 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 84 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 85 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 86 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 87 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 88 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 89 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 90 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 91 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 92 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 93 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 94 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 95 ) ); - unknown540.push_back( exdData->getField< uint8_t >( row, 96 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 97 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 98 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 99 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 100 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 101 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 102 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 103 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 104 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 105 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 106 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 107 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 108 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 109 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 110 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 111 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 112 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 113 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 114 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 115 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 116 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 117 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 118 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 119 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 120 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 121 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 122 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 123 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 124 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 125 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 126 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 127 ) ); - unknown541.push_back( exdData->getField< uint8_t >( row, 128 ) ); lua = exdData->getField< std::string >( row, 129 ); logMessage.push_back( exdData->getField< uint32_t >( row, 130 ) ); logMessage.push_back( exdData->getField< uint32_t >( row, 131 ) ); @@ -6444,6 +6716,12 @@ Sapphire::Data::Map::Map( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exd isEvent = exdData->getField< bool >( row, 17 ); } +Sapphire::Data::MapCondition::MapCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_MapConditionDat.get_row( row_id ); + quest = exdData->getField< uint16_t >( row, 0 ); +} + Sapphire::Data::MapMarker::MapMarker( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MapMarkerDat.get_row( row_id, subRow ); @@ -6479,23 +6757,6 @@ Sapphire::Data::Marker::Marker( uint32_t row_id, Sapphire::Data::ExdDataGenerate name = exdData->getField< std::string >( row, 1 ); } -Sapphire::Data::MasterpieceSupplyDuty::MasterpieceSupplyDuty( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) -{ - auto row = exdData->m_MasterpieceSupplyDutyDat.get_row( row_id ); - classJob = exdData->getField< uint8_t >( row, 0 ); - classJobLevel = exdData->getField< uint8_t >( row, 1 ); - rewardCurrency = exdData->getField< uint16_t >( row, 2 ); -} - -Sapphire::Data::MasterpieceSupplyMultiplier::MasterpieceSupplyMultiplier( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) -{ - auto row = exdData->m_MasterpieceSupplyMultiplierDat.get_row( row_id ); - xpMultiplier.push_back( exdData->getField< uint16_t >( row, 0 ) ); - xpMultiplier.push_back( exdData->getField< uint16_t >( row, 1 ) ); - currencyMultiplier.push_back( exdData->getField< uint16_t >( row, 4 ) ); - currencyMultiplier.push_back( exdData->getField< uint16_t >( row, 5 ) ); -} - Sapphire::Data::Materia::Materia( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MateriaDat.get_row( row_id ); @@ -6876,15 +7137,14 @@ Sapphire::Data::MYCWarResultNotebook::MYCWarResultNotebook( uint32_t row_id, Sap { auto row = exdData->m_MYCWarResultNotebookDat.get_row( row_id ); number = exdData->getField< uint8_t >( row, 0 ); - unknown540 = exdData->getField< uint8_t >( row, 1 ); - unknown541 = exdData->getField< uint8_t >( row, 2 ); + link = exdData->getField< uint8_t >( row, 2 ); quest = exdData->getField< int32_t >( row, 3 ); - icon = exdData->getField< int32_t >( row, 4 ); - image = exdData->getField< int32_t >( row, 5 ); - rarity = exdData->getField< uint8_t >( row, 6 ); - nameJP = exdData->getField< std::string >( row, 7 ); - name = exdData->getField< std::string >( row, 8 ); - description = exdData->getField< std::string >( row, 9 ); + icon = exdData->getField< int32_t >( row, 5 ); + image = exdData->getField< int32_t >( row, 6 ); + rarity = exdData->getField< uint8_t >( row, 7 ); + nameJP = exdData->getField< std::string >( row, 8 ); + name = exdData->getField< std::string >( row, 9 ); + description = exdData->getField< std::string >( row, 10 ); } Sapphire::Data::NotebookDivision::NotebookDivision( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -6957,7 +7217,6 @@ Sapphire::Data::NpcYell::NpcYell( uint32_t row_id, Sapphire::Data::ExdDataGenera balloonTime = exdData->getField< float >( row, 6 ); isBalloonSlow = exdData->getField< bool >( row, 7 ); battleTalkTime = exdData->getField< bool >( row, 8 ); - unknown54 = exdData->getField< uint8_t >( row, 9 ); text = exdData->getField< std::string >( row, 10 ); } @@ -7168,9 +7427,20 @@ Sapphire::Data::Perform::Perform( uint32_t row_id, Sapphire::Data::ExdDataGenera animationPlay02 = exdData->getField< uint16_t >( row, 7 ); stopAnimation = exdData->getField< int32_t >( row, 8 ); instrument = exdData->getField< std::string >( row, 9 ); + order = exdData->getField< int32_t >( row, 10 ); transient = exdData->getField< uint8_t >( row, 11 ); } +Sapphire::Data::PerformGroup::PerformGroup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_PerformGroupDat.get_row( row_id ); + perform.push_back( exdData->getField< uint8_t >( row, 0 ) ); + perform.push_back( exdData->getField< uint8_t >( row, 1 ) ); + perform.push_back( exdData->getField< uint8_t >( row, 2 ) ); + perform.push_back( exdData->getField< uint8_t >( row, 3 ) ); + perform.push_back( exdData->getField< uint8_t >( row, 4 ) ); +} + Sapphire::Data::PerformTransient::PerformTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PerformTransientDat.get_row( row_id ); @@ -7195,6 +7465,12 @@ Sapphire::Data::PetAction::PetAction( uint32_t row_id, Sapphire::Data::ExdDataGe disableOrder = exdData->getField< bool >( row, 6 ); } +Sapphire::Data::PetMirage::PetMirage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_PetMirageDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 2 ); +} + Sapphire::Data::PhysicsGroup::PhysicsGroup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PhysicsGroupDat.get_row( row_id ); @@ -7318,11 +7594,12 @@ Sapphire::Data::PublicContent::PublicContent( uint32_t row_id, Sapphire::Data::E name = exdData->getField< std::string >( row, 3 ); textDataStart = exdData->getField< uint32_t >( row, 4 ); textDataEnd = exdData->getField< uint32_t >( row, 5 ); + startCutscene = exdData->getField< uint32_t >( row, 6 ); + lGBEventRange = exdData->getField< uint32_t >( row, 7 ); + lGBPopRange = exdData->getField< uint32_t >( row, 8 ); contentFinderCondition = exdData->getField< uint16_t >( row, 9 ); additionalData = exdData->getField< uint16_t >( row, 10 ); - unknown540 = exdData->getField< int32_t >( row, 13 ); - unknown541 = exdData->getField< uint16_t >( row, 14 ); - unknown542 = exdData->getField< uint16_t >( row, 15 ); + endCutscene = exdData->getField< uint32_t >( row, 16 ); } Sapphire::Data::PublicContentCutscene::PublicContentCutscene( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -7338,13 +7615,6 @@ Sapphire::Data::PublicContentTextData::PublicContentTextData( uint32_t row_id, S textData = exdData->getField< std::string >( row, 0 ); } -Sapphire::Data::Purify::Purify( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) -{ - auto row = exdData->m_PurifyDat.get_row( row_id ); - _class = exdData->getField< uint8_t >( row, 0 ); - level = exdData->getField< uint8_t >( row, 1 ); -} - Sapphire::Data::PvPAction::PvPAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PvPActionDat.get_row( row_id ); @@ -7357,7 +7627,7 @@ Sapphire::Data::PvPAction::PvPAction( uint32_t row_id, Sapphire::Data::ExdDataGe Sapphire::Data::PvPActionSort::PvPActionSort( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PvPActionSortDat.get_row( row_id, subRow ); - name = exdData->getField< uint8_t >( row, 0 ); + actionType = exdData->getField< uint8_t >( row, 0 ); action = exdData->getField< uint16_t >( row, 1 ); } @@ -8654,7 +8924,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* classJobRequired = exdData->getField< uint8_t >( row, 1438 ); expFactor = exdData->getField< uint16_t >( row, 1440 ); gilReward = exdData->getField< uint32_t >( row, 1441 ); - gCSeals = exdData->getField< uint16_t >( row, 1443 ); + gCSeals = exdData->getField< uint32_t >( row, 1443 ); itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1444 ) ); itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1445 ) ); itemCatalyst.push_back( exdData->getField< uint8_t >( row, 1446 ) ); @@ -8721,7 +8991,6 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* hideOfferIcon = exdData->getField< bool >( row, 1511 ); eventIconType = exdData->getField< uint8_t >( row, 1512 ); sortKey = exdData->getField< uint16_t >( row, 1514 ); - unknown54 = exdData->getField< bool >( row, 1515 ); } Sapphire::Data::QuestBattle::QuestBattle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -9219,6 +9488,7 @@ Sapphire::Data::QuestRedoChapterUI::QuestRedoChapterUI( uint32_t row_id, Sapphir { auto row = exdData->m_QuestRedoChapterUIDat.get_row( row_id ); quest = exdData->getField< uint32_t >( row, 0 ); + uITab = exdData->getField< uint8_t >( row, 1 ); category = exdData->getField< uint8_t >( row, 2 ); questRedoUISmall = exdData->getField< uint32_t >( row, 4 ); questRedoUILarge = exdData->getField< uint32_t >( row, 5 ); @@ -9289,7 +9559,6 @@ Sapphire::Data::Race::Race( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e rSEFHands = exdData->getField< int32_t >( row, 7 ); rSEFLegs = exdData->getField< int32_t >( row, 8 ); rSEFFeet = exdData->getField< int32_t >( row, 9 ); - unknown54 = exdData->getField< uint8_t >( row, 10 ); exPac = exdData->getField< uint8_t >( row, 11 ); } @@ -9644,7 +9913,6 @@ Sapphire::Data::Resident::Resident( uint32_t row_id, uint32_t subRow, Sapphire:: auto row = exdData->m_ResidentDat.get_row( row_id, subRow ); model = exdData->getField< uint64_t >( row, 1 ); npcYell = exdData->getField< int32_t >( row, 2 ); - addedIn53 = exdData->getField< uint16_t >( row, 3 ); residentMotionType = exdData->getField< uint8_t >( row, 4 ); } @@ -9660,6 +9928,12 @@ Sapphire::Data::ResistanceWeaponAdjust::ResistanceWeaponAdjust( uint32_t row_id, image = exdData->getField< uint32_t >( row, 6 ); } +Sapphire::Data::RetainerFortuneRewardRange::RetainerFortuneRewardRange( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_RetainerFortuneRewardRangeDat.get_row( row_id ); + percentOfLevel = exdData->getField< uint16_t >( row, 0 ); +} + Sapphire::Data::RetainerTask::RetainerTask( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RetainerTaskDat.get_row( row_id ); @@ -9783,8 +10057,6 @@ Sapphire::Data::SatisfactionNpc::SatisfactionNpc( uint32_t row_id, Sapphire::Dat satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 14 ) ); satisfactionRequired.push_back( exdData->getField< uint16_t >( row, 15 ) ); icon = exdData->getField< int32_t >( row, 70 ); - addedIn530 = exdData->getField< uint8_t >( row, 72 ); - addedIn531 = exdData->getField< uint8_t >( row, 73 ); } Sapphire::Data::SatisfactionSupply::SatisfactionSupply( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) @@ -9815,9 +10087,6 @@ Sapphire::Data::ScenarioTree::ScenarioTree( uint32_t row_id, Sapphire::Data::Exd auto row = exdData->m_ScenarioTreeDat.get_row( row_id ); type = exdData->getField< uint8_t >( row, 0 ); image = exdData->getField< uint16_t >( row, 1 ); - unknown540 = exdData->getField< uint32_t >( row, 3 ); - unknown541 = exdData->getField< std::string >( row, 4 ); - unknown542 = exdData->getField< int32_t >( row, 5 ); } Sapphire::Data::ScenarioTreeTips::ScenarioTreeTips( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -9924,6 +10193,7 @@ Sapphire::Data::SpearfishingNotebook::SpearfishingNotebook( uint32_t row_id, Sap { auto row = exdData->m_SpearfishingNotebookDat.get_row( row_id ); gatheringLevel = exdData->getField< uint8_t >( row, 0 ); + isShadowNode = exdData->getField< bool >( row, 1 ); territoryType = exdData->getField< int32_t >( row, 2 ); x = exdData->getField< int16_t >( row, 3 ); y = exdData->getField< int16_t >( row, 4 ); @@ -10003,66 +10273,6 @@ Sapphire::Data::SpecialShop::SpecialShop( uint32_t row_id, Sapphire::Data::ExdDa questItem.push_back( exdData->getField< int32_t >( row, 1258 ) ); questItem.push_back( exdData->getField< int32_t >( row, 1259 ) ); questItem.push_back( exdData->getField< int32_t >( row, 1260 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1261 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1262 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1263 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1264 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1265 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1266 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1267 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1268 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1269 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1270 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1271 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1272 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1273 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1274 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1275 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1276 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1277 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1278 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1279 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1280 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1281 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1282 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1283 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1284 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1285 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1286 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1287 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1288 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1289 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1290 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1291 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1292 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1293 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1294 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1295 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1296 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1297 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1298 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1299 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1300 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1301 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1302 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1303 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1304 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1305 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1306 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1307 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1308 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1309 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1310 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1311 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1312 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1313 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1314 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1315 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1316 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1317 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1318 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1319 ) ); - unknown.push_back( exdData->getField< int32_t >( row, 1320 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1321 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1322 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1323 ) ); @@ -12204,9 +12414,7 @@ Sapphire::Data::TerritoryType::TerritoryType( uint32_t row_id, Sapphire::Data::E achievementIndex = exdData->getField< int8_t >( row, 27 ); isPvpZone = exdData->getField< bool >( row, 28 ); exVersion = exdData->getField< uint8_t >( row, 29 ); - addedIn53 = exdData->getField< uint8_t >( row, 32 ); mountSpeed = exdData->getField< uint8_t >( row, 33 ); - unknown54 = exdData->getField< bool >( row, 40 ); } Sapphire::Data::TerritoryTypeTransient::TerritoryTypeTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -12310,8 +12518,7 @@ Sapphire::Data::Transformation::Transformation( uint32_t row_id, Sapphire::Data: startVFX = exdData->getField< uint16_t >( row, 30 ); endVFX = exdData->getField< uint16_t >( row, 31 ); action6 = exdData->getField< uint32_t >( row, 32 ); - action7 = exdData->getField< uint16_t >( row, 34 ); - unknown54 = exdData->getField< bool >( row, 36 ); + action7 = exdData->getField< uint16_t >( row, 35 ); } Sapphire::Data::Treasure::Treasure( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -12421,7 +12628,6 @@ Sapphire::Data::TripleTriadCardResident::TripleTriadCardResident( uint32_t row_i sortKey = exdData->getField< uint8_t >( row, 8 ); order = exdData->getField< uint16_t >( row, 9 ); uIPriority = exdData->getField< uint8_t >( row, 10 ); - unknown54 = exdData->getField< bool >( row, 11 ); acquisitionType = exdData->getField< uint8_t >( row, 12 ); acquisition = exdData->getField< uint32_t >( row, 13 ); location = exdData->getField< uint32_t >( row, 14 ); @@ -12440,12 +12646,17 @@ Sapphire::Data::TripleTriadCompetition::TripleTriadCompetition( uint32_t row_id, name = exdData->getField< std::string >( row, 0 ); } +Sapphire::Data::TripleTriadResident::TripleTriadResident( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_TripleTriadResidentDat.get_row( row_id ); + order = exdData->getField< uint16_t >( row, 0 ); +} + Sapphire::Data::TripleTriadRule::TripleTriadRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TripleTriadRuleDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); description = exdData->getField< std::string >( row, 1 ); - unknown54 = exdData->getField< bool >( row, 4 ); } Sapphire::Data::Tutorial::Tutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -12477,6 +12688,52 @@ Sapphire::Data::TutorialTank::TutorialTank( uint32_t row_id, Sapphire::Data::Exd objective = exdData->getField< uint8_t >( row, 0 ); } +Sapphire::Data::UDS_Event::UDS_Event( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_UDS_EventDat.get_row( row_id ); + text = exdData->getField< std::string >( row, 0 ); + type = exdData->getField< std::string >( row, 1 ); + property.push_back( exdData->getField< int32_t >( row, 2 ) ); + property.push_back( exdData->getField< int32_t >( row, 3 ) ); + property.push_back( exdData->getField< int32_t >( row, 4 ) ); + property.push_back( exdData->getField< int32_t >( row, 5 ) ); + property.push_back( exdData->getField< int32_t >( row, 6 ) ); + property.push_back( exdData->getField< int32_t >( row, 7 ) ); + property.push_back( exdData->getField< int32_t >( row, 8 ) ); + property.push_back( exdData->getField< int32_t >( row, 9 ) ); + property.push_back( exdData->getField< int32_t >( row, 10 ) ); + property.push_back( exdData->getField< int32_t >( row, 11 ) ); + property.push_back( exdData->getField< int32_t >( row, 12 ) ); + property.push_back( exdData->getField< int32_t >( row, 13 ) ); + property.push_back( exdData->getField< int32_t >( row, 14 ) ); + property.push_back( exdData->getField< int32_t >( row, 15 ) ); + property.push_back( exdData->getField< int32_t >( row, 16 ) ); + property.push_back( exdData->getField< int32_t >( row, 17 ) ); + property.push_back( exdData->getField< int32_t >( row, 18 ) ); + property.push_back( exdData->getField< int32_t >( row, 19 ) ); + property.push_back( exdData->getField< int32_t >( row, 20 ) ); + property.push_back( exdData->getField< int32_t >( row, 21 ) ); + property.push_back( exdData->getField< int32_t >( row, 22 ) ); + property.push_back( exdData->getField< int32_t >( row, 23 ) ); + property.push_back( exdData->getField< int32_t >( row, 24 ) ); + property.push_back( exdData->getField< int32_t >( row, 25 ) ); + property.push_back( exdData->getField< int32_t >( row, 26 ) ); + property.push_back( exdData->getField< int32_t >( row, 27 ) ); + property.push_back( exdData->getField< int32_t >( row, 28 ) ); + property.push_back( exdData->getField< int32_t >( row, 29 ) ); + property.push_back( exdData->getField< int32_t >( row, 30 ) ); + property.push_back( exdData->getField< int32_t >( row, 31 ) ); + property.push_back( exdData->getField< int32_t >( row, 32 ) ); + property.push_back( exdData->getField< int32_t >( row, 33 ) ); +} + +Sapphire::Data::UDS_Property::UDS_Property( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_UDS_PropertyDat.get_row( row_id ); + text = exdData->getField< std::string >( row, 0 ); + type = exdData->getField< std::string >( row, 1 ); +} + Sapphire::Data::UIColor::UIColor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_UIColorDat.get_row( row_id ); @@ -12585,7 +12842,6 @@ Sapphire::Data::WebGuidance::WebGuidance( uint32_t row_id, Sapphire::Data::ExdDa image = exdData->getField< int32_t >( row, 0 ); url = exdData->getField< uint8_t >( row, 1 ); name = exdData->getField< std::string >( row, 2 ); - unknown54 = exdData->getField< std::string >( row, 3 ); description = exdData->getField< std::string >( row, 4 ); } @@ -12752,6 +13008,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_AchievementCategoryDat = setupDatAccess( "AchievementCategory", xiv::exd::Language::en ); m_AchievementHideConditionDat = setupDatAccess( "AchievementHideCondition", xiv::exd::Language::none ); m_AchievementKindDat = setupDatAccess( "AchievementKind", xiv::exd::Language::en ); + m_AchievementTargetDat = setupDatAccess( "AchievementTarget", xiv::exd::Language::none ); m_ActionDat = setupDatAccess( "Action", xiv::exd::Language::en ); m_ActionCastTimelineDat = setupDatAccess( "ActionCastTimeline", xiv::exd::Language::none ); m_ActionCastVFXDat = setupDatAccess( "ActionCastVFX", xiv::exd::Language::none ); @@ -12798,6 +13055,8 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_AOZBossDat = setupDatAccess( "AOZBoss", xiv::exd::Language::none ); m_AOZContentDat = setupDatAccess( "AOZContent", xiv::exd::Language::none ); m_AOZContentBriefingBNpcDat = setupDatAccess( "AOZContentBriefingBNpc", xiv::exd::Language::none ); + m_AOZReportDat = setupDatAccess( "AOZReport", xiv::exd::Language::none ); + m_AOZScoreDat = setupDatAccess( "AOZScore", xiv::exd::Language::en ); m_AquariumFishDat = setupDatAccess( "AquariumFish", xiv::exd::Language::none ); m_AquariumWaterDat = setupDatAccess( "AquariumWater", xiv::exd::Language::en ); m_ArrayEventHandlerDat = setupDatAccess( "ArrayEventHandler", xiv::exd::Language::none ); @@ -12878,6 +13137,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_CompanyLeveRuleDat = setupDatAccess( "CompanyLeveRule", xiv::exd::Language::none ); m_CompleteJournalDat = setupDatAccess( "CompleteJournal", xiv::exd::Language::en ); m_CompleteJournalCategoryDat = setupDatAccess( "CompleteJournalCategory", xiv::exd::Language::none ); + m_CompletionDat = setupDatAccess( "Completion", xiv::exd::Language::en ); m_ConditionDat = setupDatAccess( "Condition", xiv::exd::Language::none ); m_ConfigKeyDat = setupDatAccess( "ConfigKey", xiv::exd::Language::en ); m_ContentCloseCycleDat = setupDatAccess( "ContentCloseCycle", xiv::exd::Language::none ); @@ -12901,6 +13161,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_CraftActionDat = setupDatAccess( "CraftAction", xiv::exd::Language::en ); m_CraftLeveDat = setupDatAccess( "CraftLeve", xiv::exd::Language::none ); m_CraftLevelDifferenceDat = setupDatAccess( "CraftLevelDifference", xiv::exd::Language::none ); + m_CraftLeveTalkDat = setupDatAccess( "CraftLeveTalk", xiv::exd::Language::en ); m_CraftTypeDat = setupDatAccess( "CraftType", xiv::exd::Language::en ); m_CreditDat = setupDatAccess( "Credit", xiv::exd::Language::none ); m_CreditBackImageDat = setupDatAccess( "CreditBackImage", xiv::exd::Language::none ); @@ -12908,9 +13169,9 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_CreditListDat = setupDatAccess( "CreditList", xiv::exd::Language::none ); m_CreditListTextDat = setupDatAccess( "CreditListText", xiv::exd::Language::en ); m_CustomTalkDat = setupDatAccess( "CustomTalk", xiv::exd::Language::en ); - m_CustomTalkDynamicIconDat = setupDatAccess( "CustomTalkDynamicIcon", xiv::exd::Language::none ); m_CustomTalkNestHandlersDat = setupDatAccess( "CustomTalkNestHandlers", xiv::exd::Language::none ); m_CutsceneDat = setupDatAccess( "Cutscene", xiv::exd::Language::none ); + m_CutSceneIncompQuestDat = setupDatAccess( "CutSceneIncompQuest", xiv::exd::Language::none ); m_CutsceneMotionDat = setupDatAccess( "CutsceneMotion", xiv::exd::Language::none ); m_CutsceneWorkIndexDat = setupDatAccess( "CutsceneWorkIndex", xiv::exd::Language::none ); m_CutScreenImageDat = setupDatAccess( "CutScreenImage", xiv::exd::Language::none ); @@ -12971,6 +13232,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_EurekaMagiciteItemTypeDat = setupDatAccess( "EurekaMagiciteItemType", xiv::exd::Language::en ); m_EurekaSphereElementAdjustDat = setupDatAccess( "EurekaSphereElementAdjust", xiv::exd::Language::none ); m_EventActionDat = setupDatAccess( "EventAction", xiv::exd::Language::en ); + m_EventCustomIconTypeDat = setupDatAccess( "EventCustomIconType", xiv::exd::Language::none ); m_EventIconPriorityDat = setupDatAccess( "EventIconPriority", xiv::exd::Language::none ); m_EventIconTypeDat = setupDatAccess( "EventIconType", xiv::exd::Language::none ); m_EventItemDat = setupDatAccess( "EventItem", xiv::exd::Language::en ); @@ -12978,6 +13240,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_EventItemHelpDat = setupDatAccess( "EventItemHelp", xiv::exd::Language::en ); m_EventItemTimelineDat = setupDatAccess( "EventItemTimeline", xiv::exd::Language::none ); m_EventSystemDefineDat = setupDatAccess( "EventSystemDefine", xiv::exd::Language::none ); + m_ExportedGatheringPointDat = setupDatAccess( "ExportedGatheringPoint", xiv::exd::Language::none ); m_ExportedSGDat = setupDatAccess( "ExportedSG", xiv::exd::Language::none ); m_ExVersionDat = setupDatAccess( "ExVersion", xiv::exd::Language::en ); m_FateDat = setupDatAccess( "Fate", xiv::exd::Language::en ); @@ -13027,6 +13290,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_GatheringSubCategoryDat = setupDatAccess( "GatheringSubCategory", xiv::exd::Language::en ); m_GatheringTypeDat = setupDatAccess( "GatheringType", xiv::exd::Language::en ); m_GcArmyCaptureTacticsDat = setupDatAccess( "GcArmyCaptureTactics", xiv::exd::Language::none ); + m_GcArmyEquipPresetDat = setupDatAccess( "GcArmyEquipPreset", xiv::exd::Language::none ); m_GcArmyExpeditionDat = setupDatAccess( "GcArmyExpedition", xiv::exd::Language::en ); m_GcArmyExpeditionMemberBonusDat = setupDatAccess( "GcArmyExpeditionMemberBonus", xiv::exd::Language::none ); m_GcArmyExpeditionTypeDat = setupDatAccess( "GcArmyExpeditionType", xiv::exd::Language::en ); @@ -13069,6 +13333,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_GuideTitleDat = setupDatAccess( "GuideTitle", xiv::exd::Language::en ); m_GuildleveAssignmentDat = setupDatAccess( "GuildleveAssignment", xiv::exd::Language::en ); m_GuildleveAssignmentCategoryDat = setupDatAccess( "GuildleveAssignmentCategory", xiv::exd::Language::none ); + m_GuildleveAssignmentTalkDat = setupDatAccess( "GuildleveAssignmentTalk", xiv::exd::Language::en ); m_GuildOrderDat = setupDatAccess( "GuildOrder", xiv::exd::Language::en ); m_GuildOrderGuideDat = setupDatAccess( "GuildOrderGuide", xiv::exd::Language::none ); m_GuildOrderOfficerDat = setupDatAccess( "GuildOrderOfficer", xiv::exd::Language::none ); @@ -13134,6 +13399,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_ItemSortCategoryDat = setupDatAccess( "ItemSortCategory", xiv::exd::Language::none ); m_ItemSpecialBonusDat = setupDatAccess( "ItemSpecialBonus", xiv::exd::Language::en ); m_ItemUICategoryDat = setupDatAccess( "ItemUICategory", xiv::exd::Language::en ); + m_JingleDat = setupDatAccess( "Jingle", xiv::exd::Language::none ); m_JobHudManualDat = setupDatAccess( "JobHudManual", xiv::exd::Language::none ); m_JobHudManualPriorityDat = setupDatAccess( "JobHudManualPriority", xiv::exd::Language::none ); m_JournalCategoryDat = setupDatAccess( "JournalCategory", xiv::exd::Language::en ); @@ -13160,12 +13426,11 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_MainCommandCategoryDat = setupDatAccess( "MainCommandCategory", xiv::exd::Language::en ); m_ManeuversArmorDat = setupDatAccess( "ManeuversArmor", xiv::exd::Language::en ); m_MapDat = setupDatAccess( "Map", xiv::exd::Language::none ); + m_MapConditionDat = setupDatAccess( "MapCondition", xiv::exd::Language::none ); m_MapMarkerDat = setupDatAccess( "MapMarker", xiv::exd::Language::none ); m_MapMarkerRegionDat = setupDatAccess( "MapMarkerRegion", xiv::exd::Language::none ); m_MapSymbolDat = setupDatAccess( "MapSymbol", xiv::exd::Language::none ); m_MarkerDat = setupDatAccess( "Marker", xiv::exd::Language::en ); - m_MasterpieceSupplyDutyDat = setupDatAccess( "MasterpieceSupplyDuty", xiv::exd::Language::none ); - m_MasterpieceSupplyMultiplierDat = setupDatAccess( "MasterpieceSupplyMultiplier", xiv::exd::Language::none ); m_MateriaDat = setupDatAccess( "Materia", xiv::exd::Language::none ); m_MateriaJoinRateDat = setupDatAccess( "MateriaJoinRate", xiv::exd::Language::none ); m_MateriaJoinRateGatherCraftDat = setupDatAccess( "MateriaJoinRateGatherCraft", xiv::exd::Language::none ); @@ -13222,9 +13487,11 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_PartyContentTextDataDat = setupDatAccess( "PartyContentTextData", xiv::exd::Language::en ); m_PatchMarkDat = setupDatAccess( "PatchMark", xiv::exd::Language::none ); m_PerformDat = setupDatAccess( "Perform", xiv::exd::Language::en ); + m_PerformGroupDat = setupDatAccess( "PerformGroup", xiv::exd::Language::none ); m_PerformTransientDat = setupDatAccess( "PerformTransient", xiv::exd::Language::en ); m_PetDat = setupDatAccess( "Pet", xiv::exd::Language::en ); m_PetActionDat = setupDatAccess( "PetAction", xiv::exd::Language::en ); + m_PetMirageDat = setupDatAccess( "PetMirage", xiv::exd::Language::en ); m_PhysicsGroupDat = setupDatAccess( "PhysicsGroup", xiv::exd::Language::none ); m_PhysicsWindDat = setupDatAccess( "PhysicsWind", xiv::exd::Language::none ); m_PictureDat = setupDatAccess( "Picture", xiv::exd::Language::none ); @@ -13236,7 +13503,6 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_PublicContentDat = setupDatAccess( "PublicContent", xiv::exd::Language::en ); m_PublicContentCutsceneDat = setupDatAccess( "PublicContentCutscene", xiv::exd::Language::none ); m_PublicContentTextDataDat = setupDatAccess( "PublicContentTextData", xiv::exd::Language::en ); - m_PurifyDat = setupDatAccess( "Purify", xiv::exd::Language::none ); m_PvPActionDat = setupDatAccess( "PvPAction", xiv::exd::Language::none ); m_PvPActionSortDat = setupDatAccess( "PvPActionSort", xiv::exd::Language::none ); m_PvPRankDat = setupDatAccess( "PvPRank", xiv::exd::Language::none ); @@ -13276,6 +13542,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_RelicNoteCategoryDat = setupDatAccess( "RelicNoteCategory", xiv::exd::Language::en ); m_ResidentDat = setupDatAccess( "Resident", xiv::exd::Language::none ); m_ResistanceWeaponAdjustDat = setupDatAccess( "ResistanceWeaponAdjust", xiv::exd::Language::none ); + m_RetainerFortuneRewardRangeDat = setupDatAccess( "RetainerFortuneRewardRange", xiv::exd::Language::none ); m_RetainerTaskDat = setupDatAccess( "RetainerTask", xiv::exd::Language::none ); m_RetainerTaskLvRangeDat = setupDatAccess( "RetainerTaskLvRange", xiv::exd::Language::none ); m_RetainerTaskNormalDat = setupDatAccess( "RetainerTaskNormal", xiv::exd::Language::none ); @@ -13340,11 +13607,14 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_TripleTriadCardResidentDat = setupDatAccess( "TripleTriadCardResident", xiv::exd::Language::none ); m_TripleTriadCardTypeDat = setupDatAccess( "TripleTriadCardType", xiv::exd::Language::en ); m_TripleTriadCompetitionDat = setupDatAccess( "TripleTriadCompetition", xiv::exd::Language::en ); + m_TripleTriadResidentDat = setupDatAccess( "TripleTriadResident", xiv::exd::Language::none ); m_TripleTriadRuleDat = setupDatAccess( "TripleTriadRule", xiv::exd::Language::en ); m_TutorialDat = setupDatAccess( "Tutorial", xiv::exd::Language::none ); m_TutorialDPSDat = setupDatAccess( "TutorialDPS", xiv::exd::Language::none ); m_TutorialHealerDat = setupDatAccess( "TutorialHealer", xiv::exd::Language::none ); m_TutorialTankDat = setupDatAccess( "TutorialTank", xiv::exd::Language::none ); + m_UDS_EventDat = setupDatAccess( "UDS_Event", xiv::exd::Language::none ); + m_UDS_PropertyDat = setupDatAccess( "UDS_Property", xiv::exd::Language::none ); m_UIColorDat = setupDatAccess( "UIColor", xiv::exd::Language::none ); m_VaseFlowerDat = setupDatAccess( "VaseFlower", xiv::exd::Language::none ); m_VFXDat = setupDatAccess( "VFX", xiv::exd::Language::none ); diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index 39af9dfa..f4b3e7fa 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -26,6 +26,7 @@ struct Achievement; struct AchievementCategory; struct AchievementHideCondition; struct AchievementKind; +struct AchievementTarget; struct Action; struct ActionCastTimeline; struct ActionCastVFX; @@ -72,6 +73,8 @@ struct AOZArrangement; struct AOZBoss; struct AOZContent; struct AOZContentBriefingBNpc; +struct AOZReport; +struct AOZScore; struct AquariumFish; struct AquariumWater; struct ArrayEventHandler; @@ -152,6 +155,7 @@ struct CompanyLeve; struct CompanyLeveRule; struct CompleteJournal; struct CompleteJournalCategory; +struct Completion; struct Condition; struct ConfigKey; struct ContentCloseCycle; @@ -175,6 +179,7 @@ struct ContentType; struct CraftAction; struct CraftLeve; struct CraftLevelDifference; +struct CraftLeveTalk; struct CraftType; struct Credit; struct CreditBackImage; @@ -182,9 +187,9 @@ struct CreditCast; struct CreditList; struct CreditListText; struct CustomTalk; -struct CustomTalkDynamicIcon; struct CustomTalkNestHandlers; struct Cutscene; +struct CutSceneIncompQuest; struct CutsceneMotion; struct CutsceneWorkIndex; struct CutScreenImage; @@ -245,6 +250,7 @@ struct EurekaMagiciteItem; struct EurekaMagiciteItemType; struct EurekaSphereElementAdjust; struct EventAction; +struct EventCustomIconType; struct EventIconPriority; struct EventIconType; struct EventItem; @@ -252,6 +258,7 @@ struct EventItemCastTimeline; struct EventItemHelp; struct EventItemTimeline; struct EventSystemDefine; +struct ExportedGatheringPoint; struct ExportedSG; struct ExVersion; struct Fate; @@ -301,6 +308,7 @@ struct GatheringRarePopTimeTable; struct GatheringSubCategory; struct GatheringType; struct GcArmyCaptureTactics; +struct GcArmyEquipPreset; struct GcArmyExpedition; struct GcArmyExpeditionMemberBonus; struct GcArmyExpeditionType; @@ -343,6 +351,7 @@ struct GuidePageString; struct GuideTitle; struct GuildleveAssignment; struct GuildleveAssignmentCategory; +struct GuildleveAssignmentTalk; struct GuildOrder; struct GuildOrderGuide; struct GuildOrderOfficer; @@ -408,6 +417,7 @@ struct ItemSeries; struct ItemSortCategory; struct ItemSpecialBonus; struct ItemUICategory; +struct Jingle; struct JobHudManual; struct JobHudManualPriority; struct JournalCategory; @@ -434,12 +444,11 @@ struct MainCommand; struct MainCommandCategory; struct ManeuversArmor; struct Map; +struct MapCondition; struct MapMarker; struct MapMarkerRegion; struct MapSymbol; struct Marker; -struct MasterpieceSupplyDuty; -struct MasterpieceSupplyMultiplier; struct Materia; struct MateriaJoinRate; struct MateriaJoinRateGatherCraft; @@ -496,9 +505,11 @@ struct PartyContentCutscene; struct PartyContentTextData; struct PatchMark; struct Perform; +struct PerformGroup; struct PerformTransient; struct Pet; struct PetAction; +struct PetMirage; struct PhysicsGroup; struct PhysicsWind; struct Picture; @@ -510,7 +521,6 @@ struct PresetCameraAdjust; struct PublicContent; struct PublicContentCutscene; struct PublicContentTextData; -struct Purify; struct PvPAction; struct PvPActionSort; struct PvPRank; @@ -550,6 +560,7 @@ struct RelicNote; struct RelicNoteCategory; struct Resident; struct ResistanceWeaponAdjust; +struct RetainerFortuneRewardRange; struct RetainerTask; struct RetainerTaskLvRange; struct RetainerTaskNormal; @@ -614,11 +625,14 @@ struct TripleTriadCardRarity; struct TripleTriadCardResident; struct TripleTriadCardType; struct TripleTriadCompetition; +struct TripleTriadResident; struct TripleTriadRule; struct Tutorial; struct TutorialDPS; struct TutorialHealer; struct TutorialTank; +struct UDS_Event; +struct UDS_Property; struct UIColor; struct VaseFlower; struct VFX; @@ -650,6 +664,7 @@ struct Achievement uint8_t achievementCategory; std::string name; std::string description; + uint8_t achievementTarget; uint8_t points; uint16_t title; uint32_t item; @@ -691,6 +706,14 @@ struct AchievementKind AchievementKind( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct AchievementTarget +{ + uint8_t type; + uint32_t value; + + AchievementTarget( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct Action { std::string name; @@ -723,6 +746,7 @@ struct Action uint16_t cast100ms; uint16_t recast100ms; uint8_t cooldownGroup; + uint8_t additionalCooldownGroup; uint8_t maxCharges; int8_t attackType; uint8_t aspect; @@ -771,6 +795,8 @@ struct ActionComboRoute struct ActionIndirection { int32_t name; + int8_t classJob; + int32_t previousComboAction; ActionIndirection( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -949,6 +975,7 @@ struct Aetheryte std::vector< uint32_t > level; bool isAetheryte; uint8_t aethernetGroup; + bool invisible; uint32_t requiredQuest; uint16_t map; int16_t aetherstreamX; @@ -1110,6 +1137,7 @@ struct AnimaWeaponItem struct AozAction { uint32_t action; + uint8_t rank; AozAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -1209,6 +1237,24 @@ struct AOZContentBriefingBNpc AOZContentBriefingBNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct AOZReport +{ + uint8_t reward; + int8_t order; + + AOZReport( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + +struct AOZScore +{ + bool isHidden; + int32_t score; + std::string name; + std::string description; + + AOZScore( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct AquariumFish { uint8_t aquariumWater; @@ -1741,7 +1787,6 @@ struct Channeling { std::string file; uint8_t widthScale; - bool addedIn53; Channeling( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -1958,6 +2003,7 @@ struct ClassJob uint16_t modifierIntelligence; uint16_t modifierMind; uint16_t modifierPiety; + uint8_t pvPActionSortRow; uint8_t classJobParent; std::string nameEnglish; int32_t itemStartingWeapon; @@ -2031,6 +2077,7 @@ struct CollectablesShop { std::string name; uint32_t quest; + uint8_t rewardType; std::vector< uint16_t > shopItems; CollectablesShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -2042,6 +2089,8 @@ struct CollectablesShopItem uint8_t collectablesShopItemGroup; uint16_t levelMin; uint16_t levelMax; + uint8_t stars; + uint8_t key; uint16_t collectablesShopRefine; uint16_t collectablesShopRewardScrip; @@ -2067,6 +2116,9 @@ struct CollectablesShopRefine struct CollectablesShopRewardItem { uint32_t item; + uint8_t rewardLow; + uint8_t rewardMid; + uint8_t rewardHigh; CollectablesShopRewardItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -2268,6 +2320,17 @@ struct CompleteJournalCategory CompleteJournalCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct Completion +{ + uint16_t group; + uint16_t key; + std::string lookupTable; + std::string text; + std::string groupTitle; + + Completion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct Condition { uint32_t logMessage; @@ -2317,14 +2380,13 @@ struct ContentFinderCondition uint8_t classJobLevelSync; uint16_t itemLevelRequired; uint16_t itemLevelSync; - bool addedIn53; bool allowUndersized; bool allowReplacement; bool allowExplorerMode; - bool unknown54; bool highEndDuty; bool dutyRecorderAllowed; std::string name; + std::string nameShort; uint8_t contentType; uint8_t transientKey; uint32_t transient; @@ -2377,7 +2439,6 @@ struct ContentMemberType uint8_t healersPerParty; uint8_t meleesPerParty; uint8_t rangedPerParty; - uint8_t unknown54; ContentMemberType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -2541,6 +2602,13 @@ struct CraftLevelDifference CraftLevelDifference( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct CraftLeveTalk +{ + std::vector< std::string > talk; + + CraftLeveTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct CraftType { uint8_t mainPhysical; @@ -2568,7 +2636,6 @@ struct Credit struct CreditBackImage { - bool unknown54; uint32_t backImage; CreditBackImage( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); @@ -2605,20 +2672,13 @@ struct CustomTalk std::string name; std::vector< std::string > scriptInstruction; std::vector< uint32_t > scriptArg; - bool text; - bool unknown54; + std::string mainOption; + std::string subOption; + uint32_t specialLinks; CustomTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; -struct CustomTalkDynamicIcon -{ - uint32_t smallIcon; - uint32_t largeIcon; - - CustomTalkDynamicIcon( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); -}; - struct CustomTalkNestHandlers { uint32_t nestHandler; @@ -2633,6 +2693,13 @@ struct Cutscene Cutscene( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct CutSceneIncompQuest +{ + uint32_t quest; + + CutSceneIncompQuest( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct CutsceneMotion { float wALK_LOOP_SPEED; @@ -2889,24 +2956,6 @@ struct Description struct DescriptionPage { uint32_t quest; - uint16_t text1; - uint32_t image1; - uint16_t text2; - uint32_t image2; - uint16_t text3; - uint32_t image3; - uint16_t text4; - uint32_t image4; - uint16_t text5; - uint32_t image5; - uint16_t text6; - uint32_t image6; - uint16_t text7; - uint32_t image7; - uint16_t text8; - uint32_t image8; - uint16_t text9; - uint32_t image9; DescriptionPage( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -3144,11 +3193,8 @@ struct ENpcDressUp struct ENpcDressUpDress { - bool addedIn530; uint32_t eNpc; - uint16_t addedIn531; uint16_t behavior; - uint8_t addedIn532; uint64_t modelMainHand; uint8_t dyeMainHand; uint64_t modelOffHand; @@ -3320,6 +3366,17 @@ struct EventAction EventAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct EventCustomIconType +{ + std::vector< uint32_t > announceQuest; + std::vector< uint32_t > announceQuestLocked; + std::vector< uint32_t > mapAnnounceQuest0; + std::vector< uint32_t > mapAnnounceQuestLocked; + std::vector< uint32_t > mapAnnounceQuest1; + + EventCustomIconType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct EventIconPriority { std::vector< uint32_t > icon; @@ -3388,6 +3445,15 @@ struct EventSystemDefine EventSystemDefine( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct ExportedGatheringPoint +{ + float x; + float y; + uint8_t radius; + + ExportedGatheringPoint( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct ExportedSG { std::string sgbPath; @@ -3406,6 +3472,10 @@ struct ExVersion struct Fate { + std::string name; + std::string description; + std::string objective; + std::vector< std::string > statusText; uint8_t eurekaFate; uint8_t rule; uint16_t fateRuleEx; @@ -3422,15 +3492,12 @@ struct Fate uint16_t screenImageAccept; uint16_t screenImageComplete; uint16_t screenImageFailed; + uint32_t requiredQuest; bool specialFate; uint16_t givenStatus; bool adventEvent; bool moonFaireEvent; uint32_t fATEChain; - std::string name; - std::string description; - std::string objective; - std::vector< std::string > statusText; uint32_t arrayIndex; uint32_t reqEventItem; uint32_t turnInEventItem; @@ -3669,7 +3736,6 @@ struct Frontline04 int32_t level1; int32_t level2; int32_t level3; - std::vector< int32_t > unknownLevel; Frontline04( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -3809,8 +3875,6 @@ struct GatheringPointBonus uint32_t conditionValue; uint8_t bonusType; uint16_t bonusValue; - bool unknown53; - uint32_t unknown54; GatheringPointBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -3882,6 +3946,19 @@ struct GcArmyCaptureTactics GcArmyCaptureTactics( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct GcArmyEquipPreset +{ + int32_t mainHand; + int32_t offHand; + int32_t head; + int32_t body; + int32_t gloves; + int32_t legs; + int32_t feet; + + GcArmyEquipPreset( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct GcArmyExpedition { uint8_t requiredFlag; @@ -3916,6 +3993,10 @@ struct GcArmyMemberGrow { uint8_t classJob; int32_t classBook; + std::vector< uint16_t > equipPreset; + std::vector< uint8_t > physical; + std::vector< uint8_t > mental; + std::vector< uint8_t > tactical; GcArmyMemberGrow( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4128,7 +4209,8 @@ struct GilShop struct GilShopItem { int32_t item; - std::vector< int32_t > rowRequired; + std::vector< int32_t > questRequired; + int32_t achievementRequired; uint16_t stateRequired; uint16_t patch; @@ -4212,7 +4294,6 @@ struct GroupPoseFrame { int32_t image; std::string gridText; - int32_t unknown54; std::string text; GroupPoseFrame( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -4222,8 +4303,6 @@ struct GroupPoseStamp { int32_t stampIcon; int32_t category; - int32_t unknown540; - bool unknown541; std::string name; GroupPoseStamp( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -4277,7 +4356,7 @@ struct GuideTitle struct GuildleveAssignment { - uint8_t addedIn53; + std::string type; uint32_t assignmentTalk; std::vector< uint32_t > quest; @@ -4291,6 +4370,13 @@ struct GuildleveAssignmentCategory GuildleveAssignmentCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct GuildleveAssignmentTalk +{ + std::vector< std::string > talk; + + GuildleveAssignmentTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct GuildOrder { uint32_t eNpcName; @@ -4477,8 +4563,12 @@ struct HousingYardObject struct HowTo { - std::vector< int16_t > images; + std::string name; + bool announce; + std::vector< int16_t > howToPagePC; + std::vector< int16_t > howToPageController; int8_t category; + uint8_t sort; HowTo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4492,7 +4582,11 @@ struct HowToCategory struct HowToPage { + uint8_t type; + uint8_t iconType; int32_t image; + uint8_t textType; + std::vector< std::string > text; HowToPage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4677,7 +4771,6 @@ struct IKDFishParam { uint32_t fish; uint8_t iKDContentBonus; - uint8_t unknown54; IKDFishParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4733,8 +4826,6 @@ struct InclusionShopSeries struct IndividualWeather { std::vector< uint8_t > weather; - uint8_t addedIn530; - uint8_t addedIn531; std::vector< uint32_t > quest; IndividualWeather( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -4748,6 +4839,7 @@ struct InstanceContent uint16_t bGM; uint16_t winBGM; uint32_t cutscene; + uint32_t lGBEventRange; uint16_t order; uint8_t colosseum; uint32_t instanceContentTextDataBossStart; @@ -4768,8 +4860,6 @@ struct InstanceContent uint32_t instanceContentBuff; int32_t reqInstance; int16_t partyCondition; - uint16_t unknown540; - uint16_t unknown541; InstanceContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4786,8 +4876,6 @@ struct InstanceContentCSBonus { uint16_t instance; uint32_t item; - uint8_t unknown540; - uint8_t unknown541; InstanceContentCSBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4845,7 +4933,6 @@ struct Item bool isCollectable; bool alwaysCollectable; uint16_t aetherialReduce; - uint16_t unknown54; uint8_t levelEquip; uint8_t equipRestriction; uint8_t classJobCategory; @@ -5037,6 +5124,13 @@ struct ItemUICategory ItemUICategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct Jingle +{ + std::string name; + + Jingle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct JobHudManual { uint32_t action; @@ -5239,8 +5333,6 @@ struct LotteryExchangeShop { std::vector< int32_t > itemAccepted; std::vector< uint32_t > amountAccepted; - std::vector< uint8_t > unknown540; - std::vector< uint8_t > unknown541; std::string lua; std::vector< uint32_t > logMessage; @@ -5313,6 +5405,13 @@ struct Map Map( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct MapCondition +{ + uint16_t quest; + + MapCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct MapMarker { int16_t x; @@ -5352,23 +5451,6 @@ struct Marker Marker( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; -struct MasterpieceSupplyDuty -{ - uint8_t classJob; - uint8_t classJobLevel; - uint16_t rewardCurrency; - - MasterpieceSupplyDuty( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); -}; - -struct MasterpieceSupplyMultiplier -{ - std::vector< uint16_t > xpMultiplier; - std::vector< uint16_t > currencyMultiplier; - - MasterpieceSupplyMultiplier( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); -}; - struct Materia { std::vector< int32_t > item; @@ -5741,8 +5823,7 @@ struct MYCTemporaryItemUICategory struct MYCWarResultNotebook { uint8_t number; - uint8_t unknown540; - uint8_t unknown541; + uint8_t link; int32_t quest; int32_t icon; int32_t image; @@ -5827,7 +5908,6 @@ struct NpcYell float balloonTime; bool isBalloonSlow; bool battleTalkTime; - uint8_t unknown54; std::string text; NpcYell( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -6000,11 +6080,19 @@ struct Perform uint16_t animationPlay02; int32_t stopAnimation; std::string instrument; + int32_t order; uint8_t transient; Perform( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct PerformGroup +{ + std::vector< uint8_t > perform; + + PerformGroup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct PerformTransient { std::string text; @@ -6032,6 +6120,13 @@ struct PetAction PetAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct PetMirage +{ + std::string name; + + PetMirage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct PhysicsGroup { std::vector< float > simulationTime; @@ -6142,11 +6237,12 @@ struct PublicContent std::string name; uint32_t textDataStart; uint32_t textDataEnd; + uint32_t startCutscene; + uint32_t lGBEventRange; + uint32_t lGBPopRange; uint16_t contentFinderCondition; uint16_t additionalData; - int32_t unknown540; - uint16_t unknown541; - uint16_t unknown542; + uint32_t endCutscene; PublicContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6166,14 +6262,6 @@ struct PublicContentTextData PublicContentTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; -struct Purify -{ - uint8_t _class; - uint8_t level; - - Purify( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); -}; - struct PvPAction { uint16_t action; @@ -6184,7 +6272,7 @@ struct PvPAction struct PvPActionSort { - uint8_t name; + uint8_t actionType; uint16_t action; PvPActionSort( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); @@ -6285,7 +6373,7 @@ struct Quest uint8_t classJobRequired; uint16_t expFactor; uint32_t gilReward; - uint16_t gCSeals; + uint32_t gCSeals; std::vector< uint8_t > itemCatalyst; std::vector< uint8_t > itemCountCatalyst; uint8_t itemRewardType; @@ -6315,7 +6403,6 @@ struct Quest bool hideOfferIcon; uint8_t eventIconType; uint16_t sortKey; - bool unknown54; Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6379,6 +6466,7 @@ struct QuestRedo struct QuestRedoChapterUI { uint32_t quest; + uint8_t uITab; uint8_t category; uint32_t questRedoUISmall; uint32_t questRedoUILarge; @@ -6457,7 +6545,6 @@ struct Race int32_t rSEFHands; int32_t rSEFLegs; int32_t rSEFFeet; - uint8_t unknown54; uint8_t exPac; Race( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -6665,7 +6752,6 @@ struct Resident { uint64_t model; int32_t npcYell; - uint16_t addedIn53; uint8_t residentMotionType; Resident( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); @@ -6681,6 +6767,13 @@ struct ResistanceWeaponAdjust ResistanceWeaponAdjust( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct RetainerFortuneRewardRange +{ + uint16_t percentOfLevel; + + RetainerFortuneRewardRange( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct RetainerTask { bool isRandom; @@ -6778,8 +6871,6 @@ struct SatisfactionNpc std::vector< int32_t > supplyIndex; std::vector< uint16_t > satisfactionRequired; int32_t icon; - uint8_t addedIn530; - uint8_t addedIn531; SatisfactionNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6813,9 +6904,6 @@ struct ScenarioTree { uint8_t type; uint16_t image; - uint32_t unknown540; - std::string unknown541; - int32_t unknown542; ScenarioTree( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6935,6 +7023,7 @@ struct SpearfishingItem struct SpearfishingNotebook { uint8_t gatheringLevel; + bool isShadowNode; int32_t territoryType; int16_t x; int16_t y; @@ -6957,7 +7046,6 @@ struct SpecialShop { std::string name; std::vector< int32_t > questItem; - std::vector< int32_t > unknown; std::vector< int32_t > achievementUnlock; std::vector< uint16_t > patchNumber; uint8_t useCurrencyType; @@ -7154,9 +7242,7 @@ struct TerritoryType int8_t achievementIndex; bool isPvpZone; uint8_t exVersion; - uint8_t addedIn53; uint8_t mountSpeed; - bool unknown54; TerritoryType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -7272,7 +7358,6 @@ struct Transformation uint16_t endVFX; uint32_t action6; uint16_t action7; - bool unknown54; Transformation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -7377,7 +7462,6 @@ struct TripleTriadCardResident uint8_t sortKey; uint16_t order; uint8_t uIPriority; - bool unknown54; uint8_t acquisitionType; uint32_t acquisition; uint32_t location; @@ -7400,11 +7484,17 @@ struct TripleTriadCompetition TripleTriadCompetition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct TripleTriadResident +{ + uint16_t order; + + TripleTriadResident( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct TripleTriadRule { std::string name; std::string description; - bool unknown54; TripleTriadRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -7442,6 +7532,23 @@ struct TutorialTank TutorialTank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct UDS_Event +{ + std::string text; + std::string type; + std::vector< int32_t > property; + + UDS_Event( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + +struct UDS_Property +{ + std::string text; + std::string type; + + UDS_Property( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct UIColor { uint32_t uIForeground; @@ -7551,7 +7658,6 @@ struct WebGuidance int32_t image; uint8_t url; std::string name; - std::string unknown54; std::string description; WebGuidance( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -7721,6 +7827,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_AchievementCategoryDat; xiv::exd::Exd m_AchievementHideConditionDat; xiv::exd::Exd m_AchievementKindDat; + xiv::exd::Exd m_AchievementTargetDat; xiv::exd::Exd m_ActionDat; xiv::exd::Exd m_ActionCastTimelineDat; xiv::exd::Exd m_ActionCastVFXDat; @@ -7767,6 +7874,8 @@ struct ZoneSharedGroup xiv::exd::Exd m_AOZBossDat; xiv::exd::Exd m_AOZContentDat; xiv::exd::Exd m_AOZContentBriefingBNpcDat; + xiv::exd::Exd m_AOZReportDat; + xiv::exd::Exd m_AOZScoreDat; xiv::exd::Exd m_AquariumFishDat; xiv::exd::Exd m_AquariumWaterDat; xiv::exd::Exd m_ArrayEventHandlerDat; @@ -7847,6 +7956,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_CompanyLeveRuleDat; xiv::exd::Exd m_CompleteJournalDat; xiv::exd::Exd m_CompleteJournalCategoryDat; + xiv::exd::Exd m_CompletionDat; xiv::exd::Exd m_ConditionDat; xiv::exd::Exd m_ConfigKeyDat; xiv::exd::Exd m_ContentCloseCycleDat; @@ -7870,6 +7980,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_CraftActionDat; xiv::exd::Exd m_CraftLeveDat; xiv::exd::Exd m_CraftLevelDifferenceDat; + xiv::exd::Exd m_CraftLeveTalkDat; xiv::exd::Exd m_CraftTypeDat; xiv::exd::Exd m_CreditDat; xiv::exd::Exd m_CreditBackImageDat; @@ -7877,9 +7988,9 @@ struct ZoneSharedGroup xiv::exd::Exd m_CreditListDat; xiv::exd::Exd m_CreditListTextDat; xiv::exd::Exd m_CustomTalkDat; - xiv::exd::Exd m_CustomTalkDynamicIconDat; xiv::exd::Exd m_CustomTalkNestHandlersDat; xiv::exd::Exd m_CutsceneDat; + xiv::exd::Exd m_CutSceneIncompQuestDat; xiv::exd::Exd m_CutsceneMotionDat; xiv::exd::Exd m_CutsceneWorkIndexDat; xiv::exd::Exd m_CutScreenImageDat; @@ -7940,6 +8051,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_EurekaMagiciteItemTypeDat; xiv::exd::Exd m_EurekaSphereElementAdjustDat; xiv::exd::Exd m_EventActionDat; + xiv::exd::Exd m_EventCustomIconTypeDat; xiv::exd::Exd m_EventIconPriorityDat; xiv::exd::Exd m_EventIconTypeDat; xiv::exd::Exd m_EventItemDat; @@ -7947,6 +8059,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_EventItemHelpDat; xiv::exd::Exd m_EventItemTimelineDat; xiv::exd::Exd m_EventSystemDefineDat; + xiv::exd::Exd m_ExportedGatheringPointDat; xiv::exd::Exd m_ExportedSGDat; xiv::exd::Exd m_ExVersionDat; xiv::exd::Exd m_FateDat; @@ -7996,6 +8109,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_GatheringSubCategoryDat; xiv::exd::Exd m_GatheringTypeDat; xiv::exd::Exd m_GcArmyCaptureTacticsDat; + xiv::exd::Exd m_GcArmyEquipPresetDat; xiv::exd::Exd m_GcArmyExpeditionDat; xiv::exd::Exd m_GcArmyExpeditionMemberBonusDat; xiv::exd::Exd m_GcArmyExpeditionTypeDat; @@ -8038,6 +8152,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_GuideTitleDat; xiv::exd::Exd m_GuildleveAssignmentDat; xiv::exd::Exd m_GuildleveAssignmentCategoryDat; + xiv::exd::Exd m_GuildleveAssignmentTalkDat; xiv::exd::Exd m_GuildOrderDat; xiv::exd::Exd m_GuildOrderGuideDat; xiv::exd::Exd m_GuildOrderOfficerDat; @@ -8103,6 +8218,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_ItemSortCategoryDat; xiv::exd::Exd m_ItemSpecialBonusDat; xiv::exd::Exd m_ItemUICategoryDat; + xiv::exd::Exd m_JingleDat; xiv::exd::Exd m_JobHudManualDat; xiv::exd::Exd m_JobHudManualPriorityDat; xiv::exd::Exd m_JournalCategoryDat; @@ -8129,12 +8245,11 @@ struct ZoneSharedGroup xiv::exd::Exd m_MainCommandCategoryDat; xiv::exd::Exd m_ManeuversArmorDat; xiv::exd::Exd m_MapDat; + xiv::exd::Exd m_MapConditionDat; xiv::exd::Exd m_MapMarkerDat; xiv::exd::Exd m_MapMarkerRegionDat; xiv::exd::Exd m_MapSymbolDat; xiv::exd::Exd m_MarkerDat; - xiv::exd::Exd m_MasterpieceSupplyDutyDat; - xiv::exd::Exd m_MasterpieceSupplyMultiplierDat; xiv::exd::Exd m_MateriaDat; xiv::exd::Exd m_MateriaJoinRateDat; xiv::exd::Exd m_MateriaJoinRateGatherCraftDat; @@ -8191,9 +8306,11 @@ struct ZoneSharedGroup xiv::exd::Exd m_PartyContentTextDataDat; xiv::exd::Exd m_PatchMarkDat; xiv::exd::Exd m_PerformDat; + xiv::exd::Exd m_PerformGroupDat; xiv::exd::Exd m_PerformTransientDat; xiv::exd::Exd m_PetDat; xiv::exd::Exd m_PetActionDat; + xiv::exd::Exd m_PetMirageDat; xiv::exd::Exd m_PhysicsGroupDat; xiv::exd::Exd m_PhysicsWindDat; xiv::exd::Exd m_PictureDat; @@ -8205,7 +8322,6 @@ struct ZoneSharedGroup xiv::exd::Exd m_PublicContentDat; xiv::exd::Exd m_PublicContentCutsceneDat; xiv::exd::Exd m_PublicContentTextDataDat; - xiv::exd::Exd m_PurifyDat; xiv::exd::Exd m_PvPActionDat; xiv::exd::Exd m_PvPActionSortDat; xiv::exd::Exd m_PvPRankDat; @@ -8245,6 +8361,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_RelicNoteCategoryDat; xiv::exd::Exd m_ResidentDat; xiv::exd::Exd m_ResistanceWeaponAdjustDat; + xiv::exd::Exd m_RetainerFortuneRewardRangeDat; xiv::exd::Exd m_RetainerTaskDat; xiv::exd::Exd m_RetainerTaskLvRangeDat; xiv::exd::Exd m_RetainerTaskNormalDat; @@ -8309,11 +8426,14 @@ struct ZoneSharedGroup xiv::exd::Exd m_TripleTriadCardResidentDat; xiv::exd::Exd m_TripleTriadCardTypeDat; xiv::exd::Exd m_TripleTriadCompetitionDat; + xiv::exd::Exd m_TripleTriadResidentDat; xiv::exd::Exd m_TripleTriadRuleDat; xiv::exd::Exd m_TutorialDat; xiv::exd::Exd m_TutorialDPSDat; xiv::exd::Exd m_TutorialHealerDat; xiv::exd::Exd m_TutorialTankDat; + xiv::exd::Exd m_UDS_EventDat; + xiv::exd::Exd m_UDS_PropertyDat; xiv::exd::Exd m_UIColorDat; xiv::exd::Exd m_VaseFlowerDat; xiv::exd::Exd m_VFXDat; @@ -8344,6 +8464,7 @@ struct ZoneSharedGroup using AchievementCategoryPtr = std::shared_ptr< AchievementCategory >; using AchievementHideConditionPtr = std::shared_ptr< AchievementHideCondition >; using AchievementKindPtr = std::shared_ptr< AchievementKind >; + using AchievementTargetPtr = std::shared_ptr< AchievementTarget >; using ActionPtr = std::shared_ptr< Action >; using ActionCastTimelinePtr = std::shared_ptr< ActionCastTimeline >; using ActionCastVFXPtr = std::shared_ptr< ActionCastVFX >; @@ -8390,6 +8511,8 @@ struct ZoneSharedGroup using AOZBossPtr = std::shared_ptr< AOZBoss >; using AOZContentPtr = std::shared_ptr< AOZContent >; using AOZContentBriefingBNpcPtr = std::shared_ptr< AOZContentBriefingBNpc >; + using AOZReportPtr = std::shared_ptr< AOZReport >; + using AOZScorePtr = std::shared_ptr< AOZScore >; using AquariumFishPtr = std::shared_ptr< AquariumFish >; using AquariumWaterPtr = std::shared_ptr< AquariumWater >; using ArrayEventHandlerPtr = std::shared_ptr< ArrayEventHandler >; @@ -8470,6 +8593,7 @@ struct ZoneSharedGroup using CompanyLeveRulePtr = std::shared_ptr< CompanyLeveRule >; using CompleteJournalPtr = std::shared_ptr< CompleteJournal >; using CompleteJournalCategoryPtr = std::shared_ptr< CompleteJournalCategory >; + using CompletionPtr = std::shared_ptr< Completion >; using ConditionPtr = std::shared_ptr< Condition >; using ConfigKeyPtr = std::shared_ptr< ConfigKey >; using ContentCloseCyclePtr = std::shared_ptr< ContentCloseCycle >; @@ -8493,6 +8617,7 @@ struct ZoneSharedGroup using CraftActionPtr = std::shared_ptr< CraftAction >; using CraftLevePtr = std::shared_ptr< CraftLeve >; using CraftLevelDifferencePtr = std::shared_ptr< CraftLevelDifference >; + using CraftLeveTalkPtr = std::shared_ptr< CraftLeveTalk >; using CraftTypePtr = std::shared_ptr< CraftType >; using CreditPtr = std::shared_ptr< Credit >; using CreditBackImagePtr = std::shared_ptr< CreditBackImage >; @@ -8500,9 +8625,9 @@ struct ZoneSharedGroup using CreditListPtr = std::shared_ptr< CreditList >; using CreditListTextPtr = std::shared_ptr< CreditListText >; using CustomTalkPtr = std::shared_ptr< CustomTalk >; - using CustomTalkDynamicIconPtr = std::shared_ptr< CustomTalkDynamicIcon >; using CustomTalkNestHandlersPtr = std::shared_ptr< CustomTalkNestHandlers >; using CutscenePtr = std::shared_ptr< Cutscene >; + using CutSceneIncompQuestPtr = std::shared_ptr< CutSceneIncompQuest >; using CutsceneMotionPtr = std::shared_ptr< CutsceneMotion >; using CutsceneWorkIndexPtr = std::shared_ptr< CutsceneWorkIndex >; using CutScreenImagePtr = std::shared_ptr< CutScreenImage >; @@ -8563,6 +8688,7 @@ struct ZoneSharedGroup using EurekaMagiciteItemTypePtr = std::shared_ptr< EurekaMagiciteItemType >; using EurekaSphereElementAdjustPtr = std::shared_ptr< EurekaSphereElementAdjust >; using EventActionPtr = std::shared_ptr< EventAction >; + using EventCustomIconTypePtr = std::shared_ptr< EventCustomIconType >; using EventIconPriorityPtr = std::shared_ptr< EventIconPriority >; using EventIconTypePtr = std::shared_ptr< EventIconType >; using EventItemPtr = std::shared_ptr< EventItem >; @@ -8570,6 +8696,7 @@ struct ZoneSharedGroup using EventItemHelpPtr = std::shared_ptr< EventItemHelp >; using EventItemTimelinePtr = std::shared_ptr< EventItemTimeline >; using EventSystemDefinePtr = std::shared_ptr< EventSystemDefine >; + using ExportedGatheringPointPtr = std::shared_ptr< ExportedGatheringPoint >; using ExportedSGPtr = std::shared_ptr< ExportedSG >; using ExVersionPtr = std::shared_ptr< ExVersion >; using FatePtr = std::shared_ptr< Fate >; @@ -8619,6 +8746,7 @@ struct ZoneSharedGroup using GatheringSubCategoryPtr = std::shared_ptr< GatheringSubCategory >; using GatheringTypePtr = std::shared_ptr< GatheringType >; using GcArmyCaptureTacticsPtr = std::shared_ptr< GcArmyCaptureTactics >; + using GcArmyEquipPresetPtr = std::shared_ptr< GcArmyEquipPreset >; using GcArmyExpeditionPtr = std::shared_ptr< GcArmyExpedition >; using GcArmyExpeditionMemberBonusPtr = std::shared_ptr< GcArmyExpeditionMemberBonus >; using GcArmyExpeditionTypePtr = std::shared_ptr< GcArmyExpeditionType >; @@ -8661,6 +8789,7 @@ struct ZoneSharedGroup using GuideTitlePtr = std::shared_ptr< GuideTitle >; using GuildleveAssignmentPtr = std::shared_ptr< GuildleveAssignment >; using GuildleveAssignmentCategoryPtr = std::shared_ptr< GuildleveAssignmentCategory >; + using GuildleveAssignmentTalkPtr = std::shared_ptr< GuildleveAssignmentTalk >; using GuildOrderPtr = std::shared_ptr< GuildOrder >; using GuildOrderGuidePtr = std::shared_ptr< GuildOrderGuide >; using GuildOrderOfficerPtr = std::shared_ptr< GuildOrderOfficer >; @@ -8726,6 +8855,7 @@ struct ZoneSharedGroup using ItemSortCategoryPtr = std::shared_ptr< ItemSortCategory >; using ItemSpecialBonusPtr = std::shared_ptr< ItemSpecialBonus >; using ItemUICategoryPtr = std::shared_ptr< ItemUICategory >; + using JinglePtr = std::shared_ptr< Jingle >; using JobHudManualPtr = std::shared_ptr< JobHudManual >; using JobHudManualPriorityPtr = std::shared_ptr< JobHudManualPriority >; using JournalCategoryPtr = std::shared_ptr< JournalCategory >; @@ -8752,12 +8882,11 @@ struct ZoneSharedGroup using MainCommandCategoryPtr = std::shared_ptr< MainCommandCategory >; using ManeuversArmorPtr = std::shared_ptr< ManeuversArmor >; using MapPtr = std::shared_ptr< Map >; + using MapConditionPtr = std::shared_ptr< MapCondition >; using MapMarkerPtr = std::shared_ptr< MapMarker >; using MapMarkerRegionPtr = std::shared_ptr< MapMarkerRegion >; using MapSymbolPtr = std::shared_ptr< MapSymbol >; using MarkerPtr = std::shared_ptr< Marker >; - using MasterpieceSupplyDutyPtr = std::shared_ptr< MasterpieceSupplyDuty >; - using MasterpieceSupplyMultiplierPtr = std::shared_ptr< MasterpieceSupplyMultiplier >; using MateriaPtr = std::shared_ptr< Materia >; using MateriaJoinRatePtr = std::shared_ptr< MateriaJoinRate >; using MateriaJoinRateGatherCraftPtr = std::shared_ptr< MateriaJoinRateGatherCraft >; @@ -8814,9 +8943,11 @@ struct ZoneSharedGroup using PartyContentTextDataPtr = std::shared_ptr< PartyContentTextData >; using PatchMarkPtr = std::shared_ptr< PatchMark >; using PerformPtr = std::shared_ptr< Perform >; + using PerformGroupPtr = std::shared_ptr< PerformGroup >; using PerformTransientPtr = std::shared_ptr< PerformTransient >; using PetPtr = std::shared_ptr< Pet >; using PetActionPtr = std::shared_ptr< PetAction >; + using PetMiragePtr = std::shared_ptr< PetMirage >; using PhysicsGroupPtr = std::shared_ptr< PhysicsGroup >; using PhysicsWindPtr = std::shared_ptr< PhysicsWind >; using PicturePtr = std::shared_ptr< Picture >; @@ -8828,7 +8959,6 @@ struct ZoneSharedGroup using PublicContentPtr = std::shared_ptr< PublicContent >; using PublicContentCutscenePtr = std::shared_ptr< PublicContentCutscene >; using PublicContentTextDataPtr = std::shared_ptr< PublicContentTextData >; - using PurifyPtr = std::shared_ptr< Purify >; using PvPActionPtr = std::shared_ptr< PvPAction >; using PvPActionSortPtr = std::shared_ptr< PvPActionSort >; using PvPRankPtr = std::shared_ptr< PvPRank >; @@ -8868,6 +8998,7 @@ struct ZoneSharedGroup using RelicNoteCategoryPtr = std::shared_ptr< RelicNoteCategory >; using ResidentPtr = std::shared_ptr< Resident >; using ResistanceWeaponAdjustPtr = std::shared_ptr< ResistanceWeaponAdjust >; + using RetainerFortuneRewardRangePtr = std::shared_ptr< RetainerFortuneRewardRange >; using RetainerTaskPtr = std::shared_ptr< RetainerTask >; using RetainerTaskLvRangePtr = std::shared_ptr< RetainerTaskLvRange >; using RetainerTaskNormalPtr = std::shared_ptr< RetainerTaskNormal >; @@ -8932,11 +9063,14 @@ struct ZoneSharedGroup using TripleTriadCardResidentPtr = std::shared_ptr< TripleTriadCardResident >; using TripleTriadCardTypePtr = std::shared_ptr< TripleTriadCardType >; using TripleTriadCompetitionPtr = std::shared_ptr< TripleTriadCompetition >; + using TripleTriadResidentPtr = std::shared_ptr< TripleTriadResident >; using TripleTriadRulePtr = std::shared_ptr< TripleTriadRule >; using TutorialPtr = std::shared_ptr< Tutorial >; using TutorialDPSPtr = std::shared_ptr< TutorialDPS >; using TutorialHealerPtr = std::shared_ptr< TutorialHealer >; using TutorialTankPtr = std::shared_ptr< TutorialTank >; + using UDS_EventPtr = std::shared_ptr< UDS_Event >; + using UDS_PropertyPtr = std::shared_ptr< UDS_Property >; using UIColorPtr = std::shared_ptr< UIColor >; using VaseFlowerPtr = std::shared_ptr< VaseFlower >; using VFXPtr = std::shared_ptr< VFX >; @@ -8967,6 +9101,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_AchievementCategoryIdList; std::set< uint32_t > m_AchievementHideConditionIdList; std::set< uint32_t > m_AchievementKindIdList; + std::set< uint32_t > m_AchievementTargetIdList; std::set< uint32_t > m_ActionIdList; std::set< uint32_t > m_ActionCastTimelineIdList; std::set< uint32_t > m_ActionCastVFXIdList; @@ -9013,6 +9148,8 @@ struct ZoneSharedGroup std::set< uint32_t > m_AOZBossIdList; std::set< uint32_t > m_AOZContentIdList; std::set< uint32_t > m_AOZContentBriefingBNpcIdList; + std::set< uint32_t > m_AOZReportIdList; + std::set< uint32_t > m_AOZScoreIdList; std::set< uint32_t > m_AquariumFishIdList; std::set< uint32_t > m_AquariumWaterIdList; std::set< uint32_t > m_ArrayEventHandlerIdList; @@ -9093,6 +9230,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_CompanyLeveRuleIdList; std::set< uint32_t > m_CompleteJournalIdList; std::set< uint32_t > m_CompleteJournalCategoryIdList; + std::set< uint32_t > m_CompletionIdList; std::set< uint32_t > m_ConditionIdList; std::set< uint32_t > m_ConfigKeyIdList; std::set< uint32_t > m_ContentCloseCycleIdList; @@ -9116,6 +9254,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_CraftActionIdList; std::set< uint32_t > m_CraftLeveIdList; std::set< uint32_t > m_CraftLevelDifferenceIdList; + std::set< uint32_t > m_CraftLeveTalkIdList; std::set< uint32_t > m_CraftTypeIdList; std::set< uint32_t > m_CreditIdList; std::set< uint32_t > m_CreditBackImageIdList; @@ -9123,9 +9262,9 @@ struct ZoneSharedGroup std::set< uint32_t > m_CreditListIdList; std::set< uint32_t > m_CreditListTextIdList; std::set< uint32_t > m_CustomTalkIdList; - std::set< uint32_t > m_CustomTalkDynamicIconIdList; std::set< uint32_t > m_CustomTalkNestHandlersIdList; std::set< uint32_t > m_CutsceneIdList; + std::set< uint32_t > m_CutSceneIncompQuestIdList; std::set< uint32_t > m_CutsceneMotionIdList; std::set< uint32_t > m_CutsceneWorkIndexIdList; std::set< uint32_t > m_CutScreenImageIdList; @@ -9186,6 +9325,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_EurekaMagiciteItemTypeIdList; std::set< uint32_t > m_EurekaSphereElementAdjustIdList; std::set< uint32_t > m_EventActionIdList; + std::set< uint32_t > m_EventCustomIconTypeIdList; std::set< uint32_t > m_EventIconPriorityIdList; std::set< uint32_t > m_EventIconTypeIdList; std::set< uint32_t > m_EventItemIdList; @@ -9193,6 +9333,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_EventItemHelpIdList; std::set< uint32_t > m_EventItemTimelineIdList; std::set< uint32_t > m_EventSystemDefineIdList; + std::set< uint32_t > m_ExportedGatheringPointIdList; std::set< uint32_t > m_ExportedSGIdList; std::set< uint32_t > m_ExVersionIdList; std::set< uint32_t > m_FateIdList; @@ -9242,6 +9383,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_GatheringSubCategoryIdList; std::set< uint32_t > m_GatheringTypeIdList; std::set< uint32_t > m_GcArmyCaptureTacticsIdList; + std::set< uint32_t > m_GcArmyEquipPresetIdList; std::set< uint32_t > m_GcArmyExpeditionIdList; std::set< uint32_t > m_GcArmyExpeditionMemberBonusIdList; std::set< uint32_t > m_GcArmyExpeditionTypeIdList; @@ -9284,6 +9426,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_GuideTitleIdList; std::set< uint32_t > m_GuildleveAssignmentIdList; std::set< uint32_t > m_GuildleveAssignmentCategoryIdList; + std::set< uint32_t > m_GuildleveAssignmentTalkIdList; std::set< uint32_t > m_GuildOrderIdList; std::set< uint32_t > m_GuildOrderGuideIdList; std::set< uint32_t > m_GuildOrderOfficerIdList; @@ -9349,6 +9492,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_ItemSortCategoryIdList; std::set< uint32_t > m_ItemSpecialBonusIdList; std::set< uint32_t > m_ItemUICategoryIdList; + std::set< uint32_t > m_JingleIdList; std::set< uint32_t > m_JobHudManualIdList; std::set< uint32_t > m_JobHudManualPriorityIdList; std::set< uint32_t > m_JournalCategoryIdList; @@ -9375,12 +9519,11 @@ struct ZoneSharedGroup std::set< uint32_t > m_MainCommandCategoryIdList; std::set< uint32_t > m_ManeuversArmorIdList; std::set< uint32_t > m_MapIdList; + std::set< uint32_t > m_MapConditionIdList; std::set< uint32_t > m_MapMarkerIdList; std::set< uint32_t > m_MapMarkerRegionIdList; std::set< uint32_t > m_MapSymbolIdList; std::set< uint32_t > m_MarkerIdList; - std::set< uint32_t > m_MasterpieceSupplyDutyIdList; - std::set< uint32_t > m_MasterpieceSupplyMultiplierIdList; std::set< uint32_t > m_MateriaIdList; std::set< uint32_t > m_MateriaJoinRateIdList; std::set< uint32_t > m_MateriaJoinRateGatherCraftIdList; @@ -9437,9 +9580,11 @@ struct ZoneSharedGroup std::set< uint32_t > m_PartyContentTextDataIdList; std::set< uint32_t > m_PatchMarkIdList; std::set< uint32_t > m_PerformIdList; + std::set< uint32_t > m_PerformGroupIdList; std::set< uint32_t > m_PerformTransientIdList; std::set< uint32_t > m_PetIdList; std::set< uint32_t > m_PetActionIdList; + std::set< uint32_t > m_PetMirageIdList; std::set< uint32_t > m_PhysicsGroupIdList; std::set< uint32_t > m_PhysicsWindIdList; std::set< uint32_t > m_PictureIdList; @@ -9451,7 +9596,6 @@ struct ZoneSharedGroup std::set< uint32_t > m_PublicContentIdList; std::set< uint32_t > m_PublicContentCutsceneIdList; std::set< uint32_t > m_PublicContentTextDataIdList; - std::set< uint32_t > m_PurifyIdList; std::set< uint32_t > m_PvPActionIdList; std::set< uint32_t > m_PvPActionSortIdList; std::set< uint32_t > m_PvPRankIdList; @@ -9491,6 +9635,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_RelicNoteCategoryIdList; std::set< uint32_t > m_ResidentIdList; std::set< uint32_t > m_ResistanceWeaponAdjustIdList; + std::set< uint32_t > m_RetainerFortuneRewardRangeIdList; std::set< uint32_t > m_RetainerTaskIdList; std::set< uint32_t > m_RetainerTaskLvRangeIdList; std::set< uint32_t > m_RetainerTaskNormalIdList; @@ -9555,11 +9700,14 @@ struct ZoneSharedGroup std::set< uint32_t > m_TripleTriadCardResidentIdList; std::set< uint32_t > m_TripleTriadCardTypeIdList; std::set< uint32_t > m_TripleTriadCompetitionIdList; + std::set< uint32_t > m_TripleTriadResidentIdList; std::set< uint32_t > m_TripleTriadRuleIdList; std::set< uint32_t > m_TutorialIdList; std::set< uint32_t > m_TutorialDPSIdList; std::set< uint32_t > m_TutorialHealerIdList; std::set< uint32_t > m_TutorialTankIdList; + std::set< uint32_t > m_UDS_EventIdList; + std::set< uint32_t > m_UDS_PropertyIdList; std::set< uint32_t > m_UIColorIdList; std::set< uint32_t > m_VaseFlowerIdList; std::set< uint32_t > m_VFXIdList; @@ -9610,6 +9758,12 @@ const std::set< uint32_t >& getAchievementKindIdList() loadIdList( m_AchievementKindDat, m_AchievementKindIdList ); return m_AchievementKindIdList; } +const std::set< uint32_t >& getAchievementTargetIdList() +{ + if( m_AchievementTargetIdList.size() == 0 ) + loadIdList( m_AchievementTargetDat, m_AchievementTargetIdList ); + return m_AchievementTargetIdList; +} const std::set< uint32_t >& getActionIdList() { if( m_ActionIdList.size() == 0 ) @@ -9886,6 +10040,18 @@ const std::set< uint32_t >& getAOZContentBriefingBNpcIdList() loadIdList( m_AOZContentBriefingBNpcDat, m_AOZContentBriefingBNpcIdList ); return m_AOZContentBriefingBNpcIdList; } +const std::set< uint32_t >& getAOZReportIdList() +{ + if( m_AOZReportIdList.size() == 0 ) + loadIdList( m_AOZReportDat, m_AOZReportIdList ); + return m_AOZReportIdList; +} +const std::set< uint32_t >& getAOZScoreIdList() +{ + if( m_AOZScoreIdList.size() == 0 ) + loadIdList( m_AOZScoreDat, m_AOZScoreIdList ); + return m_AOZScoreIdList; +} const std::set< uint32_t >& getAquariumFishIdList() { if( m_AquariumFishIdList.size() == 0 ) @@ -10366,6 +10532,12 @@ const std::set< uint32_t >& getCompleteJournalCategoryIdList() loadIdList( m_CompleteJournalCategoryDat, m_CompleteJournalCategoryIdList ); return m_CompleteJournalCategoryIdList; } +const std::set< uint32_t >& getCompletionIdList() +{ + if( m_CompletionIdList.size() == 0 ) + loadIdList( m_CompletionDat, m_CompletionIdList ); + return m_CompletionIdList; +} const std::set< uint32_t >& getConditionIdList() { if( m_ConditionIdList.size() == 0 ) @@ -10504,6 +10676,12 @@ const std::set< uint32_t >& getCraftLevelDifferenceIdList() loadIdList( m_CraftLevelDifferenceDat, m_CraftLevelDifferenceIdList ); return m_CraftLevelDifferenceIdList; } +const std::set< uint32_t >& getCraftLeveTalkIdList() +{ + if( m_CraftLeveTalkIdList.size() == 0 ) + loadIdList( m_CraftLeveTalkDat, m_CraftLeveTalkIdList ); + return m_CraftLeveTalkIdList; +} const std::set< uint32_t >& getCraftTypeIdList() { if( m_CraftTypeIdList.size() == 0 ) @@ -10546,12 +10724,6 @@ const std::set< uint32_t >& getCustomTalkIdList() loadIdList( m_CustomTalkDat, m_CustomTalkIdList ); return m_CustomTalkIdList; } -const std::set< uint32_t >& getCustomTalkDynamicIconIdList() -{ - if( m_CustomTalkDynamicIconIdList.size() == 0 ) - loadIdList( m_CustomTalkDynamicIconDat, m_CustomTalkDynamicIconIdList ); - return m_CustomTalkDynamicIconIdList; -} const std::set< uint32_t >& getCustomTalkNestHandlersIdList() { if( m_CustomTalkNestHandlersIdList.size() == 0 ) @@ -10564,6 +10736,12 @@ const std::set< uint32_t >& getCutsceneIdList() loadIdList( m_CutsceneDat, m_CutsceneIdList ); return m_CutsceneIdList; } +const std::set< uint32_t >& getCutSceneIncompQuestIdList() +{ + if( m_CutSceneIncompQuestIdList.size() == 0 ) + loadIdList( m_CutSceneIncompQuestDat, m_CutSceneIncompQuestIdList ); + return m_CutSceneIncompQuestIdList; +} const std::set< uint32_t >& getCutsceneMotionIdList() { if( m_CutsceneMotionIdList.size() == 0 ) @@ -10924,6 +11102,12 @@ const std::set< uint32_t >& getEventActionIdList() loadIdList( m_EventActionDat, m_EventActionIdList ); return m_EventActionIdList; } +const std::set< uint32_t >& getEventCustomIconTypeIdList() +{ + if( m_EventCustomIconTypeIdList.size() == 0 ) + loadIdList( m_EventCustomIconTypeDat, m_EventCustomIconTypeIdList ); + return m_EventCustomIconTypeIdList; +} const std::set< uint32_t >& getEventIconPriorityIdList() { if( m_EventIconPriorityIdList.size() == 0 ) @@ -10966,6 +11150,12 @@ const std::set< uint32_t >& getEventSystemDefineIdList() loadIdList( m_EventSystemDefineDat, m_EventSystemDefineIdList ); return m_EventSystemDefineIdList; } +const std::set< uint32_t >& getExportedGatheringPointIdList() +{ + if( m_ExportedGatheringPointIdList.size() == 0 ) + loadIdList( m_ExportedGatheringPointDat, m_ExportedGatheringPointIdList ); + return m_ExportedGatheringPointIdList; +} const std::set< uint32_t >& getExportedSGIdList() { if( m_ExportedSGIdList.size() == 0 ) @@ -11260,6 +11450,12 @@ const std::set< uint32_t >& getGcArmyCaptureTacticsIdList() loadIdList( m_GcArmyCaptureTacticsDat, m_GcArmyCaptureTacticsIdList ); return m_GcArmyCaptureTacticsIdList; } +const std::set< uint32_t >& getGcArmyEquipPresetIdList() +{ + if( m_GcArmyEquipPresetIdList.size() == 0 ) + loadIdList( m_GcArmyEquipPresetDat, m_GcArmyEquipPresetIdList ); + return m_GcArmyEquipPresetIdList; +} const std::set< uint32_t >& getGcArmyExpeditionIdList() { if( m_GcArmyExpeditionIdList.size() == 0 ) @@ -11512,6 +11708,12 @@ const std::set< uint32_t >& getGuildleveAssignmentCategoryIdList() loadIdList( m_GuildleveAssignmentCategoryDat, m_GuildleveAssignmentCategoryIdList ); return m_GuildleveAssignmentCategoryIdList; } +const std::set< uint32_t >& getGuildleveAssignmentTalkIdList() +{ + if( m_GuildleveAssignmentTalkIdList.size() == 0 ) + loadIdList( m_GuildleveAssignmentTalkDat, m_GuildleveAssignmentTalkIdList ); + return m_GuildleveAssignmentTalkIdList; +} const std::set< uint32_t >& getGuildOrderIdList() { if( m_GuildOrderIdList.size() == 0 ) @@ -11902,6 +12104,12 @@ const std::set< uint32_t >& getItemUICategoryIdList() loadIdList( m_ItemUICategoryDat, m_ItemUICategoryIdList ); return m_ItemUICategoryIdList; } +const std::set< uint32_t >& getJingleIdList() +{ + if( m_JingleIdList.size() == 0 ) + loadIdList( m_JingleDat, m_JingleIdList ); + return m_JingleIdList; +} const std::set< uint32_t >& getJobHudManualIdList() { if( m_JobHudManualIdList.size() == 0 ) @@ -12058,6 +12266,12 @@ const std::set< uint32_t >& getMapIdList() loadIdList( m_MapDat, m_MapIdList ); return m_MapIdList; } +const std::set< uint32_t >& getMapConditionIdList() +{ + if( m_MapConditionIdList.size() == 0 ) + loadIdList( m_MapConditionDat, m_MapConditionIdList ); + return m_MapConditionIdList; +} const std::set< uint32_t >& getMapMarkerIdList() { if( m_MapMarkerIdList.size() == 0 ) @@ -12082,18 +12296,6 @@ const std::set< uint32_t >& getMarkerIdList() loadIdList( m_MarkerDat, m_MarkerIdList ); return m_MarkerIdList; } -const std::set< uint32_t >& getMasterpieceSupplyDutyIdList() -{ - if( m_MasterpieceSupplyDutyIdList.size() == 0 ) - loadIdList( m_MasterpieceSupplyDutyDat, m_MasterpieceSupplyDutyIdList ); - return m_MasterpieceSupplyDutyIdList; -} -const std::set< uint32_t >& getMasterpieceSupplyMultiplierIdList() -{ - if( m_MasterpieceSupplyMultiplierIdList.size() == 0 ) - loadIdList( m_MasterpieceSupplyMultiplierDat, m_MasterpieceSupplyMultiplierIdList ); - return m_MasterpieceSupplyMultiplierIdList; -} const std::set< uint32_t >& getMateriaIdList() { if( m_MateriaIdList.size() == 0 ) @@ -12430,6 +12632,12 @@ const std::set< uint32_t >& getPerformIdList() loadIdList( m_PerformDat, m_PerformIdList ); return m_PerformIdList; } +const std::set< uint32_t >& getPerformGroupIdList() +{ + if( m_PerformGroupIdList.size() == 0 ) + loadIdList( m_PerformGroupDat, m_PerformGroupIdList ); + return m_PerformGroupIdList; +} const std::set< uint32_t >& getPerformTransientIdList() { if( m_PerformTransientIdList.size() == 0 ) @@ -12448,6 +12656,12 @@ const std::set< uint32_t >& getPetActionIdList() loadIdList( m_PetActionDat, m_PetActionIdList ); return m_PetActionIdList; } +const std::set< uint32_t >& getPetMirageIdList() +{ + if( m_PetMirageIdList.size() == 0 ) + loadIdList( m_PetMirageDat, m_PetMirageIdList ); + return m_PetMirageIdList; +} const std::set< uint32_t >& getPhysicsGroupIdList() { if( m_PhysicsGroupIdList.size() == 0 ) @@ -12514,12 +12728,6 @@ const std::set< uint32_t >& getPublicContentTextDataIdList() loadIdList( m_PublicContentTextDataDat, m_PublicContentTextDataIdList ); return m_PublicContentTextDataIdList; } -const std::set< uint32_t >& getPurifyIdList() -{ - if( m_PurifyIdList.size() == 0 ) - loadIdList( m_PurifyDat, m_PurifyIdList ); - return m_PurifyIdList; -} const std::set< uint32_t >& getPvPActionIdList() { if( m_PvPActionIdList.size() == 0 ) @@ -12754,6 +12962,12 @@ const std::set< uint32_t >& getResistanceWeaponAdjustIdList() loadIdList( m_ResistanceWeaponAdjustDat, m_ResistanceWeaponAdjustIdList ); return m_ResistanceWeaponAdjustIdList; } +const std::set< uint32_t >& getRetainerFortuneRewardRangeIdList() +{ + if( m_RetainerFortuneRewardRangeIdList.size() == 0 ) + loadIdList( m_RetainerFortuneRewardRangeDat, m_RetainerFortuneRewardRangeIdList ); + return m_RetainerFortuneRewardRangeIdList; +} const std::set< uint32_t >& getRetainerTaskIdList() { if( m_RetainerTaskIdList.size() == 0 ) @@ -13138,6 +13352,12 @@ const std::set< uint32_t >& getTripleTriadCompetitionIdList() loadIdList( m_TripleTriadCompetitionDat, m_TripleTriadCompetitionIdList ); return m_TripleTriadCompetitionIdList; } +const std::set< uint32_t >& getTripleTriadResidentIdList() +{ + if( m_TripleTriadResidentIdList.size() == 0 ) + loadIdList( m_TripleTriadResidentDat, m_TripleTriadResidentIdList ); + return m_TripleTriadResidentIdList; +} const std::set< uint32_t >& getTripleTriadRuleIdList() { if( m_TripleTriadRuleIdList.size() == 0 ) @@ -13168,6 +13388,18 @@ const std::set< uint32_t >& getTutorialTankIdList() loadIdList( m_TutorialTankDat, m_TutorialTankIdList ); return m_TutorialTankIdList; } +const std::set< uint32_t >& getUDS_EventIdList() +{ + if( m_UDS_EventIdList.size() == 0 ) + loadIdList( m_UDS_EventDat, m_UDS_EventIdList ); + return m_UDS_EventIdList; +} +const std::set< uint32_t >& getUDS_PropertyIdList() +{ + if( m_UDS_PropertyIdList.size() == 0 ) + loadIdList( m_UDS_PropertyDat, m_UDS_PropertyIdList ); + return m_UDS_PropertyIdList; +} const std::set< uint32_t >& getUIColorIdList() { if( m_UIColorIdList.size() == 0 ) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 3bc671e5..ceb78f56 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -43,67 +43,67 @@ namespace Sapphire::Network::Packets */ enum ServerZoneIpcType : uint16_t { - Ping = 0x0183, // updated 5.45 hotfix - Init = 0x01EA, // updated 5.45 hotfix + Ping = 0x0289, // updated 5.55 hotfix + Init = 0x0203, // updated 5.55 hotfix - ActorFreeSpawn = 0x0185, // updated 5.45 hotfix - InitZone = 0x0233, // updated 5.45 hotfix + ActorFreeSpawn = 0x01C5, // updated 5.55 hotfix + InitZone = 0x021C, // updated 5.55 hotfix - EffectResult = 0x01D7, // updated 5.45 hotfix - ActorControl = 0x00C2, // updated 5.45 hotfix - ActorControlSelf = 0x03D5, // updated 5.45 hotfix - ActorControlTarget = 0x0171, // updated 5.45 hotfix + EffectResult = 0x01E9, // updated 5.55 hotfix + ActorControl = 0x01C8, // updated 5.55 hotfix + ActorControlSelf = 0x035A, // updated 5.55 hotfix + ActorControlTarget = 0x0338, // updated 5.55 hotfix /*! * @brief Used when resting */ - UpdateHpMpTp = 0x019B, // updated 5.45 hotfix + UpdateHpMpTp = 0x0077, // updated 5.55 hotfix /////////////////////////////////////////////////// ChatBanned = 0xF06B, - Playtime = 0x0302, // updated 5.45 hotfix - Logout = 0x012A, // updated 5.45 hotfix - CFNotify = 0x026E, // updated 5.45 hotfix + Playtime = 0x0348, // updated 5.55 hotfix + Logout = 0x0292, // updated 5.55 hotfix + CFNotify = 0x00DC, // updated 5.55 hotfix CFMemberStatus = 0x0079, - CFDutyInfo = 0x0145, // updated 5.45 hotfix + CFDutyInfo = 0x02A3, // updated 5.55 hotfix CFPlayerInNeed = 0xF07F, - CFPreferredRole = 0x012E, // updated 5.45 hotfix - CFCancel = 0x0312, // updated 5.45 hotfix + CFPreferredRole = 0x02B6, // updated 5.55 hotfix + CFCancel = 0x0262, // updated 5.55 hotfix SocialRequestError = 0xF0AD, - CFRegistered = 0x01FB, // updated 5.45 hotfix - SocialRequestResponse = 0x03A5, // updated 5.45 hotfix - SocialMessage = 0x030C, // updated 5.45 hotfix - SocialMessage2 = 0x00BB, // updated 5.45 hotfix + CFRegistered = 0x0114, // updated 5.55 hotfix + SocialRequestResponse = 0x033C, // updated 5.55 hotfix + SocialMessage = 0x0304, // updated 5.55 hotfix + SocialMessage2 = 0x01B4, // updated 5.55 hotfix CancelAllianceForming = 0x00C6, // updated 4.2 LogMessage = 0x00D0, - Chat = 0x01BA, // updated 5.45 hotfix + Chat = 0x0384, // updated 5.55 hotfix PartyChat = 0x0065, WorldVisitList = 0xF0FE, // added 4.5 - SocialList = 0x0315, // updated 5.45 hotfix + SocialList = 0x00DD, // updated 5.55 hotfix - ExamineSearchInfo = 0x035F, // updated 5.45 hotfix - UpdateSearchInfo = 0x0310, // updated 5.45 hotfix - InitSearchInfo = 0x01ED, // updated 5.45 hotfix + ExamineSearchInfo = 0x022A, // updated 5.55 hotfix + UpdateSearchInfo = 0x03DF, // updated 5.55 hotfix + InitSearchInfo = 0x00F8, // updated 5.55 hotfix ExamineSearchComment = 0x0102, // updated 4.1 - ServerNoticeShort = 0x03B4, // updated 5.45 hotfix - ServerNotice = 0x0354, // updated 5.45 hotfix - SetOnlineStatus = 0x0166, // updated 5.45 hotfix + ServerNoticeShort = 0x032D, // updated 5.55 hotfix + ServerNotice = 0x02CA, // updated 5.55 hotfix + SetOnlineStatus = 0x03A9, // updated 5.55 hotfix CountdownInitiate = 0x0237, // updated 5.25 CountdownCancel = 0x00D9, // updated 5.18 PlayerAddedToBlacklist = 0x033F, // updated 5.1 PlayerRemovedFromBlacklist = 0x0385, // updated 5.1 - BlackList = 0x02BD, // updated 5.45 hotfix + BlackList = 0x0093, // updated 5.55 hotfix - LinkshellList = 0x021A, // updated 5.45 hotfix + LinkshellList = 0x0160, // updated 5.55 hotfix MailDeleteRequest = 0xF12B, // updated 5.0 @@ -114,87 +114,87 @@ namespace Sapphire::Network::Packets MarketTaxRates = 0x01F8, // updated 5.35 hotfix - MarketBoardSearchResult = 0x01D6, // updated 5.45 hotfix - MarketBoardItemListingCount = 0x00C0, // updated 5.45 hotfix - MarketBoardItemListingHistory = 0x01C3, // updated 5.45 hotfix - MarketBoardItemListing = 0x016B, // updated 5.45 hotfix + MarketBoardSearchResult = 0x039D, // updated 5.55 hotfix + MarketBoardItemListingCount = 0x0277, // updated 5.55 hotfix + MarketBoardItemListingHistory = 0x0320, // updated 5.55 hotfix + MarketBoardItemListing = 0x026B, // updated 5.55 hotfix CharaFreeCompanyTag = 0x013B, // updated 4.5 FreeCompanyBoardMsg = 0x013C, // updated 4.5 - FreeCompanyInfo = 0x03D0, // updated 5.45 hotfix + FreeCompanyInfo = 0x0332, // updated 5.55 hotfix ExamineFreeCompanyInfo = 0xF13E, // updated 4.5 FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 - StatusEffectList = 0x0243, // updated 5.45 hotfix + StatusEffectList = 0x018A, // updated 5.55 hotfix EurekaStatusEffectList = 0x0167, // updated 5.18 BossStatusEffectList = 0x0312, // added 5.1 - Effect = 0x027F, // updated 5.45 hotfix - AoeEffect8 = 0x009B, // updated 5.45 hotfix - AoeEffect16 = 0x028C, // updated 5.45 hotfix - AoeEffect24 = 0x02AD, // updated 5.45 hotfix - AoeEffect32 = 0x00A7, // updated 5.45 hotfix - PersistantEffect = 0x0244, // updated 5.45 hotfix + Effect = 0x0283, // updated 5.55 hotfix + AoeEffect8 = 0x025B, // updated 5.55 hotfix + AoeEffect16 = 0x015D, // updated 5.55 hotfix + AoeEffect24 = 0x0091, // updated 5.55 hotfix + AoeEffect32 = 0x0169, // updated 5.55 hotfix + PersistantEffect = 0x035E, // updated 5.55 hotfix - GCAffiliation = 0x0155, // updated 5.45 hotfix + GCAffiliation = 0x0258, // updated 5.55 hotfix - PlayerSpawn = 0x01AB, // updated 5.45 hotfix - NpcSpawn = 0x02C9, // updated 5.45 hotfix + PlayerSpawn = 0x02C1, // updated 5.55 hotfix + NpcSpawn = 0x00F1, // updated 5.55 hotfix NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3 - ActorMove = 0x006B, // updated 5.45 hotfix + ActorMove = 0x009D, // updated 5.55 hotfix - ActorSetPos = 0x00C6, // updated 5.45 hotfix + ActorSetPos = 0x0266, // updated 5.55 hotfix - ActorCast = 0x034C, // updated 5.45 hotfix + ActorCast = 0x00A9, // updated 5.55 hotfix SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 - PartyList = 0x00F5, // updated 5.45 hotfix - PartyMessage = 0x01BC, // updated 5.45 hotfix - HateRank = 0x0217, // updated 5.45 hotfix - HateList = 0x00E5, // updated 5.45 hotfix - ObjectSpawn = 0x0336, // updated 5.45 hotfix - ObjectDespawn = 0x02D0, // updated 5.45 hotfix - UpdateClassInfo = 0x0179, // updated 5.45 hotfix + PartyList = 0x01B7, // updated 5.55 hotfix + PartyMessage = 0x01C1, // updated 5.55 hotfix + HateRank = 0x006E, // updated 5.55 hotfix + HateList = 0x01F1, // updated 5.55 hotfix + ObjectSpawn = 0x00FE, // updated 5.55 hotfix + ObjectDespawn = 0x0201, // updated 5.55 hotfix + UpdateClassInfo = 0x0065, // updated 5.55 hotfix SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything - PlayerSetup = 0x01E9, // updated 5.45 hotfix - PlayerStats = 0x01CC, // updated 5.45 hotfix - ActorOwner = 0x0153, // updated 5.45 hotfix - PlayerStateFlags = 0x02DC, // updated 5.45 hotfix - PlayerClassInfo = 0x02F0, // updated 5.45 hotfix - CharaVisualEffect = 0x026A, // updated 5.45 hotfix + PlayerSetup = 0x01E7, // updated 5.55 hotfix + PlayerStats = 0x012E, // updated 5.55 hotfix + ActorOwner = 0x00EB, // updated 5.55 hotfix + PlayerStateFlags = 0x0190, // updated 5.55 hotfix + PlayerClassInfo = 0x022B, // updated 5.55 hotfix + CharaVisualEffect = 0x033A, // updated 5.55 hotfix - ModelEquip = 0x024A, // updated 5.45 hotfix - Examine = 0x0261, // updated 5.45 hotfix - CharaNameReq = 0x0380, // updated 5.45 hotfix + ModelEquip = 0x0264, // updated 5.55 hotfix + Examine = 0x027C, // updated 5.55 hotfix + CharaNameReq = 0x02EC, // updated 5.55 hotfix // nb: see #565 on github UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0 RetainerSaleHistory = 0x020E, // updated 5.21 hotfix - RetainerInformation = 0x026B, // updated 5.45 hotfix + RetainerInformation = 0x02DE, // updated 5.55 hotfix SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore - ItemInfo = 0x0175, // updated 5.45 hotfix - ContainerInfo = 0x0193, // updated 5.45 hotfix - InventoryTransactionFinish = 0x00BD, // updated 5.45 hotfix - InventoryTransaction = 0x02EE, // updated 5.45 hotfix - CurrencyCrystalInfo = 0x0363, // updated 5.45 hotfix + ItemInfo = 0x02D3, // updated 5.55 hotfix + ContainerInfo = 0x00CF, // updated 5.55 hotfix + InventoryTransactionFinish = 0x02EE, // updated 5.55 hotfix + InventoryTransaction = 0x02FA, // updated 5.55 hotfix + CurrencyCrystalInfo = 0x0166, // updated 5.55 hotfix - InventoryActionAck = 0x02FA, // updated 5.45 hotfix - UpdateInventorySlot = 0x017D, // updated 5.45 hotfix + InventoryActionAck = 0x027D, // updated 5.55 hotfix + UpdateInventorySlot = 0x0073, // updated 5.55 hotfix - HuntingLogEntry = 0x0232, // updated 5.45 hotfix + HuntingLogEntry = 0x0080, // updated 5.55 hotfix - EventPlay = 0x0276, // updated 5.45 hotfix - EventPlay4 = 0x028D, // updated 5.45 hotfix - EventPlay8 = 0x0318, // updated 5.45 hotfix - EventPlay16 = 0x020D, // updated 5.45 hotfix - EventPlay32 = 0x03B5, // updated 5.45 hotfix - EventPlay64 = 0x039E, // updated 5.45 hotfix - EventPlay128 = 0x02F4, // updated 5.45 hotfix - EventPlay255 = 0x009D, // updated 5.45 hotfix + EventPlay = 0x0369, // updated 5.55 hotfix + EventPlay4 = 0x0247, // updated 5.55 hotfix + EventPlay8 = 0x0227, // updated 5.55 hotfix + EventPlay16 = 0x00C5, // updated 5.55 hotfix + EventPlay32 = 0x0184, // updated 5.55 hotfix + EventPlay64 = 0x011A, // updated 5.55 hotfix + EventPlay128 = 0x01B3, // updated 5.55 hotfix + EventPlay255 = 0x0240, // updated 5.55 hotfix - EventYield = 0x0268, // updated 5.45 hotfix + EventYield = 0x02CB, // updated 5.55 hotfix //EventYield4 = 0x0000, //EventYield8 = 0x0000, //EventYield16 = 0x0000, @@ -203,89 +203,89 @@ namespace Sapphire::Network::Packets //EventYield128 = 0x0000, //EventYield255 = 0x0000, - EventStart = 0x02DE, // updated 5.45 hotfix - EventFinish = 0x01A3, // updated 5.45 hotfix + EventStart = 0x0145, // updated 5.55 hotfix + EventFinish = 0x0174, // updated 5.55 hotfix EventLinkshell = 0x1169, - QuestActiveList = 0x015A, // updated 5.45 hotfix - QuestUpdate = 0x037B, // updated 5.45 hotfix - QuestCompleteList = 0x0287, // updated 5.45 hotfix + QuestActiveList = 0x0381, // updated 5.55 hotfix + QuestUpdate = 0x031B, // updated 5.55 hotfix + QuestCompleteList = 0x031A, // updated 5.55 hotfix - QuestFinish = 0x0066, // updated 5.45 hotfix + QuestFinish = 0x00E0, // updated 5.55 hotfix MSQTrackerComplete = 0xF1D6, // updated 5.0 MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 - QuestMessage = 0x017B, // updated 5.45 hotfix + QuestMessage = 0x036E, // updated 5.55 hotfix - QuestTracker = 0x01E8, // updated 5.45 hotfix + QuestTracker = 0x0294, // updated 5.55 hotfix - Mount = 0x0122, // updated 5.45 hotfix + Mount = 0x016B, // updated 5.55 hotfix - DirectorVars = 0x0252, // updated 5.45 hotfix + DirectorVars = 0x0391, // updated 5.55 hotfix SomeDirectorUnk1 = 0x0084, // updated 5.18 SomeDirectorUnk2 = 0xF0C1, // updated 5.18 - SomeDirectorUnk4 = 0x0071, // updated 5.45 hotfix + SomeDirectorUnk4 = 0x0101, // updated 5.55 hotfix SomeDirectorUnk8 = 0x028A, // updated 5.18 SomeDirectorUnk16 = 0x028C, // updated 5.18 - DirectorPopUp = 0xF162, // updated 5.18 - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown + DirectorPopUp = 0xF162, // updated 5.18 (could be 0x02C2 in 5.55, needs confirmation - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown DirectorPopUp4 = 0x0214, // updated 5.18 DirectorPopUp8 = 0x00F8, // updated 5.18 CFAvailableContents = 0xF1FD, // updated 4.2 - WeatherChange = 0x0167, // updated 5.45 hotfix - PlayerTitleList = 0x00F3, // updated 5.45 hotfix - Discovery = 0x0247, // updated 5.45 hotfix + WeatherChange = 0x0386, // updated 5.55 hotfix + PlayerTitleList = 0x0181, // updated 5.55 hotfix + Discovery = 0x019E, // updated 5.55 hotfix - EorzeaTimeOffset = 0x00C5, // updated 5.45 hotfix + EorzeaTimeOffset = 0x01AE, // updated 5.55 hotfix - EquipDisplayFlags = 0x0316, // updated 5.45 hotfix + EquipDisplayFlags = 0x01A3, // updated 5.55 hotfix MiniCactpotInit = 0x0286, // added 5.31 - ShopMessage = 0x02FC, // updated 5.45 hotfix - LootMessage = 0x03B8, // updated 5.45 hotfix - ResultDialog = 0x0296, // updated 5.45 hotfix - DesynthResult = 0x0323, // updated 5.45 hotfix + ShopMessage = 0x0162, // updated 5.55 hotfix + LootMessage = 0x0299, // updated 5.55 hotfix + ResultDialog = 0x025D, // updated 5.55 hotfix + DesynthResult = 0x0323, // updated 5.55 hotfix /// Housing ////////////////////////////////////// - LandSetInitialize = 0x03E2, // updated 5.45 hotfix - LandUpdate = 0x027E, // updated 5.45 hotfix - YardObjectSpawn = 0x010E, // updated 5.45 hotfix - HousingIndoorInitialize = 0x01A9, // updated 5.45 hotfix - LandPriceUpdate = 0x0379, // updated 5.45 hotfix - LandInfoSign = 0x0398, // updated 5.45 hotfix - LandRename = 0x00F6, // updated 5.45 hotfix - HousingEstateGreeting = 0x037D, // updated 5.45 hotfix - HousingUpdateLandFlagsSlot = 0x03AF, // updated 5.45 hotfix - HousingLandFlags = 0x033B, // updated 5.45 hotfix - HousingShowEstateGuestAccess = 0x01B3, // updated 5.45 hotfix + LandSetInitialize = 0x01E4, // updated 5.55 hotfix + LandUpdate = 0x012B, // updated 5.55 hotfix + YardObjectSpawn = 0x0249, // updated 5.55 hotfix + HousingIndoorInitialize = 0x0133, // updated 5.55 hotfix + LandPriceUpdate = 0x00AA, // updated 5.55 hotfix + LandInfoSign = 0x023D, // updated 5.55 hotfix + LandRename = 0x0158, // updated 5.55 hotfix + HousingEstateGreeting = 0x018D, // updated 5.55 hotfix + HousingUpdateLandFlagsSlot = 0x03C8, // updated 5.55 hotfix + HousingLandFlags = 0x037E, // updated 5.55 hotfix + HousingShowEstateGuestAccess = 0x01F8, // updated 5.55 hotfix - HousingObjectInitialize = 0x00B5, // updated 5.45 hotfix - HousingInternalObjectSpawn = 0x00BC, // updated 5.45 hotfix + HousingObjectInitialize = 0x0331, // updated 5.55 hotfix + HousingInternalObjectSpawn = 0x0092, // updated 5.55 hotfix - HousingWardInfo = 0x015E, // updated 5.45 hotfix - HousingObjectMove = 0x03E6, // updated 5.45 hotfix + HousingWardInfo = 0x0279, // updated 5.55 hotfix + HousingObjectMove = 0x0239, // updated 5.55 hotfix - SharedEstateSettingsResponse = 0x03A4, // updated 5.45 hotfix + SharedEstateSettingsResponse = 0x0263, // updated 5.55 hotfix - LandUpdateHouseName = 0x0215, // updated 5.45 hotfix + LandUpdateHouseName = 0x01D6, // updated 5.55 hotfix - LandSetMap = 0x0103, // updated 5.45 hotfix + LandSetMap = 0x01D3, // updated 5.55 hotfix ////////////////////////////////////////////////// DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui - PerformNote = 0x0248, // updated 5.45 hotfix + PerformNote = 0x038B, // updated 5.55 hotfix - PrepareZoning = 0x01EE, // updated 5.45 hotfix - ActorGauge = 0x018E, // updated 5.45 hotfix - DutyGauge = 0x00D2, // updated 5.45 hotfix + PrepareZoning = 0x00A4, // updated 5.55 hotfix + ActorGauge = 0x03B1, // updated 5.55 hotfix + DutyGauge = 0x01D3, // updated 5.55 hotfix // daily quest info -> without them sent, login will take longer... - DailyQuests = 0x02C4, // updated 5.45 hotfix - DailyQuestRepeatFlags = 0x024D, // updated 5.45 hotfix + DailyQuests = 0x0371, // updated 5.55 hotfix + DailyQuestRepeatFlags = 0x021F, // updated 5.55 hotfix /// Doman Mahjong ////////////////////////////////////// MahjongOpenGui = 0x02A4, // only available in mahjong instance @@ -294,20 +294,20 @@ namespace Sapphire::Network::Packets MahjongEndRoundTsumo = 0x02BF, // called tsumo MahjongEndRoundRon = 0x2C0, // called ron or double ron (waiting for action must be flagged from discard packet to call) MahjongTileDiscard = 0x02C1, // giri (discarding a tile.) chi(1)/pon(2)/kan(4)/ron(8) flags etc.. - MahjongPlayersInfo = 0x02C2, // actor id, name, rating and stuff.. + MahjongPlayersInfo = 0xF2C2, // actor id, name, rating and stuff.. // 2C3 and 2C4 are currently unknown MahjongEndRoundDraw = 0x02C5, // self explanatory MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen. /// Airship & Submarine ////////////////////////////////////// - AirshipExplorationResult = 0x0131, // updated 5.45 hotfix - AirshipStatus = 0x0253, // updated 5.45 hotfix - AirshipStatusList = 0x0391, // updated 5.45 hotfix - AirshipTimers = 0x0206, // updated 5.45 hotfix - SubmarineExplorationResult = 0x00EB, // updated 5.45 hotfix - SubmarineProgressionStatus = 0x0333, // updated 5.45 hotfix - SubmarineStatusList = 0x01F2, // updated 5.45 hotfix - SubmarineTimers = 0x013B, // updated 5.45 hotfix + AirshipExplorationResult = 0x007C, // updated 5.55 hotfix + AirshipStatus = 0x00AB, // updated 5.55 hotfix + AirshipStatusList = 0x027B, // updated 5.55 hotfix + AirshipTimers = 0x02A5, // updated 5.55 hotfix + SubmarineExplorationResult = 0x0099, // updated 5.55 hotfix + SubmarineProgressionStatus = 0x0081, // updated 5.55 hotfix + SubmarineStatusList = 0x0072, // updated 5.55 hotfix + SubmarineTimers = 0x037A, // updated 5.55 hotfix }; /** @@ -315,43 +315,42 @@ namespace Sapphire::Network::Packets */ enum ClientZoneIpcType : uint16_t { - PingHandler = 0x0183, // updated 5.45 hotfix - InitHandler = 0x01EA, // updated 5.45 hotfix + PingHandler = 0x03AD, // updated 5.55 hotfix + InitHandler = 0x03DA, // updated 5.55 hotfix - FinishLoadingHandler = 0x023F, // updated 5.45 hotfix + FinishLoadingHandler = 0x0203, // updated 5.55 hotfix - CFCommenceHandler = 0x0118, // updated 5.35 hotfix + CFCommenceHandler = 0xF118, // updated 5.35 hotfix CFCancelHandler = 0x0332, // updated 5.35 hotfix CFRegisterDuty = 0x033C, // updated 5.45 hotfix CFRegisterRoulette = 0x0121, // updated 5.45 hotfix - PlayTimeHandler = 0x0096, // updated 5.45 hotfix - LogoutHandler = 0x0312, // updated 5.45 hotfix - CancelLogout = 0x0307, // updated 5.45 hotfix + PlayTimeHandler = 0x0365, // updated 5.55 hotfix + LogoutHandler = 0x039B, // updated 5.55 hotfix + CancelLogout = 0x010F, // updated 5.55 hotfix + CFDutyInfoHandler = 0xF078, // updated 4.2 - CFDutyInfoHandler = 0x0078, // updated 4.2 + SocialReqSendHandler = 0x028E, // updated 5.55 hotfix + SocialResponseHandler = 0x0373, // updated 5.55 hotfix + CreateCrossWorldLS = 0x028D, // updated 5.55 hotfix - SocialReqSendHandler = 0x0288, // updated 5.45 hotfix - SocialResponseHandler = 0x029B, // updated 5.45 hotfix - CreateCrossWorldLS = 0x00AF, // updated 4.3 - - ChatHandler = 0x00A4, // updated 5.45 hotfix + ChatHandler = 0x01B8, // updated 5.55 hotfix PartyChatHandler = 0x0065, - PartySetLeaderHandler = 0x02EF, // updated 5.45 hotfix - LeavePartyHandler = 0x017E, // updated 5.45 hotfix - KickPartyMemberHandler = 0x0070, // updated 5.45 hotfix + PartySetLeaderHandler = 0x0142, // updated 5.55 hotfix + LeavePartyHandler = 0x026C, // updated 5.55 hotfix + KickPartyMemberHandler = 0x0379, // updated 5.55 hotfix DisbandPartyHandler = 0x037A, // updated 5.45 hotfix - SocialListHandler = 0x02B0, // updated 5.45 hotfix - SetSearchInfoHandler = 0x0111, // updated 5.45 hotfix - ReqSearchInfoHandler = 0x03AC, // updated 5.45 hotfix + SocialListHandler = 0x00F2, // updated 5.55 hotfix + SetSearchInfoHandler = 0x009C, // updated 5.55 hotfix + ReqSearchInfoHandler = 0x00B1, // updated 5.55 hotfix ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0 - BlackListHandler = 0x02CD, // updated 5.45 hotfix + BlackListHandler = 0x03DE, // updated 5.55 hotfix PlayerSearchHandler = 0x00F4, // updated 5.0 - LinkshellListHandler = 0x0258, // updated 5.45 hotfix + LinkshellListHandler = 0x0291, // updated 5.55 hotfix MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5 MarketBoardRequestItemListings = 0x0103, // updated 4.5 @@ -370,55 +369,55 @@ namespace Sapphire::Network::Packets ReqCountdownInitiate = 0x025F, // updated 5.35 hotfix ReqCountdownCancel = 0x0244, // updated 5.25 - ZoneLineHandler = 0x00BA, // updated 5.45 hotfix - ClientTrigger = 0x0146, // updated 5.45 hotfix + ZoneLineHandler = 0x01C2, // updated 5.55 hotfix + ClientTrigger = 0x0337, // updated 5.55 hotfix DiscoveryHandler = 0x00E3, // updated 5.35 hotfix - PlaceFieldMarkerPreset = 0x01D3, // updated 5.45 hotfix - PlaceFieldMarker = 0x0392, // updated 5.45 hotfix - SkillHandler = 0x0388, // updated 5.45 hotfix - GMCommand1 = 0x01E0, // updated 5.45 hotfix - GMCommand2 = 0x0114, // updated 5.45 hotfix - AoESkillHandler = 0x03A0, // updated 5.45 hotfix + PlaceFieldMarkerPreset = 0xF10C, // updated 5.55 hotfix + PlaceFieldMarker = 0xF2E2, // updated 5.55 hotfix + SkillHandler = 0x02A2, // updated 5.55 hotfix + GMCommand1 = 0x01F0, // updated 5.55 hotfix + GMCommand2 = 0x0068, // updated 5.55 hotfix + AoESkillHandler = 0x02F6, // updated 5.55 hotfix - UpdatePositionHandler = 0x031A, // updated 5.45 hotfix + UpdatePositionHandler = 0x024B, // updated 5.55 hotfix - InventoryModifyHandler = 0x0110, // updated 5.45 hotfix + InventoryModifyHandler = 0x01D7, // updated 5.55 hotfix InventoryEquipRecommendedItems = 0x0186, // updated 5.45 hotfix - ReqPlaceHousingItem = 0x0360, // updated 5.45 hotfix - BuildPresetHandler = 0x01D7, // updated 5.45 hotfix + ReqPlaceHousingItem = 0x023E, // updated 5.55 hotfix + BuildPresetHandler = 0x0374, // updated 5.55 hotfix - TalkEventHandler = 0x00C2, // updated 5.45 hotfix - EmoteEventHandler = 0x03D5, // updated 5.45 hotfix - WithinRangeEventHandler = 0x0171, // updated 5.45 hotfix - OutOfRangeEventHandler = 0x019B, // updated 5.45 hotfix - EnterTeriEventHandler = 0x027F, // updated 5.45 hotfix - ShopEventHandler = 0x03D4, // updated 5.45 hotfix - EventYieldHandler = 0x0230, // updated 5.45 hotfix - ReturnEventHandler = 0x02AD, // updated 5.45 hotfix - TradeReturnEventHandler = 0x00A7, // updated 5.45 hotfix - TradeMultipleReturnEventHander = 0x035C, // updated 5.35 hotfix + TalkEventHandler = 0x01E9, // updated 5.55 hotfix + EmoteEventHandler = 0xF35A, // updated 5.55 hotfix + WithinRangeEventHandler = 0x035A, // updated 5.55 hotfix + OutOfRangeEventHandler = 0x0338, // updated 5.55 hotfix + EnterTeriEventHandler = 0x0077, // updated 5.55 hotfix + ShopEventHandler = 0x0168, // updated 5.55 hotfix + EventYieldHandler = 0x02A0, // updated 5.55 hotfix + ReturnEventHandler = 0x015D, // updated 5.55 hotfix + TradeReturnEventHandler = 0x0091, // updated 5.55 hotfix + TradeReturnEventHandler2 = 0x0169, // updated 5.55 hotfix LinkshellEventHandler = 0x016B, // updated 4.5 LinkshellEventHandler1 = 0x016C, // updated 4.5 - ReqEquipDisplayFlagsChange = 0x03B0, // updated 5.45 hotfix + ReqEquipDisplayFlagsChange = 0x032B, // updated 5.55 hotfix - LandRenameHandler = 0x0187, // updated 5.45 hotfix - HousingUpdateHouseGreeting = 0x0367, // updated 5.45 hotfix - HousingUpdateObjectPosition = 0x0265, // updated 5.45 hotfix - HousingEditExterior = 0x0297, // updated 5.45 hotfix + LandRenameHandler = 0x0206, // updated 5.55 hotfix + HousingUpdateHouseGreeting = 0x0330, // updated 5.55 hotfix + HousingUpdateObjectPosition = 0x03A5, // updated 5.55 hotfix + HousingEditAppearance = 0x00D7, // updated 5.55 hotfix - SetSharedEstateSettings = 0x0146, // updated 5.45 hotfix + SetSharedEstateSettings = 0x03DC, // updated 5.55 hotfix - UpdatePositionInstance = 0x034E, // updated 5.45 hotfix + UpdatePositionInstance = 0x009D, // updated 5.55 hotfix - PerformNoteHandler = 0x0336, // updated 5.45 hotfix + PerformNoteHandler = 0x01F1, // updated 5.55 hotfix - WorldInteractionHandler = 0x02E4, // updated 5.45 hotfix - Dive = 0x00F1, // updated 5.45 hotfix + WorldInteractionHandler = 0x0343, // updated 5.55 hotfix + Dive = 0x021C, // updated 5.55 hotfix }; //////////////////////////////////////////////////////////////////////////////// diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 678a20f2..175069c3 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -427,7 +427,7 @@ struct FFXIVIpcDive : }; struct FFXIVIpcHousingEditExterior : - FFXIVIpcBasePacket< HousingEditExterior > + FFXIVIpcBasePacket< HousingEditAppearance > { uint16_t landId; uint8_t unknown[6]; diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 74126f05..bd1049e2 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -680,6 +680,7 @@ namespace Sapphire::Network::Packets::Server uint16_t unk; // == 0 uint16_t modelChara; uint16_t rotation; + uint16_t currentMount; uint16_t activeMinion; uint8_t spawnIndex; uint8_t state; @@ -693,24 +694,20 @@ namespace Sapphire::Network::Packets::Server uint8_t classJob; uint8_t u26d; uint16_t u27a; - uint8_t currentMount; uint8_t mountHead; uint8_t mountBody; uint8_t mountFeet; uint8_t mountColor; uint8_t scale; - - //uint32_t elementalLevel; one of these two field changed to 16bit - //uint32_t element; uint8_t elementData[6]; - + uint8_t unknown5_5[3]; Common::StatusEffect effect[30]; Common::FFXIVARR_POSITION3 pos; uint32_t models[10]; char name[32]; uint8_t look[26]; char fcTag[6]; - uint32_t unk30; + uint32_t unk30[2]; }; /** @@ -753,9 +750,10 @@ namespace Sapphire::Network::Packets::Server uint32_t displayFlags; uint16_t fateID; uint16_t mPCurr; - uint16_t unknown1; // 0 - uint16_t unknown2; // 0 or pretty big numbers > 30000 + uint16_t unknown1; + uint16_t unknown2; uint16_t modelChara; + uint16_t currentMount; uint16_t rotation; uint16_t activeMinion; uint8_t spawnIndex; @@ -770,14 +768,13 @@ namespace Sapphire::Network::Packets::Server uint8_t classJob; uint8_t u26d; uint16_t u27a; - uint8_t currentMount; uint8_t mountHead; uint8_t mountBody; uint8_t mountFeet; uint8_t mountColor; uint8_t scale; - uint16_t elementalLevel; // Eureka - uint16_t element; // Eureka + uint8_t elemental[6]; + uint8_t unknown5_5[3]; Common::StatusEffect effect[30]; Common::FFXIVARR_POSITION3 pos; uint32_t models[10]; @@ -789,7 +786,7 @@ namespace Sapphire::Network::Packets::Server uint8_t bNPCPartSlot; uint8_t unk32; uint16_t unk33; - uint32_t unk34; + uint32_t unk34[2]; }; /** @@ -1041,12 +1038,12 @@ namespace Sapphire::Network::Packets::Server unsigned char mountGuideMask[22]; unsigned char u19_2; */ - unsigned char unknown5_3a[176]; + unsigned char unknown5_55a[178]; unsigned char companionName[21]; unsigned char companionDefRank; unsigned char companionAttRank; unsigned char companionHealRank; - unsigned char mountGuideMask[27]; + unsigned char mountGuideMask[29]; //== char name[32]; unsigned char unknownOword[16]; @@ -1055,11 +1052,10 @@ namespace Sapphire::Network::Packets::Server unsigned char aetheryte[21]; unsigned char discovery[445]; unsigned char howto[34]; - unsigned char minions[53]; + unsigned char minions[55]; unsigned char chocoboTaxiMask[10]; - unsigned char watchedCutscenes[135]; - unsigned char companionBardingMask[10]; - unsigned char unknown5_45a; // companionBardingMask[11]? + unsigned char watchedCutscenes[137]; + unsigned char companionBardingMask[11]; unsigned char companionEquippedHead; unsigned char companionEquippedBody; unsigned char companionEquippedLegs; @@ -1092,12 +1088,12 @@ namespace Sapphire::Network::Packets::Server unsigned char aetherCurrentMask[22]; unsigned char u10[3]; */ - unsigned char unknown5_45c[294]; + unsigned char unknown5_55b[295]; //== - unsigned char orchestrionMask[40]; // this field may already be extended, if it is, the beginning bytes are at the end of unknown5_45c + unsigned char orchestrionMask[40]; // this field may already be extended, if it is, the beginning bytes are at the end of unknown5_55b unsigned char hallOfNoviceCompletion[3]; unsigned char animaCompletion[11]; - unsigned char unknown5_3e[33]; + unsigned char unknown5_55c[35]; unsigned char unlockedRaids[28]; unsigned char unlockedDungeons[18]; unsigned char unlockedGuildhests[10]; @@ -1117,7 +1113,7 @@ namespace Sapphire::Network::Packets::Server unsigned int exploratoryMissionNextTimestamp; unsigned char pvpLevel; */ - unsigned char unknown5_45d[8]; + unsigned char unknown5_55d[9]; //== }; diff --git a/src/scripts/quest/subquest/gridania/SubFst041.cpp b/src/scripts/quest/subquest/gridania/SubFst041.cpp index 4cede8e6..a96a19bc 100644 --- a/src/scripts/quest/subquest/gridania/SubFst041.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst041.cpp @@ -132,7 +132,7 @@ private: { if( result.param2 == 1 ) { - if( player.giveQuestRewards( getId(), 0 ) ) + if( player.giveQuestRewards( getId(), result.param3 ) ) { player.setQuestUI8BH( getId(), 0 ); player.finishQuest( getId() ); diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index aa882b45..9c10ebb8 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -1591,7 +1591,7 @@ uint16_t Sapphire::Entity::Player::getCurrentCompanion() const return m_companionId; } -uint8_t Sapphire::Entity::Player::getCurrentMount() const +uint16_t Sapphire::Entity::Player::getCurrentMount() const { return m_mount; } diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index 8dbe9afe..81d5a599 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -584,7 +584,7 @@ namespace Sapphire::Entity uint16_t getCurrentCompanion() const; /*! get the current mount */ - uint8_t getCurrentMount() const; + uint16_t getCurrentMount() const; /*! set current persistent emote */ void setPersistentEmote( uint32_t emoteId ); @@ -1067,8 +1067,8 @@ namespace Sapphire::Entity uint16_t m_activeTitle; uint8_t m_titleList[48]; uint8_t m_howTo[34]; - uint8_t m_minions[40]; - uint8_t m_mountGuide[27]; + uint8_t m_minions[55]; + uint8_t m_mountGuide[29]; uint8_t m_homePoint; uint8_t m_startTown; uint16_t m_townWarpFstFlags; @@ -1076,8 +1076,8 @@ namespace Sapphire::Entity uint8_t m_discovery[445]; uint32_t m_playTime; - uint16_t m_classArray[28]; - uint32_t m_expArray[28]; + uint16_t m_classArray[ Common::CLASSJOB_SLOTS ]; + uint32_t m_expArray[ Common::CLASSJOB_SLOTS ]; uint8_t m_aetheryte[21]; uint8_t m_unlocks[64]; uint8_t m_orchestrion[40]; diff --git a/src/world/Actor/PlayerSql.cpp b/src/world/Actor/PlayerSql.cpp index 6c145cbb..1ec21bac 100644 --- a/src/world/Actor/PlayerSql.cpp +++ b/src/world/Actor/PlayerSql.cpp @@ -186,6 +186,9 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession auto titleList = res->getBlobVector( "TitleList" ); memcpy( reinterpret_cast< char* >( m_titleList ), titleList.data(), titleList.size() ); + auto minions = res->getBlobVector( "Minions" ); + memcpy( reinterpret_cast< char* >( m_minions ), minions.data(), minions.size() ); + auto mountGuide = res->getBlobVector( "Mounts" ); memcpy( reinterpret_cast< char* >( m_mountGuide ), mountGuide.data(), mountGuide.size() ); diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index 2fea49fa..85aeeed9 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -226,22 +226,14 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player& if( player.getLevelForClass( static_cast< Common::ClassJob > ( id ) ) == 0 ) { player.setLevelForClass( 1, static_cast< Common::ClassJob > ( id ) ); - player.setClassJob( static_cast< Common::ClassJob > ( id ) ); - player.sendModel(); - player.sendItemLevel(); - player.calculateStats(); - player.sendStats(); - player.sendStatusEffectUpdate(); - player.sendStatusUpdate(); } - else - player.setClassJob( static_cast< Common::ClassJob > ( id ) ); - player.sendModel(); - player.sendItemLevel(); - player.calculateStats(); - player.sendStats(); - player.sendStatusEffectUpdate(); - player.sendStatusUpdate(); + player.setClassJob( static_cast< Common::ClassJob > ( id ) ); + player.sendModel(); + player.sendItemLevel(); + player.calculateStats(); + player.sendStats(); + player.sendStatusEffectUpdate(); + player.sendStatusUpdate(); } else if( subCommand == "cfpenalty" ) { diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index 95ac30c4..21f83edf 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -90,7 +90,7 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH setZoneHandler( ClientZoneIpcType::ReqPlaceHousingItem, "ReqPlaceHousingItem", &GameConnection::reqPlaceHousingItem ); setZoneHandler( ClientZoneIpcType::HousingUpdateObjectPosition, "HousingUpdateObjectPosition", &GameConnection::reqMoveHousingItem ); - setZoneHandler( ClientZoneIpcType::HousingEditExterior, "HousingEditExterior", &GameConnection::housingEditExterior ); + setZoneHandler( ClientZoneIpcType::HousingEditAppearance, "HousingEditAppearance", &GameConnection::housingEditExterior ); setZoneHandler( ClientZoneIpcType::TalkEventHandler, "EventHandlerTalk", &GameConnection::eventHandlerTalk ); setZoneHandler( ClientZoneIpcType::EmoteEventHandler, "EventHandlerEmote", &GameConnection::eventHandlerEmote ); @@ -101,10 +101,10 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH setZoneHandler( ClientZoneIpcType::EnterTeriEventHandler, "EventHandlerEnterTeri", &GameConnection::eventHandlerEnterTerritory ); - setZoneHandler( ClientZoneIpcType::ReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandlerReturn ); - setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "EventHandlerReturn", + setZoneHandler( ClientZoneIpcType::ReturnEventHandler, "ReturnEventHandler", &GameConnection::eventHandlerReturn ); + setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "TradeReturnEventHandler", &GameConnection::eventHandlerReturn ); - setZoneHandler( ClientZoneIpcType::TradeMultipleReturnEventHander, "EventHandlerReturn", &GameConnection::eventHandlerReturn ); + setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler2, "TradeReturnEventHandler2", &GameConnection::eventHandlerReturn ); setZoneHandler( ClientZoneIpcType::ShopEventHandler, "ShopEventHandler", &GameConnection::eventHandlerShop ); diff --git a/src/world/Network/PacketWrappers/PlayerSetupPacket.h b/src/world/Network/PacketWrappers/PlayerSetupPacket.h index 4cd52a8a..dc176dce 100644 --- a/src/world/Network/PacketWrappers/PlayerSetupPacket.h +++ b/src/world/Network/PacketWrappers/PlayerSetupPacket.h @@ -53,7 +53,7 @@ namespace Sapphire::Network::Packets::Server memcpy( m_data.aetheryte, player.getAetheryteArray(), sizeof( m_data.aetheryte ) ); // Set the class levels and exp. - for( uint8_t i = 0; i < 25; i++ ) + for( uint8_t i = 0; i < Common::CLASSJOB_SLOTS; i++ ) { m_data.levels[ i ] = player.getClassArray()[ i ]; m_data.exp[ i ] = player.getExpArray()[ i ]; From ca663de5ed03cf91abbd9872c036738816138bd0 Mon Sep 17 00:00:00 2001 From: collett Date: Tue, 27 Jul 2021 21:08:23 +0900 Subject: [PATCH 2/2] update to 5.58, part of the opcodes are from github.com/Taezen Co-authored-by: Taezen --- src/common/Common.h | 11 +- src/common/CommonGen.h | 1508 ++++++++++++++------------- src/common/Exd/ExdDataGenerated.cpp | 95 +- src/common/Exd/ExdDataGenerated.h | 120 ++- src/common/Network/PacketDef/Ipcs.h | 412 ++++---- 5 files changed, 1183 insertions(+), 963 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 4e154989..749ef112 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -6,6 +6,7 @@ #include "CommonGen.h" #include "Vector3.h" +#include "Network/PacketDef/Ipcs.h" // +--------------------------------------------------------------------------- // The following enumerations are structures to require their type be included. @@ -51,11 +52,11 @@ namespace Sapphire::Common enum InventoryOperation : uint16_t { - Discard = 0x01DE, - Move = 0x01DF, - Swap = 0x01E0, - Split = 0x01E1, - Merge = 0x01E3, + Discard = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 7, + Move = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 8, + Swap = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 9, + Split = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 10, + Merge = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 12 }; enum ClientLanguage : uint8_t diff --git a/src/common/CommonGen.h b/src/common/CommonGen.h index a0777232..98ad9d71 100644 --- a/src/common/CommonGen.h +++ b/src/common/CommonGen.h @@ -4,753 +4,801 @@ #include /* This file has been automatically generated. - Changes will be lost upon regeneration. - To change the content edit tools/exd_common_gen */ +Changes will be lost upon regeneration. +To change the content edit tools/exd_common_gen */ namespace Sapphire::Common { -/////////////////////////////////////////////////////////// -//ActionCategory.exd -enum class ActionCategory : uint8_t -{ - None = 0, - Autoattack = 1, - Spell = 2, - Weaponskill = 3, - Ability = 4, - Item = 5, - DoLAbility = 6, - DoHAbility = 7, - Event = 8, - LimitBreak = 9, - System = 10, - Artillery = 11, - Mount = 12, - Glamour = 13, - ItemManipulation = 14, - AdrenalineRush = 15, -}; + /////////////////////////////////////////////////////////// + //ActionCategory.exd + enum class ActionCategory : uint8_t + { + None = 0, + Autoattack = 1, + Spell = 2, + Weaponskill = 3, + Ability = 4, + Item = 5, + DoLAbility = 6, + DoHAbility = 7, + Event = 8, + LimitBreak = 9, + System = 10, + Artillery = 11, + Mount = 12, + Special = 13, + ItemManipulation = 14, + AdrenalineRush = 15, + //1 = 16, + }; -/////////////////////////////////////////////////////////// -//BaseParam.exd -enum class BaseParam : uint8_t -{ - None = 0, - Strength = 1, - Dexterity = 2, - Vitality = 3, - Intelligence = 4, - Mind = 5, - Piety = 6, - HP = 7, - MP = 8, - TP = 9, - GP = 10, - CP = 11, - PhysicalDamage = 12, - MagicDamage = 13, - Delay = 14, - AdditionalEffect = 15, - AttackSpeed = 16, - BlockRate = 17, - BlockStrength = 18, - Tenacity = 19, - AttackPower = 20, - Defense = 21, - DirectHitRate = 22, - Evasion = 23, - MagicDefense = 24, - CriticalHitPower = 25, - CriticalHitResilience = 26, - CriticalHit = 27, - CriticalHitEvasion = 28, - SlashingResistance = 29, - PiercingResistance = 30, - BluntResistance = 31, - ProjectileResistance = 32, - AttackMagicPotency = 33, - HealingMagicPotency = 34, - EnhancementMagicPotency = 35, - ElementalBonus = 36, - FireResistance = 37, - IceResistance = 38, - WindResistance = 39, - EarthResistance = 40, - LightningResistance = 41, - WaterResistance = 42, - MagicResistance = 43, - Determination = 44, - SkillSpeed = 45, - SpellSpeed = 46, - Haste = 47, - Morale = 48, - Enmity = 49, - EnmityReduction = 50, - CarefulDesynthesis = 51, - EXPBonus = 52, - Regen = 53, - Refresh = 54, - MainAttribute = 55, - SecondaryAttribute = 56, - SlowResistance = 57, - PetrificationResistance = 58, - ParalysisResistance = 59, - SilenceResistance = 60, - BlindResistance = 61, - PoisonResistance = 62, - StunResistance = 63, - SleepResistance = 64, - BindResistance = 65, - HeavyResistance = 66, - DoomResistance = 67, - ReducedDurabilityLoss = 68, - IncreasedSpiritbondGain = 69, - Craftsmanship = 70, - Control = 71, - Gathering = 72, - Perception = 73, -}; + /////////////////////////////////////////////////////////// + //BaseParam.exd + enum class BaseParam : uint8_t + { + None = 0, + Strength = 1, + Dexterity = 2, + Vitality = 3, + Intelligence = 4, + Mind = 5, + Piety = 6, + HP = 7, + MP = 8, + TP = 9, + GP = 10, + CP = 11, + PhysicalDamage = 12, + MagicDamage = 13, + Delay = 14, + AdditionalEffect = 15, + AttackSpeed = 16, + BlockRate = 17, + BlockStrength = 18, + Tenacity = 19, + AttackPower = 20, + Defense = 21, + DirectHitRate = 22, + Evasion = 23, + MagicDefense = 24, + CriticalHitPower = 25, + CriticalHitResilience = 26, + CriticalHit = 27, + CriticalHitEvasion = 28, + SlashingResistance = 29, + PiercingResistance = 30, + BluntResistance = 31, + ProjectileResistance = 32, + AttackMagicPotency = 33, + HealingMagicPotency = 34, + EnhancementMagicPotency = 35, + ElementalBonus = 36, + FireResistance = 37, + IceResistance = 38, + WindResistance = 39, + EarthResistance = 40, + LightningResistance = 41, + WaterResistance = 42, + MagicResistance = 43, + Determination = 44, + SkillSpeed = 45, + SpellSpeed = 46, + Haste = 47, + Morale = 48, + Enmity = 49, + EnmityReduction = 50, + DesynthesisSkillGain = 51, + EXPBonus = 52, + Regen = 53, + Refresh = 54, + MainAttribute = 55, + SecondaryAttribute = 56, + SlowResistance = 57, + PetrificationResistance = 58, + ParalysisResistance = 59, + SilenceResistance = 60, + BlindResistance = 61, + PoisonResistance = 62, + StunResistance = 63, + SleepResistance = 64, + BindResistance = 65, + HeavyResistance = 66, + DoomResistance = 67, + ReducedDurabilityLoss = 68, + IncreasedSpiritbondGain = 69, + Craftsmanship = 70, + Control = 71, + Gathering = 72, + Perception = 73, + }; -/////////////////////////////////////////////////////////// -//BeastReputationRank.exd -enum class BeastReputationRank : uint8_t -{ - None = 0, - Neutral = 1, - Recognized = 2, - Friendly = 3, - Trusted = 4, - Respected = 5, - Honored = 6, - Sworn = 7, - Allied = 8, -}; + /////////////////////////////////////////////////////////// + //BeastReputationRank.exd + enum class BeastReputationRank : uint8_t + { + None = 0, + Neutral = 1, + Recognized = 2, + Friendly = 3, + Trusted = 4, + Respected = 5, + Honored = 6, + Sworn = 7, + Allied = 8, + }; -/////////////////////////////////////////////////////////// -//BeastTribe.exd -enum class BeastTribe : uint8_t -{ -}; + /////////////////////////////////////////////////////////// + //BeastTribe.exd + enum class BeastTribe : uint8_t + { + /* = 0, + 1 = 1, + 2 = 2, + 3 = 3, + 4 = 4, + 5 = 5, + 6 = 6, + 7 = 7, + 8 = 8, + 9 = 9, + 10 = 10, + 11 = 11, + 12 = 12, + 13 = 13, + 14 = 14,*/ + }; -/////////////////////////////////////////////////////////// -//ClassJob.exd -enum class ClassJob : uint8_t -{ - Adventurer = 0, - Gladiator = 1, - Pugilist = 2, - Marauder = 3, - Lancer = 4, - Archer = 5, - Conjurer = 6, - Thaumaturge = 7, - Carpenter = 8, - Blacksmith = 9, - Armorer = 10, - Goldsmith = 11, - Leatherworker = 12, - Weaver = 13, - Alchemist = 14, - Culinarian = 15, - Miner = 16, - Botanist = 17, - Fisher = 18, - Paladin = 19, - Monk = 20, - Warrior = 21, - Dragoon = 22, - Bard = 23, - Whitemage = 24, - Blackmage = 25, - Arcanist = 26, - Summoner = 27, - Scholar = 28, - Rogue = 29, - Ninja = 30, - Machinist = 31, - Darkknight = 32, - Astrologian = 33, - Samurai = 34, - Redmage = 35, - Bluemage = 36, - Gunbreaker = 37, - Dancer = 38, -}; + /////////////////////////////////////////////////////////// + //ClassJob.exd + enum class ClassJob : uint8_t + { + Adventurer = 0, + Gladiator = 1, + Pugilist = 2, + Marauder = 3, + Lancer = 4, + Archer = 5, + Conjurer = 6, + Thaumaturge = 7, + Carpenter = 8, + Blacksmith = 9, + Armorer = 10, + Goldsmith = 11, + Leatherworker = 12, + Weaver = 13, + Alchemist = 14, + Culinarian = 15, + Miner = 16, + Botanist = 17, + Fisher = 18, + Paladin = 19, + Monk = 20, + Warrior = 21, + Dragoon = 22, + Bard = 23, + Whitemage = 24, + Blackmage = 25, + Arcanist = 26, + Summoner = 27, + Scholar = 28, + Rogue = 29, + Ninja = 30, + Machinist = 31, + Darkknight = 32, + Astrologian = 33, + Samurai = 34, + Redmage = 35, + Bluemage = 36, + Gunbreaker = 37, + Dancer = 38, + // = 39, + //1 = 40, + }; -/////////////////////////////////////////////////////////// -//ContentType.exd -enum class ContentType : uint8_t -{ - None = 0, - DutyRoulette = 1, - Dungeons = 2, - Guildhests = 3, - Trials = 4, - Raids = 5, - PvP = 6, - QuestBattles = 7, - FATEs = 8, - TreasureHunt = 9, - Levequests = 10, - GrandCompany = 11, - Companions = 12, - BeastTribeQuests = 13, - OverallCompletion = 14, - PlayerCommendation = 15, - DisciplesoftheLand = 16, - DisciplesoftheHand = 17, - RetainerVentures = 18, - GoldSaucer = 19, - DeepDungeons = 21, - WondrousTails = 24, - CustomDeliveries = 25, - Eureka = 26, - UltimateRaids = 28, -}; + /////////////////////////////////////////////////////////// + //ContentType.exd + enum class ContentType : uint8_t + { + None = 0, + DutyRoulette = 1, + Dungeons = 2, + Guildhests = 3, + Trials = 4, + Raids = 5, + PvP = 6, + QuestBattles = 7, + FATEs = 8, + TreasureHunt = 9, + Levequests = 10, + GrandCompany = 11, + Companions = 12, + BeastTribeQuests = 13, + OverallCompletion = 14, + PlayerCommendation = 15, + DisciplesoftheLand = 16, + DisciplesoftheHand = 17, + RetainerVentures = 18, + GoldSaucer = 19, + //1 = 20, + DeepDungeons = 21, + //2 = 22, + //3 = 23, + WondrousTails = 24, + CustomDeliveries = 25, + Eureka = 26, + //4 = 27, + UltimateRaids = 28, + //5 = 29, + }; -/////////////////////////////////////////////////////////// -//EmoteCategory.exd -enum class EmoteCategory : uint8_t -{ - None = 0, - General = 1, - Special = 2, - Expressions = 3, -}; + /////////////////////////////////////////////////////////// + //EmoteCategory.exd + enum class EmoteCategory : uint8_t + { + None = 0, + General = 1, + Special = 2, + Expressions = 3, + //1 = 4, + }; -/////////////////////////////////////////////////////////// -//ExVersion.exd -enum class ExVersion : uint8_t -{ - ARealmReborn = 0, - Heavensward = 1, - Stormblood = 2, - Shadowbringers = 3, -}; + /////////////////////////////////////////////////////////// + //ExVersion.exd + enum class ExVersion : uint8_t + { + ARealmReborn = 0, + Heavensward = 1, + Stormblood = 2, + Shadowbringers = 3, + }; -/////////////////////////////////////////////////////////// -//GrandCompany.exd -enum class GrandCompany : uint8_t -{ - None = 0, - Maelstrom = 1, - OrderoftheTwinAdder = 2, - ImmortalFlames = 3, -}; + /////////////////////////////////////////////////////////// + //GrandCompany.exd + enum class GrandCompany : uint8_t + { + None = 0, + Maelstrom = 1, + OrderoftheTwinAdder = 2, + ImmortalFlames = 3, + }; -/////////////////////////////////////////////////////////// -//GuardianDeity.exd -enum class GuardianDeity : uint8_t -{ - None = 0, - HalonetheFury = 1, - MenphinatheLover = 2, - ThaliaktheScholar = 3, - NymeiatheSpinner = 4, - LlymlaentheNavigator = 5, - OschontheWanderer = 6, - ByregottheBuilder = 7, - RhalgrtheDestroyer = 8, - AzeymatheWarden = 9, - NaldthaltheTraders = 10, - NophicatheMatron = 11, - AlthyktheKeeper = 12, -}; + /////////////////////////////////////////////////////////// + //GuardianDeity.exd + enum class GuardianDeity : uint8_t + { + None = 0, + HalonetheFury = 1, + MenphinatheLover = 2, + ThaliaktheScholar = 3, + NymeiatheSpinner = 4, + LlymlaentheNavigator = 5, + OschontheWanderer = 6, + ByregottheBuilder = 7, + RhalgrtheDestroyer = 8, + AzeymatheWarden = 9, + NaldthaltheTraders = 10, + NophicatheMatron = 11, + AlthyktheKeeper = 12, + }; -/////////////////////////////////////////////////////////// -//ItemUICategory.exd -enum class ItemUICategory : uint8_t -{ - None = 0, - PugilistsArm = 1, - GladiatorsArm = 2, - MaraudersArm = 3, - ArchersArm = 4, - LancersArm = 5, - OnehandedThaumaturgesArm = 6, - TwohandedThaumaturgesArm = 7, - OnehandedConjurersArm = 8, - TwohandedConjurersArm = 9, - ArcanistsGrimoire = 10, - Shield = 11, - CarpentersPrimaryTool = 12, - CarpentersSecondaryTool = 13, - BlacksmithsPrimaryTool = 14, - BlacksmithsSecondaryTool = 15, - ArmorersPrimaryTool = 16, - ArmorersSecondaryTool = 17, - GoldsmithsPrimaryTool = 18, - GoldsmithsSecondaryTool = 19, - LeatherworkersPrimaryTool = 20, - LeatherworkersSecondaryTool = 21, - WeaversPrimaryTool = 22, - WeaversSecondaryTool = 23, - AlchemistsPrimaryTool = 24, - AlchemistsSecondaryTool = 25, - CulinariansPrimaryTool = 26, - CulinariansSecondaryTool = 27, - MinersPrimaryTool = 28, - MinersSecondaryTool = 29, - BotanistsPrimaryTool = 30, - BotanistsSecondaryTool = 31, - FishersPrimaryTool = 32, - FishingTackle = 33, - Head = 34, - Body = 35, - Legs = 36, - Hands = 37, - Feet = 38, - Waist = 39, - Necklace = 40, - Earrings = 41, - Bracelets = 42, - Ring = 43, - Medicine = 44, - Ingredient = 45, - Meal = 46, - Seafood = 47, - Stone = 48, - Metal = 49, - Lumber = 50, - Cloth = 51, - Leather = 52, - Bone = 53, - Reagent = 54, - Dye = 55, - Part = 56, - Furnishing = 57, - Materia = 58, - Crystal = 59, - Catalyst = 60, - Miscellany = 61, - SoulCrystal = 62, - Other = 63, - ConstructionPermit = 64, - Roof = 65, - ExteriorWall = 66, - Window = 67, - Door = 68, - RoofDecoration = 69, - ExteriorWallDecoration = 70, - Placard = 71, - Fence = 72, - InteriorWall = 73, - Flooring = 74, - CeilingLight = 75, - OutdoorFurnishing = 76, - Table = 77, - Tabletop = 78, - Wallmounted = 79, - Rug = 80, - Minion = 81, - Gardening = 82, - Demimateria = 83, - RoguesArm = 84, - SeasonalMiscellany = 85, - TripleTriadCard = 86, - DarkKnightsArm = 87, - MachinistsArm = 88, - AstrologiansArm = 89, - AirshipHull = 90, - AirshipRigging = 91, - AirshipAftcastle = 92, - AirshipForecastle = 93, - OrchestrionRoll = 94, - Painting = 95, - SamuraisArm = 96, - RedMagesArm = 97, - ScholarsArm = 98, - FishersSecondaryTool = 99, - Currency = 100, - SubmersibleHull = 101, - SubmersibleStern = 102, - SubmersibleBow = 103, - SubmersibleBridge = 104, - BlueMagesArm = 105, - GunbreakersArm = 106, - DancersArm = 107, -}; + /////////////////////////////////////////////////////////// + //ItemUICategory.exd + enum class ItemUICategory : uint8_t + { + None = 0, + PugilistsArm = 1, + GladiatorsArm = 2, + MaraudersArm = 3, + ArchersArm = 4, + LancersArm = 5, + OnehandedThaumaturgesArm = 6, + TwohandedThaumaturgesArm = 7, + OnehandedConjurersArm = 8, + TwohandedConjurersArm = 9, + ArcanistsGrimoire = 10, + Shield = 11, + CarpentersPrimaryTool = 12, + CarpentersSecondaryTool = 13, + BlacksmithsPrimaryTool = 14, + BlacksmithsSecondaryTool = 15, + ArmorersPrimaryTool = 16, + ArmorersSecondaryTool = 17, + GoldsmithsPrimaryTool = 18, + GoldsmithsSecondaryTool = 19, + LeatherworkersPrimaryTool = 20, + LeatherworkersSecondaryTool = 21, + WeaversPrimaryTool = 22, + WeaversSecondaryTool = 23, + AlchemistsPrimaryTool = 24, + AlchemistsSecondaryTool = 25, + CulinariansPrimaryTool = 26, + CulinariansSecondaryTool = 27, + MinersPrimaryTool = 28, + MinersSecondaryTool = 29, + BotanistsPrimaryTool = 30, + BotanistsSecondaryTool = 31, + FishersPrimaryTool = 32, + FishingTackle = 33, + Head = 34, + Body = 35, + Legs = 36, + Hands = 37, + Feet = 38, + Waist = 39, + Necklace = 40, + Earrings = 41, + Bracelets = 42, + Ring = 43, + Medicine = 44, + Ingredient = 45, + Meal = 46, + Seafood = 47, + Stone = 48, + Metal = 49, + Lumber = 50, + Cloth = 51, + Leather = 52, + Bone = 53, + Reagent = 54, + Dye = 55, + Part = 56, + Furnishing = 57, + Materia = 58, + Crystal = 59, + Catalyst = 60, + Miscellany = 61, + SoulCrystal = 62, + Other = 63, + ConstructionPermit = 64, + Roof = 65, + ExteriorWall = 66, + Window = 67, + Door = 68, + RoofDecoration = 69, + ExteriorWallDecoration = 70, + Placard = 71, + Fence = 72, + InteriorWall = 73, + Flooring = 74, + CeilingLight = 75, + OutdoorFurnishing = 76, + Table = 77, + Tabletop = 78, + Wallmounted = 79, + Rug = 80, + Minion = 81, + Gardening = 82, + Demimateria = 83, + RoguesArm = 84, + SeasonalMiscellany = 85, + TripleTriadCard = 86, + DarkKnightsArm = 87, + MachinistsArm = 88, + AstrologiansArm = 89, + AirshipHull = 90, + AirshipRigging = 91, + AirshipAftcastle = 92, + AirshipForecastle = 93, + OrchestrionRoll = 94, + Painting = 95, + SamuraisArm = 96, + RedMagesArm = 97, + ScholarsArm = 98, + FishersSecondaryTool = 99, + Currency = 100, + SubmersibleHull = 101, + SubmersibleStern = 102, + SubmersibleBow = 103, + SubmersibleBridge = 104, + BlueMagesArm = 105, + GunbreakersArm = 106, + DancersArm = 107, + }; -/////////////////////////////////////////////////////////// -//ItemSearchCategory.exd -enum class ItemSearchCategory : uint8_t -{ - None = 0, - PrimaryArms = 1, - PrimaryTools = 2, - PrimaryTools1 = 3, - Armor = 4, - Accessories = 5, - Medicines = 6, - Materials = 7, - Other = 8, - PugilistsArms = 9, - GladiatorsArms = 10, - MaraudersArms = 11, - ArchersArms = 12, - LancersArms = 13, - ThaumaturgesArms = 14, - ConjurersArms = 15, - ArcanistsArms = 16, - Shields = 17, - DancersArms = 18, - CarpentersTools = 19, - BlacksmithsTools = 20, - ArmorersTools = 21, - GoldsmithsTools = 22, - LeatherworkersTools = 23, - WeaversTools = 24, - AlchemistsTools = 25, - CulinariansTools = 26, - MinersTools = 27, - BotanistsTools = 28, - FishersTools = 29, - FishingTackle = 30, - Head = 31, - Undershirts = 32, - Body = 33, - Undergarments = 34, - Legs = 35, - Hands = 36, - Feet = 37, - Waist = 38, - Necklaces = 39, - Earrings = 40, - Bracelets = 41, - Rings = 42, - Medicine = 43, - Ingredients = 44, - Meals = 45, - Seafood = 46, - Stone = 47, - Metal = 48, - Lumber = 49, - Cloth = 50, - Leather = 51, - Bone = 52, - Reagents = 53, - Dyes = 54, - WeaponParts = 55, - Furnishings = 56, - Materia = 57, - Crystals = 58, - Catalysts = 59, - Miscellany = 60, - SoulCrystals = 61, - Arrows = 62, - QuestItems = 63, - Other1 = 64, - ExteriorFixtures = 65, - InteriorFixtures = 66, - OutdoorFurnishings = 67, - ChairsandBeds = 68, - Tables = 69, - Tabletop = 70, - Wallmounted = 71, - Rugs = 72, - RoguesArms = 73, - SeasonalMiscellany = 74, - Minions = 75, - DarkKnightsArms = 76, - MachinistsArms = 77, - AstrologiansArms = 78, - AirshipSubmersibleComponents = 79, - OrchestrionComponents = 80, - GardeningItems = 81, - Paintings = 82, - SamuraisArms = 83, - RedMagesArms = 84, - ScholarsArms = 85, - GunbreakersArms = 86, - ThrowingWeapons = 87, -}; + /////////////////////////////////////////////////////////// + //ItemSearchCategory.exd + enum class ItemSearchCategory : uint8_t + { + None = 0, + PrimaryArms = 1, + PrimaryTools = 2, + PrimaryTools1 = 3, + Armor = 4, + Accessories = 5, + Medicines = 6, + Materials = 7, + Other = 8, + PugilistsArms = 9, + GladiatorsArms = 10, + MaraudersArms = 11, + ArchersArms = 12, + LancersArms = 13, + ThaumaturgesArms = 14, + ConjurersArms = 15, + ArcanistsArms = 16, + Shields = 17, + DancersArms = 18, + CarpentersTools = 19, + BlacksmithsTools = 20, + ArmorersTools = 21, + GoldsmithsTools = 22, + LeatherworkersTools = 23, + WeaversTools = 24, + AlchemistsTools = 25, + CulinariansTools = 26, + MinersTools = 27, + BotanistsTools = 28, + FishersTools = 29, + FishingTackle = 30, + Head = 31, + Undershirts = 32, + Body = 33, + Undergarments = 34, + Legs = 35, + Hands = 36, + Feet = 37, + Waist = 38, + Necklaces = 39, + Earrings = 40, + Bracelets = 41, + Rings = 42, + Medicine = 43, + Ingredients = 44, + Meals = 45, + Seafood = 46, + Stone = 47, + Metal = 48, + Lumber = 49, + Cloth = 50, + Leather = 51, + Bone = 52, + Reagents = 53, + Dyes = 54, + WeaponParts = 55, + Furnishings = 56, + Materia = 57, + Crystals = 58, + Catalysts = 59, + Miscellany = 60, + SoulCrystals = 61, + Arrows = 62, + QuestItems = 63, + Other1 = 64, + ExteriorFixtures = 65, + InteriorFixtures = 66, + OutdoorFurnishings = 67, + ChairsandBeds = 68, + Tables = 69, + Tabletop = 70, + Wallmounted = 71, + Rugs = 72, + RoguesArms = 73, + SeasonalMiscellany = 74, + Minions = 75, + DarkKnightsArms = 76, + MachinistsArms = 77, + AstrologiansArms = 78, + AirshipSubmersibleComponents = 79, + OrchestrionComponents = 80, + GardeningItems = 81, + Paintings = 82, + SamuraisArms = 83, + RedMagesArms = 84, + ScholarsArms = 85, + GunbreakersArms = 86, + DancersArms1 = 87, + /*1 = 88, + 2 = 89, + 3 = 90, + 4 = 91, + 5 = 92, + 6 = 93, + 7 = 94, + 8 = 95, + 9 = 96, + 10 = 97, + 11 = 98, + 12 = 99, + 13 = 100,*/ + }; -/////////////////////////////////////////////////////////// -//OnlineStatus.exd -enum class OnlineStatus : uint8_t -{ - Producer = 1, - GameMaster = 2, - GameMaster1 = 3, - GameMaster2 = 4, - Disconnected = 5, - WaitingforFriendListApproval = 6, - WaitingforLinkshellApproval = 7, - WaitingforFreeCompanyApproval = 8, - NotFound = 9, - Offline = 10, - Mentor = 11, - Busy = 12, - PvP = 13, - PlayingTripleTriad = 14, - ViewingCutscene = 15, - UsingaChocoboPorter = 16, - AwayfromKeyboard = 17, - CameraMode = 18, - LookingforRepairs = 19, - LookingtoRepair = 20, - LookingtoMeldMateria = 21, - Roleplaying = 22, - LookingforParty = 23, - SwordforHire = 24, - WaitingforDutyFinder = 25, - RecruitingPartyMembers = 26, - Mentor1 = 27, - PvEMentor = 28, - TradeMentor = 29, - PvPMentor = 30, - Returner = 31, - NewAdventurer = 32, - AllianceLeader = 33, - AlliancePartyLeader = 34, - AlliancePartyMember = 35, - PartyLeader = 36, - PartyMember = 37, - PartyLeaderCrossworld = 38, - PartyMemberCrossworld = 39, - AnotherWorld = 40, - SharingDuty = 41, - SimilarDuty = 42, - InDuty = 43, - TrialAdventurer = 44, - FreeCompany = 45, - GrandCompany = 46, - Online = 47, -}; + /////////////////////////////////////////////////////////// + //OnlineStatus.exd + enum class OnlineStatus : uint8_t + { + Producer = 1, + GameMaster = 2, + GameMaster1 = 3, + GameMaster2 = 4, + Disconnected = 5, + WaitingforFriendListApproval = 6, + WaitingforLinkshellApproval = 7, + WaitingforFreeCompanyApproval = 8, + NotFound = 9, + Offline = 10, + Mentor = 11, + Busy = 12, + PvP = 13, + PlayingTripleTriad = 14, + ViewingCutscene = 15, + UsingaChocoboPorter = 16, + AwayfromKeyboard = 17, + CameraMode = 18, + LookingforRepairs = 19, + LookingtoRepair = 20, + LookingtoMeldMateria = 21, + Roleplaying = 22, + LookingforParty = 23, + SwordforHire = 24, + WaitingforDutyFinder = 25, + RecruitingPartyMembers = 26, + Mentor1 = 27, + PvEMentor = 28, + TradeMentor = 29, + PvPMentor = 30, + Returner = 31, + NewAdventurer = 32, + AllianceLeader = 33, + AlliancePartyLeader = 34, + AlliancePartyMember = 35, + PartyLeader = 36, + PartyMember = 37, + PartyLeaderCrossworld = 38, + PartyMemberCrossworld = 39, + AnotherWorld = 40, + SharingDuty = 41, + SimilarDuty = 42, + InDuty = 43, + TrialAdventurer = 44, + FreeCompany = 45, + GrandCompany = 46, + Online = 47, + }; -/////////////////////////////////////////////////////////// -//Race.exd -enum class Race : uint8_t -{ - None = 0, - Hyur = 1, - Elezen = 2, - Lalafell = 3, - Miqote = 4, - Roegadyn = 5, - AuRa = 6, - Hrothgar = 7, - Viera = 8, -}; + /////////////////////////////////////////////////////////// + //Race.exd + enum class Race : uint8_t + { + None = 0, + Hyur = 1, + Elezen = 2, + Lalafell = 3, + Miqote = 4, + Roegadyn = 5, + AuRa = 6, + Hrothgar = 7, + Viera = 8, + }; -/////////////////////////////////////////////////////////// -//Tribe.exd -enum class Tribe : uint8_t -{ - None = 0, - Midlander = 1, - Highlander = 2, - Wildwood = 3, - Duskwight = 4, - Plainsfolk = 5, - Dunesfolk = 6, - SeekeroftheSun = 7, - KeeperoftheMoon = 8, - SeaWolf = 9, - Hellsguard = 10, - Raen = 11, - Xaela = 12, - Helions = 13, - TheLost = 14, - Rava = 15, - Veena = 16, -}; + /////////////////////////////////////////////////////////// + //Tribe.exd + enum class Tribe : uint8_t + { + None = 0, + Midlander = 1, + Highlander = 2, + Wildwood = 3, + Duskwight = 4, + Plainsfolk = 5, + Dunesfolk = 6, + SeekeroftheSun = 7, + KeeperoftheMoon = 8, + SeaWolf = 9, + Hellsguard = 10, + Raen = 11, + Xaela = 12, + Helions = 13, + TheLost = 14, + Rava = 15, + Veena = 16, + }; -/////////////////////////////////////////////////////////// -//Town.exd -enum class Town : uint8_t -{ - Nowheresville = 0, - LimsaLominsa = 1, - Gridania = 2, - Uldah = 3, - Ishgard = 4, - Kugane = 7, - TheCrystarium = 10, -}; + /////////////////////////////////////////////////////////// + //Town.exd + enum class Town : uint8_t + { + Nowheresville = 0, + LimsaLominsa = 1, + Gridania = 2, + Uldah = 3, + Ishgard = 4, + // = 5, + //1 = 6, + Kugane = 7, + //2 = 8, + //3 = 9, + Crystarium = 10, + //4 = 11, + }; -/////////////////////////////////////////////////////////// -//Weather.exd -enum class Weather : uint8_t -{ - None = 0, - ClearSkies = 1, - FairSkies = 2, - Clouds = 3, - Fog = 4, - Wind = 5, - Gales = 6, - Rain = 7, - Showers = 8, - Thunder = 9, - Thunderstorms = 10, - DustStorms = 11, - Sandstorms = 12, - HotSpells = 13, - HeatWaves = 14, - Snow = 15, - Blizzards = 16, - Gloom = 17, - Auroras = 18, - Darkness = 19, - Tension = 20, - Clouds1 = 21, - StormClouds = 22, - RoughSeas = 23, - RoughSeas1 = 24, - Louring = 25, - HeatWaves1 = 26, - Gloom1 = 27, - Gales1 = 28, - Eruptions = 29, - FairSkies1 = 30, - FairSkies2 = 31, - FairSkies3 = 32, - FairSkies4 = 33, - FairSkies5 = 34, - Irradiance = 35, - CoreRadiation = 36, - CoreRadiation1 = 37, - CoreRadiation2 = 38, - CoreRadiation3 = 39, - ShelfClouds = 40, - ShelfClouds1 = 41, - ShelfClouds2 = 42, - ShelfClouds3 = 43, - Oppression = 44, - Oppression1 = 45, - Oppression2 = 46, - Oppression3 = 47, - Oppression4 = 48, - UmbralWind = 49, - UmbralStatic = 50, - Smoke = 51, - FairSkies6 = 52, - RoyalLevin = 53, - Hyperelectricity = 54, - RoyalLevin1 = 55, - Oppression5 = 56, - Thunder1 = 57, - Thunder2 = 58, - CutScene = 59, - Multiplicity = 60, - Multiplicity1 = 61, - Rain1 = 62, - FairSkies7 = 63, - Rain2 = 64, - FairSkies8 = 65, - Dragonstorms = 66, - Dragonstorms1 = 67, - Subterrain = 68, - Concordance = 69, - Concordance1 = 70, - BeyondTime = 71, - BeyondTime1 = 72, - BeyondTime2 = 73, - DemonicInfinity = 74, - DemonicInfinity1 = 75, - DemonicInfinity2 = 76, - DimensionalDisruption = 77, - DimensionalDisruption1 = 78, - DimensionalDisruption2 = 79, - Revelstorms = 80, - Revelstorms1 = 81, - EternalBliss = 82, - EternalBliss1 = 83, - Wyrmstorms = 84, - Wyrmstorms1 = 85, - Revelstorms2 = 86, - Quicklevin = 87, - Thunder3 = 88, - DimensionalDisruption3 = 89, - FairSkies9 = 90, - ClearSkies1 = 91, - WhiteCyclones = 92, - WhiteCyclones1 = 93, - WhiteCyclones2 = 94, - Ultimania = 95, - WhiteCyclones3 = 96, - Moonlight = 97, - Moonlight1 = 98, - Moonlight2 = 99, - Moonlight3 = 100, - RedMoon = 101, - Scarlet = 102, - Scarlet1 = 103, - Scarlet2 = 104, - FairSkies10 = 105, - FairSkies11 = 106, - FairSkies12 = 107, - FairSkies13 = 108, - Flames = 109, - Tsunamis = 110, - Cyclones = 111, - Geostorms = 112, - TrueBlue = 113, - TrueBlue1 = 114, - TrueBlue2 = 115, - UmbralTurbulence = 116, - TrueBlue3 = 117, - EverlastingLight = 118, - Gales2 = 119, - Termination = 120, - Termination1 = 121, - Dreams = 122, - Dreams1 = 123, - Dreams2 = 124, - Brilliance = 125, - Brilliance1 = 126, - Termination2 = 127, - Termination3 = 128, - EverlastingLight1 = 129, - Eruptions1 = 130, - Termination4 = 131, - FairSkies14 = 132, - UmbralFlare = 133, - UmbralDuststorm = 134, - UmbralLevin = 135, - UmbralTempest = 136, - Starshower = 137, - Delirium = 138, - Clouds2 = 139, - Clouds3 = 140, - Irradiance1 = 141, - Irradiance2 = 142, - StormClouds1 = 143, - Firestorm = 144, - SpectralCurrent = 145, - Climactic = 147, -}; - -/////////////////////////////////////////////////////////// -//HousingAppeal.exd -enum class HousingAppeal : uint8_t -{ - None = 0, - Emporium = 1, - Boutique = 2, - DesignerHome = 3, - MessageBook = 4, - Tavern = 5, - Eatery = 6, - ImmersiveExperience = 7, - Cafe = 8, - Aquarium = 9, - Sanctum = 10, - Venue = 11, - Florist = 12, - Library = 14, - PhotoStudio = 15, - HauntedHouse = 16, - Atelier = 17, - Bathhouse = 18, - Garden = 19, - FarEastern = 20, - VisitorsWelcome = 21, - Bakery = 22, - UnderRenovation = 23, - ConcertHall = 24, -}; + /////////////////////////////////////////////////////////// + //Weather.exd + enum class Weather : uint8_t + { + None = 0, + ClearSkies = 1, + FairSkies = 2, + Clouds = 3, + Fog = 4, + Wind = 5, + Gales = 6, + Rain = 7, + Showers = 8, + Thunder = 9, + Thunderstorms = 10, + DustStorms = 11, + Sandstorms = 12, + HotSpells = 13, + HeatWaves = 14, + Snow = 15, + Blizzards = 16, + Gloom = 17, + Auroras = 18, + Darkness = 19, + Tension = 20, + Clouds1 = 21, + StormClouds = 22, + RoughSeas = 23, + RoughSeas1 = 24, + Louring = 25, + HeatWaves1 = 26, + Gloom1 = 27, + Gales1 = 28, + Eruptions = 29, + FairSkies1 = 30, + FairSkies2 = 31, + FairSkies3 = 32, + FairSkies4 = 33, + FairSkies5 = 34, + Irradiance = 35, + CoreRadiation = 36, + CoreRadiation1 = 37, + CoreRadiation2 = 38, + CoreRadiation3 = 39, + ShelfClouds = 40, + ShelfClouds1 = 41, + ShelfClouds2 = 42, + ShelfClouds3 = 43, + Oppression = 44, + Oppression1 = 45, + Oppression2 = 46, + Oppression3 = 47, + Oppression4 = 48, + UmbralWind = 49, + UmbralStatic = 50, + Smoke = 51, + FairSkies6 = 52, + RoyalLevin = 53, + Hyperelectricity = 54, + RoyalLevin1 = 55, + Oppression5 = 56, + Thunder1 = 57, + Thunder2 = 58, + CutScene = 59, + Multiplicity = 60, + Multiplicity1 = 61, + Rain1 = 62, + FairSkies7 = 63, + Rain2 = 64, + FairSkies8 = 65, + Dragonstorms = 66, + Dragonstorms1 = 67, + Subterrain = 68, + Concordance = 69, + Concordance1 = 70, + BeyondTime = 71, + BeyondTime1 = 72, + BeyondTime2 = 73, + DemonicInfinity = 74, + DemonicInfinity1 = 75, + DemonicInfinity2 = 76, + DimensionalDisruption = 77, + DimensionalDisruption1 = 78, + DimensionalDisruption2 = 79, + Revelstorms = 80, + Revelstorms1 = 81, + EternalBliss = 82, + EternalBliss1 = 83, + Wyrmstorms = 84, + Wyrmstorms1 = 85, + Revelstorms2 = 86, + Quicklevin = 87, + Thunder3 = 88, + DimensionalDisruption3 = 89, + FairSkies9 = 90, + ClearSkies1 = 91, + WhiteCyclones = 92, + WhiteCyclones1 = 93, + WhiteCyclones2 = 94, + Ultimania = 95, + WhiteCyclones3 = 96, + Moonlight = 97, + Moonlight1 = 98, + Moonlight2 = 99, + Moonlight3 = 100, + RedMoon = 101, + Scarlet = 102, + Scarlet1 = 103, + Scarlet2 = 104, + FairSkies10 = 105, + FairSkies11 = 106, + FairSkies12 = 107, + FairSkies13 = 108, + Flames = 109, + Tsunamis = 110, + Cyclones = 111, + Geostorms = 112, + TrueBlue = 113, + TrueBlue1 = 114, + TrueBlue2 = 115, + UmbralTurbulence = 116, + TrueBlue3 = 117, + EverlastingLight = 118, + Gales2 = 119, + Termination = 120, + Termination1 = 121, + Dreams = 122, + Dreams1 = 123, + Dreams2 = 124, + Brilliance = 125, + Brilliance1 = 126, + Termination2 = 127, + Termination3 = 128, + EverlastingLight1 = 129, + Eruptions1 = 130, + Termination4 = 131, + FairSkies14 = 132, + UmbralFlare = 133, + UmbralDuststorm = 134, + UmbralLevin = 135, + UmbralTempest = 136, + Starshower = 137, + Delirium = 138, + Clouds2 = 139, + Clouds3 = 140, + Irradiance1 = 141, + Irradiance2 = 142, + StormClouds1 = 143, + Firestorm = 144, + SpectralCurrent = 145, + //1 = 146, + Climactic = 147, + //2 = 148, + //3 = 149, + //4 = 150, + //5 = 151, + //6 = 152, + //7 = 153, + }; + /////////////////////////////////////////////////////////// + //HousingAppeal.exd + enum class HousingAppeal : uint8_t + { + None = 0, + Emporium = 1, + Boutique = 2, + DesignerHome = 3, + MessageBook = 4, + Tavern = 5, + Eatery = 6, + ImmersiveExperience = 7, + Cafe = 8, + Aquarium = 9, + Sanctum = 10, + Venue = 11, + Florist = 12, + // = 13, + Library = 14, + PhotoStudio = 15, + HauntedHouse = 16, + Atelier = 17, + Bathhouse = 18, + Garden = 19, + FarEastern = 20, + VisitorsWelcome = 21, + Bakery = 22, + UnderRenovation = 23, + ConcertHall = 24, + }; } -#endif - +#endif \ No newline at end of file diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index 4f04717e..130023d6 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -23,7 +23,7 @@ Sapphire::Data::Achievement::Achievement( uint32_t row_id, Sapphire::Data::ExdDa data.push_back( exdData->getField< int32_t >( row, 21 ) ); data.push_back( exdData->getField< int32_t >( row, 22 ) ); order = exdData->getField< uint16_t >( row, 23 ); - achievementHideCondition = exdData->getField< uint8_t >( row, 24 ); + achievementHideCondition = exdData->getField< uint8_t >( row, 25 ); } Sapphire::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2120,17 +2120,18 @@ Sapphire::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, sortKey = exdData->getField< uint16_t >( row, 42 ); image = exdData->getField< uint32_t >( row, 43 ); icon = exdData->getField< uint32_t >( row, 44 ); - levelingRoulette = exdData->getField< bool >( row, 46 ); - level506070Roulette = exdData->getField< bool >( row, 48 ); - mSQRoulette = exdData->getField< bool >( row, 49 ); - guildHestRoulette = exdData->getField< bool >( row, 50 ); - expertRoulette = exdData->getField< bool >( row, 51 ); - trialRoulette = exdData->getField< bool >( row, 52 ); - dailyFrontlineChallenge = exdData->getField< bool >( row, 53 ); - level80Roulette = exdData->getField< bool >( row, 54 ); - mentorRoulette = exdData->getField< bool >( row, 55 ); - allianceRoulette = exdData->getField< bool >( row, 61 ); - normalRaidRoulette = exdData->getField< bool >( row, 63 ); + level506070Roulette = exdData->getField< bool >( row, 46 ); + levelingRoulette = exdData->getField< bool >( row, 47 ); + mSQRoulette = exdData->getField< bool >( row, 48 ); + guildHestRoulette = exdData->getField< bool >( row, 49 ); + expertRoulette = exdData->getField< bool >( row, 50 ); + trialRoulette = exdData->getField< bool >( row, 51 ); + dailyFrontlineChallenge = exdData->getField< bool >( row, 52 ); + level80Roulette = exdData->getField< bool >( row, 53 ); + mentorRoulette = exdData->getField< bool >( row, 54 ); + allianceRoulette = exdData->getField< bool >( row, 60 ); + feastTeamRoulette = exdData->getField< bool >( row, 61 ); + normalRaidRoulette = exdData->getField< bool >( row, 62 ); } Sapphire::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2158,10 +2159,10 @@ Sapphire::Data::ContentGaugeColor::ContentGaugeColor( uint32_t row_id, Sapphire: Sapphire::Data::ContentMemberType::ContentMemberType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentMemberTypeDat.get_row( row_id ); - tanksPerParty = exdData->getField< uint8_t >( row, 9 ); - healersPerParty = exdData->getField< uint8_t >( row, 10 ); - meleesPerParty = exdData->getField< uint8_t >( row, 11 ); - rangedPerParty = exdData->getField< uint8_t >( row, 12 ); + tanksPerParty = exdData->getField< uint8_t >( row, 10 ); + healersPerParty = exdData->getField< uint8_t >( row, 11 ); + meleesPerParty = exdData->getField< uint8_t >( row, 12 ); + rangedPerParty = exdData->getField< uint8_t >( row, 13 ); } Sapphire::Data::ContentNpcTalk::ContentNpcTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2846,7 +2847,7 @@ Sapphire::Data::DynamicEventEnemyType::DynamicEventEnemyType( uint32_t row_id, S Sapphire::Data::DynamicEventSingleBattle::DynamicEventSingleBattle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DynamicEventSingleBattleDat.get_row( row_id ); - actionIcon = exdData->getField< int32_t >( row, 0 ); + bNpcName = exdData->getField< int32_t >( row, 0 ); icon = exdData->getField< uint32_t >( row, 1 ); text = exdData->getField< std::string >( row, 2 ); } @@ -3575,7 +3576,9 @@ Sapphire::Data::FieldMarker::FieldMarker( uint32_t row_id, Sapphire::Data::ExdDa { auto row = exdData->m_FieldMarkerDat.get_row( row_id ); vFX = exdData->getField< int32_t >( row, 0 ); - icon = exdData->getField< uint16_t >( row, 1 ); + uiIcon = exdData->getField< uint16_t >( row, 1 ); + mapIcon = exdData->getField< uint16_t >( row, 2 ); + name = exdData->getField< std::string >( row, 3 ); } Sapphire::Data::FishingRecordType::FishingRecordType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -6219,6 +6222,7 @@ Sapphire::Data::Item::Item( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e materiaSlotCount = exdData->getField< uint8_t >( row, 86 ); isAdvancedMeldingPermitted = exdData->getField< bool >( row, 87 ); isPvP = exdData->getField< bool >( row, 88 ); + subStatCategory = exdData->getField< uint8_t >( row, 89 ); isGlamourous = exdData->getField< bool >( row, 90 ); for( int i = 0; i < 6; ++i ) { @@ -6464,7 +6468,7 @@ Sapphire::Data::Leve::Leve( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e description = exdData->getField< std::string >( row, 1 ); leveClient = exdData->getField< int32_t >( row, 2 ); leveAssignmentType = exdData->getField< uint8_t >( row, 3 ); - town = exdData->getField< int32_t >( row, 4 ); + town = exdData->getField< int32_t >( row, 5 ); classJobLevel = exdData->getField< uint16_t >( row, 6 ); timeLimit = exdData->getField< uint8_t >( row, 7 ); allowanceCost = exdData->getField< uint8_t >( row, 8 ); @@ -8993,6 +8997,13 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* sortKey = exdData->getField< uint16_t >( row, 1514 ); } +Sapphire::Data::QuestAcceptAdditionCondition::QuestAcceptAdditionCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_QuestAcceptAdditionConditionDat.get_row( row_id ); + requirement0 = exdData->getField< uint32_t >( row, 0 ); + requirement1 = exdData->getField< uint32_t >( row, 1 ); +} + Sapphire::Data::QuestBattle::QuestBattle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_QuestBattleDat.get_row( row_id ); @@ -9437,6 +9448,8 @@ Sapphire::Data::QuestClassJobSupply::QuestClassJobSupply( uint32_t row_id, uint3 classJobCategory = exdData->getField< uint8_t >( row, 0 ); eNpcResident = exdData->getField< uint32_t >( row, 2 ); item = exdData->getField< uint32_t >( row, 3 ); + amountRequired = exdData->getField< uint8_t >( row, 4 ); + itemHQ = exdData->getField< bool >( row, 5 ); } Sapphire::Data::QuestDerivedClass::QuestDerivedClass( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -9445,6 +9458,17 @@ Sapphire::Data::QuestDerivedClass::QuestDerivedClass( uint32_t row_id, Sapphire: classJob = exdData->getField< uint8_t >( row, 0 ); } +Sapphire::Data::QuestEffect::QuestEffect( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_QuestEffectDat.get_row( row_id ); +} + +Sapphire::Data::QuestEffectDefine::QuestEffectDefine( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_QuestEffectDefineDat.get_row( row_id, subRow ); + effect = exdData->getField< uint16_t >( row, 0 ); +} + Sapphire::Data::QuestRedo::QuestRedo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_QuestRedoDat.get_row( row_id ); @@ -9588,6 +9612,9 @@ Sapphire::Data::RacingChocoboNameInfo::RacingChocoboNameInfo( uint32_t row_id, S { auto row = exdData->m_RacingChocoboNameInfoDat.get_row( row_id ); racingChocoboNameCategory = exdData->getField< uint8_t >( row, 0 ); + name.push_back( exdData->getField< uint16_t >( row, 5 ) ); + name.push_back( exdData->getField< uint16_t >( row, 6 ) ); + name.push_back( exdData->getField< uint16_t >( row, 7 ) ); } Sapphire::Data::RacingChocoboParam::RacingChocoboParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -9672,6 +9699,7 @@ Sapphire::Data::RecipeLookup::RecipeLookup( uint32_t row_id, Sapphire::Data::Exd Sapphire::Data::RecipeNotebookList::RecipeNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RecipeNotebookListDat.get_row( row_id ); + count = exdData->getField< uint8_t >( row, 0 ); recipe.push_back( exdData->getField< int32_t >( row, 1 ) ); recipe.push_back( exdData->getField< int32_t >( row, 2 ) ); recipe.push_back( exdData->getField< int32_t >( row, 3 ) ); @@ -10018,6 +10046,13 @@ Sapphire::Data::RideShooting::RideShooting( uint32_t row_id, Sapphire::Data::Exd eNpcScale.push_back( exdData->getField< uint8_t >( row, 37 ) ); } +Sapphire::Data::RideShootingTargetType::RideShootingTargetType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_RideShootingTargetTypeDat.get_row( row_id ); + eObj = exdData->getField< uint32_t >( row, 0 ); + score = exdData->getField< int16_t >( row, 1 ); +} + Sapphire::Data::RideShootingTextData::RideShootingTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RideShootingTextDataDat.get_row( row_id ); @@ -10410,6 +10445,7 @@ Sapphire::Data::Stain::Stain( uint32_t row_id, Sapphire::Data::ExdDataGenerated* auto row = exdData->m_StainDat.get_row( row_id ); color = exdData->getField< uint32_t >( row, 0 ); shade = exdData->getField< uint8_t >( row, 1 ); + subOrder = exdData->getField< uint8_t >( row, 2 ); name = exdData->getField< std::string >( row, 3 ); } @@ -10420,6 +10456,13 @@ Sapphire::Data::StainTransient::StainTransient( uint32_t row_id, Sapphire::Data: item2 = exdData->getField< uint32_t >( row, 1 ); } +Sapphire::Data::StanceChange::StanceChange( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_StanceChangeDat.get_row( row_id ); + action.push_back( exdData->getField< uint16_t >( row, 1 ) ); + action.push_back( exdData->getField< uint16_t >( row, 2 ) ); +} + Sapphire::Data::Status::Status( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_StatusDat.get_row( row_id ); @@ -12399,6 +12442,7 @@ Sapphire::Data::TerritoryType::TerritoryType( uint32_t row_id, Sapphire::Data::E loadingImage = exdData->getField< uint8_t >( row, 7 ); exclusiveType = exdData->getField< uint8_t >( row, 8 ); territoryIntendedUse = exdData->getField< uint8_t >( row, 9 ); + contentFinderCondition = exdData->getField< uint16_t >( row, 10 ); weatherRate = exdData->getField< uint8_t >( row, 12 ); pCSearch = exdData->getField< bool >( row, 15 ); stealth = exdData->getField< bool >( row, 16 ); @@ -12431,6 +12475,13 @@ Sapphire::Data::TextCommand::TextCommand( uint32_t row_id, Sapphire::Data::ExdDa description = exdData->getField< std::string >( row, 7 ); alias = exdData->getField< std::string >( row, 8 ); shortAlias = exdData->getField< std::string >( row, 9 ); + param = exdData->getField< uint16_t >( row, 10 ); +} + +Sapphire::Data::TextCommandParam::TextCommandParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_TextCommandParamDat.get_row( row_id ); + param = exdData->getField< std::string >( row, 0 ); } Sapphire::Data::Title::Title( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -13509,11 +13560,14 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_PvPSelectTraitDat = setupDatAccess( "PvPSelectTrait", xiv::exd::Language::en ); m_PvPTraitDat = setupDatAccess( "PvPTrait", xiv::exd::Language::none ); m_QuestDat = setupDatAccess( "Quest", xiv::exd::Language::en ); + m_QuestAcceptAdditionConditionDat = setupDatAccess( "QuestAcceptAdditionCondition", xiv::exd::Language::none ); m_QuestBattleDat = setupDatAccess( "QuestBattle", xiv::exd::Language::none ); m_QuestChapterDat = setupDatAccess( "QuestChapter", xiv::exd::Language::none ); m_QuestClassJobRewardDat = setupDatAccess( "QuestClassJobReward", xiv::exd::Language::none ); m_QuestClassJobSupplyDat = setupDatAccess( "QuestClassJobSupply", xiv::exd::Language::none ); m_QuestDerivedClassDat = setupDatAccess( "QuestDerivedClass", xiv::exd::Language::none ); + m_QuestEffectDat = setupDatAccess( "QuestEffect", xiv::exd::Language::none ); + m_QuestEffectDefineDat = setupDatAccess( "QuestEffectDefine", xiv::exd::Language::none ); m_QuestRedoDat = setupDatAccess( "QuestRedo", xiv::exd::Language::none ); m_QuestRedoChapterUIDat = setupDatAccess( "QuestRedoChapterUI", xiv::exd::Language::en ); m_QuestRedoChapterUICategoryDat = setupDatAccess( "QuestRedoChapterUICategory", xiv::exd::Language::en ); @@ -13549,6 +13603,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_RetainerTaskParameterDat = setupDatAccess( "RetainerTaskParameter", xiv::exd::Language::none ); m_RetainerTaskRandomDat = setupDatAccess( "RetainerTaskRandom", xiv::exd::Language::en ); m_RideShootingDat = setupDatAccess( "RideShooting", xiv::exd::Language::none ); + m_RideShootingTargetTypeDat = setupDatAccess( "RideShootingTargetType", xiv::exd::Language::none ); m_RideShootingTextDataDat = setupDatAccess( "RideShootingTextData", xiv::exd::Language::en ); m_RPParameterDat = setupDatAccess( "RPParameter", xiv::exd::Language::none ); m_SatisfactionArbitrationDat = setupDatAccess( "SatisfactionArbitration", xiv::exd::Language::none ); @@ -13574,6 +13629,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_SpecialShopItemCategoryDat = setupDatAccess( "SpecialShopItemCategory", xiv::exd::Language::en ); m_StainDat = setupDatAccess( "Stain", xiv::exd::Language::en ); m_StainTransientDat = setupDatAccess( "StainTransient", xiv::exd::Language::none ); + m_StanceChangeDat = setupDatAccess( "StanceChange", xiv::exd::Language::none ); m_StatusDat = setupDatAccess( "Status", xiv::exd::Language::en ); m_StatusHitEffectDat = setupDatAccess( "StatusHitEffect", xiv::exd::Language::none ); m_StatusLoopVFXDat = setupDatAccess( "StatusLoopVFX", xiv::exd::Language::none ); @@ -13587,6 +13643,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_TerritoryTypeDat = setupDatAccess( "TerritoryType", xiv::exd::Language::none ); m_TerritoryTypeTransientDat = setupDatAccess( "TerritoryTypeTransient", xiv::exd::Language::none ); m_TextCommandDat = setupDatAccess( "TextCommand", xiv::exd::Language::en ); + m_TextCommandParamDat = setupDatAccess( "TextCommandParam", xiv::exd::Language::en ); m_TitleDat = setupDatAccess( "Title", xiv::exd::Language::en ); m_TomestonesDat = setupDatAccess( "Tomestones", xiv::exd::Language::none ); m_TomestonesItemDat = setupDatAccess( "TomestonesItem", xiv::exd::Language::none ); diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index f4b3e7fa..b670239f 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -527,11 +527,14 @@ struct PvPRank; struct PvPSelectTrait; struct PvPTrait; struct Quest; +struct QuestAcceptAdditionCondition; struct QuestBattle; struct QuestChapter; struct QuestClassJobReward; struct QuestClassJobSupply; struct QuestDerivedClass; +struct QuestEffect; +struct QuestEffectDefine; struct QuestRedo; struct QuestRedoChapterUI; struct QuestRedoChapterUICategory; @@ -567,6 +570,7 @@ struct RetainerTaskNormal; struct RetainerTaskParameter; struct RetainerTaskRandom; struct RideShooting; +struct RideShootingTargetType; struct RideShootingTextData; struct RPParameter; struct SatisfactionArbitration; @@ -592,6 +596,7 @@ struct SpecialShop; struct SpecialShopItemCategory; struct Stain; struct StainTransient; +struct StanceChange; struct Status; struct StatusHitEffect; struct StatusLoopVFX; @@ -605,6 +610,7 @@ struct SwitchTalkVariation; struct TerritoryType; struct TerritoryTypeTransient; struct TextCommand; +struct TextCommandParam; struct Title; struct Tomestones; struct TomestonesItem; @@ -2393,8 +2399,8 @@ struct ContentFinderCondition uint16_t sortKey; uint32_t image; uint32_t icon; - bool levelingRoulette; bool level506070Roulette; + bool levelingRoulette; bool mSQRoulette; bool guildHestRoulette; bool expertRoulette; @@ -2403,6 +2409,7 @@ struct ContentFinderCondition bool level80Roulette; bool mentorRoulette; bool allianceRoulette; + bool feastTeamRoulette; bool normalRaidRoulette; ContentFinderCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -3049,7 +3056,7 @@ struct DynamicEventEnemyType struct DynamicEventSingleBattle { - int32_t actionIcon; + int32_t bNpcName; uint32_t icon; std::string text; @@ -3662,7 +3669,9 @@ struct Festival struct FieldMarker { int32_t vFX; - uint16_t icon; + uint16_t uiIcon; + uint16_t mapIcon; + std::string name; FieldMarker( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4955,6 +4964,7 @@ struct Item uint8_t materiaSlotCount; bool isAdvancedMeldingPermitted; bool isPvP; + uint8_t subStatCategory; bool isGlamourous; struct @@ -6407,6 +6417,14 @@ struct Quest Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct QuestAcceptAdditionCondition +{ + uint32_t requirement0; + uint32_t requirement1; + + QuestAcceptAdditionCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct QuestBattle { int32_t quest; @@ -6443,6 +6461,8 @@ struct QuestClassJobSupply uint8_t classJobCategory; uint32_t eNpcResident; uint32_t item; + uint8_t amountRequired; + bool itemHQ; QuestClassJobSupply( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6454,6 +6474,19 @@ struct QuestDerivedClass QuestDerivedClass( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct QuestEffect +{ + + QuestEffect( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + +struct QuestEffectDefine +{ + uint16_t effect; + + QuestEffectDefine( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct QuestRedo { uint32_t finalQuest; @@ -6577,6 +6610,7 @@ struct RacingChocoboNameCategory struct RacingChocoboNameInfo { uint8_t racingChocoboNameCategory; + std::vector< uint16_t > name; RacingChocoboNameInfo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6667,6 +6701,7 @@ struct RecipeLookup struct RecipeNotebookList { + uint8_t count; std::vector< int32_t > recipe; RecipeNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -6840,6 +6875,14 @@ struct RideShooting RideShooting( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct RideShootingTargetType +{ + uint32_t eObj; + int16_t score; + + RideShootingTargetType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct RideShootingTextData { std::string string; @@ -7067,6 +7110,7 @@ struct Stain { uint32_t color; uint8_t shade; + uint8_t subOrder; std::string name; Stain( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -7080,6 +7124,13 @@ struct StainTransient StainTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct StanceChange +{ + std::vector< uint16_t > action; + + StanceChange( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct Status { std::string name; @@ -7227,6 +7278,7 @@ struct TerritoryType uint8_t loadingImage; uint8_t exclusiveType; uint8_t territoryIntendedUse; + uint16_t contentFinderCondition; uint8_t weatherRate; bool pCSearch; bool stealth; @@ -7261,10 +7313,18 @@ struct TextCommand std::string description; std::string alias; std::string shortAlias; + uint16_t param; TextCommand( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct TextCommandParam +{ + std::string param; + + TextCommandParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct Title { std::string masculine; @@ -8328,11 +8388,14 @@ struct ZoneSharedGroup xiv::exd::Exd m_PvPSelectTraitDat; xiv::exd::Exd m_PvPTraitDat; xiv::exd::Exd m_QuestDat; + xiv::exd::Exd m_QuestAcceptAdditionConditionDat; xiv::exd::Exd m_QuestBattleDat; xiv::exd::Exd m_QuestChapterDat; xiv::exd::Exd m_QuestClassJobRewardDat; xiv::exd::Exd m_QuestClassJobSupplyDat; xiv::exd::Exd m_QuestDerivedClassDat; + xiv::exd::Exd m_QuestEffectDat; + xiv::exd::Exd m_QuestEffectDefineDat; xiv::exd::Exd m_QuestRedoDat; xiv::exd::Exd m_QuestRedoChapterUIDat; xiv::exd::Exd m_QuestRedoChapterUICategoryDat; @@ -8368,6 +8431,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_RetainerTaskParameterDat; xiv::exd::Exd m_RetainerTaskRandomDat; xiv::exd::Exd m_RideShootingDat; + xiv::exd::Exd m_RideShootingTargetTypeDat; xiv::exd::Exd m_RideShootingTextDataDat; xiv::exd::Exd m_RPParameterDat; xiv::exd::Exd m_SatisfactionArbitrationDat; @@ -8393,6 +8457,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_SpecialShopItemCategoryDat; xiv::exd::Exd m_StainDat; xiv::exd::Exd m_StainTransientDat; + xiv::exd::Exd m_StanceChangeDat; xiv::exd::Exd m_StatusDat; xiv::exd::Exd m_StatusHitEffectDat; xiv::exd::Exd m_StatusLoopVFXDat; @@ -8406,6 +8471,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_TerritoryTypeDat; xiv::exd::Exd m_TerritoryTypeTransientDat; xiv::exd::Exd m_TextCommandDat; + xiv::exd::Exd m_TextCommandParamDat; xiv::exd::Exd m_TitleDat; xiv::exd::Exd m_TomestonesDat; xiv::exd::Exd m_TomestonesItemDat; @@ -8965,11 +9031,14 @@ struct ZoneSharedGroup using PvPSelectTraitPtr = std::shared_ptr< PvPSelectTrait >; using PvPTraitPtr = std::shared_ptr< PvPTrait >; using QuestPtr = std::shared_ptr< Quest >; + using QuestAcceptAdditionConditionPtr = std::shared_ptr< QuestAcceptAdditionCondition >; using QuestBattlePtr = std::shared_ptr< QuestBattle >; using QuestChapterPtr = std::shared_ptr< QuestChapter >; using QuestClassJobRewardPtr = std::shared_ptr< QuestClassJobReward >; using QuestClassJobSupplyPtr = std::shared_ptr< QuestClassJobSupply >; using QuestDerivedClassPtr = std::shared_ptr< QuestDerivedClass >; + using QuestEffectPtr = std::shared_ptr< QuestEffect >; + using QuestEffectDefinePtr = std::shared_ptr< QuestEffectDefine >; using QuestRedoPtr = std::shared_ptr< QuestRedo >; using QuestRedoChapterUIPtr = std::shared_ptr< QuestRedoChapterUI >; using QuestRedoChapterUICategoryPtr = std::shared_ptr< QuestRedoChapterUICategory >; @@ -9005,6 +9074,7 @@ struct ZoneSharedGroup using RetainerTaskParameterPtr = std::shared_ptr< RetainerTaskParameter >; using RetainerTaskRandomPtr = std::shared_ptr< RetainerTaskRandom >; using RideShootingPtr = std::shared_ptr< RideShooting >; + using RideShootingTargetTypePtr = std::shared_ptr< RideShootingTargetType >; using RideShootingTextDataPtr = std::shared_ptr< RideShootingTextData >; using RPParameterPtr = std::shared_ptr< RPParameter >; using SatisfactionArbitrationPtr = std::shared_ptr< SatisfactionArbitration >; @@ -9030,6 +9100,7 @@ struct ZoneSharedGroup using SpecialShopItemCategoryPtr = std::shared_ptr< SpecialShopItemCategory >; using StainPtr = std::shared_ptr< Stain >; using StainTransientPtr = std::shared_ptr< StainTransient >; + using StanceChangePtr = std::shared_ptr< StanceChange >; using StatusPtr = std::shared_ptr< Status >; using StatusHitEffectPtr = std::shared_ptr< StatusHitEffect >; using StatusLoopVFXPtr = std::shared_ptr< StatusLoopVFX >; @@ -9043,6 +9114,7 @@ struct ZoneSharedGroup using TerritoryTypePtr = std::shared_ptr< TerritoryType >; using TerritoryTypeTransientPtr = std::shared_ptr< TerritoryTypeTransient >; using TextCommandPtr = std::shared_ptr< TextCommand >; + using TextCommandParamPtr = std::shared_ptr< TextCommandParam >; using TitlePtr = std::shared_ptr< Title >; using TomestonesPtr = std::shared_ptr< Tomestones >; using TomestonesItemPtr = std::shared_ptr< TomestonesItem >; @@ -9602,11 +9674,14 @@ struct ZoneSharedGroup std::set< uint32_t > m_PvPSelectTraitIdList; std::set< uint32_t > m_PvPTraitIdList; std::set< uint32_t > m_QuestIdList; + std::set< uint32_t > m_QuestAcceptAdditionConditionIdList; std::set< uint32_t > m_QuestBattleIdList; std::set< uint32_t > m_QuestChapterIdList; std::set< uint32_t > m_QuestClassJobRewardIdList; std::set< uint32_t > m_QuestClassJobSupplyIdList; std::set< uint32_t > m_QuestDerivedClassIdList; + std::set< uint32_t > m_QuestEffectIdList; + std::set< uint32_t > m_QuestEffectDefineIdList; std::set< uint32_t > m_QuestRedoIdList; std::set< uint32_t > m_QuestRedoChapterUIIdList; std::set< uint32_t > m_QuestRedoChapterUICategoryIdList; @@ -9642,6 +9717,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_RetainerTaskParameterIdList; std::set< uint32_t > m_RetainerTaskRandomIdList; std::set< uint32_t > m_RideShootingIdList; + std::set< uint32_t > m_RideShootingTargetTypeIdList; std::set< uint32_t > m_RideShootingTextDataIdList; std::set< uint32_t > m_RPParameterIdList; std::set< uint32_t > m_SatisfactionArbitrationIdList; @@ -9667,6 +9743,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_SpecialShopItemCategoryIdList; std::set< uint32_t > m_StainIdList; std::set< uint32_t > m_StainTransientIdList; + std::set< uint32_t > m_StanceChangeIdList; std::set< uint32_t > m_StatusIdList; std::set< uint32_t > m_StatusHitEffectIdList; std::set< uint32_t > m_StatusLoopVFXIdList; @@ -9680,6 +9757,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_TerritoryTypeIdList; std::set< uint32_t > m_TerritoryTypeTransientIdList; std::set< uint32_t > m_TextCommandIdList; + std::set< uint32_t > m_TextCommandParamIdList; std::set< uint32_t > m_TitleIdList; std::set< uint32_t > m_TomestonesIdList; std::set< uint32_t > m_TomestonesItemIdList; @@ -12764,6 +12842,12 @@ const std::set< uint32_t >& getQuestIdList() loadIdList( m_QuestDat, m_QuestIdList ); return m_QuestIdList; } +const std::set< uint32_t >& getQuestAcceptAdditionConditionIdList() +{ + if( m_QuestAcceptAdditionConditionIdList.size() == 0 ) + loadIdList( m_QuestAcceptAdditionConditionDat, m_QuestAcceptAdditionConditionIdList ); + return m_QuestAcceptAdditionConditionIdList; +} const std::set< uint32_t >& getQuestBattleIdList() { if( m_QuestBattleIdList.size() == 0 ) @@ -12794,6 +12878,18 @@ const std::set< uint32_t >& getQuestDerivedClassIdList() loadIdList( m_QuestDerivedClassDat, m_QuestDerivedClassIdList ); return m_QuestDerivedClassIdList; } +const std::set< uint32_t >& getQuestEffectIdList() +{ + if( m_QuestEffectIdList.size() == 0 ) + loadIdList( m_QuestEffectDat, m_QuestEffectIdList ); + return m_QuestEffectIdList; +} +const std::set< uint32_t >& getQuestEffectDefineIdList() +{ + if( m_QuestEffectDefineIdList.size() == 0 ) + loadIdList( m_QuestEffectDefineDat, m_QuestEffectDefineIdList ); + return m_QuestEffectDefineIdList; +} const std::set< uint32_t >& getQuestRedoIdList() { if( m_QuestRedoIdList.size() == 0 ) @@ -13004,6 +13100,12 @@ const std::set< uint32_t >& getRideShootingIdList() loadIdList( m_RideShootingDat, m_RideShootingIdList ); return m_RideShootingIdList; } +const std::set< uint32_t >& getRideShootingTargetTypeIdList() +{ + if( m_RideShootingTargetTypeIdList.size() == 0 ) + loadIdList( m_RideShootingTargetTypeDat, m_RideShootingTargetTypeIdList ); + return m_RideShootingTargetTypeIdList; +} const std::set< uint32_t >& getRideShootingTextDataIdList() { if( m_RideShootingTextDataIdList.size() == 0 ) @@ -13154,6 +13256,12 @@ const std::set< uint32_t >& getStainTransientIdList() loadIdList( m_StainTransientDat, m_StainTransientIdList ); return m_StainTransientIdList; } +const std::set< uint32_t >& getStanceChangeIdList() +{ + if( m_StanceChangeIdList.size() == 0 ) + loadIdList( m_StanceChangeDat, m_StanceChangeIdList ); + return m_StanceChangeIdList; +} const std::set< uint32_t >& getStatusIdList() { if( m_StatusIdList.size() == 0 ) @@ -13232,6 +13340,12 @@ const std::set< uint32_t >& getTextCommandIdList() loadIdList( m_TextCommandDat, m_TextCommandIdList ); return m_TextCommandIdList; } +const std::set< uint32_t >& getTextCommandParamIdList() +{ + if( m_TextCommandParamIdList.size() == 0 ) + loadIdList( m_TextCommandParamDat, m_TextCommandParamIdList ); + return m_TextCommandParamIdList; +} const std::set< uint32_t >& getTitleIdList() { if( m_TitleIdList.size() == 0 ) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index ceb78f56..9b469ddc 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -43,67 +43,67 @@ namespace Sapphire::Network::Packets */ enum ServerZoneIpcType : uint16_t { - Ping = 0x0289, // updated 5.55 hotfix - Init = 0x0203, // updated 5.55 hotfix + Ping = 0x02CB, // updated 5.58 + Init = 0x02A8, // updated 5.58 - ActorFreeSpawn = 0x01C5, // updated 5.55 hotfix - InitZone = 0x021C, // updated 5.55 hotfix + ActorFreeSpawn = 0x0210, // updated 5.58 + InitZone = 0x0100, // updated 5.58 - EffectResult = 0x01E9, // updated 5.55 hotfix - ActorControl = 0x01C8, // updated 5.55 hotfix - ActorControlSelf = 0x035A, // updated 5.55 hotfix - ActorControlTarget = 0x0338, // updated 5.55 hotfix + EffectResult = 0x0151, // updated 5.58 + ActorControl = 0x0264, // updated 5.58 + ActorControlSelf = 0x0314, // updated 5.58 + ActorControlTarget = 0x00FC, // updated 5.58 /*! * @brief Used when resting */ - UpdateHpMpTp = 0x0077, // updated 5.55 hotfix + UpdateHpMpTp = 0x039B, // updated 5.58 /////////////////////////////////////////////////// ChatBanned = 0xF06B, - Playtime = 0x0348, // updated 5.55 hotfix - Logout = 0x0292, // updated 5.55 hotfix - CFNotify = 0x00DC, // updated 5.55 hotfix + Playtime = 0x02BE, // updated 5.58 + Logout = 0x0297, // updated 5.58 + CFNotify = 0x01AC, // updated 5.58 CFMemberStatus = 0x0079, - CFDutyInfo = 0x02A3, // updated 5.55 hotfix + CFDutyInfo = 0x0083, // updated 5.58 CFPlayerInNeed = 0xF07F, - CFPreferredRole = 0x02B6, // updated 5.55 hotfix - CFCancel = 0x0262, // updated 5.55 hotfix + CFPreferredRole = 0x02FB, // updated 5.58 + CFCancel = 0x0135, // updated 5.58 SocialRequestError = 0xF0AD, - CFRegistered = 0x0114, // updated 5.55 hotfix - SocialRequestResponse = 0x033C, // updated 5.55 hotfix - SocialMessage = 0x0304, // updated 5.55 hotfix - SocialMessage2 = 0x01B4, // updated 5.55 hotfix - CancelAllianceForming = 0x00C6, // updated 4.2 + CFRegistered = 0x037E, // updated 5.58 + SocialRequestResponse = 0x0254, // updated 5.58 + SocialMessage = 0x02F2, // updated 5.58 + SocialMessage2 = 0x017A, // updated 5.58 + CancelAllianceForming = 0xF0C6, // updated 4.2 - LogMessage = 0x00D0, + LogMessage = 0x020F, // updated 5.58 - Chat = 0x0384, // updated 5.55 hotfix + Chat = 0x0220, // updated 5.58 PartyChat = 0x0065, WorldVisitList = 0xF0FE, // added 4.5 - SocialList = 0x00DD, // updated 5.55 hotfix + SocialList = 0x0396, // updated 5.58 - ExamineSearchInfo = 0x022A, // updated 5.55 hotfix - UpdateSearchInfo = 0x03DF, // updated 5.55 hotfix - InitSearchInfo = 0x00F8, // updated 5.55 hotfix - ExamineSearchComment = 0x0102, // updated 4.1 + ExamineSearchInfo = 0x031F, // updated 5.58 + UpdateSearchInfo = 0x0219, // updated 5.58 + InitSearchInfo = 0x01A0, // updated 5.58 + ExamineSearchComment = 0x0315, // updated 5.58 - ServerNoticeShort = 0x032D, // updated 5.55 hotfix - ServerNotice = 0x02CA, // updated 5.55 hotfix - SetOnlineStatus = 0x03A9, // updated 5.55 hotfix + ServerNoticeShort = 0x0211, // updated 5.58 + ServerNotice = 0x03B9, // updated 5.58 + SetOnlineStatus = 0x0163, // updated 5.58 - CountdownInitiate = 0x0237, // updated 5.25 - CountdownCancel = 0x00D9, // updated 5.18 + CountdownInitiate = 0x01F9, // updated 5.58 + CountdownCancel = 0x0206, // updated 5.58 - PlayerAddedToBlacklist = 0x033F, // updated 5.1 - PlayerRemovedFromBlacklist = 0x0385, // updated 5.1 - BlackList = 0x0093, // updated 5.55 hotfix + PlayerAddedToBlacklist = 0x01FE, // updated 5.58 + PlayerRemovedFromBlacklist = 0x02D6, // updated 5.58 + BlackList = 0x028A, // updated 5.58 - LinkshellList = 0x0160, // updated 5.55 hotfix + LinkshellList = 0x02DD, // updated 5.58 MailDeleteRequest = 0xF12B, // updated 5.0 @@ -114,85 +114,85 @@ namespace Sapphire::Network::Packets MarketTaxRates = 0x01F8, // updated 5.35 hotfix - MarketBoardSearchResult = 0x039D, // updated 5.55 hotfix - MarketBoardItemListingCount = 0x0277, // updated 5.55 hotfix - MarketBoardItemListingHistory = 0x0320, // updated 5.55 hotfix - MarketBoardItemListing = 0x026B, // updated 5.55 hotfix + MarketBoardSearchResult = 0x0355, // updated 5.58 + MarketBoardItemListingCount = 0x0275, // updated 5.58 + MarketBoardItemListingHistory = 0x0112, // updated 5.58 + MarketBoardItemListing = 0x00F5, // updated 5.58 CharaFreeCompanyTag = 0x013B, // updated 4.5 - FreeCompanyBoardMsg = 0x013C, // updated 4.5 - FreeCompanyInfo = 0x0332, // updated 5.55 hotfix - ExamineFreeCompanyInfo = 0xF13E, // updated 4.5 + FreeCompanyBoardMsg = 0x028D, // updated 5.58 + FreeCompanyInfo = 0x0346, // updated 5.58 + ExamineFreeCompanyInfo = 0x00B7, // updated 5.58 FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 - StatusEffectList = 0x018A, // updated 5.55 hotfix + StatusEffectList = 0x01C5, // updated 5.58 EurekaStatusEffectList = 0x0167, // updated 5.18 BossStatusEffectList = 0x0312, // added 5.1 - Effect = 0x0283, // updated 5.55 hotfix - AoeEffect8 = 0x025B, // updated 5.55 hotfix - AoeEffect16 = 0x015D, // updated 5.55 hotfix - AoeEffect24 = 0x0091, // updated 5.55 hotfix - AoeEffect32 = 0x0169, // updated 5.55 hotfix - PersistantEffect = 0x035E, // updated 5.55 hotfix + Effect = 0x0102, // updated 5.58 + AoeEffect8 = 0x0345, // updated 5.58 + AoeEffect16 = 0x02B6, // updated 5.58 + AoeEffect24 = 0x0298, // updated 5.58 + AoeEffect32 = 0x03A4, // updated 5.58 + PersistantEffect = 0x008D, // updated 5.58 - GCAffiliation = 0x0258, // updated 5.55 hotfix + GCAffiliation = 0x02B1, // updated 5.58 - PlayerSpawn = 0x02C1, // updated 5.55 hotfix - NpcSpawn = 0x00F1, // updated 5.55 hotfix + PlayerSpawn = 0x0249, // updated 5.58 + NpcSpawn = 0x014B, // updated 5.58 NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3 - ActorMove = 0x009D, // updated 5.55 hotfix + ActorMove = 0x023D, // updated 5.58 - ActorSetPos = 0x0266, // updated 5.55 hotfix + ActorSetPos = 0x0280, // updated 5.58 - ActorCast = 0x00A9, // updated 5.55 hotfix + ActorCast = 0x02A7, // updated 5.58 SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 - PartyList = 0x01B7, // updated 5.55 hotfix - PartyMessage = 0x01C1, // updated 5.55 hotfix - HateRank = 0x006E, // updated 5.55 hotfix - HateList = 0x01F1, // updated 5.55 hotfix - ObjectSpawn = 0x00FE, // updated 5.55 hotfix - ObjectDespawn = 0x0201, // updated 5.55 hotfix - UpdateClassInfo = 0x0065, // updated 5.55 hotfix + PartyList = 0x02BD, // updated 5.58 + PartyMessage = 0x0318, // updated 5.58 + HateRank = 0x02C0, // updated 5.58 + HateList = 0x01B4, // updated 5.58 + ObjectSpawn = 0x0104, // updated 5.58 + ObjectDespawn = 0x030D, // updated 5.58 + UpdateClassInfo = 0x0198, // updated 5.58 SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything - PlayerSetup = 0x01E7, // updated 5.55 hotfix - PlayerStats = 0x012E, // updated 5.55 hotfix - ActorOwner = 0x00EB, // updated 5.55 hotfix - PlayerStateFlags = 0x0190, // updated 5.55 hotfix - PlayerClassInfo = 0x022B, // updated 5.55 hotfix - CharaVisualEffect = 0x033A, // updated 5.55 hotfix + PlayerSetup = 0x0296, // updated 5.58 + PlayerStats = 0x00D5, // updated 5.58 + ActorOwner = 0x00AE, // updated 5.58 + PlayerStateFlags = 0x022A, // updated 5.58 + PlayerClassInfo = 0x02DF, // updated 5.58 + CharaVisualEffect = 0x0134, // updated 5.58 - ModelEquip = 0x0264, // updated 5.55 hotfix - Examine = 0x027C, // updated 5.55 hotfix - CharaNameReq = 0x02EC, // updated 5.55 hotfix + ModelEquip = 0x0312, // updated 5.58 + Examine = 0x00D3, // updated 5.58 + CharaNameReq = 0x031C, // updated 5.58 // nb: see #565 on github UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0 - RetainerSaleHistory = 0x020E, // updated 5.21 hotfix - RetainerInformation = 0x02DE, // updated 5.55 hotfix + RetainerSaleHistory = 0x01D3, // updated 5.58 + RetainerInformation = 0x0069, // updated 5.58 SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore - ItemInfo = 0x02D3, // updated 5.55 hotfix - ContainerInfo = 0x00CF, // updated 5.55 hotfix - InventoryTransactionFinish = 0x02EE, // updated 5.55 hotfix - InventoryTransaction = 0x02FA, // updated 5.55 hotfix - CurrencyCrystalInfo = 0x0166, // updated 5.55 hotfix + ItemInfo = 0x00A7, // updated 5.58 + ContainerInfo = 0x0208, // updated 5.58 + InventoryTransactionFinish = 0x01A3, // updated 5.58 + InventoryTransaction = 0x03AC, // updated 5.58 + CurrencyCrystalInfo = 0x0394, // updated 5.58 - InventoryActionAck = 0x027D, // updated 5.55 hotfix - UpdateInventorySlot = 0x0073, // updated 5.55 hotfix + InventoryActionAck = 0x0305, // updated 5.58 + UpdateInventorySlot = 0x0200, // updated 5.58 - HuntingLogEntry = 0x0080, // updated 5.55 hotfix + HuntingLogEntry = 0x00C5, // updated 5.58 - EventPlay = 0x0369, // updated 5.55 hotfix - EventPlay4 = 0x0247, // updated 5.55 hotfix - EventPlay8 = 0x0227, // updated 5.55 hotfix - EventPlay16 = 0x00C5, // updated 5.55 hotfix - EventPlay32 = 0x0184, // updated 5.55 hotfix - EventPlay64 = 0x011A, // updated 5.55 hotfix - EventPlay128 = 0x01B3, // updated 5.55 hotfix - EventPlay255 = 0x0240, // updated 5.55 hotfix + EventPlay = 0x01EF, // updated 5.58 + EventPlay4 = 0x021C, // updated 5.58 + EventPlay8 = 0x0337, // updated 5.58 + EventPlay16 = 0x0319, // updated 5.58 + EventPlay32 = 0x01E2, // updated 5.58 + EventPlay64 = 0x02FD, // updated 5.58 + EventPlay128 = 0x026E, // updated 5.58 + EventPlay255 = 0x039E, // updated 5.58 EventYield = 0x02CB, // updated 5.55 hotfix //EventYield4 = 0x0000, @@ -203,89 +203,89 @@ namespace Sapphire::Network::Packets //EventYield128 = 0x0000, //EventYield255 = 0x0000, - EventStart = 0x0145, // updated 5.55 hotfix - EventFinish = 0x0174, // updated 5.55 hotfix + EventStart = 0x01CC, // updated 5.58 + EventFinish = 0x0180, // updated 5.58 EventLinkshell = 0x1169, - QuestActiveList = 0x0381, // updated 5.55 hotfix - QuestUpdate = 0x031B, // updated 5.55 hotfix - QuestCompleteList = 0x031A, // updated 5.55 hotfix + QuestActiveList = 0x035D, // updated 5.58 + QuestUpdate = 0x029A, // updated 5.58 + QuestCompleteList = 0x03C5, // updated 5.58 - QuestFinish = 0x00E0, // updated 5.55 hotfix - MSQTrackerComplete = 0xF1D6, // updated 5.0 + QuestFinish = 0x0274, // updated 5.58 + MSQTrackerComplete = 0x01C1, // updated 5.58 MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 QuestMessage = 0x036E, // updated 5.55 hotfix - QuestTracker = 0x0294, // updated 5.55 hotfix + QuestTracker = 0x038E, // updated 5.58 - Mount = 0x016B, // updated 5.55 hotfix + Mount = 0x03C2, // updated 5.58 - DirectorVars = 0x0391, // updated 5.55 hotfix + DirectorVars = 0x01ED, // updated 5.58 SomeDirectorUnk1 = 0x0084, // updated 5.18 SomeDirectorUnk2 = 0xF0C1, // updated 5.18 - SomeDirectorUnk4 = 0x0101, // updated 5.55 hotfix + SomeDirectorUnk4 = 0x01BD, // updated 5.58 SomeDirectorUnk8 = 0x028A, // updated 5.18 SomeDirectorUnk16 = 0x028C, // updated 5.18 - DirectorPopUp = 0xF162, // updated 5.18 (could be 0x02C2 in 5.55, needs confirmation - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown - DirectorPopUp4 = 0x0214, // updated 5.18 - DirectorPopUp8 = 0x00F8, // updated 5.18 + DirectorPopUp = 0x02E3, // updated 5.58 + DirectorPopUp4 = 0x01DC, // updated 5.58 + DirectorPopUp8 = 0x011D, // updated 5.58 CFAvailableContents = 0xF1FD, // updated 4.2 - WeatherChange = 0x0386, // updated 5.55 hotfix - PlayerTitleList = 0x0181, // updated 5.55 hotfix - Discovery = 0x019E, // updated 5.55 hotfix + WeatherChange = 0x01B1, // updated 5.58 + PlayerTitleList = 0x02B4, // updated 5.58 + Discovery = 0x00B8, // updated 5.58 - EorzeaTimeOffset = 0x01AE, // updated 5.55 hotfix + EorzeaTimeOffset = 0x03D9, // updated 5.58 - EquipDisplayFlags = 0x01A3, // updated 5.55 hotfix + EquipDisplayFlags = 0x0199, // updated 5.58 MiniCactpotInit = 0x0286, // added 5.31 ShopMessage = 0x0162, // updated 5.55 hotfix - LootMessage = 0x0299, // updated 5.55 hotfix - ResultDialog = 0x025D, // updated 5.55 hotfix - DesynthResult = 0x0323, // updated 5.55 hotfix + LootMessage = 0x038C, // updated 5.58 + ResultDialog = 0x00DF, // updated 5.58 + DesynthResult = 0x038F, // updated 5.58 /// Housing ////////////////////////////////////// - LandSetInitialize = 0x01E4, // updated 5.55 hotfix - LandUpdate = 0x012B, // updated 5.55 hotfix - YardObjectSpawn = 0x0249, // updated 5.55 hotfix - HousingIndoorInitialize = 0x0133, // updated 5.55 hotfix - LandPriceUpdate = 0x00AA, // updated 5.55 hotfix - LandInfoSign = 0x023D, // updated 5.55 hotfix - LandRename = 0x0158, // updated 5.55 hotfix - HousingEstateGreeting = 0x018D, // updated 5.55 hotfix - HousingUpdateLandFlagsSlot = 0x03C8, // updated 5.55 hotfix - HousingLandFlags = 0x037E, // updated 5.55 hotfix - HousingShowEstateGuestAccess = 0x01F8, // updated 5.55 hotfix + LandSetInitialize = 0x03E3, // updated 5.58 + LandUpdate = 0x029E, // updated 5.58 + YardObjectSpawn = 0x0367, // updated 5.58 + HousingIndoorInitialize = 0x02A6, // updated 5.58 + LandPriceUpdate = 0x0143, // updated 5.58 + LandInfoSign = 0x0269, // updated 5.58 + LandRename = 0x0107, // updated 5.58 + HousingEstateGreeting = 0x0340, // updated 5.58 + HousingUpdateLandFlagsSlot = 0x02D2, // updated 5.58 + HousingLandFlags = 0x0156, // updated 5.58 + HousingShowEstateGuestAccess = 0x015C, // updated 5.58 - HousingObjectInitialize = 0x0331, // updated 5.55 hotfix - HousingInternalObjectSpawn = 0x0092, // updated 5.55 hotfix + HousingObjectInitialize = 0x0245, // updated 5.58 + HousingInternalObjectSpawn = 0x0194, // updated 5.58 - HousingWardInfo = 0x0279, // updated 5.55 hotfix - HousingObjectMove = 0x0239, // updated 5.55 hotfix + HousingWardInfo = 0x00A4, // updated 5.58 + HousingObjectMove = 0x01AE, // updated 5.58 - SharedEstateSettingsResponse = 0x0263, // updated 5.55 hotfix + SharedEstateSettingsResponse = 0x0378, // updated 5.58 - LandUpdateHouseName = 0x01D6, // updated 5.55 hotfix + LandUpdateHouseName = 0x034B, // updated 5.58 - LandSetMap = 0x01D3, // updated 5.55 hotfix + LandSetMap = 0x02F6, // updated 5.58 ////////////////////////////////////////////////// DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui - PerformNote = 0x038B, // updated 5.55 hotfix + PerformNote = 0x00BE, // updated 5.58 - PrepareZoning = 0x00A4, // updated 5.55 hotfix - ActorGauge = 0x03B1, // updated 5.55 hotfix - DutyGauge = 0x01D3, // updated 5.55 hotfix + PrepareZoning = 0x0171, // updated 5.58 + ActorGauge = 0x0335, // updated 5.58 + DutyGauge = 0x02F6, // updated 5.58 // daily quest info -> without them sent, login will take longer... - DailyQuests = 0x0371, // updated 5.55 hotfix - DailyQuestRepeatFlags = 0x021F, // updated 5.55 hotfix + DailyQuests = 0x0331, // updated 5.58 + DailyQuestRepeatFlags = 0x01D1, // updated 5.58 /// Doman Mahjong ////////////////////////////////////// MahjongOpenGui = 0x02A4, // only available in mahjong instance @@ -300,14 +300,14 @@ namespace Sapphire::Network::Packets MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen. /// Airship & Submarine ////////////////////////////////////// - AirshipExplorationResult = 0x007C, // updated 5.55 hotfix - AirshipStatus = 0x00AB, // updated 5.55 hotfix - AirshipStatusList = 0x027B, // updated 5.55 hotfix - AirshipTimers = 0x02A5, // updated 5.55 hotfix - SubmarineExplorationResult = 0x0099, // updated 5.55 hotfix - SubmarineProgressionStatus = 0x0081, // updated 5.55 hotfix - SubmarineStatusList = 0x0072, // updated 5.55 hotfix - SubmarineTimers = 0x037A, // updated 5.55 hotfix + AirshipExplorationResult = 0x036C, // updated 5.58 + AirshipStatus = 0x021F, // updated 5.58 + AirshipStatusList = 0x0073, // updated 5.58 + AirshipTimers = 0x0250, // updated 5.58 + SubmarineExplorationResult = 0x01D0, // updated 5.58 + SubmarineProgressionStatus = 0x0377, // updated 5.58 + SubmarineStatusList = 0x0338, // updated 5.58 + SubmarineTimers = 0x0292, // updated 5.58 }; /** @@ -315,109 +315,109 @@ namespace Sapphire::Network::Packets */ enum ClientZoneIpcType : uint16_t { - PingHandler = 0x03AD, // updated 5.55 hotfix - InitHandler = 0x03DA, // updated 5.55 hotfix + PingHandler = 0x03A3, // updated 5.58 + InitHandler = 0x03B3, // updated 5.58 - FinishLoadingHandler = 0x0203, // updated 5.55 hotfix + FinishLoadingHandler = 0x0217, // updated 5.58 CFCommenceHandler = 0xF118, // updated 5.35 hotfix - CFCancelHandler = 0x0332, // updated 5.35 hotfix - CFRegisterDuty = 0x033C, // updated 5.45 hotfix - CFRegisterRoulette = 0x0121, // updated 5.45 hotfix - PlayTimeHandler = 0x0365, // updated 5.55 hotfix - LogoutHandler = 0x039B, // updated 5.55 hotfix - CancelLogout = 0x010F, // updated 5.55 hotfix + CFCancelHandler = 0x00A9, // updated 5.58 + CFRegisterDuty = 0x036A, // updated 5.58 + CFRegisterRoulette = 0x038C, // updated 5.58 + PlayTimeHandler = 0x01A8, // updated 5.58 + LogoutHandler = 0x02A5, // updated 5.58 + CancelLogout = 0x03CC, // updated 5.58 CFDutyInfoHandler = 0xF078, // updated 4.2 - SocialReqSendHandler = 0x028E, // updated 5.55 hotfix - SocialResponseHandler = 0x0373, // updated 5.55 hotfix - CreateCrossWorldLS = 0x028D, // updated 5.55 hotfix + SocialReqSendHandler = 0x0366, // updated 5.58 + SocialResponseHandler = 0x0311, // updated 5.58 + CreateCrossWorldLS = 0x0125, // updated 5.58 - ChatHandler = 0x01B8, // updated 5.55 hotfix + ChatHandler = 0x02F4, // updated 5.58 PartyChatHandler = 0x0065, - PartySetLeaderHandler = 0x0142, // updated 5.55 hotfix - LeavePartyHandler = 0x026C, // updated 5.55 hotfix - KickPartyMemberHandler = 0x0379, // updated 5.55 hotfix - DisbandPartyHandler = 0x037A, // updated 5.45 hotfix + PartySetLeaderHandler = 0x03C2, // updated 5.58 + LeavePartyHandler = 0x028A, // updated 5.58 + KickPartyMemberHandler = 0x01D1, // updated 5.58 + DisbandPartyHandler = 0x032B, // updated 5.58 - SocialListHandler = 0x00F2, // updated 5.55 hotfix - SetSearchInfoHandler = 0x009C, // updated 5.55 hotfix - ReqSearchInfoHandler = 0x00B1, // updated 5.55 hotfix + SocialListHandler = 0x006E, // updated 5.58 + SetSearchInfoHandler = 0x010A, // updated 5.58 + ReqSearchInfoHandler = 0x0255, // updated 5.58 ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 - ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0 - BlackListHandler = 0x03DE, // updated 5.55 hotfix - PlayerSearchHandler = 0x00F4, // updated 5.0 + ReqRemovePlayerFromBlacklist = 0x015A, // updated 5.58 + BlackListHandler = 0x02C5, // updated 5.58 + PlayerSearchHandler = 0x0259, // updated 5.58 - LinkshellListHandler = 0x0291, // updated 5.55 hotfix + LinkshellListHandler = 0x01F0, // updated 5.58 - MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5 - MarketBoardRequestItemListings = 0x0103, // updated 4.5 - MarketBoardSearch = 0x0107, // updated 4.5 + MarketBoardRequestItemListingInfo = 0x02D3, // updated 5.58 + MarketBoardRequestItemListings = 0x00AD, // updated 5.58 + MarketBoardSearch = 0x00D6, // updated 5.58 - ReqExamineFcInfo = 0x0113, // updated 4.1 + ReqExamineFcInfo = 0x0359, // updated 5.58 - FcInfoReqHandler = 0x011A, // updated 4.2 + FcInfoReqHandler = 0x0078, // updated 5.58 FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0 - ReqMarketWishList = 0x012C, // updated 4.3 + ReqMarketWishList = 0x0364, // updated 5.58 ReqJoinNoviceNetwork = 0x0129, // updated 4.2 - ReqCountdownInitiate = 0x025F, // updated 5.35 hotfix - ReqCountdownCancel = 0x0244, // updated 5.25 + ReqCountdownInitiate = 0x020E, // updated 5.58 + ReqCountdownCancel = 0x03BE, // updated 5.58 - ZoneLineHandler = 0x01C2, // updated 5.55 hotfix - ClientTrigger = 0x0337, // updated 5.55 hotfix - DiscoveryHandler = 0x00E3, // updated 5.35 hotfix + ZoneLineHandler = 0x00B0, // updated 5.58 + ClientTrigger = 0x008B, // updated 5.58 + DiscoveryHandler = 0x01B4, // updated 5.58 - PlaceFieldMarkerPreset = 0xF10C, // updated 5.55 hotfix - PlaceFieldMarker = 0xF2E2, // updated 5.55 hotfix - SkillHandler = 0x02A2, // updated 5.55 hotfix - GMCommand1 = 0x01F0, // updated 5.55 hotfix - GMCommand2 = 0x0068, // updated 5.55 hotfix - AoESkillHandler = 0x02F6, // updated 5.55 hotfix + PlaceFieldMarkerPreset = 0x03B0, // updated 5.58 + PlaceFieldMarker = 0x011A, // updated 5.58 + SkillHandler = 0x0175, // updated 5.58 + GMCommand1 = 0x0353, // updated 5.58 + GMCommand2 = 0x03E7, // updated 5.58 + AoESkillHandler = 0x021D, // updated 5.58 - UpdatePositionHandler = 0x024B, // updated 5.55 hotfix + UpdatePositionHandler = 0x0212, // updated 5.58 - InventoryModifyHandler = 0x01D7, // updated 5.55 hotfix + InventoryModifyHandler = 0x014A, // updated 5.58 - InventoryEquipRecommendedItems = 0x0186, // updated 5.45 hotfix + InventoryEquipRecommendedItems = 0x01D7, // updated 5.58 - ReqPlaceHousingItem = 0x023E, // updated 5.55 hotfix - BuildPresetHandler = 0x0374, // updated 5.55 hotfix + ReqPlaceHousingItem = 0x0354, // updated 5.58 + BuildPresetHandler = 0x00DC, // updated 5.58 - TalkEventHandler = 0x01E9, // updated 5.55 hotfix + TalkEventHandler = 0x012D, // updated 5.58 EmoteEventHandler = 0xF35A, // updated 5.55 hotfix - WithinRangeEventHandler = 0x035A, // updated 5.55 hotfix - OutOfRangeEventHandler = 0x0338, // updated 5.55 hotfix - EnterTeriEventHandler = 0x0077, // updated 5.55 hotfix - ShopEventHandler = 0x0168, // updated 5.55 hotfix + WithinRangeEventHandler = 0x022C, // updated 5.58 + OutOfRangeEventHandler = 0x0294, // updated 5.58 + EnterTeriEventHandler = 0x00C1, // updated 5.58 + ShopEventHandler = 0x02B8, // updated 5.58 EventYieldHandler = 0x02A0, // updated 5.55 hotfix - ReturnEventHandler = 0x015D, // updated 5.55 hotfix - TradeReturnEventHandler = 0x0091, // updated 5.55 hotfix + ReturnEventHandler = 0x0333, // updated 5.58 + TradeReturnEventHandler = 0x0179, // updated 5.58 TradeReturnEventHandler2 = 0x0169, // updated 5.55 hotfix LinkshellEventHandler = 0x016B, // updated 4.5 LinkshellEventHandler1 = 0x016C, // updated 4.5 - ReqEquipDisplayFlagsChange = 0x032B, // updated 5.55 hotfix + ReqEquipDisplayFlagsChange = 0x01AD, // updated 5.58 - LandRenameHandler = 0x0206, // updated 5.55 hotfix - HousingUpdateHouseGreeting = 0x0330, // updated 5.55 hotfix - HousingUpdateObjectPosition = 0x03A5, // updated 5.55 hotfix + LandRenameHandler = 0x0083, // updated 5.58 + HousingUpdateHouseGreeting = 0x031A, // updated 5.58 + HousingUpdateObjectPosition = 0x010E, // updated 5.58 HousingEditAppearance = 0x00D7, // updated 5.55 hotfix - SetSharedEstateSettings = 0x03DC, // updated 5.55 hotfix + SetSharedEstateSettings = 0x0342, // updated 5.58 - UpdatePositionInstance = 0x009D, // updated 5.55 hotfix + UpdatePositionInstance = 0x01A3, // updated 5.58 - PerformNoteHandler = 0x01F1, // updated 5.55 hotfix + PerformNoteHandler = 0x015E, // updated 5.58 - WorldInteractionHandler = 0x0343, // updated 5.55 hotfix - Dive = 0x021C, // updated 5.55 hotfix + WorldInteractionHandler = 0x03CE, // updated 5.58 + Dive = 0x034C, // updated 5.58 }; ////////////////////////////////////////////////////////////////////////////////