From a2ef0832bc8949765906dbf798ddf1283ded58c4 Mon Sep 17 00:00:00 2001 From: collett Date: Tue, 16 Feb 2021 17:47:13 +0900 Subject: [PATCH 01/11] 5.45 exd update --- src/common/Exd/ExdDataGenerated.cpp | 1680 ++++++++++++++++++--------- src/common/Exd/ExdDataGenerated.h | 287 ++++- 2 files changed, 1353 insertions(+), 614 deletions(-) diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index fd44e942..ca3d835a 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -342,6 +342,7 @@ Sapphire::Data::AirshipExplorationParamType::AirshipExplorationParamType( uint32 Sapphire::Data::AirshipExplorationPart::AirshipExplorationPart( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AirshipExplorationPartDat.get_row( row_id ); + slot = exdData->getField< uint8_t >( row, 0 ); rank = exdData->getField< uint8_t >( row, 1 ); components = exdData->getField< uint8_t >( row, 2 ); surveillance = exdData->getField< int16_t >( row, 3 ); @@ -349,6 +350,7 @@ Sapphire::Data::AirshipExplorationPart::AirshipExplorationPart( uint32_t row_id, speed = exdData->getField< int16_t >( row, 5 ); range = exdData->getField< int16_t >( row, 6 ); favor = exdData->getField< int16_t >( row, 7 ); + _class = exdData->getField< uint16_t >( row, 8 ); repairMaterials = exdData->getField< uint8_t >( row, 9 ); } @@ -481,21 +483,36 @@ Sapphire::Data::AozActionTransient::AozActionTransient( uint32_t row_id, Sapphir icon = exdData->getField< uint32_t >( row, 1 ); stats = exdData->getField< std::string >( row, 2 ); description = exdData->getField< std::string >( row, 3 ); + locationKey = exdData->getField< uint8_t >( row, 4 ); location = exdData->getField< uint16_t >( row, 5 ); - startQuest = exdData->getField< uint32_t >( row, 6 ); - nextQuest = exdData->getField< uint32_t >( row, 7 ); + requiredForQuest = exdData->getField< uint32_t >( row, 6 ); + previousQuest = exdData->getField< uint32_t >( row, 7 ); + targetsEnemy = exdData->getField< bool >( row, 8 ); + targetsSelfOrAlly = exdData->getField< bool >( row, 9 ); + causeSlow = exdData->getField< bool >( row, 10 ); + causePetrify = exdData->getField< bool >( row, 11 ); + causeParalysis = exdData->getField< bool >( row, 12 ); + causeInterrupt = exdData->getField< bool >( row, 13 ); + causeBlind = exdData->getField< bool >( row, 14 ); + causeStun = exdData->getField< bool >( row, 15 ); + causeSleep = exdData->getField< bool >( row, 16 ); + causeBind = exdData->getField< bool >( row, 17 ); + causeHeavy = exdData->getField< bool >( row, 18 ); + causeDeath = exdData->getField< bool >( row, 19 ); } Sapphire::Data::AOZArrangement::AOZArrangement( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AOZArrangementDat.get_row( row_id, subRow ); aOZContentBriefingBNpc = exdData->getField< uint16_t >( row, 0 ); + position = exdData->getField< uint16_t >( row, 1 ); } Sapphire::Data::AOZBoss::AOZBoss( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AOZBossDat.get_row( row_id ); boss = exdData->getField< uint16_t >( row, 0 ); + position = exdData->getField< uint16_t >( row, 1 ); } Sapphire::Data::AOZContent::AOZContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -525,6 +542,7 @@ Sapphire::Data::AOZContentBriefingBNpc::AOZContentBriefingBNpc( uint32_t row_id, bNpcName = exdData->getField< uint32_t >( row, 0 ); targetSmall = exdData->getField< uint32_t >( row, 1 ); targetLarge = exdData->getField< uint32_t >( row, 2 ); + hideStats = exdData->getField< bool >( row, 3 ); endurance = exdData->getField< uint8_t >( row, 4 ); fire = exdData->getField< uint8_t >( row, 5 ); ice = exdData->getField< uint8_t >( row, 6 ); @@ -536,16 +554,16 @@ Sapphire::Data::AOZContentBriefingBNpc::AOZContentBriefingBNpc( uint32_t row_id, piercing = exdData->getField< uint8_t >( row, 12 ); blunt = exdData->getField< uint8_t >( row, 13 ); magic = exdData->getField< uint8_t >( row, 14 ); - slowResistance = exdData->getField< bool >( row, 15 ); - petrificationResistance = exdData->getField< bool >( row, 16 ); - paralysisResistance = exdData->getField< bool >( row, 17 ); - silenceResistance = exdData->getField< bool >( row, 18 ); - blindResistance = exdData->getField< bool >( row, 19 ); - stunResistance = exdData->getField< bool >( row, 20 ); - sleepResistance = exdData->getField< bool >( row, 21 ); - bindResistance = exdData->getField< bool >( row, 22 ); - heavyResistance = exdData->getField< bool >( row, 23 ); - instaDeathResistance = exdData->getField< bool >( row, 24 ); + slowVuln = exdData->getField< bool >( row, 15 ); + petrificationVuln = exdData->getField< bool >( row, 16 ); + paralysisVuln = exdData->getField< bool >( row, 17 ); + interruptionVuln = exdData->getField< bool >( row, 18 ); + blindVuln = exdData->getField< bool >( row, 19 ); + stunVuln = exdData->getField< bool >( row, 20 ); + sleepVuln = exdData->getField< bool >( row, 21 ); + bindVuln = exdData->getField< bool >( row, 22 ); + heavyVuln = exdData->getField< bool >( row, 23 ); + flatOrDeathVuln = exdData->getField< bool >( row, 24 ); } Sapphire::Data::AquariumFish::AquariumFish( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -1076,6 +1094,7 @@ Sapphire::Data::BuddyEquip::BuddyEquip( uint32_t row_id, Sapphire::Data::ExdData iconHead = exdData->getField< uint16_t >( row, 13 ); iconBody = exdData->getField< uint16_t >( row, 14 ); iconLegs = exdData->getField< uint16_t >( row, 15 ); + order = exdData->getField< uint8_t >( row, 16 ); } Sapphire::Data::BuddyItem::BuddyItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -1605,6 +1624,7 @@ Sapphire::Data::ClassJob::ClassJob( uint32_t row_id, Sapphire::Data::ExdDataGene expArrayIndex = exdData->getField< int8_t >( row, 4 ); battleClassIndex = exdData->getField< int8_t >( row, 5 ); jobIndex = exdData->getField< uint8_t >( row, 7 ); + dohDolJobIndex = exdData->getField< int8_t >( row, 8 ); modifierHitPoints = exdData->getField< uint16_t >( row, 9 ); modifierManaPoints = exdData->getField< uint16_t >( row, 10 ); modifierStrength = exdData->getField< uint16_t >( row, 11 ); @@ -2045,26 +2065,28 @@ Sapphire::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, addedIn53 = exdData->getField< bool >( row, 19 ); allowUndersized = exdData->getField< bool >( row, 20 ); allowReplacement = exdData->getField< bool >( row, 21 ); - highEndDuty = exdData->getField< bool >( row, 27 ); - dutyRecorderAllowed = exdData->getField< bool >( row, 31 ); - name = exdData->getField< std::string >( row, 36 ); - contentType = exdData->getField< uint8_t >( row, 37 ); - transientKey = exdData->getField< uint8_t >( row, 38 ); - transient = exdData->getField< uint32_t >( row, 39 ); - sortKey = exdData->getField< uint16_t >( row, 40 ); - image = exdData->getField< uint32_t >( row, 41 ); - icon = exdData->getField< uint32_t >( row, 42 ); - levelingRoulette = exdData->getField< bool >( row, 44 ); - level5060Roulette = exdData->getField< bool >( row, 45 ); - mSQRoulette = exdData->getField< bool >( row, 46 ); - guildHestRoulette = exdData->getField< bool >( row, 47 ); - expertRoulette = exdData->getField< bool >( row, 48 ); - trialRoulette = exdData->getField< bool >( row, 49 ); - dailyFrontlineChallenge = exdData->getField< bool >( row, 50 ); - level70Roulette = exdData->getField< bool >( row, 51 ); - mentorRoulette = exdData->getField< bool >( row, 52 ); - allianceRoulette = exdData->getField< bool >( row, 58 ); - normalRaidRoulette = exdData->getField< bool >( row, 60 ); + allowExplorerMode = exdData->getField< bool >( row, 23 ); + unknown54 = exdData->getField< bool >( row, 25 ); + highEndDuty = exdData->getField< bool >( row, 28 ); + dutyRecorderAllowed = exdData->getField< bool >( row, 32 ); + name = exdData->getField< std::string >( row, 37 ); + contentType = exdData->getField< uint8_t >( row, 38 ); + transientKey = exdData->getField< uint8_t >( row, 39 ); + transient = exdData->getField< uint32_t >( row, 40 ); + sortKey = exdData->getField< uint16_t >( row, 41 ); + image = exdData->getField< uint32_t >( row, 42 ); + icon = exdData->getField< uint32_t >( row, 43 ); + levelingRoulette = exdData->getField< bool >( row, 45 ); + level506070Roulette = exdData->getField< bool >( row, 46 ); + mSQRoulette = exdData->getField< bool >( row, 47 ); + guildHestRoulette = exdData->getField< bool >( row, 48 ); + expertRoulette = exdData->getField< bool >( row, 49 ); + trialRoulette = exdData->getField< bool >( row, 50 ); + dailyFrontlineChallenge = exdData->getField< bool >( row, 51 ); + level80Roulette = exdData->getField< bool >( row, 52 ); + mentorRoulette = exdData->getField< bool >( row, 53 ); + allianceRoulette = exdData->getField< bool >( row, 59 ); + normalRaidRoulette = exdData->getField< bool >( row, 61 ); } Sapphire::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2096,6 +2118,7 @@ Sapphire::Data::ContentMemberType::ContentMemberType( uint32_t row_id, Sapphire: healersPerParty = exdData->getField< uint8_t >( row, 10 ); meleesPerParty = exdData->getField< uint8_t >( row, 11 ); rangedPerParty = exdData->getField< uint8_t >( row, 12 ); + unknown54 = exdData->getField< uint8_t >( row, 13 ); } Sapphire::Data::ContentNpcTalk::ContentNpcTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2122,22 +2145,23 @@ Sapphire::Data::ContentRoulette::ContentRoulette( uint32_t row_id, Sapphire::Dat { auto row = exdData->m_ContentRouletteDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); - description = exdData->getField< std::string >( row, 2 ); - dutyType = exdData->getField< std::string >( row, 3 ); - isInDutyFinder = exdData->getField< bool >( row, 6 ); - openRule = exdData->getField< bool >( row, 7 ); - requiredLevel = exdData->getField< bool >( row, 9 ); - itemLevelRequired = exdData->getField< uint8_t >( row, 11 ); - icon = exdData->getField< uint16_t >( row, 13 ); - contentRouletteRoleBonus = exdData->getField< uint32_t >( row, 14 ); - rewardTomeA = exdData->getField< uint8_t >( row, 15 ); - rewardTomeB = exdData->getField< uint16_t >( row, 16 ); - rewardTomeC = exdData->getField< uint16_t >( row, 17 ); - sortKey = exdData->getField< uint16_t >( row, 20 ); - contentMemberType = exdData->getField< uint8_t >( row, 22 ); - requireAllDuties = exdData->getField< bool >( row, 32 ); - contentRouletteOpenRule = exdData->getField< bool >( row, 34 ); - instanceContent = exdData->getField< uint8_t >( row, 35 ); + category = exdData->getField< std::string >( row, 1 ); + description = exdData->getField< std::string >( row, 3 ); + dutyType = exdData->getField< std::string >( row, 4 ); + isInDutyFinder = exdData->getField< bool >( row, 8 ); + openRule = exdData->getField< uint8_t >( row, 9 ); + requiredLevel = exdData->getField< uint8_t >( row, 11 ); + itemLevelRequired = exdData->getField< uint16_t >( row, 13 ); + icon = exdData->getField< uint32_t >( row, 15 ); + contentRouletteRoleBonus = exdData->getField< uint8_t >( row, 16 ); + rewardTomeA = exdData->getField< uint16_t >( row, 17 ); + rewardTomeB = exdData->getField< uint16_t >( row, 18 ); + rewardTomeC = exdData->getField< uint16_t >( row, 19 ); + sortKey = exdData->getField< uint8_t >( row, 22 ); + contentMemberType = exdData->getField< uint8_t >( row, 24 ); + requireAllDuties = exdData->getField< bool >( row, 34 ); + contentRouletteOpenRule = exdData->getField< uint8_t >( row, 36 ); + instanceContent = exdData->getField< uint16_t >( row, 37 ); } Sapphire::Data::ContentRouletteOpenRule::ContentRouletteOpenRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2172,6 +2196,28 @@ Sapphire::Data::ContentsNote::ContentsNote( uint32_t row_id, Sapphire::Data::Exd expCap = exdData->getField< int32_t >( row, 13 ); } +Sapphire::Data::ContentsTutorial::ContentsTutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_ContentsTutorialDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 0 ); + description = exdData->getField< std::string >( row, 1 ); + page.push_back( exdData->getField< int32_t >( row, 2 ) ); + page.push_back( exdData->getField< int32_t >( row, 3 ) ); + page.push_back( exdData->getField< int32_t >( row, 4 ) ); + page.push_back( exdData->getField< int32_t >( row, 5 ) ); + page.push_back( exdData->getField< int32_t >( row, 6 ) ); + page.push_back( exdData->getField< int32_t >( row, 7 ) ); + page.push_back( exdData->getField< int32_t >( row, 8 ) ); + page.push_back( exdData->getField< int32_t >( row, 9 ) ); +} + +Sapphire::Data::ContentsTutorialPage::ContentsTutorialPage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_ContentsTutorialPageDat.get_row( row_id ); + image = exdData->getField< int32_t >( row, 0 ); + description = exdData->getField< std::string >( row, 1 ); +} + Sapphire::Data::ContentTalk::ContentTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentTalkDat.get_row( row_id ); @@ -2260,7 +2306,8 @@ Sapphire::Data::Credit::Credit( uint32_t row_id, uint32_t subRow, Sapphire::Data Sapphire::Data::CreditBackImage::CreditBackImage( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CreditBackImageDat.get_row( row_id, subRow ); - backImage = exdData->getField< uint32_t >( row, 2 ); + unknown54 = exdData->getField< bool >( row, 2 ); + backImage = exdData->getField< uint32_t >( row, 3 ); } Sapphire::Data::CreditCast::CreditCast( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2284,13 +2331,6 @@ Sapphire::Data::CreditListText::CreditListText( uint32_t row_id, Sapphire::Data: name = exdData->getField< std::string >( row, 0 ); } -Sapphire::Data::Currency::Currency( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) -{ - auto row = exdData->m_CurrencyDat.get_row( row_id ); - item = exdData->getField< uint32_t >( row, 0 ); - limit = exdData->getField< uint32_t >( row, 3 ); -} - Sapphire::Data::CustomTalk::CustomTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CustomTalkDat.get_row( row_id ); @@ -2358,6 +2398,7 @@ Sapphire::Data::CustomTalk::CustomTalk( uint32_t row_id, Sapphire::Data::ExdData scriptArg.push_back( exdData->getField< uint32_t >( row, 61 ) ); scriptArg.push_back( exdData->getField< uint32_t >( row, 62 ) ); text = exdData->getField< bool >( row, 66 ); + unknown54 = exdData->getField< bool >( row, 77 ); } Sapphire::Data::CustomTalkDynamicIcon::CustomTalkDynamicIcon( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) @@ -2809,6 +2850,7 @@ 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 ); @@ -3591,7 +3633,7 @@ 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< uint32_t >( row, 3 ); + isHidden = exdData->getField< bool >( row, 4 ); } Sapphire::Data::GatheringItemLevelConvertTable::GatheringItemLevelConvertTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3783,7 +3825,8 @@ Sapphire::Data::GatheringPointBonus::GatheringPointBonus( uint32_t row_id, Sapph conditionValue = exdData->getField< uint32_t >( row, 1 ); bonusType = exdData->getField< uint8_t >( row, 3 ); bonusValue = exdData->getField< uint16_t >( row, 4 ); - addedIn53 = exdData->getField< bool >( row, 6 ); + unknown53 = exdData->getField< bool >( row, 6 ); + unknown54 = exdData->getField< uint32_t >( row, 7 ); } Sapphire::Data::GatheringPointBonusType::GatheringPointBonusType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -4162,7 +4205,8 @@ Sapphire::Data::GroupPoseFrame::GroupPoseFrame( uint32_t row_id, Sapphire::Data: auto row = exdData->m_GroupPoseFrameDat.get_row( row_id ); image = exdData->getField< int32_t >( row, 1 ); gridText = exdData->getField< std::string >( row, 2 ); - text = exdData->getField< std::string >( row, 6 ); + unknown54 = exdData->getField< int32_t >( row, 6 ); + text = exdData->getField< std::string >( row, 7 ); } Sapphire::Data::GroupPoseStamp::GroupPoseStamp( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -4170,7 +4214,9 @@ Sapphire::Data::GroupPoseStamp::GroupPoseStamp( uint32_t row_id, Sapphire::Data: auto row = exdData->m_GroupPoseStampDat.get_row( row_id ); stampIcon = exdData->getField< int32_t >( row, 0 ); category = exdData->getField< int32_t >( row, 2 ); - name = exdData->getField< std::string >( row, 6 ); + unknown540 = exdData->getField< int32_t >( row, 4 ); + unknown541 = exdData->getField< bool >( row, 5 ); + name = exdData->getField< std::string >( row, 8 ); } Sapphire::Data::GroupPoseStampCategory::GroupPoseStampCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -4680,12 +4726,12 @@ Sapphire::Data::HWDCrafterSupply::HWDCrafterSupply( uint32_t row_id, Sapphire::D itemTradeIn.push_back( exdData->getField< uint32_t >( row, 14 ) ); itemTradeIn.push_back( exdData->getField< uint32_t >( row, 15 ) ); itemTradeIn.push_back( exdData->getField< uint32_t >( row, 16 ) ); - level.push_back( exdData->getField< uint8_t >( row, 17 ) ); - level.push_back( exdData->getField< uint8_t >( row, 18 ) ); - level.push_back( exdData->getField< uint8_t >( row, 19 ) ); - level.push_back( exdData->getField< uint8_t >( row, 20 ) ); - level.push_back( exdData->getField< uint8_t >( row, 21 ) ); - level.push_back( exdData->getField< uint8_t >( row, 22 ) ); + itemTradeIn.push_back( exdData->getField< uint32_t >( row, 17 ) ); + itemTradeIn.push_back( exdData->getField< uint32_t >( row, 18 ) ); + itemTradeIn.push_back( exdData->getField< uint32_t >( row, 19 ) ); + itemTradeIn.push_back( exdData->getField< uint32_t >( row, 20 ) ); + itemTradeIn.push_back( exdData->getField< uint32_t >( row, 21 ) ); + itemTradeIn.push_back( exdData->getField< uint32_t >( row, 22 ) ); level.push_back( exdData->getField< uint8_t >( row, 23 ) ); level.push_back( exdData->getField< uint8_t >( row, 24 ) ); level.push_back( exdData->getField< uint8_t >( row, 25 ) ); @@ -4697,142 +4743,271 @@ Sapphire::Data::HWDCrafterSupply::HWDCrafterSupply( uint32_t row_id, Sapphire::D level.push_back( exdData->getField< uint8_t >( row, 31 ) ); level.push_back( exdData->getField< uint8_t >( row, 32 ) ); level.push_back( exdData->getField< uint8_t >( row, 33 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 34 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 35 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 36 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 37 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 38 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 39 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 40 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 41 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 42 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 43 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 44 ) ); - levelMax.push_back( exdData->getField< uint8_t >( row, 45 ) ); + level.push_back( exdData->getField< uint8_t >( row, 34 ) ); + level.push_back( exdData->getField< uint8_t >( row, 35 ) ); + level.push_back( exdData->getField< uint8_t >( row, 36 ) ); + level.push_back( exdData->getField< uint8_t >( row, 37 ) ); + level.push_back( exdData->getField< uint8_t >( row, 38 ) ); + level.push_back( exdData->getField< uint8_t >( row, 39 ) ); + level.push_back( exdData->getField< uint8_t >( row, 40 ) ); + level.push_back( exdData->getField< uint8_t >( row, 41 ) ); + level.push_back( exdData->getField< uint8_t >( row, 42 ) ); + level.push_back( exdData->getField< uint8_t >( row, 43 ) ); + level.push_back( exdData->getField< uint8_t >( row, 44 ) ); + level.push_back( exdData->getField< uint8_t >( row, 45 ) ); levelMax.push_back( exdData->getField< uint8_t >( row, 46 ) ); levelMax.push_back( exdData->getField< uint8_t >( row, 47 ) ); levelMax.push_back( exdData->getField< uint8_t >( row, 48 ) ); levelMax.push_back( exdData->getField< uint8_t >( row, 49 ) ); levelMax.push_back( exdData->getField< uint8_t >( row, 50 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 68 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 69 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 70 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 71 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 72 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 73 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 74 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 75 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 76 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 77 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 78 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 79 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 80 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 81 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 82 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 83 ) ); - baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 84 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 85 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 86 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 87 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 88 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 89 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 90 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 91 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 92 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 93 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 94 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 95 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 96 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 97 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 98 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 99 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 100 ) ); - midCollectableRating.push_back( exdData->getField< uint16_t >( row, 101 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 102 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 103 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 104 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 105 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 106 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 107 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 108 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 109 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 110 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 111 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 112 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 113 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 114 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 115 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 116 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 117 ) ); - highCollectableRating.push_back( exdData->getField< uint16_t >( row, 118 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 119 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 120 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 121 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 122 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 123 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 124 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 125 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 126 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 127 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 128 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 129 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 130 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 131 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 132 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 133 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 134 ) ); - baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 135 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 136 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 137 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 138 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 139 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 140 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 141 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 142 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 143 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 144 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 145 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 146 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 147 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 148 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 149 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 150 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 151 ) ); - midCollectableReward.push_back( exdData->getField< uint16_t >( row, 152 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 153 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 154 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 155 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 156 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 157 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 158 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 159 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 160 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 161 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 162 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 163 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 164 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 165 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 166 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 167 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 168 ) ); - highCollectableReward.push_back( exdData->getField< uint16_t >( row, 169 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 221 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 222 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 223 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 224 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 225 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 226 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 227 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 228 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 229 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 230 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 231 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 232 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 233 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 234 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 235 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 236 ) ); - termName.push_back( exdData->getField< uint8_t >( row, 237 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 51 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 52 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 53 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 54 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 55 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 56 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 57 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 58 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 59 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 60 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 61 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 62 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 63 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 64 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 65 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 66 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 67 ) ); + levelMax.push_back( exdData->getField< uint8_t >( row, 68 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 92 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 93 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 94 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 95 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 96 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 97 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 98 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 99 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 100 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 101 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 102 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 103 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 104 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 105 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 106 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 107 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 108 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 109 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 110 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 111 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 112 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 113 ) ); + baseCollectableRating.push_back( exdData->getField< uint16_t >( row, 114 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 115 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 116 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 117 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 118 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 119 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 120 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 121 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 122 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 123 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 124 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 125 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 126 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 127 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 128 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 129 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 130 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 131 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 132 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 133 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 134 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 135 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 136 ) ); + midCollectableRating.push_back( exdData->getField< uint16_t >( row, 137 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 138 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 139 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 140 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 141 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 142 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 143 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 144 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 145 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 146 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 147 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 148 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 149 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 150 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 151 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 152 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 153 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 154 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 155 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 156 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 157 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 158 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 159 ) ); + highCollectableRating.push_back( exdData->getField< uint16_t >( row, 160 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 161 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 162 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 163 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 164 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 165 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 166 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 167 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 168 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 169 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 170 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 171 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 172 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 173 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 174 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 175 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 176 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 177 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 178 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 179 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 180 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 181 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 182 ) ); + baseCollectableReward.push_back( exdData->getField< uint16_t >( row, 183 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 184 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 185 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 186 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 187 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 188 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 189 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 190 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 191 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 192 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 193 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 194 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 195 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 196 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 197 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 198 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 199 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 200 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 201 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 202 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 203 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 204 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 205 ) ); + midCollectableReward.push_back( exdData->getField< uint16_t >( row, 206 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 207 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 208 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 209 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 210 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 211 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 212 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 213 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 214 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 215 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 216 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 217 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 218 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 219 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 220 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 221 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 222 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 223 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 224 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 225 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 226 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 227 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 228 ) ); + highCollectableReward.push_back( exdData->getField< uint16_t >( row, 229 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 230 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 231 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 232 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 233 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 234 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 235 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 236 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 237 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 238 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 239 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 240 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 241 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 242 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 243 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 244 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 245 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 246 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 247 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 248 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 249 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 250 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 251 ) ); + baseCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 252 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 253 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 254 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 255 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 256 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 257 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 258 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 259 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 260 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 261 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 262 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 263 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 264 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 265 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 266 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 267 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 268 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 269 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 270 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 271 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 272 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 273 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 274 ) ); + midCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 275 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 276 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 277 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 278 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 279 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 280 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 281 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 282 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 283 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 284 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 285 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 286 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 287 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 288 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 289 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 290 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 291 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 292 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 293 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 294 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 295 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 296 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 297 ) ); + highCollectableRewardPostPhase.push_back( exdData->getField< uint16_t >( row, 298 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 299 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 300 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 301 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 302 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 303 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 304 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 305 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 306 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 307 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 308 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 309 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 310 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 311 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 312 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 313 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 314 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 315 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 316 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 317 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 318 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 319 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 320 ) ); + termName.push_back( exdData->getField< uint8_t >( row, 321 ) ); } Sapphire::Data::HWDCrafterSupplyReward::HWDCrafterSupplyReward( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -4843,6 +5018,12 @@ Sapphire::Data::HWDCrafterSupplyReward::HWDCrafterSupplyReward( uint32_t row_id, Points = exdData->getField< uint16_t >( row, 2 ); } +Sapphire::Data::HWDCrafterSupplyTerm::HWDCrafterSupplyTerm( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_HWDCrafterSupplyTermDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 0 ); +} + Sapphire::Data::HWDDevLayerControl::HWDDevLayerControl( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HWDDevLayerControlDat.get_row( row_id ); @@ -4927,32 +5108,32 @@ Sapphire::Data::HWDGathererInspection::HWDGathererInspection( uint32_t row_id, S itemRequired.push_back( exdData->getField< uint32_t >( row, 50 ) ); itemRequired.push_back( exdData->getField< uint32_t >( row, 51 ) ); itemRequired.push_back( exdData->getField< uint32_t >( row, 52 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 53 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 54 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 55 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 56 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 57 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 58 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 59 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 60 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 61 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 62 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 63 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 64 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 65 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 66 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 67 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 68 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 69 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 70 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 71 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 72 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 73 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 74 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 75 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 76 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 77 ) ); - fishParameter.push_back( exdData->getField< uint32_t >( row, 78 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 53 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 54 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 55 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 56 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 57 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 58 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 59 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 60 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 61 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 62 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 63 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 64 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 65 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 66 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 67 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 68 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 69 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 70 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 71 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 72 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 73 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 74 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 75 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 76 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 77 ) ); + itemRequired.push_back( exdData->getField< uint32_t >( row, 78 ) ); fishParameter.push_back( exdData->getField< uint32_t >( row, 79 ) ); fishParameter.push_back( exdData->getField< uint32_t >( row, 80 ) ); fishParameter.push_back( exdData->getField< uint32_t >( row, 81 ) ); @@ -4980,271 +5161,453 @@ Sapphire::Data::HWDGathererInspection::HWDGathererInspection( uint32_t row_id, S fishParameter.push_back( exdData->getField< uint32_t >( row, 103 ) ); fishParameter.push_back( exdData->getField< uint32_t >( row, 104 ) ); fishParameter.push_back( exdData->getField< uint32_t >( row, 105 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 106 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 107 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 108 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 109 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 110 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 111 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 112 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 113 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 114 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 115 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 116 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 117 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 118 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 119 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 120 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 121 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 122 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 123 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 124 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 125 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 126 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 127 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 128 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 129 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 130 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 131 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 132 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 133 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 134 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 135 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 136 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 137 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 138 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 139 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 140 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 141 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 142 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 143 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 144 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 145 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 146 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 147 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 148 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 149 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 150 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 151 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 152 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 153 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 154 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 155 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 156 ) ); - amountRequired.push_back( exdData->getField< uint8_t >( row, 157 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 106 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 107 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 108 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 109 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 110 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 111 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 112 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 113 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 114 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 115 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 116 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 117 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 118 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 119 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 120 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 121 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 122 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 123 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 124 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 125 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 126 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 127 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 128 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 129 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 130 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 131 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 132 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 133 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 134 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 135 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 136 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 137 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 138 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 139 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 140 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 141 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 142 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 143 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 144 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 145 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 146 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 147 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 148 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 149 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 150 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 151 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 152 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 153 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 154 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 155 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 156 ) ); + fishParameter.push_back( exdData->getField< uint32_t >( row, 157 ) ); amountRequired.push_back( exdData->getField< uint8_t >( row, 158 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 159 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 160 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 161 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 162 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 163 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 164 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 165 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 166 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 167 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 168 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 169 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 170 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 171 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 172 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 173 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 174 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 175 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 176 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 177 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 178 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 179 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 180 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 181 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 182 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 183 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 184 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 185 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 186 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 187 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 188 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 189 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 190 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 191 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 192 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 193 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 194 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 195 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 196 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 197 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 198 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 199 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 200 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 201 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 202 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 203 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 204 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 205 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 206 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 207 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 208 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 209 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 210 ) ); - itemReceived.push_back( exdData->getField< uint32_t >( row, 211 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 212 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 213 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 214 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 215 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 216 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 217 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 218 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 219 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 220 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 221 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 222 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 223 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 224 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 225 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 226 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 227 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 228 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 229 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 230 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 231 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 232 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 233 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 234 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 235 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 236 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 237 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 238 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 239 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 240 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 241 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 242 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 243 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 244 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 245 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 246 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 247 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 248 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 249 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 250 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 251 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 252 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 253 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 254 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 255 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 256 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 257 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 258 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 259 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 260 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 261 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 262 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 263 ) ); - reward1.push_back( exdData->getField< uint16_t >( row, 264 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 265 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 266 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 267 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 268 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 269 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 270 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 271 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 272 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 273 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 274 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 275 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 276 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 277 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 278 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 279 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 280 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 281 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 282 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 283 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 284 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 285 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 286 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 287 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 288 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 289 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 290 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 291 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 292 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 293 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 294 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 295 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 296 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 297 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 298 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 299 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 300 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 301 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 302 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 303 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 304 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 305 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 306 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 307 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 308 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 309 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 310 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 311 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 312 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 313 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 314 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 315 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 316 ) ); - reward2.push_back( exdData->getField< uint16_t >( row, 317 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 318 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 319 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 320 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 321 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 322 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 323 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 324 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 325 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 326 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 327 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 328 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 329 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 330 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 331 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 332 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 333 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 334 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 335 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 336 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 337 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 338 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 339 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 340 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 341 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 342 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 343 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 344 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 345 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 346 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 347 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 348 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 349 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 350 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 351 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 352 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 353 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 354 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 355 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 356 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 357 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 358 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 359 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 360 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 361 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 362 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 363 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 364 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 365 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 366 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 367 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 368 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 369 ) ); - phase.push_back( exdData->getField< uint8_t >( row, 370 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 159 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 160 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 161 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 162 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 163 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 164 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 165 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 166 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 167 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 168 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 169 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 170 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 171 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 172 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 173 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 174 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 175 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 176 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 177 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 178 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 179 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 180 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 181 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 182 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 183 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 184 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 185 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 186 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 187 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 188 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 189 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 190 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 191 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 192 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 193 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 194 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 195 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 196 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 197 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 198 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 199 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 200 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 201 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 202 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 203 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 204 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 205 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 206 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 207 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 208 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 209 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 210 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 211 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 212 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 213 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 214 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 215 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 216 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 217 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 218 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 219 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 220 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 221 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 222 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 223 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 224 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 225 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 226 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 227 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 228 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 229 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 230 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 231 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 232 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 233 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 234 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 235 ) ); + amountRequired.push_back( exdData->getField< uint8_t >( row, 236 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 237 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 238 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 239 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 240 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 241 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 242 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 243 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 244 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 245 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 246 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 247 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 248 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 249 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 250 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 251 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 252 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 253 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 254 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 255 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 256 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 257 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 258 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 259 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 260 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 261 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 262 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 263 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 264 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 265 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 266 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 267 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 268 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 269 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 270 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 271 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 272 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 273 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 274 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 275 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 276 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 277 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 278 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 279 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 280 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 281 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 282 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 283 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 284 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 285 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 286 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 287 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 288 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 289 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 290 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 291 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 292 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 293 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 294 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 295 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 296 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 297 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 298 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 299 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 300 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 301 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 302 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 303 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 304 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 305 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 306 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 307 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 308 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 309 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 310 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 311 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 312 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 313 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 314 ) ); + itemReceived.push_back( exdData->getField< uint32_t >( row, 315 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 316 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 317 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 318 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 319 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 320 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 321 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 322 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 323 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 324 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 325 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 326 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 327 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 328 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 329 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 330 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 331 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 332 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 333 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 334 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 335 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 336 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 337 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 338 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 339 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 340 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 341 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 342 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 343 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 344 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 345 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 346 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 347 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 348 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 349 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 350 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 351 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 352 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 353 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 354 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 355 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 356 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 357 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 358 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 359 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 360 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 361 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 362 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 363 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 364 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 365 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 366 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 367 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 368 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 369 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 370 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 371 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 372 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 373 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 374 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 375 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 376 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 377 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 378 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 379 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 380 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 381 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 382 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 383 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 384 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 385 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 386 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 387 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 388 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 389 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 390 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 391 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 392 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 393 ) ); + reward1.push_back( exdData->getField< uint16_t >( row, 394 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 395 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 396 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 397 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 398 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 399 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 400 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 401 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 402 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 403 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 404 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 405 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 406 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 407 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 408 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 409 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 410 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 411 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 412 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 413 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 414 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 415 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 416 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 417 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 418 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 419 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 420 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 421 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 422 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 423 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 424 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 425 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 426 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 427 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 428 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 429 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 430 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 431 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 432 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 433 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 434 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 435 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 436 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 437 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 438 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 439 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 440 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 441 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 442 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 443 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 444 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 445 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 446 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 447 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 448 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 449 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 450 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 451 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 452 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 453 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 454 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 455 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 456 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 457 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 458 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 459 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 460 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 461 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 462 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 463 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 464 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 465 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 466 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 467 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 468 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 469 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 470 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 471 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 472 ) ); + reward2.push_back( exdData->getField< uint16_t >( row, 473 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 474 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 475 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 476 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 477 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 478 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 479 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 480 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 481 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 482 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 483 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 484 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 485 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 486 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 487 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 488 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 489 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 490 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 491 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 492 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 493 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 494 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 495 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 496 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 497 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 498 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 499 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 500 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 501 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 502 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 503 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 504 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 505 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 506 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 507 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 508 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 509 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 510 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 511 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 512 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 513 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 514 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 515 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 516 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 517 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 518 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 519 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 520 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 521 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 522 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 523 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 524 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 525 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 526 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 527 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 528 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 529 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 530 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 531 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 532 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 533 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 534 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 535 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 536 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 537 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 538 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 539 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 540 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 541 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 542 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 543 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 544 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 545 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 546 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 547 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 548 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 549 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 550 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 551 ) ); + phase.push_back( exdData->getField< uint8_t >( row, 552 ) ); } Sapphire::Data::HWDGathererInspectionReward::HWDGathererInspectionReward( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -5308,17 +5671,12 @@ Sapphire::Data::IKDFishParam::IKDFishParam( uint32_t row_id, Sapphire::Data::Exd auto row = exdData->m_IKDFishParamDat.get_row( row_id ); fish = exdData->getField< uint32_t >( row, 0 ); iKDContentBonus = exdData->getField< uint8_t >( row, 1 ); + unknown54 = exdData->getField< uint8_t >( row, 2 ); } Sapphire::Data::IKDRoute::IKDRoute( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_IKDRouteDat.get_row( row_id ); - spot.push_back( exdData->getField< uint32_t >( row, 0 ) ); - spot.push_back( exdData->getField< uint32_t >( row, 1 ) ); - spot.push_back( exdData->getField< uint32_t >( row, 2 ) ); - spot.push_back( exdData->getField< uint32_t >( row, 3 ) ); - spot.push_back( exdData->getField< uint32_t >( row, 4 ) ); - timeDefine = exdData->getField< uint8_t >( row, 5 ); image = exdData->getField< uint32_t >( row, 6 ); territoryType = exdData->getField< uint32_t >( row, 7 ); name = exdData->getField< std::string >( row, 8 ); @@ -5435,6 +5793,8 @@ Sapphire::Data::InstanceContent::InstanceContent( uint32_t row_id, Sapphire::Dat instanceContentBuff = exdData->getField< uint32_t >( row, 50 ); reqInstance = exdData->getField< int32_t >( row, 51 ); partyCondition = exdData->getField< int16_t >( row, 53 ); + unknown540 = exdData->getField< uint16_t >( row, 61 ); + unknown541 = exdData->getField< uint16_t >( row, 62 ); } Sapphire::Data::InstanceContentBuff::InstanceContentBuff( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -5449,6 +5809,8 @@ Sapphire::Data::InstanceContentCSBonus::InstanceContentCSBonus( uint32_t row_id, auto row = exdData->m_InstanceContentCSBonusDat.get_row( row_id ); instance = exdData->getField< uint16_t >( row, 0 ); item = exdData->getField< uint32_t >( row, 1 ); + unknown540 = exdData->getField< uint8_t >( row, 3 ); + unknown541 = exdData->getField< uint8_t >( row, 4 ); } Sapphire::Data::InstanceContentGuide::InstanceContentGuide( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -5488,7 +5850,7 @@ Sapphire::Data::Item::Item( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e isUnique = exdData->getField< bool >( row, 21 ); isUntradable = exdData->getField< bool >( row, 22 ); isIndisposable = exdData->getField< bool >( row, 23 ); - isEquippable = exdData->getField< bool >( row, 24 ); + lot = exdData->getField< bool >( row, 24 ); priceMid = exdData->getField< uint32_t >( row, 25 ); priceLow = exdData->getField< uint32_t >( row, 26 ); canBeHq = exdData->getField< bool >( row, 27 ); @@ -5503,34 +5865,35 @@ Sapphire::Data::Item::Item( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e isCollectable = exdData->getField< bool >( row, 37 ); alwaysCollectable = exdData->getField< bool >( row, 38 ); aetherialReduce = exdData->getField< uint16_t >( row, 39 ); - levelEquip = exdData->getField< uint8_t >( row, 40 ); - equipRestriction = exdData->getField< uint8_t >( row, 42 ); - classJobCategory = exdData->getField< uint8_t >( row, 43 ); - grandCompany = exdData->getField< uint8_t >( row, 44 ); - itemSeries = exdData->getField< uint8_t >( row, 45 ); - baseParamModifier = exdData->getField< uint8_t >( row, 46 ); - modelMain = exdData->getField< uint64_t >( row, 47 ); - modelSub = exdData->getField< uint64_t >( row, 48 ); - classJobUse = exdData->getField< uint8_t >( row, 49 ); - damagePhys = exdData->getField< uint16_t >( row, 51 ); - damageMag = exdData->getField< uint16_t >( row, 52 ); - delayms = exdData->getField< uint16_t >( row, 53 ); - blockRate = exdData->getField< uint16_t >( row, 55 ); - block = exdData->getField< uint16_t >( row, 56 ); - defensePhys = exdData->getField< uint16_t >( row, 57 ); - defenseMag = exdData->getField< uint16_t >( row, 58 ); - itemSpecialBonus = exdData->getField< uint8_t >( row, 71 ); - itemSpecialBonusParam = exdData->getField< uint8_t >( row, 72 ); - materializeType = exdData->getField< uint8_t >( row, 85 ); - materiaSlotCount = exdData->getField< uint8_t >( row, 86 ); - isAdvancedMeldingPermitted = exdData->getField< bool >( row, 87 ); - isPvP = exdData->getField< bool >( row, 88 ); - isGlamourous = exdData->getField< bool >( row, 90 ); + unknown54 = exdData->getField< uint16_t >( row, 40 ); + levelEquip = exdData->getField< uint8_t >( row, 41 ); + equipRestriction = exdData->getField< uint8_t >( row, 43 ); + classJobCategory = exdData->getField< uint8_t >( row, 44 ); + grandCompany = exdData->getField< uint8_t >( row, 45 ); + itemSeries = exdData->getField< uint8_t >( row, 46 ); + baseParamModifier = exdData->getField< uint8_t >( row, 47 ); + modelMain = exdData->getField< uint64_t >( row, 48 ); + modelSub = exdData->getField< uint64_t >( row, 49 ); + classJobUse = exdData->getField< uint8_t >( row, 50 ); + damagePhys = exdData->getField< uint16_t >( row, 52 ); + damageMag = exdData->getField< uint16_t >( row, 53 ); + delayms = exdData->getField< uint16_t >( row, 54 ); + blockRate = exdData->getField< uint16_t >( row, 56 ); + block = exdData->getField< uint16_t >( row, 57 ); + defensePhys = exdData->getField< uint16_t >( row, 58 ); + defenseMag = exdData->getField< uint16_t >( row, 59 ); + itemSpecialBonus = exdData->getField< uint8_t >( row, 72 ); + itemSpecialBonusParam = exdData->getField< uint8_t >( row, 73 ); + materializeType = exdData->getField< uint8_t >( row, 86 ); + materiaSlotCount = exdData->getField< uint8_t >( row, 87 ); + isAdvancedMeldingPermitted = exdData->getField< bool >( row, 88 ); + isPvP = exdData->getField< bool >( row, 89 ); + isGlamourous = exdData->getField< bool >( row, 91 ); 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, 60 + i * 2 ); + param[i].value = exdData->getField< int16_t >( row, 61 + i * 2 ); } } @@ -5898,25 +6261,122 @@ Sapphire::Data::LotteryExchangeShop::LotteryExchangeShop( uint32_t row_id, Sapph itemAccepted.push_back( exdData->getField< int32_t >( row, 14 ) ); itemAccepted.push_back( exdData->getField< int32_t >( row, 15 ) ); itemAccepted.push_back( exdData->getField< int32_t >( row, 16 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 17 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 18 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 19 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 20 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 21 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 22 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 23 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 24 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 25 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 26 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 27 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 28 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 29 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 30 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 31 ) ); - amountAccepted.push_back( exdData->getField< uint32_t >( row, 32 ) ); - lua = exdData->getField< std::string >( row, 65 ); - logMessage.push_back( exdData->getField< uint32_t >( row, 66 ) ); - logMessage.push_back( exdData->getField< uint32_t >( row, 67 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 17 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 18 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 19 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 20 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 21 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 22 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 23 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 24 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 25 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 26 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 27 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 28 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 29 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 30 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 31 ) ); + itemAccepted.push_back( exdData->getField< int32_t >( row, 32 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 33 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 34 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 35 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 36 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 37 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 38 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 39 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 40 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 41 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 42 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 43 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 44 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 45 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 46 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 47 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 48 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 49 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 50 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 51 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 52 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 53 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 54 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 55 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 56 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 57 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 58 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 59 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 60 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 61 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 62 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 63 ) ); + amountAccepted.push_back( exdData->getField< uint32_t >( row, 64 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 65 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 66 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 67 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 68 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 69 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 70 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 71 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 72 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 73 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 74 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 75 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 76 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 77 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 78 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 79 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 80 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 81 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 82 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 83 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 84 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 85 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 86 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 87 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 88 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 89 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 90 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 91 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 92 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 93 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 94 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 95 ) ); + unknown540.push_back( exdData->getField< uint8_t >( row, 96 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 97 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 98 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 99 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 100 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 101 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 102 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 103 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 104 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 105 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 106 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 107 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 108 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 109 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 110 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 111 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 112 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 113 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 114 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 115 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 116 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 117 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 118 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 119 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 120 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 121 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 122 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 123 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 124 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 125 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 126 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 127 ) ); + unknown541.push_back( exdData->getField< uint8_t >( row, 128 ) ); + lua = exdData->getField< std::string >( row, 129 ); + logMessage.push_back( exdData->getField< uint32_t >( row, 130 ) ); + logMessage.push_back( exdData->getField< uint32_t >( row, 131 ) ); + logMessage.push_back( exdData->getField< uint32_t >( row, 132 ) ); } Sapphire::Data::MacroIcon::MacroIcon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -6050,16 +6510,16 @@ Sapphire::Data::Materia::Materia( uint32_t row_id, Sapphire::Data::ExdDataGenera item.push_back( exdData->getField< int32_t >( row, 8 ) ); item.push_back( exdData->getField< int32_t >( row, 9 ) ); baseParam = exdData->getField< uint8_t >( row, 10 ); - value.push_back( exdData->getField< uint8_t >( row, 11 ) ); - value.push_back( exdData->getField< uint8_t >( row, 12 ) ); - value.push_back( exdData->getField< uint8_t >( row, 13 ) ); - value.push_back( exdData->getField< uint8_t >( row, 14 ) ); - value.push_back( exdData->getField< uint8_t >( row, 15 ) ); - value.push_back( exdData->getField< uint8_t >( row, 16 ) ); - value.push_back( exdData->getField< uint8_t >( row, 17 ) ); - value.push_back( exdData->getField< uint8_t >( row, 18 ) ); - value.push_back( exdData->getField< uint8_t >( row, 19 ) ); - value.push_back( exdData->getField< uint8_t >( row, 20 ) ); + value.push_back( exdData->getField< int16_t >( row, 11 ) ); + value.push_back( exdData->getField< int16_t >( row, 12 ) ); + value.push_back( exdData->getField< int16_t >( row, 13 ) ); + value.push_back( exdData->getField< int16_t >( row, 14 ) ); + value.push_back( exdData->getField< int16_t >( row, 15 ) ); + value.push_back( exdData->getField< int16_t >( row, 16 ) ); + value.push_back( exdData->getField< int16_t >( row, 17 ) ); + value.push_back( exdData->getField< int16_t >( row, 18 ) ); + value.push_back( exdData->getField< int16_t >( row, 19 ) ); + value.push_back( exdData->getField< int16_t >( row, 20 ) ); } Sapphire::Data::MateriaJoinRate::MateriaJoinRate( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -6098,7 +6558,8 @@ Sapphire::Data::MiniGameRA::MiniGameRA( uint32_t row_id, Sapphire::Data::ExdData { auto row = exdData->m_MiniGameRADat.get_row( row_id ); icon = exdData->getField< int32_t >( row, 1 ); - bGM = exdData->getField< int32_t >( row, 2 ); + image = exdData->getField< int32_t >( row, 2 ); + bGM = exdData->getField< int32_t >( row, 3 ); } Sapphire::Data::MinionRace::MinionRace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -6365,6 +6826,14 @@ Sapphire::Data::MoveVfx::MoveVfx( uint32_t row_id, Sapphire::Data::ExdDataGenera vFXWalking = exdData->getField< uint16_t >( row, 1 ); } +Sapphire::Data::MovieStaffList::MovieStaffList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_MovieStaffListDat.get_row( row_id ); + image = exdData->getField< uint32_t >( row, 0 ); + startTime = exdData->getField< float >( row, 1 ); + endTime = exdData->getField< float >( row, 2 ); +} + Sapphire::Data::MovieSubtitle::MovieSubtitle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MovieSubtitleDat.get_row( row_id ); @@ -6407,12 +6876,15 @@ Sapphire::Data::MYCWarResultNotebook::MYCWarResultNotebook( uint32_t row_id, Sap { auto row = exdData->m_MYCWarResultNotebookDat.get_row( row_id ); number = exdData->getField< uint8_t >( row, 0 ); - icon = exdData->getField< int32_t >( row, 1 ); - image = exdData->getField< int32_t >( row, 2 ); - rarity = exdData->getField< uint8_t >( row, 3 ); - nameJP = exdData->getField< std::string >( row, 4 ); - name = exdData->getField< std::string >( row, 5 ); - description = exdData->getField< std::string >( row, 6 ); + unknown540 = exdData->getField< uint8_t >( row, 1 ); + unknown541 = exdData->getField< uint8_t >( row, 2 ); + quest = exdData->getField< int32_t >( row, 3 ); + icon = exdData->getField< int32_t >( row, 4 ); + image = exdData->getField< int32_t >( row, 5 ); + rarity = exdData->getField< uint8_t >( row, 6 ); + nameJP = exdData->getField< std::string >( row, 7 ); + name = exdData->getField< std::string >( row, 8 ); + description = exdData->getField< std::string >( row, 9 ); } Sapphire::Data::NotebookDivision::NotebookDivision( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -6485,7 +6957,8 @@ Sapphire::Data::NpcYell::NpcYell( uint32_t row_id, Sapphire::Data::ExdDataGenera balloonTime = exdData->getField< float >( row, 6 ); isBalloonSlow = exdData->getField< bool >( row, 7 ); battleTalkTime = exdData->getField< bool >( row, 8 ); - text = exdData->getField< float >( row, 9 ); + unknown54 = exdData->getField< uint8_t >( row, 9 ); + text = exdData->getField< std::string >( row, 10 ); } Sapphire::Data::Omen::Omen( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -6568,7 +7041,8 @@ Sapphire::Data::OrchestrionCategory::OrchestrionCategory( uint32_t row_id, Sapph { auto row = exdData->m_OrchestrionCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); - hideCategory = exdData->getField< uint8_t >( row, 1 ); + hideOrder = exdData->getField< uint8_t >( row, 1 ); + icon = exdData->getField< uint32_t >( row, 2 ); order = exdData->getField< uint8_t >( row, 3 ); } @@ -6629,6 +7103,33 @@ Sapphire::Data::PartyContent::PartyContent( uint32_t row_id, Sapphire::Data::Exd name = exdData->getField< bool >( row, 2 ); textDataStart = exdData->getField< uint32_t >( row, 3 ); textDataEnd = exdData->getField< uint32_t >( row, 4 ); + lGBEventObject0.push_back( exdData->getField< uint32_t >( row, 5 ) ); + lGBEventObject0.push_back( exdData->getField< uint32_t >( row, 6 ) ); + lGBEventObject0.push_back( exdData->getField< uint32_t >( row, 7 ) ); + lGBEventObject0.push_back( exdData->getField< uint32_t >( row, 8 ) ); + lGBEventObject0.push_back( exdData->getField< uint32_t >( row, 9 ) ); + lGBEventObject0.push_back( exdData->getField< uint32_t >( row, 10 ) ); + lGBEventObject0.push_back( exdData->getField< uint32_t >( row, 11 ) ); + lGBEventObject0.push_back( exdData->getField< uint32_t >( row, 12 ) ); + lGBEventObject0.push_back( exdData->getField< uint32_t >( row, 13 ) ); + lGBEventRange.push_back( exdData->getField< uint32_t >( row, 14 ) ); + lGBEventRange.push_back( exdData->getField< uint32_t >( row, 15 ) ); + lGBEventRange.push_back( exdData->getField< uint32_t >( row, 16 ) ); + lGBEventRange.push_back( exdData->getField< uint32_t >( row, 17 ) ); + lGBEventRange.push_back( exdData->getField< uint32_t >( row, 18 ) ); + lGBEventRange.push_back( exdData->getField< uint32_t >( row, 19 ) ); + lGBEventRange.push_back( exdData->getField< uint32_t >( row, 20 ) ); + lGBEventRange.push_back( exdData->getField< uint32_t >( row, 21 ) ); + lGBEventRange.push_back( exdData->getField< uint32_t >( row, 22 ) ); + lGBEventObject1.push_back( exdData->getField< uint32_t >( row, 23 ) ); + lGBEventObject1.push_back( exdData->getField< uint32_t >( row, 24 ) ); + lGBEventObject1.push_back( exdData->getField< uint32_t >( row, 25 ) ); + lGBEventObject1.push_back( exdData->getField< uint32_t >( row, 26 ) ); + lGBEventObject1.push_back( exdData->getField< uint32_t >( row, 27 ) ); + lGBEventObject1.push_back( exdData->getField< uint32_t >( row, 28 ) ); + lGBEventObject1.push_back( exdData->getField< uint32_t >( row, 29 ) ); + lGBEventObject1.push_back( exdData->getField< uint32_t >( row, 30 ) ); + lGBEventObject1.push_back( exdData->getField< uint32_t >( row, 31 ) ); contentFinderCondition = exdData->getField< uint16_t >( row, 33 ); image = exdData->getField< uint32_t >( row, 34 ); } @@ -6819,6 +7320,9 @@ Sapphire::Data::PublicContent::PublicContent( uint32_t row_id, Sapphire::Data::E textDataEnd = exdData->getField< uint32_t >( row, 5 ); contentFinderCondition = exdData->getField< uint16_t >( row, 9 ); additionalData = exdData->getField< uint16_t >( row, 10 ); + unknown540 = exdData->getField< int32_t >( row, 13 ); + unknown541 = exdData->getField< uint16_t >( row, 14 ); + unknown542 = exdData->getField< uint16_t >( row, 15 ); } Sapphire::Data::PublicContentCutscene::PublicContentCutscene( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -8217,6 +8721,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* hideOfferIcon = exdData->getField< bool >( row, 1511 ); eventIconType = exdData->getField< uint8_t >( row, 1512 ); sortKey = exdData->getField< uint16_t >( row, 1514 ); + unknown54 = exdData->getField< bool >( row, 1515 ); } Sapphire::Data::QuestBattle::QuestBattle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -8668,7 +9173,7 @@ Sapphire::Data::QuestClassJobSupply::QuestClassJobSupply( uint32_t row_id, uint3 Sapphire::Data::QuestDerivedClass::QuestDerivedClass( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_QuestDerivedClassDat.get_row( row_id ); - quest = exdData->getField< uint32_t >( row, 0 ); + classJob = exdData->getField< uint8_t >( row, 0 ); } Sapphire::Data::QuestRedo::QuestRedo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -8784,7 +9289,8 @@ Sapphire::Data::Race::Race( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e rSEFHands = exdData->getField< int32_t >( row, 7 ); rSEFLegs = exdData->getField< int32_t >( row, 8 ); rSEFFeet = exdData->getField< int32_t >( row, 9 ); - exPac = exdData->getField< uint8_t >( row, 10 ); + unknown54 = exdData->getField< uint8_t >( row, 10 ); + exPac = exdData->getField< uint8_t >( row, 11 ); } Sapphire::Data::RacingChocoboItem::RacingChocoboItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -8878,6 +9384,7 @@ Sapphire::Data::RecipeLevelTable::RecipeLevelTable( uint32_t row_id, Sapphire::D 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 ); } Sapphire::Data::RecipeLookup::RecipeLookup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -9141,6 +9648,18 @@ Sapphire::Data::Resident::Resident( uint32_t row_id, uint32_t subRow, Sapphire:: residentMotionType = exdData->getField< uint8_t >( row, 4 ); } +Sapphire::Data::ResistanceWeaponAdjust::ResistanceWeaponAdjust( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_ResistanceWeaponAdjustDat.get_row( row_id ); + maxTotalStats = exdData->getField< uint16_t >( row, 0 ); + maxEachStat = exdData->getField< uint16_t >( row, 1 ); + baseParam.push_back( exdData->getField< uint8_t >( row, 2 ) ); + baseParam.push_back( exdData->getField< uint8_t >( row, 3 ) ); + baseParam.push_back( exdData->getField< uint8_t >( row, 4 ) ); + baseParam.push_back( exdData->getField< uint8_t >( row, 5 ) ); + image = exdData->getField< uint32_t >( row, 6 ); +} + Sapphire::Data::RetainerTask::RetainerTask( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RetainerTaskDat.get_row( row_id ); @@ -9296,6 +9815,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 ); + unknown540 = exdData->getField< uint32_t >( row, 3 ); + unknown541 = exdData->getField< std::string >( row, 4 ); + unknown542 = exdData->getField< int32_t >( row, 5 ); } Sapphire::Data::ScenarioTreeTips::ScenarioTreeTips( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -9661,7 +10183,7 @@ Sapphire::Data::SpecialShop::SpecialShop( uint32_t row_id, Sapphire::Data::ExdDa patchNumber.push_back( exdData->getField< uint16_t >( row, 1498 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1499 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1500 ) ); - useCurrencyType = exdData->getField< bool >( row, 1501 ); + useCurrencyType = exdData->getField< uint8_t >( row, 1501 ); questUnlock = exdData->getField< uint32_t >( row, 1502 ); completeText = exdData->getField< int32_t >( row, 1503 ); notCompleteText = exdData->getField< int32_t >( row, 1504 ); @@ -9697,7 +10219,7 @@ Sapphire::Data::Status::Status( uint32_t row_id, Sapphire::Data::ExdDataGenerate maxStacks = exdData->getField< uint8_t >( row, 3 ); category = exdData->getField< uint8_t >( row, 5 ); hitEffect = exdData->getField< uint8_t >( row, 6 ); - vFX = exdData->getField< uint8_t >( row, 7 ); + 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 ); @@ -11625,6 +12147,7 @@ Sapphire::Data::SubmarinePart::SubmarinePart( uint32_t row_id, Sapphire::Data::E speed = exdData->getField< int16_t >( row, 5 ); range = exdData->getField< int16_t >( row, 6 ); favor = exdData->getField< int16_t >( row, 7 ); + _class = exdData->getField< uint16_t >( row, 8 ); repairMaterials = exdData->getField< uint8_t >( row, 9 ); } @@ -11683,6 +12206,7 @@ Sapphire::Data::TerritoryType::TerritoryType( uint32_t row_id, Sapphire::Data::E exVersion = exdData->getField< uint8_t >( row, 29 ); addedIn53 = exdData->getField< uint8_t >( row, 32 ); mountSpeed = exdData->getField< uint8_t >( row, 33 ); + unknown54 = exdData->getField< bool >( row, 40 ); } Sapphire::Data::TerritoryTypeTransient::TerritoryTypeTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -11787,6 +12311,7 @@ Sapphire::Data::Transformation::Transformation( uint32_t row_id, Sapphire::Data: endVFX = exdData->getField< uint16_t >( row, 31 ); action6 = exdData->getField< uint32_t >( row, 32 ); action7 = exdData->getField< uint16_t >( row, 34 ); + unknown54 = exdData->getField< bool >( row, 36 ); } Sapphire::Data::Treasure::Treasure( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -11894,6 +12419,13 @@ Sapphire::Data::TripleTriadCardResident::TripleTriadCardResident( uint32_t row_i tripleTriadCardType = exdData->getField< uint8_t >( row, 6 ); saleValue = exdData->getField< uint16_t >( row, 7 ); sortKey = exdData->getField< uint8_t >( row, 8 ); + order = exdData->getField< uint16_t >( row, 9 ); + uIPriority = exdData->getField< uint8_t >( row, 10 ); + unknown54 = exdData->getField< bool >( row, 11 ); + acquisitionType = exdData->getField< uint8_t >( row, 12 ); + acquisition = exdData->getField< uint32_t >( row, 13 ); + location = exdData->getField< uint32_t >( row, 14 ); + quest = exdData->getField< uint32_t >( row, 15 ); } Sapphire::Data::TripleTriadCardType::TripleTriadCardType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -11912,6 +12444,8 @@ Sapphire::Data::TripleTriadRule::TripleTriadRule( uint32_t row_id, Sapphire::Dat { auto row = exdData->m_TripleTriadRuleDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); + description = exdData->getField< std::string >( row, 1 ); + unknown54 = exdData->getField< bool >( row, 4 ); } Sapphire::Data::Tutorial::Tutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -12045,6 +12579,22 @@ Sapphire::Data::WeatherReportReplace::WeatherReportReplace( uint32_t row_id, Sap placeNameParent = exdData->getField< uint16_t >( row, 1 ); } +Sapphire::Data::WebGuidance::WebGuidance( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_WebGuidanceDat.get_row( row_id ); + image = exdData->getField< int32_t >( row, 0 ); + url = exdData->getField< uint8_t >( row, 1 ); + name = exdData->getField< std::string >( row, 2 ); + unknown54 = exdData->getField< std::string >( row, 3 ); + description = exdData->getField< std::string >( row, 4 ); +} + +Sapphire::Data::WebURL::WebURL( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_WebURLDat.get_row( row_id ); + uRL = exdData->getField< std::string >( row, 0 ); +} + Sapphire::Data::WeddingBGM::WeddingBGM( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WeddingBGMDat.get_row( row_id ); @@ -12343,6 +12893,8 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_ContentRouletteOpenRuleDat = setupDatAccess( "ContentRouletteOpenRule", xiv::exd::Language::none ); m_ContentRouletteRoleBonusDat = setupDatAccess( "ContentRouletteRoleBonus", xiv::exd::Language::none ); m_ContentsNoteDat = setupDatAccess( "ContentsNote", xiv::exd::Language::en ); + m_ContentsTutorialDat = setupDatAccess( "ContentsTutorial", xiv::exd::Language::en ); + m_ContentsTutorialPageDat = setupDatAccess( "ContentsTutorialPage", xiv::exd::Language::en ); m_ContentTalkDat = setupDatAccess( "ContentTalk", xiv::exd::Language::en ); m_ContentTalkParamDat = setupDatAccess( "ContentTalkParam", xiv::exd::Language::none ); m_ContentTypeDat = setupDatAccess( "ContentType", xiv::exd::Language::en ); @@ -12355,7 +12907,6 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_CreditCastDat = setupDatAccess( "CreditCast", xiv::exd::Language::en ); m_CreditListDat = setupDatAccess( "CreditList", xiv::exd::Language::none ); m_CreditListTextDat = setupDatAccess( "CreditListText", xiv::exd::Language::en ); - m_CurrencyDat = setupDatAccess( "Currency", xiv::exd::Language::none ); m_CustomTalkDat = setupDatAccess( "CustomTalk", xiv::exd::Language::en ); m_CustomTalkDynamicIconDat = setupDatAccess( "CustomTalkDynamicIcon", xiv::exd::Language::none ); m_CustomTalkNestHandlersDat = setupDatAccess( "CustomTalkNestHandlers", xiv::exd::Language::none ); @@ -12544,6 +13095,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_HWDAnnounceDat = setupDatAccess( "HWDAnnounce", xiv::exd::Language::en ); m_HWDCrafterSupplyDat = setupDatAccess( "HWDCrafterSupply", xiv::exd::Language::none ); m_HWDCrafterSupplyRewardDat = setupDatAccess( "HWDCrafterSupplyReward", xiv::exd::Language::none ); + m_HWDCrafterSupplyTermDat = setupDatAccess( "HWDCrafterSupplyTerm", xiv::exd::Language::en ); m_HWDDevLayerControlDat = setupDatAccess( "HWDDevLayerControl", xiv::exd::Language::none ); m_HWDDevLevelUIDat = setupDatAccess( "HWDDevLevelUI", xiv::exd::Language::none ); m_HWDDevLivelyDat = setupDatAccess( "HWDDevLively", xiv::exd::Language::none ); @@ -12642,6 +13194,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_MountTransientDat = setupDatAccess( "MountTransient", xiv::exd::Language::en ); m_MoveTimelineDat = setupDatAccess( "MoveTimeline", xiv::exd::Language::none ); m_MoveVfxDat = setupDatAccess( "MoveVfx", xiv::exd::Language::none ); + m_MovieStaffListDat = setupDatAccess( "MovieStaffList", xiv::exd::Language::none ); m_MovieSubtitleDat = setupDatAccess( "MovieSubtitle", xiv::exd::Language::en ); m_MovieSubtitle500Dat = setupDatAccess( "MovieSubtitle500", xiv::exd::Language::en ); m_MovieSubtitleVoyageDat = setupDatAccess( "MovieSubtitleVoyage", xiv::exd::Language::en ); @@ -12722,6 +13275,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_RelicNoteDat = setupDatAccess( "RelicNote", xiv::exd::Language::none ); m_RelicNoteCategoryDat = setupDatAccess( "RelicNoteCategory", xiv::exd::Language::en ); m_ResidentDat = setupDatAccess( "Resident", xiv::exd::Language::none ); + m_ResistanceWeaponAdjustDat = setupDatAccess( "ResistanceWeaponAdjust", xiv::exd::Language::none ); m_RetainerTaskDat = setupDatAccess( "RetainerTask", xiv::exd::Language::none ); m_RetainerTaskLvRangeDat = setupDatAccess( "RetainerTaskLvRange", xiv::exd::Language::none ); m_RetainerTaskNormalDat = setupDatAccess( "RetainerTaskNormal", xiv::exd::Language::none ); @@ -12802,6 +13356,8 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_WeatherGroupDat = setupDatAccess( "WeatherGroup", xiv::exd::Language::none ); m_WeatherRateDat = setupDatAccess( "WeatherRate", xiv::exd::Language::none ); m_WeatherReportReplaceDat = setupDatAccess( "WeatherReportReplace", xiv::exd::Language::none ); + m_WebGuidanceDat = setupDatAccess( "WebGuidance", xiv::exd::Language::en ); + m_WebURLDat = setupDatAccess( "WebURL", xiv::exd::Language::en ); m_WeddingBGMDat = setupDatAccess( "WeddingBGM", xiv::exd::Language::en ); m_WeeklyBingoOrderDataDat = setupDatAccess( "WeeklyBingoOrderData", xiv::exd::Language::none ); m_WeeklyBingoRewardDataDat = setupDatAccess( "WeeklyBingoRewardData", xiv::exd::Language::none ); diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index 78eaa037..39af9dfa 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -167,6 +167,8 @@ struct ContentRoulette; struct ContentRouletteOpenRule; struct ContentRouletteRoleBonus; struct ContentsNote; +struct ContentsTutorial; +struct ContentsTutorialPage; struct ContentTalk; struct ContentTalkParam; struct ContentType; @@ -179,7 +181,6 @@ struct CreditBackImage; struct CreditCast; struct CreditList; struct CreditListText; -struct Currency; struct CustomTalk; struct CustomTalkDynamicIcon; struct CustomTalkNestHandlers; @@ -368,6 +369,7 @@ struct HugeCraftworksRank; struct HWDAnnounce; struct HWDCrafterSupply; struct HWDCrafterSupplyReward; +struct HWDCrafterSupplyTerm; struct HWDDevLayerControl; struct HWDDevLevelUI; struct HWDDevLively; @@ -466,6 +468,7 @@ struct MountSpeed; struct MountTransient; struct MoveTimeline; struct MoveVfx; +struct MovieStaffList; struct MovieSubtitle; struct MovieSubtitle500; struct MovieSubtitleVoyage; @@ -546,6 +549,7 @@ struct RelicItem; struct RelicNote; struct RelicNoteCategory; struct Resident; +struct ResistanceWeaponAdjust; struct RetainerTask; struct RetainerTaskLvRange; struct RetainerTaskNormal; @@ -626,6 +630,8 @@ struct Weather; struct WeatherGroup; struct WeatherRate; struct WeatherReportReplace; +struct WebGuidance; +struct WebURL; struct WeddingBGM; struct WeeklyBingoOrderData; struct WeeklyBingoRewardData; @@ -983,6 +989,7 @@ struct AirshipExplorationParamType struct AirshipExplorationPart { + uint8_t slot; uint8_t rank; uint8_t components; int16_t surveillance; @@ -990,6 +997,7 @@ struct AirshipExplorationPart int16_t speed; int16_t range; int16_t favor; + uint16_t _class; uint8_t repairMaterials; AirshipExplorationPart( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -1112,9 +1120,22 @@ struct AozActionTransient uint32_t icon; std::string stats; std::string description; + uint8_t locationKey; uint16_t location; - uint32_t startQuest; - uint32_t nextQuest; + uint32_t requiredForQuest; + uint32_t previousQuest; + bool targetsEnemy; + bool targetsSelfOrAlly; + bool causeSlow; + bool causePetrify; + bool causeParalysis; + bool causeInterrupt; + bool causeBlind; + bool causeStun; + bool causeSleep; + bool causeBind; + bool causeHeavy; + bool causeDeath; AozActionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -1122,6 +1143,7 @@ struct AozActionTransient struct AOZArrangement { uint16_t aOZContentBriefingBNpc; + uint16_t position; AOZArrangement( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -1129,6 +1151,7 @@ struct AOZArrangement struct AOZBoss { uint16_t boss; + uint16_t position; AOZBoss( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -1160,6 +1183,7 @@ struct AOZContentBriefingBNpc uint32_t bNpcName; uint32_t targetSmall; uint32_t targetLarge; + bool hideStats; uint8_t endurance; uint8_t fire; uint8_t ice; @@ -1171,16 +1195,16 @@ struct AOZContentBriefingBNpc uint8_t piercing; uint8_t blunt; uint8_t magic; - bool slowResistance; - bool petrificationResistance; - bool paralysisResistance; - bool silenceResistance; - bool blindResistance; - bool stunResistance; - bool sleepResistance; - bool bindResistance; - bool heavyResistance; - bool instaDeathResistance; + bool slowVuln; + bool petrificationVuln; + bool paralysisVuln; + bool interruptionVuln; + bool blindVuln; + bool stunVuln; + bool sleepVuln; + bool bindVuln; + bool heavyVuln; + bool flatOrDeathVuln; AOZContentBriefingBNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -1646,6 +1670,7 @@ struct BuddyEquip uint16_t iconHead; uint16_t iconBody; uint16_t iconLegs; + uint8_t order; BuddyEquip( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -1924,6 +1949,7 @@ struct ClassJob int8_t expArrayIndex; int8_t battleClassIndex; uint8_t jobIndex; + int8_t dohDolJobIndex; uint16_t modifierHitPoints; uint16_t modifierManaPoints; uint16_t modifierStrength; @@ -2294,6 +2320,8 @@ struct ContentFinderCondition bool addedIn53; bool allowUndersized; bool allowReplacement; + bool allowExplorerMode; + bool unknown54; bool highEndDuty; bool dutyRecorderAllowed; std::string name; @@ -2304,13 +2332,13 @@ struct ContentFinderCondition uint32_t image; uint32_t icon; bool levelingRoulette; - bool level5060Roulette; + bool level506070Roulette; bool mSQRoulette; bool guildHestRoulette; bool expertRoulette; bool trialRoulette; bool dailyFrontlineChallenge; - bool level70Roulette; + bool level80Roulette; bool mentorRoulette; bool allianceRoulette; bool normalRaidRoulette; @@ -2349,6 +2377,7 @@ struct ContentMemberType uint8_t healersPerParty; uint8_t meleesPerParty; uint8_t rangedPerParty; + uint8_t unknown54; ContentMemberType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -2371,22 +2400,23 @@ struct ContentRandomSelect struct ContentRoulette { std::string name; + std::string category; std::string description; std::string dutyType; bool isInDutyFinder; - bool openRule; - bool requiredLevel; - uint8_t itemLevelRequired; - uint16_t icon; - uint32_t contentRouletteRoleBonus; - uint8_t rewardTomeA; + uint8_t openRule; + uint8_t requiredLevel; + uint16_t itemLevelRequired; + uint32_t icon; + uint8_t contentRouletteRoleBonus; + uint16_t rewardTomeA; uint16_t rewardTomeB; uint16_t rewardTomeC; - uint16_t sortKey; + uint8_t sortKey; uint8_t contentMemberType; bool requireAllDuties; - bool contentRouletteOpenRule; - uint8_t instanceContent; + uint8_t contentRouletteOpenRule; + uint16_t instanceContent; ContentRoulette( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -2426,6 +2456,23 @@ struct ContentsNote ContentsNote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct ContentsTutorial +{ + std::string name; + std::string description; + std::vector< int32_t > page; + + ContentsTutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + +struct ContentsTutorialPage +{ + int32_t image; + std::string description; + + ContentsTutorialPage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct ContentTalk { uint8_t contentTalkParam; @@ -2521,6 +2568,7 @@ struct Credit struct CreditBackImage { + bool unknown54; uint32_t backImage; CreditBackImage( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); @@ -2550,14 +2598,6 @@ struct CreditListText CreditListText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; -struct Currency -{ - uint32_t item; - uint32_t limit; - - Currency( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); -}; - struct CustomTalk { uint32_t iconActor; @@ -2566,6 +2606,7 @@ struct CustomTalk std::vector< std::string > scriptInstruction; std::vector< uint32_t > scriptArg; bool text; + bool unknown54; CustomTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -2996,6 +3037,7 @@ struct Emote uint8_t emoteMode; bool hasCancelEmote; bool drawsWeapon; + uint16_t order; int32_t textCommand; uint16_t icon; uint16_t logMessageTargeted; @@ -3676,7 +3718,7 @@ struct GatheringItem { int32_t item; uint16_t gatheringItemLevel; - uint32_t isHidden; + bool isHidden; GatheringItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -3767,7 +3809,8 @@ struct GatheringPointBonus uint32_t conditionValue; uint8_t bonusType; uint16_t bonusValue; - bool addedIn53; + bool unknown53; + uint32_t unknown54; GatheringPointBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4169,6 +4212,7 @@ struct GroupPoseFrame { int32_t image; std::string gridText; + int32_t unknown54; std::string text; GroupPoseFrame( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -4178,6 +4222,8 @@ struct GroupPoseStamp { int32_t stampIcon; int32_t category; + int32_t unknown540; + bool unknown541; std::string name; GroupPoseStamp( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -4493,6 +4539,9 @@ struct HWDCrafterSupply std::vector< uint16_t > baseCollectableReward; std::vector< uint16_t > midCollectableReward; std::vector< uint16_t > highCollectableReward; + std::vector< uint16_t > baseCollectableRewardPostPhase; + std::vector< uint16_t > midCollectableRewardPostPhase; + std::vector< uint16_t > highCollectableRewardPostPhase; std::vector< uint8_t > termName; HWDCrafterSupply( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -4507,6 +4556,13 @@ struct HWDCrafterSupplyReward HWDCrafterSupplyReward( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct HWDCrafterSupplyTerm +{ + std::string name; + + HWDCrafterSupplyTerm( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct HWDDevLayerControl { @@ -4621,14 +4677,13 @@ struct IKDFishParam { uint32_t fish; uint8_t iKDContentBonus; + uint8_t unknown54; IKDFishParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct IKDRoute { - std::vector< uint32_t > spot; - uint8_t timeDefine; uint32_t image; uint32_t territoryType; std::string name; @@ -4713,6 +4768,8 @@ struct InstanceContent uint32_t instanceContentBuff; int32_t reqInstance; int16_t partyCondition; + uint16_t unknown540; + uint16_t unknown541; InstanceContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4729,6 +4786,8 @@ struct InstanceContentCSBonus { uint16_t instance; uint32_t item; + uint8_t unknown540; + uint8_t unknown541; InstanceContentCSBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4771,7 +4830,7 @@ struct Item bool isUnique; bool isUntradable; bool isIndisposable; - bool isEquippable; + bool lot; uint32_t priceMid; uint32_t priceLow; bool canBeHq; @@ -4786,6 +4845,7 @@ struct Item bool isCollectable; bool alwaysCollectable; uint16_t aetherialReduce; + uint16_t unknown54; uint8_t levelEquip; uint8_t equipRestriction; uint8_t classJobCategory; @@ -5179,6 +5239,8 @@ struct LotteryExchangeShop { std::vector< int32_t > itemAccepted; std::vector< uint32_t > amountAccepted; + std::vector< uint8_t > unknown540; + std::vector< uint8_t > unknown541; std::string lua; std::vector< uint32_t > logMessage; @@ -5311,7 +5373,7 @@ struct Materia { std::vector< int32_t > item; uint8_t baseParam; - std::vector< uint8_t > value; + std::vector< int16_t > value; Materia( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -5342,6 +5404,7 @@ struct MateriaTomestoneRate struct MiniGameRA { int32_t icon; + int32_t image; int32_t bGM; MiniGameRA( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -5623,6 +5686,15 @@ struct MoveVfx MoveVfx( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct MovieStaffList +{ + uint32_t image; + float startTime; + float endTime; + + MovieStaffList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct MovieSubtitle { float startTime; @@ -5669,6 +5741,9 @@ struct MYCTemporaryItemUICategory struct MYCWarResultNotebook { uint8_t number; + uint8_t unknown540; + uint8_t unknown541; + int32_t quest; int32_t icon; int32_t image; uint8_t rarity; @@ -5752,7 +5827,8 @@ struct NpcYell float balloonTime; bool isBalloonSlow; bool battleTalkTime; - float text; + uint8_t unknown54; + std::string text; NpcYell( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -5812,7 +5888,8 @@ struct Orchestrion struct OrchestrionCategory { std::string name; - uint8_t hideCategory; + uint8_t hideOrder; + uint32_t icon; uint8_t order; OrchestrionCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -5878,6 +5955,9 @@ struct PartyContent bool name; uint32_t textDataStart; uint32_t textDataEnd; + std::vector< uint32_t > lGBEventObject0; + std::vector< uint32_t > lGBEventRange; + std::vector< uint32_t > lGBEventObject1; uint16_t contentFinderCondition; uint32_t image; @@ -6064,6 +6144,9 @@ struct PublicContent uint32_t textDataEnd; uint16_t contentFinderCondition; uint16_t additionalData; + int32_t unknown540; + uint16_t unknown541; + uint16_t unknown542; PublicContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6232,6 +6315,7 @@ struct Quest bool hideOfferIcon; uint8_t eventIconType; uint16_t sortKey; + bool unknown54; Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6278,7 +6362,7 @@ struct QuestClassJobSupply struct QuestDerivedClass { - uint32_t quest; + uint8_t classJob; QuestDerivedClass( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6373,6 +6457,7 @@ struct Race int32_t rSEFHands; int32_t rSEFLegs; int32_t rSEFFeet; + uint8_t unknown54; uint8_t exPac; Race( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -6474,6 +6559,7 @@ struct RecipeLevelTable uint16_t difficulty; uint32_t quality; uint16_t durability; + uint16_t conditionsFlag; RecipeLevelTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6585,6 +6671,16 @@ struct Resident Resident( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct ResistanceWeaponAdjust +{ + uint16_t maxTotalStats; + uint16_t maxEachStat; + std::vector< uint8_t > baseParam; + uint32_t image; + + ResistanceWeaponAdjust( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct RetainerTask { bool isRandom; @@ -6717,6 +6813,9 @@ struct ScenarioTree { uint8_t type; uint16_t image; + uint32_t unknown540; + std::string unknown541; + int32_t unknown542; ScenarioTree( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -6861,7 +6960,7 @@ struct SpecialShop std::vector< int32_t > unknown; std::vector< int32_t > achievementUnlock; std::vector< uint16_t > patchNumber; - bool useCurrencyType; + uint8_t useCurrencyType; uint32_t questUnlock; int32_t completeText; int32_t notCompleteText; @@ -6901,7 +7000,7 @@ struct Status uint8_t maxStacks; uint8_t category; uint8_t hitEffect; - uint8_t vFX; + uint16_t vFX; bool lockMovement; bool lockActions; bool lockControl; @@ -6994,6 +7093,7 @@ struct SubmarinePart int16_t speed; int16_t range; int16_t favor; + uint16_t _class; uint8_t repairMaterials; SubmarinePart( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); @@ -7056,6 +7156,7 @@ struct TerritoryType uint8_t exVersion; uint8_t addedIn53; uint8_t mountSpeed; + bool unknown54; TerritoryType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -7171,6 +7272,7 @@ struct Transformation uint16_t endVFX; uint32_t action6; uint16_t action7; + bool unknown54; Transformation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -7273,6 +7375,13 @@ struct TripleTriadCardResident uint8_t tripleTriadCardType; uint16_t saleValue; uint8_t sortKey; + uint16_t order; + uint8_t uIPriority; + bool unknown54; + uint8_t acquisitionType; + uint32_t acquisition; + uint32_t location; + uint32_t quest; TripleTriadCardResident( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -7294,6 +7403,8 @@ struct TripleTriadCompetition struct TripleTriadRule { std::string name; + std::string description; + bool unknown54; TripleTriadRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -7435,6 +7546,24 @@ struct WeatherReportReplace WeatherReportReplace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct WebGuidance +{ + int32_t image; + uint8_t url; + std::string name; + std::string unknown54; + std::string description; + + WebGuidance( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + +struct WebURL +{ + std::string uRL; + + WebURL( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct WeddingBGM { uint16_t song; @@ -7733,6 +7862,8 @@ struct ZoneSharedGroup xiv::exd::Exd m_ContentRouletteOpenRuleDat; xiv::exd::Exd m_ContentRouletteRoleBonusDat; xiv::exd::Exd m_ContentsNoteDat; + xiv::exd::Exd m_ContentsTutorialDat; + xiv::exd::Exd m_ContentsTutorialPageDat; xiv::exd::Exd m_ContentTalkDat; xiv::exd::Exd m_ContentTalkParamDat; xiv::exd::Exd m_ContentTypeDat; @@ -7745,7 +7876,6 @@ struct ZoneSharedGroup xiv::exd::Exd m_CreditCastDat; xiv::exd::Exd m_CreditListDat; xiv::exd::Exd m_CreditListTextDat; - xiv::exd::Exd m_CurrencyDat; xiv::exd::Exd m_CustomTalkDat; xiv::exd::Exd m_CustomTalkDynamicIconDat; xiv::exd::Exd m_CustomTalkNestHandlersDat; @@ -7934,6 +8064,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_HWDAnnounceDat; xiv::exd::Exd m_HWDCrafterSupplyDat; xiv::exd::Exd m_HWDCrafterSupplyRewardDat; + xiv::exd::Exd m_HWDCrafterSupplyTermDat; xiv::exd::Exd m_HWDDevLayerControlDat; xiv::exd::Exd m_HWDDevLevelUIDat; xiv::exd::Exd m_HWDDevLivelyDat; @@ -8032,6 +8163,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_MountTransientDat; xiv::exd::Exd m_MoveTimelineDat; xiv::exd::Exd m_MoveVfxDat; + xiv::exd::Exd m_MovieStaffListDat; xiv::exd::Exd m_MovieSubtitleDat; xiv::exd::Exd m_MovieSubtitle500Dat; xiv::exd::Exd m_MovieSubtitleVoyageDat; @@ -8112,6 +8244,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_RelicNoteDat; xiv::exd::Exd m_RelicNoteCategoryDat; xiv::exd::Exd m_ResidentDat; + xiv::exd::Exd m_ResistanceWeaponAdjustDat; xiv::exd::Exd m_RetainerTaskDat; xiv::exd::Exd m_RetainerTaskLvRangeDat; xiv::exd::Exd m_RetainerTaskNormalDat; @@ -8192,6 +8325,8 @@ struct ZoneSharedGroup xiv::exd::Exd m_WeatherGroupDat; xiv::exd::Exd m_WeatherRateDat; xiv::exd::Exd m_WeatherReportReplaceDat; + xiv::exd::Exd m_WebGuidanceDat; + xiv::exd::Exd m_WebURLDat; xiv::exd::Exd m_WeddingBGMDat; xiv::exd::Exd m_WeeklyBingoOrderDataDat; xiv::exd::Exd m_WeeklyBingoRewardDataDat; @@ -8350,6 +8485,8 @@ struct ZoneSharedGroup using ContentRouletteOpenRulePtr = std::shared_ptr< ContentRouletteOpenRule >; using ContentRouletteRoleBonusPtr = std::shared_ptr< ContentRouletteRoleBonus >; using ContentsNotePtr = std::shared_ptr< ContentsNote >; + using ContentsTutorialPtr = std::shared_ptr< ContentsTutorial >; + using ContentsTutorialPagePtr = std::shared_ptr< ContentsTutorialPage >; using ContentTalkPtr = std::shared_ptr< ContentTalk >; using ContentTalkParamPtr = std::shared_ptr< ContentTalkParam >; using ContentTypePtr = std::shared_ptr< ContentType >; @@ -8362,7 +8499,6 @@ struct ZoneSharedGroup using CreditCastPtr = std::shared_ptr< CreditCast >; using CreditListPtr = std::shared_ptr< CreditList >; using CreditListTextPtr = std::shared_ptr< CreditListText >; - using CurrencyPtr = std::shared_ptr< Currency >; using CustomTalkPtr = std::shared_ptr< CustomTalk >; using CustomTalkDynamicIconPtr = std::shared_ptr< CustomTalkDynamicIcon >; using CustomTalkNestHandlersPtr = std::shared_ptr< CustomTalkNestHandlers >; @@ -8551,6 +8687,7 @@ struct ZoneSharedGroup using HWDAnnouncePtr = std::shared_ptr< HWDAnnounce >; using HWDCrafterSupplyPtr = std::shared_ptr< HWDCrafterSupply >; using HWDCrafterSupplyRewardPtr = std::shared_ptr< HWDCrafterSupplyReward >; + using HWDCrafterSupplyTermPtr = std::shared_ptr< HWDCrafterSupplyTerm >; using HWDDevLayerControlPtr = std::shared_ptr< HWDDevLayerControl >; using HWDDevLevelUIPtr = std::shared_ptr< HWDDevLevelUI >; using HWDDevLivelyPtr = std::shared_ptr< HWDDevLively >; @@ -8649,6 +8786,7 @@ struct ZoneSharedGroup using MountTransientPtr = std::shared_ptr< MountTransient >; using MoveTimelinePtr = std::shared_ptr< MoveTimeline >; using MoveVfxPtr = std::shared_ptr< MoveVfx >; + using MovieStaffListPtr = std::shared_ptr< MovieStaffList >; using MovieSubtitlePtr = std::shared_ptr< MovieSubtitle >; using MovieSubtitle500Ptr = std::shared_ptr< MovieSubtitle500 >; using MovieSubtitleVoyagePtr = std::shared_ptr< MovieSubtitleVoyage >; @@ -8729,6 +8867,7 @@ struct ZoneSharedGroup using RelicNotePtr = std::shared_ptr< RelicNote >; using RelicNoteCategoryPtr = std::shared_ptr< RelicNoteCategory >; using ResidentPtr = std::shared_ptr< Resident >; + using ResistanceWeaponAdjustPtr = std::shared_ptr< ResistanceWeaponAdjust >; using RetainerTaskPtr = std::shared_ptr< RetainerTask >; using RetainerTaskLvRangePtr = std::shared_ptr< RetainerTaskLvRange >; using RetainerTaskNormalPtr = std::shared_ptr< RetainerTaskNormal >; @@ -8809,6 +8948,8 @@ struct ZoneSharedGroup using WeatherGroupPtr = std::shared_ptr< WeatherGroup >; using WeatherRatePtr = std::shared_ptr< WeatherRate >; using WeatherReportReplacePtr = std::shared_ptr< WeatherReportReplace >; + using WebGuidancePtr = std::shared_ptr< WebGuidance >; + using WebURLPtr = std::shared_ptr< WebURL >; using WeddingBGMPtr = std::shared_ptr< WeddingBGM >; using WeeklyBingoOrderDataPtr = std::shared_ptr< WeeklyBingoOrderData >; using WeeklyBingoRewardDataPtr = std::shared_ptr< WeeklyBingoRewardData >; @@ -8967,6 +9108,8 @@ struct ZoneSharedGroup std::set< uint32_t > m_ContentRouletteOpenRuleIdList; std::set< uint32_t > m_ContentRouletteRoleBonusIdList; std::set< uint32_t > m_ContentsNoteIdList; + std::set< uint32_t > m_ContentsTutorialIdList; + std::set< uint32_t > m_ContentsTutorialPageIdList; std::set< uint32_t > m_ContentTalkIdList; std::set< uint32_t > m_ContentTalkParamIdList; std::set< uint32_t > m_ContentTypeIdList; @@ -8979,7 +9122,6 @@ struct ZoneSharedGroup std::set< uint32_t > m_CreditCastIdList; std::set< uint32_t > m_CreditListIdList; std::set< uint32_t > m_CreditListTextIdList; - std::set< uint32_t > m_CurrencyIdList; std::set< uint32_t > m_CustomTalkIdList; std::set< uint32_t > m_CustomTalkDynamicIconIdList; std::set< uint32_t > m_CustomTalkNestHandlersIdList; @@ -9168,6 +9310,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_HWDAnnounceIdList; std::set< uint32_t > m_HWDCrafterSupplyIdList; std::set< uint32_t > m_HWDCrafterSupplyRewardIdList; + std::set< uint32_t > m_HWDCrafterSupplyTermIdList; std::set< uint32_t > m_HWDDevLayerControlIdList; std::set< uint32_t > m_HWDDevLevelUIIdList; std::set< uint32_t > m_HWDDevLivelyIdList; @@ -9266,6 +9409,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_MountTransientIdList; std::set< uint32_t > m_MoveTimelineIdList; std::set< uint32_t > m_MoveVfxIdList; + std::set< uint32_t > m_MovieStaffListIdList; std::set< uint32_t > m_MovieSubtitleIdList; std::set< uint32_t > m_MovieSubtitle500IdList; std::set< uint32_t > m_MovieSubtitleVoyageIdList; @@ -9346,6 +9490,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_RelicNoteIdList; std::set< uint32_t > m_RelicNoteCategoryIdList; std::set< uint32_t > m_ResidentIdList; + std::set< uint32_t > m_ResistanceWeaponAdjustIdList; std::set< uint32_t > m_RetainerTaskIdList; std::set< uint32_t > m_RetainerTaskLvRangeIdList; std::set< uint32_t > m_RetainerTaskNormalIdList; @@ -9426,6 +9571,8 @@ struct ZoneSharedGroup std::set< uint32_t > m_WeatherGroupIdList; std::set< uint32_t > m_WeatherRateIdList; std::set< uint32_t > m_WeatherReportReplaceIdList; + std::set< uint32_t > m_WebGuidanceIdList; + std::set< uint32_t > m_WebURLIdList; std::set< uint32_t > m_WeddingBGMIdList; std::set< uint32_t > m_WeeklyBingoOrderDataIdList; std::set< uint32_t > m_WeeklyBingoRewardDataIdList; @@ -10309,6 +10456,18 @@ const std::set< uint32_t >& getContentsNoteIdList() loadIdList( m_ContentsNoteDat, m_ContentsNoteIdList ); return m_ContentsNoteIdList; } +const std::set< uint32_t >& getContentsTutorialIdList() +{ + if( m_ContentsTutorialIdList.size() == 0 ) + loadIdList( m_ContentsTutorialDat, m_ContentsTutorialIdList ); + return m_ContentsTutorialIdList; +} +const std::set< uint32_t >& getContentsTutorialPageIdList() +{ + if( m_ContentsTutorialPageIdList.size() == 0 ) + loadIdList( m_ContentsTutorialPageDat, m_ContentsTutorialPageIdList ); + return m_ContentsTutorialPageIdList; +} const std::set< uint32_t >& getContentTalkIdList() { if( m_ContentTalkIdList.size() == 0 ) @@ -10381,12 +10540,6 @@ const std::set< uint32_t >& getCreditListTextIdList() loadIdList( m_CreditListTextDat, m_CreditListTextIdList ); return m_CreditListTextIdList; } -const std::set< uint32_t >& getCurrencyIdList() -{ - if( m_CurrencyIdList.size() == 0 ) - loadIdList( m_CurrencyDat, m_CurrencyIdList ); - return m_CurrencyIdList; -} const std::set< uint32_t >& getCustomTalkIdList() { if( m_CustomTalkIdList.size() == 0 ) @@ -11515,6 +11668,12 @@ const std::set< uint32_t >& getHWDCrafterSupplyRewardIdList() loadIdList( m_HWDCrafterSupplyRewardDat, m_HWDCrafterSupplyRewardIdList ); return m_HWDCrafterSupplyRewardIdList; } +const std::set< uint32_t >& getHWDCrafterSupplyTermIdList() +{ + if( m_HWDCrafterSupplyTermIdList.size() == 0 ) + loadIdList( m_HWDCrafterSupplyTermDat, m_HWDCrafterSupplyTermIdList ); + return m_HWDCrafterSupplyTermIdList; +} const std::set< uint32_t >& getHWDDevLayerControlIdList() { if( m_HWDDevLayerControlIdList.size() == 0 ) @@ -12103,6 +12262,12 @@ const std::set< uint32_t >& getMoveVfxIdList() loadIdList( m_MoveVfxDat, m_MoveVfxIdList ); return m_MoveVfxIdList; } +const std::set< uint32_t >& getMovieStaffListIdList() +{ + if( m_MovieStaffListIdList.size() == 0 ) + loadIdList( m_MovieStaffListDat, m_MovieStaffListIdList ); + return m_MovieStaffListIdList; +} const std::set< uint32_t >& getMovieSubtitleIdList() { if( m_MovieSubtitleIdList.size() == 0 ) @@ -12583,6 +12748,12 @@ const std::set< uint32_t >& getResidentIdList() loadIdList( m_ResidentDat, m_ResidentIdList ); return m_ResidentIdList; } +const std::set< uint32_t >& getResistanceWeaponAdjustIdList() +{ + if( m_ResistanceWeaponAdjustIdList.size() == 0 ) + loadIdList( m_ResistanceWeaponAdjustDat, m_ResistanceWeaponAdjustIdList ); + return m_ResistanceWeaponAdjustIdList; +} const std::set< uint32_t >& getRetainerTaskIdList() { if( m_RetainerTaskIdList.size() == 0 ) @@ -13063,6 +13234,18 @@ const std::set< uint32_t >& getWeatherReportReplaceIdList() loadIdList( m_WeatherReportReplaceDat, m_WeatherReportReplaceIdList ); return m_WeatherReportReplaceIdList; } +const std::set< uint32_t >& getWebGuidanceIdList() +{ + if( m_WebGuidanceIdList.size() == 0 ) + loadIdList( m_WebGuidanceDat, m_WebGuidanceIdList ); + return m_WebGuidanceIdList; +} +const std::set< uint32_t >& getWebURLIdList() +{ + if( m_WebURLIdList.size() == 0 ) + loadIdList( m_WebURLDat, m_WebURLIdList ); + return m_WebURLIdList; +} const std::set< uint32_t >& getWeddingBGMIdList() { if( m_WeddingBGMIdList.size() == 0 ) From f4b5c99c88377bdad47553110fdc0df9da940b08 Mon Sep 17 00:00:00 2001 From: collett Date: Tue, 16 Feb 2021 22:47:19 +0900 Subject: [PATCH 02/11] manual opcode & packet updates --- src/common/Common.h | 10 +- src/common/Network/PacketDef/Ipcs.h | 200 +++++++++--------- .../Network/PacketDef/Zone/ServerZoneDef.h | 26 ++- 3 files changed, 120 insertions(+), 116 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index d8e7618c..e642b4d8 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -51,11 +51,11 @@ namespace Sapphire::Common enum InventoryOperation : uint16_t { - Discard = 0x013C, - Move = 0x013D, - Swap = 0x013E, - Split = 0x013F, - Merge = 0x0141, + Discard = 0x0117, + Move = 0x0118, + Swap = 0x0119, + Split = 0x011A, + Merge = 0x011C, }; enum ClientLanguage : uint8_t diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 6e584ede..74399d28 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -43,27 +43,27 @@ namespace Sapphire::Network::Packets */ enum ServerZoneIpcType : uint16_t { - Ping = 0x0219, // updated 5.35 hotfix - Init = 0x0185, // updated 5.35 hotfix + Ping = 0x0183, // updated 5.45 hotfix + Init = 0x01EA, // updated 5.45 hotfix - ActorFreeSpawn = 0x0239, // updated 5.35 hotfix - InitZone = 0x03CD, // updated 5.35 hotfix + ActorFreeSpawn = 0x0185, // updated 5.45 hotfix + InitZone = 0x0233, // updated 5.45 hotfix - EffectResult = 0x01C2, // updated 5.35 hotfix - ActorControl = 0x02A4, // updated 5.35 hotfix - ActorControlSelf = 0x02C8, // updated 5.35 hotfix - ActorControlTarget = 0x0209, // updated 5.35 hotfix + EffectResult = 0x01D7, // updated 5.45 hotfix + ActorControl = 0x00C2, // updated 5.45 hotfix + ActorControlSelf = 0x03D5, // updated 5.45 hotfix + ActorControlTarget = 0x0171, // updated 5.45 hotfix /*! * @brief Used when resting */ - UpdateHpMpTp = 0x0319, // updated 5.35 hotfix + UpdateHpMpTp = 0x019B, // updated 5.45 hotfix /////////////////////////////////////////////////// ChatBanned = 0xF06B, Playtime = 0x03A4, // updated 5.35 hotfix - Logout = 0x02AD, // updated 5.35 hotfix + Logout = 0x012A, // updated 5.45 hotfix CFNotify = 0x02C4, // updated 5.35 hotfix CFMemberStatus = 0x0079, CFDutyInfo = 0x0193, // updated 5.35 hotfix @@ -85,25 +85,25 @@ namespace Sapphire::Network::Packets WorldVisitList = 0xF0FE, // added 4.5 - SocialList = 0x0216, // updated 5.35 hotfix + SocialList = 0x0315, // updated 5.45 hotfix ExamineSearchInfo = 0x03C3, // updated 5.35 hotfix UpdateSearchInfo = 0x0121, // updated 5.35 hotfix - InitSearchInfo = 0x036F, // updated 5.35 hotfix + InitSearchInfo = 0x01ED, // updated 5.45 hotfix ExamineSearchComment = 0x0102, // updated 4.1 ServerNoticeShort = 0x017A, // updated 5.35 hotfix - ServerNotice = 0x02F8, // updated 5.35 hotfix - SetOnlineStatus = 0x03D7, // updated 5.35 hotfix + ServerNotice = 0x0354, // updated 5.45 hotfix + SetOnlineStatus = 0x0166, // updated 5.45 hotfix CountdownInitiate = 0x0237, // updated 5.25 CountdownCancel = 0x00D9, // updated 5.18 PlayerAddedToBlacklist = 0x033F, // updated 5.1 PlayerRemovedFromBlacklist = 0x0385, // updated 5.1 - BlackList = 0x02DB, // updated 5.35 hotfix + BlackList = 0x02BD, // updated 5.45 hotfix - LinkshellList = 0x01F0, // updated 5.35 hotfix + LinkshellList = 0x021A, // updated 5.45 hotfix MailDeleteRequest = 0xF12B, // updated 5.0 @@ -126,44 +126,44 @@ namespace Sapphire::Network::Packets FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 - StatusEffectList = 0x0382, // updated 5.35 hotfix + StatusEffectList = 0x0243, // updated 5.45 hotfix EurekaStatusEffectList = 0x0167, // updated 5.18 BossStatusEffectList = 0x0312, // added 5.1 - Effect = 0x0192, // updated 5.35 hotfix - AoeEffect8 = 0x012C, // updated 5.35 hotfix + Effect = 0x027F, // updated 5.45 hotfix + AoeEffect8 = 0x009B, // updated 5.45 hotfix AoeEffect16 = 0x01B9, // updated 5.35 hotfix AoeEffect24 = 0x02B4, // updated 5.35 hotfix AoeEffect32 = 0x00A4, // updated 5.35 hotfix - PersistantEffect = 0x0317, // updated 5.35 hotfix + PersistantEffect = 0x0244, // updated 5.45 hotfix - GCAffiliation = 0x0105, // updated 5.35 hotfix + GCAffiliation = 0x0155, // updated 5.45 hotfix - PlayerSpawn = 0x0179, // updated 5.35 hotfix - NpcSpawn = 0x03A8, // updated 5.35 hotfix + PlayerSpawn = 0x01AB, // updated 5.45 hotfix + NpcSpawn = 0x02C9, // updated 5.45 hotfix NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3 - ActorMove = 0x01BF, // updated 5.35 hotfix + ActorMove = 0x006B, // updated 5.45 hotfix - ActorSetPos = 0x03DF, // updated 5.35 hotfix + ActorSetPos = 0x00C6, // updated 5.45 hotfix - ActorCast = 0x0302, // updated 5.35 hotfix + ActorCast = 0x034C, // updated 5.45 hotfix SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 PartyList = 0x02B2, // updated 5.35 hotfix PartyMessage = 0x00AE, // updated 5.35 hotfix - HateRank = 0x02CC, // updated 5.35 hotfix - HateList = 0x0198, // updated 5.35 hotfix - ObjectSpawn = 0x02B8, // updated 5.35 hotfix + HateRank = 0x0217, // updated 5.45 hotfix + HateList = 0x00E5, // updated 5.45 hotfix + ObjectSpawn = 0x0336, // updated 5.45 hotfix ObjectDespawn = 0x00C0, // updated 5.35 hotfix - UpdateClassInfo = 0x0235, // updated 5.35 hotfix - SilentSetClassJob = 0x018E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything - PlayerSetup = 0x0290, // updated 5.35 hotfix - PlayerStats = 0x023B, // updated 5.35 hotfix - ActorOwner = 0x00E8, // updated 5.35 hotfix - PlayerStateFlags = 0x00F8, // updated 5.35 hotfix - PlayerClassInfo = 0x02C3, // updated 5.35 hotfix - CharaVisualEffect = 0x02E2, // updated 5.35 hotfix + UpdateClassInfo = 0x0179, // updated 5.45 hotfix + SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything + PlayerSetup = 0x01E9, // updated 5.45 hotfix + PlayerStats = 0x01CC, // updated 5.45 hotfix + ActorOwner = 0x0153, // updated 5.45 hotfix + PlayerStateFlags = 0x02DC, // updated 5.45 hotfix + PlayerClassInfo = 0x02F0, // updated 5.45 hotfix + CharaVisualEffect = 0x026A, // updated 5.45 hotfix - ModelEquip = 0x0277, // updated 5.35 hotfix + ModelEquip = 0x024A, // updated 5.45 hotfix Examine = 0x00BC, // updated 5.35 hotfix CharaNameReq = 0x008E, // updated 5.35 hotfix @@ -174,25 +174,25 @@ namespace Sapphire::Network::Packets SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore - ItemInfo = 0x0214, // updated 5.35 hotfix - ContainerInfo = 0x00C5, // updated 5.35 hotfix - InventoryTransactionFinish = 0x02F0, // updated 5.35 hotfix - InventoryTransaction = 0x01FD, // updated 5.35 hotfix - CurrencyCrystalInfo = 0x0379, // updated 5.35 hotfix + ItemInfo = 0x0175, // updated 5.45 hotfix + ContainerInfo = 0x0193, // updated 5.45 hotfix + InventoryTransactionFinish = 0x00BD, // updated 5.45 hotfix + InventoryTransaction = 0x02EE, // updated 5.45 hotfix + CurrencyCrystalInfo = 0x0363, // updated 5.45 hotfix - InventoryActionAck = 0x03E4, // updated 5.35 hotfix - UpdateInventorySlot = 0x036A, // updated 5.35 hotfix + InventoryActionAck = 0x02FA, // updated 5.45 hotfix + UpdateInventorySlot = 0x017D, // updated 5.45 hotfix - HuntingLogEntry = 0x0146, // updated 5.35 hotfix + HuntingLogEntry = 0x0232, // updated 5.45 hotfix - EventPlay = 0x00F3, // updated 5.35 hotfix - EventPlay4 = 0x00AC, // updated 5.35 hotfix - EventPlay8 = 0x023F, // updated 5.35 hotfix - EventPlay16 = 0x025B, // updated 5.35 hotfix - EventPlay32 = 0x029A, // updated 5.35 hotfix - EventPlay64 = 0x02C1, // updated 5.35 hotfix - EventPlay128 = 0x038A, // updated 5.35 hotfix - EventPlay255 = 0x034B, // updated 5.35 hotfix + EventPlay = 0x0276, // updated 5.45 hotfix + EventPlay4 = 0x028D, // updated 5.45 hotfix + EventPlay8 = 0x0318, // updated 5.45 hotfix + EventPlay16 = 0x020D, // updated 5.45 hotfix + EventPlay32 = 0x03B5, // updated 5.45 hotfix + EventPlay64 = 0x039E, // updated 5.45 hotfix + EventPlay128 = 0x02F4, // updated 5.45 hotfix + EventPlay255 = 0x009D, // updated 5.45 hotfix EventYield = 0x037D, // updated 5.35 hotfix //EventYield4 = 0x0000, @@ -203,24 +203,24 @@ namespace Sapphire::Network::Packets //EventYield128 = 0x0000, //EventYield255 = 0x0000, - EventStart = 0x009A, // updated 5.35 hotfix - EventFinish = 0x007E, // updated 5.35 hotfix + EventStart = 0x02DE, // updated 5.45 hotfix + EventFinish = 0x01A3, // updated 5.45 hotfix EventLinkshell = 0x1169, - QuestActiveList = 0x0117, // updated 5.35 hotfix - QuestUpdate = 0x0073, // updated 5.35 hotfix - QuestCompleteList = 0x0240, // updated 5.35 hotfix + QuestActiveList = 0x015A, // updated 5.45 hotfix + QuestUpdate = 0x037B, // updated 5.45 hotfix + QuestCompleteList = 0x0287, // updated 5.45 hotfix - QuestFinish = 0x00E9, // updated 5.35 hotfix + QuestFinish = 0x0066, // updated 5.45 hotfix MSQTrackerComplete = 0xF1D6, // updated 5.0 MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 - QuestMessage = 0x0381, // updated 5.35 hotfix + QuestMessage = 0x017B, // updated 5.45 hotfix - QuestTracker = 0x018B, // updated 5.35 hotfix + QuestTracker = 0x01E8, // updated 5.45 hotfix - Mount = 0x01B5, // updated 5.35 hotfix + Mount = 0x0122, // updated 5.45 hotfix DirectorVars = 0x011D, // updated 5.35 hotfix SomeDirectorUnk1 = 0x0084, // updated 5.18 @@ -240,27 +240,27 @@ namespace Sapphire::Network::Packets EorzeaTimeOffset = 0x01D4, // updated 5.35 hotfix - EquipDisplayFlags = 0x00BE, // updated 5.35 hotfix + EquipDisplayFlags = 0x0316, // updated 5.45 hotfix MiniCactpotInit = 0x0286, // added 5.31 - ShopMessage = 0x0197, // updated 5.35 hotfix - LootMessage = 0x01B7, // updated 5.35 hotfix + ShopMessage = 0x02FC, // updated 5.45 hotfix + LootMessage = 0x03B8, // updated 5.45 hotfix /// Housing ////////////////////////////////////// - LandSetInitialize = 0x0095, // updated 5.35 hotfix + LandSetInitialize = 0x03E2, // updated 5.45 hotfix LandUpdate = 0x00BF, // updated 5.35 hotfix YardObjectSpawn = 0x01CA, // updated 5.35 hotfix HousingIndoorInitialize = 0x01FF, // updated 5.35 hotfix LandPriceUpdate = 0x0380, // updated 5.35 hotfix - LandInfoSign = 0x023D, // updated 5.35 hotfix + LandInfoSign = 0x0398, // updated 5.45 hotfix LandRename = 0x0140, // updated 5.35 hotfix HousingEstateGreeting = 0x00C7, // updated 5.35 hotfix HousingUpdateLandFlagsSlot = 0x027E, // updated 5.35 hotfix - HousingLandFlags = 0x022F, // updated 5.35 hotfix + HousingLandFlags = 0x033B, // updated 5.45 hotfix HousingShowEstateGuestAccess = 0x03B5, // updated 5.35 hotfix - HousingObjectInitialize = 0x01AA, // updated 5.35 hotfix + HousingObjectInitialize = 0x00B5, // updated 5.45 hotfix HousingInternalObjectSpawn = 0x0234, // updated 5.35 hotfix HousingWardInfo = 0x02FD, // updated 5.35 hotfix @@ -277,12 +277,12 @@ namespace Sapphire::Network::Packets DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui PerformNote = 0x0286, // updated 4.3 - PrepareZoning = 0x026C, // updated 5.35 hotfix - ActorGauge = 0x0112, // updated 5.35 hotfix + PrepareZoning = 0x01EE, // updated 5.45 hotfix + ActorGauge = 0x018E, // updated 5.45 hotfix // daily quest info -> without them sent, login will take longer... - DailyQuests = 0x0139, // updated 5.35 hotfix - DailyQuestRepeatFlags = 0x024C, // updated 5.35 hotfix + DailyQuests = 0x02C4, // updated 5.45 hotfix + DailyQuestRepeatFlags = 0x024D, // updated 5.45 hotfix /// Doman Mahjong ////////////////////////////////////// MahjongOpenGui = 0x02A4, // only available in mahjong instance @@ -302,10 +302,10 @@ namespace Sapphire::Network::Packets */ enum ClientZoneIpcType : uint16_t { - PingHandler = 0x0219, // updated 5.35 hotfix - InitHandler = 0x0185, // updated 5.35 hotfix + PingHandler = 0x0183, // updated 5.45 hotfix + InitHandler = 0x01EA, // updated 5.45 hotfix - FinishLoadingHandler = 0x01BE, // updated 5.35 hotfix + FinishLoadingHandler = 0x023F, // updated 5.45 hotfix CFCommenceHandler = 0x0118, // updated 5.35 hotfix @@ -313,7 +313,7 @@ namespace Sapphire::Network::Packets CFRegisterDuty = 0x0289, // updated 5.35 hotfix CFRegisterRoulette = 0x0088, // updated 5.35 hotfix PlayTimeHandler = 0x02A8, // updated 5.35 hotfix - LogoutHandler = 0x00EC, // updated 5.35 hotfix + LogoutHandler = 0x0312, // updated 5.45 hotfix CancelLogout = 0x03DB, // updated 5.35 hotfix CFDutyInfoHandler = 0x0078, // updated 4.2 @@ -322,23 +322,23 @@ namespace Sapphire::Network::Packets SocialResponseHandler = 0x028D, // updated 5.35 hotfix CreateCrossWorldLS = 0x00AF, // updated 4.3 - ChatHandler = 0x0131, // updated 5.35 hotfix + ChatHandler = 0x00A4, // updated 5.45 hotfix PartyChatHandler = 0x0065, PartySetLeaderHandler = 0x0208, // updated 5.35 hotfix LeavePartyHandler = 0x0337, // updated 5.35 hotfix KickPartyMemberHandler = 0x014C, // updated 5.35 hotfix DisbandPartyHandler = 0x0205, // updated 5.35 hotfix - SocialListHandler = 0x0340, // updated 5.35 hotfix + SocialListHandler = 0x02B0, // updated 5.45 hotfix SetSearchInfoHandler = 0x0314, // updated 5.35 hotfix - ReqSearchInfoHandler = 0x01E9, // updated 5.35 hotfix + ReqSearchInfoHandler = 0x03AC, // updated 5.45 hotfix ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0 - BlackListHandler = 0x0079, // updated 5.35 hotfix + BlackListHandler = 0x02CD, // updated 5.45 hotfix PlayerSearchHandler = 0x00F4, // updated 5.0 - LinkshellListHandler = 0x024B, // updated 5.35 hotfix + LinkshellListHandler = 0x0258, // updated 5.45 hotfix MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5 MarketBoardRequestItemListings = 0x0103, // updated 4.5 @@ -357,41 +357,41 @@ namespace Sapphire::Network::Packets ReqCountdownInitiate = 0x025F, // updated 5.35 hotfix ReqCountdownCancel = 0x0244, // updated 5.25 - ZoneLineHandler = 0x0279, // updated 5.35 hotfix - ClientTrigger = 0x03D3, // updated 5.35 hotfix + ZoneLineHandler = 0x00BA, // updated 5.45 hotfix + ClientTrigger = 0x0146, // updated 5.45 hotfix DiscoveryHandler = 0x00E3, // updated 5.35 hotfix PlaceFieldMarkerPreset = 0x023F, // updated 5.25 PlaceFieldMarker = 0x01BA, // updated 5.25 - SkillHandler = 0x01CD, // updated 5.35 hotfix - GMCommand1 = 0x02AC, // updated 5.35 hotfix - GMCommand2 = 0x029F, // updated 5.35 hotfix + SkillHandler = 0x0388, // updated 5.45 hotfix + GMCommand1 = 0x01E0, // updated 5.45 hotfix + GMCommand2 = 0x0114, // updated 5.45 hotfix AoESkillHandler = 0x030C, // updated 5.35 hotfix - UpdatePositionHandler = 0x0236, // updated 5.35 hotfix + UpdatePositionHandler = 0x031A, // updated 5.45 hotfix - InventoryModifyHandler = 0x0135, // updated 5.35 hotfix + InventoryModifyHandler = 0x0110, // updated 5.45 hotfix InventoryEquipRecommendedItems = 0x0116, // updated 5.35 hotfix ReqPlaceHousingItem = 0x02AE, // updated 5.35 hotfix BuildPresetHandler = 0x01C2, // updated 5.35 hotfix - TalkEventHandler = 0x02A4, // updated 5.35 hotfix - EmoteEventHandler = 0x02C8, // updated 5.35 hotfix - WithinRangeEventHandler = 0x0209, // updated 5.35 hotfix - OutOfRangeEventHandler = 0x0319, // updated 5.35 hotfix - EnterTeriEventHandler = 0x0192, // updated 5.35 hotfix + TalkEventHandler = 0x00C2, // updated 5.45 hotfix + EmoteEventHandler = 0x03D5, // updated 5.45 hotfix + WithinRangeEventHandler = 0x0171, // updated 5.45 hotfix + OutOfRangeEventHandler = 0x019B, // updated 5.45 hotfix + EnterTeriEventHandler = 0x027F, // updated 5.45 hotfix ShopEventHandler = 0x01F6, // updated 5.35 hotfix EventYieldHandler = 0x0128, // updated 5.35 hotfix - ReturnEventHandler = 0x02B4, // updated 5.35 hotfix - TradeReturnEventHandler = 0x00A4, // updated 5.35 hotfix + ReturnEventHandler = 0x02AD, // updated 5.45 hotfix + TradeReturnEventHandler = 0x00A7, // updated 5.45 hotfix TradeMultipleReturnEventHander = 0x035C, // updated 5.35 hotfix LinkshellEventHandler = 0x016B, // updated 4.5 LinkshellEventHandler1 = 0x016C, // updated 4.5 - ReqEquipDisplayFlagsChange = 0x02F6, // updated 5.35 hotfix + ReqEquipDisplayFlagsChange = 0x03B0, // updated 5.45 hotfix LandRenameHandler = 0x0155, // updated 5.35 hotfix HousingUpdateHouseGreeting = 0x02EA, // updated 5.35 hotfix @@ -404,8 +404,8 @@ namespace Sapphire::Network::Packets PerformNoteHandler = 0x029B, // updated 4.3 - WorldInteractionHandler = 0x00A9, // updated 5.35 hotfix - Dive = 0x02CC, // updated 5.35 hotfix + WorldInteractionHandler = 0x02E4, // updated 5.45 hotfix + Dive = 0x00F1, // updated 5.45 hotfix }; //////////////////////////////////////////////////////////////////////////////// diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index e21d1427..0ae32730 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1046,8 +1046,7 @@ namespace Sapphire::Network::Packets::Server unsigned char companionDefRank; unsigned char companionAttRank; unsigned char companionHealRank; - unsigned char mountGuideMask[23]; - unsigned char maybeReservedMountSlots; + unsigned char mountGuideMask[28]; //== char name[32]; unsigned char unknownOword[16]; @@ -1056,10 +1055,11 @@ namespace Sapphire::Network::Packets::Server unsigned char aetheryte[21]; unsigned char discovery[445]; unsigned char howto[34]; - unsigned char minions[51]; + unsigned char minions[53]; unsigned char chocoboTaxiMask[10]; - unsigned char watchedCutscenes[131]; + unsigned char watchedCutscenes[135]; unsigned char companionBardingMask[10]; + unsigned char unknown5_45a; // companionBardingMask[11]? unsigned char companionEquippedHead; unsigned char companionEquippedBody; unsigned char companionEquippedLegs; @@ -1074,7 +1074,7 @@ namespace Sapphire::Network::Packets::Server unsigned char unknownPvp5AB[11]; unsigned char unknown5B9[5]; */ - unsigned char unknown5_3c[234]; + unsigned char unknown5_45b[236]; //== unsigned char pose; /* @@ -1092,28 +1092,32 @@ namespace Sapphire::Network::Packets::Server unsigned char aetherCurrentMask[22]; unsigned char u10[3]; */ - unsigned char unknown5_3d[292]; + unsigned char unknown5_45c[294]; //== - unsigned char orchestrionMask[40]; + unsigned char orchestrionMask[40]; // this field may already be extended, if it is, the beginning bytes are at the end of unknown5_45c unsigned char hallOfNoviceCompletion[3]; unsigned char animaCompletion[11]; unsigned char unknown5_3e[33]; unsigned char unlockedRaids[28]; unsigned char unlockedDungeons[18]; unsigned char unlockedGuildhests[10]; - unsigned char unlockedTrials[9]; // 5.35 trial:pvp either 9:5 or 8:6 not confirmed - unsigned char unlockedPvp[5]; + /* + 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 clearedRaids[28]; unsigned char clearedDungeons[18]; unsigned char clearedGuildhests[10]; unsigned char clearedTrials[9]; - unsigned char clearedPvp[5]; + unsigned char clearedPvp[6]; /* unsigned short fishingRecordsFishWeight[26]; unsigned int exploratoryMissionNextTimestamp; unsigned char pvpLevel; */ - unsigned char padding2[8]; + unsigned char unknown5_45d[8]; //== }; From 9e9a0f80f99960ccbfc119eeb5eb7a8d0bd3e3e4 Mon Sep 17 00:00:00 2001 From: collett Date: Tue, 16 Feb 2021 23:04:31 +0900 Subject: [PATCH 03/11] merge known opcode from https://github.com/karashiiro/FFXIVOpcodes & discord, adding new opcode defines from them as well. --- src/common/Network/PacketDef/Ipcs.h | 46 ++++++++++++++++++----------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 74399d28..0e4c7ea7 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -62,13 +62,13 @@ namespace Sapphire::Network::Packets /////////////////////////////////////////////////// ChatBanned = 0xF06B, - Playtime = 0x03A4, // updated 5.35 hotfix + Playtime = 0x01CC, // updated 5.45 hotfix Logout = 0x012A, // updated 5.45 hotfix - CFNotify = 0x02C4, // updated 5.35 hotfix + CFNotify = 0x026E, // updated 5.45 hotfix CFMemberStatus = 0x0079, CFDutyInfo = 0x0193, // updated 5.35 hotfix CFPlayerInNeed = 0xF07F, - CFPreferredRole = 0x0196, // updated 5.35 hotfix + CFPreferredRole = 0x012E, // updated 5.45 hotfix CFCancel = 0x00EC, // updated 5.35 hotfix SocialRequestError = 0xF0AD, @@ -87,8 +87,8 @@ namespace Sapphire::Network::Packets SocialList = 0x0315, // updated 5.45 hotfix - ExamineSearchInfo = 0x03C3, // updated 5.35 hotfix - UpdateSearchInfo = 0x0121, // updated 5.35 hotfix + ExamineSearchInfo = 0x035F, // updated 5.45 hotfix + UpdateSearchInfo = 0x0310, // updated 5.45 hotfix InitSearchInfo = 0x01ED, // updated 5.45 hotfix ExamineSearchComment = 0x0102, // updated 4.1 @@ -114,14 +114,14 @@ namespace Sapphire::Network::Packets MarketTaxRates = 0x01F8, // updated 5.35 hotfix - MarketBoardSearchResult = 0x032C, // updated 5.35 hotfix - MarketBoardItemListingCount = 0x038F, // updated 5.35 hotfix - MarketBoardItemListingHistory = 0x0186, // updated 5.35 hotfix - MarketBoardItemListing = 0x025F, // updated 5.35 hotfix + MarketBoardSearchResult = 0x01D6, // updated 5.45 hotfix + MarketBoardItemListingCount = 0x00C0, // updated 5.45 hotfix + MarketBoardItemListingHistory = 0x01C3, // updated 5.45 hotfix + MarketBoardItemListing = 0x016B, // updated 5.45 hotfix CharaFreeCompanyTag = 0x013B, // updated 4.5 FreeCompanyBoardMsg = 0x013C, // updated 4.5 - FreeCompanyInfo = 0xF13D, // updated 4.5 + FreeCompanyInfo = 0x03D0, // updated 5.45 hotfix ExamineFreeCompanyInfo = 0xF13E, // updated 4.5 FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 @@ -164,13 +164,13 @@ namespace Sapphire::Network::Packets CharaVisualEffect = 0x026A, // updated 5.45 hotfix ModelEquip = 0x024A, // updated 5.45 hotfix - Examine = 0x00BC, // updated 5.35 hotfix + Examine = 0x0261, // updated 5.45 hotfix CharaNameReq = 0x008E, // updated 5.35 hotfix // nb: see #565 on github UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0 RetainerSaleHistory = 0x020E, // updated 5.21 hotfix - RetainerInformation = 0x01F9, // updated 5.35 hotfix + RetainerInformation = 0x026B, // updated 5.45 hotfix SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore @@ -225,7 +225,7 @@ namespace Sapphire::Network::Packets DirectorVars = 0x011D, // updated 5.35 hotfix SomeDirectorUnk1 = 0x0084, // updated 5.18 SomeDirectorUnk2 = 0xF0C1, // updated 5.18 - SomeDirectorUnk4 = 0x0202, // updated 5.35 hotfix + SomeDirectorUnk4 = 0x0071, // updated 5.45 hotfix SomeDirectorUnk8 = 0x028A, // updated 5.18 SomeDirectorUnk16 = 0x028C, // updated 5.18 DirectorPopUp = 0xF162, // updated 5.18 - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown @@ -245,6 +245,8 @@ namespace Sapphire::Network::Packets MiniCactpotInit = 0x0286, // added 5.31 ShopMessage = 0x02FC, // updated 5.45 hotfix LootMessage = 0x03B8, // updated 5.45 hotfix + ResultDialog = 0x0296, // updated 5.45 hotfix + DesynthResult = 0x0323, // updated 5.45 hotfix /// Housing ////////////////////////////////////// @@ -295,6 +297,16 @@ namespace Sapphire::Network::Packets // 2C3 and 2C4 are currently unknown MahjongEndRoundDraw = 0x02C5, // self explanatory MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen. + + /// Airship & Submarine ////////////////////////////////////// + AirshipExplorationResult = 0x0131, // updated 5.45 hotfix + AirshipStatus = 0x0253, // updated 5.45 hotfix + AirshipStatusList = 0x0391, // updated 5.45 hotfix + AirshipTimers = 0x0206, // updated 5.45 hotfix + SubmarineExplorationResult = 0x00EB, // updated 5.45 hotfix + SubmarineProgressionStatus = 0x0333, // updated 5.45 hotfix + SubmarineStatusList = 0x01F2, // updated 5.45 hotfix + SubmarineTimers = 0x013B, // updated 5.45 hotfix }; /** @@ -330,7 +342,7 @@ namespace Sapphire::Network::Packets DisbandPartyHandler = 0x0205, // updated 5.35 hotfix SocialListHandler = 0x02B0, // updated 5.45 hotfix - SetSearchInfoHandler = 0x0314, // updated 5.35 hotfix + SetSearchInfoHandler = 0x0111, // updated 5.45 hotfix ReqSearchInfoHandler = 0x03AC, // updated 5.45 hotfix ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 @@ -361,8 +373,8 @@ namespace Sapphire::Network::Packets ClientTrigger = 0x0146, // updated 5.45 hotfix DiscoveryHandler = 0x00E3, // updated 5.35 hotfix - PlaceFieldMarkerPreset = 0x023F, // updated 5.25 - PlaceFieldMarker = 0x01BA, // updated 5.25 + PlaceFieldMarkerPreset = 0x01D3, // updated 5.45 hotfix + PlaceFieldMarker = 0x0392, // updated 5.45 hotfix SkillHandler = 0x0388, // updated 5.45 hotfix GMCommand1 = 0x01E0, // updated 5.45 hotfix GMCommand2 = 0x0114, // updated 5.45 hotfix @@ -400,7 +412,7 @@ namespace Sapphire::Network::Packets SetSharedEstateSettings = 0x017B, // updated 5.0 - UpdatePositionInstance = 0x0345, // updated 5.35 hotfix + UpdatePositionInstance = 0x034E, // updated 5.45 hotfix PerformNoteHandler = 0x029B, // updated 4.3 From e976abd586c86c80d5959e245ee9d48032299d89 Mon Sep 17 00:00:00 2001 From: collett Date: Tue, 16 Feb 2021 23:45:23 +0900 Subject: [PATCH 04/11] failed to count bytes --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 0ae32730..ccf2324f 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1046,7 +1046,7 @@ namespace Sapphire::Network::Packets::Server unsigned char companionDefRank; unsigned char companionAttRank; unsigned char companionHealRank; - unsigned char mountGuideMask[28]; + unsigned char mountGuideMask[27]; //== char name[32]; unsigned char unknownOword[16]; From 3e5b1ae5e9ea7b1062c507e884f23d4f790b547b Mon Sep 17 00:00:00 2001 From: collett Date: Tue, 16 Feb 2021 23:46:41 +0900 Subject: [PATCH 05/11] gameVer changed to 5400 --- src/lobby/GameConnection.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lobby/GameConnection.cpp b/src/lobby/GameConnection.cpp index 6bc2e174..b7156cd4 100644 --- a/src/lobby/GameConnection.cpp +++ b/src/lobby/GameConnection.cpp @@ -452,8 +452,8 @@ void Lobby::GameConnection::generateEncryptionKey( uint32_t key, const std::stri m_baseKey[ 2 ] = 0x34; m_baseKey[ 3 ] = 0x12; memcpy( m_baseKey + 0x04, &key, 4 ); - m_baseKey[ 8 ] = 0x88; - m_baseKey[ 9 ] = 0x13; + m_baseKey[ 8 ] = 0x18; + m_baseKey[ 9 ] = 0x15; memcpy( ( char* ) m_baseKey + 0x0C, keyPhrase.c_str(), keyPhrase.size() ); Common::Util::md5( m_baseKey, m_encKey, 0x2C ); } From c4effc7e21e9356154feb088b52da9aaa8522edf Mon Sep 17 00:00:00 2001 From: collett Date: Tue, 16 Feb 2021 23:51:42 +0900 Subject: [PATCH 06/11] EquipSlotCategory reverted back or I updated the wrong enum last time? Anyway all values are checked manually and better naming. --- src/common/Common.h | 59 ++++++++++------------------- src/common/Network/PacketDef/Ipcs.h | 4 +- src/world/Actor/PlayerInventory.cpp | 6 +-- src/world/Manager/ItemMgr.cpp | 40 +++++++++---------- 4 files changed, 46 insertions(+), 63 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index e642b4d8..a2e9f834 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -161,44 +161,27 @@ namespace Sapphire::Common enum class EquipSlotCategory : uint8_t { - // main slots - - CharaMainHand = 0, - CharaOffHand = 1, - CharaHead = 2, - CharaBody = 3, - CharaHands = 4, - CharaWaist = 5, - CharaLegs = 6, - CharaFeet = 7, - CharaEars = 8, - CharaNeck = 9, - CharaWrist = 10, - CharaRing = 11, - CharaSoulCrystal = 12, - - /* following slots not seem to exist any more. - when multi-slot gear is moved into equipment slot, normal slot listed above is used. - client will move any incompatible gears into armory but no InventoryModifiyHandler is sent. - server need to move those silently in order to sync with client. - */ - - /*! Cannot equip gear to offhand slot */ - //MainTwoHandedWeapon = 13, - /*! Can be equipped in either main or offhand slot */ - //MainOrOffHand = 14, // unused - /*! Cannot equip gear to head */ - //BodyDisallowHead = 15, - /*! Cannot equip gear to hands, legs and feet slots */ - //BodyDisallowHandsLegsFeet = 16, - /*! Cannot equip gear to feet slot */ - //LegsDisallowFeet = 18, - /*! Cannot equp gear to head, hands, legs, feet slots */ - //BodyDisallowAll = 19, - /*! Cannot equip gear to hands slot */ - //BodyDisallowHands = 20, - /*! Cannot equip gear to legs & feet slots */ - //BodyDisallowLegsFeet = 21, + MainHand = 1, + OffHand = 2, + Head = 3, + Body = 4, + Hands = 5, + Waist = 6, + Legs = 7, + Feet = 8, + Ears = 9, + Neck = 10, + Wrist = 11, + Ring = 12, + MainTwoHandedWeapon = 13, + //MainOrOffHand = 14, // unused + BodyDisallowHead = 15, + BodyDisallowHandsLegsFeet = 16, + SoulCrystal = 17, + LegsDisallowFeet = 18, + BodyDisallowAll = 19, + BodyDisallowHands = 20, + BodyDisallowLegsFeet = 21, }; enum InventoryType : uint16_t diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 0e4c7ea7..69c988af 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -66,7 +66,7 @@ namespace Sapphire::Network::Packets Logout = 0x012A, // updated 5.45 hotfix CFNotify = 0x026E, // updated 5.45 hotfix CFMemberStatus = 0x0079, - CFDutyInfo = 0x0193, // updated 5.35 hotfix + CFDutyInfo = 0xF193, // updated 5.35 hotfix CFPlayerInNeed = 0xF07F, CFPreferredRole = 0x012E, // updated 5.45 hotfix CFCancel = 0x00EC, // updated 5.35 hotfix @@ -80,7 +80,7 @@ namespace Sapphire::Network::Packets LogMessage = 0x00D0, - Chat = 0x0349, // updated 5.35 hotfix + Chat = 0x01BA, // updated 5.45 hotfix PartyChat = 0x0065, WorldVisitList = 0xF0FE, // added 4.5 diff --git a/src/world/Actor/PlayerInventory.cpp b/src/world/Actor/PlayerInventory.cpp index f94d0237..2d4763fc 100644 --- a/src/world/Actor/PlayerInventory.cpp +++ b/src/world/Actor/PlayerInventory.cpp @@ -580,9 +580,9 @@ Sapphire::ItemPtr Sapphire::Entity::Player::addItem( ItemPtr itemToAdd, bool sil bool foundFreeSlot = false; std::vector< uint16_t > bags = { Bag0, Bag1, Bag2, Bag3 }; - + sendDebug( "adding item: {}, equipSlotCategory: {}, stackSize: {}", itemToAdd->getId(), itemInfo->equipSlotCategory, itemInfo->stackSize ); // add the related armoury bag to the applicable bags and try and fill a free slot there before falling back to regular inventory - if( itemInfo->isEquippable && getEquipDisplayFlags() & StoreNewItemsInArmouryChest ) + if( itemInfo->equipSlotCategory > 0 && getEquipDisplayFlags() & StoreNewItemsInArmouryChest ) { auto bag = World::Manager::ItemMgr::getCharaEquipSlotCategoryToArmoryId( static_cast< Common::EquipSlotCategory >( itemInfo->equipSlotCategory ) ); @@ -601,7 +601,7 @@ Sapphire::ItemPtr Sapphire::Entity::Player::addItem( ItemPtr itemToAdd, bool sil auto item = storage->getItem( slot ); // add any items that are stackable - if( canMerge && item && !itemInfo->isEquippable && item->getId() == itemToAdd->getId() ) + if( canMerge && item && item->getMaxStackSize() > 1 && item->getId() == itemToAdd->getId() ) { uint32_t count = item->getStackSize(); uint32_t maxStack = item->getMaxStackSize(); diff --git a/src/world/Manager/ItemMgr.cpp b/src/world/Manager/ItemMgr.cpp index 3c08d82d..c8331dac 100644 --- a/src/world/Manager/ItemMgr.cpp +++ b/src/world/Manager/ItemMgr.cpp @@ -32,51 +32,51 @@ uint16_t Sapphire::World::Manager::ItemMgr::getCharaEquipSlotCategoryToArmoryId( switch( slot ) { - case Common::EquipSlotCategory::CharaHead: + case Common::EquipSlotCategory::Head: return Common::ArmoryHead; - case Common::EquipSlotCategory::CharaBody: - //case Common::EquipSlotCategory::BodyDisallowHead: - //case Common::EquipSlotCategory::BodyDisallowHandsLegsFeet: - //case Common::EquipSlotCategory::BodyDisallowAll: - //case Common::EquipSlotCategory::BodyDisallowHands: - //case Common::EquipSlotCategory::BodyDisallowLegsFeet: + case Common::EquipSlotCategory::Body: + case Common::EquipSlotCategory::BodyDisallowHead: + case Common::EquipSlotCategory::BodyDisallowHandsLegsFeet: + case Common::EquipSlotCategory::BodyDisallowAll: + case Common::EquipSlotCategory::BodyDisallowHands: + case Common::EquipSlotCategory::BodyDisallowLegsFeet: return Common::ArmoryBody; - case Common::EquipSlotCategory::CharaEars: + case Common::EquipSlotCategory::Ears: return Common::ArmoryEar; - case Common::EquipSlotCategory::CharaFeet: + case Common::EquipSlotCategory::Feet: return Common::ArmoryFeet; - case Common::EquipSlotCategory::CharaHands: + case Common::EquipSlotCategory::Hands: return Common::ArmoryHand; - case Common::EquipSlotCategory::CharaLegs: - //case Common::EquipSlotCategory::LegsDisallowFeet: + case Common::EquipSlotCategory::Legs: + case Common::EquipSlotCategory::LegsDisallowFeet: return Common::ArmoryLegs; - case Common::EquipSlotCategory::CharaMainHand: - //case Common::EquipSlotCategory::MainTwoHandedWeapon: + case Common::EquipSlotCategory::MainHand: + case Common::EquipSlotCategory::MainTwoHandedWeapon: //case Common::EquipSlotCategory::MainOrOffHand: return Common::ArmoryMain; - case Common::EquipSlotCategory::CharaOffHand: + case Common::EquipSlotCategory::OffHand: return Common::ArmoryOff; - case Common::EquipSlotCategory::CharaRing: + case Common::EquipSlotCategory::Ring: return Common::ArmoryRing; - case Common::EquipSlotCategory::CharaWaist: + case Common::EquipSlotCategory::Waist: return Common::ArmoryWaist; - case Common::EquipSlotCategory::CharaWrist: + case Common::EquipSlotCategory::Wrist: return Common::ArmoryWrist; - case Common::EquipSlotCategory::CharaNeck: + case Common::EquipSlotCategory::Neck: return Common::ArmoryNeck; - case Common::EquipSlotCategory::CharaSoulCrystal: + case Common::EquipSlotCategory::SoulCrystal: return Common::ArmorySoulCrystal; default: From f499b53f25c806dd84ab69d34e703fa0f7981622 Mon Sep 17 00:00:00 2001 From: collett Date: Tue, 16 Feb 2021 23:51:59 +0900 Subject: [PATCH 07/11] store new mount bytes to db --- src/world/Actor/Player.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index 41565b32..8dbe9afe 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -1068,7 +1068,7 @@ namespace Sapphire::Entity uint8_t m_titleList[48]; uint8_t m_howTo[34]; uint8_t m_minions[40]; - uint8_t m_mountGuide[22]; + uint8_t m_mountGuide[27]; uint8_t m_homePoint; uint8_t m_startTown; uint16_t m_townWarpFstFlags; From bc4f7f490de3aa80b7110ae9f873218efe2343a9 Mon Sep 17 00:00:00 2001 From: collett Date: Fri, 19 Feb 2021 02:36:05 +0900 Subject: [PATCH 08/11] opcode part 2 --- src/common/Network/PacketDef/Ipcs.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 69c988af..15d7429b 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -62,7 +62,7 @@ namespace Sapphire::Network::Packets /////////////////////////////////////////////////// ChatBanned = 0xF06B, - Playtime = 0x01CC, // updated 5.45 hotfix + Playtime = 0x03A4, // updated 5.35 hotfix Logout = 0x012A, // updated 5.45 hotfix CFNotify = 0x026E, // updated 5.45 hotfix CFMemberStatus = 0x0079, @@ -73,9 +73,9 @@ namespace Sapphire::Network::Packets SocialRequestError = 0xF0AD, CFRegistered = 0x010C, // updated 5.35 hotfix - SocialRequestResponse = 0x01C7, // updated 5.35 hotfix - SocialMessage = 0x0308, // updated 5.35 hotfix - SocialMessage2 = 0x037C, // updated 5.35 hotfix + SocialRequestResponse = 0x03A5, // updated 5.45 hotfix + SocialMessage = 0x030C, // updated 5.45 hotfix + SocialMessage2 = 0x00BB, // updated 5.45 hotfix CancelAllianceForming = 0x00C6, // updated 4.2 LogMessage = 0x00D0, @@ -148,8 +148,8 @@ namespace Sapphire::Network::Packets ActorCast = 0x034C, // updated 5.45 hotfix SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 - PartyList = 0x02B2, // updated 5.35 hotfix - PartyMessage = 0x00AE, // updated 5.35 hotfix + PartyList = 0x00F5, // updated 5.45 hotfix + PartyMessage = 0x01BC, // updated 5.45 hotfix HateRank = 0x0217, // updated 5.45 hotfix HateList = 0x00E5, // updated 5.45 hotfix ObjectSpawn = 0x0336, // updated 5.45 hotfix @@ -194,7 +194,7 @@ namespace Sapphire::Network::Packets EventPlay128 = 0x02F4, // updated 5.45 hotfix EventPlay255 = 0x009D, // updated 5.45 hotfix - EventYield = 0x037D, // updated 5.35 hotfix + EventYield = 0x0268, // updated 5.45 hotfix //EventYield4 = 0x0000, //EventYield8 = 0x0000, //EventYield16 = 0x0000, @@ -330,16 +330,16 @@ namespace Sapphire::Network::Packets CFDutyInfoHandler = 0x0078, // updated 4.2 - SocialReqSendHandler = 0x0387, // updated 5.35 hotfix - SocialResponseHandler = 0x028D, // updated 5.35 hotfix + SocialReqSendHandler = 0x0288, // updated 5.45 hotfix + SocialResponseHandler = 0x029B, // updated 5.45 hotfix CreateCrossWorldLS = 0x00AF, // updated 4.3 ChatHandler = 0x00A4, // updated 5.45 hotfix PartyChatHandler = 0x0065, - PartySetLeaderHandler = 0x0208, // updated 5.35 hotfix - LeavePartyHandler = 0x0337, // updated 5.35 hotfix - KickPartyMemberHandler = 0x014C, // updated 5.35 hotfix - DisbandPartyHandler = 0x0205, // updated 5.35 hotfix + PartySetLeaderHandler = 0x02EF, // updated 5.45 hotfix + LeavePartyHandler = 0x017E, // updated 5.45 hotfix + KickPartyMemberHandler = 0x0070, // updated 5.45 hotfix + DisbandPartyHandler = 0x037A, // updated 5.45 hotfix SocialListHandler = 0x02B0, // updated 5.45 hotfix SetSearchInfoHandler = 0x0111, // updated 5.45 hotfix @@ -395,7 +395,7 @@ namespace Sapphire::Network::Packets OutOfRangeEventHandler = 0x019B, // updated 5.45 hotfix EnterTeriEventHandler = 0x027F, // updated 5.45 hotfix ShopEventHandler = 0x01F6, // updated 5.35 hotfix - EventYieldHandler = 0x0128, // updated 5.35 hotfix + EventYieldHandler = 0x0230, // updated 5.45 hotfix ReturnEventHandler = 0x02AD, // updated 5.45 hotfix TradeReturnEventHandler = 0x00A7, // updated 5.45 hotfix TradeMultipleReturnEventHander = 0x035C, // updated 5.35 hotfix From 0ea81c094d90fd824cc4b6318475af1ba6393a04 Mon Sep 17 00:00:00 2001 From: collett Date: Fri, 19 Feb 2021 02:40:27 +0900 Subject: [PATCH 09/11] pickup correct PlayTime opcode --- src/common/Network/PacketDef/Ipcs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 15d7429b..6beb9eeb 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -62,7 +62,7 @@ namespace Sapphire::Network::Packets /////////////////////////////////////////////////// ChatBanned = 0xF06B, - Playtime = 0x03A4, // updated 5.35 hotfix + Playtime = 0x0302, // updated 5.45 hotfix Logout = 0x012A, // updated 5.45 hotfix CFNotify = 0x026E, // updated 5.45 hotfix CFMemberStatus = 0x0079, From 39e898ad8f2f584a645ec4fc5735a30e367225bb Mon Sep 17 00:00:00 2001 From: Jeido Uran Date: Mon, 22 Feb 2021 20:25:37 +0100 Subject: [PATCH 10/11] manual opcodes update --- src/common/Network/PacketDef/Ipcs.h | 82 ++++++++++++++--------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 6beb9eeb..9bff838d 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -66,13 +66,13 @@ namespace Sapphire::Network::Packets Logout = 0x012A, // updated 5.45 hotfix CFNotify = 0x026E, // updated 5.45 hotfix CFMemberStatus = 0x0079, - CFDutyInfo = 0xF193, // updated 5.35 hotfix + CFDutyInfo = 0x0145, // updated 5.45 hotfix CFPlayerInNeed = 0xF07F, CFPreferredRole = 0x012E, // updated 5.45 hotfix - CFCancel = 0x00EC, // updated 5.35 hotfix + CFCancel = 0x0312, // updated 5.45 hotfix SocialRequestError = 0xF0AD, - CFRegistered = 0x010C, // updated 5.35 hotfix + CFRegistered = 0x01FB, // updated 5.45 hotfix SocialRequestResponse = 0x03A5, // updated 5.45 hotfix SocialMessage = 0x030C, // updated 5.45 hotfix SocialMessage2 = 0x00BB, // updated 5.45 hotfix @@ -92,7 +92,7 @@ namespace Sapphire::Network::Packets InitSearchInfo = 0x01ED, // updated 5.45 hotfix ExamineSearchComment = 0x0102, // updated 4.1 - ServerNoticeShort = 0x017A, // updated 5.35 hotfix + ServerNoticeShort = 0x03B4, // updated 5.45 hotfix ServerNotice = 0x0354, // updated 5.45 hotfix SetOnlineStatus = 0x0166, // updated 5.45 hotfix @@ -131,9 +131,9 @@ namespace Sapphire::Network::Packets BossStatusEffectList = 0x0312, // added 5.1 Effect = 0x027F, // updated 5.45 hotfix AoeEffect8 = 0x009B, // updated 5.45 hotfix - AoeEffect16 = 0x01B9, // updated 5.35 hotfix - AoeEffect24 = 0x02B4, // updated 5.35 hotfix - AoeEffect32 = 0x00A4, // updated 5.35 hotfix + AoeEffect16 = 0x028C, // updated 5.45 hotfix + AoeEffect24 = 0x02AD, // updated 5.45 hotfix + AoeEffect32 = 0x00A7, // updated 5.45 hotfix PersistantEffect = 0x0244, // updated 5.45 hotfix GCAffiliation = 0x0155, // updated 5.45 hotfix @@ -153,7 +153,7 @@ namespace Sapphire::Network::Packets HateRank = 0x0217, // updated 5.45 hotfix HateList = 0x00E5, // updated 5.45 hotfix ObjectSpawn = 0x0336, // updated 5.45 hotfix - ObjectDespawn = 0x00C0, // updated 5.35 hotfix + ObjectDespawn = 0x02D0, // updated 5.45 hotfix UpdateClassInfo = 0x0179, // updated 5.45 hotfix SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything PlayerSetup = 0x01E9, // updated 5.45 hotfix @@ -165,7 +165,7 @@ namespace Sapphire::Network::Packets ModelEquip = 0x024A, // updated 5.45 hotfix Examine = 0x0261, // updated 5.45 hotfix - CharaNameReq = 0x008E, // updated 5.35 hotfix + CharaNameReq = 0x0380, // updated 5.45 hotfix // nb: see #565 on github UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0 @@ -222,7 +222,7 @@ namespace Sapphire::Network::Packets Mount = 0x0122, // updated 5.45 hotfix - DirectorVars = 0x011D, // updated 5.35 hotfix + DirectorVars = 0x0252, // updated 5.45 hotfix SomeDirectorUnk1 = 0x0084, // updated 5.18 SomeDirectorUnk2 = 0xF0C1, // updated 5.18 SomeDirectorUnk4 = 0x0071, // updated 5.45 hotfix @@ -234,11 +234,11 @@ namespace Sapphire::Network::Packets CFAvailableContents = 0xF1FD, // updated 4.2 - WeatherChange = 0x027B, // updated 5.35 hotfix - PlayerTitleList = 0x0251, // updated 5.35 hotfix - Discovery = 0x031B, // updated 5.35 hotfix + WeatherChange = 0x0167, // updated 5.45 hotfix + PlayerTitleList = 0x00F3, // updated 5.45 hotfix + Discovery = 0x0247, // updated 5.45 hotfix - EorzeaTimeOffset = 0x01D4, // updated 5.35 hotfix + EorzeaTimeOffset = 0x00C5, // updated 5.45 hotfix EquipDisplayFlags = 0x0316, // updated 5.45 hotfix @@ -251,28 +251,28 @@ namespace Sapphire::Network::Packets /// Housing ////////////////////////////////////// LandSetInitialize = 0x03E2, // updated 5.45 hotfix - LandUpdate = 0x00BF, // updated 5.35 hotfix - YardObjectSpawn = 0x01CA, // updated 5.35 hotfix - HousingIndoorInitialize = 0x01FF, // updated 5.35 hotfix - LandPriceUpdate = 0x0380, // updated 5.35 hotfix + LandUpdate = 0x027E, // updated 5.45 hotfix + YardObjectSpawn = 0x010E, // updated 5.45 hotfix + HousingIndoorInitialize = 0x01A9, // updated 5.45 hotfix + LandPriceUpdate = 0x0379, // updated 5.45 hotfix LandInfoSign = 0x0398, // updated 5.45 hotfix - LandRename = 0x0140, // updated 5.35 hotfix - HousingEstateGreeting = 0x00C7, // updated 5.35 hotfix - HousingUpdateLandFlagsSlot = 0x027E, // updated 5.35 hotfix + LandRename = 0x00F6, // updated 5.45 hotfix + HousingEstateGreeting = 0x037D, // updated 5.45 hotfix + HousingUpdateLandFlagsSlot = 0x03AF, // updated 5.45 hotfix HousingLandFlags = 0x033B, // updated 5.45 hotfix - HousingShowEstateGuestAccess = 0x03B5, // updated 5.35 hotfix + HousingShowEstateGuestAccess = 0x01B3, // updated 5.45 hotfix HousingObjectInitialize = 0x00B5, // updated 5.45 hotfix - HousingInternalObjectSpawn = 0x0234, // updated 5.35 hotfix + HousingInternalObjectSpawn = 0x00BC, // updated 5.45 hotfix - HousingWardInfo = 0x02FD, // updated 5.35 hotfix - HousingObjectMove = 0x022C, // updated 5.35 hotfix + HousingWardInfo = 0x015E, // updated 5.45 hotfix + HousingObjectMove = 0x03E6, // updated 5.45 hotfix - SharedEstateSettingsResponse = 0x006A, // updated 5.35 hotfix + SharedEstateSettingsResponse = 0x03A4, // updated 5.45 hotfix - LandUpdateHouseName = 0x00B1, // updated 5.35 hotfix + LandUpdateHouseName = 0x0215, // updated 5.45 hotfix - LandSetMap = 0x0149, // updated 5.35 hotfix + LandSetMap = 0x00D2, // updated 5.45 hotfix ////////////////////////////////////////////////// @@ -322,11 +322,11 @@ namespace Sapphire::Network::Packets CFCommenceHandler = 0x0118, // updated 5.35 hotfix CFCancelHandler = 0x0332, // updated 5.35 hotfix - CFRegisterDuty = 0x0289, // updated 5.35 hotfix - CFRegisterRoulette = 0x0088, // updated 5.35 hotfix - PlayTimeHandler = 0x02A8, // updated 5.35 hotfix + CFRegisterDuty = 0x033C, // updated 5.45 hotfix + CFRegisterRoulette = 0x0121, // updated 5.45 hotfix + PlayTimeHandler = 0x0096, // updated 5.45 hotfix LogoutHandler = 0x0312, // updated 5.45 hotfix - CancelLogout = 0x03DB, // updated 5.35 hotfix + CancelLogout = 0x0307, // updated 5.45 hotfix CFDutyInfoHandler = 0x0078, // updated 4.2 @@ -384,17 +384,17 @@ namespace Sapphire::Network::Packets InventoryModifyHandler = 0x0110, // updated 5.45 hotfix - InventoryEquipRecommendedItems = 0x0116, // updated 5.35 hotfix + InventoryEquipRecommendedItems = 0x0186, // updated 5.45 hotfix - ReqPlaceHousingItem = 0x02AE, // updated 5.35 hotfix - BuildPresetHandler = 0x01C2, // updated 5.35 hotfix + ReqPlaceHousingItem = 0x0360, // updated 5.45 hotfix + BuildPresetHandler = 0x01D7, // updated 5.45 hotfix TalkEventHandler = 0x00C2, // updated 5.45 hotfix EmoteEventHandler = 0x03D5, // updated 5.45 hotfix WithinRangeEventHandler = 0x0171, // updated 5.45 hotfix OutOfRangeEventHandler = 0x019B, // updated 5.45 hotfix EnterTeriEventHandler = 0x027F, // updated 5.45 hotfix - ShopEventHandler = 0x01F6, // updated 5.35 hotfix + ShopEventHandler = 0x03D4, // updated 5.45 hotfix EventYieldHandler = 0x0230, // updated 5.45 hotfix ReturnEventHandler = 0x02AD, // updated 5.45 hotfix TradeReturnEventHandler = 0x00A7, // updated 5.45 hotfix @@ -405,12 +405,12 @@ namespace Sapphire::Network::Packets ReqEquipDisplayFlagsChange = 0x03B0, // updated 5.45 hotfix - LandRenameHandler = 0x0155, // updated 5.35 hotfix - HousingUpdateHouseGreeting = 0x02EA, // updated 5.35 hotfix - HousingUpdateObjectPosition = 0x00D5, // updated 5.35 hotfix - HousingEditExterior = 0x0098, // updated 5.35 hotfix + LandRenameHandler = 0x0187, // updated 5.45 hotfix + HousingUpdateHouseGreeting = 0x0367, // updated 5.45 hotfix + HousingUpdateObjectPosition = 0x0265, // updated 5.45 hotfix + HousingEditExterior = 0x0297, // updated 5.45 hotfix - SetSharedEstateSettings = 0x017B, // updated 5.0 + SetSharedEstateSettings = 0x0146, // updated 5.45 hotfix UpdatePositionInstance = 0x034E, // updated 5.45 hotfix From 2b8a25837e0ed92be518e8fedf14a9e630a94ed5 Mon Sep 17 00:00:00 2001 From: collett Date: Tue, 23 Feb 2021 05:20:06 +0900 Subject: [PATCH 11/11] a little bit more --- src/common/Network/PacketDef/Ipcs.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 9bff838d..bf6aa15f 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -272,7 +272,7 @@ namespace Sapphire::Network::Packets LandUpdateHouseName = 0x0215, // updated 5.45 hotfix - LandSetMap = 0x00D2, // updated 5.45 hotfix + LandSetMap = 0x0103, // updated 5.45 hotfix ////////////////////////////////////////////////// @@ -281,6 +281,7 @@ namespace Sapphire::Network::Packets PrepareZoning = 0x01EE, // updated 5.45 hotfix ActorGauge = 0x018E, // updated 5.45 hotfix + DutyGauge = 0x00D2, // updated 5.45 hotfix // daily quest info -> without them sent, login will take longer... DailyQuests = 0x02C4, // updated 5.45 hotfix @@ -378,7 +379,7 @@ namespace Sapphire::Network::Packets SkillHandler = 0x0388, // updated 5.45 hotfix GMCommand1 = 0x01E0, // updated 5.45 hotfix GMCommand2 = 0x0114, // updated 5.45 hotfix - AoESkillHandler = 0x030C, // updated 5.35 hotfix + AoESkillHandler = 0x03A0, // updated 5.45 hotfix UpdatePositionHandler = 0x031A, // updated 5.45 hotfix