diff --git a/src/common/Common.h b/src/common/Common.h index 6bfdd5ab..7c99e125 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -23,7 +23,7 @@ namespace Sapphire::Common const uint64_t INVALID_GAME_OBJECT_ID64 = 0xE0000000; const uint16_t MAX_PLAYER_LEVEL = 80; - const uint8_t CURRENT_EXPANSION_ID = 3; + const uint8_t CURRENT_EXPANSION_ID = 4; const uint8_t CLASSJOB_TOTAL = 38; const uint8_t CLASSJOB_SLOTS = 30; diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index 130023d6..e4721453 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -65,7 +65,7 @@ Sapphire::Data::Action::Action( uint32_t row_id, Sapphire::Data::ExdDataGenerate icon = exdData->getField< uint16_t >( row, 2 ); actionCategory = exdData->getField< uint8_t >( row, 3 ); animationStart = exdData->getField< uint8_t >( row, 5 ); - vFX = exdData->getField< uint8_t >( row, 6 ); + vFX = exdData->getField< uint16_t >( row, 6 ); animationEnd = exdData->getField< int16_t >( row, 7 ); actionTimelineHit = exdData->getField< uint16_t >( row, 8 ); classJob = exdData->getField< int8_t >( row, 10 ); @@ -89,20 +89,20 @@ Sapphire::Data::Action::Action( uint32_t row_id, Sapphire::Data::ExdDataGenerate actionCombo = exdData->getField< uint16_t >( row, 35 ); preservesCombo = exdData->getField< bool >( row, 36 ); 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 ); - actionProcStatus = exdData->getField< uint8_t >( row, 44 ); - statusGainSelf = exdData->getField< uint16_t >( row, 46 ); - unlockLink = exdData->getField< uint32_t >( row, 47 ); - classJobCategory = exdData->getField< uint8_t >( row, 48 ); - affectsPosition = exdData->getField< bool >( row, 51 ); - omen = exdData->getField< uint16_t >( row, 52 ); - isPvP = exdData->getField< bool >( row, 53 ); - isPlayerAction = exdData->getField< bool >( row, 65 ); + recast100ms = exdData->getField< uint16_t >( row, 39 ); + cooldownGroup = exdData->getField< uint8_t >( row, 40 ); + additionalCooldownGroup = exdData->getField< uint8_t >( row, 41 ); + maxCharges = exdData->getField< uint8_t >( row, 42 ); + attackType = exdData->getField< int8_t >( row, 43 ); + aspect = exdData->getField< uint8_t >( row, 44 ); + actionProcStatus = exdData->getField< uint8_t >( row, 45 ); + statusGainSelf = exdData->getField< uint16_t >( row, 47 ); + unlockLink = exdData->getField< uint32_t >( row, 48 ); + classJobCategory = exdData->getField< uint8_t >( row, 49 ); + affectsPosition = exdData->getField< bool >( row, 52 ); + omen = exdData->getField< uint16_t >( row, 53 ); + isPvP = exdData->getField< bool >( row, 55 ); + isPlayerAction = exdData->getField< bool >( row, 67 ); } Sapphire::Data::ActionCastTimeline::ActionCastTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -261,6 +261,7 @@ Sapphire::Data::AdventureExPhase::AdventureExPhase( uint32_t row_id, Sapphire::D quest = exdData->getField< uint32_t >( row, 0 ); adventureBegin = exdData->getField< uint32_t >( row, 1 ); adventureEnd = exdData->getField< uint32_t >( row, 2 ); + expansion = exdData->getField< uint8_t >( row, 3 ); } Sapphire::Data::AetherCurrent::AetherCurrent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -273,6 +274,7 @@ Sapphire::Data::AetherCurrentCompFlgSet::AetherCurrentCompFlgSet( uint32_t row_i { auto row = exdData->m_AetherCurrentCompFlgSetDat.get_row( row_id ); territory = exdData->getField< int32_t >( row, 0 ); + aetherCurrent.push_back( exdData->getField< int32_t >( row, 1 ) ); aetherCurrent.push_back( exdData->getField< int32_t >( row, 2 ) ); aetherCurrent.push_back( exdData->getField< int32_t >( row, 3 ) ); aetherCurrent.push_back( exdData->getField< int32_t >( row, 4 ) ); @@ -287,7 +289,6 @@ Sapphire::Data::AetherCurrentCompFlgSet::AetherCurrentCompFlgSet( uint32_t row_i aetherCurrent.push_back( exdData->getField< int32_t >( row, 13 ) ); aetherCurrent.push_back( exdData->getField< int32_t >( row, 14 ) ); aetherCurrent.push_back( exdData->getField< int32_t >( row, 15 ) ); - aetherCurrent.push_back( exdData->getField< int32_t >( row, 16 ) ); } Sapphire::Data::AetherialWheel::AetherialWheel( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -332,6 +333,11 @@ Sapphire::Data::AetheryteSystemDefine::AetheryteSystemDefine( uint32_t row_id, S defineValue = exdData->getField< uint32_t >( row, 1 ); } +Sapphire::Data::AetheryteTransient::AetheryteTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_AetheryteTransientDat.get_row( row_id ); +} + Sapphire::Data::AirshipExplorationLevel::AirshipExplorationLevel( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AirshipExplorationLevelDat.get_row( row_id ); @@ -371,10 +377,14 @@ Sapphire::Data::AirshipExplorationPoint::AirshipExplorationPoint( uint32_t row_i auto row = exdData->m_AirshipExplorationPointDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); nameShort = exdData->getField< std::string >( row, 1 ); - requiredLevel = exdData->getField< uint8_t >( row, 5 ); - requiredFuel = exdData->getField< uint16_t >( row, 6 ); - durationmin = exdData->getField< uint16_t >( row, 7 ); - requiredSurveillance = exdData->getField< uint8_t >( row, 10 ); + passengers = exdData->getField< bool >( row, 2 ); + x = exdData->getField< int16_t >( row, 3 ); + y = exdData->getField< int16_t >( row, 4 ); + rankReq = exdData->getField< uint8_t >( row, 5 ); + ceruleumTankReq = exdData->getField< uint16_t >( row, 6 ); + surveyDurationmin = exdData->getField< uint16_t >( row, 7 ); + surveyDistance = exdData->getField< uint16_t >( row, 8 ); + surveillanceReq = exdData->getField< uint8_t >( row, 10 ); expReward = exdData->getField< uint32_t >( row, 13 ); } @@ -670,26 +680,26 @@ Sapphire::Data::BaseParam::BaseParam( uint32_t row_id, Sapphire::Data::ExdDataGe name = exdData->getField< std::string >( row, 1 ); description = exdData->getField< std::string >( row, 2 ); orderPriority = exdData->getField< uint8_t >( row, 3 ); - oneHWpn = exdData->getField< uint8_t >( row, 4 ); - oH = exdData->getField< uint8_t >( row, 5 ); - head = exdData->getField< uint8_t >( row, 6 ); - chest = exdData->getField< uint8_t >( row, 7 ); - hands = exdData->getField< uint8_t >( row, 8 ); - waist = exdData->getField< uint8_t >( row, 9 ); - legs = exdData->getField< uint8_t >( row, 10 ); - feet = exdData->getField< uint8_t >( row, 11 ); - earring = exdData->getField< uint8_t >( row, 12 ); - necklace = exdData->getField< uint8_t >( row, 13 ); - bracelet = exdData->getField< uint8_t >( row, 14 ); - ring = exdData->getField< uint8_t >( row, 15 ); - twoHWpn = exdData->getField< uint8_t >( row, 16 ); - underArmor = exdData->getField< uint8_t >( row, 17 ); - chestHead = exdData->getField< uint8_t >( row, 18 ); - chestHeadLegsFeet = exdData->getField< uint8_t >( row, 19 ); - legsFeet = exdData->getField< uint8_t >( row, 21 ); - headChestHandsLegsFeet = exdData->getField< uint8_t >( row, 22 ); - chestLegsGloves = exdData->getField< uint8_t >( row, 23 ); - chestLegsFeet = exdData->getField< uint8_t >( row, 24 ); + oneHWpn = exdData->getField< uint16_t >( row, 4 ); + oH = exdData->getField< uint16_t >( row, 5 ); + head = exdData->getField< uint16_t >( row, 6 ); + chest = exdData->getField< uint16_t >( row, 7 ); + hands = exdData->getField< uint16_t >( row, 8 ); + waist = exdData->getField< uint16_t >( row, 9 ); + legs = exdData->getField< uint16_t >( row, 10 ); + feet = exdData->getField< uint16_t >( row, 11 ); + earring = exdData->getField< uint16_t >( row, 12 ); + necklace = exdData->getField< uint16_t >( row, 13 ); + bracelet = exdData->getField< uint16_t >( row, 14 ); + ring = exdData->getField< uint16_t >( row, 15 ); + twoHWpn = exdData->getField< uint16_t >( row, 16 ); + underArmor = exdData->getField< uint16_t >( row, 17 ); + chestHead = exdData->getField< uint16_t >( row, 18 ); + chestHeadLegsFeet = exdData->getField< uint16_t >( row, 19 ); + legsFeet = exdData->getField< uint16_t >( row, 21 ); + headChestHandsLegsFeet = exdData->getField< uint16_t >( row, 22 ); + chestLegsGloves = exdData->getField< uint16_t >( row, 23 ); + chestLegsFeet = exdData->getField< uint16_t >( row, 24 ); meldParam.push_back( exdData->getField< uint8_t >( row, 25 ) ); meldParam.push_back( exdData->getField< uint8_t >( row, 26 ) ); meldParam.push_back( exdData->getField< uint8_t >( row, 27 ) ); @@ -1081,6 +1091,11 @@ Sapphire::Data::BNpcState::BNpcState( uint32_t row_id, Sapphire::Data::ExdDataGe loopTimeline = exdData->getField< int32_t >( row, 13 ); } +Sapphire::Data::Booster::Booster( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_BoosterDat.get_row( row_id ); +} + Sapphire::Data::Buddy::Buddy( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BuddyDat.get_row( row_id ); @@ -1318,9 +1333,9 @@ Sapphire::Data::CharaMakeName::CharaMakeName( uint32_t row_id, Sapphire::Data::E hrothgarHellionsLastName = exdData->getField< std::string >( row, 38 ); hrothgarLostFirstName = exdData->getField< std::string >( row, 39 ); hrothgarLostLastName = exdData->getField< std::string >( row, 40 ); - vieraFirstName = exdData->getField< std::string >( row, 41 ); - vieraRavaLastName = exdData->getField< std::string >( row, 42 ); - vieraVeenaLastName = exdData->getField< std::string >( row, 43 ); + vieraFirstName = exdData->getField< std::string >( row, 44 ); + vieraRavaLastName = exdData->getField< std::string >( row, 45 ); + vieraVeenaLastName = exdData->getField< std::string >( row, 46 ); } Sapphire::Data::CharaMakeType::CharaMakeType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -1679,8 +1694,8 @@ Sapphire::Data::ClassJob::ClassJob( uint32_t row_id, Sapphire::Data::ExdDataGene prerequisite = exdData->getField< uint32_t >( row, 41 ); startingLevel = exdData->getField< uint8_t >( row, 42 ); partyBonus = exdData->getField< uint8_t >( row, 43 ); - isLimitedJob = exdData->getField< bool >( row, 44 ); - canQueueForDuty = exdData->getField< bool >( row, 45 ); + isLimitedJob = exdData->getField< bool >( row, 45 ); + canQueueForDuty = exdData->getField< bool >( row, 46 ); } Sapphire::Data::ClassJobCategory::ClassJobCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -1726,6 +1741,8 @@ Sapphire::Data::ClassJobCategory::ClassJobCategory( uint32_t row_id, Sapphire::D bLU = exdData->getField< bool >( row, 37 ); gNB = exdData->getField< bool >( row, 38 ); dNC = exdData->getField< bool >( row, 39 ); + rPR = exdData->getField< bool >( row, 40 ); + sGE = exdData->getField< bool >( row, 41 ); } Sapphire::Data::CollectablesShop::CollectablesShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -1815,15 +1832,12 @@ Sapphire::Data::Companion::Companion( uint32_t row_id, Sapphire::Data::ExdDataGe special = exdData->getField< uint8_t >( row, 15 ); wanderingWait = exdData->getField< uint8_t >( row, 16 ); priority = exdData->getField< uint16_t >( row, 17 ); - roulette = exdData->getField< bool >( row, 18 ); - battle = exdData->getField< bool >( row, 20 ); - lookAt = exdData->getField< bool >( row, 21 ); - poke = exdData->getField< bool >( row, 22 ); enemy = exdData->getField< uint16_t >( row, 23 ); - stroke = exdData->getField< bool >( row, 24 ); - clapping = exdData->getField< bool >( row, 25 ); + battle = exdData->getField< bool >( row, 24 ); + roulette = exdData->getField< bool >( row, 25 ); icon = exdData->getField< uint16_t >( row, 26 ); order = exdData->getField< uint16_t >( row, 27 ); + idleAnimation = exdData->getField< bool >( row, 28 ); cost = exdData->getField< uint8_t >( row, 30 ); hP = exdData->getField< uint16_t >( row, 31 ); skillAngle = exdData->getField< uint16_t >( row, 33 ); @@ -2111,27 +2125,27 @@ Sapphire::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, allowReplacement = exdData->getField< bool >( row, 21 ); allowExplorerMode = exdData->getField< bool >( row, 23 ); highEndDuty = exdData->getField< bool >( row, 28 ); - dutyRecorderAllowed = exdData->getField< bool >( row, 32 ); - name = exdData->getField< std::string >( row, 37 ); - 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 ); - 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 ); + dutyRecorderAllowed = exdData->getField< bool >( row, 33 ); + name = exdData->getField< std::string >( row, 38 ); + nameShort = exdData->getField< std::string >( row, 39 ); + contentType = exdData->getField< uint8_t >( row, 40 ); + transientKey = exdData->getField< uint8_t >( row, 41 ); + transient = exdData->getField< uint32_t >( row, 42 ); + sortKey = exdData->getField< uint16_t >( row, 43 ); + image = exdData->getField< uint32_t >( row, 44 ); + icon = exdData->getField< uint32_t >( row, 45 ); + level506070Roulette = exdData->getField< bool >( row, 47 ); + levelingRoulette = 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 ); + feastTeamRoulette = exdData->getField< bool >( row, 62 ); + normalRaidRoulette = exdData->getField< bool >( row, 63 ); } Sapphire::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2143,9 +2157,9 @@ Sapphire::Data::ContentFinderConditionTransient::ContentFinderConditionTransient Sapphire::Data::ContentGauge::ContentGauge( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentGaugeDat.get_row( row_id ); - name = exdData->getField< std::string >( row, 0 ); - color = exdData->getField< uint8_t >( row, 1 ); - textString = exdData->getField< std::string >( row, 3 ); + name = exdData->getField< std::string >( row, 1 ); + color = exdData->getField< uint8_t >( row, 2 ); + textString = exdData->getField< std::string >( row, 4 ); } Sapphire::Data::ContentGaugeColor::ContentGaugeColor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2192,8 +2206,10 @@ Sapphire::Data::ContentRoulette::ContentRoulette( uint32_t row_id, Sapphire::Dat category = exdData->getField< std::string >( row, 1 ); description = exdData->getField< std::string >( row, 3 ); dutyType = exdData->getField< std::string >( row, 4 ); + isGoldSaucer = exdData->getField< bool >( row, 7 ); isInDutyFinder = exdData->getField< bool >( row, 8 ); openRule = exdData->getField< uint8_t >( row, 9 ); + isPvP = exdData->getField< bool >( row, 10 ); requiredLevel = exdData->getField< uint8_t >( row, 11 ); itemLevelRequired = exdData->getField< uint16_t >( row, 13 ); icon = exdData->getField< uint32_t >( row, 15 ); @@ -2320,8 +2336,6 @@ Sapphire::Data::CraftLevelDifference::CraftLevelDifference( uint32_t row_id, Sap { auto row = exdData->m_CraftLevelDifferenceDat.get_row( row_id ); difference = exdData->getField< int16_t >( row, 0 ); - progressFactor = exdData->getField< int16_t >( row, 1 ); - qualityFactor = exdData->getField< int16_t >( row, 2 ); } Sapphire::Data::CraftLeveTalk::CraftLeveTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2519,19 +2533,21 @@ Sapphire::Data::DawnContent::DawnContent( uint32_t row_id, Sapphire::Data::ExdDa { auto row = exdData->m_DawnContentDat.get_row( row_id ); content = exdData->getField< uint32_t >( row, 0 ); - exp = exdData->getField< uint32_t >( row, 1 ); + expBelowExMaxLvl = exdData->getField< uint32_t >( row, 1 ); + expAboveExMaxLvl = exdData->getField< uint32_t >( row, 2 ); } Sapphire::Data::DawnGrowMember::DawnGrowMember( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DawnGrowMemberDat.get_row( row_id ); member = exdData->getField< uint32_t >( row, 0 ); - imageName = exdData->getField< uint32_t >( row, 1 ); - bigImageOld = exdData->getField< uint32_t >( row, 2 ); - bigImageNew = exdData->getField< uint32_t >( row, 3 ); - smallImageOld = exdData->getField< uint32_t >( row, 4 ); - smallImageNew = exdData->getField< uint32_t >( row, 5 ); - _class = exdData->getField< uint8_t >( row, 6 ); + selectImage.push_back( exdData->getField< uint32_t >( row, 1 ) ); + selectImage.push_back( exdData->getField< uint32_t >( row, 2 ) ); + selectImage.push_back( exdData->getField< uint32_t >( row, 3 ) ); + portraitImage.push_back( exdData->getField< uint32_t >( row, 4 ) ); + portraitImage.push_back( exdData->getField< uint32_t >( row, 5 ) ); + portraitImage.push_back( exdData->getField< uint32_t >( row, 6 ) ); + _class = exdData->getField< uint8_t >( row, 7 ); } Sapphire::Data::DawnMemberUIParam::DawnMemberUIParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2546,13 +2562,14 @@ Sapphire::Data::DawnQuestAnnounce::DawnQuestAnnounce( uint32_t row_id, Sapphire: { auto row = exdData->m_DawnQuestAnnounceDat.get_row( row_id ); quest = exdData->getField< uint32_t >( row, 0 ); - content = exdData->getField< uint8_t >( row, 1 ); + questStep = exdData->getField< uint8_t >( row, 1 ); eNPC.push_back( exdData->getField< uint32_t >( row, 2 ) ); eNPC.push_back( exdData->getField< uint32_t >( row, 3 ) ); eNPC.push_back( exdData->getField< uint32_t >( row, 4 ) ); eNPC.push_back( exdData->getField< uint32_t >( row, 5 ) ); eNPC.push_back( exdData->getField< uint32_t >( row, 6 ) ); eNPC.push_back( exdData->getField< uint32_t >( row, 7 ) ); + eNPC.push_back( exdData->getField< uint32_t >( row, 8 ) ); } Sapphire::Data::DawnQuestMember::DawnQuestMember( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2886,12 +2903,12 @@ Sapphire::Data::Emote::Emote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* emoteMode = exdData->getField< uint8_t >( row, 12 ); hasCancelEmote = exdData->getField< bool >( row, 15 ); drawsWeapon = exdData->getField< bool >( row, 16 ); - order = exdData->getField< uint16_t >( row, 17 ); - textCommand = exdData->getField< int32_t >( row, 18 ); - icon = exdData->getField< uint16_t >( row, 19 ); - logMessageTargeted = exdData->getField< uint16_t >( row, 20 ); - logMessageUntargeted = exdData->getField< uint16_t >( row, 21 ); - unlockLink = exdData->getField< uint32_t >( row, 22 ); + order = exdData->getField< uint16_t >( row, 18 ); + textCommand = exdData->getField< int32_t >( row, 19 ); + icon = exdData->getField< uint16_t >( row, 20 ); + logMessageTargeted = exdData->getField< uint16_t >( row, 21 ); + logMessageUntargeted = exdData->getField< uint16_t >( row, 22 ); + unlockLink = exdData->getField< uint32_t >( row, 23 ); } Sapphire::Data::EmoteCategory::EmoteCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3305,6 +3322,11 @@ Sapphire::Data::EventItemTimeline::EventItemTimeline( uint32_t row_id, Sapphire: actionTimeline = exdData->getField< uint32_t >( row, 0 ); } +Sapphire::Data::EventPathMove::EventPathMove( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_EventPathMoveDat.get_row( row_id ); +} + Sapphire::Data::EventSystemDefine::EventSystemDefine( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EventSystemDefineDat.get_row( row_id ); @@ -3317,7 +3339,9 @@ Sapphire::Data::ExportedGatheringPoint::ExportedGatheringPoint( uint32_t row_id, 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 ); + gatheringType = exdData->getField< uint8_t >( row, 2 ); + gatheringPointType = exdData->getField< uint8_t >( row, 3 ); + radius = exdData->getField< uint16_t >( row, 4 ); } Sapphire::Data::ExportedSG::ExportedSG( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3370,14 +3394,14 @@ Sapphire::Data::Fate::Fate( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e 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, 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 ) ); + objectiveIcon.push_back( exdData->getField< uint32_t >( row, 43 ) ); + objectiveIcon.push_back( exdData->getField< uint32_t >( row, 44 ) ); + objectiveIcon.push_back( exdData->getField< uint32_t >( row, 45 ) ); + objectiveIcon.push_back( exdData->getField< uint32_t >( row, 46 ) ); + objectiveIcon.push_back( exdData->getField< uint32_t >( row, 47 ) ); + objectiveIcon.push_back( exdData->getField< uint32_t >( row, 48 ) ); + objectiveIcon.push_back( exdData->getField< uint32_t >( row, 49 ) ); + objectiveIcon.push_back( exdData->getField< uint32_t >( row, 50 ) ); } Sapphire::Data::FateEvent::FateEvent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3465,7 +3489,22 @@ Sapphire::Data::FateProgressUI::FateProgressUI( uint32_t row_id, Sapphire::Data: achievement = exdData->getField< int32_t >( row, 1 ); reqFatesToRank2 = exdData->getField< uint8_t >( row, 2 ); reqFatesToRank3 = exdData->getField< uint8_t >( row, 3 ); - displayOrder = exdData->getField< uint8_t >( row, 4 ); + displayOrder = exdData->getField< uint8_t >( row, 5 ); +} + +Sapphire::Data::FateShop::FateShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_FateShopDat.get_row( row_id ); + specialShop.push_back( exdData->getField< uint32_t >( row, 0 ) ); + specialShop.push_back( exdData->getField< uint32_t >( row, 1 ) ); + defaultTalk.push_back( exdData->getField< uint32_t >( row, 2 ) ); + defaultTalk.push_back( exdData->getField< uint32_t >( row, 3 ) ); + defaultTalk.push_back( exdData->getField< uint32_t >( row, 4 ) ); + defaultTalk.push_back( exdData->getField< uint32_t >( row, 5 ) ); + defaultTalk.push_back( exdData->getField< uint32_t >( row, 6 ) ); + defaultTalk.push_back( exdData->getField< uint32_t >( row, 7 ) ); + defaultTalk.push_back( exdData->getField< uint32_t >( row, 8 ) ); + defaultTalk.push_back( exdData->getField< uint32_t >( row, 9 ) ); } Sapphire::Data::FateTokenType::FateTokenType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3545,6 +3584,7 @@ Sapphire::Data::FCRank::FCRank( uint32_t row_id, Sapphire::Data::ExdDataGenerate rights = exdData->getField< uint16_t >( row, 2 ); fCActionActiveNum = exdData->getField< uint8_t >( row, 5 ); fCActionStockNum = exdData->getField< uint8_t >( row, 6 ); + fCChestCompartments = exdData->getField< uint8_t >( row, 7 ); } Sapphire::Data::FCReputation::FCReputation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3589,6 +3629,8 @@ Sapphire::Data::FishingRecordType::FishingRecordType( uint32_t row_id, Sapphire: rankARequirement = exdData->getField< uint16_t >( row, 2 ); rankAARequirement = exdData->getField< uint16_t >( row, 3 ); rankAAARequirement = exdData->getField< uint16_t >( row, 4 ); + rankSRequirement = exdData->getField< uint16_t >( row, 5 ); + isSpearfishing = exdData->getField< uint8_t >( row, 6 ); } Sapphire::Data::FishingRecordTypeTransient::FishingRecordTypeTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3622,7 +3664,7 @@ Sapphire::Data::FishingSpot::FishingSpot( uint32_t row_id, Sapphire::Data::ExdDa item.push_back( exdData->getField< int32_t >( row, 20 ) ); item.push_back( exdData->getField< int32_t >( row, 21 ) ); placeName = exdData->getField< uint16_t >( row, 22 ); - order = exdData->getField< uint8_t >( row, 23 ); + order = exdData->getField< uint16_t >( row, 23 ); } Sapphire::Data::FishParameter::FishParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3705,7 +3747,8 @@ Sapphire::Data::GatheringItem::GatheringItem( uint32_t row_id, Sapphire::Data::E auto row = exdData->m_GatheringItemDat.get_row( row_id ); item = exdData->getField< int32_t >( row, 0 ); gatheringItemLevel = exdData->getField< uint16_t >( row, 1 ); - isHidden = exdData->getField< bool >( row, 4 ); + quest = exdData->getField< uint16_t >( row, 3 ); + isHidden = exdData->getField< bool >( row, 5 ); } Sapphire::Data::GatheringItemLevelConvertTable::GatheringItemLevelConvertTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3865,13 +3908,13 @@ Sapphire::Data::GatheringPoint::GatheringPoint( uint32_t row_id, Sapphire::Data: { auto row = exdData->m_GatheringPointDat.get_row( row_id ); type = exdData->getField< uint8_t >( row, 0 ); - gatheringPointBase = exdData->getField< int32_t >( row, 1 ); - count = exdData->getField< uint8_t >( row, 2 ); - gatheringPointBonus.push_back( exdData->getField< uint16_t >( row, 3 ) ); + gatheringPointBase = exdData->getField< int32_t >( row, 2 ); + count = exdData->getField< uint8_t >( row, 3 ); gatheringPointBonus.push_back( exdData->getField< uint16_t >( row, 4 ) ); - territoryType = exdData->getField< uint16_t >( row, 5 ); - placeName = exdData->getField< uint16_t >( row, 6 ); - gatheringSubCategory = exdData->getField< uint16_t >( row, 7 ); + gatheringPointBonus.push_back( exdData->getField< uint16_t >( row, 5 ) ); + territoryType = exdData->getField< uint16_t >( row, 6 ); + placeName = exdData->getField< uint16_t >( row, 7 ); + gatheringSubCategory = exdData->getField< uint16_t >( row, 8 ); } Sapphire::Data::GatheringPointBase::GatheringPointBase( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3935,6 +3978,7 @@ Sapphire::Data::GatheringSubCategory::GatheringSubCategory( uint32_t row_id, Sap auto row = exdData->m_GatheringSubCategoryDat.get_row( row_id ); gatheringType = exdData->getField< uint8_t >( row, 0 ); classJob = exdData->getField< uint8_t >( row, 1 ); + quest = exdData->getField< uint32_t >( row, 2 ); division = exdData->getField< uint16_t >( row, 3 ); item = exdData->getField< int32_t >( row, 4 ); folkloreBook = exdData->getField< std::string >( row, 5 ); @@ -4393,7 +4437,21 @@ Sapphire::Data::GeneralAction::GeneralAction( uint32_t row_id, Sapphire::Data::E Sapphire::Data::GFATE::GFATE( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GFATEDat.get_row( row_id ); - icon.push_back( exdData->getField< uint32_t >( row, 22 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 7 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 8 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 9 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 10 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 11 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 12 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 13 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 14 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 15 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 16 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 17 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 18 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 19 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 20 ) ); + lGBPopRange.push_back( exdData->getField< uint32_t >( row, 21 ) ); icon.push_back( exdData->getField< uint32_t >( row, 23 ) ); icon.push_back( exdData->getField< uint32_t >( row, 24 ) ); icon.push_back( exdData->getField< uint32_t >( row, 25 ) ); @@ -5014,23 +5072,23 @@ Sapphire::Data::HugeCraftworksNpc::HugeCraftworksNpc( uint32_t row_id, Sapphire: qtyRequested.push_back( exdData->getField< uint8_t >( row, 10 ) ); qtyRequested.push_back( exdData->getField< uint8_t >( row, 11 ) ); qtyRequested.push_back( exdData->getField< uint8_t >( row, 12 ) ); - itemReward.push_back( exdData->getField< uint32_t >( row, 52 ) ); - itemReward.push_back( exdData->getField< uint32_t >( row, 53 ) ); - itemReward.push_back( exdData->getField< uint32_t >( row, 54 ) ); - itemReward.push_back( exdData->getField< uint32_t >( row, 55 ) ); - qtyItemReward.push_back( exdData->getField< uint8_t >( row, 64 ) ); - qtyItemReward.push_back( exdData->getField< uint8_t >( row, 65 ) ); - qtyItemReward.push_back( exdData->getField< uint8_t >( row, 66 ) ); - qtyItemReward.push_back( exdData->getField< uint8_t >( row, 67 ) ); - itemUnkown.push_back( exdData->getField< uint32_t >( row, 70 ) ); - itemUnkown.push_back( exdData->getField< uint32_t >( row, 71 ) ); - itemUnkown.push_back( exdData->getField< uint32_t >( row, 72 ) ); - itemUnkown.push_back( exdData->getField< uint32_t >( row, 73 ) ); - qtyItemUnkown.push_back( exdData->getField< uint8_t >( row, 82 ) ); - qtyItemUnkown.push_back( exdData->getField< uint8_t >( row, 83 ) ); - qtyItemUnkown.push_back( exdData->getField< uint8_t >( row, 84 ) ); - qtyItemUnkown.push_back( exdData->getField< uint8_t >( row, 85 ) ); - transient = exdData->getField< std::string >( row, 86 ); + itemReward.push_back( exdData->getField< uint8_t >( row, 52 ) ); + itemReward.push_back( exdData->getField< uint8_t >( row, 53 ) ); + itemReward.push_back( exdData->getField< uint8_t >( row, 54 ) ); + itemReward.push_back( exdData->getField< uint8_t >( row, 55 ) ); + qtyItemReward.push_back( exdData->getField< bool >( row, 64 ) ); + qtyItemReward.push_back( exdData->getField< bool >( row, 65 ) ); + qtyItemReward.push_back( exdData->getField< bool >( row, 66 ) ); + qtyItemReward.push_back( exdData->getField< bool >( row, 67 ) ); + itemUnkown.push_back( exdData->getField< uint8_t >( row, 70 ) ); + itemUnkown.push_back( exdData->getField< uint8_t >( row, 71 ) ); + itemUnkown.push_back( exdData->getField< uint8_t >( row, 72 ) ); + itemUnkown.push_back( exdData->getField< uint8_t >( row, 73 ) ); + qtyItemUnkown.push_back( exdData->getField< bool >( row, 82 ) ); + qtyItemUnkown.push_back( exdData->getField< bool >( row, 83 ) ); + qtyItemUnkown.push_back( exdData->getField< bool >( row, 84 ) ); + qtyItemUnkown.push_back( exdData->getField< bool >( row, 85 ) ); + transient = exdData->getField< uint8_t >( row, 86 ); } Sapphire::Data::HugeCraftworksRank::HugeCraftworksRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -5988,7 +6046,7 @@ Sapphire::Data::HWDLevelChangeDeception::HWDLevelChangeDeception( uint32_t row_i Sapphire::Data::HWDSharedGroup::HWDSharedGroup( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HWDSharedGroupDat.get_row( row_id, subRow ); - lGB = exdData->getField< uint32_t >( row, 0 ); + lGBSharedGroup = exdData->getField< uint32_t >( row, 0 ); param = exdData->getField< uint8_t >( row, 1 ); } @@ -6039,7 +6097,6 @@ Sapphire::Data::IKDSpot::IKDSpot( uint32_t row_id, Sapphire::Data::ExdDataGenera Sapphire::Data::InclusionShop::InclusionShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_InclusionShopDat.get_row( row_id ); - category.push_back( exdData->getField< uint16_t >( row, 2 ) ); category.push_back( exdData->getField< uint16_t >( row, 3 ) ); category.push_back( exdData->getField< uint16_t >( row, 4 ) ); category.push_back( exdData->getField< uint16_t >( row, 5 ) ); @@ -6069,6 +6126,7 @@ Sapphire::Data::InclusionShop::InclusionShop( uint32_t row_id, Sapphire::Data::E category.push_back( exdData->getField< uint16_t >( row, 29 ) ); category.push_back( exdData->getField< uint16_t >( row, 30 ) ); category.push_back( exdData->getField< uint16_t >( row, 31 ) ); + category.push_back( exdData->getField< uint16_t >( row, 32 ) ); } Sapphire::Data::InclusionShopCategory::InclusionShopCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -6085,6 +6143,16 @@ Sapphire::Data::InclusionShopSeries::InclusionShopSeries( uint32_t row_id, uint3 specialShop = exdData->getField< uint32_t >( row, 0 ); } +Sapphire::Data::InclusionShopWelcom::InclusionShopWelcom( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_InclusionShopWelcomDat.get_row( row_id ); +} + +Sapphire::Data::InclusionShopWelcomText::InclusionShopWelcomText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_InclusionShopWelcomTextDat.get_row( row_id ); +} + Sapphire::Data::IndividualWeather::IndividualWeather( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_IndividualWeatherDat.get_row( row_id ); @@ -6120,18 +6188,20 @@ Sapphire::Data::InstanceContent::InstanceContent( uint32_t row_id, Sapphire::Dat instanceContentTextDataObjectiveStart = exdData->getField< uint32_t >( row, 14 ); instanceContentTextDataObjectiveEnd = exdData->getField< uint32_t >( row, 15 ); sortKey = exdData->getField< uint16_t >( row, 16 ); - instanceClearExp = exdData->getField< uint32_t >( row, 17 ); + newPlayerBonusGil = exdData->getField< uint32_t >( row, 17 ); + newPlayerBonusExp = exdData->getField< uint32_t >( row, 18 ); newPlayerBonusA = exdData->getField< uint16_t >( row, 19 ); - finalBossCurrencyC = exdData->getField< uint16_t >( row, 20 ); - finalBossCurrencyA = exdData->getField< uint32_t >( row, 22 ); - finalBossCurrencyB = exdData->getField< uint16_t >( row, 23 ); - newPlayerBonusB = exdData->getField< uint16_t >( row, 24 ); - instanceClearGil = exdData->getField< uint32_t >( row, 46 ); - instanceContentRewardItem = exdData->getField< uint32_t >( row, 47 ); - finalBossExp = exdData->getField< uint8_t >( row, 49 ); - instanceContentBuff = exdData->getField< uint32_t >( row, 50 ); - reqInstance = exdData->getField< int32_t >( row, 51 ); - partyCondition = exdData->getField< int16_t >( row, 53 ); + newPlayerBonusB = exdData->getField< uint16_t >( row, 20 ); + finalBossExp = exdData->getField< uint32_t >( row, 21 ); + finalBossCurrencyA = exdData->getField< uint16_t >( row, 23 ); + finalBossCurrencyB = exdData->getField< uint16_t >( row, 24 ); + finalBossCurrencyC = exdData->getField< uint16_t >( row, 25 ); + instanceClearExp = exdData->getField< uint32_t >( row, 46 ); + instanceClearGil = exdData->getField< uint32_t >( row, 47 ); + instanceContentRewardItem = exdData->getField< uint32_t >( row, 48 ); + instanceContentBuff = exdData->getField< int32_t >( row, 51 ); + reqInstance = exdData->getField< uint32_t >( row, 53 ); + partyCondition = exdData->getField< int16_t >( row, 54 ); } Sapphire::Data::InstanceContentBuff::InstanceContentBuff( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -6154,6 +6224,11 @@ Sapphire::Data::InstanceContentGuide::InstanceContentGuide( uint32_t row_id, Sap instance = exdData->getField< uint32_t >( row, 0 ); } +Sapphire::Data::InstanceContentQICData::InstanceContentQICData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_InstanceContentQICDataDat.get_row( row_id ); +} + Sapphire::Data::InstanceContentTextData::InstanceContentTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_InstanceContentTextDataDat.get_row( row_id ); @@ -6224,11 +6299,13 @@ Sapphire::Data::Item::Item( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e 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 ) + + for (int i = 0; i < 6; ++i) { - param[i].baseparam = exdData->getField< uint8_t >( row, 59 + i * 2 ); - param[i].value = exdData->getField< int16_t >( row, 60 + i * 2 ); + param[i].baseparam = exdData->getField< uint8_t >(row, 59 + i * 2); + param[i].value = exdData->getField< int16_t >(row, 60 + i * 2); } + } Sapphire::Data::ItemAction::ItemAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -6358,6 +6435,22 @@ Sapphire::Data::ItemLevel::ItemLevel( uint32_t row_id, Sapphire::Data::ExdDataGe perception = exdData->getField< uint16_t >( row, 72 ); } +Sapphire::Data::ItemRepairPrice::ItemRepairPrice( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_ItemRepairPriceDat.get_row( row_id ); +} + +Sapphire::Data::ItemRepairResource::ItemRepairResource( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_ItemRepairResourceDat.get_row( row_id ); + item = exdData->getField< uint32_t >( row, 0 ); +} + +Sapphire::Data::ItemRetainerLevelUp::ItemRetainerLevelUp( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_ItemRetainerLevelUpDat.get_row( row_id ); +} + Sapphire::Data::ItemSearchCategory::ItemSearchCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemSearchCategoryDat.get_row( row_id ); @@ -6386,6 +6479,11 @@ Sapphire::Data::ItemSpecialBonus::ItemSpecialBonus( uint32_t row_id, Sapphire::D name = exdData->getField< std::string >( row, 0 ); } +Sapphire::Data::ItemStainCondition::ItemStainCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_ItemStainConditionDat.get_row( row_id ); +} + Sapphire::Data::ItemUICategory::ItemUICategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemUICategoryDat.get_row( row_id ); @@ -6723,7 +6821,12 @@ Sapphire::Data::Map::Map( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exd 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 ); + quest = exdData->getField< int32_t >( row, 1 ); +} + +Sapphire::Data::MapExclusive::MapExclusive( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_MapExclusiveDat.get_row( row_id ); } Sapphire::Data::MapMarker::MapMarker( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) @@ -6754,6 +6857,11 @@ Sapphire::Data::MapSymbol::MapSymbol( uint32_t row_id, Sapphire::Data::ExdDataGe displayNavi = exdData->getField< bool >( row, 2 ); } +Sapphire::Data::MapType::MapType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_MapTypeDat.get_row( row_id ); +} + Sapphire::Data::Marker::Marker( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MarkerDat.get_row( row_id ); @@ -6787,6 +6895,11 @@ Sapphire::Data::Materia::Materia( uint32_t row_id, Sapphire::Data::ExdDataGenera value.push_back( exdData->getField< int16_t >( row, 20 ) ); } +Sapphire::Data::MateriaGrade::MateriaGrade( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_MateriaGradeDat.get_row( row_id ); +} + Sapphire::Data::MateriaJoinRate::MateriaJoinRate( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MateriaJoinRateDat.get_row( row_id ); @@ -7015,38 +7128,40 @@ Sapphire::Data::MountAction::MountAction( uint32_t row_id, Sapphire::Data::ExdDa Sapphire::Data::MountCustomize::MountCustomize( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MountCustomizeDat.get_row( row_id ); - hyurMaleScale = exdData->getField< uint16_t >( row, 1 ); - hyurFemaleScale = exdData->getField< uint16_t >( row, 2 ); - elezenMaleScale = exdData->getField< uint16_t >( row, 3 ); - elezenFemaleScale = exdData->getField< uint16_t >( row, 4 ); - lalaMaleScale = exdData->getField< uint16_t >( row, 5 ); - lalaFemaleScale = exdData->getField< uint16_t >( row, 6 ); - miqoMaleScale = exdData->getField< uint16_t >( row, 7 ); - miqoFemaleScale = exdData->getField< uint16_t >( row, 8 ); - roeMaleScale = exdData->getField< uint16_t >( row, 9 ); - roeFemaleScale = exdData->getField< uint16_t >( row, 10 ); - auRaMaleScale = exdData->getField< uint16_t >( row, 11 ); - auRaFemaleScale = exdData->getField< uint16_t >( row, 12 ); - hrothgarMaleScale = exdData->getField< uint16_t >( row, 13 ); - hrothgarFemaleScale = exdData->getField< uint16_t >( row, 14 ); - vieraMaleScale = exdData->getField< uint16_t >( row, 15 ); - vieraFemaleScale = exdData->getField< uint16_t >( row, 16 ); - hyurMaleCameraHeight = exdData->getField< uint8_t >( row, 17 ); - hyurFemaleCameraHeight = exdData->getField< uint8_t >( row, 18 ); - elezenMaleCameraHeight = exdData->getField< uint8_t >( row, 19 ); - elezenFemaleCameraHeight = exdData->getField< uint8_t >( row, 20 ); - lalaMaleCameraHeight = exdData->getField< uint8_t >( row, 21 ); - lalaFemaleCameraHeight = exdData->getField< uint8_t >( row, 22 ); - miqoMaleCameraHeight = exdData->getField< uint8_t >( row, 23 ); - miqoFemaleCameraHeight = exdData->getField< uint8_t >( row, 24 ); - roeMaleCameraHeight = exdData->getField< uint8_t >( row, 25 ); - roeFemaleCameraHeight = exdData->getField< uint8_t >( row, 26 ); - auRaMaleCameraHeight = exdData->getField< uint8_t >( row, 27 ); - auRaFemaleCameraHeight = exdData->getField< uint8_t >( row, 28 ); - hrothgarMaleCameraHeight = exdData->getField< uint8_t >( row, 29 ); - hrothgarRoeFemaleCameraHeight = exdData->getField< uint8_t >( row, 30 ); - vieraMaleCameraHeight = exdData->getField< uint8_t >( row, 31 ); - vieraFemaleCameraHeight = exdData->getField< uint8_t >( row, 32 ); + hyurMidlanderMaleScale = exdData->getField< uint16_t >( row, 1 ); + hyurMidlanderFemaleScale = exdData->getField< uint16_t >( row, 2 ); + hyurHighlanderMaleScale = exdData->getField< uint16_t >( row, 3 ); + hyurHighlanderFemaleScale = exdData->getField< uint16_t >( row, 4 ); + elezenMaleScale = exdData->getField< uint16_t >( row, 5 ); + elezenFemaleScale = exdData->getField< uint16_t >( row, 6 ); + lalaMaleScale = exdData->getField< uint16_t >( row, 7 ); + lalaFemaleScale = exdData->getField< uint16_t >( row, 8 ); + miqoMaleScale = exdData->getField< uint16_t >( row, 9 ); + miqoFemaleScale = exdData->getField< uint16_t >( row, 10 ); + roeMaleScale = exdData->getField< uint16_t >( row, 11 ); + roeFemaleScale = exdData->getField< uint16_t >( row, 12 ); + auRaMaleScale = exdData->getField< uint16_t >( row, 13 ); + auRaFemaleScale = exdData->getField< uint16_t >( row, 14 ); + hrothgarMaleScale = exdData->getField< uint16_t >( row, 15 ); + vieraMaleScale = exdData->getField< uint16_t >( row, 16 ); + vieraFemaleScale = exdData->getField< uint16_t >( row, 17 ); + hyurMidlanderMaleCameraHeight = exdData->getField< uint16_t >( row, 18 ); + hyurMidlanderFemaleCameraHeight = exdData->getField< uint8_t >( row, 19 ); + hyurHighlanderMaleCameraHeight = exdData->getField< uint8_t >( row, 20 ); + hyurHighlanderFemaleCameraHeight = exdData->getField< uint8_t >( row, 21 ); + elezenMaleCameraHeight = exdData->getField< uint8_t >( row, 22 ); + elezenFemaleCameraHeight = exdData->getField< uint8_t >( row, 23 ); + lalaMaleCameraHeight = exdData->getField< uint8_t >( row, 24 ); + lalaFemaleCameraHeight = exdData->getField< uint8_t >( row, 25 ); + miqoMaleCameraHeight = exdData->getField< uint8_t >( row, 26 ); + miqoFemaleCameraHeight = exdData->getField< uint8_t >( row, 27 ); + roeMaleCameraHeight = exdData->getField< uint8_t >( row, 28 ); + roeFemaleCameraHeight = exdData->getField< uint8_t >( row, 29 ); + auRaMaleCameraHeight = exdData->getField< uint8_t >( row, 30 ); + auRaFemaleCameraHeight = exdData->getField< uint8_t >( row, 31 ); + hrothgarMaleCameraHeight = exdData->getField< uint8_t >( row, 32 ); + vieraMaleCameraHeight = exdData->getField< uint8_t >( row, 33 ); + vieraFemaleCameraHeight = exdData->getField< uint8_t >( row, 34 ); } Sapphire::Data::MountFlyingCondition::MountFlyingCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -7217,11 +7332,11 @@ Sapphire::Data::NpcEquip::NpcEquip( uint32_t row_id, Sapphire::Data::ExdDataGene Sapphire::Data::NpcYell::NpcYell( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_NpcYellDat.get_row( row_id ); - outputType = exdData->getField< uint8_t >( row, 5 ); - balloonTime = exdData->getField< float >( row, 6 ); - isBalloonSlow = exdData->getField< bool >( row, 7 ); - battleTalkTime = exdData->getField< bool >( row, 8 ); - text = exdData->getField< std::string >( row, 10 ); + outputType = exdData->getField< uint8_t >( row, 4 ); + balloonTime = exdData->getField< float >( row, 5 ); + isBalloonSlow = exdData->getField< bool >( row, 6 ); + battleTalkTime = exdData->getField< bool >( row, 7 ); + text = exdData->getField< std::string >( row, 9 ); } Sapphire::Data::Omen::Omen( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -7538,6 +7653,16 @@ Sapphire::Data::PlantPotFlowerSeed::PlantPotFlowerSeed( uint32_t row_id, Sapphir seedIcon.push_back( exdData->getField< uint32_t >( row, 8 ) ); } +Sapphire::Data::PlayerSearchLocation::PlayerSearchLocation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_PlayerSearchLocationDat.get_row( row_id ); +} + +Sapphire::Data::PlayerSearchSubLocation::PlayerSearchSubLocation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_PlayerSearchSubLocationDat.get_row( row_id ); +} + Sapphire::Data::PreHandler::PreHandler( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PreHandlerDat.get_row( row_id ); @@ -7561,13 +7686,13 @@ Sapphire::Data::PresetCamera::PresetCamera( uint32_t row_id, Sapphire::Data::Exd roe = exdData->getField< float >( row, 7 ); hrothgar = exdData->getField< float >( row, 8 ); viera = exdData->getField< float >( row, 9 ); - hyur_F = exdData->getField< float >( row, 10 ); - elezen_F = exdData->getField< float >( row, 11 ); - lalafell_F = exdData->getField< float >( row, 12 ); - miqote_F = exdData->getField< float >( row, 13 ); - roe_F = exdData->getField< float >( row, 14 ); - hrothgar_F = exdData->getField< float >( row, 15 ); - viera_F = exdData->getField< float >( row, 16 ); + hyur_F = exdData->getField< float >( row, 11 ); + elezen_F = exdData->getField< float >( row, 12 ); + lalafell_F = exdData->getField< float >( row, 13 ); + miqote_F = exdData->getField< float >( row, 14 ); + roe_F = exdData->getField< float >( row, 15 ); + hrothgar_F = exdData->getField< float >( row, 16 ); + viera_F = exdData->getField< float >( row, 17 ); } Sapphire::Data::PresetCameraAdjust::PresetCameraAdjust( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -7691,6 +7816,8 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* beastTribe = exdData->getField< uint8_t >( row, 31 ); beastReputationRank = exdData->getField< uint8_t >( row, 32 ); beastReputationValue = exdData->getField< uint16_t >( row, 33 ); + satisfactionNpc = exdData->getField< uint8_t >( row, 34 ); + satisfactionLevel = exdData->getField< uint8_t >( row, 35 ); mountRequired = exdData->getField< int32_t >( row, 36 ); isHouseRequired = exdData->getField< bool >( row, 37 ); deliveryQuest = exdData->getField< uint8_t >( row, 38 ); @@ -8926,9 +9053,11 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* countableNum.push_back( exdData->getField< uint8_t >( row, 1436 ) ); levelMax = exdData->getField< uint8_t >( row, 1437 ); classJobRequired = exdData->getField< uint8_t >( row, 1438 ); + questRewardOtherDisplay = exdData->getField< uint8_t >( row, 1439 ); expFactor = exdData->getField< uint16_t >( row, 1440 ); gilReward = exdData->getField< uint32_t >( row, 1441 ); - gCSeals = exdData->getField< uint32_t >( row, 1443 ); + currencyReward = exdData->getField< uint32_t >( row, 1442 ); + currencyRewardCount = 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 ) ); @@ -8936,65 +9065,68 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* itemCountCatalyst.push_back( exdData->getField< uint8_t >( row, 1448 ) ); itemCountCatalyst.push_back( exdData->getField< uint8_t >( row, 1449 ) ); itemRewardType = exdData->getField< uint8_t >( row, 1450 ); - itemReward0.push_back( exdData->getField< uint32_t >( row, 1451 ) ); - itemReward0.push_back( exdData->getField< uint32_t >( row, 1452 ) ); - itemReward0.push_back( exdData->getField< uint32_t >( row, 1453 ) ); - itemReward0.push_back( exdData->getField< uint32_t >( row, 1454 ) ); - itemReward0.push_back( exdData->getField< uint32_t >( row, 1455 ) ); - itemReward0.push_back( exdData->getField< uint32_t >( row, 1456 ) ); - itemReward0.push_back( exdData->getField< uint32_t >( row, 1457 ) ); - itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1458 ) ); - itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1459 ) ); - itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1460 ) ); - itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1461 ) ); - itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1462 ) ); - itemCountReward0.push_back( exdData->getField< uint8_t >( row, 1463 ) ); - stainReward0.push_back( exdData->getField< uint8_t >( row, 1465 ) ); - stainReward0.push_back( exdData->getField< uint8_t >( row, 1466 ) ); - stainReward0.push_back( exdData->getField< uint8_t >( row, 1467 ) ); - stainReward0.push_back( exdData->getField< uint8_t >( row, 1468 ) ); - stainReward0.push_back( exdData->getField< uint8_t >( row, 1469 ) ); - stainReward0.push_back( exdData->getField< uint8_t >( row, 1470 ) ); - itemReward1.push_back( exdData->getField< uint32_t >( row, 1472 ) ); - itemReward1.push_back( exdData->getField< uint32_t >( row, 1473 ) ); - itemReward1.push_back( exdData->getField< uint32_t >( row, 1474 ) ); - itemReward1.push_back( exdData->getField< uint32_t >( row, 1475 ) ); - itemReward1.push_back( exdData->getField< uint32_t >( row, 1476 ) ); - itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1477 ) ); - itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1478 ) ); - itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1479 ) ); - itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1480 ) ); - itemCountReward1.push_back( exdData->getField< uint8_t >( row, 1481 ) ); - isHQReward1.push_back( exdData->getField< bool >( row, 1482 ) ); - isHQReward1.push_back( exdData->getField< bool >( row, 1483 ) ); - isHQReward1.push_back( exdData->getField< bool >( row, 1484 ) ); - isHQReward1.push_back( exdData->getField< bool >( row, 1485 ) ); - isHQReward1.push_back( exdData->getField< bool >( row, 1486 ) ); - stainReward1.push_back( exdData->getField< uint8_t >( row, 1487 ) ); - stainReward1.push_back( exdData->getField< uint8_t >( row, 1488 ) ); - stainReward1.push_back( exdData->getField< uint8_t >( row, 1489 ) ); - stainReward1.push_back( exdData->getField< uint8_t >( row, 1490 ) ); - stainReward1.push_back( exdData->getField< uint8_t >( row, 1491 ) ); - emoteReward = exdData->getField< uint8_t >( row, 1492 ); - actionReward = exdData->getField< uint16_t >( row, 1493 ); - generalActionReward.push_back( exdData->getField< uint8_t >( row, 1494 ) ); - generalActionReward.push_back( exdData->getField< uint8_t >( row, 1495 ) ); - systemReward0 = exdData->getField< uint16_t >( row, 1496 ); - otherReward = exdData->getField< uint8_t >( row, 1497 ); - systemReward1 = exdData->getField< uint16_t >( row, 1498 ); - gCTypeReward = exdData->getField< uint16_t >( row, 1499 ); - instanceContentUnlock = exdData->getField< uint32_t >( row, 1500 ); - tomestoneReward = exdData->getField< uint8_t >( row, 1502 ); - tomestoneCountReward = exdData->getField< uint8_t >( row, 1503 ); - reputationReward = exdData->getField< uint8_t >( row, 1504 ); - placeName = exdData->getField< uint16_t >( row, 1505 ); - journalGenre = exdData->getField< uint8_t >( row, 1506 ); - icon = exdData->getField< uint32_t >( row, 1508 ); - iconSpecial = exdData->getField< uint32_t >( row, 1509 ); - introduction = exdData->getField< bool >( row, 1510 ); - hideOfferIcon = exdData->getField< bool >( row, 1511 ); - eventIconType = exdData->getField< uint8_t >( row, 1512 ); - sortKey = exdData->getField< uint16_t >( row, 1514 ); + itemReward.push_back( exdData->getField< uint32_t >( row, 1451 ) ); + itemReward.push_back( exdData->getField< uint32_t >( row, 1452 ) ); + itemReward.push_back( exdData->getField< uint32_t >( row, 1453 ) ); + itemReward.push_back( exdData->getField< uint32_t >( row, 1454 ) ); + itemReward.push_back( exdData->getField< uint32_t >( row, 1455 ) ); + itemReward.push_back( exdData->getField< uint32_t >( row, 1456 ) ); + itemReward.push_back( exdData->getField< uint32_t >( row, 1457 ) ); + itemCountReward.push_back( exdData->getField< uint8_t >( row, 1458 ) ); + itemCountReward.push_back( exdData->getField< uint8_t >( row, 1459 ) ); + itemCountReward.push_back( exdData->getField< uint8_t >( row, 1460 ) ); + itemCountReward.push_back( exdData->getField< uint8_t >( row, 1461 ) ); + itemCountReward.push_back( exdData->getField< uint8_t >( row, 1462 ) ); + itemCountReward.push_back( exdData->getField< uint8_t >( row, 1463 ) ); + itemCountReward.push_back( exdData->getField< uint8_t >( row, 1464 ) ); + stainReward.push_back( exdData->getField< uint8_t >( row, 1472 ) ); + stainReward.push_back( exdData->getField< uint8_t >( row, 1473 ) ); + stainReward.push_back( exdData->getField< uint8_t >( row, 1474 ) ); + stainReward.push_back( exdData->getField< uint8_t >( row, 1475 ) ); + stainReward.push_back( exdData->getField< uint8_t >( row, 1476 ) ); + stainReward.push_back( exdData->getField< uint8_t >( row, 1477 ) ); + stainReward.push_back( exdData->getField< uint8_t >( row, 1478 ) ); + optionalItemReward.push_back( exdData->getField< uint32_t >( row, 1479 ) ); + optionalItemReward.push_back( exdData->getField< uint32_t >( row, 1480 ) ); + optionalItemReward.push_back( exdData->getField< uint32_t >( row, 1481 ) ); + optionalItemReward.push_back( exdData->getField< uint32_t >( row, 1482 ) ); + optionalItemReward.push_back( exdData->getField< uint32_t >( row, 1483 ) ); + optionalItemCountReward.push_back( exdData->getField< uint8_t >( row, 1484 ) ); + optionalItemCountReward.push_back( exdData->getField< uint8_t >( row, 1485 ) ); + optionalItemCountReward.push_back( exdData->getField< uint8_t >( row, 1486 ) ); + optionalItemCountReward.push_back( exdData->getField< uint8_t >( row, 1487 ) ); + optionalItemCountReward.push_back( exdData->getField< uint8_t >( row, 1488 ) ); + optionalItemIsHQReward.push_back( exdData->getField< bool >( row, 1489 ) ); + optionalItemIsHQReward.push_back( exdData->getField< bool >( row, 1490 ) ); + optionalItemIsHQReward.push_back( exdData->getField< bool >( row, 1491 ) ); + optionalItemIsHQReward.push_back( exdData->getField< bool >( row, 1492 ) ); + optionalItemIsHQReward.push_back( exdData->getField< bool >( row, 1493 ) ); + optionalItemStainReward.push_back( exdData->getField< uint8_t >( row, 1494 ) ); + optionalItemStainReward.push_back( exdData->getField< uint8_t >( row, 1495 ) ); + optionalItemStainReward.push_back( exdData->getField< uint8_t >( row, 1496 ) ); + optionalItemStainReward.push_back( exdData->getField< uint8_t >( row, 1497 ) ); + optionalItemStainReward.push_back( exdData->getField< uint8_t >( row, 1498 ) ); + emoteReward = exdData->getField< uint8_t >( row, 1499 ); + actionReward = exdData->getField< uint16_t >( row, 1500 ); + generalActionReward.push_back( exdData->getField< uint8_t >( row, 1501 ) ); + generalActionReward.push_back( exdData->getField< uint8_t >( row, 1502 ) ); + systemReward0 = exdData->getField< uint16_t >( row, 1503 ); + otherReward = exdData->getField< uint8_t >( row, 1504 ); + systemReward1 = exdData->getField< uint16_t >( row, 1505 ); + gCTypeReward = exdData->getField< uint16_t >( row, 1506 ); + instanceContentUnlock = exdData->getField< uint32_t >( row, 1507 ); + tomestone = exdData->getField< uint8_t >( row, 1508 ); + tomestoneReward = exdData->getField< uint8_t >( row, 1509 ); + tomestoneCountReward = exdData->getField< uint8_t >( row, 1510 ); + reputationReward = exdData->getField< uint8_t >( row, 1511 ); + placeName = exdData->getField< uint16_t >( row, 1512 ); + journalGenre = exdData->getField< uint8_t >( row, 1513 ); + icon = exdData->getField< uint32_t >( row, 1515 ); + iconSpecial = exdData->getField< uint32_t >( row, 1516 ); + introduction = exdData->getField< bool >( row, 1517 ); + hideOfferIcon = exdData->getField< bool >( row, 1518 ); + eventIconType = exdData->getField< uint8_t >( row, 1519 ); + sortKey = exdData->getField< uint16_t >( row, 1521 ); } Sapphire::Data::QuestAcceptAdditionCondition::QuestAcceptAdditionCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -9623,6 +9755,11 @@ Sapphire::Data::RacingChocoboParam::RacingChocoboParam( uint32_t row_id, Sapphir name = exdData->getField< std::string >( row, 0 ); } +Sapphire::Data::RaidFinderParam::RaidFinderParam( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_RaidFinderParamDat.get_row( row_id, subRow ); +} + Sapphire::Data::RecastNavimesh::RecastNavimesh( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RecastNavimeshDat.get_row( row_id ); @@ -9660,6 +9797,7 @@ Sapphire::Data::Recipe::Recipe( uint32_t row_id, Sapphire::Data::ExdDataGenerate quickSynthCraftsmanship = exdData->getField< uint16_t >( row, 34 ); quickSynthControl = exdData->getField< uint16_t >( row, 35 ); secretRecipeBook = exdData->getField< uint16_t >( row, 36 ); + quest = exdData->getField< uint32_t >( row, 37 ); canQuickSynth = exdData->getField< bool >( row, 38 ); canHq = exdData->getField< bool >( row, 39 ); expRewarded = exdData->getField< bool >( row, 40 ); @@ -9679,8 +9817,12 @@ Sapphire::Data::RecipeLevelTable::RecipeLevelTable( uint32_t row_id, Sapphire::D suggestedControl = exdData->getField< uint16_t >( row, 3 ); difficulty = exdData->getField< uint16_t >( row, 4 ); quality = exdData->getField< uint32_t >( row, 5 ); - durability = exdData->getField< uint16_t >( row, 6 ); - conditionsFlag = exdData->getField< uint16_t >( row, 7 ); + progressDivider = exdData->getField< uint8_t >( row, 6 ); + qualityDivider = exdData->getField< uint8_t >( row, 7 ); + progressModifier = exdData->getField< uint8_t >( row, 8 ); + qualityModifier = exdData->getField< uint8_t >( row, 9 ); + durability = exdData->getField< uint16_t >( row, 10 ); + conditionsFlag = exdData->getField< uint16_t >( row, 11 ); } Sapphire::Data::RecipeLookup::RecipeLookup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -9993,8 +10135,10 @@ Sapphire::Data::RetainerTaskNormal::RetainerTaskNormal( uint32_t row_id, Sapphir quantity0 = exdData->getField< uint8_t >( row, 1 ); quantity1 = exdData->getField< uint8_t >( row, 2 ); quantity2 = exdData->getField< uint8_t >( row, 3 ); - gatheringLog = exdData->getField< int16_t >( row, 4 ); - fishingLog = exdData->getField< int16_t >( row, 5 ); + quantity3 = exdData->getField< uint8_t >( row, 4 ); + quantity4 = exdData->getField< uint8_t >( row, 5 ); + gatheringLog = exdData->getField< int16_t >( row, 6 ); + fishingLog = exdData->getField< int16_t >( row, 7 ); } Sapphire::Data::RetainerTaskParameter::RetainerTaskParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -10002,10 +10146,16 @@ Sapphire::Data::RetainerTaskParameter::RetainerTaskParameter( uint32_t row_id, S auto row = exdData->m_RetainerTaskParameterDat.get_row( row_id ); itemLevelDoW.push_back( exdData->getField< int16_t >( row, 0 ) ); itemLevelDoW.push_back( exdData->getField< int16_t >( row, 1 ) ); - gatheringDoL.push_back( exdData->getField< int16_t >( row, 2 ) ); - gatheringDoL.push_back( exdData->getField< int16_t >( row, 3 ) ); - gatheringFSH.push_back( exdData->getField< int16_t >( row, 4 ) ); - gatheringFSH.push_back( exdData->getField< int16_t >( row, 5 ) ); + itemLevelDoW.push_back( exdData->getField< int16_t >( row, 2 ) ); + itemLevelDoW.push_back( exdData->getField< int16_t >( row, 3 ) ); + perceptionDoL.push_back( exdData->getField< int16_t >( row, 4 ) ); + perceptionDoL.push_back( exdData->getField< int16_t >( row, 5 ) ); + perceptionDoL.push_back( exdData->getField< int16_t >( row, 6 ) ); + perceptionDoL.push_back( exdData->getField< int16_t >( row, 7 ) ); + perceptionFSH.push_back( exdData->getField< int16_t >( row, 8 ) ); + perceptionFSH.push_back( exdData->getField< int16_t >( row, 9 ) ); + perceptionFSH.push_back( exdData->getField< int16_t >( row, 10 ) ); + perceptionFSH.push_back( exdData->getField< int16_t >( row, 11 ) ); } Sapphire::Data::RetainerTaskRandom::RetainerTaskRandom( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -10069,6 +10219,8 @@ Sapphire::Data::RPParameter::RPParameter( uint32_t row_id, Sapphire::Data::ExdDa Sapphire::Data::SatisfactionArbitration::SatisfactionArbitration( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SatisfactionArbitrationDat.get_row( row_id, subRow ); + satisfactionLevel = exdData->getField< uint8_t >( row, 0 ); + satisfactionNpc = exdData->getField< uint8_t >( row, 1 ); quest = exdData->getField< uint32_t >( row, 2 ); } @@ -10121,7 +10273,9 @@ 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 ); + addon = exdData->getField< uint32_t >( row, 2 ); + questChapter = exdData->getField< uint32_t >( row, 3 ); + name = exdData->getField< std::string >( row, 4 ); } Sapphire::Data::ScenarioTreeTips::ScenarioTreeTips( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -10162,6 +10316,16 @@ Sapphire::Data::SecretRecipeBook::SecretRecipeBook( uint32_t row_id, Sapphire::D name = exdData->getField< std::string >( row, 1 ); } +Sapphire::Data::SharlayanCraftWorks::SharlayanCraftWorks( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_SharlayanCraftWorksDat.get_row( row_id ); +} + +Sapphire::Data::SharlayanCraftWorksSupply::SharlayanCraftWorksSupply( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_SharlayanCraftWorksSupplyDat.get_row( row_id ); +} + Sapphire::Data::SkyIsland2Mission::SkyIsland2Mission( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SkyIsland2MissionDat.get_row( row_id ); @@ -10200,6 +10364,37 @@ Sapphire::Data::SkyIsland2RangeType::SkyIsland2RangeType( uint32_t row_id, Sapph type = exdData->getField< uint8_t >( row, 0 ); } +Sapphire::Data::Snipe::Snipe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_SnipeDat.get_row( row_id ); + lGBTargetMarker = exdData->getField< uint32_t >( row, 0 ); + vFXFire = exdData->getField< std::string >( row, 11 ); + vFXHit = exdData->getField< std::string >( row, 12 ); + vFXMiss = exdData->getField< std::string >( row, 13 ); + vFXAdditional = exdData->getField< std::string >( row, 14 ); + lGBEventNPC0.push_back( exdData->getField< uint32_t >( row, 17 ) ); + lGBEventNPC0.push_back( exdData->getField< uint32_t >( row, 18 ) ); + lGBEventNPC0.push_back( exdData->getField< uint32_t >( row, 19 ) ); + lGBEventNPC0.push_back( exdData->getField< uint32_t >( row, 20 ) ); + lGBEventNPC0.push_back( exdData->getField< uint32_t >( row, 21 ) ); + lGBEventNPC0.push_back( exdData->getField< uint32_t >( row, 22 ) ); + lGBEventNPC0.push_back( exdData->getField< uint32_t >( row, 23 ) ); + lGBEventNPC0.push_back( exdData->getField< uint32_t >( row, 24 ) ); + lGBEventNPC1.push_back( exdData->getField< uint32_t >( row, 73 ) ); + lGBEventNPC1.push_back( exdData->getField< uint32_t >( row, 74 ) ); + lGBEventNPC1.push_back( exdData->getField< uint32_t >( row, 75 ) ); + lGBEventNPC1.push_back( exdData->getField< uint32_t >( row, 76 ) ); + lGBEventNPC1.push_back( exdData->getField< uint32_t >( row, 77 ) ); + lGBEventNPC1.push_back( exdData->getField< uint32_t >( row, 78 ) ); + lGBEventNPC1.push_back( exdData->getField< uint32_t >( row, 79 ) ); + lGBEventNPC1.push_back( exdData->getField< uint32_t >( row, 80 ) ); + objective0 = exdData->getField< std::string >( row, 93 ); + hint0 = exdData->getField< std::string >( row, 94 ); + objective1 = exdData->getField< std::string >( row, 95 ); + hint1 = exdData->getField< std::string >( row, 96 ); + actionText = exdData->getField< std::string >( row, 104 ); +} + Sapphire::Data::SnipeTalk::SnipeTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SnipeTalkDat.get_row( row_id ); @@ -10213,6 +10408,11 @@ Sapphire::Data::SnipeTalkName::SnipeTalkName( uint32_t row_id, Sapphire::Data::E name = exdData->getField< std::string >( row, 0 ); } +Sapphire::Data::SpearfishingComboTarget::SpearfishingComboTarget( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_SpearfishingComboTargetDat.get_row( row_id ); +} + Sapphire::Data::SpearfishingItem::SpearfishingItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SpearfishingItemDat.get_row( row_id ); @@ -10244,6 +10444,11 @@ Sapphire::Data::SpearfishingRecordPage::SpearfishingRecordPage( uint32_t row_id, image = exdData->getField< int32_t >( row, 4 ); } +Sapphire::Data::SpearfishingSilhouette::SpearfishingSilhouette( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_SpearfishingSilhouetteDat.get_row( row_id ); +} + Sapphire::Data::SpecialShop::SpecialShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SpecialShopDat.get_row( row_id ); @@ -10469,21 +10674,21 @@ Sapphire::Data::Status::Status( uint32_t row_id, Sapphire::Data::ExdDataGenerate name = exdData->getField< std::string >( row, 0 ); description = exdData->getField< std::string >( row, 1 ); icon = exdData->getField< uint16_t >( row, 2 ); - maxStacks = exdData->getField< uint8_t >( row, 3 ); - category = exdData->getField< uint8_t >( row, 5 ); - hitEffect = exdData->getField< uint8_t >( row, 6 ); - vFX = exdData->getField< uint16_t >( row, 7 ); - lockMovement = exdData->getField< bool >( row, 8 ); - lockActions = exdData->getField< bool >( row, 10 ); - lockControl = exdData->getField< bool >( row, 11 ); - transfiguration = exdData->getField< bool >( row, 12 ); - canDispel = exdData->getField< bool >( row, 14 ); - inflictedByActor = exdData->getField< bool >( row, 15 ); - isPermanent = exdData->getField< bool >( row, 16 ); - partyListPriority = exdData->getField< uint8_t >( row, 17 ); - log = exdData->getField< uint16_t >( row, 24 ); - isFcBuff = exdData->getField< bool >( row, 25 ); - invisibility = exdData->getField< bool >( row, 26 ); + maxStacks = exdData->getField< uint8_t >( row, 4 ); + category = exdData->getField< uint8_t >( row, 6 ); + hitEffect = exdData->getField< uint8_t >( row, 7 ); + vFX = exdData->getField< uint16_t >( row, 8 ); + lockMovement = exdData->getField< bool >( row, 9 ); + lockActions = exdData->getField< bool >( row, 11 ); + lockControl = exdData->getField< bool >( row, 12 ); + transfiguration = exdData->getField< bool >( row, 13 ); + canDispel = exdData->getField< bool >( row, 15 ); + inflictedByActor = exdData->getField< bool >( row, 16 ); + isPermanent = exdData->getField< bool >( row, 17 ); + partyListPriority = exdData->getField< uint8_t >( row, 18 ); + log = exdData->getField< uint16_t >( row, 25 ); + isFcBuff = exdData->getField< bool >( row, 26 ); + invisibility = exdData->getField< bool >( row, 27 ); } Sapphire::Data::StatusHitEffect::StatusHitEffect( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -12373,12 +12578,16 @@ Sapphire::Data::SubmarineExploration::SubmarineExploration( uint32_t row_id, Sap auto row = exdData->m_SubmarineExplorationDat.get_row( row_id ); destination = exdData->getField< std::string >( row, 0 ); location = exdData->getField< std::string >( row, 1 ); + x = exdData->getField< int16_t >( row, 2 ); + y = exdData->getField< int16_t >( row, 3 ); + z = exdData->getField< int16_t >( row, 4 ); map = exdData->getField< uint8_t >( row, 5 ); + passengers = exdData->getField< bool >( row, 6 ); stars = exdData->getField< uint8_t >( row, 7 ); rankReq = exdData->getField< uint8_t >( row, 8 ); ceruleumTankReq = exdData->getField< uint8_t >( row, 9 ); - durationmin = exdData->getField< uint16_t >( row, 10 ); - distanceForSurvey = exdData->getField< uint8_t >( row, 11 ); + surveyDurationmin = exdData->getField< uint16_t >( row, 10 ); + surveyDistance = exdData->getField< uint8_t >( row, 11 ); expReward = exdData->getField< uint32_t >( row, 12 ); } @@ -12429,6 +12638,11 @@ Sapphire::Data::SwitchTalkVariation::SwitchTalkVariation( uint32_t row_id, uint3 defaultTalk = exdData->getField< uint32_t >( row, 3 ); } +Sapphire::Data::TelepoRelay::TelepoRelay( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_TelepoRelayDat.get_row( row_id ); +} + Sapphire::Data::TerritoryType::TerritoryType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TerritoryTypeDat.get_row( row_id ); @@ -12461,6 +12675,11 @@ Sapphire::Data::TerritoryType::TerritoryType( uint32_t row_id, Sapphire::Data::E mountSpeed = exdData->getField< uint8_t >( row, 33 ); } +Sapphire::Data::TerritoryTypeTelepo::TerritoryTypeTelepo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_TerritoryTypeTelepoDat.get_row( row_id ); +} + Sapphire::Data::TerritoryTypeTransient::TerritoryTypeTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TerritoryTypeTransientDat.get_row( row_id ); @@ -12561,15 +12780,15 @@ Sapphire::Data::Transformation::Transformation( uint32_t row_id, Sapphire::Data: action5 = exdData->getField< uint16_t >( row, 16 ); rPParameter = exdData->getField< uint16_t >( row, 18 ); removeAction = exdData->getField< uint16_t >( row, 19 ); - speed = exdData->getField< float >( row, 23 ); - scale = exdData->getField< float >( row, 24 ); - isPvP = exdData->getField< bool >( row, 25 ); - isEvent = exdData->getField< bool >( row, 26 ); - playerCamera = exdData->getField< bool >( row, 27 ); - 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, 35 ); + speed = exdData->getField< float >( row, 24 ); + scale = exdData->getField< float >( row, 25 ); + isPvP = exdData->getField< bool >( row, 26 ); + isEvent = exdData->getField< bool >( row, 27 ); + playerCamera = exdData->getField< bool >( row, 28 ); + startVFX = exdData->getField< uint16_t >( row, 31 ); + endVFX = exdData->getField< uint16_t >( row, 32 ); + action6 = exdData->getField< uint32_t >( row, 33 ); + action7 = exdData->getField< uint16_t >( row, 36 ); } Sapphire::Data::Treasure::Treasure( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -12660,6 +12879,11 @@ Sapphire::Data::TripleTriadCard::TripleTriadCard( uint32_t row_id, Sapphire::Dat description = exdData->getField< std::string >( row, 8 ); } +Sapphire::Data::TripleTriadCardObtain::TripleTriadCardObtain( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_TripleTriadCardObtainDat.get_row( row_id ); +} + Sapphire::Data::TripleTriadCardRarity::TripleTriadCardRarity( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TripleTriadCardRarityDat.get_row( row_id ); @@ -12971,10 +13195,12 @@ Sapphire::Data::WeeklyLotBonus::WeeklyLotBonus( uint32_t row_id, Sapphire::Data: Sapphire::Data::World::World( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WorldDat.get_row( row_id ); - name = exdData->getField< std::string >( row, 0 ); - userType = exdData->getField< uint8_t >( row, 1 ); - dataCenter = exdData->getField< uint8_t >( row, 2 ); - isPublic = exdData->getField< bool >( row, 3 ); + internalName = exdData->getField< std::string >( row, 0 ); + name = exdData->getField< std::string >( row, 1 ); + region = exdData->getField< uint8_t >( row, 2 ); + userType = exdData->getField< uint8_t >( row, 3 ); + dataCenter = exdData->getField< uint8_t >( row, 4 ); + isPublic = exdData->getField< bool >( row, 5 ); } Sapphire::Data::WorldDCGroupType::WorldDCGroupType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -13013,12 +13239,19 @@ Sapphire::Data::YKW::YKW( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exd Sapphire::Data::ZoneSharedGroup::ZoneSharedGroup( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ZoneSharedGroupDat.get_row( row_id, subRow ); - quest1 = exdData->getField< uint32_t >( row, 2 ); - quest2 = exdData->getField< uint32_t >( row, 6 ); - quest3 = exdData->getField< uint32_t >( row, 10 ); - quest4 = exdData->getField< uint32_t >( row, 14 ); - quest5 = exdData->getField< uint32_t >( row, 18 ); - quest6 = exdData->getField< uint32_t >( row, 22 ); + lGBSharedGroup = exdData->getField< uint32_t >( row, 0 ); + quest0 = exdData->getField< uint32_t >( row, 2 ); + seq0 = exdData->getField< uint32_t >( row, 3 ); + quest1 = exdData->getField< uint32_t >( row, 6 ); + seq1 = exdData->getField< uint32_t >( row, 7 ); + quest2 = exdData->getField< uint32_t >( row, 10 ); + seq2 = exdData->getField< uint32_t >( row, 11 ); + quest3 = exdData->getField< uint32_t >( row, 14 ); + seq3 = exdData->getField< uint32_t >( row, 15 ); + quest4 = exdData->getField< uint32_t >( row, 18 ); + seq4 = exdData->getField< uint32_t >( row, 19 ); + quest5 = exdData->getField< uint32_t >( row, 22 ); + seq5 = exdData->getField< uint32_t >( row, 23 ); } @@ -13084,6 +13317,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_AetherialWheelDat = setupDatAccess( "AetherialWheel", xiv::exd::Language::none ); m_AetheryteDat = setupDatAccess( "Aetheryte", xiv::exd::Language::en ); m_AetheryteSystemDefineDat = setupDatAccess( "AetheryteSystemDefine", xiv::exd::Language::none ); + m_AetheryteTransientDat = setupDatAccess( "AetheryteTransient", xiv::exd::Language::none ); m_AirshipExplorationLevelDat = setupDatAccess( "AirshipExplorationLevel", xiv::exd::Language::none ); m_AirshipExplorationLogDat = setupDatAccess( "AirshipExplorationLog", xiv::exd::Language::en ); m_AirshipExplorationParamTypeDat = setupDatAccess( "AirshipExplorationParamType", xiv::exd::Language::en ); @@ -13137,6 +13371,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_BNpcNameDat = setupDatAccess( "BNpcName", xiv::exd::Language::en ); m_BNpcPartsDat = setupDatAccess( "BNpcParts", xiv::exd::Language::none ); m_BNpcStateDat = setupDatAccess( "BNpcState", xiv::exd::Language::none ); + m_BoosterDat = setupDatAccess( "Booster", xiv::exd::Language::none ); m_BuddyDat = setupDatAccess( "Buddy", xiv::exd::Language::none ); m_BuddyActionDat = setupDatAccess( "BuddyAction", xiv::exd::Language::en ); m_BuddyEquipDat = setupDatAccess( "BuddyEquip", xiv::exd::Language::en ); @@ -13290,6 +13525,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_EventItemCastTimelineDat = setupDatAccess( "EventItemCastTimeline", xiv::exd::Language::none ); m_EventItemHelpDat = setupDatAccess( "EventItemHelp", xiv::exd::Language::en ); m_EventItemTimelineDat = setupDatAccess( "EventItemTimeline", xiv::exd::Language::none ); + m_EventPathMoveDat = setupDatAccess( "EventPathMove", xiv::exd::Language::en ); m_EventSystemDefineDat = setupDatAccess( "EventSystemDefine", xiv::exd::Language::none ); m_ExportedGatheringPointDat = setupDatAccess( "ExportedGatheringPoint", xiv::exd::Language::none ); m_ExportedSGDat = setupDatAccess( "ExportedSG", xiv::exd::Language::none ); @@ -13298,6 +13534,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_FateEventDat = setupDatAccess( "FateEvent", xiv::exd::Language::en ); m_FateModeDat = setupDatAccess( "FateMode", xiv::exd::Language::none ); m_FateProgressUIDat = setupDatAccess( "FateProgressUI", xiv::exd::Language::none ); + m_FateShopDat = setupDatAccess( "FateShop", xiv::exd::Language::none ); m_FateTokenTypeDat = setupDatAccess( "FateTokenType", xiv::exd::Language::none ); m_FCActivityDat = setupDatAccess( "FCActivity", xiv::exd::Language::en ); m_FCActivityCategoryDat = setupDatAccess( "FCActivityCategory", xiv::exd::Language::en ); @@ -13433,11 +13670,14 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_InclusionShopDat = setupDatAccess( "InclusionShop", xiv::exd::Language::en ); m_InclusionShopCategoryDat = setupDatAccess( "InclusionShopCategory", xiv::exd::Language::en ); m_InclusionShopSeriesDat = setupDatAccess( "InclusionShopSeries", xiv::exd::Language::none ); + m_InclusionShopWelcomDat = setupDatAccess( "InclusionShopWelcom", xiv::exd::Language::none ); + m_InclusionShopWelcomTextDat = setupDatAccess( "InclusionShopWelcomText", xiv::exd::Language::en ); m_IndividualWeatherDat = setupDatAccess( "IndividualWeather", xiv::exd::Language::none ); m_InstanceContentDat = setupDatAccess( "InstanceContent", xiv::exd::Language::none ); m_InstanceContentBuffDat = setupDatAccess( "InstanceContentBuff", xiv::exd::Language::none ); m_InstanceContentCSBonusDat = setupDatAccess( "InstanceContentCSBonus", xiv::exd::Language::none ); m_InstanceContentGuideDat = setupDatAccess( "InstanceContentGuide", xiv::exd::Language::none ); + m_InstanceContentQICDataDat = setupDatAccess( "InstanceContentQICData", xiv::exd::Language::none ); m_InstanceContentTextDataDat = setupDatAccess( "InstanceContentTextData", xiv::exd::Language::en ); m_ItemDat = setupDatAccess( "Item", xiv::exd::Language::en ); m_ItemActionDat = setupDatAccess( "ItemAction", xiv::exd::Language::none ); @@ -13445,10 +13685,14 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_ItemBarterCheckDat = setupDatAccess( "ItemBarterCheck", xiv::exd::Language::none ); m_ItemFoodDat = setupDatAccess( "ItemFood", xiv::exd::Language::none ); m_ItemLevelDat = setupDatAccess( "ItemLevel", xiv::exd::Language::none ); + m_ItemRepairPriceDat = setupDatAccess( "ItemRepairPrice", xiv::exd::Language::none ); + m_ItemRepairResourceDat = setupDatAccess( "ItemRepairResource", xiv::exd::Language::none ); + m_ItemRetainerLevelUpDat = setupDatAccess( "ItemRetainerLevelUp", xiv::exd::Language::none ); m_ItemSearchCategoryDat = setupDatAccess( "ItemSearchCategory", xiv::exd::Language::en ); m_ItemSeriesDat = setupDatAccess( "ItemSeries", xiv::exd::Language::en ); m_ItemSortCategoryDat = setupDatAccess( "ItemSortCategory", xiv::exd::Language::none ); m_ItemSpecialBonusDat = setupDatAccess( "ItemSpecialBonus", xiv::exd::Language::en ); + m_ItemStainConditionDat = setupDatAccess( "ItemStainCondition", xiv::exd::Language::none ); m_ItemUICategoryDat = setupDatAccess( "ItemUICategory", xiv::exd::Language::en ); m_JingleDat = setupDatAccess( "Jingle", xiv::exd::Language::none ); m_JobHudManualDat = setupDatAccess( "JobHudManual", xiv::exd::Language::none ); @@ -13478,11 +13722,14 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) 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_MapExclusiveDat = setupDatAccess( "MapExclusive", 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_MapTypeDat = setupDatAccess( "MapType", xiv::exd::Language::none ); m_MarkerDat = setupDatAccess( "Marker", xiv::exd::Language::en ); m_MateriaDat = setupDatAccess( "Materia", xiv::exd::Language::none ); + m_MateriaGradeDat = setupDatAccess( "MateriaGrade", xiv::exd::Language::none ); m_MateriaJoinRateDat = setupDatAccess( "MateriaJoinRate", xiv::exd::Language::none ); m_MateriaJoinRateGatherCraftDat = setupDatAccess( "MateriaJoinRateGatherCraft", xiv::exd::Language::none ); m_MateriaTomestoneRateDat = setupDatAccess( "MateriaTomestoneRate", xiv::exd::Language::none ); @@ -13548,6 +13795,8 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_PictureDat = setupDatAccess( "Picture", xiv::exd::Language::none ); m_PlaceNameDat = setupDatAccess( "PlaceName", xiv::exd::Language::en ); m_PlantPotFlowerSeedDat = setupDatAccess( "PlantPotFlowerSeed", xiv::exd::Language::none ); + m_PlayerSearchLocationDat = setupDatAccess( "PlayerSearchLocation", xiv::exd::Language::en ); + m_PlayerSearchSubLocationDat = setupDatAccess( "PlayerSearchSubLocation", xiv::exd::Language::en ); m_PreHandlerDat = setupDatAccess( "PreHandler", xiv::exd::Language::en ); m_PresetCameraDat = setupDatAccess( "PresetCamera", xiv::exd::Language::none ); m_PresetCameraAdjustDat = setupDatAccess( "PresetCameraAdjust", xiv::exd::Language::none ); @@ -13583,6 +13832,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_RacingChocoboNameCategoryDat = setupDatAccess( "RacingChocoboNameCategory", xiv::exd::Language::en ); m_RacingChocoboNameInfoDat = setupDatAccess( "RacingChocoboNameInfo", xiv::exd::Language::none ); m_RacingChocoboParamDat = setupDatAccess( "RacingChocoboParam", xiv::exd::Language::en ); + m_RaidFinderParamDat = setupDatAccess( "RaidFinderParam", xiv::exd::Language::none ); m_RecastNavimeshDat = setupDatAccess( "RecastNavimesh", xiv::exd::Language::none ); m_RecipeDat = setupDatAccess( "Recipe", xiv::exd::Language::none ); m_RecipeLevelTableDat = setupDatAccess( "RecipeLevelTable", xiv::exd::Language::none ); @@ -13616,15 +13866,20 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_ScenarioTypeDat = setupDatAccess( "ScenarioType", xiv::exd::Language::en ); m_ScreenImageDat = setupDatAccess( "ScreenImage", xiv::exd::Language::none ); m_SecretRecipeBookDat = setupDatAccess( "SecretRecipeBook", xiv::exd::Language::en ); + m_SharlayanCraftWorksDat = setupDatAccess( "SharlayanCraftWorks", xiv::exd::Language::en ); + m_SharlayanCraftWorksSupplyDat = setupDatAccess( "SharlayanCraftWorksSupply", xiv::exd::Language::none ); m_SkyIsland2MissionDat = setupDatAccess( "SkyIsland2Mission", xiv::exd::Language::en ); m_SkyIsland2MissionDetailDat = setupDatAccess( "SkyIsland2MissionDetail", xiv::exd::Language::en ); m_SkyIsland2MissionTypeDat = setupDatAccess( "SkyIsland2MissionType", xiv::exd::Language::none ); m_SkyIsland2RangeTypeDat = setupDatAccess( "SkyIsland2RangeType", xiv::exd::Language::none ); + m_SnipeDat = setupDatAccess( "Snipe", xiv::exd::Language::en ); m_SnipeTalkDat = setupDatAccess( "SnipeTalk", xiv::exd::Language::en ); m_SnipeTalkNameDat = setupDatAccess( "SnipeTalkName", xiv::exd::Language::en ); + m_SpearfishingComboTargetDat = setupDatAccess( "SpearfishingComboTarget", xiv::exd::Language::en ); m_SpearfishingItemDat = setupDatAccess( "SpearfishingItem", xiv::exd::Language::en ); m_SpearfishingNotebookDat = setupDatAccess( "SpearfishingNotebook", xiv::exd::Language::none ); m_SpearfishingRecordPageDat = setupDatAccess( "SpearfishingRecordPage", xiv::exd::Language::none ); + m_SpearfishingSilhouetteDat = setupDatAccess( "SpearfishingSilhouette", xiv::exd::Language::none ); m_SpecialShopDat = setupDatAccess( "SpecialShop", xiv::exd::Language::en ); m_SpecialShopItemCategoryDat = setupDatAccess( "SpecialShopItemCategory", xiv::exd::Language::en ); m_StainDat = setupDatAccess( "Stain", xiv::exd::Language::en ); @@ -13640,7 +13895,9 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_SubmarineRankDat = setupDatAccess( "SubmarineRank", xiv::exd::Language::none ); m_SwitchTalkDat = setupDatAccess( "SwitchTalk", xiv::exd::Language::none ); m_SwitchTalkVariationDat = setupDatAccess( "SwitchTalkVariation", xiv::exd::Language::none ); + m_TelepoRelayDat = setupDatAccess( "TelepoRelay", xiv::exd::Language::none ); m_TerritoryTypeDat = setupDatAccess( "TerritoryType", xiv::exd::Language::none ); + m_TerritoryTypeTelepoDat = setupDatAccess( "TerritoryTypeTelepo", 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 ); @@ -13660,6 +13917,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_TribeDat = setupDatAccess( "Tribe", xiv::exd::Language::en ); m_TripleTriadDat = setupDatAccess( "TripleTriad", xiv::exd::Language::none ); m_TripleTriadCardDat = setupDatAccess( "TripleTriadCard", xiv::exd::Language::en ); + m_TripleTriadCardObtainDat = setupDatAccess( "TripleTriadCardObtain", xiv::exd::Language::none ); m_TripleTriadCardRarityDat = setupDatAccess( "TripleTriadCardRarity", xiv::exd::Language::none ); m_TripleTriadCardResidentDat = setupDatAccess( "TripleTriadCardResident", xiv::exd::Language::none ); m_TripleTriadCardTypeDat = setupDatAccess( "TripleTriadCardType", xiv::exd::Language::en ); diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index b670239f..e401b1e3 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -51,6 +51,7 @@ struct AetherCurrentCompFlgSet; struct AetherialWheel; struct Aetheryte; struct AetheryteSystemDefine; +struct AetheryteTransient; struct AirshipExplorationLevel; struct AirshipExplorationLog; struct AirshipExplorationParamType; @@ -104,6 +105,7 @@ struct BNpcCustomize; struct BNpcName; struct BNpcParts; struct BNpcState; +struct Booster; struct Buddy; struct BuddyAction; struct BuddyEquip; @@ -257,6 +259,7 @@ struct EventItem; struct EventItemCastTimeline; struct EventItemHelp; struct EventItemTimeline; +struct EventPathMove; struct EventSystemDefine; struct ExportedGatheringPoint; struct ExportedSG; @@ -265,6 +268,7 @@ struct Fate; struct FateEvent; struct FateMode; struct FateProgressUI; +struct FateShop; struct FateTokenType; struct FCActivity; struct FCActivityCategory; @@ -400,11 +404,14 @@ struct IKDSpot; struct InclusionShop; struct InclusionShopCategory; struct InclusionShopSeries; +struct InclusionShopWelcom; +struct InclusionShopWelcomText; struct IndividualWeather; struct InstanceContent; struct InstanceContentBuff; struct InstanceContentCSBonus; struct InstanceContentGuide; +struct InstanceContentQICData; struct InstanceContentTextData; struct Item; struct ItemAction; @@ -412,10 +419,14 @@ struct ItemActionTelepo; struct ItemBarterCheck; struct ItemFood; struct ItemLevel; +struct ItemRepairPrice; +struct ItemRepairResource; +struct ItemRetainerLevelUp; struct ItemSearchCategory; struct ItemSeries; struct ItemSortCategory; struct ItemSpecialBonus; +struct ItemStainCondition; struct ItemUICategory; struct Jingle; struct JobHudManual; @@ -445,11 +456,14 @@ struct MainCommandCategory; struct ManeuversArmor; struct Map; struct MapCondition; +struct MapExclusive; struct MapMarker; struct MapMarkerRegion; struct MapSymbol; +struct MapType; struct Marker; struct Materia; +struct MateriaGrade; struct MateriaJoinRate; struct MateriaJoinRateGatherCraft; struct MateriaTomestoneRate; @@ -515,6 +529,8 @@ struct PhysicsWind; struct Picture; struct PlaceName; struct PlantPotFlowerSeed; +struct PlayerSearchLocation; +struct PlayerSearchSubLocation; struct PreHandler; struct PresetCamera; struct PresetCameraAdjust; @@ -550,6 +566,7 @@ struct RacingChocoboName; struct RacingChocoboNameCategory; struct RacingChocoboNameInfo; struct RacingChocoboParam; +struct RaidFinderParam; struct RecastNavimesh; struct Recipe; struct RecipeLevelTable; @@ -583,15 +600,20 @@ struct ScenarioTreeTipsClassQuest; struct ScenarioType; struct ScreenImage; struct SecretRecipeBook; +struct SharlayanCraftWorks; +struct SharlayanCraftWorksSupply; struct SkyIsland2Mission; struct SkyIsland2MissionDetail; struct SkyIsland2MissionType; struct SkyIsland2RangeType; +struct Snipe; struct SnipeTalk; struct SnipeTalkName; +struct SpearfishingComboTarget; struct SpearfishingItem; struct SpearfishingNotebook; struct SpearfishingRecordPage; +struct SpearfishingSilhouette; struct SpecialShop; struct SpecialShopItemCategory; struct Stain; @@ -607,7 +629,9 @@ struct SubmarinePart; struct SubmarineRank; struct SwitchTalk; struct SwitchTalkVariation; +struct TelepoRelay; struct TerritoryType; +struct TerritoryTypeTelepo; struct TerritoryTypeTransient; struct TextCommand; struct TextCommandParam; @@ -627,6 +651,7 @@ struct TreasureSpot; struct Tribe; struct TripleTriad; struct TripleTriadCard; +struct TripleTriadCardObtain; struct TripleTriadCardRarity; struct TripleTriadCardResident; struct TripleTriadCardType; @@ -726,7 +751,7 @@ struct Action uint16_t icon; uint8_t actionCategory; uint8_t animationStart; - uint8_t vFX; + uint16_t vFX; int16_t animationEnd; uint16_t actionTimelineHit; int8_t classJob; @@ -937,6 +962,7 @@ struct AdventureExPhase uint32_t quest; uint32_t adventureBegin; uint32_t adventureEnd; + uint8_t expansion; AdventureExPhase( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -998,6 +1024,12 @@ struct AetheryteSystemDefine AetheryteSystemDefine( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct AetheryteTransient +{ + + AetheryteTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct AirshipExplorationLevel { uint16_t capacity; @@ -1040,10 +1072,14 @@ struct AirshipExplorationPoint { std::string name; std::string nameShort; - uint8_t requiredLevel; - uint16_t requiredFuel; - uint16_t durationmin; - uint8_t requiredSurveillance; + bool passengers; + int16_t x; + int16_t y; + uint8_t rankReq; + uint16_t ceruleumTankReq; + uint16_t surveyDurationmin; + uint16_t surveyDistance; + uint8_t surveillanceReq; uint32_t expReward; AirshipExplorationPoint( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -1327,26 +1363,26 @@ struct BaseParam std::string name; std::string description; uint8_t orderPriority; - uint8_t oneHWpn; - uint8_t oH; - uint8_t head; - uint8_t chest; - uint8_t hands; - uint8_t waist; - uint8_t legs; - uint8_t feet; - uint8_t earring; - uint8_t necklace; - uint8_t bracelet; - uint8_t ring; - uint8_t twoHWpn; - uint8_t underArmor; - uint8_t chestHead; - uint8_t chestHeadLegsFeet; - uint8_t legsFeet; - uint8_t headChestHandsLegsFeet; - uint8_t chestLegsGloves; - uint8_t chestLegsFeet; + uint16_t oneHWpn; + uint16_t oH; + uint16_t head; + uint16_t chest; + uint16_t hands; + uint16_t waist; + uint16_t legs; + uint16_t feet; + uint16_t earring; + uint16_t necklace; + uint16_t bracelet; + uint16_t ring; + uint16_t twoHWpn; + uint16_t underArmor; + uint16_t chestHead; + uint16_t chestHeadLegsFeet; + uint16_t legsFeet; + uint16_t headChestHandsLegsFeet; + uint16_t chestLegsGloves; + uint16_t chestLegsFeet; std::vector< uint8_t > meldParam; BaseParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -1679,6 +1715,12 @@ struct BNpcState BNpcState( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct Booster +{ + + Booster( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct Buddy { uint8_t base; @@ -2075,6 +2117,8 @@ struct ClassJobCategory bool bLU; bool gNB; bool dNC; + bool rPR; + bool sGE; ClassJobCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -2161,15 +2205,12 @@ struct Companion uint8_t special; uint8_t wanderingWait; uint16_t priority; - bool roulette; - bool battle; - bool lookAt; - bool poke; uint16_t enemy; - bool stroke; - bool clapping; + bool battle; + bool roulette; uint16_t icon; uint16_t order; + bool idleAnimation; uint8_t cost; uint16_t hP; uint16_t skillAngle; @@ -2471,8 +2512,10 @@ struct ContentRoulette std::string category; std::string description; std::string dutyType; + bool isGoldSaucer; bool isInDutyFinder; uint8_t openRule; + bool isPvP; uint8_t requiredLevel; uint16_t itemLevelRequired; uint32_t icon; @@ -2603,8 +2646,6 @@ struct CraftLeve struct CraftLevelDifference { int16_t difference; - int16_t progressFactor; - int16_t qualityFactor; CraftLevelDifference( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -2756,7 +2797,8 @@ struct DailySupplyItem struct DawnContent { uint32_t content; - uint32_t exp; + uint32_t expBelowExMaxLvl; + uint32_t expAboveExMaxLvl; DawnContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -2764,11 +2806,8 @@ struct DawnContent struct DawnGrowMember { uint32_t member; - uint32_t imageName; - uint32_t bigImageOld; - uint32_t bigImageNew; - uint32_t smallImageOld; - uint32_t smallImageNew; + std::vector< uint32_t > selectImage; + std::vector< uint32_t > portraitImage; uint8_t _class; DawnGrowMember( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -2786,7 +2825,7 @@ struct DawnMemberUIParam struct DawnQuestAnnounce { uint32_t quest; - uint8_t content; + uint8_t questStep; std::vector< uint32_t > eNPC; DawnQuestAnnounce( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -3444,6 +3483,12 @@ struct EventItemTimeline EventItemTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct EventPathMove +{ + + EventPathMove( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct EventSystemDefine { std::string text; @@ -3456,7 +3501,9 @@ struct ExportedGatheringPoint { float x; float y; - uint8_t radius; + uint8_t gatheringType; + uint8_t gatheringPointType; + uint16_t radius; ExportedGatheringPoint( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -3508,7 +3555,7 @@ struct Fate uint32_t arrayIndex; uint32_t reqEventItem; uint32_t turnInEventItem; - std::vector< uint16_t > objectiveIcon; + std::vector< uint32_t > objectiveIcon; Fate( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -3548,6 +3595,14 @@ struct FateProgressUI FateProgressUI( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct FateShop +{ + std::vector< uint32_t > specialShop; + std::vector< uint32_t > defaultTalk; + + FateShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct FateTokenType { uint32_t currency; @@ -3634,6 +3689,7 @@ struct FCRank uint16_t rights; uint8_t fCActionActiveNum; uint8_t fCActionStockNum; + uint8_t fCChestCompartments; FCRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -3683,6 +3739,8 @@ struct FishingRecordType uint16_t rankARequirement; uint16_t rankAARequirement; uint16_t rankAAARequirement; + uint16_t rankSRequirement; + uint8_t isSpearfishing; FishingRecordType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -3709,7 +3767,7 @@ struct FishingSpot uint16_t radius; std::vector< int32_t > item; uint16_t placeName; - uint8_t order; + uint16_t order; FishingSpot( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -3793,6 +3851,7 @@ struct GatheringItem { int32_t item; uint16_t gatheringItemLevel; + uint16_t quest; bool isHidden; GatheringItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -3927,6 +3986,7 @@ struct GatheringSubCategory { uint8_t gatheringType; uint8_t classJob; + uint32_t quest; uint16_t division; int32_t item; std::string folkloreBook; @@ -4171,6 +4231,7 @@ struct GeneralAction struct GFATE { + std::vector< uint32_t > lGBPopRange; std::vector< uint32_t > icon; GFATE( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -4606,11 +4667,11 @@ struct HugeCraftworksNpc uint16_t classJobCategory; std::vector< uint32_t > itemRequested; std::vector< uint8_t > qtyRequested; - std::vector< uint32_t > itemReward; - std::vector< uint8_t > qtyItemReward; - std::vector< uint32_t > itemUnkown; - std::vector< uint8_t > qtyItemUnkown; - std::string transient; + std::vector< uint8_t > itemReward; + std::vector< bool > qtyItemReward; + std::vector< uint8_t > itemUnkown; + std::vector< bool > qtyItemUnkown; + uint8_t transient; HugeCraftworksNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4753,7 +4814,7 @@ struct HWDLevelChangeDeception struct HWDSharedGroup { - uint32_t lGB; + uint32_t lGBSharedGroup; uint8_t param; HWDSharedGroup( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); @@ -4832,6 +4893,18 @@ struct InclusionShopSeries InclusionShopSeries( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct InclusionShopWelcom +{ + + InclusionShopWelcom( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + +struct InclusionShopWelcomText +{ + + InclusionShopWelcomText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct IndividualWeather { std::vector< uint8_t > weather; @@ -4857,17 +4930,19 @@ struct InstanceContent uint32_t instanceContentTextDataObjectiveStart; uint32_t instanceContentTextDataObjectiveEnd; uint16_t sortKey; - uint32_t instanceClearExp; + uint32_t newPlayerBonusGil; + uint32_t newPlayerBonusExp; uint16_t newPlayerBonusA; - uint16_t finalBossCurrencyC; - uint32_t finalBossCurrencyA; - uint16_t finalBossCurrencyB; uint16_t newPlayerBonusB; + uint32_t finalBossExp; + uint16_t finalBossCurrencyA; + uint16_t finalBossCurrencyB; + uint16_t finalBossCurrencyC; + uint32_t instanceClearExp; uint32_t instanceClearGil; uint32_t instanceContentRewardItem; - uint8_t finalBossExp; - uint32_t instanceContentBuff; - int32_t reqInstance; + int32_t instanceContentBuff; + uint32_t reqInstance; int16_t partyCondition; InstanceContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -4896,6 +4971,12 @@ struct InstanceContentGuide InstanceContentGuide( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct InstanceContentQICData +{ + + InstanceContentQICData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct InstanceContentTextData { std::string text; @@ -5092,6 +5173,25 @@ struct ItemLevel ItemLevel( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct ItemRepairPrice +{ + + ItemRepairPrice( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + +struct ItemRepairResource +{ + uint32_t item; + + ItemRepairResource( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + +struct ItemRetainerLevelUp +{ + + ItemRetainerLevelUp( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct ItemSearchCategory { std::string name; @@ -5124,6 +5224,12 @@ struct ItemSpecialBonus ItemSpecialBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct ItemStainCondition +{ + + ItemStainCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct ItemUICategory { std::string name; @@ -5417,11 +5523,17 @@ struct Map struct MapCondition { - uint16_t quest; + int32_t quest; MapCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct MapExclusive +{ + + MapExclusive( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct MapMarker { int16_t x; @@ -5453,6 +5565,12 @@ struct MapSymbol MapSymbol( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct MapType +{ + + MapType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct Marker { int32_t icon; @@ -5470,6 +5588,12 @@ struct Materia Materia( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct MateriaGrade +{ + + MateriaGrade( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct MateriaJoinRate { std::vector< float > NQOvermeldSlot; @@ -5695,8 +5819,10 @@ struct MountAction struct MountCustomize { - uint16_t hyurMaleScale; - uint16_t hyurFemaleScale; + uint16_t hyurMidlanderMaleScale; + uint16_t hyurMidlanderFemaleScale; + uint16_t hyurHighlanderMaleScale; + uint16_t hyurHighlanderFemaleScale; uint16_t elezenMaleScale; uint16_t elezenFemaleScale; uint16_t lalaMaleScale; @@ -5708,11 +5834,12 @@ struct MountCustomize uint16_t auRaMaleScale; uint16_t auRaFemaleScale; uint16_t hrothgarMaleScale; - uint16_t hrothgarFemaleScale; uint16_t vieraMaleScale; uint16_t vieraFemaleScale; - uint8_t hyurMaleCameraHeight; - uint8_t hyurFemaleCameraHeight; + uint16_t hyurMidlanderMaleCameraHeight; + uint8_t hyurMidlanderFemaleCameraHeight; + uint8_t hyurHighlanderMaleCameraHeight; + uint8_t hyurHighlanderFemaleCameraHeight; uint8_t elezenMaleCameraHeight; uint8_t elezenFemaleCameraHeight; uint8_t lalaMaleCameraHeight; @@ -5724,7 +5851,6 @@ struct MountCustomize uint8_t auRaMaleCameraHeight; uint8_t auRaFemaleCameraHeight; uint8_t hrothgarMaleCameraHeight; - uint8_t hrothgarRoeFemaleCameraHeight; uint8_t vieraMaleCameraHeight; uint8_t vieraFemaleCameraHeight; @@ -6185,6 +6311,18 @@ struct PlantPotFlowerSeed PlantPotFlowerSeed( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct PlayerSearchLocation +{ + + PlayerSearchLocation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + +struct PlayerSearchSubLocation +{ + + PlayerSearchSubLocation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct PreHandler { uint32_t image; @@ -6343,6 +6481,8 @@ struct Quest uint8_t beastTribe; uint8_t beastReputationRank; uint16_t beastReputationValue; + uint8_t satisfactionNpc; + uint8_t satisfactionLevel; int32_t mountRequired; bool isHouseRequired; uint8_t deliveryQuest; @@ -6381,19 +6521,21 @@ struct Quest std::vector< uint8_t > countableNum; uint8_t levelMax; uint8_t classJobRequired; + uint8_t questRewardOtherDisplay; uint16_t expFactor; uint32_t gilReward; - uint32_t gCSeals; + uint32_t currencyReward; + uint32_t currencyRewardCount; std::vector< uint8_t > itemCatalyst; std::vector< uint8_t > itemCountCatalyst; uint8_t itemRewardType; - std::vector< uint32_t > itemReward0; - std::vector< uint8_t > itemCountReward0; - std::vector< uint8_t > stainReward0; - std::vector< uint32_t > itemReward1; - std::vector< uint8_t > itemCountReward1; - std::vector< bool > isHQReward1; - std::vector< uint8_t > stainReward1; + std::vector< uint32_t > itemReward; + std::vector< uint8_t > itemCountReward; + std::vector< uint8_t > stainReward; + std::vector< uint32_t > optionalItemReward; + std::vector< uint8_t > optionalItemCountReward; + std::vector< bool > optionalItemIsHQReward; + std::vector< uint8_t > optionalItemStainReward; uint8_t emoteReward; uint16_t actionReward; std::vector< uint8_t > generalActionReward; @@ -6402,6 +6544,7 @@ struct Quest uint16_t systemReward1; uint16_t gCTypeReward; uint32_t instanceContentUnlock; + uint8_t tomestone; uint8_t tomestoneReward; uint8_t tomestoneCountReward; uint8_t reputationReward; @@ -6622,6 +6765,12 @@ struct RacingChocoboParam RacingChocoboParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct RaidFinderParam +{ + + RaidFinderParam( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct RecastNavimesh { float tileSize; @@ -6659,6 +6808,7 @@ struct Recipe uint16_t quickSynthCraftsmanship; uint16_t quickSynthControl; uint16_t secretRecipeBook; + uint32_t quest; bool canQuickSynth; bool canHq; bool expRewarded; @@ -6679,6 +6829,10 @@ struct RecipeLevelTable uint16_t suggestedControl; uint16_t difficulty; uint32_t quality; + uint8_t progressDivider; + uint8_t qualityDivider; + uint8_t progressModifier; + uint8_t qualityModifier; uint16_t durability; uint16_t conditionsFlag; @@ -6841,6 +6995,8 @@ struct RetainerTaskNormal uint8_t quantity0; uint8_t quantity1; uint8_t quantity2; + uint8_t quantity3; + uint8_t quantity4; int16_t gatheringLog; int16_t fishingLog; @@ -6850,8 +7006,8 @@ struct RetainerTaskNormal struct RetainerTaskParameter { std::vector< int16_t > itemLevelDoW; - std::vector< int16_t > gatheringDoL; - std::vector< int16_t > gatheringFSH; + std::vector< int16_t > perceptionDoL; + std::vector< int16_t > perceptionFSH; RetainerTaskParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6900,6 +7056,8 @@ struct RPParameter struct SatisfactionArbitration { + uint8_t satisfactionLevel; + uint8_t satisfactionNpc; uint32_t quest; SatisfactionArbitration( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); @@ -6946,7 +7104,9 @@ struct SatisfactionSupplyReward struct ScenarioTree { uint8_t type; - uint16_t image; + uint32_t addon; + uint32_t questChapter; + std::string name; ScenarioTree( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6994,6 +7154,18 @@ struct SecretRecipeBook SecretRecipeBook( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct SharlayanCraftWorks +{ + + SharlayanCraftWorks( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + +struct SharlayanCraftWorksSupply +{ + + SharlayanCraftWorksSupply( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct SkyIsland2Mission { uint32_t item1; @@ -7036,6 +7208,24 @@ struct SkyIsland2RangeType SkyIsland2RangeType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct Snipe +{ + uint32_t lGBTargetMarker; + std::string vFXFire; + std::string vFXHit; + std::string vFXMiss; + std::string vFXAdditional; + std::vector< uint32_t > lGBEventNPC0; + std::vector< uint32_t > lGBEventNPC1; + std::string objective0; + std::string hint0; + std::string objective1; + std::string hint1; + std::string actionText; + + Snipe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct SnipeTalk { uint16_t name; @@ -7051,6 +7241,12 @@ struct SnipeTalkName SnipeTalkName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct SpearfishingComboTarget +{ + + SpearfishingComboTarget( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct SpearfishingItem { std::string description; @@ -7085,6 +7281,12 @@ struct SpearfishingRecordPage SpearfishingRecordPage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct SpearfishingSilhouette +{ + + SpearfishingSilhouette( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct SpecialShop { std::string name; @@ -7203,12 +7405,16 @@ struct SubmarineExploration { std::string destination; std::string location; + int16_t x; + int16_t y; + int16_t z; uint8_t map; + bool passengers; uint8_t stars; uint8_t rankReq; uint8_t ceruleumTankReq; - uint16_t durationmin; - uint8_t distanceForSurvey; + uint16_t surveyDurationmin; + uint8_t surveyDistance; uint32_t expReward; SubmarineExploration( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -7266,6 +7472,12 @@ struct SwitchTalkVariation SwitchTalkVariation( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct TelepoRelay +{ + + TelepoRelay( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct TerritoryType { std::string name; @@ -7299,6 +7511,12 @@ struct TerritoryType TerritoryType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct TerritoryTypeTelepo +{ + + TerritoryTypeTelepo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct TerritoryTypeTransient { int16_t offsetZ; @@ -7503,6 +7721,12 @@ struct TripleTriadCard TripleTriadCard( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct TripleTriadCardObtain +{ + + TripleTriadCardObtain( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct TripleTriadCardRarity { uint8_t stars; @@ -7773,7 +7997,9 @@ struct WeeklyLotBonus struct World { + std::string internalName; std::string name; + uint8_t region; uint8_t userType; uint8_t dataCenter; bool isPublic; @@ -7815,12 +8041,19 @@ struct YKW struct ZoneSharedGroup { + uint32_t lGBSharedGroup; + uint32_t quest0; + uint32_t seq0; uint32_t quest1; + uint32_t seq1; uint32_t quest2; + uint32_t seq2; uint32_t quest3; + uint32_t seq3; uint32_t quest4; + uint32_t seq4; uint32_t quest5; - uint32_t quest6; + uint32_t seq5; ZoneSharedGroup( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -7912,6 +8145,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_AetherialWheelDat; xiv::exd::Exd m_AetheryteDat; xiv::exd::Exd m_AetheryteSystemDefineDat; + xiv::exd::Exd m_AetheryteTransientDat; xiv::exd::Exd m_AirshipExplorationLevelDat; xiv::exd::Exd m_AirshipExplorationLogDat; xiv::exd::Exd m_AirshipExplorationParamTypeDat; @@ -7965,6 +8199,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_BNpcNameDat; xiv::exd::Exd m_BNpcPartsDat; xiv::exd::Exd m_BNpcStateDat; + xiv::exd::Exd m_BoosterDat; xiv::exd::Exd m_BuddyDat; xiv::exd::Exd m_BuddyActionDat; xiv::exd::Exd m_BuddyEquipDat; @@ -8118,6 +8353,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_EventItemCastTimelineDat; xiv::exd::Exd m_EventItemHelpDat; xiv::exd::Exd m_EventItemTimelineDat; + xiv::exd::Exd m_EventPathMoveDat; xiv::exd::Exd m_EventSystemDefineDat; xiv::exd::Exd m_ExportedGatheringPointDat; xiv::exd::Exd m_ExportedSGDat; @@ -8126,6 +8362,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_FateEventDat; xiv::exd::Exd m_FateModeDat; xiv::exd::Exd m_FateProgressUIDat; + xiv::exd::Exd m_FateShopDat; xiv::exd::Exd m_FateTokenTypeDat; xiv::exd::Exd m_FCActivityDat; xiv::exd::Exd m_FCActivityCategoryDat; @@ -8261,11 +8498,14 @@ struct ZoneSharedGroup xiv::exd::Exd m_InclusionShopDat; xiv::exd::Exd m_InclusionShopCategoryDat; xiv::exd::Exd m_InclusionShopSeriesDat; + xiv::exd::Exd m_InclusionShopWelcomDat; + xiv::exd::Exd m_InclusionShopWelcomTextDat; xiv::exd::Exd m_IndividualWeatherDat; xiv::exd::Exd m_InstanceContentDat; xiv::exd::Exd m_InstanceContentBuffDat; xiv::exd::Exd m_InstanceContentCSBonusDat; xiv::exd::Exd m_InstanceContentGuideDat; + xiv::exd::Exd m_InstanceContentQICDataDat; xiv::exd::Exd m_InstanceContentTextDataDat; xiv::exd::Exd m_ItemDat; xiv::exd::Exd m_ItemActionDat; @@ -8273,10 +8513,14 @@ struct ZoneSharedGroup xiv::exd::Exd m_ItemBarterCheckDat; xiv::exd::Exd m_ItemFoodDat; xiv::exd::Exd m_ItemLevelDat; + xiv::exd::Exd m_ItemRepairPriceDat; + xiv::exd::Exd m_ItemRepairResourceDat; + xiv::exd::Exd m_ItemRetainerLevelUpDat; xiv::exd::Exd m_ItemSearchCategoryDat; xiv::exd::Exd m_ItemSeriesDat; xiv::exd::Exd m_ItemSortCategoryDat; xiv::exd::Exd m_ItemSpecialBonusDat; + xiv::exd::Exd m_ItemStainConditionDat; xiv::exd::Exd m_ItemUICategoryDat; xiv::exd::Exd m_JingleDat; xiv::exd::Exd m_JobHudManualDat; @@ -8306,11 +8550,14 @@ struct ZoneSharedGroup xiv::exd::Exd m_ManeuversArmorDat; xiv::exd::Exd m_MapDat; xiv::exd::Exd m_MapConditionDat; + xiv::exd::Exd m_MapExclusiveDat; xiv::exd::Exd m_MapMarkerDat; xiv::exd::Exd m_MapMarkerRegionDat; xiv::exd::Exd m_MapSymbolDat; + xiv::exd::Exd m_MapTypeDat; xiv::exd::Exd m_MarkerDat; xiv::exd::Exd m_MateriaDat; + xiv::exd::Exd m_MateriaGradeDat; xiv::exd::Exd m_MateriaJoinRateDat; xiv::exd::Exd m_MateriaJoinRateGatherCraftDat; xiv::exd::Exd m_MateriaTomestoneRateDat; @@ -8376,6 +8623,8 @@ struct ZoneSharedGroup xiv::exd::Exd m_PictureDat; xiv::exd::Exd m_PlaceNameDat; xiv::exd::Exd m_PlantPotFlowerSeedDat; + xiv::exd::Exd m_PlayerSearchLocationDat; + xiv::exd::Exd m_PlayerSearchSubLocationDat; xiv::exd::Exd m_PreHandlerDat; xiv::exd::Exd m_PresetCameraDat; xiv::exd::Exd m_PresetCameraAdjustDat; @@ -8411,6 +8660,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_RacingChocoboNameCategoryDat; xiv::exd::Exd m_RacingChocoboNameInfoDat; xiv::exd::Exd m_RacingChocoboParamDat; + xiv::exd::Exd m_RaidFinderParamDat; xiv::exd::Exd m_RecastNavimeshDat; xiv::exd::Exd m_RecipeDat; xiv::exd::Exd m_RecipeLevelTableDat; @@ -8444,15 +8694,20 @@ struct ZoneSharedGroup xiv::exd::Exd m_ScenarioTypeDat; xiv::exd::Exd m_ScreenImageDat; xiv::exd::Exd m_SecretRecipeBookDat; + xiv::exd::Exd m_SharlayanCraftWorksDat; + xiv::exd::Exd m_SharlayanCraftWorksSupplyDat; xiv::exd::Exd m_SkyIsland2MissionDat; xiv::exd::Exd m_SkyIsland2MissionDetailDat; xiv::exd::Exd m_SkyIsland2MissionTypeDat; xiv::exd::Exd m_SkyIsland2RangeTypeDat; + xiv::exd::Exd m_SnipeDat; xiv::exd::Exd m_SnipeTalkDat; xiv::exd::Exd m_SnipeTalkNameDat; + xiv::exd::Exd m_SpearfishingComboTargetDat; xiv::exd::Exd m_SpearfishingItemDat; xiv::exd::Exd m_SpearfishingNotebookDat; xiv::exd::Exd m_SpearfishingRecordPageDat; + xiv::exd::Exd m_SpearfishingSilhouetteDat; xiv::exd::Exd m_SpecialShopDat; xiv::exd::Exd m_SpecialShopItemCategoryDat; xiv::exd::Exd m_StainDat; @@ -8468,7 +8723,9 @@ struct ZoneSharedGroup xiv::exd::Exd m_SubmarineRankDat; xiv::exd::Exd m_SwitchTalkDat; xiv::exd::Exd m_SwitchTalkVariationDat; + xiv::exd::Exd m_TelepoRelayDat; xiv::exd::Exd m_TerritoryTypeDat; + xiv::exd::Exd m_TerritoryTypeTelepoDat; xiv::exd::Exd m_TerritoryTypeTransientDat; xiv::exd::Exd m_TextCommandDat; xiv::exd::Exd m_TextCommandParamDat; @@ -8488,6 +8745,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_TribeDat; xiv::exd::Exd m_TripleTriadDat; xiv::exd::Exd m_TripleTriadCardDat; + xiv::exd::Exd m_TripleTriadCardObtainDat; xiv::exd::Exd m_TripleTriadCardRarityDat; xiv::exd::Exd m_TripleTriadCardResidentDat; xiv::exd::Exd m_TripleTriadCardTypeDat; @@ -8555,6 +8813,7 @@ struct ZoneSharedGroup using AetherialWheelPtr = std::shared_ptr< AetherialWheel >; using AetherytePtr = std::shared_ptr< Aetheryte >; using AetheryteSystemDefinePtr = std::shared_ptr< AetheryteSystemDefine >; + using AetheryteTransientPtr = std::shared_ptr< AetheryteTransient >; using AirshipExplorationLevelPtr = std::shared_ptr< AirshipExplorationLevel >; using AirshipExplorationLogPtr = std::shared_ptr< AirshipExplorationLog >; using AirshipExplorationParamTypePtr = std::shared_ptr< AirshipExplorationParamType >; @@ -8608,6 +8867,7 @@ struct ZoneSharedGroup using BNpcNamePtr = std::shared_ptr< BNpcName >; using BNpcPartsPtr = std::shared_ptr< BNpcParts >; using BNpcStatePtr = std::shared_ptr< BNpcState >; + using BoosterPtr = std::shared_ptr< Booster >; using BuddyPtr = std::shared_ptr< Buddy >; using BuddyActionPtr = std::shared_ptr< BuddyAction >; using BuddyEquipPtr = std::shared_ptr< BuddyEquip >; @@ -8761,6 +9021,7 @@ struct ZoneSharedGroup using EventItemCastTimelinePtr = std::shared_ptr< EventItemCastTimeline >; using EventItemHelpPtr = std::shared_ptr< EventItemHelp >; using EventItemTimelinePtr = std::shared_ptr< EventItemTimeline >; + using EventPathMovePtr = std::shared_ptr< EventPathMove >; using EventSystemDefinePtr = std::shared_ptr< EventSystemDefine >; using ExportedGatheringPointPtr = std::shared_ptr< ExportedGatheringPoint >; using ExportedSGPtr = std::shared_ptr< ExportedSG >; @@ -8769,6 +9030,7 @@ struct ZoneSharedGroup using FateEventPtr = std::shared_ptr< FateEvent >; using FateModePtr = std::shared_ptr< FateMode >; using FateProgressUIPtr = std::shared_ptr< FateProgressUI >; + using FateShopPtr = std::shared_ptr< FateShop >; using FateTokenTypePtr = std::shared_ptr< FateTokenType >; using FCActivityPtr = std::shared_ptr< FCActivity >; using FCActivityCategoryPtr = std::shared_ptr< FCActivityCategory >; @@ -8904,11 +9166,14 @@ struct ZoneSharedGroup using InclusionShopPtr = std::shared_ptr< InclusionShop >; using InclusionShopCategoryPtr = std::shared_ptr< InclusionShopCategory >; using InclusionShopSeriesPtr = std::shared_ptr< InclusionShopSeries >; + using InclusionShopWelcomPtr = std::shared_ptr< InclusionShopWelcom >; + using InclusionShopWelcomTextPtr = std::shared_ptr< InclusionShopWelcomText >; using IndividualWeatherPtr = std::shared_ptr< IndividualWeather >; using InstanceContentPtr = std::shared_ptr< InstanceContent >; using InstanceContentBuffPtr = std::shared_ptr< InstanceContentBuff >; using InstanceContentCSBonusPtr = std::shared_ptr< InstanceContentCSBonus >; using InstanceContentGuidePtr = std::shared_ptr< InstanceContentGuide >; + using InstanceContentQICDataPtr = std::shared_ptr< InstanceContentQICData >; using InstanceContentTextDataPtr = std::shared_ptr< InstanceContentTextData >; using ItemPtr = std::shared_ptr< Item >; using ItemActionPtr = std::shared_ptr< ItemAction >; @@ -8916,10 +9181,14 @@ struct ZoneSharedGroup using ItemBarterCheckPtr = std::shared_ptr< ItemBarterCheck >; using ItemFoodPtr = std::shared_ptr< ItemFood >; using ItemLevelPtr = std::shared_ptr< ItemLevel >; + using ItemRepairPricePtr = std::shared_ptr< ItemRepairPrice >; + using ItemRepairResourcePtr = std::shared_ptr< ItemRepairResource >; + using ItemRetainerLevelUpPtr = std::shared_ptr< ItemRetainerLevelUp >; using ItemSearchCategoryPtr = std::shared_ptr< ItemSearchCategory >; using ItemSeriesPtr = std::shared_ptr< ItemSeries >; using ItemSortCategoryPtr = std::shared_ptr< ItemSortCategory >; using ItemSpecialBonusPtr = std::shared_ptr< ItemSpecialBonus >; + using ItemStainConditionPtr = std::shared_ptr< ItemStainCondition >; using ItemUICategoryPtr = std::shared_ptr< ItemUICategory >; using JinglePtr = std::shared_ptr< Jingle >; using JobHudManualPtr = std::shared_ptr< JobHudManual >; @@ -8949,11 +9218,14 @@ struct ZoneSharedGroup using ManeuversArmorPtr = std::shared_ptr< ManeuversArmor >; using MapPtr = std::shared_ptr< Map >; using MapConditionPtr = std::shared_ptr< MapCondition >; + using MapExclusivePtr = std::shared_ptr< MapExclusive >; using MapMarkerPtr = std::shared_ptr< MapMarker >; using MapMarkerRegionPtr = std::shared_ptr< MapMarkerRegion >; using MapSymbolPtr = std::shared_ptr< MapSymbol >; + using MapTypePtr = std::shared_ptr< MapType >; using MarkerPtr = std::shared_ptr< Marker >; using MateriaPtr = std::shared_ptr< Materia >; + using MateriaGradePtr = std::shared_ptr< MateriaGrade >; using MateriaJoinRatePtr = std::shared_ptr< MateriaJoinRate >; using MateriaJoinRateGatherCraftPtr = std::shared_ptr< MateriaJoinRateGatherCraft >; using MateriaTomestoneRatePtr = std::shared_ptr< MateriaTomestoneRate >; @@ -9019,6 +9291,8 @@ struct ZoneSharedGroup using PicturePtr = std::shared_ptr< Picture >; using PlaceNamePtr = std::shared_ptr< PlaceName >; using PlantPotFlowerSeedPtr = std::shared_ptr< PlantPotFlowerSeed >; + using PlayerSearchLocationPtr = std::shared_ptr< PlayerSearchLocation >; + using PlayerSearchSubLocationPtr = std::shared_ptr< PlayerSearchSubLocation >; using PreHandlerPtr = std::shared_ptr< PreHandler >; using PresetCameraPtr = std::shared_ptr< PresetCamera >; using PresetCameraAdjustPtr = std::shared_ptr< PresetCameraAdjust >; @@ -9054,6 +9328,7 @@ struct ZoneSharedGroup using RacingChocoboNameCategoryPtr = std::shared_ptr< RacingChocoboNameCategory >; using RacingChocoboNameInfoPtr = std::shared_ptr< RacingChocoboNameInfo >; using RacingChocoboParamPtr = std::shared_ptr< RacingChocoboParam >; + using RaidFinderParamPtr = std::shared_ptr< RaidFinderParam >; using RecastNavimeshPtr = std::shared_ptr< RecastNavimesh >; using RecipePtr = std::shared_ptr< Recipe >; using RecipeLevelTablePtr = std::shared_ptr< RecipeLevelTable >; @@ -9087,15 +9362,20 @@ struct ZoneSharedGroup using ScenarioTypePtr = std::shared_ptr< ScenarioType >; using ScreenImagePtr = std::shared_ptr< ScreenImage >; using SecretRecipeBookPtr = std::shared_ptr< SecretRecipeBook >; + using SharlayanCraftWorksPtr = std::shared_ptr< SharlayanCraftWorks >; + using SharlayanCraftWorksSupplyPtr = std::shared_ptr< SharlayanCraftWorksSupply >; using SkyIsland2MissionPtr = std::shared_ptr< SkyIsland2Mission >; using SkyIsland2MissionDetailPtr = std::shared_ptr< SkyIsland2MissionDetail >; using SkyIsland2MissionTypePtr = std::shared_ptr< SkyIsland2MissionType >; using SkyIsland2RangeTypePtr = std::shared_ptr< SkyIsland2RangeType >; + using SnipePtr = std::shared_ptr< Snipe >; using SnipeTalkPtr = std::shared_ptr< SnipeTalk >; using SnipeTalkNamePtr = std::shared_ptr< SnipeTalkName >; + using SpearfishingComboTargetPtr = std::shared_ptr< SpearfishingComboTarget >; using SpearfishingItemPtr = std::shared_ptr< SpearfishingItem >; using SpearfishingNotebookPtr = std::shared_ptr< SpearfishingNotebook >; using SpearfishingRecordPagePtr = std::shared_ptr< SpearfishingRecordPage >; + using SpearfishingSilhouettePtr = std::shared_ptr< SpearfishingSilhouette >; using SpecialShopPtr = std::shared_ptr< SpecialShop >; using SpecialShopItemCategoryPtr = std::shared_ptr< SpecialShopItemCategory >; using StainPtr = std::shared_ptr< Stain >; @@ -9111,7 +9391,9 @@ struct ZoneSharedGroup using SubmarineRankPtr = std::shared_ptr< SubmarineRank >; using SwitchTalkPtr = std::shared_ptr< SwitchTalk >; using SwitchTalkVariationPtr = std::shared_ptr< SwitchTalkVariation >; + using TelepoRelayPtr = std::shared_ptr< TelepoRelay >; using TerritoryTypePtr = std::shared_ptr< TerritoryType >; + using TerritoryTypeTelepoPtr = std::shared_ptr< TerritoryTypeTelepo >; using TerritoryTypeTransientPtr = std::shared_ptr< TerritoryTypeTransient >; using TextCommandPtr = std::shared_ptr< TextCommand >; using TextCommandParamPtr = std::shared_ptr< TextCommandParam >; @@ -9131,6 +9413,7 @@ struct ZoneSharedGroup using TribePtr = std::shared_ptr< Tribe >; using TripleTriadPtr = std::shared_ptr< TripleTriad >; using TripleTriadCardPtr = std::shared_ptr< TripleTriadCard >; + using TripleTriadCardObtainPtr = std::shared_ptr< TripleTriadCardObtain >; using TripleTriadCardRarityPtr = std::shared_ptr< TripleTriadCardRarity >; using TripleTriadCardResidentPtr = std::shared_ptr< TripleTriadCardResident >; using TripleTriadCardTypePtr = std::shared_ptr< TripleTriadCardType >; @@ -9198,6 +9481,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_AetherialWheelIdList; std::set< uint32_t > m_AetheryteIdList; std::set< uint32_t > m_AetheryteSystemDefineIdList; + std::set< uint32_t > m_AetheryteTransientIdList; std::set< uint32_t > m_AirshipExplorationLevelIdList; std::set< uint32_t > m_AirshipExplorationLogIdList; std::set< uint32_t > m_AirshipExplorationParamTypeIdList; @@ -9251,6 +9535,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_BNpcNameIdList; std::set< uint32_t > m_BNpcPartsIdList; std::set< uint32_t > m_BNpcStateIdList; + std::set< uint32_t > m_BoosterIdList; std::set< uint32_t > m_BuddyIdList; std::set< uint32_t > m_BuddyActionIdList; std::set< uint32_t > m_BuddyEquipIdList; @@ -9404,6 +9689,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_EventItemCastTimelineIdList; std::set< uint32_t > m_EventItemHelpIdList; std::set< uint32_t > m_EventItemTimelineIdList; + std::set< uint32_t > m_EventPathMoveIdList; std::set< uint32_t > m_EventSystemDefineIdList; std::set< uint32_t > m_ExportedGatheringPointIdList; std::set< uint32_t > m_ExportedSGIdList; @@ -9412,6 +9698,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_FateEventIdList; std::set< uint32_t > m_FateModeIdList; std::set< uint32_t > m_FateProgressUIIdList; + std::set< uint32_t > m_FateShopIdList; std::set< uint32_t > m_FateTokenTypeIdList; std::set< uint32_t > m_FCActivityIdList; std::set< uint32_t > m_FCActivityCategoryIdList; @@ -9547,11 +9834,14 @@ struct ZoneSharedGroup std::set< uint32_t > m_InclusionShopIdList; std::set< uint32_t > m_InclusionShopCategoryIdList; std::set< uint32_t > m_InclusionShopSeriesIdList; + std::set< uint32_t > m_InclusionShopWelcomIdList; + std::set< uint32_t > m_InclusionShopWelcomTextIdList; std::set< uint32_t > m_IndividualWeatherIdList; std::set< uint32_t > m_InstanceContentIdList; std::set< uint32_t > m_InstanceContentBuffIdList; std::set< uint32_t > m_InstanceContentCSBonusIdList; std::set< uint32_t > m_InstanceContentGuideIdList; + std::set< uint32_t > m_InstanceContentQICDataIdList; std::set< uint32_t > m_InstanceContentTextDataIdList; std::set< uint32_t > m_ItemIdList; std::set< uint32_t > m_ItemActionIdList; @@ -9559,10 +9849,14 @@ struct ZoneSharedGroup std::set< uint32_t > m_ItemBarterCheckIdList; std::set< uint32_t > m_ItemFoodIdList; std::set< uint32_t > m_ItemLevelIdList; + std::set< uint32_t > m_ItemRepairPriceIdList; + std::set< uint32_t > m_ItemRepairResourceIdList; + std::set< uint32_t > m_ItemRetainerLevelUpIdList; std::set< uint32_t > m_ItemSearchCategoryIdList; std::set< uint32_t > m_ItemSeriesIdList; std::set< uint32_t > m_ItemSortCategoryIdList; std::set< uint32_t > m_ItemSpecialBonusIdList; + std::set< uint32_t > m_ItemStainConditionIdList; std::set< uint32_t > m_ItemUICategoryIdList; std::set< uint32_t > m_JingleIdList; std::set< uint32_t > m_JobHudManualIdList; @@ -9592,11 +9886,14 @@ struct ZoneSharedGroup std::set< uint32_t > m_ManeuversArmorIdList; std::set< uint32_t > m_MapIdList; std::set< uint32_t > m_MapConditionIdList; + std::set< uint32_t > m_MapExclusiveIdList; std::set< uint32_t > m_MapMarkerIdList; std::set< uint32_t > m_MapMarkerRegionIdList; std::set< uint32_t > m_MapSymbolIdList; + std::set< uint32_t > m_MapTypeIdList; std::set< uint32_t > m_MarkerIdList; std::set< uint32_t > m_MateriaIdList; + std::set< uint32_t > m_MateriaGradeIdList; std::set< uint32_t > m_MateriaJoinRateIdList; std::set< uint32_t > m_MateriaJoinRateGatherCraftIdList; std::set< uint32_t > m_MateriaTomestoneRateIdList; @@ -9662,6 +9959,8 @@ struct ZoneSharedGroup std::set< uint32_t > m_PictureIdList; std::set< uint32_t > m_PlaceNameIdList; std::set< uint32_t > m_PlantPotFlowerSeedIdList; + std::set< uint32_t > m_PlayerSearchLocationIdList; + std::set< uint32_t > m_PlayerSearchSubLocationIdList; std::set< uint32_t > m_PreHandlerIdList; std::set< uint32_t > m_PresetCameraIdList; std::set< uint32_t > m_PresetCameraAdjustIdList; @@ -9697,6 +9996,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_RacingChocoboNameCategoryIdList; std::set< uint32_t > m_RacingChocoboNameInfoIdList; std::set< uint32_t > m_RacingChocoboParamIdList; + std::set< uint32_t > m_RaidFinderParamIdList; std::set< uint32_t > m_RecastNavimeshIdList; std::set< uint32_t > m_RecipeIdList; std::set< uint32_t > m_RecipeLevelTableIdList; @@ -9730,15 +10030,20 @@ struct ZoneSharedGroup std::set< uint32_t > m_ScenarioTypeIdList; std::set< uint32_t > m_ScreenImageIdList; std::set< uint32_t > m_SecretRecipeBookIdList; + std::set< uint32_t > m_SharlayanCraftWorksIdList; + std::set< uint32_t > m_SharlayanCraftWorksSupplyIdList; std::set< uint32_t > m_SkyIsland2MissionIdList; std::set< uint32_t > m_SkyIsland2MissionDetailIdList; std::set< uint32_t > m_SkyIsland2MissionTypeIdList; std::set< uint32_t > m_SkyIsland2RangeTypeIdList; + std::set< uint32_t > m_SnipeIdList; std::set< uint32_t > m_SnipeTalkIdList; std::set< uint32_t > m_SnipeTalkNameIdList; + std::set< uint32_t > m_SpearfishingComboTargetIdList; std::set< uint32_t > m_SpearfishingItemIdList; std::set< uint32_t > m_SpearfishingNotebookIdList; std::set< uint32_t > m_SpearfishingRecordPageIdList; + std::set< uint32_t > m_SpearfishingSilhouetteIdList; std::set< uint32_t > m_SpecialShopIdList; std::set< uint32_t > m_SpecialShopItemCategoryIdList; std::set< uint32_t > m_StainIdList; @@ -9754,7 +10059,9 @@ struct ZoneSharedGroup std::set< uint32_t > m_SubmarineRankIdList; std::set< uint32_t > m_SwitchTalkIdList; std::set< uint32_t > m_SwitchTalkVariationIdList; + std::set< uint32_t > m_TelepoRelayIdList; std::set< uint32_t > m_TerritoryTypeIdList; + std::set< uint32_t > m_TerritoryTypeTelepoIdList; std::set< uint32_t > m_TerritoryTypeTransientIdList; std::set< uint32_t > m_TextCommandIdList; std::set< uint32_t > m_TextCommandParamIdList; @@ -9774,6 +10081,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_TribeIdList; std::set< uint32_t > m_TripleTriadIdList; std::set< uint32_t > m_TripleTriadCardIdList; + std::set< uint32_t > m_TripleTriadCardObtainIdList; std::set< uint32_t > m_TripleTriadCardRarityIdList; std::set< uint32_t > m_TripleTriadCardResidentIdList; std::set< uint32_t > m_TripleTriadCardTypeIdList; @@ -9986,6 +10294,12 @@ const std::set< uint32_t >& getAetheryteSystemDefineIdList() loadIdList( m_AetheryteSystemDefineDat, m_AetheryteSystemDefineIdList ); return m_AetheryteSystemDefineIdList; } +const std::set< uint32_t >& getAetheryteTransientIdList() +{ + if( m_AetheryteTransientIdList.size() == 0 ) + loadIdList( m_AetheryteTransientDat, m_AetheryteTransientIdList ); + return m_AetheryteTransientIdList; +} const std::set< uint32_t >& getAirshipExplorationLevelIdList() { if( m_AirshipExplorationLevelIdList.size() == 0 ) @@ -10304,6 +10618,12 @@ const std::set< uint32_t >& getBNpcStateIdList() loadIdList( m_BNpcStateDat, m_BNpcStateIdList ); return m_BNpcStateIdList; } +const std::set< uint32_t >& getBoosterIdList() +{ + if( m_BoosterIdList.size() == 0 ) + loadIdList( m_BoosterDat, m_BoosterIdList ); + return m_BoosterIdList; +} const std::set< uint32_t >& getBuddyIdList() { if( m_BuddyIdList.size() == 0 ) @@ -11222,6 +11542,12 @@ const std::set< uint32_t >& getEventItemTimelineIdList() loadIdList( m_EventItemTimelineDat, m_EventItemTimelineIdList ); return m_EventItemTimelineIdList; } +const std::set< uint32_t >& getEventPathMoveIdList() +{ + if( m_EventPathMoveIdList.size() == 0 ) + loadIdList( m_EventPathMoveDat, m_EventPathMoveIdList ); + return m_EventPathMoveIdList; +} const std::set< uint32_t >& getEventSystemDefineIdList() { if( m_EventSystemDefineIdList.size() == 0 ) @@ -11270,6 +11596,12 @@ const std::set< uint32_t >& getFateProgressUIIdList() loadIdList( m_FateProgressUIDat, m_FateProgressUIIdList ); return m_FateProgressUIIdList; } +const std::set< uint32_t >& getFateShopIdList() +{ + if( m_FateShopIdList.size() == 0 ) + loadIdList( m_FateShopDat, m_FateShopIdList ); + return m_FateShopIdList; +} const std::set< uint32_t >& getFateTokenTypeIdList() { if( m_FateTokenTypeIdList.size() == 0 ) @@ -12080,6 +12412,18 @@ const std::set< uint32_t >& getInclusionShopSeriesIdList() loadIdList( m_InclusionShopSeriesDat, m_InclusionShopSeriesIdList ); return m_InclusionShopSeriesIdList; } +const std::set< uint32_t >& getInclusionShopWelcomIdList() +{ + if( m_InclusionShopWelcomIdList.size() == 0 ) + loadIdList( m_InclusionShopWelcomDat, m_InclusionShopWelcomIdList ); + return m_InclusionShopWelcomIdList; +} +const std::set< uint32_t >& getInclusionShopWelcomTextIdList() +{ + if( m_InclusionShopWelcomTextIdList.size() == 0 ) + loadIdList( m_InclusionShopWelcomTextDat, m_InclusionShopWelcomTextIdList ); + return m_InclusionShopWelcomTextIdList; +} const std::set< uint32_t >& getIndividualWeatherIdList() { if( m_IndividualWeatherIdList.size() == 0 ) @@ -12110,6 +12454,12 @@ const std::set< uint32_t >& getInstanceContentGuideIdList() loadIdList( m_InstanceContentGuideDat, m_InstanceContentGuideIdList ); return m_InstanceContentGuideIdList; } +const std::set< uint32_t >& getInstanceContentQICDataIdList() +{ + if( m_InstanceContentQICDataIdList.size() == 0 ) + loadIdList( m_InstanceContentQICDataDat, m_InstanceContentQICDataIdList ); + return m_InstanceContentQICDataIdList; +} const std::set< uint32_t >& getInstanceContentTextDataIdList() { if( m_InstanceContentTextDataIdList.size() == 0 ) @@ -12152,6 +12502,24 @@ const std::set< uint32_t >& getItemLevelIdList() loadIdList( m_ItemLevelDat, m_ItemLevelIdList ); return m_ItemLevelIdList; } +const std::set< uint32_t >& getItemRepairPriceIdList() +{ + if( m_ItemRepairPriceIdList.size() == 0 ) + loadIdList( m_ItemRepairPriceDat, m_ItemRepairPriceIdList ); + return m_ItemRepairPriceIdList; +} +const std::set< uint32_t >& getItemRepairResourceIdList() +{ + if( m_ItemRepairResourceIdList.size() == 0 ) + loadIdList( m_ItemRepairResourceDat, m_ItemRepairResourceIdList ); + return m_ItemRepairResourceIdList; +} +const std::set< uint32_t >& getItemRetainerLevelUpIdList() +{ + if( m_ItemRetainerLevelUpIdList.size() == 0 ) + loadIdList( m_ItemRetainerLevelUpDat, m_ItemRetainerLevelUpIdList ); + return m_ItemRetainerLevelUpIdList; +} const std::set< uint32_t >& getItemSearchCategoryIdList() { if( m_ItemSearchCategoryIdList.size() == 0 ) @@ -12176,6 +12544,12 @@ const std::set< uint32_t >& getItemSpecialBonusIdList() loadIdList( m_ItemSpecialBonusDat, m_ItemSpecialBonusIdList ); return m_ItemSpecialBonusIdList; } +const std::set< uint32_t >& getItemStainConditionIdList() +{ + if( m_ItemStainConditionIdList.size() == 0 ) + loadIdList( m_ItemStainConditionDat, m_ItemStainConditionIdList ); + return m_ItemStainConditionIdList; +} const std::set< uint32_t >& getItemUICategoryIdList() { if( m_ItemUICategoryIdList.size() == 0 ) @@ -12350,6 +12724,12 @@ const std::set< uint32_t >& getMapConditionIdList() loadIdList( m_MapConditionDat, m_MapConditionIdList ); return m_MapConditionIdList; } +const std::set< uint32_t >& getMapExclusiveIdList() +{ + if( m_MapExclusiveIdList.size() == 0 ) + loadIdList( m_MapExclusiveDat, m_MapExclusiveIdList ); + return m_MapExclusiveIdList; +} const std::set< uint32_t >& getMapMarkerIdList() { if( m_MapMarkerIdList.size() == 0 ) @@ -12368,6 +12748,12 @@ const std::set< uint32_t >& getMapSymbolIdList() loadIdList( m_MapSymbolDat, m_MapSymbolIdList ); return m_MapSymbolIdList; } +const std::set< uint32_t >& getMapTypeIdList() +{ + if( m_MapTypeIdList.size() == 0 ) + loadIdList( m_MapTypeDat, m_MapTypeIdList ); + return m_MapTypeIdList; +} const std::set< uint32_t >& getMarkerIdList() { if( m_MarkerIdList.size() == 0 ) @@ -12380,6 +12766,12 @@ const std::set< uint32_t >& getMateriaIdList() loadIdList( m_MateriaDat, m_MateriaIdList ); return m_MateriaIdList; } +const std::set< uint32_t >& getMateriaGradeIdList() +{ + if( m_MateriaGradeIdList.size() == 0 ) + loadIdList( m_MateriaGradeDat, m_MateriaGradeIdList ); + return m_MateriaGradeIdList; +} const std::set< uint32_t >& getMateriaJoinRateIdList() { if( m_MateriaJoinRateIdList.size() == 0 ) @@ -12770,6 +13162,18 @@ const std::set< uint32_t >& getPlantPotFlowerSeedIdList() loadIdList( m_PlantPotFlowerSeedDat, m_PlantPotFlowerSeedIdList ); return m_PlantPotFlowerSeedIdList; } +const std::set< uint32_t >& getPlayerSearchLocationIdList() +{ + if( m_PlayerSearchLocationIdList.size() == 0 ) + loadIdList( m_PlayerSearchLocationDat, m_PlayerSearchLocationIdList ); + return m_PlayerSearchLocationIdList; +} +const std::set< uint32_t >& getPlayerSearchSubLocationIdList() +{ + if( m_PlayerSearchSubLocationIdList.size() == 0 ) + loadIdList( m_PlayerSearchSubLocationDat, m_PlayerSearchSubLocationIdList ); + return m_PlayerSearchSubLocationIdList; +} const std::set< uint32_t >& getPreHandlerIdList() { if( m_PreHandlerIdList.size() == 0 ) @@ -12980,6 +13384,12 @@ const std::set< uint32_t >& getRacingChocoboParamIdList() loadIdList( m_RacingChocoboParamDat, m_RacingChocoboParamIdList ); return m_RacingChocoboParamIdList; } +const std::set< uint32_t >& getRaidFinderParamIdList() +{ + if( m_RaidFinderParamIdList.size() == 0 ) + loadIdList( m_RaidFinderParamDat, m_RaidFinderParamIdList ); + return m_RaidFinderParamIdList; +} const std::set< uint32_t >& getRecastNavimeshIdList() { if( m_RecastNavimeshIdList.size() == 0 ) @@ -13178,6 +13588,18 @@ const std::set< uint32_t >& getSecretRecipeBookIdList() loadIdList( m_SecretRecipeBookDat, m_SecretRecipeBookIdList ); return m_SecretRecipeBookIdList; } +const std::set< uint32_t >& getSharlayanCraftWorksIdList() +{ + if( m_SharlayanCraftWorksIdList.size() == 0 ) + loadIdList( m_SharlayanCraftWorksDat, m_SharlayanCraftWorksIdList ); + return m_SharlayanCraftWorksIdList; +} +const std::set< uint32_t >& getSharlayanCraftWorksSupplyIdList() +{ + if( m_SharlayanCraftWorksSupplyIdList.size() == 0 ) + loadIdList( m_SharlayanCraftWorksSupplyDat, m_SharlayanCraftWorksSupplyIdList ); + return m_SharlayanCraftWorksSupplyIdList; +} const std::set< uint32_t >& getSkyIsland2MissionIdList() { if( m_SkyIsland2MissionIdList.size() == 0 ) @@ -13202,6 +13624,12 @@ const std::set< uint32_t >& getSkyIsland2RangeTypeIdList() loadIdList( m_SkyIsland2RangeTypeDat, m_SkyIsland2RangeTypeIdList ); return m_SkyIsland2RangeTypeIdList; } +const std::set< uint32_t >& getSnipeIdList() +{ + if( m_SnipeIdList.size() == 0 ) + loadIdList( m_SnipeDat, m_SnipeIdList ); + return m_SnipeIdList; +} const std::set< uint32_t >& getSnipeTalkIdList() { if( m_SnipeTalkIdList.size() == 0 ) @@ -13214,6 +13642,12 @@ const std::set< uint32_t >& getSnipeTalkNameIdList() loadIdList( m_SnipeTalkNameDat, m_SnipeTalkNameIdList ); return m_SnipeTalkNameIdList; } +const std::set< uint32_t >& getSpearfishingComboTargetIdList() +{ + if( m_SpearfishingComboTargetIdList.size() == 0 ) + loadIdList( m_SpearfishingComboTargetDat, m_SpearfishingComboTargetIdList ); + return m_SpearfishingComboTargetIdList; +} const std::set< uint32_t >& getSpearfishingItemIdList() { if( m_SpearfishingItemIdList.size() == 0 ) @@ -13232,6 +13666,12 @@ const std::set< uint32_t >& getSpearfishingRecordPageIdList() loadIdList( m_SpearfishingRecordPageDat, m_SpearfishingRecordPageIdList ); return m_SpearfishingRecordPageIdList; } +const std::set< uint32_t >& getSpearfishingSilhouetteIdList() +{ + if( m_SpearfishingSilhouetteIdList.size() == 0 ) + loadIdList( m_SpearfishingSilhouetteDat, m_SpearfishingSilhouetteIdList ); + return m_SpearfishingSilhouetteIdList; +} const std::set< uint32_t >& getSpecialShopIdList() { if( m_SpecialShopIdList.size() == 0 ) @@ -13322,12 +13762,24 @@ const std::set< uint32_t >& getSwitchTalkVariationIdList() loadIdList( m_SwitchTalkVariationDat, m_SwitchTalkVariationIdList ); return m_SwitchTalkVariationIdList; } +const std::set< uint32_t >& getTelepoRelayIdList() +{ + if( m_TelepoRelayIdList.size() == 0 ) + loadIdList( m_TelepoRelayDat, m_TelepoRelayIdList ); + return m_TelepoRelayIdList; +} const std::set< uint32_t >& getTerritoryTypeIdList() { if( m_TerritoryTypeIdList.size() == 0 ) loadIdList( m_TerritoryTypeDat, m_TerritoryTypeIdList ); return m_TerritoryTypeIdList; } +const std::set< uint32_t >& getTerritoryTypeTelepoIdList() +{ + if( m_TerritoryTypeTelepoIdList.size() == 0 ) + loadIdList( m_TerritoryTypeTelepoDat, m_TerritoryTypeTelepoIdList ); + return m_TerritoryTypeTelepoIdList; +} const std::set< uint32_t >& getTerritoryTypeTransientIdList() { if( m_TerritoryTypeTransientIdList.size() == 0 ) @@ -13442,6 +13894,12 @@ const std::set< uint32_t >& getTripleTriadCardIdList() loadIdList( m_TripleTriadCardDat, m_TripleTriadCardIdList ); return m_TripleTriadCardIdList; } +const std::set< uint32_t >& getTripleTriadCardObtainIdList() +{ + if( m_TripleTriadCardObtainIdList.size() == 0 ) + loadIdList( m_TripleTriadCardObtainDat, m_TripleTriadCardObtainIdList ); + return m_TripleTriadCardObtainIdList; +} const std::set< uint32_t >& getTripleTriadCardRarityIdList() { if( m_TripleTriadCardRarityIdList.size() == 0 ) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 7bce247e..4c9720b6 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 = 0x02CB, // updated 5.58 - Init = 0x02A8, // updated 5.58 + Ping = 0x02A8, // updated 5.58 hotfix + Init = 0x0182, // updated 5.58 hotfix - ActorFreeSpawn = 0x0210, // updated 5.58 - InitZone = 0x0100, // updated 5.58 + ActorFreeSpawn = 0x0082, // updated 6.08 + InitZone = 0x01EB, // updated 6.08 - EffectResult = 0x0151, // updated 5.58 - ActorControl = 0x0264, // updated 5.58 - ActorControlSelf = 0x0314, // updated 5.58 - ActorControlTarget = 0x00FC, // updated 5.58 + EffectResult = 0x0387, // updated 5.58 hotfix + ActorControl = 0x022F, // updated 6.08 + ActorControlSelf = 0x006B, // updated 6.08 + ActorControlTarget = 0x0191, // updated 6.08 /*! * @brief Used when resting */ - UpdateHpMpTp = 0x039B, // updated 5.58 + UpdateHpMpTp = 0x02C9, // updated 6.08 /////////////////////////////////////////////////// ChatBanned = 0xF06B, - Playtime = 0x02BE, // updated 5.58 - Logout = 0x0297, // updated 5.58 - CFNotify = 0x01AC, // updated 5.58 + Playtime = 0x00CE, // updated 6.08 + Logout = 0x03B2, // updated 6.08 + CFNotify = 0x01C5, // updated 6.08 CFMemberStatus = 0x0079, - CFDutyInfo = 0x0083, // updated 5.58 + CFDutyInfo = 0x0188, // updated 6.08 CFPlayerInNeed = 0xF07F, - CFPreferredRole = 0x02FB, // updated 5.58 - CFCancel = 0x0135, // updated 5.58 + CFPreferredRole = 0x02DA, // updated 6.08 + CFCancel = 0x00EB, // updated 6.08 SocialRequestError = 0xF0AD, - CFRegistered = 0x037E, // updated 5.58 - SocialRequestResponse = 0x0254, // updated 5.58 - SocialMessage = 0x02F2, // updated 5.58 - SocialMessage2 = 0x017A, // updated 5.58 + CFRegistered = 0x00A9, // updated 6.08 + SocialRequestResponse = 0x024D, // updated 6.08 + SocialMessage = 0x02B4, // updated 6.08 + SocialMessage2 = 0x011C, // updated 6.08 CancelAllianceForming = 0xF0C6, // updated 4.2 - LogMessage = 0x020F, // updated 5.58 + LogMessage = 0x0142, // updated 6.08 - Chat = 0x0220, // updated 5.58 + Chat = 0x0148, // updated 56.08 PartyChat = 0x0065, WorldVisitList = 0xF0FE, // added 4.5 - SocialList = 0x0396, // updated 5.58 + SocialList = 0x039C, // updated 6.08 - ExamineSearchInfo = 0x031F, // updated 5.58 - UpdateSearchInfo = 0x0219, // updated 5.58 - InitSearchInfo = 0x01A0, // updated 5.58 - ExamineSearchComment = 0x0315, // updated 5.58 + ExamineSearchInfo = 0x0297, // updated 6.08 + UpdateSearchInfo = 0x03D1, // updated 6.08 + InitSearchInfo = 0x01BB, // updated 6.08 + ExamineSearchComment = 0x02AE, // updated 6.08 - ServerNoticeShort = 0x0211, // updated 5.58 - ServerNotice = 0x03B9, // updated 5.58 - SetOnlineStatus = 0x0163, // updated 5.58 + ServerNoticeShort = 0x01D7, // updated 6.08 + ServerNotice = 0x036E, // updated 6.08 + SetOnlineStatus = 0x0308, // updated 6.08 - CountdownInitiate = 0x01F9, // updated 5.58 - CountdownCancel = 0x0206, // updated 5.58 + CountdownInitiate = 0x00E1, // updated 6.08 + CountdownCancel = 0x0284, // updated 6.08 - PlayerAddedToBlacklist = 0x01FE, // updated 5.58 - PlayerRemovedFromBlacklist = 0x02D6, // updated 5.58 - BlackList = 0x028A, // updated 5.58 + PlayerAddedToBlacklist = 0x037D, // updated 6.08 + PlayerRemovedFromBlacklist = 0x0342, // updated 6.08 + BlackList = 0x0070, // updated 6.08 - LinkshellList = 0x02DD, // updated 5.58 + LinkshellList = 0x0304, // updated 6.08 MailDeleteRequest = 0xF12B, // updated 5.0 @@ -114,173 +114,183 @@ namespace Sapphire::Network::Packets MarketTaxRates = 0x01F8, // updated 5.35 hotfix - MarketBoardSearchResult = 0x0355, // updated 5.58 - MarketBoardItemListingCount = 0x0275, // updated 5.58 - MarketBoardItemListingHistory = 0x0112, // updated 5.58 - MarketBoardItemListing = 0x00F5, // updated 5.58 + MarketBoardSearchResult = 0x00B2, // updated 6.08 + MarketBoardItemListingCount = 0x026A, // updated 6.08 + MarketBoardItemListingHistory = 0x013A, // updated 6.08 + MarketBoardItemListing = 0x01E2, // updated 6.08 CharaFreeCompanyTag = 0x013B, // updated 4.5 - FreeCompanyBoardMsg = 0x028D, // updated 5.58 - FreeCompanyInfo = 0x0346, // updated 5.58 - ExamineFreeCompanyInfo = 0x00B7, // updated 5.58 + FreeCompanyBoardMsg = 0x02F1, // updated 6.08 + FreeCompanyInfo = 0x01A2, // updated 6.08 + ExamineFreeCompanyInfo = 0x011E, // updated 6.08 FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 - StatusEffectList = 0x01C5, // updated 5.58 + StatusEffectList = 0x00BC, // updated 6.08 EurekaStatusEffectList = 0x0167, // updated 5.18 BossStatusEffectList = 0x0312, // added 5.1 - 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 + Effect = 0x03C7, // updated 6.08 + AoeEffect8 = 0x0149, // updated 6.08 + AoeEffect16 = 0x00C1, // updated 6.08 + AoeEffect24 = 0x0213, // updated 6.08 + AoeEffect32 = 0x038B, // updated 6.08 + PersistantEffect = 0x02AF, // updated 6.08 - GCAffiliation = 0x02B1, // updated 5.58 + GCAffiliation = 0x0264, // updated 6.08 - PlayerSpawn = 0x0249, // updated 5.58 - NpcSpawn = 0x014B, // updated 5.58 + PlayerSpawn = 0x0226, // updated 6.08 + NpcSpawn = 0x032C, // updated 6.08 NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3 - ActorMove = 0x023D, // updated 5.58 + ActorMove = 0x0370, // updated 6.08 - ActorSetPos = 0x0280, // updated 5.58 + ActorSetPos = 0x0395, // updated 6.08 - ActorCast = 0x02A7, // updated 5.58 + ActorCast = 0x0104, // updated 6.08 SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 - 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 + PartyList = 0x03AF, // updated 6.08 + PartyMessage = 0x0352, // updated 6.08 + HateRank = 0x03C3, // updated 6.08 + HateList = 0x032B, // updated 6.08 + ObjectSpawn = 0x03A3, // updated 6.08 + ObjectDespawn = 0x0137, // updated 6.08 + UpdateClassInfo = 0x00FE, // updated 6.08 SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything - 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 + PlayerSetup = 0x02C7, // updated 6.08 + PlayerStats = 0x0295, // updated 5.58 hotfix + ActorOwner = 0x0261, // updated 6.08 + PlayerStateFlags = 0x03CF, // updated 6.08 (or 0x00CB) + PlayerClassInfo = 0x025A, // updated 6.08 + CharaVisualEffect = 0x01D1, // updated 6.08 - ModelEquip = 0x0312, // updated 5.58 - Examine = 0x00D3, // updated 5.58 - CharaNameReq = 0x031C, // updated 5.58 + InstanceDecorAnimation = 0x0338, // updated 6.08 + + ModelEquip = 0x00E4, // updated 6.08 + Examine = 0x03E2, // updated 6.08 + CharaNameReq = 0x0343, // updated 6.08 // nb: see #565 on github UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0 - RetainerSaleHistory = 0x01D3, // updated 5.58 - RetainerInformation = 0x0069, // updated 5.58 + RetainerSaleHistory = 0x0066, // updated 6.08 + RetainerInformation = 0x022F, // updated 5.58 hotfix SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore - 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 + ItemInfo = 0x01CC, // updated 5.58 hotfix + ContainerInfo = 0x025C, // updated 5.58 hotfix + InventoryTransactionFinish = 0x0176, // updated 5.58 hotfix + InventoryTransaction = 0x027F, // updated 5.58 hotfix + CurrencyCrystalInfo = 0x0345, // updated 5.58 hotfix - InventoryActionAck = 0x0305, // updated 5.58 - UpdateInventorySlot = 0x0200, // updated 5.58 + InventoryActionAck = 0x008A, // updated 6.08 + UpdateInventorySlot = 0x0375, // updated 6.08 - HuntingLogEntry = 0x00C5, // updated 5.58 + HuntingLogEntry = 0x0187, // updated 6.08 - 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 + EventPlay = 0x0113, // updated for 6.08 + EventPlay4 = 0x0302, // updated for 6.08 + EventPlay8 = 0x0078, // updated for 6.08 + EventPlay16 = 0x0223, // updated for 6.08 + EventPlay32 = 0x02F2, // updated for 6.08 + EventPlay64 = 0x03BC, // updated for 6.08 + EventPlay128 = 0x033E, // updated for 6.08 + EventPlay255 = 0x0079, // updated for 6.08 - EventContinue = 0x0123, // updated 5.58 + EventContinue = 0x00B6, // updated 5.58 hotfix - EventStart = 0x01CC, // updated 5.58 - EventFinish = 0x0180, // updated 5.58 + EventStart = 0x00AE, // updated 6.08 + EventFinish = 0x0210, // updated 6.08 EventLinkshell = 0x1169, - QuestActiveList = 0x035D, // updated 5.58 - QuestUpdate = 0x029A, // updated 5.58 - QuestCompleteList = 0x03C5, // updated 5.58 + QuestActiveList = 0x03E0, // updated 6.08 + QuestUpdate = 0x029B, // updated 6.08 + QuestCompleteList = 0x0118, // updated 6.08 - QuestFinish = 0x0274, // updated 5.58 - MSQTrackerComplete = 0x01C1, // updated 5.58 + QuestFinish = 0x015A, // updated 6.08 + MSQTrackerComplete = 0x00E5, // updated 6.08 MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 - QuestMessage = 0x0128, // updated 5.58 + QuestMessage = 0x0220, // updated 5.58 hotfix - QuestTracker = 0x038E, // updated 5.58 + QuestTracker = 0x01FB, // updated 6.08 - Mount = 0x03C2, // updated 5.58 + Mount = 0x0373, // updated 6.08 - DirectorVars = 0x01ED, // updated 5.58 + DirectorVars = 0x0138, // updated 6.08 SomeDirectorUnk1 = 0x0084, // updated 5.18 SomeDirectorUnk2 = 0xF0C1, // updated 5.18 - SomeDirectorUnk4 = 0x01BD, // updated 5.58 + SomeDirectorUnk4 = 0x03DD, // updated 5.58 hotfix SomeDirectorUnk8 = 0x028A, // updated 5.18 SomeDirectorUnk16 = 0x028C, // updated 5.18 - DirectorPopUp = 0x02E3, // updated 5.58 - DirectorPopUp4 = 0x01DC, // updated 5.58 - DirectorPopUp8 = 0x011D, // updated 5.58 + DirectorPopUp = 0x03DF, // updated 5.58 hotfix + DirectorPopUp4 = 0x019B, // updated 5.58 hotfix + DirectorPopUp8 = 0x0271, // updated 5.58 hotfix CFAvailableContents = 0xF1FD, // updated 4.2 - WeatherChange = 0x01B1, // updated 5.58 - PlayerTitleList = 0x02B4, // updated 5.58 - Discovery = 0x00B8, // updated 5.58 + WeatherChange = 0x00ED, // updated 6.08 + PlayerTitleList = 0x02C2, // updated 6.08 + Discovery = 0x03A4, // updated 6.08 - EorzeaTimeOffset = 0x03D9, // updated 5.58 + EorzeaTimeOffset = 0x0074, // updated 6.08 - EquipDisplayFlags = 0x0199, // updated 5.58 + EquipDisplayFlags = 0x023A, // updated 6.08 MiniCactpotInit = 0x0286, // added 5.31 - ShopMessage = 0x00D0, // updated 5.58 - LootMessage = 0x038C, // updated 5.58 - ResultDialog = 0x00DF, // updated 5.58 - DesynthResult = 0x038F, // updated 5.58 + ShopMessage = 0x0287, // updated 5.58 hotfix + LootMessage = 0x006C, // updated 6.08 + ResultDialog = 0x0273, // updated 5.58 hotfix + DesynthResult = 0x0238, // updated 5.58 hotfix /// Housing ////////////////////////////////////// - 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 + LandSetInitialize = 0x0280, // updated 6.08 + LandUpdate = 0x03C6, // updated 6.08 + YardObjectSpawn = 0x01AC, // updated 6.08 + HousingIndoorInitialize = 0x00E6, // updated 6.08 + LandPriceUpdate = 0x03CB, // updated 6.08 + LandInfoSign = 0x0276, // updated 6.08 + LandRename = 0x0158, // updated 6.08 + HousingEstateGreeting = 0x029E, // updated 6.08 + HousingUpdateLandFlagsSlot = 0x01B4, // updated 6.08 + HousingLandFlags = 0x03DD, // updated 6.08 + HousingShowEstateGuestAccess = 0x011B, // updated 6.08 - HousingObjectInitialize = 0x0245, // updated 5.58 - HousingInternalObjectSpawn = 0x0194, // updated 5.58 + HousingObjectInitialize = 0x02DF, // updated 6.08 + HousingInternalObjectSpawn = 0x01C2, // updated 6.08 - HousingWardInfo = 0x00A4, // updated 5.58 - HousingObjectMove = 0x01AE, // updated 5.58 + HousingWardInfo = 0x0145, // updated 6.08 + HousingObjectMove = 0x0242, // updated 6.08 - SharedEstateSettingsResponse = 0x0378, // updated 5.58 + SharedEstateSettingsResponse = 0x02F0, // updated 6.08 - LandUpdateHouseName = 0x034B, // updated 5.58 + LandUpdateHouseName = 0x0132, // updated 6.08 - LandSetMap = 0x02F6, // updated 5.58 + LandSetMap = 0x008B, // updated 6.08 - CeremonySetActorAppearance = 0x00EB, // updated 5.58 + CeremonySetActorAppearance = 0x0222, // updated 6.08 ////////////////////////////////////////////////// - DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui - PerformNote = 0x00BE, // updated 5.58 + DuelChallenge = 0xF277, // 4.2; this is responsible for opening the ui + PerformNote = 0x009B, // updated 6.08 - PrepareZoning = 0x0171, // updated 5.58 - ActorGauge = 0x0335, // updated 5.58 - DutyGauge = 0x02F6, // updated 5.58 + PrepareZoning = 0x039A, // updated 6.08 + ActorGauge = 0x03B5, // updated 6.08 + DutyGauge = 0x008B, // updated 6.08 // daily quest info -> without them sent, login will take longer... - DailyQuests = 0x0331, // updated 5.58 - DailyQuestRepeatFlags = 0x01D1, // updated 5.58 + DailyQuests = 0x0136, // updated 6.08 + DailyQuestRepeatFlags = 0x0348, // updated 6.08 + + MapUpdate = 0x0364, // updated 6.08 + MapUpdate4 = 0x0128, // updated 6.08 + MapUpdate8 = 0x0286, // updated 6.08 + MapUpdate16 = 0x01AA, // updated 6.08 + MapUpdate32 = 0x0151, // updated 6.08 + MapUpdate64 = 0x00CD, // updated 6.08 + MapUpdate128 = 0x017D, // updated 6.08 /// Doman Mahjong ////////////////////////////////////// MahjongOpenGui = 0x02A4, // only available in mahjong instance @@ -295,14 +305,14 @@ namespace Sapphire::Network::Packets MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen. /// Airship & Submarine ////////////////////////////////////// - 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 + AirshipExplorationResult = 0x023E, // updated 6.08 + AirshipStatus = 0x01F5, // updated 6.08 + AirshipStatusList = 0x0250, // updated 6.08 + AirshipTimers = 0x0225, // updated 6.08 + SubmarineExplorationResult = 0x0092, // updated 6.08 + SubmarineProgressionStatus = 0x0357, // updated 5.58 hotfix + SubmarineStatusList = 0x0212, // updated 6.08 + SubmarineTimers = 0x0346, // updated 6.08 }; /** @@ -310,111 +320,110 @@ namespace Sapphire::Network::Packets */ enum ClientZoneIpcType : uint16_t { - PingHandler = 0x03A3, // updated 5.58 - InitHandler = 0x03B3, // updated 5.58 + PingHandler = 0x0315, // updated 6.08 + InitHandler = 0x0068, // updated 6.08 - FinishLoadingHandler = 0x0217, // updated 5.58 + FinishLoadingHandler = 0x0182, // updated 6.08 + CFCommenceHandler = 0x0381, // updated 5.58 hotfix - CFCommenceHandler = 0x02A3, // updated 5.58 - - 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 + CFCancelHandler = 0x02B2, // updated 5.58 hotfix + CFRegisterDuty = 0x01BD, // updated 5.58 hotfix + CFRegisterRoulette = 0x037A, // updated 5.58 hotfix + PlayTimeHandler = 0x02B7, // updated 5.58 hotfix + LogoutHandler = 0x00A0, // updated 5.58 hotfix + CancelLogout = 0x01AC, // updated 5.58 hotfix CFDutyInfoHandler = 0xF078, // updated 4.2 - SocialReqSendHandler = 0x0366, // updated 5.58 - SocialResponseHandler = 0x0311, // updated 5.58 - CreateCrossWorldLS = 0x0125, // updated 5.58 + SocialReqSendHandler = 0x00D7, // updated 5.58 hotfix + SocialResponseHandler = 0x023B, // updated 5.58 hotfix + CreateCrossWorldLS = 0x035D, // updated 5.58 hotfix - ChatHandler = 0x02F4, // updated 5.58 + ChatHandler = 0x01C8, // updated 6.08 PartyChatHandler = 0x0065, - PartySetLeaderHandler = 0x03C2, // updated 5.58 - LeavePartyHandler = 0x028A, // updated 5.58 - KickPartyMemberHandler = 0x01D1, // updated 5.58 - DisbandPartyHandler = 0x032B, // updated 5.58 + PartySetLeaderHandler = 0x036C, // updated 5.58 hotfix + LeavePartyHandler = 0x019D, // updated 5.58 hotfix + KickPartyMemberHandler = 0x0262, // updated 5.58 hotfix + DisbandPartyHandler = 0x0276, // updated 5.58 hotfix - SocialListHandler = 0x006E, // updated 5.58 - SetSearchInfoHandler = 0x010A, // updated 5.58 - ReqSearchInfoHandler = 0x0255, // updated 5.58 + SocialListHandler = 0x012A, // updated 6.08 + SetSearchInfoHandler = 0x01D4, // updated 5.58 hotfix + ReqSearchInfoHandler = 0x014F, // updated 5.58 hotfix ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 - ReqRemovePlayerFromBlacklist = 0x015A, // updated 5.58 - BlackListHandler = 0x02C5, // updated 5.58 - PlayerSearchHandler = 0x0259, // updated 5.58 + ReqRemovePlayerFromBlacklist = 0x00B4, // updated 5.58 hotfix + BlackListHandler = 0x019E, // updated 6.08 + PlayerSearchHandler = 0x037D, // updated 5.58 hotfix - LinkshellListHandler = 0x01F0, // updated 5.58 + LinkshellListHandler = 0x010C, // updated 6.08 - MarketBoardRequestItemListingInfo = 0x02D3, // updated 5.58 - MarketBoardRequestItemListings = 0x00AD, // updated 5.58 - MarketBoardSearch = 0x00D6, // updated 5.58 + MarketBoardRequestItemListingInfo = 0x00F4, // updated 5.58 hotfix + MarketBoardRequestItemListings = 0x0122, // updated 5.58 hotfix + MarketBoardSearch = 0x0082, // updated 5.58 hotfix - ReqExamineFcInfo = 0x0359, // updated 5.58 + ReqExamineFcInfo = 0x037B, // updated 5.58 hotfix - FcInfoReqHandler = 0x0078, // updated 5.58 + FcInfoReqHandler = 0x03D4, // updated 5.58 hotfix FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0 - ReqMarketWishList = 0x0364, // updated 5.58 + ReqMarketWishList = 0x00C3, // updated 5.58 hotfix ReqJoinNoviceNetwork = 0x0129, // updated 4.2 - ReqCountdownInitiate = 0x020E, // updated 5.58 - ReqCountdownCancel = 0x03BE, // updated 5.58 + ReqCountdownInitiate = 0x02EC, // updated 5.58 hotfix + ReqCountdownCancel = 0x0068, // updated 5.58 hotfix - ZoneLineHandler = 0x00B0, // updated 5.58 - ClientTrigger = 0x008B, // updated 5.58 - DiscoveryHandler = 0x01B4, // updated 5.58 + ZoneLineHandler = 0x008D, // updated 5.58 hotfix + ClientTrigger = 0x02F1, // updated 6.08 + DiscoveryHandler = 0x038B, // updated 5.58 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 + PlaceFieldMarkerPreset = 0x026D, // updated 5.58 hotfix + PlaceFieldMarker = 0x0371, // updated 5.58 hotfix + SkillHandler = 0x008E, // updated 6.08 + GMCommand1 = 0x0272, // updated 5.58 hotfix + GMCommand2 = 0x00E9, // updated 5.58 hotfix + AoESkillHandler = 0x0152, // updated 5.58 hotfix - UpdatePositionHandler = 0x0212, // updated 5.58 + UpdatePositionHandler = 0x0147, // updated 6.08 - InventoryModifyHandler = 0x014A, // updated 5.58 + InventoryModifyHandler = 0x029E, // updated 5.58 hotfix - InventoryEquipRecommendedItems = 0x01D7, // updated 5.58 + InventoryEquipRecommendedItems = 0x01C9, // updated 5.58 hotfix - ReqPlaceHousingItem = 0x0354, // updated 5.58 - BuildPresetHandler = 0x00DC, // updated 5.58 + ReqPlaceHousingItem = 0x02D4, // updated 5.58 hotfix + BuildPresetHandler = 0x0223, // updated 5.58 hotfix - TalkEventHandler = 0x012D, // updated 5.58 - EmoteEventHandler = 0x039E, // updated 5.58 - WithinRangeEventHandler = 0x022C, // updated 5.58 - OutOfRangeEventHandler = 0x0294, // updated 5.58 - EnterTeriEventHandler = 0x00C1, // updated 5.58 - ShopEventHandler = 0x02B8, // updated 5.58 - EventYieldHandler = 0x03A2, // updated 5.58 - ReturnEventHandler = 0x0333, // updated 5.58 - TradeReturnEventHandler = 0x0179, // updated 5.58 - TradeReturnEventHandler2 = 0x02E1, // updated 5.58 - EventYield16Handler = 0x03D7, // updated 5.58 + TalkEventHandler = 0x0387, // updated 5.58 hotfix + EmoteEventHandler = 0x00B0, // updated 5.58 hotfix + WithinRangeEventHandler = 0x02B6, // updated 5.58 hotfix + OutOfRangeEventHandler = 0x03C5, // updated 5.58 hotfix + EnterTeriEventHandler = 0x01A7, // updated 5.58 hotfix + ShopEventHandler = 0x0384, // updated 5.58 hotfix + ReturnEventHandler = 0x00FA, // updated 5.58 hotfix + TradeReturnEventHandler = 0x0339, // updated 5.58 hotfix + TradeReturnEventHandler2 = 0x023C, // updated 5.58 hotfix + EventYield2Handler = 0x021D, // updated 5.58 hotfix + EventYield16Handler = 0x0207, // updated 5.58 hotfix LinkshellEventHandler = 0x016B, // updated 4.5 LinkshellEventHandler1 = 0x016C, // updated 4.5 - ReqEquipDisplayFlagsChange = 0x01AD, // updated 5.58 + ReqEquipDisplayFlagsChange = 0x02A5, // updated 5.58 hotfix - LandRenameHandler = 0x0083, // updated 5.58 - HousingUpdateHouseGreeting = 0x031A, // updated 5.58 - HousingUpdateObjectPosition = 0x010E, // updated 5.58 - HousingEditExterior = 0x0324, // updated 5.58 - HousingEditInterior = 0x02F7, // updated 5.58 + LandRenameHandler = 0x028E, // updated 5.58 hotfix + HousingUpdateHouseGreeting = 0x0343, // updated 5.58 hotfix + HousingUpdateObjectPosition = 0x012C, // updated 5.58 hotfix + HousingEditExterior = 0x027B, // updated 5.58 hotfix + HousingEditInterior = 0x02E3, // updated 5.58 hotfix - SetSharedEstateSettings = 0x0342, // updated 5.58 + SetSharedEstateSettings = 0x00D2, // updated 5.58 hotfix - UpdatePositionInstance = 0x01A3, // updated 5.58 + UpdatePositionInstance = 0x00F8, // updated 5.58 hotfix - PerformNoteHandler = 0x015E, // updated 5.58 + PerformNoteHandler = 0x0243, // updated 5.58 hotfix - WorldInteractionHandler = 0x03CE, // updated 5.58 - Dive = 0x034C, // updated 5.58 + WorldInteractionHandler = 0x0274, // updated 5.58 hotfix + Dive = 0x0320, // updated 5.58 hotfix }; //////////////////////////////////////////////////////////////////////////////// @@ -443,4 +452,4 @@ namespace Sapphire::Network::Packets } -#endif /*_CORE_NETWORK_PACKETS_IPCS_H*/ +#endif /*_CORE_NETWORK_PACKETS_IPCS_H*/ \ No newline at end of file diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 903abf90..a04e93bc 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -447,7 +447,7 @@ struct FFXIVIpcHousingEditInterior : }; struct FFXIVIpcEventYieldHandler : - FFXIVIpcBasePacket< EventYieldHandler > + FFXIVIpcBasePacket< EventYield2Handler > { uint32_t eventId; uint16_t scene; diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index c0899b1e..87621e20 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -950,7 +950,7 @@ namespace Sapphire::Network::Packets::Server // plain C types for a bit until the packet is actually fixed. // makes conversion between different editors easier. uint64_t contentId; - unsigned int unknown8; + uint64_t unknown8; unsigned int unknownC; unsigned int charId; unsigned int restedExp; @@ -960,7 +960,7 @@ namespace Sapphire::Network::Packets::Server unsigned int useBaitCatalogId; unsigned int unknown28; unsigned short unknownPvp2C; - unsigned short unknown3; + unsigned short unknown2E; unsigned int pvpFrontlineOverallCampaigns; unsigned int unknownTimestamp34; unsigned int unknownTimestamp38; @@ -985,7 +985,7 @@ namespace Sapphire::Network::Packets::Server unsigned char expansion; unsigned char unknown76; unsigned char unknown77; - unsigned char very_unknown; + unsigned char unknown78; unsigned char race; unsigned char tribe; unsigned char gender; @@ -996,7 +996,7 @@ namespace Sapphire::Network::Packets::Server unsigned char namedayDay; unsigned char cityState; unsigned char homepoint; - unsigned char unknown82; + unsigned char unknown83; unsigned char petHotBar; unsigned char companionRank; unsigned char companionStars; @@ -1004,117 +1004,97 @@ namespace Sapphire::Network::Packets::Server unsigned char companionUnk86; unsigned char companionColor; unsigned char companionFavoFeed; - unsigned char unknown89; - unsigned char unknown8A[4]; + unsigned char favAetheryteCount; + unsigned char unknown8C[4]; unsigned char hasRelicBook; unsigned char relicBookId; - unsigned char unknown90[4]; + unsigned char sightseeing21to80Unlock; + unsigned char sightseeingHeavenswardUnlock; + unsigned char unknown94[2]; unsigned char craftingMasterMask; - unsigned char unknown95[9]; - unsigned char unknown9F[2]; - unsigned char unknownA1[6]; + unsigned char unknown97[9]; + unsigned char unknownA0[2]; + unsigned char unknownA2[3]; + unsigned char unknownA5[3]; unsigned int exp[Common::CLASSJOB_SLOTS]; - unsigned int unknown108; unsigned int pvpTotalExp; - unsigned int unknownPvp110; + unsigned int unknownPvp124; unsigned int pvpExp; unsigned int pvpFrontlineOverallRanks[3]; unsigned short levels[Common::CLASSJOB_SLOTS]; - /* - unsigned short unknown15C[9]; - unsigned short u1; - unsigned short u2; - unsigned short unknown112[23]; - unsigned short fishingRecordsFish[26]; - unsigned short beastExp[11]; - unsigned short unknown1EA[5]; + + unsigned short unknown178[8]; + unsigned short fishingRecordsFishId[30]; + unsigned short fishingRecordsFishLength[30]; + unsigned short beastExp[14]; + unsigned short unknown21C[5]; unsigned short pvpFrontlineWeeklyRanks[3]; - unsigned short unknownMask1FA[4]; - unsigned char companionName[21]; - unsigned char companionDefRank; - unsigned char companionAttRank; - unsigned char companionHealRank; - unsigned char u19[8]; - unsigned char mountGuideMask[22]; - unsigned char u19_2; - */ - unsigned char unknown5_55a[178]; + unsigned short unknownMask22C[7]; unsigned char companionName[21]; unsigned char companionDefRank; unsigned char companionAttRank; unsigned char companionHealRank; unsigned char mountGuideMask[29]; - //== + unsigned char unknown26F[4]; char name[32]; - unsigned char unknownOword[16]; - unsigned char unknownOw; + unsigned char unknown293[16]; + unsigned char unknown2A3; unsigned char unlockBitmask[64]; unsigned char aetheryte[21]; - unsigned char discovery[445]; - unsigned char howto[34]; - unsigned char minions[55]; + unsigned char favoriteAetheryteIds[4]; + unsigned char freeAetheryteId; + unsigned char discovery[464]; + unsigned char howto[35]; + unsigned char minions[56]; unsigned char chocoboTaxiMask[10]; - unsigned char watchedCutscenes[137]; + unsigned char watchedCutscenes[144]; unsigned char companionBardingMask[11]; unsigned char companionEquippedHead; unsigned char companionEquippedBody; unsigned char companionEquippedLegs; - /* - unsigned char unknown52A[4]; - unsigned char unknownMask52E[11]; - unsigned char fishingGuideMask[105]; - unsigned char fishingSpotVisited[31]; - unsigned char unknown59A[27]; - unsigned char unknown5A9[7]; - unsigned char beastRank[11]; - unsigned char unknownPvp5AB[11]; - unsigned char unknown5B9[5]; - */ - unsigned char unknown5_45b[236]; - //== + unsigned char unknown5D1[4]; + unsigned char unknownMask5D5[11]; + unsigned char fishingGuideMask[142]; + unsigned char fishingSpotVisited[38]; + unsigned char unknown694[34]; + unsigned char unknown6B6[7]; + unsigned char unknownPvp6BD[3]; + unsigned char beastRank[14]; + unsigned char unknownPvp6CE[12]; unsigned char pose; - /* - unsigned char unknown5B91; - unsigned char challengeLogComplete[9]; - unsigned char weaponPose; - unsigned char unknownMask673[10]; - unsigned char unknownMask5DD[28]; + unsigned char pose2[4]; + unsigned char unknown6DF[3]; + unsigned char challengeLogComplete[13]; + unsigned char unknownMask6EF[8]; + unsigned char unknownMask6F7[31]; unsigned char relicCompletion[12]; - unsigned char sightseeingMask[26]; - unsigned char huntingMarkMask[55]; - unsigned char tripleTriadCards[32]; - unsigned char u12[11]; - unsigned char u13; - unsigned char aetherCurrentMask[22]; - unsigned char u10[3]; - */ - 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_55b + unsigned char sightseeingMask[37]; + unsigned char huntingMarkMask[101]; + unsigned char tripleTriadCards[43]; + unsigned char unknown7D7; + unsigned char unknown7D8[14]; + unsigned char unknown7E6[36]; + unsigned char unknown80A[6]; + unsigned char orchestrionMask[64]; unsigned char hallOfNoviceCompletion[3]; unsigned char animaCompletion[11]; - unsigned char unknown5_55c[35]; + unsigned char unknown85E[16]; + unsigned char unknown86E[4]; + unsigned char unknown872[14]; + unsigned char unknown880; unsigned char unlockedRaids[28]; unsigned char unlockedDungeons[18]; unsigned char unlockedGuildhests[10]; - /* - at least 8 bytes at most 10 bytes in unlockedTrials not confirmed, adjust unlockedPvp so they share a total of 15 bytes and sync with clearedTrials/clearedPvp. - */ - unsigned char unlockedTrials[9]; - unsigned char unlockedPvp[6]; - //== + unsigned char unlockedTrials[11]; + unsigned char unlockedPvp[5]; unsigned char clearedRaids[28]; unsigned char clearedDungeons[18]; unsigned char clearedGuildhests[10]; - unsigned char clearedTrials[9]; - unsigned char clearedPvp[6]; - /* - unsigned short fishingRecordsFishWeight[26]; - unsigned int exploratoryMissionNextTimestamp; - unsigned char pvpLevel; - */ - unsigned char unknown5_55d[9]; - //== + unsigned char clearedTrials[11]; + unsigned char clearedPvp[5]; + unsigned char unknown911[4]; + unsigned char unknown915[2]; + unsigned char unknown917[3]; }; diff --git a/src/scripts/instances/wedding/SanctumOfTheTwelve.cpp b/src/scripts/instances/wedding/SanctumOfTheTwelve.cpp index 8508c132..cc13ad4d 100644 --- a/src/scripts/instances/wedding/SanctumOfTheTwelve.cpp +++ b/src/scripts/instances/wedding/SanctumOfTheTwelve.cpp @@ -239,10 +239,12 @@ public: packetData.actors[0].charId = p1->getId(); packetData.actors[0].guardianDeity = p1->getGuardianDeity(); packetData.actors[0].models[ Common::GearModelSlot::ModelHead ] = p1->getModelForSlot( Common::GearModelSlot::ModelHead ); - player.sendUrgent("p1 Head Model: {}", p1->getModelForSlot(Common::GearModelSlot::ModelHead)); if ((p1->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFF) == 208) { - player.sendUrgent("Replacing p1 Model"); + instance.foreachPlayer( []( auto p ) + { + p->sendUrgent("Replacing p1 Model"); + }); uint32_t gear = p1->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFFFFFF00; packetData.actors[0].models[Common::GearModelSlot::ModelHead] = gear | 0xC7; } @@ -256,7 +258,6 @@ public: packetData.actors[0].models[ Common::GearModelSlot::ModelRing2 ] = p1->getModelForSlot( Common::GearModelSlot::ModelRing2 ); packetData.actors[0].models[ Common::GearModelSlot::ModelWrist ] = p1->getModelForSlot( Common::GearModelSlot::ModelWrist ); memcpy( packetData.actors[0].look, p1->getLookArray(), sizeof( packetData.actors[0].look ) ); - player.sendUrgent("p2 Head Model: {}", p2->getModelForSlot(Common::GearModelSlot::ModelHead)); if( !( p2->getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::HideWeapon ) ) { packetData.actors[1].mainWeaponModel = p2->getModelMainWeapon(); @@ -267,7 +268,10 @@ public: packetData.actors[1].models[ Common::GearModelSlot::ModelHead ] = p2->getModelForSlot( Common::GearModelSlot::ModelHead ); if ((p2->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFF) == 208) { - player.sendUrgent("Replacing p2 Model"); + instance.foreachPlayer([](auto p) + { + p->sendUrgent("Replacing p2 Model"); + }); uint32_t gear = p2->getModelForSlot(Common::GearModelSlot::ModelHead) & 0xFFFFFF00; packetData.actors[1].models[Common::GearModelSlot::ModelHead] = gear | 0xC7; } diff --git a/src/tools/exd_struct_gen/main.cpp b/src/tools/exd_struct_gen/main.cpp index 7526a231..77305d61 100644 --- a/src/tools/exd_struct_gen/main.cpp +++ b/src/tools/exd_struct_gen/main.cpp @@ -53,7 +53,7 @@ std::vector< std::string > reservedWords }; //std::string datLocation( "/home/mordred/sqpack" ); -std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); +std::string datLocation( "D:\\Program Files (x86)\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); std::map< uint8_t, std::string > g_typeMap; @@ -408,6 +408,8 @@ int main( int argc, char** argv ) auto name = path.stem().string(); + Logger::info("Filename: " + name); + if( std::find( cats.begin(), cats.end(), name ) == cats.end() ) { Logger::warn( "have definition for {} but the sheet doesn't exist", name ); @@ -441,7 +443,7 @@ int main( int argc, char** argv ) result = std::regex_replace( result, std::regex( "\\IDLISTGETTERS" ), idListGetters ); -// g_log.info( result ); + Logger::info( result ); std::ofstream outH( "ExdDataGenerated.h" ); outH << result; @@ -455,7 +457,7 @@ int main( int argc, char** argv ) outC << result; outC.close(); -// g_log.info( result ); + Logger::info(result); Logger::info( "done." ); diff --git a/src/world/Actor/PlayerQuest.cpp b/src/world/Actor/PlayerQuest.cpp index 6eaafc91..ec777731 100644 --- a/src/world/Actor/PlayerQuest.cpp +++ b/src/world/Actor/PlayerQuest.cpp @@ -1052,8 +1052,8 @@ bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t opti exp = questInfo->expFactor; - auto rewardItemCount = questInfo->itemReward0.size(); - uint16_t optionalItemCount = static_cast< uint16_t >( questInfo->itemReward1.size() ); + auto rewardItemCount = questInfo->itemReward.size(); + uint16_t optionalItemCount = static_cast< uint16_t >( questInfo->optionalItemReward.size() ); uint32_t gilReward = questInfo->gilReward; @@ -1065,10 +1065,10 @@ bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t opti { for( uint32_t i = 0; i < rewardItemCount; i++ ) { - auto itemId = questInfo->itemReward0.at( i ); + auto itemId = questInfo->itemReward.at( i ); if( itemId > 0 ) { - addItem( itemId, questInfo->itemCountReward0.at( i ), false, false, true, true ); + addItem( itemId, questInfo->itemCountReward.at( i ), false, false, true, true ); } } } @@ -1077,10 +1077,10 @@ bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t opti { for( uint32_t i = 0; i < optionalItemCount; i++ ) { - auto itemId = questInfo->itemReward1.at( i ); + auto itemId = questInfo->optionalItemReward.at( i ); if( itemId > 0 && itemId == optionalChoice ) { - addItem( itemId, questInfo->itemCountReward1.at( i ), false, false, true, true ); + addItem( itemId, questInfo->optionalItemReward.at( i ), false, false, true, true ); break; } } diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index d1f42ae1..3ae61122 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -304,6 +304,20 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player& { terriMgr.disableCurrentFestival(); } + else if(subCommand == "finishallquests") + { + for (int i = 65536; i < 69637; i++) + { + player.finishQuest(static_cast(i)); + } + } + else if (subCommand == "unfinishallquests") + { + for (int i = 65536; i < 69637; i++) + { + player.unfinishQuest(static_cast(i)); + } + } else if( subCommand == "QuestVar" ) { uint16_t questId; diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index fc0c6028..c87ef934 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -106,7 +106,7 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "TradeReturnEventHandler", &GameConnection::eventHandlerReturn ); setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler2, "TradeReturnEventHandler2", &GameConnection::eventHandlerReturn ); - setZoneHandler( ClientZoneIpcType::EventYieldHandler, "EventYieldHandler", &GameConnection::eventYieldHandler ); + setZoneHandler( ClientZoneIpcType::EventYield2Handler, "EventYieldHandler", &GameConnection::eventYieldHandler ); setZoneHandler( ClientZoneIpcType::EventYield16Handler, "EventYield16Handler", &GameConnection::eventYieldHandler ); setZoneHandler( ClientZoneIpcType::ShopEventHandler, "ShopEventHandler", diff --git a/src/world/Territory/HousingZone.cpp b/src/world/Territory/HousingZone.cpp index 8443da8e..d4bda6a6 100644 --- a/src/world/Territory/HousingZone.cpp +++ b/src/world/Territory/HousingZone.cpp @@ -62,6 +62,8 @@ bool Sapphire::HousingZone::init() housingIndex = 2; else if( m_territoryTypeId == 641 ) housingIndex = 3; + else if (m_territoryTypeId == 979) + housingIndex = 4; auto& exdData = Common::Service< Data::ExdDataGenerated >::ref(); auto info = exdData.get< Sapphire::Data::HousingLandSet >( housingIndex );