1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-27 14:57:44 +00:00

update to 6.58h2

This commit is contained in:
collett 2024-06-11 04:29:44 +09:00
parent 7224363b2d
commit 1f946c9f2e
8 changed files with 925 additions and 410 deletions

View file

@ -25,8 +25,8 @@ namespace Sapphire::Common
const uint16_t MAX_PLAYER_LEVEL = 90; const uint16_t MAX_PLAYER_LEVEL = 90;
const uint8_t CURRENT_EXPANSION_ID = 4; const uint8_t CURRENT_EXPANSION_ID = 4;
const uint8_t CLASSJOB_TOTAL = 40; const uint8_t CLASSJOB_TOTAL = 42;
const uint8_t CLASSJOB_SLOTS = 30; const uint8_t CLASSJOB_SLOTS = 32;
const uint8_t TOWN_COUNT = 7; const uint8_t TOWN_COUNT = 7;

View file

@ -118,7 +118,15 @@ enum class BaseParam: uint8_t
//BeastReputationRank.exd //BeastReputationRank.exd
enum class BeastReputationRank: uint8_t enum class BeastReputationRank: uint8_t
{ {
None = 0, Neutral = 1, Recognized = 2, Friendly = 3, Trusted = 4, Respected = 5, Honored = 6, Sworn = 7, Allied = 8, None = 0,
Neutral = 1,
Recognized = 2,
Friendly = 3,
Trusted = 4,
Respected = 5,
Honored = 6,
Sworn = 7,
Allied = 8,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -190,6 +198,8 @@ enum class ClassJob: uint8_t
Dancer = 38, Dancer = 38,
Reaper = 39, Reaper = 39,
Sage = 40, Sage = 40,
//Viper = 41,
//Pictomancer = 42,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -227,13 +237,22 @@ enum class ContentType: uint8_t
UltimateRaids = 28, UltimateRaids = 28,
//5 = 29, //5 = 29,
VAndCDungeonFinder = 30, VAndCDungeonFinder = 30,
OceanFishing = 31,
TripleTriad = 32,
TheHunt = 33,
Fishing = 34,
GATE = 35,
//6 = 36,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
//EmoteCategory.exd //EmoteCategory.exd
enum class EmoteCategory: uint8_t enum class EmoteCategory: uint8_t
{ {
None = 0, General = 1, Special = 2, Expressions = 3, None = 0,
General = 1,
Special = 2,
Expressions = 3,
//1 = 4, //1 = 4,
}; };
@ -241,14 +260,21 @@ enum class EmoteCategory: uint8_t
//ExVersion.exd //ExVersion.exd
enum class ExVersion: uint8_t enum class ExVersion: uint8_t
{ {
ARealmReborn = 0, Heavensward = 1, Stormblood = 2, Shadowbringers = 3, Endwalker = 4, ARealmReborn = 0,
Heavensward = 1,
Stormblood = 2,
Shadowbringers = 3,
Endwalker = 4,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
//GrandCompany.exd //GrandCompany.exd
enum class GrandCompany: uint8_t enum class GrandCompany: uint8_t
{ {
None = 0, Maelstrom = 1, OrderoftheTwinAdder = 2, ImmortalFlames = 3, None = 0,
Maelstrom = 1,
OrderoftheTwinAdder = 2,
ImmortalFlames = 3,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -384,6 +410,8 @@ enum class ItemUICategory: uint8_t
DancersArm = 107, DancersArm = 107,
ReapersArm = 108, ReapersArm = 108,
SagesArm = 109, SagesArm = 109,
//VipersArm = 110,
//PictomancersArm = 111,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -469,7 +497,7 @@ enum class ItemSearchCategory: uint8_t
DarkKnightsArms = 76, DarkKnightsArms = 76,
MachinistsArms = 77, MachinistsArms = 77,
AstrologiansArms = 78, AstrologiansArms = 78,
AirshipAndSubmersibleComponents = 79, AirshipSubmersibleComponents = 79,
OrchestrionComponents = 80, OrchestrionComponents = 80,
GardeningItems = 81, GardeningItems = 81,
Paintings = 82, Paintings = 82,
@ -481,16 +509,16 @@ enum class ItemSearchCategory: uint8_t
ReapersArms = 88, ReapersArms = 88,
SagesArms = 89, SagesArms = 89,
RegistrableMiscellany = 90, RegistrableMiscellany = 90,
/*1 = 91, //1 = 91,
2 = 92, //2 = 92,
3 = 93, //3 = 93,
4 = 94, //4 = 94,
5 = 95, //5 = 95,
6 = 96, //6 = 96,
7 = 97, //7 = 97,
8 = 98, //8 = 98,
9 = 99, //9 = 99,
10 = 100,*/ //10 = 100,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -551,7 +579,15 @@ enum class OnlineStatus: uint8_t
//Race.exd //Race.exd
enum class Race: uint8_t enum class Race: uint8_t
{ {
None = 0, Hyur = 1, Elezen = 2, Lalafell = 3, Miqote = 4, Roegadyn = 5, AuRa = 6, Hrothgar = 7, Viera = 8, None = 0,
Hyur = 1,
Elezen = 2,
Lalafell = 3,
Miqote = 4,
Roegadyn = 5,
AuRa = 6,
Hrothgar = 7,
Viera = 8,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -581,11 +617,18 @@ enum class Tribe: uint8_t
//Town.exd //Town.exd
enum class Town: uint8_t enum class Town: uint8_t
{ {
Nowheresville = 0, LimsaLominsa = 1, Gridania = 2, Uldah = 3, Ishgard = 4, //= 5, Nowheresville = 0,
LimsaLominsa = 1,
Gridania = 2,
Uldah = 3,
Ishgard = 4,
// = 5,
//1 = 6, //1 = 6,
Kugane = 7, //2 = 8, Kugane = 7,
//2 = 8,
//3 = 9, //3 = 9,
Crystarium = 10, //4 = 11, Crystarium = 10,
//4 = 11,
OldSharlayan = 12, OldSharlayan = 12,
//5 = 13, //5 = 13,
}; };
@ -773,6 +816,8 @@ enum class Weather: uint8_t
DimensionalDisruption6 = 176, DimensionalDisruption6 = 176,
Pandaemonium3 = 177, Pandaemonium3 = 177,
Pandaemonium4 = 178, Pandaemonium4 = 178,
LyricalCatharsis = 179,
Vacuity3 = 180,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////

View file

@ -318,13 +318,13 @@ Sapphire::Data::Aetheryte::Aetheryte( uint32_t row_id, Sapphire::Data::ExdDataGe
level.push_back( exdData->getField< uint32_t >( row, 13 ) ); level.push_back( exdData->getField< uint32_t >( row, 13 ) );
level.push_back( exdData->getField< uint32_t >( row, 14 ) ); level.push_back( exdData->getField< uint32_t >( row, 14 ) );
isAetheryte = exdData->getField< bool >( row, 15 ); isAetheryte = exdData->getField< bool >( row, 15 );
aethernetGroup = exdData->getField< uint8_t >( row, 17 ); aethernetGroup = exdData->getField< uint8_t >( row, 18 );
invisible = exdData->getField< bool >( row, 18 ); invisible = exdData->getField< bool >( row, 19 );
requiredQuest = exdData->getField< uint32_t >( row, 19 ); requiredQuest = exdData->getField< uint32_t >( row, 20 );
map = exdData->getField< uint16_t >( row, 20 ); map = exdData->getField< uint16_t >( row, 21 );
aetherstreamX = exdData->getField< int16_t >( row, 21 ); aetherstreamX = exdData->getField< int16_t >( row, 22 );
aetherstreamY = exdData->getField< int16_t >( row, 22 ); aetherstreamY = exdData->getField< int16_t >( row, 23 );
order = exdData->getField< uint8_t >( row, 23 ); order = exdData->getField< uint8_t >( row, 24 );
} }
Sapphire::Data::AetheryteSystemDefine::AetheryteSystemDefine( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::AetheryteSystemDefine::AetheryteSystemDefine( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -968,17 +968,17 @@ Sapphire::Data::BeastTribe::BeastTribe( uint32_t row_id, Sapphire::Data::ExdData
icon = exdData->getField< uint32_t >( row, 4 ); icon = exdData->getField< uint32_t >( row, 4 );
maxRank = exdData->getField< uint8_t >( row, 5 ); maxRank = exdData->getField< uint8_t >( row, 5 );
expansion = exdData->getField< uint8_t >( row, 6 ); expansion = exdData->getField< uint8_t >( row, 6 );
currencyItem = exdData->getField< uint32_t >( row, 7 ); currencyItem = exdData->getField< uint32_t >( row, 8 );
displayOrder = exdData->getField< uint8_t >( row, 8 ); displayOrder = exdData->getField< uint8_t >( row, 9 );
name = exdData->getField< std::string >( row, 9 ); name = exdData->getField< std::string >( row, 10 );
adjective = exdData->getField< int8_t >( row, 10 ); adjective = exdData->getField< int8_t >( row, 11 );
plural = exdData->getField< std::string >( row, 11 ); plural = exdData->getField< std::string >( row, 12 );
possessivePronoun = exdData->getField< int8_t >( row, 12 ); possessivePronoun = exdData->getField< int8_t >( row, 13 );
startsWithVowel = exdData->getField< int8_t >( row, 13 ); startsWithVowel = exdData->getField< int8_t >( row, 14 );
pronoun = exdData->getField< int8_t >( row, 14 ); pronoun = exdData->getField< int8_t >( row, 15 );
article = exdData->getField< int8_t >( row, 15 ); article = exdData->getField< int8_t >( row, 16 );
dEF = exdData->getField< int8_t >( row, 16 ); dEF = exdData->getField< int8_t >( row, 17 );
nameRelation = exdData->getField< std::string >( row, 17 ); nameRelation = exdData->getField< std::string >( row, 18 );
} }
Sapphire::Data::Behavior::Behavior( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::Behavior::Behavior( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
@ -1297,7 +1297,7 @@ Sapphire::Data::BuddySkill::BuddySkill( uint32_t row_id, Sapphire::Data::ExdData
Sapphire::Data::Cabinet::Cabinet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::Cabinet::Cabinet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_CabinetDat.get_row( row_id ); auto row = exdData->m_CabinetDat.get_row( row_id );
item = exdData->getField< int32_t >( row, 0 ); item = exdData->getField< uint32_t >( row, 0 );
order = exdData->getField< uint16_t >( row, 1 ); order = exdData->getField< uint16_t >( row, 1 );
category = exdData->getField< uint8_t >( row, 2 ); category = exdData->getField< uint8_t >( row, 2 );
} }
@ -1306,8 +1306,9 @@ Sapphire::Data::CabinetCategory::CabinetCategory( uint32_t row_id, Sapphire::Dat
{ {
auto row = exdData->m_CabinetCategoryDat.get_row( row_id ); auto row = exdData->m_CabinetCategoryDat.get_row( row_id );
menuOrder = exdData->getField< uint8_t >( row, 0 ); menuOrder = exdData->getField< uint8_t >( row, 0 );
icon = exdData->getField< int32_t >( row, 1 ); hideOrder = exdData->getField< uint8_t >( row, 1 );
category = exdData->getField< int32_t >( row, 2 ); icon = exdData->getField< int32_t >( row, 2 );
category = exdData->getField< int32_t >( row, 3 );
} }
Sapphire::Data::Calendar::Calendar( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::Calendar::Calendar( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -1399,8 +1400,8 @@ Sapphire::Data::CharaCardBase::CharaCardBase( uint32_t row_id, Sapphire::Data::E
image = exdData->getField< int32_t >( row, 0 ); image = exdData->getField< int32_t >( row, 0 );
fontColor = exdData->getField< uint8_t >( row, 1 ); fontColor = exdData->getField< uint8_t >( row, 1 );
unlockCondition = exdData->getField< uint16_t >( row, 5 ); unlockCondition = exdData->getField< uint16_t >( row, 5 );
sortKey = exdData->getField< uint16_t >( row, 6 ); sortKey = exdData->getField< uint16_t >( row, 7 );
name = exdData->getField< std::string >( row, 7 ); name = exdData->getField< std::string >( row, 8 );
} }
Sapphire::Data::CharaCardDecoration::CharaCardDecoration( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::CharaCardDecoration::CharaCardDecoration( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -1409,8 +1410,13 @@ Sapphire::Data::CharaCardDecoration::CharaCardDecoration( uint32_t row_id, Sapph
category = exdData->getField< uint8_t >( row, 0 ); category = exdData->getField< uint8_t >( row, 0 );
image = exdData->getField< int32_t >( row, 2 ); image = exdData->getField< int32_t >( row, 2 );
unlockCondition = exdData->getField< uint16_t >( row, 4 ); unlockCondition = exdData->getField< uint16_t >( row, 4 );
sortKey = exdData->getField< uint16_t >( row, 5 ); sortKey = exdData->getField< uint16_t >( row, 6 );
name = exdData->getField< std::string >( row, 6 ); name = exdData->getField< std::string >( row, 7 );
}
Sapphire::Data::CharaCardDesignCategory::CharaCardDesignCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_CharaCardDesignCategoryDat.get_row( row_id );
} }
Sapphire::Data::CharaCardDesignPreset::CharaCardDesignPreset( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::CharaCardDesignPreset::CharaCardDesignPreset( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -1440,8 +1446,8 @@ Sapphire::Data::CharaCardHeader::CharaCardHeader( uint32_t row_id, Sapphire::Dat
bottomImage = exdData->getField< int32_t >( row, 1 ); bottomImage = exdData->getField< int32_t >( row, 1 );
fontColor = exdData->getField< uint8_t >( row, 2 ); fontColor = exdData->getField< uint8_t >( row, 2 );
unlockCondition = exdData->getField< uint16_t >( row, 6 ); unlockCondition = exdData->getField< uint16_t >( row, 6 );
sortKey = exdData->getField< uint8_t >( row, 7 ); sortKey = exdData->getField< uint8_t >( row, 8 );
name = exdData->getField< std::string >( row, 8 ); name = exdData->getField< std::string >( row, 9 );
} }
Sapphire::Data::CharaCardPlayStyle::CharaCardPlayStyle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::CharaCardPlayStyle::CharaCardPlayStyle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -2351,6 +2357,11 @@ Sapphire::Data::ContentFinderConditionTransient::ContentFinderConditionTransient
description = exdData->getField< std::string >( row, 0 ); description = exdData->getField< std::string >( row, 0 );
} }
Sapphire::Data::ContentFinderParamTable::ContentFinderParamTable( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_ContentFinderParamTableDat.get_row( row_id, subRow );
}
Sapphire::Data::ContentGauge::ContentGauge( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::ContentGauge::ContentGauge( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_ContentGaugeDat.get_row( row_id ); auto row = exdData->m_ContentGaugeDat.get_row( row_id );
@ -2376,6 +2387,11 @@ Sapphire::Data::ContentMemberType::ContentMemberType( uint32_t row_id, Sapphire:
rangedPerParty = exdData->getField< uint8_t >( row, 13 ); rangedPerParty = exdData->getField< uint8_t >( row, 13 );
} }
Sapphire::Data::ContentNpc::ContentNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_ContentNpcDat.get_row( row_id );
}
Sapphire::Data::ContentNpcTalk::ContentNpcTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::ContentNpcTalk::ContentNpcTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_ContentNpcTalkDat.get_row( row_id ); auto row = exdData->m_ContentNpcTalkDat.get_row( row_id );
@ -2409,16 +2425,16 @@ Sapphire::Data::ContentRoulette::ContentRoulette( uint32_t row_id, Sapphire::Dat
isPvP = exdData->getField< bool >( row, 10 ); isPvP = exdData->getField< bool >( row, 10 );
requiredLevel = exdData->getField< uint8_t >( row, 11 ); requiredLevel = exdData->getField< uint8_t >( row, 11 );
itemLevelRequired = exdData->getField< uint16_t >( row, 13 ); itemLevelRequired = exdData->getField< uint16_t >( row, 13 );
icon = exdData->getField< uint32_t >( row, 15 ); icon = exdData->getField< uint32_t >( row, 16 );
contentRouletteRoleBonus = exdData->getField< uint8_t >( row, 16 ); contentRouletteRoleBonus = exdData->getField< uint8_t >( row, 17 );
rewardTomeA = exdData->getField< uint16_t >( row, 17 ); rewardTomeA = exdData->getField< uint16_t >( row, 18 );
rewardTomeB = exdData->getField< uint16_t >( row, 18 ); rewardTomeB = exdData->getField< uint16_t >( row, 19 );
rewardTomeC = exdData->getField< uint16_t >( row, 19 ); rewardTomeC = exdData->getField< uint16_t >( row, 20 );
sortKey = exdData->getField< uint8_t >( row, 23 ); sortKey = exdData->getField< uint8_t >( row, 24 );
contentMemberType = exdData->getField< uint8_t >( row, 25 ); contentMemberType = exdData->getField< uint8_t >( row, 26 );
requireAllDuties = exdData->getField< bool >( row, 36 ); requireAllDuties = exdData->getField< bool >( row, 37 );
contentRouletteOpenRule = exdData->getField< uint8_t >( row, 38 ); contentRouletteOpenRule = exdData->getField< uint8_t >( row, 39 );
instanceContent = exdData->getField< uint16_t >( row, 39 ); instanceContent = exdData->getField< uint16_t >( row, 40 );
} }
Sapphire::Data::ContentRouletteOpenRule::ContentRouletteOpenRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::ContentRouletteOpenRule::ContentRouletteOpenRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -2456,16 +2472,16 @@ Sapphire::Data::ContentsNote::ContentsNote( uint32_t row_id, Sapphire::Data::Exd
Sapphire::Data::ContentsTutorial::ContentsTutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::ContentsTutorial::ContentsTutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_ContentsTutorialDat.get_row( row_id ); auto row = exdData->m_ContentsTutorialDat.get_row( row_id );
name = exdData->getField< std::string >( row, 0 ); page.push_back( exdData->getField< int32_t >( row, 0 ) );
description = exdData->getField< std::string >( row, 1 ); page.push_back( exdData->getField< int32_t >( row, 1 ) );
page.push_back( exdData->getField< int32_t >( row, 2 ) ); 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, 3 ) );
page.push_back( exdData->getField< int32_t >( row, 4 ) ); 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, 5 ) );
page.push_back( exdData->getField< int32_t >( row, 6 ) ); 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, 7 ) );
page.push_back( exdData->getField< int32_t >( row, 8 ) ); name = exdData->getField< std::string >( row, 8 );
page.push_back( exdData->getField< int32_t >( row, 9 ) ); description = exdData->getField< std::string >( row, 9 );
} }
Sapphire::Data::ContentsTutorialPage::ContentsTutorialPage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::ContentsTutorialPage::ContentsTutorialPage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -2596,6 +2612,41 @@ Sapphire::Data::CreditListText::CreditListText( uint32_t row_id, Sapphire::Data:
name = exdData->getField< std::string >( row, 0 ); name = exdData->getField< std::string >( row, 0 );
} }
Sapphire::Data::CSBonusContent::CSBonusContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_CSBonusContentDat.get_row( row_id );
}
Sapphire::Data::CSBonusContentIdentifier::CSBonusContentIdentifier( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_CSBonusContentIdentifierDat.get_row( row_id );
}
Sapphire::Data::CSBonusContentType::CSBonusContentType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_CSBonusContentTypeDat.get_row( row_id );
}
Sapphire::Data::CSBonusMission::CSBonusMission( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_CSBonusMissionDat.get_row( row_id, subRow );
}
Sapphire::Data::CSBonusMissionType::CSBonusMissionType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_CSBonusMissionTypeDat.get_row( row_id );
}
Sapphire::Data::CSBonusSeason::CSBonusSeason( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_CSBonusSeasonDat.get_row( row_id );
}
Sapphire::Data::CSBonusTextData::CSBonusTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_CSBonusTextDataDat.get_row( row_id );
}
Sapphire::Data::CustomTalk::CustomTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::CustomTalk::CustomTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_CustomTalkDat.get_row( row_id ); auto row = exdData->m_CustomTalkDat.get_row( row_id );
@ -3347,6 +3398,12 @@ Sapphire::Data::EurekaAethernet::EurekaAethernet( uint32_t row_id, Sapphire::Dat
location = exdData->getField< uint16_t >( row, 0 ); location = exdData->getField< uint16_t >( row, 0 );
} }
Sapphire::Data::EurekaDungeonPortal::EurekaDungeonPortal( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_EurekaDungeonPortalDat.get_row( row_id, subRow );
levelId = exdData->getField< uint32_t >( row, 0 );
}
Sapphire::Data::EurekaGrowData::EurekaGrowData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::EurekaGrowData::EurekaGrowData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_EurekaGrowDataDat.get_row( row_id ); auto row = exdData->m_EurekaGrowDataDat.get_row( row_id );
@ -3479,7 +3536,7 @@ Sapphire::Data::EventIconPriority::EventIconPriority( uint32_t row_id, Sapphire:
Sapphire::Data::EventIconPriorityPair::EventIconPriorityPair( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::EventIconPriorityPair::EventIconPriorityPair( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_EventIconPriorityPairDat.get_row( row_id ); auto row = exdData->m_EventIconPriorityPairDat.get_row( row_id );
icon1 = exdData->getField< uint32_t >( row, 0 ); icon = exdData->getField< uint32_t >( row, 0 );
} }
Sapphire::Data::EventIconType::EventIconType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::EventIconType::EventIconType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -3841,6 +3898,16 @@ Sapphire::Data::Festival::Festival( uint32_t row_id, Sapphire::Data::ExdDataGene
name = exdData->getField< std::string >( row, 0 ); name = exdData->getField< std::string >( row, 0 );
} }
Sapphire::Data::FGSAddon::FGSAddon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_FGSAddonDat.get_row( row_id );
}
Sapphire::Data::FGSStageUI::FGSStageUI( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_FGSStageUIDat.get_row( row_id );
}
Sapphire::Data::FieldMarker::FieldMarker( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::FieldMarker::FieldMarker( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_FieldMarkerDat.get_row( row_id ); auto row = exdData->m_FieldMarkerDat.get_row( row_id );
@ -3920,12 +3987,12 @@ Sapphire::Data::FishParameter::FishParameter( uint32_t row_id, Sapphire::Data::E
item = exdData->getField< int32_t >( row, 1 ); item = exdData->getField< int32_t >( row, 1 );
gatheringItemLevel = exdData->getField< uint16_t >( row, 2 ); gatheringItemLevel = exdData->getField< uint16_t >( row, 2 );
oceanStars = exdData->getField< uint8_t >( row, 3 ); oceanStars = exdData->getField< uint8_t >( row, 3 );
isHidden = exdData->getField< bool >( row, 4 ); isHidden = exdData->getField< bool >( row, 5 );
fishingRecordType = exdData->getField< uint8_t >( row, 5 ); fishingRecordType = exdData->getField< uint8_t >( row, 6 );
fishingSpot = exdData->getField< uint16_t >( row, 6 ); fishingSpot = exdData->getField< uint16_t >( row, 7 );
gatheringSubCategory = exdData->getField< uint16_t >( row, 7 ); gatheringSubCategory = exdData->getField< uint16_t >( row, 8 );
isInLog = exdData->getField< bool >( row, 8 ); isInLog = exdData->getField< bool >( row, 9 );
achievementCredit = exdData->getField< uint32_t >( row, 9 ); achievementCredit = exdData->getField< uint32_t >( row, 10 );
} }
Sapphire::Data::FittingShop::FittingShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::FittingShop::FittingShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -4765,6 +4832,11 @@ Sapphire::Data::GFateRideShooting::GFateRideShooting( uint32_t row_id, Sapphire:
contentEntry = exdData->getField< uint32_t >( row, 0 ); contentEntry = exdData->getField< uint32_t >( row, 0 );
} }
Sapphire::Data::GFateType::GFateType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_GFateTypeDat.get_row( row_id );
}
Sapphire::Data::GilShop::GilShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::GilShop::GilShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_GilShopDat.get_row( row_id ); auto row = exdData->m_GilShopDat.get_row( row_id );
@ -4799,7 +4871,7 @@ Sapphire::Data::GimmickJump::GimmickJump( uint32_t row_id, Sapphire::Data::ExdDa
{ {
auto row = exdData->m_GimmickJumpDat.get_row( row_id ); auto row = exdData->m_GimmickJumpDat.get_row( row_id );
fallDamage = exdData->getField< uint16_t >( row, 0 ); fallDamage = exdData->getField< uint16_t >( row, 0 );
height = exdData->getField< int8_t >( row, 1 ); height = exdData->getField< uint16_t >( row, 1 );
loopMotion = exdData->getField< uint32_t >( row, 2 ); loopMotion = exdData->getField< uint32_t >( row, 2 );
endMotion = exdData->getField< uint32_t >( row, 3 ); endMotion = exdData->getField< uint32_t >( row, 3 );
startClient = exdData->getField< bool >( row, 4 ); startClient = exdData->getField< bool >( row, 4 );
@ -4912,9 +4984,11 @@ Sapphire::Data::GuildleveAssignment::GuildleveAssignment( uint32_t row_id, Sapph
{ {
auto row = exdData->m_GuildleveAssignmentDat.get_row( row_id ); auto row = exdData->m_GuildleveAssignmentDat.get_row( row_id );
type = exdData->getField< std::string >( row, 0 ); type = exdData->getField< std::string >( row, 0 );
typeId = exdData->getField< uint8_t >( row, 1 );
assignmentTalk = exdData->getField< uint32_t >( row, 2 ); assignmentTalk = exdData->getField< uint32_t >( row, 2 );
quest.push_back( exdData->getField< uint32_t >( row, 3 ) ); quest.push_back( exdData->getField< uint32_t >( row, 3 ) );
quest.push_back( exdData->getField< uint32_t >( row, 4 ) ); quest.push_back( exdData->getField< uint32_t >( row, 4 ) );
grandCompanyRank = exdData->getField< uint8_t >( row, 10 );
} }
Sapphire::Data::GuildleveAssignmentCategory::GuildleveAssignmentCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::GuildleveAssignmentCategory::GuildleveAssignmentCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -5031,7 +5105,6 @@ Sapphire::Data::HousingFurniture::HousingFurniture( uint32_t row_id, Sapphire::D
customTalk = exdData->getField< uint32_t >( row, 6 ); customTalk = exdData->getField< uint32_t >( row, 6 );
item = exdData->getField< uint32_t >( row, 7 ); item = exdData->getField< uint32_t >( row, 7 );
destroyOnRemoval = exdData->getField< bool >( row, 8 ); destroyOnRemoval = exdData->getField< bool >( row, 8 );
tooltip = exdData->getField< bool >( row, 9 );
} }
Sapphire::Data::HousingLandSet::HousingLandSet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::HousingLandSet::HousingLandSet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -6554,6 +6627,7 @@ Sapphire::Data::Item::Item( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e
alwaysCollectable = exdData->getField< bool >( row, 38 ); alwaysCollectable = exdData->getField< bool >( row, 38 );
aetherialReduce = exdData->getField< uint16_t >( row, 39 ); aetherialReduce = exdData->getField< uint16_t >( row, 39 );
levelEquip = exdData->getField< uint8_t >( row, 40 ); levelEquip = exdData->getField< uint8_t >( row, 40 );
requiredPvpRank = exdData->getField< uint8_t >( row, 41 );
equipRestriction = exdData->getField< uint8_t >( row, 42 ); equipRestriction = exdData->getField< uint8_t >( row, 42 );
classJobCategory = exdData->getField< uint8_t >( row, 43 ); classJobCategory = exdData->getField< uint8_t >( row, 43 );
grandCompany = exdData->getField< uint8_t >( row, 44 ); grandCompany = exdData->getField< uint8_t >( row, 44 );
@ -6577,6 +6651,11 @@ Sapphire::Data::Item::Item( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e
isPvP = exdData->getField< bool >( row, 88 ); isPvP = exdData->getField< bool >( row, 88 );
subStatCategory = exdData->getField< uint8_t >( row, 89 ); subStatCategory = exdData->getField< uint8_t >( row, 89 );
isGlamourous = exdData->getField< bool >( row, 90 ); isGlamourous = exdData->getField< bool >( row, 90 );
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 );
}
} }
Sapphire::Data::ItemAction::ItemAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::ItemAction::ItemAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -6808,6 +6887,11 @@ Sapphire::Data::JournalSection::JournalSection( uint32_t row_id, Sapphire::Data:
name = exdData->getField< std::string >( row, 0 ); name = exdData->getField< std::string >( row, 0 );
} }
Sapphire::Data::KineDriverOffGroup::KineDriverOffGroup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_KineDriverOffGroupDat.get_row( row_id );
}
Sapphire::Data::Knockback::Knockback( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::Knockback::Knockback( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_KnockbackDat.get_row( row_id ); auto row = exdData->m_KnockbackDat.get_row( row_id );
@ -7295,11 +7379,18 @@ Sapphire::Data::MinionSkillType::MinionSkillType( uint32_t row_id, Sapphire::Dat
name = exdData->getField< std::string >( row, 0 ); name = exdData->getField< std::string >( row, 0 );
} }
Sapphire::Data::MirageStoreSetItem::MirageStoreSetItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MirageStoreSetItemDat.get_row( row_id );
}
Sapphire::Data::MJIAnimals::MJIAnimals( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJIAnimals::MJIAnimals( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_MJIAnimalsDat.get_row( row_id ); auto row = exdData->m_MJIAnimalsDat.get_row( row_id );
bNpcBase = exdData->getField< uint32_t >( row, 0 ); bNpcBase = exdData->getField< uint32_t >( row, 0 );
size = exdData->getField< uint8_t >( row, 1 ); size = exdData->getField< uint8_t >( row, 1 );
rarity = exdData->getField< uint8_t >( row, 2 );
sort = exdData->getField< uint8_t >( row, 3 );
reward.push_back( exdData->getField< uint32_t >( row, 4 ) ); reward.push_back( exdData->getField< uint32_t >( row, 4 ) );
reward.push_back( exdData->getField< uint32_t >( row, 5 ) ); reward.push_back( exdData->getField< uint32_t >( row, 5 ) );
icon = exdData->getField< int32_t >( row, 6 ); icon = exdData->getField< int32_t >( row, 6 );
@ -7435,6 +7526,16 @@ Sapphire::Data::MJICraftworksPopularity::MJICraftworksPopularity( uint32_t row_i
popularity.push_back( exdData->getField< uint8_t >( row, 78 ) ); popularity.push_back( exdData->getField< uint8_t >( row, 78 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 79 ) ); popularity.push_back( exdData->getField< uint8_t >( row, 79 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 80 ) ); popularity.push_back( exdData->getField< uint8_t >( row, 80 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 81 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 82 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 83 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 84 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 85 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 86 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 87 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 88 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 89 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 90 ) );
} }
Sapphire::Data::MJICraftworksPopularityType::MJICraftworksPopularityType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJICraftworksPopularityType::MJICraftworksPopularityType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -7472,7 +7573,11 @@ Sapphire::Data::MJICropSeed::MJICropSeed( uint32_t row_id, Sapphire::Data::ExdDa
Sapphire::Data::MJIDisposalShopItem::MJIDisposalShopItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJIDisposalShopItem::MJIDisposalShopItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_MJIDisposalShopItemDat.get_row( row_id ); auto row = exdData->m_MJIDisposalShopItemDat.get_row( row_id );
item = exdData->getField< uint8_t >( row, 0 );
currency = exdData->getField< uint8_t >( row, 1 );
count = exdData->getField< uint16_t >( row, 2 );
category = exdData->getField< uint8_t >( row, 3 ); category = exdData->getField< uint8_t >( row, 3 );
sort = exdData->getField< uint8_t >( row, 4 );
} }
Sapphire::Data::MJIDisposalShopUICategory::MJIDisposalShopUICategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJIDisposalShopUICategory::MJIDisposalShopUICategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -7509,9 +7614,11 @@ Sapphire::Data::MJIGatheringItem::MJIGatheringItem( uint32_t row_id, Sapphire::D
auto row = exdData->m_MJIGatheringItemDat.get_row( row_id ); auto row = exdData->m_MJIGatheringItemDat.get_row( row_id );
item = exdData->getField< uint32_t >( row, 0 ); item = exdData->getField< uint32_t >( row, 0 );
sort = exdData->getField< uint8_t >( row, 1 ); sort = exdData->getField< uint8_t >( row, 1 );
tool = exdData->getField< uint8_t >( row, 2 );
x = exdData->getField< int16_t >( row, 3 ); x = exdData->getField< int16_t >( row, 3 );
y = exdData->getField< int16_t >( row, 4 ); y = exdData->getField< int16_t >( row, 4 );
radius = exdData->getField< uint16_t >( row, 5 ); radius = exdData->getField< uint16_t >( row, 5 );
map = exdData->getField< uint8_t >( row, 6 );
} }
Sapphire::Data::MJIGatheringObject::MJIGatheringObject( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJIGatheringObject::MJIGatheringObject( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -7525,6 +7632,7 @@ Sapphire::Data::MJIGatheringObject::MJIGatheringObject( uint32_t row_id, Sapphir
Sapphire::Data::MJIGatheringTool::MJIGatheringTool( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJIGatheringTool::MJIGatheringTool( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_MJIGatheringToolDat.get_row( row_id ); auto row = exdData->m_MJIGatheringToolDat.get_row( row_id );
item = exdData->getField< uint8_t >( row, 0 );
} }
Sapphire::Data::MJIHudMode::MJIHudMode( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJIHudMode::MJIHudMode( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -7548,41 +7656,45 @@ Sapphire::Data::MJIItemPouch::MJIItemPouch( uint32_t row_id, Sapphire::Data::Exd
item = exdData->getField< uint32_t >( row, 0 ); item = exdData->getField< uint32_t >( row, 0 );
category = exdData->getField< int32_t >( row, 1 ); category = exdData->getField< int32_t >( row, 1 );
crop = exdData->getField< uint8_t >( row, 2 ); crop = exdData->getField< uint8_t >( row, 2 );
sort = exdData->getField< uint8_t >( row, 3 );
} }
Sapphire::Data::MJIKeyItem::MJIKeyItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJIKeyItem::MJIKeyItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_MJIKeyItemDat.get_row( row_id ); auto row = exdData->m_MJIKeyItemDat.get_row( row_id );
item = exdData->getField< int32_t >( row, 0 ); item = exdData->getField< int32_t >( row, 0 );
sort = exdData->getField< uint8_t >( row, 1 );
} }
Sapphire::Data::MJILandmark::MJILandmark( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJILandmark::MJILandmark( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_MJILandmarkDat.get_row( row_id ); auto row = exdData->m_MJILandmarkDat.get_row( row_id );
sGB0 = exdData->getField< uint16_t >( row, 3 ); sGB0 = exdData->getField< uint16_t >( row, 3 );
sGB1 = exdData->getField< uint16_t >( row, 5 ); sGB1 = exdData->getField< uint16_t >( row, 4 );
sGB2 = exdData->getField< uint16_t >( row, 7 ); sGB2 = exdData->getField< uint16_t >( row, 5 );
sGB3 = exdData->getField< uint16_t >( row, 9 ); sGB3 = exdData->getField< uint16_t >( row, 7 );
sGB4 = exdData->getField< uint16_t >( row, 11 ); sGB4 = exdData->getField< uint16_t >( row, 9 );
material.push_back( exdData->getField< uint16_t >( row, 18 ) ); sGB5 = exdData->getField< uint16_t >( row, 11 );
material.push_back( exdData->getField< uint16_t >( row, 19 ) ); sGB6 = exdData->getField< uint16_t >( row, 13 );
material.push_back( exdData->getField< uint16_t >( row, 20 ) ); material.push_back( exdData->getField< uint16_t >( row, 20 ) );
material.push_back( exdData->getField< uint16_t >( row, 21 ) ); material.push_back( exdData->getField< uint16_t >( row, 21 ) );
material.push_back( exdData->getField< uint16_t >( row, 22 ) ); material.push_back( exdData->getField< uint16_t >( row, 22 ) );
amount.push_back( exdData->getField< uint8_t >( row, 23 ) ); material.push_back( exdData->getField< uint16_t >( row, 23 ) );
amount.push_back( exdData->getField< uint8_t >( row, 24 ) ); material.push_back( exdData->getField< uint16_t >( row, 24 ) );
amount.push_back( exdData->getField< uint8_t >( row, 25 ) ); amount.push_back( exdData->getField< uint8_t >( row, 25 ) );
amount.push_back( exdData->getField< uint8_t >( row, 26 ) ); amount.push_back( exdData->getField< uint8_t >( row, 26 ) );
amount.push_back( exdData->getField< uint8_t >( row, 27 ) ); amount.push_back( exdData->getField< uint8_t >( row, 27 ) );
name = exdData->getField< uint32_t >( row, 28 ); amount.push_back( exdData->getField< uint8_t >( row, 28 ) );
icon = exdData->getField< uint32_t >( row, 30 ); amount.push_back( exdData->getField< uint8_t >( row, 29 ) );
name = exdData->getField< uint32_t >( row, 30 );
icon = exdData->getField< uint32_t >( row, 32 );
} }
Sapphire::Data::MJILandmarkPlace::MJILandmarkPlace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJILandmarkPlace::MJILandmarkPlace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_MJILandmarkPlaceDat.get_row( row_id ); auto row = exdData->m_MJILandmarkPlaceDat.get_row( row_id );
name = exdData->getField< uint32_t >( row, 1 ); name = exdData->getField< uint32_t >( row, 1 );
sGB = exdData->getField< uint32_t >( row, 2 ); sGB = exdData->getField< uint32_t >( row, 3 );
} }
Sapphire::Data::MJILivelyActor::MJILivelyActor( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJILivelyActor::MJILivelyActor( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
@ -7613,6 +7725,11 @@ Sapphire::Data::MJIName::MJIName( uint32_t row_id, Sapphire::Data::ExdDataGenera
article = exdData->getField< int8_t >( row, 7 ); article = exdData->getField< int8_t >( row, 7 );
} }
Sapphire::Data::MJINekomimiRequest::MJINekomimiRequest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MJINekomimiRequestDat.get_row( row_id );
}
Sapphire::Data::MJIProgress::MJIProgress( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJIProgress::MJIProgress( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_MJIProgressDat.get_row( row_id ); auto row = exdData->m_MJIProgressDat.get_row( row_id );
@ -8041,6 +8158,21 @@ Sapphire::Data::NotoriousMonster::NotoriousMonster( uint32_t row_id, Sapphire::D
bNpcName = exdData->getField< uint32_t >( row, 2 ); bNpcName = exdData->getField< uint32_t >( row, 2 );
} }
Sapphire::Data::NotoriousMonsterTerritory::NotoriousMonsterTerritory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_NotoriousMonsterTerritoryDat.get_row( row_id );
notoriousMonsters.push_back( exdData->getField< uint16_t >( row, 0 ) );
notoriousMonsters.push_back( exdData->getField< uint16_t >( row, 1 ) );
notoriousMonsters.push_back( exdData->getField< uint16_t >( row, 2 ) );
notoriousMonsters.push_back( exdData->getField< uint16_t >( row, 3 ) );
notoriousMonsters.push_back( exdData->getField< uint16_t >( row, 4 ) );
notoriousMonsters.push_back( exdData->getField< uint16_t >( row, 5 ) );
notoriousMonsters.push_back( exdData->getField< uint16_t >( row, 6 ) );
notoriousMonsters.push_back( exdData->getField< uint16_t >( row, 7 ) );
notoriousMonsters.push_back( exdData->getField< uint16_t >( row, 8 ) );
notoriousMonsters.push_back( exdData->getField< uint16_t >( row, 9 ) );
}
Sapphire::Data::NpcEquip::NpcEquip( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::NpcEquip::NpcEquip( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_NpcEquipDat.get_row( row_id ); auto row = exdData->m_NpcEquipDat.get_row( row_id );
@ -8572,12 +8704,15 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
classJobLevel1 = exdData->getField< uint16_t >( row, 7 ); classJobLevel1 = exdData->getField< uint16_t >( row, 7 );
previousQuestJoin = exdData->getField< uint8_t >( row, 8 ); previousQuestJoin = exdData->getField< uint8_t >( row, 8 );
previousQuest.push_back( exdData->getField< uint32_t >( row, 9 ) ); previousQuest.push_back( exdData->getField< uint32_t >( row, 9 ) );
previousQuest0Sequence = exdData->getField< uint8_t >( row, 10 ); previousQuest.push_back( exdData->getField< uint32_t >( row, 10 ) );
previousQuest.push_back( exdData->getField< uint32_t >( row, 11 ) ); previousQuest.push_back( exdData->getField< uint32_t >( row, 11 ) );
previousQuest.push_back( exdData->getField< uint32_t >( row, 12 ) );
questLockJoin = exdData->getField< uint8_t >( row, 13 ); questLockJoin = exdData->getField< uint8_t >( row, 13 );
questLock.push_back( exdData->getField< uint32_t >( row, 14 ) ); questLock.push_back( exdData->getField< uint32_t >( row, 14 ) );
questLock.push_back( exdData->getField< uint32_t >( row, 15 ) ); questLock.push_back( exdData->getField< uint32_t >( row, 15 ) );
header = exdData->getField< uint16_t >( row, 16 ); header = exdData->getField< uint16_t >( row, 16 );
startTown = exdData->getField< uint8_t >( row, 17 );
classJobUnlockFlag = exdData->getField< uint8_t >( row, 18 );
classJobUnlock = exdData->getField< uint8_t >( row, 19 ); classJobUnlock = exdData->getField< uint8_t >( row, 19 );
grandCompany = exdData->getField< uint8_t >( row, 20 ); grandCompany = exdData->getField< uint8_t >( row, 20 );
grandCompanyRank = exdData->getField< uint8_t >( row, 21 ); grandCompanyRank = exdData->getField< uint8_t >( row, 21 );
@ -10370,6 +10505,9 @@ Sapphire::Data::QuestEventAreaEntranceInfo::QuestEventAreaEntranceInfo( uint32_t
Sapphire::Data::QuestLinkMarker::QuestLinkMarker( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::QuestLinkMarker::QuestLinkMarker( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_QuestLinkMarkerDat.get_row( row_id, subRow ); auto row = exdData->m_QuestLinkMarkerDat.get_row( row_id, subRow );
sourceMap = exdData->getField< uint32_t >( row, 0 );
level = exdData->getField< uint32_t >( row, 1 );
targetMap = exdData->getField< uint32_t >( row, 2 );
} }
Sapphire::Data::QuestLinkMarkerIcon::QuestLinkMarkerIcon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::QuestLinkMarkerIcon::QuestLinkMarkerIcon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -11233,9 +11371,9 @@ Sapphire::Data::SpearfishingItem::SpearfishingItem( uint32_t row_id, Sapphire::D
description = exdData->getField< std::string >( row, 0 ); description = exdData->getField< std::string >( row, 0 );
item = exdData->getField< int32_t >( row, 1 ); item = exdData->getField< int32_t >( row, 1 );
gatheringItemLevel = exdData->getField< uint16_t >( row, 2 ); gatheringItemLevel = exdData->getField< uint16_t >( row, 2 );
fishingRecordType = exdData->getField< uint8_t >( row, 4 ); fishingRecordType = exdData->getField< uint8_t >( row, 5 );
territoryType = exdData->getField< uint16_t >( row, 5 ); territoryType = exdData->getField< uint16_t >( row, 6 );
isVisible = exdData->getField< bool >( row, 7 ); isVisible = exdData->getField< bool >( row, 8 );
} }
Sapphire::Data::SpearfishingNotebook::SpearfishingNotebook( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::SpearfishingNotebook::SpearfishingNotebook( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -11327,130 +11465,130 @@ Sapphire::Data::SpecialShop::SpecialShop( uint32_t row_id, Sapphire::Data::ExdDa
questItem.push_back( exdData->getField< int32_t >( row, 1258 ) ); questItem.push_back( exdData->getField< int32_t >( row, 1258 ) );
questItem.push_back( exdData->getField< int32_t >( row, 1259 ) ); questItem.push_back( exdData->getField< int32_t >( row, 1259 ) );
questItem.push_back( exdData->getField< int32_t >( row, 1260 ) ); questItem.push_back( exdData->getField< int32_t >( row, 1260 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1441 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1741 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1442 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1742 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1443 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1743 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1444 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1744 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1445 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1745 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1446 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1746 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1447 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1747 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1448 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1748 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1449 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1749 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1450 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1750 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1451 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1751 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1452 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1752 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1453 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1753 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1454 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1754 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1455 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1755 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1456 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1756 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1457 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1757 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1458 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1758 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1459 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1759 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1460 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1760 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1461 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1761 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1462 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1762 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1463 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1763 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1464 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1764 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1465 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1765 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1466 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1766 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1467 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1767 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1468 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1768 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1469 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1769 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1470 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1770 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1471 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1771 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1472 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1772 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1473 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1773 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1474 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1774 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1475 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1775 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1476 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1776 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1477 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1777 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1478 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1778 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1479 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1779 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1480 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1780 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1481 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1781 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1482 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1782 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1483 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1783 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1484 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1784 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1485 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1785 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1486 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1786 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1487 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1787 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1488 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1788 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1489 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1789 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1490 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1790 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1491 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1791 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1492 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1792 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1493 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1793 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1494 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1794 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1495 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1795 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1496 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1796 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1497 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1797 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1498 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1798 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1499 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1799 ) );
achievementUnlock.push_back( exdData->getField< int32_t >( row, 1500 ) ); achievementUnlock.push_back( exdData->getField< int32_t >( row, 1800 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1561 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1981 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1562 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1982 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1563 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1983 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1564 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1984 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1565 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1985 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1566 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1986 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1567 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1987 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1568 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1988 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1569 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1989 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1570 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1990 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1571 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1991 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1572 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1992 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1573 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1993 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1574 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1994 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1575 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1995 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1576 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1996 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1577 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1997 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1578 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1998 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1579 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 1999 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1580 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2000 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1581 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2001 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1582 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2002 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1583 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2003 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1584 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2004 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1585 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2005 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1586 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2006 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1587 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2007 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1588 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2008 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1589 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2009 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1590 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2010 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1591 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2011 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1592 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2012 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1593 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2013 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1594 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2014 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1595 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2015 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1596 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2016 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1597 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2017 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1598 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2018 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1599 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2019 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1600 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2020 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1601 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2021 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1602 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2022 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1603 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2023 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1604 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2024 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1605 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2025 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1606 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2026 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1607 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2027 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1608 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2028 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1609 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2029 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1610 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2030 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1611 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2031 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1612 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2032 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1613 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2033 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1614 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2034 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1615 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2035 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1616 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2036 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1617 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2037 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1618 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2038 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1619 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2039 ) );
patchNumber.push_back( exdData->getField< uint16_t >( row, 1620 ) ); patchNumber.push_back( exdData->getField< uint16_t >( row, 2040 ) );
useCurrencyType = exdData->getField< uint8_t >( row, 1621 ); useCurrencyType = exdData->getField< uint8_t >( row, 2041 );
questUnlock = exdData->getField< uint32_t >( row, 1622 ); questUnlock = exdData->getField< uint32_t >( row, 2042 );
completeText = exdData->getField< int32_t >( row, 1623 ); completeText = exdData->getField< int32_t >( row, 2043 );
notCompleteText = exdData->getField< int32_t >( row, 1624 ); notCompleteText = exdData->getField< int32_t >( row, 2044 );
} }
Sapphire::Data::SpecialShopItemCategory::SpecialShopItemCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::SpecialShopItemCategory::SpecialShopItemCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -13495,6 +13633,7 @@ Sapphire::Data::TerritoryType::TerritoryType( uint32_t row_id, Sapphire::Data::E
isPvpZone = exdData->getField< bool >( row, 28 ); isPvpZone = exdData->getField< bool >( row, 28 );
exVersion = exdData->getField< uint8_t >( row, 29 ); exVersion = exdData->getField< uint8_t >( row, 29 );
mountSpeed = exdData->getField< uint8_t >( row, 33 ); mountSpeed = exdData->getField< uint8_t >( row, 33 );
notoriousMonsterTerritory = exdData->getField< uint16_t >( row, 42 );
} }
Sapphire::Data::TerritoryTypeTelepo::TerritoryTypeTelepo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::TerritoryTypeTelepo::TerritoryTypeTelepo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -13873,6 +14012,11 @@ Sapphire::Data::UIConst::UIConst( uint32_t row_id, Sapphire::Data::ExdDataGenera
auto row = exdData->m_UIConstDat.get_row( row_id ); auto row = exdData->m_UIConstDat.get_row( row_id );
} }
Sapphire::Data::UILevelLookup::UILevelLookup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_UILevelLookupDat.get_row( row_id );
}
Sapphire::Data::VaseFlower::VaseFlower( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::VaseFlower::VaseFlower( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_VaseFlowerDat.get_row( row_id ); auto row = exdData->m_VaseFlowerDat.get_row( row_id );
@ -13952,7 +14096,7 @@ Sapphire::Data::WarpCondition::WarpCondition( uint32_t row_id, Sapphire::Data::E
completeParam = exdData->getField< uint8_t >( row, 1 ); completeParam = exdData->getField< uint8_t >( row, 1 );
requiredQuest1 = exdData->getField< uint32_t >( row, 2 ); requiredQuest1 = exdData->getField< uint32_t >( row, 2 );
requiredQuest2 = exdData->getField< uint32_t >( row, 3 ); requiredQuest2 = exdData->getField< uint32_t >( row, 3 );
dRequiredQuest3 = exdData->getField< uint32_t >( row, 4 ); requiredQuest3 = exdData->getField< uint32_t >( row, 4 );
requiredQuest4 = exdData->getField< uint32_t >( row, 5 ); requiredQuest4 = exdData->getField< uint32_t >( row, 5 );
questReward = exdData->getField< uint16_t >( row, 6 ); questReward = exdData->getField< uint16_t >( row, 6 );
classLevel = exdData->getField< uint16_t >( row, 7 ); classLevel = exdData->getField< uint16_t >( row, 7 );
@ -14300,6 +14444,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_ChannelingDat = setupDatAccess( "Channeling", xiv::exd::Language::none ); m_ChannelingDat = setupDatAccess( "Channeling", xiv::exd::Language::none );
m_CharaCardBaseDat = setupDatAccess( "CharaCardBase", xiv::exd::Language::en ); m_CharaCardBaseDat = setupDatAccess( "CharaCardBase", xiv::exd::Language::en );
m_CharaCardDecorationDat = setupDatAccess( "CharaCardDecoration", xiv::exd::Language::en ); m_CharaCardDecorationDat = setupDatAccess( "CharaCardDecoration", xiv::exd::Language::en );
m_CharaCardDesignCategoryDat = setupDatAccess( "CharaCardDesignCategory", xiv::exd::Language::en );
m_CharaCardDesignPresetDat = setupDatAccess( "CharaCardDesignPreset", xiv::exd::Language::en ); m_CharaCardDesignPresetDat = setupDatAccess( "CharaCardDesignPreset", xiv::exd::Language::en );
m_CharaCardDesignTypeDat = setupDatAccess( "CharaCardDesignType", xiv::exd::Language::none ); m_CharaCardDesignTypeDat = setupDatAccess( "CharaCardDesignType", xiv::exd::Language::none );
m_CharaCardHeaderDat = setupDatAccess( "CharaCardHeader", xiv::exd::Language::en ); m_CharaCardHeaderDat = setupDatAccess( "CharaCardHeader", xiv::exd::Language::en );
@ -14353,9 +14498,11 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_ContentExActionDat = setupDatAccess( "ContentExAction", xiv::exd::Language::none ); m_ContentExActionDat = setupDatAccess( "ContentExAction", xiv::exd::Language::none );
m_ContentFinderConditionDat = setupDatAccess( "ContentFinderCondition", xiv::exd::Language::en ); m_ContentFinderConditionDat = setupDatAccess( "ContentFinderCondition", xiv::exd::Language::en );
m_ContentFinderConditionTransientDat = setupDatAccess( "ContentFinderConditionTransient", xiv::exd::Language::en ); m_ContentFinderConditionTransientDat = setupDatAccess( "ContentFinderConditionTransient", xiv::exd::Language::en );
m_ContentFinderParamTableDat = setupDatAccess( "ContentFinderParamTable", xiv::exd::Language::none );
m_ContentGaugeDat = setupDatAccess( "ContentGauge", xiv::exd::Language::en ); m_ContentGaugeDat = setupDatAccess( "ContentGauge", xiv::exd::Language::en );
m_ContentGaugeColorDat = setupDatAccess( "ContentGaugeColor", xiv::exd::Language::none ); m_ContentGaugeColorDat = setupDatAccess( "ContentGaugeColor", xiv::exd::Language::none );
m_ContentMemberTypeDat = setupDatAccess( "ContentMemberType", xiv::exd::Language::none ); m_ContentMemberTypeDat = setupDatAccess( "ContentMemberType", xiv::exd::Language::none );
m_ContentNpcDat = setupDatAccess( "ContentNpc", xiv::exd::Language::none );
m_ContentNpcTalkDat = setupDatAccess( "ContentNpcTalk", xiv::exd::Language::none ); m_ContentNpcTalkDat = setupDatAccess( "ContentNpcTalk", xiv::exd::Language::none );
m_ContentRandomSelectDat = setupDatAccess( "ContentRandomSelect", xiv::exd::Language::none ); m_ContentRandomSelectDat = setupDatAccess( "ContentRandomSelect", xiv::exd::Language::none );
m_ContentRouletteDat = setupDatAccess( "ContentRoulette", xiv::exd::Language::en ); m_ContentRouletteDat = setupDatAccess( "ContentRoulette", xiv::exd::Language::en );
@ -14377,6 +14524,13 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_CreditCastDat = setupDatAccess( "CreditCast", xiv::exd::Language::en ); m_CreditCastDat = setupDatAccess( "CreditCast", xiv::exd::Language::en );
m_CreditListDat = setupDatAccess( "CreditList", xiv::exd::Language::none ); m_CreditListDat = setupDatAccess( "CreditList", xiv::exd::Language::none );
m_CreditListTextDat = setupDatAccess( "CreditListText", xiv::exd::Language::en ); m_CreditListTextDat = setupDatAccess( "CreditListText", xiv::exd::Language::en );
m_CSBonusContentDat = setupDatAccess( "CSBonusContent", xiv::exd::Language::none );
m_CSBonusContentIdentifierDat = setupDatAccess( "CSBonusContentIdentifier", xiv::exd::Language::none );
m_CSBonusContentTypeDat = setupDatAccess( "CSBonusContentType", xiv::exd::Language::none );
m_CSBonusMissionDat = setupDatAccess( "CSBonusMission", xiv::exd::Language::none );
m_CSBonusMissionTypeDat = setupDatAccess( "CSBonusMissionType", xiv::exd::Language::none );
m_CSBonusSeasonDat = setupDatAccess( "CSBonusSeason", xiv::exd::Language::none );
m_CSBonusTextDataDat = setupDatAccess( "CSBonusTextData", xiv::exd::Language::en );
m_CustomTalkDat = setupDatAccess( "CustomTalk", xiv::exd::Language::en ); m_CustomTalkDat = setupDatAccess( "CustomTalk", xiv::exd::Language::en );
m_CustomTalkDefineClientDat = setupDatAccess( "CustomTalkDefineClient", xiv::exd::Language::none ); m_CustomTalkDefineClientDat = setupDatAccess( "CustomTalkDefineClient", xiv::exd::Language::none );
m_CustomTalkNestHandlersDat = setupDatAccess( "CustomTalkNestHandlers", xiv::exd::Language::none ); m_CustomTalkNestHandlersDat = setupDatAccess( "CustomTalkNestHandlers", xiv::exd::Language::none );
@ -14437,6 +14591,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_EquipSlotCategoryDat = setupDatAccess( "EquipSlotCategory", xiv::exd::Language::none ); m_EquipSlotCategoryDat = setupDatAccess( "EquipSlotCategory", xiv::exd::Language::none );
m_EurekaAetherItemDat = setupDatAccess( "EurekaAetherItem", xiv::exd::Language::en ); m_EurekaAetherItemDat = setupDatAccess( "EurekaAetherItem", xiv::exd::Language::en );
m_EurekaAethernetDat = setupDatAccess( "EurekaAethernet", xiv::exd::Language::none ); m_EurekaAethernetDat = setupDatAccess( "EurekaAethernet", xiv::exd::Language::none );
m_EurekaDungeonPortalDat = setupDatAccess( "EurekaDungeonPortal", xiv::exd::Language::none );
m_EurekaGrowDataDat = setupDatAccess( "EurekaGrowData", xiv::exd::Language::none ); m_EurekaGrowDataDat = setupDatAccess( "EurekaGrowData", xiv::exd::Language::none );
m_EurekaLogosMixerProbabilityDat = setupDatAccess( "EurekaLogosMixerProbability", xiv::exd::Language::none ); m_EurekaLogosMixerProbabilityDat = setupDatAccess( "EurekaLogosMixerProbability", xiv::exd::Language::none );
m_EurekaMagiaActionDat = setupDatAccess( "EurekaMagiaAction", xiv::exd::Language::none ); m_EurekaMagiaActionDat = setupDatAccess( "EurekaMagiaAction", xiv::exd::Language::none );
@ -14479,6 +14634,8 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_FCReputationDat = setupDatAccess( "FCReputation", xiv::exd::Language::en ); m_FCReputationDat = setupDatAccess( "FCReputation", xiv::exd::Language::en );
m_FCRightsDat = setupDatAccess( "FCRights", xiv::exd::Language::en ); m_FCRightsDat = setupDatAccess( "FCRights", xiv::exd::Language::en );
m_FestivalDat = setupDatAccess( "Festival", xiv::exd::Language::none ); m_FestivalDat = setupDatAccess( "Festival", xiv::exd::Language::none );
m_FGSAddonDat = setupDatAccess( "FGSAddon", xiv::exd::Language::en );
m_FGSStageUIDat = setupDatAccess( "FGSStageUI", xiv::exd::Language::none );
m_FieldMarkerDat = setupDatAccess( "FieldMarker", xiv::exd::Language::en ); m_FieldMarkerDat = setupDatAccess( "FieldMarker", xiv::exd::Language::en );
m_FishingBaitParameterDat = setupDatAccess( "FishingBaitParameter", xiv::exd::Language::none ); m_FishingBaitParameterDat = setupDatAccess( "FishingBaitParameter", xiv::exd::Language::none );
m_FishingNoteInfoDat = setupDatAccess( "FishingNoteInfo", xiv::exd::Language::none ); m_FishingNoteInfoDat = setupDatAccess( "FishingNoteInfo", xiv::exd::Language::none );
@ -14540,6 +14697,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_GFateClimbing2ContentDat = setupDatAccess( "GFateClimbing2Content", xiv::exd::Language::none ); m_GFateClimbing2ContentDat = setupDatAccess( "GFateClimbing2Content", xiv::exd::Language::none );
m_GFateClimbing2TotemTypeDat = setupDatAccess( "GFateClimbing2TotemType", xiv::exd::Language::none ); m_GFateClimbing2TotemTypeDat = setupDatAccess( "GFateClimbing2TotemType", xiv::exd::Language::none );
m_GFateRideShootingDat = setupDatAccess( "GFateRideShooting", xiv::exd::Language::none ); m_GFateRideShootingDat = setupDatAccess( "GFateRideShooting", xiv::exd::Language::none );
m_GFateTypeDat = setupDatAccess( "GFateType", xiv::exd::Language::none );
m_GilShopDat = setupDatAccess( "GilShop", xiv::exd::Language::en ); m_GilShopDat = setupDatAccess( "GilShop", xiv::exd::Language::en );
m_GilShopItemDat = setupDatAccess( "GilShopItem", xiv::exd::Language::none ); m_GilShopItemDat = setupDatAccess( "GilShopItem", xiv::exd::Language::none );
m_GimmickAccessorDat = setupDatAccess( "GimmickAccessor", xiv::exd::Language::none ); m_GimmickAccessorDat = setupDatAccess( "GimmickAccessor", xiv::exd::Language::none );
@ -14639,6 +14797,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_JournalCategoryDat = setupDatAccess( "JournalCategory", xiv::exd::Language::en ); m_JournalCategoryDat = setupDatAccess( "JournalCategory", xiv::exd::Language::en );
m_JournalGenreDat = setupDatAccess( "JournalGenre", xiv::exd::Language::en ); m_JournalGenreDat = setupDatAccess( "JournalGenre", xiv::exd::Language::en );
m_JournalSectionDat = setupDatAccess( "JournalSection", xiv::exd::Language::en ); m_JournalSectionDat = setupDatAccess( "JournalSection", xiv::exd::Language::en );
m_KineDriverOffGroupDat = setupDatAccess( "KineDriverOffGroup", xiv::exd::Language::none );
m_KnockbackDat = setupDatAccess( "Knockback", xiv::exd::Language::none ); m_KnockbackDat = setupDatAccess( "Knockback", xiv::exd::Language::none );
m_LegacyQuestDat = setupDatAccess( "LegacyQuest", xiv::exd::Language::en ); m_LegacyQuestDat = setupDatAccess( "LegacyQuest", xiv::exd::Language::en );
m_LeveDat = setupDatAccess( "Leve", xiv::exd::Language::en ); m_LeveDat = setupDatAccess( "Leve", xiv::exd::Language::en );
@ -14688,6 +14847,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_MinionRaceDat = setupDatAccess( "MinionRace", xiv::exd::Language::en ); m_MinionRaceDat = setupDatAccess( "MinionRace", xiv::exd::Language::en );
m_MinionRulesDat = setupDatAccess( "MinionRules", xiv::exd::Language::en ); m_MinionRulesDat = setupDatAccess( "MinionRules", xiv::exd::Language::en );
m_MinionSkillTypeDat = setupDatAccess( "MinionSkillType", xiv::exd::Language::en ); m_MinionSkillTypeDat = setupDatAccess( "MinionSkillType", xiv::exd::Language::en );
m_MirageStoreSetItemDat = setupDatAccess( "MirageStoreSetItem", xiv::exd::Language::none );
m_MJIAnimalsDat = setupDatAccess( "MJIAnimals", xiv::exd::Language::none ); m_MJIAnimalsDat = setupDatAccess( "MJIAnimals", xiv::exd::Language::none );
m_MJIBuildingDat = setupDatAccess( "MJIBuilding", xiv::exd::Language::none ); m_MJIBuildingDat = setupDatAccess( "MJIBuilding", xiv::exd::Language::none );
m_MJIBuildingPlaceDat = setupDatAccess( "MJIBuildingPlace", xiv::exd::Language::none ); m_MJIBuildingPlaceDat = setupDatAccess( "MJIBuildingPlace", xiv::exd::Language::none );
@ -14717,6 +14877,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_MJILivelyActorDat = setupDatAccess( "MJILivelyActor", xiv::exd::Language::none ); m_MJILivelyActorDat = setupDatAccess( "MJILivelyActor", xiv::exd::Language::none );
m_MJIMinionPopAreasDat = setupDatAccess( "MJIMinionPopAreas", xiv::exd::Language::none ); m_MJIMinionPopAreasDat = setupDatAccess( "MJIMinionPopAreas", xiv::exd::Language::none );
m_MJINameDat = setupDatAccess( "MJIName", xiv::exd::Language::en ); m_MJINameDat = setupDatAccess( "MJIName", xiv::exd::Language::en );
m_MJINekomimiRequestDat = setupDatAccess( "MJINekomimiRequest", xiv::exd::Language::none );
m_MJIProgressDat = setupDatAccess( "MJIProgress", xiv::exd::Language::en ); m_MJIProgressDat = setupDatAccess( "MJIProgress", xiv::exd::Language::en );
m_MJIRankDat = setupDatAccess( "MJIRank", xiv::exd::Language::none ); m_MJIRankDat = setupDatAccess( "MJIRank", xiv::exd::Language::none );
m_MJIRecipeDat = setupDatAccess( "MJIRecipe", xiv::exd::Language::none ); m_MJIRecipeDat = setupDatAccess( "MJIRecipe", xiv::exd::Language::none );
@ -14760,6 +14921,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_NotebookDivisionDat = setupDatAccess( "NotebookDivision", xiv::exd::Language::en ); m_NotebookDivisionDat = setupDatAccess( "NotebookDivision", xiv::exd::Language::en );
m_NotebookDivisionCategoryDat = setupDatAccess( "NotebookDivisionCategory", xiv::exd::Language::en ); m_NotebookDivisionCategoryDat = setupDatAccess( "NotebookDivisionCategory", xiv::exd::Language::en );
m_NotoriousMonsterDat = setupDatAccess( "NotoriousMonster", xiv::exd::Language::none ); m_NotoriousMonsterDat = setupDatAccess( "NotoriousMonster", xiv::exd::Language::none );
m_NotoriousMonsterTerritoryDat = setupDatAccess( "NotoriousMonsterTerritory", xiv::exd::Language::none );
m_NpcEquipDat = setupDatAccess( "NpcEquip", xiv::exd::Language::none ); m_NpcEquipDat = setupDatAccess( "NpcEquip", xiv::exd::Language::none );
m_NpcYellDat = setupDatAccess( "NpcYell", xiv::exd::Language::en ); m_NpcYellDat = setupDatAccess( "NpcYell", xiv::exd::Language::en );
m_OmenDat = setupDatAccess( "Omen", xiv::exd::Language::none ); m_OmenDat = setupDatAccess( "Omen", xiv::exd::Language::none );
@ -14949,6 +15111,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_UDS_PropertyDat = setupDatAccess( "UDS_Property", xiv::exd::Language::none ); m_UDS_PropertyDat = setupDatAccess( "UDS_Property", xiv::exd::Language::none );
m_UIColorDat = setupDatAccess( "UIColor", xiv::exd::Language::none ); m_UIColorDat = setupDatAccess( "UIColor", xiv::exd::Language::none );
m_UIConstDat = setupDatAccess( "UIConst", xiv::exd::Language::none ); m_UIConstDat = setupDatAccess( "UIConst", xiv::exd::Language::none );
m_UILevelLookupDat = setupDatAccess( "UILevelLookup", xiv::exd::Language::none );
m_VaseFlowerDat = setupDatAccess( "VaseFlower", xiv::exd::Language::none ); m_VaseFlowerDat = setupDatAccess( "VaseFlower", xiv::exd::Language::none );
m_VFXDat = setupDatAccess( "VFX", xiv::exd::Language::none ); m_VFXDat = setupDatAccess( "VFX", xiv::exd::Language::none );
m_VVDDataDat = setupDatAccess( "VVDData", xiv::exd::Language::none ); m_VVDDataDat = setupDatAccess( "VVDData", xiv::exd::Language::none );

View file

@ -134,6 +134,7 @@ struct Carry;
struct Channeling; struct Channeling;
struct CharaCardBase; struct CharaCardBase;
struct CharaCardDecoration; struct CharaCardDecoration;
struct CharaCardDesignCategory;
struct CharaCardDesignPreset; struct CharaCardDesignPreset;
struct CharaCardDesignType; struct CharaCardDesignType;
struct CharaCardHeader; struct CharaCardHeader;
@ -187,9 +188,11 @@ struct ContentEventItem;
struct ContentExAction; struct ContentExAction;
struct ContentFinderCondition; struct ContentFinderCondition;
struct ContentFinderConditionTransient; struct ContentFinderConditionTransient;
struct ContentFinderParamTable;
struct ContentGauge; struct ContentGauge;
struct ContentGaugeColor; struct ContentGaugeColor;
struct ContentMemberType; struct ContentMemberType;
struct ContentNpc;
struct ContentNpcTalk; struct ContentNpcTalk;
struct ContentRandomSelect; struct ContentRandomSelect;
struct ContentRoulette; struct ContentRoulette;
@ -211,6 +214,13 @@ struct CreditBackImage;
struct CreditCast; struct CreditCast;
struct CreditList; struct CreditList;
struct CreditListText; struct CreditListText;
struct CSBonusContent;
struct CSBonusContentIdentifier;
struct CSBonusContentType;
struct CSBonusMission;
struct CSBonusMissionType;
struct CSBonusSeason;
struct CSBonusTextData;
struct CustomTalk; struct CustomTalk;
struct CustomTalkDefineClient; struct CustomTalkDefineClient;
struct CustomTalkNestHandlers; struct CustomTalkNestHandlers;
@ -271,6 +281,7 @@ struct EquipRaceCategory;
struct EquipSlotCategory; struct EquipSlotCategory;
struct EurekaAetherItem; struct EurekaAetherItem;
struct EurekaAethernet; struct EurekaAethernet;
struct EurekaDungeonPortal;
struct EurekaGrowData; struct EurekaGrowData;
struct EurekaLogosMixerProbability; struct EurekaLogosMixerProbability;
struct EurekaMagiaAction; struct EurekaMagiaAction;
@ -313,6 +324,8 @@ struct FCRank;
struct FCReputation; struct FCReputation;
struct FCRights; struct FCRights;
struct Festival; struct Festival;
struct FGSAddon;
struct FGSStageUI;
struct FieldMarker; struct FieldMarker;
struct FishingBaitParameter; struct FishingBaitParameter;
struct FishingNoteInfo; struct FishingNoteInfo;
@ -374,6 +387,7 @@ struct GFateClimbing2;
struct GFateClimbing2Content; struct GFateClimbing2Content;
struct GFateClimbing2TotemType; struct GFateClimbing2TotemType;
struct GFateRideShooting; struct GFateRideShooting;
struct GFateType;
struct GilShop; struct GilShop;
struct GilShopItem; struct GilShopItem;
struct GimmickAccessor; struct GimmickAccessor;
@ -473,6 +487,7 @@ struct JobHudManualPriority;
struct JournalCategory; struct JournalCategory;
struct JournalGenre; struct JournalGenre;
struct JournalSection; struct JournalSection;
struct KineDriverOffGroup;
struct Knockback; struct Knockback;
struct LegacyQuest; struct LegacyQuest;
struct Leve; struct Leve;
@ -522,6 +537,7 @@ struct MiniGameTurnBreakStatus;
struct MinionRace; struct MinionRace;
struct MinionRules; struct MinionRules;
struct MinionSkillType; struct MinionSkillType;
struct MirageStoreSetItem;
struct MJIAnimals; struct MJIAnimals;
struct MJIBuilding; struct MJIBuilding;
struct MJIBuildingPlace; struct MJIBuildingPlace;
@ -551,6 +567,7 @@ struct MJILandmarkPlace;
struct MJILivelyActor; struct MJILivelyActor;
struct MJIMinionPopAreas; struct MJIMinionPopAreas;
struct MJIName; struct MJIName;
struct MJINekomimiRequest;
struct MJIProgress; struct MJIProgress;
struct MJIRank; struct MJIRank;
struct MJIRecipe; struct MJIRecipe;
@ -594,6 +611,7 @@ struct MYCWarResultNotebook;
struct NotebookDivision; struct NotebookDivision;
struct NotebookDivisionCategory; struct NotebookDivisionCategory;
struct NotoriousMonster; struct NotoriousMonster;
struct NotoriousMonsterTerritory;
struct NpcEquip; struct NpcEquip;
struct NpcYell; struct NpcYell;
struct Omen; struct Omen;
@ -783,6 +801,7 @@ struct UDS_Event;
struct UDS_Property; struct UDS_Property;
struct UIColor; struct UIColor;
struct UIConst; struct UIConst;
struct UILevelLookup;
struct VaseFlower; struct VaseFlower;
struct VFX; struct VFX;
struct VVDData; struct VVDData;
@ -2060,7 +2079,7 @@ struct BuddySkill
struct Cabinet struct Cabinet
{ {
int32_t item; uint32_t item;
uint16_t order; uint16_t order;
uint8_t category; uint8_t category;
@ -2070,6 +2089,7 @@ struct Cabinet
struct CabinetCategory struct CabinetCategory
{ {
uint8_t menuOrder; uint8_t menuOrder;
uint8_t hideOrder;
int32_t icon; int32_t icon;
int32_t category; int32_t category;
@ -2122,6 +2142,12 @@ struct CharaCardDecoration
CharaCardDecoration( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); CharaCardDecoration( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct CharaCardDesignCategory
{
CharaCardDesignCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct CharaCardDesignPreset struct CharaCardDesignPreset
{ {
uint16_t basePlate; uint16_t basePlate;
@ -2801,6 +2827,12 @@ struct ContentFinderConditionTransient
ContentFinderConditionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); ContentFinderConditionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct ContentFinderParamTable
{
ContentFinderParamTable( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
};
struct ContentGauge struct ContentGauge
{ {
std::string name; std::string name;
@ -2829,6 +2861,12 @@ struct ContentMemberType
ContentMemberType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); ContentMemberType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct ContentNpc
{
ContentNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct ContentNpcTalk struct ContentNpcTalk
{ {
int32_t type; int32_t type;
@ -2907,9 +2945,9 @@ struct ContentsNote
struct ContentsTutorial struct ContentsTutorial
{ {
std::vector< int32_t > page;
std::string name; std::string name;
std::string description; std::string description;
std::vector< int32_t > page;
ContentsTutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); ContentsTutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -3051,6 +3089,48 @@ struct CreditListText
CreditListText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); CreditListText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct CSBonusContent
{
CSBonusContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct CSBonusContentIdentifier
{
CSBonusContentIdentifier( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct CSBonusContentType
{
CSBonusContentType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct CSBonusMission
{
CSBonusMission( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
};
struct CSBonusMissionType
{
CSBonusMissionType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct CSBonusSeason
{
CSBonusSeason( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct CSBonusTextData
{
CSBonusTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct CustomTalk struct CustomTalk
{ {
uint32_t iconActor; uint32_t iconActor;
@ -3708,6 +3788,13 @@ struct EurekaAethernet
EurekaAethernet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); EurekaAethernet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct EurekaDungeonPortal
{
uint32_t levelId;
EurekaDungeonPortal( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
};
struct EurekaGrowData struct EurekaGrowData
{ {
uint16_t baseResistance; uint16_t baseResistance;
@ -3783,7 +3870,7 @@ struct EventIconPriority
struct EventIconPriorityPair struct EventIconPriorityPair
{ {
uint32_t icon1; uint32_t icon;
EventIconPriorityPair( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); EventIconPriorityPair( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -4104,6 +4191,18 @@ struct Festival
Festival( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); Festival( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct FGSAddon
{
FGSAddon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct FGSStageUI
{
FGSStageUI( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct FieldMarker struct FieldMarker
{ {
int32_t vFX; int32_t vFX;
@ -4698,6 +4797,12 @@ struct GFateRideShooting
GFateRideShooting( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); GFateRideShooting( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct GFateType
{
GFateType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct GilShop struct GilShop
{ {
std::string name; std::string name;
@ -4733,7 +4838,7 @@ struct GimmickAccessor
struct GimmickJump struct GimmickJump
{ {
uint16_t fallDamage; uint16_t fallDamage;
int8_t height; uint16_t height;
uint32_t loopMotion; uint32_t loopMotion;
uint32_t endMotion; uint32_t endMotion;
bool startClient; bool startClient;
@ -4978,7 +5083,6 @@ struct HousingFurniture
uint32_t customTalk; uint32_t customTalk;
uint32_t item; uint32_t item;
bool destroyOnRemoval; bool destroyOnRemoval;
bool tooltip;
HousingFurniture( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); HousingFurniture( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -5466,6 +5570,7 @@ struct Item
bool alwaysCollectable; bool alwaysCollectable;
uint16_t aetherialReduce; uint16_t aetherialReduce;
uint8_t levelEquip; uint8_t levelEquip;
uint8_t requiredPvpRank;
uint8_t equipRestriction; uint8_t equipRestriction;
uint8_t classJobCategory; uint8_t classJobCategory;
uint8_t grandCompany; uint8_t grandCompany;
@ -5730,6 +5835,12 @@ struct JournalSection
JournalSection( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); JournalSection( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct KineDriverOffGroup
{
KineDriverOffGroup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct Knockback struct Knockback
{ {
uint8_t distance; uint8_t distance;
@ -6167,10 +6278,18 @@ struct MinionSkillType
MinionSkillType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); MinionSkillType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct MirageStoreSetItem
{
MirageStoreSetItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct MJIAnimals struct MJIAnimals
{ {
uint32_t bNpcBase; uint32_t bNpcBase;
uint8_t size; uint8_t size;
uint8_t rarity;
uint8_t sort;
std::vector< uint32_t > reward; std::vector< uint32_t > reward;
int32_t icon; int32_t icon;
@ -6264,7 +6383,11 @@ struct MJICropSeed
struct MJIDisposalShopItem struct MJIDisposalShopItem
{ {
uint8_t item;
uint8_t currency;
uint16_t count;
uint8_t category; uint8_t category;
uint8_t sort;
MJIDisposalShopItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); MJIDisposalShopItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -6307,9 +6430,11 @@ struct MJIGatheringItem
{ {
uint32_t item; uint32_t item;
uint8_t sort; uint8_t sort;
uint8_t tool;
int16_t x; int16_t x;
int16_t y; int16_t y;
uint16_t radius; uint16_t radius;
uint8_t map;
MJIGatheringItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); MJIGatheringItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -6325,6 +6450,7 @@ struct MJIGatheringObject
struct MJIGatheringTool struct MJIGatheringTool
{ {
uint8_t item;
MJIGatheringTool( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); MJIGatheringTool( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -6351,6 +6477,7 @@ struct MJIItemPouch
uint32_t item; uint32_t item;
int32_t category; int32_t category;
uint8_t crop; uint8_t crop;
uint8_t sort;
MJIItemPouch( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); MJIItemPouch( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -6358,6 +6485,7 @@ struct MJIItemPouch
struct MJIKeyItem struct MJIKeyItem
{ {
int32_t item; int32_t item;
uint8_t sort;
MJIKeyItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); MJIKeyItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -6369,6 +6497,8 @@ struct MJILandmark
uint16_t sGB2; uint16_t sGB2;
uint16_t sGB3; uint16_t sGB3;
uint16_t sGB4; uint16_t sGB4;
uint16_t sGB5;
uint16_t sGB6;
std::vector< uint16_t > material; std::vector< uint16_t > material;
std::vector< uint8_t > amount; std::vector< uint8_t > amount;
uint32_t name; uint32_t name;
@ -6416,6 +6546,12 @@ struct MJIName
MJIName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); MJIName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct MJINekomimiRequest
{
MJINekomimiRequest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct MJIProgress struct MJIProgress
{ {
std::string vision; std::string vision;
@ -6872,6 +7008,13 @@ struct NotoriousMonster
NotoriousMonster( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); NotoriousMonster( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct NotoriousMonsterTerritory
{
std::vector< uint16_t > notoriousMonsters;
NotoriousMonsterTerritory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct NpcEquip struct NpcEquip
{ {
uint64_t modelMainHand; uint64_t modelMainHand;
@ -7370,7 +7513,6 @@ struct Quest
uint16_t classJobLevel1; uint16_t classJobLevel1;
uint8_t previousQuestJoin; uint8_t previousQuestJoin;
std::vector< uint32_t > previousQuest; std::vector< uint32_t > previousQuest;
uint8_t previousQuest0Sequence;
uint8_t questLockJoin; uint8_t questLockJoin;
std::vector< uint32_t > questLock; std::vector< uint32_t > questLock;
uint16_t header; uint16_t header;
@ -7554,6 +7696,9 @@ struct QuestEventAreaEntranceInfo
struct QuestLinkMarker struct QuestLinkMarker
{ {
uint32_t sourceMap;
uint32_t level;
uint32_t targetMap;
QuestLinkMarker( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); QuestLinkMarker( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -8490,6 +8635,7 @@ struct TerritoryType
bool isPvpZone; bool isPvpZone;
uint8_t exVersion; uint8_t exVersion;
uint8_t mountSpeed; uint8_t mountSpeed;
uint16_t notoriousMonsterTerritory;
TerritoryType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); TerritoryType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -8866,6 +9012,12 @@ struct UIConst
UIConst( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); UIConst( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct UILevelLookup
{
UILevelLookup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct VaseFlower struct VaseFlower
{ {
uint32_t item; uint32_t item;
@ -8941,7 +9093,7 @@ struct WarpCondition
uint8_t completeParam; uint8_t completeParam;
uint32_t requiredQuest1; uint32_t requiredQuest1;
uint32_t requiredQuest2; uint32_t requiredQuest2;
uint32_t dRequiredQuest3; uint32_t requiredQuest3;
uint32_t requiredQuest4; uint32_t requiredQuest4;
uint16_t questReward; uint16_t questReward;
uint16_t classLevel; uint16_t classLevel;
@ -9290,6 +9442,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_ChannelingDat; xiv::exd::Exd m_ChannelingDat;
xiv::exd::Exd m_CharaCardBaseDat; xiv::exd::Exd m_CharaCardBaseDat;
xiv::exd::Exd m_CharaCardDecorationDat; xiv::exd::Exd m_CharaCardDecorationDat;
xiv::exd::Exd m_CharaCardDesignCategoryDat;
xiv::exd::Exd m_CharaCardDesignPresetDat; xiv::exd::Exd m_CharaCardDesignPresetDat;
xiv::exd::Exd m_CharaCardDesignTypeDat; xiv::exd::Exd m_CharaCardDesignTypeDat;
xiv::exd::Exd m_CharaCardHeaderDat; xiv::exd::Exd m_CharaCardHeaderDat;
@ -9343,9 +9496,11 @@ struct ZoneSharedGroup
xiv::exd::Exd m_ContentExActionDat; xiv::exd::Exd m_ContentExActionDat;
xiv::exd::Exd m_ContentFinderConditionDat; xiv::exd::Exd m_ContentFinderConditionDat;
xiv::exd::Exd m_ContentFinderConditionTransientDat; xiv::exd::Exd m_ContentFinderConditionTransientDat;
xiv::exd::Exd m_ContentFinderParamTableDat;
xiv::exd::Exd m_ContentGaugeDat; xiv::exd::Exd m_ContentGaugeDat;
xiv::exd::Exd m_ContentGaugeColorDat; xiv::exd::Exd m_ContentGaugeColorDat;
xiv::exd::Exd m_ContentMemberTypeDat; xiv::exd::Exd m_ContentMemberTypeDat;
xiv::exd::Exd m_ContentNpcDat;
xiv::exd::Exd m_ContentNpcTalkDat; xiv::exd::Exd m_ContentNpcTalkDat;
xiv::exd::Exd m_ContentRandomSelectDat; xiv::exd::Exd m_ContentRandomSelectDat;
xiv::exd::Exd m_ContentRouletteDat; xiv::exd::Exd m_ContentRouletteDat;
@ -9367,6 +9522,13 @@ struct ZoneSharedGroup
xiv::exd::Exd m_CreditCastDat; xiv::exd::Exd m_CreditCastDat;
xiv::exd::Exd m_CreditListDat; xiv::exd::Exd m_CreditListDat;
xiv::exd::Exd m_CreditListTextDat; xiv::exd::Exd m_CreditListTextDat;
xiv::exd::Exd m_CSBonusContentDat;
xiv::exd::Exd m_CSBonusContentIdentifierDat;
xiv::exd::Exd m_CSBonusContentTypeDat;
xiv::exd::Exd m_CSBonusMissionDat;
xiv::exd::Exd m_CSBonusMissionTypeDat;
xiv::exd::Exd m_CSBonusSeasonDat;
xiv::exd::Exd m_CSBonusTextDataDat;
xiv::exd::Exd m_CustomTalkDat; xiv::exd::Exd m_CustomTalkDat;
xiv::exd::Exd m_CustomTalkDefineClientDat; xiv::exd::Exd m_CustomTalkDefineClientDat;
xiv::exd::Exd m_CustomTalkNestHandlersDat; xiv::exd::Exd m_CustomTalkNestHandlersDat;
@ -9427,6 +9589,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_EquipSlotCategoryDat; xiv::exd::Exd m_EquipSlotCategoryDat;
xiv::exd::Exd m_EurekaAetherItemDat; xiv::exd::Exd m_EurekaAetherItemDat;
xiv::exd::Exd m_EurekaAethernetDat; xiv::exd::Exd m_EurekaAethernetDat;
xiv::exd::Exd m_EurekaDungeonPortalDat;
xiv::exd::Exd m_EurekaGrowDataDat; xiv::exd::Exd m_EurekaGrowDataDat;
xiv::exd::Exd m_EurekaLogosMixerProbabilityDat; xiv::exd::Exd m_EurekaLogosMixerProbabilityDat;
xiv::exd::Exd m_EurekaMagiaActionDat; xiv::exd::Exd m_EurekaMagiaActionDat;
@ -9469,6 +9632,8 @@ struct ZoneSharedGroup
xiv::exd::Exd m_FCReputationDat; xiv::exd::Exd m_FCReputationDat;
xiv::exd::Exd m_FCRightsDat; xiv::exd::Exd m_FCRightsDat;
xiv::exd::Exd m_FestivalDat; xiv::exd::Exd m_FestivalDat;
xiv::exd::Exd m_FGSAddonDat;
xiv::exd::Exd m_FGSStageUIDat;
xiv::exd::Exd m_FieldMarkerDat; xiv::exd::Exd m_FieldMarkerDat;
xiv::exd::Exd m_FishingBaitParameterDat; xiv::exd::Exd m_FishingBaitParameterDat;
xiv::exd::Exd m_FishingNoteInfoDat; xiv::exd::Exd m_FishingNoteInfoDat;
@ -9530,6 +9695,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_GFateClimbing2ContentDat; xiv::exd::Exd m_GFateClimbing2ContentDat;
xiv::exd::Exd m_GFateClimbing2TotemTypeDat; xiv::exd::Exd m_GFateClimbing2TotemTypeDat;
xiv::exd::Exd m_GFateRideShootingDat; xiv::exd::Exd m_GFateRideShootingDat;
xiv::exd::Exd m_GFateTypeDat;
xiv::exd::Exd m_GilShopDat; xiv::exd::Exd m_GilShopDat;
xiv::exd::Exd m_GilShopItemDat; xiv::exd::Exd m_GilShopItemDat;
xiv::exd::Exd m_GimmickAccessorDat; xiv::exd::Exd m_GimmickAccessorDat;
@ -9629,6 +9795,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_JournalCategoryDat; xiv::exd::Exd m_JournalCategoryDat;
xiv::exd::Exd m_JournalGenreDat; xiv::exd::Exd m_JournalGenreDat;
xiv::exd::Exd m_JournalSectionDat; xiv::exd::Exd m_JournalSectionDat;
xiv::exd::Exd m_KineDriverOffGroupDat;
xiv::exd::Exd m_KnockbackDat; xiv::exd::Exd m_KnockbackDat;
xiv::exd::Exd m_LegacyQuestDat; xiv::exd::Exd m_LegacyQuestDat;
xiv::exd::Exd m_LeveDat; xiv::exd::Exd m_LeveDat;
@ -9678,6 +9845,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_MinionRaceDat; xiv::exd::Exd m_MinionRaceDat;
xiv::exd::Exd m_MinionRulesDat; xiv::exd::Exd m_MinionRulesDat;
xiv::exd::Exd m_MinionSkillTypeDat; xiv::exd::Exd m_MinionSkillTypeDat;
xiv::exd::Exd m_MirageStoreSetItemDat;
xiv::exd::Exd m_MJIAnimalsDat; xiv::exd::Exd m_MJIAnimalsDat;
xiv::exd::Exd m_MJIBuildingDat; xiv::exd::Exd m_MJIBuildingDat;
xiv::exd::Exd m_MJIBuildingPlaceDat; xiv::exd::Exd m_MJIBuildingPlaceDat;
@ -9707,6 +9875,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_MJILivelyActorDat; xiv::exd::Exd m_MJILivelyActorDat;
xiv::exd::Exd m_MJIMinionPopAreasDat; xiv::exd::Exd m_MJIMinionPopAreasDat;
xiv::exd::Exd m_MJINameDat; xiv::exd::Exd m_MJINameDat;
xiv::exd::Exd m_MJINekomimiRequestDat;
xiv::exd::Exd m_MJIProgressDat; xiv::exd::Exd m_MJIProgressDat;
xiv::exd::Exd m_MJIRankDat; xiv::exd::Exd m_MJIRankDat;
xiv::exd::Exd m_MJIRecipeDat; xiv::exd::Exd m_MJIRecipeDat;
@ -9750,6 +9919,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_NotebookDivisionDat; xiv::exd::Exd m_NotebookDivisionDat;
xiv::exd::Exd m_NotebookDivisionCategoryDat; xiv::exd::Exd m_NotebookDivisionCategoryDat;
xiv::exd::Exd m_NotoriousMonsterDat; xiv::exd::Exd m_NotoriousMonsterDat;
xiv::exd::Exd m_NotoriousMonsterTerritoryDat;
xiv::exd::Exd m_NpcEquipDat; xiv::exd::Exd m_NpcEquipDat;
xiv::exd::Exd m_NpcYellDat; xiv::exd::Exd m_NpcYellDat;
xiv::exd::Exd m_OmenDat; xiv::exd::Exd m_OmenDat;
@ -9939,6 +10109,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_UDS_PropertyDat; xiv::exd::Exd m_UDS_PropertyDat;
xiv::exd::Exd m_UIColorDat; xiv::exd::Exd m_UIColorDat;
xiv::exd::Exd m_UIConstDat; xiv::exd::Exd m_UIConstDat;
xiv::exd::Exd m_UILevelLookupDat;
xiv::exd::Exd m_VaseFlowerDat; xiv::exd::Exd m_VaseFlowerDat;
xiv::exd::Exd m_VFXDat; xiv::exd::Exd m_VFXDat;
xiv::exd::Exd m_VVDDataDat; xiv::exd::Exd m_VVDDataDat;
@ -10081,6 +10252,7 @@ struct ZoneSharedGroup
using ChannelingPtr = std::shared_ptr< Channeling >; using ChannelingPtr = std::shared_ptr< Channeling >;
using CharaCardBasePtr = std::shared_ptr< CharaCardBase >; using CharaCardBasePtr = std::shared_ptr< CharaCardBase >;
using CharaCardDecorationPtr = std::shared_ptr< CharaCardDecoration >; using CharaCardDecorationPtr = std::shared_ptr< CharaCardDecoration >;
using CharaCardDesignCategoryPtr = std::shared_ptr< CharaCardDesignCategory >;
using CharaCardDesignPresetPtr = std::shared_ptr< CharaCardDesignPreset >; using CharaCardDesignPresetPtr = std::shared_ptr< CharaCardDesignPreset >;
using CharaCardDesignTypePtr = std::shared_ptr< CharaCardDesignType >; using CharaCardDesignTypePtr = std::shared_ptr< CharaCardDesignType >;
using CharaCardHeaderPtr = std::shared_ptr< CharaCardHeader >; using CharaCardHeaderPtr = std::shared_ptr< CharaCardHeader >;
@ -10134,9 +10306,11 @@ struct ZoneSharedGroup
using ContentExActionPtr = std::shared_ptr< ContentExAction >; using ContentExActionPtr = std::shared_ptr< ContentExAction >;
using ContentFinderConditionPtr = std::shared_ptr< ContentFinderCondition >; using ContentFinderConditionPtr = std::shared_ptr< ContentFinderCondition >;
using ContentFinderConditionTransientPtr = std::shared_ptr< ContentFinderConditionTransient >; using ContentFinderConditionTransientPtr = std::shared_ptr< ContentFinderConditionTransient >;
using ContentFinderParamTablePtr = std::shared_ptr< ContentFinderParamTable >;
using ContentGaugePtr = std::shared_ptr< ContentGauge >; using ContentGaugePtr = std::shared_ptr< ContentGauge >;
using ContentGaugeColorPtr = std::shared_ptr< ContentGaugeColor >; using ContentGaugeColorPtr = std::shared_ptr< ContentGaugeColor >;
using ContentMemberTypePtr = std::shared_ptr< ContentMemberType >; using ContentMemberTypePtr = std::shared_ptr< ContentMemberType >;
using ContentNpcPtr = std::shared_ptr< ContentNpc >;
using ContentNpcTalkPtr = std::shared_ptr< ContentNpcTalk >; using ContentNpcTalkPtr = std::shared_ptr< ContentNpcTalk >;
using ContentRandomSelectPtr = std::shared_ptr< ContentRandomSelect >; using ContentRandomSelectPtr = std::shared_ptr< ContentRandomSelect >;
using ContentRoulettePtr = std::shared_ptr< ContentRoulette >; using ContentRoulettePtr = std::shared_ptr< ContentRoulette >;
@ -10158,6 +10332,13 @@ struct ZoneSharedGroup
using CreditCastPtr = std::shared_ptr< CreditCast >; using CreditCastPtr = std::shared_ptr< CreditCast >;
using CreditListPtr = std::shared_ptr< CreditList >; using CreditListPtr = std::shared_ptr< CreditList >;
using CreditListTextPtr = std::shared_ptr< CreditListText >; using CreditListTextPtr = std::shared_ptr< CreditListText >;
using CSBonusContentPtr = std::shared_ptr< CSBonusContent >;
using CSBonusContentIdentifierPtr = std::shared_ptr< CSBonusContentIdentifier >;
using CSBonusContentTypePtr = std::shared_ptr< CSBonusContentType >;
using CSBonusMissionPtr = std::shared_ptr< CSBonusMission >;
using CSBonusMissionTypePtr = std::shared_ptr< CSBonusMissionType >;
using CSBonusSeasonPtr = std::shared_ptr< CSBonusSeason >;
using CSBonusTextDataPtr = std::shared_ptr< CSBonusTextData >;
using CustomTalkPtr = std::shared_ptr< CustomTalk >; using CustomTalkPtr = std::shared_ptr< CustomTalk >;
using CustomTalkDefineClientPtr = std::shared_ptr< CustomTalkDefineClient >; using CustomTalkDefineClientPtr = std::shared_ptr< CustomTalkDefineClient >;
using CustomTalkNestHandlersPtr = std::shared_ptr< CustomTalkNestHandlers >; using CustomTalkNestHandlersPtr = std::shared_ptr< CustomTalkNestHandlers >;
@ -10218,6 +10399,7 @@ struct ZoneSharedGroup
using EquipSlotCategoryPtr = std::shared_ptr< EquipSlotCategory >; using EquipSlotCategoryPtr = std::shared_ptr< EquipSlotCategory >;
using EurekaAetherItemPtr = std::shared_ptr< EurekaAetherItem >; using EurekaAetherItemPtr = std::shared_ptr< EurekaAetherItem >;
using EurekaAethernetPtr = std::shared_ptr< EurekaAethernet >; using EurekaAethernetPtr = std::shared_ptr< EurekaAethernet >;
using EurekaDungeonPortalPtr = std::shared_ptr< EurekaDungeonPortal >;
using EurekaGrowDataPtr = std::shared_ptr< EurekaGrowData >; using EurekaGrowDataPtr = std::shared_ptr< EurekaGrowData >;
using EurekaLogosMixerProbabilityPtr = std::shared_ptr< EurekaLogosMixerProbability >; using EurekaLogosMixerProbabilityPtr = std::shared_ptr< EurekaLogosMixerProbability >;
using EurekaMagiaActionPtr = std::shared_ptr< EurekaMagiaAction >; using EurekaMagiaActionPtr = std::shared_ptr< EurekaMagiaAction >;
@ -10260,6 +10442,8 @@ struct ZoneSharedGroup
using FCReputationPtr = std::shared_ptr< FCReputation >; using FCReputationPtr = std::shared_ptr< FCReputation >;
using FCRightsPtr = std::shared_ptr< FCRights >; using FCRightsPtr = std::shared_ptr< FCRights >;
using FestivalPtr = std::shared_ptr< Festival >; using FestivalPtr = std::shared_ptr< Festival >;
using FGSAddonPtr = std::shared_ptr< FGSAddon >;
using FGSStageUIPtr = std::shared_ptr< FGSStageUI >;
using FieldMarkerPtr = std::shared_ptr< FieldMarker >; using FieldMarkerPtr = std::shared_ptr< FieldMarker >;
using FishingBaitParameterPtr = std::shared_ptr< FishingBaitParameter >; using FishingBaitParameterPtr = std::shared_ptr< FishingBaitParameter >;
using FishingNoteInfoPtr = std::shared_ptr< FishingNoteInfo >; using FishingNoteInfoPtr = std::shared_ptr< FishingNoteInfo >;
@ -10321,6 +10505,7 @@ struct ZoneSharedGroup
using GFateClimbing2ContentPtr = std::shared_ptr< GFateClimbing2Content >; using GFateClimbing2ContentPtr = std::shared_ptr< GFateClimbing2Content >;
using GFateClimbing2TotemTypePtr = std::shared_ptr< GFateClimbing2TotemType >; using GFateClimbing2TotemTypePtr = std::shared_ptr< GFateClimbing2TotemType >;
using GFateRideShootingPtr = std::shared_ptr< GFateRideShooting >; using GFateRideShootingPtr = std::shared_ptr< GFateRideShooting >;
using GFateTypePtr = std::shared_ptr< GFateType >;
using GilShopPtr = std::shared_ptr< GilShop >; using GilShopPtr = std::shared_ptr< GilShop >;
using GilShopItemPtr = std::shared_ptr< GilShopItem >; using GilShopItemPtr = std::shared_ptr< GilShopItem >;
using GimmickAccessorPtr = std::shared_ptr< GimmickAccessor >; using GimmickAccessorPtr = std::shared_ptr< GimmickAccessor >;
@ -10420,6 +10605,7 @@ struct ZoneSharedGroup
using JournalCategoryPtr = std::shared_ptr< JournalCategory >; using JournalCategoryPtr = std::shared_ptr< JournalCategory >;
using JournalGenrePtr = std::shared_ptr< JournalGenre >; using JournalGenrePtr = std::shared_ptr< JournalGenre >;
using JournalSectionPtr = std::shared_ptr< JournalSection >; using JournalSectionPtr = std::shared_ptr< JournalSection >;
using KineDriverOffGroupPtr = std::shared_ptr< KineDriverOffGroup >;
using KnockbackPtr = std::shared_ptr< Knockback >; using KnockbackPtr = std::shared_ptr< Knockback >;
using LegacyQuestPtr = std::shared_ptr< LegacyQuest >; using LegacyQuestPtr = std::shared_ptr< LegacyQuest >;
using LevePtr = std::shared_ptr< Leve >; using LevePtr = std::shared_ptr< Leve >;
@ -10469,6 +10655,7 @@ struct ZoneSharedGroup
using MinionRacePtr = std::shared_ptr< MinionRace >; using MinionRacePtr = std::shared_ptr< MinionRace >;
using MinionRulesPtr = std::shared_ptr< MinionRules >; using MinionRulesPtr = std::shared_ptr< MinionRules >;
using MinionSkillTypePtr = std::shared_ptr< MinionSkillType >; using MinionSkillTypePtr = std::shared_ptr< MinionSkillType >;
using MirageStoreSetItemPtr = std::shared_ptr< MirageStoreSetItem >;
using MJIAnimalsPtr = std::shared_ptr< MJIAnimals >; using MJIAnimalsPtr = std::shared_ptr< MJIAnimals >;
using MJIBuildingPtr = std::shared_ptr< MJIBuilding >; using MJIBuildingPtr = std::shared_ptr< MJIBuilding >;
using MJIBuildingPlacePtr = std::shared_ptr< MJIBuildingPlace >; using MJIBuildingPlacePtr = std::shared_ptr< MJIBuildingPlace >;
@ -10498,6 +10685,7 @@ struct ZoneSharedGroup
using MJILivelyActorPtr = std::shared_ptr< MJILivelyActor >; using MJILivelyActorPtr = std::shared_ptr< MJILivelyActor >;
using MJIMinionPopAreasPtr = std::shared_ptr< MJIMinionPopAreas >; using MJIMinionPopAreasPtr = std::shared_ptr< MJIMinionPopAreas >;
using MJINamePtr = std::shared_ptr< MJIName >; using MJINamePtr = std::shared_ptr< MJIName >;
using MJINekomimiRequestPtr = std::shared_ptr< MJINekomimiRequest >;
using MJIProgressPtr = std::shared_ptr< MJIProgress >; using MJIProgressPtr = std::shared_ptr< MJIProgress >;
using MJIRankPtr = std::shared_ptr< MJIRank >; using MJIRankPtr = std::shared_ptr< MJIRank >;
using MJIRecipePtr = std::shared_ptr< MJIRecipe >; using MJIRecipePtr = std::shared_ptr< MJIRecipe >;
@ -10541,6 +10729,7 @@ struct ZoneSharedGroup
using NotebookDivisionPtr = std::shared_ptr< NotebookDivision >; using NotebookDivisionPtr = std::shared_ptr< NotebookDivision >;
using NotebookDivisionCategoryPtr = std::shared_ptr< NotebookDivisionCategory >; using NotebookDivisionCategoryPtr = std::shared_ptr< NotebookDivisionCategory >;
using NotoriousMonsterPtr = std::shared_ptr< NotoriousMonster >; using NotoriousMonsterPtr = std::shared_ptr< NotoriousMonster >;
using NotoriousMonsterTerritoryPtr = std::shared_ptr< NotoriousMonsterTerritory >;
using NpcEquipPtr = std::shared_ptr< NpcEquip >; using NpcEquipPtr = std::shared_ptr< NpcEquip >;
using NpcYellPtr = std::shared_ptr< NpcYell >; using NpcYellPtr = std::shared_ptr< NpcYell >;
using OmenPtr = std::shared_ptr< Omen >; using OmenPtr = std::shared_ptr< Omen >;
@ -10730,6 +10919,7 @@ struct ZoneSharedGroup
using UDS_PropertyPtr = std::shared_ptr< UDS_Property >; using UDS_PropertyPtr = std::shared_ptr< UDS_Property >;
using UIColorPtr = std::shared_ptr< UIColor >; using UIColorPtr = std::shared_ptr< UIColor >;
using UIConstPtr = std::shared_ptr< UIConst >; using UIConstPtr = std::shared_ptr< UIConst >;
using UILevelLookupPtr = std::shared_ptr< UILevelLookup >;
using VaseFlowerPtr = std::shared_ptr< VaseFlower >; using VaseFlowerPtr = std::shared_ptr< VaseFlower >;
using VFXPtr = std::shared_ptr< VFX >; using VFXPtr = std::shared_ptr< VFX >;
using VVDDataPtr = std::shared_ptr< VVDData >; using VVDDataPtr = std::shared_ptr< VVDData >;
@ -10872,6 +11062,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_ChannelingIdList; std::set< uint32_t > m_ChannelingIdList;
std::set< uint32_t > m_CharaCardBaseIdList; std::set< uint32_t > m_CharaCardBaseIdList;
std::set< uint32_t > m_CharaCardDecorationIdList; std::set< uint32_t > m_CharaCardDecorationIdList;
std::set< uint32_t > m_CharaCardDesignCategoryIdList;
std::set< uint32_t > m_CharaCardDesignPresetIdList; std::set< uint32_t > m_CharaCardDesignPresetIdList;
std::set< uint32_t > m_CharaCardDesignTypeIdList; std::set< uint32_t > m_CharaCardDesignTypeIdList;
std::set< uint32_t > m_CharaCardHeaderIdList; std::set< uint32_t > m_CharaCardHeaderIdList;
@ -10925,9 +11116,11 @@ struct ZoneSharedGroup
std::set< uint32_t > m_ContentExActionIdList; std::set< uint32_t > m_ContentExActionIdList;
std::set< uint32_t > m_ContentFinderConditionIdList; std::set< uint32_t > m_ContentFinderConditionIdList;
std::set< uint32_t > m_ContentFinderConditionTransientIdList; std::set< uint32_t > m_ContentFinderConditionTransientIdList;
std::set< uint32_t > m_ContentFinderParamTableIdList;
std::set< uint32_t > m_ContentGaugeIdList; std::set< uint32_t > m_ContentGaugeIdList;
std::set< uint32_t > m_ContentGaugeColorIdList; std::set< uint32_t > m_ContentGaugeColorIdList;
std::set< uint32_t > m_ContentMemberTypeIdList; std::set< uint32_t > m_ContentMemberTypeIdList;
std::set< uint32_t > m_ContentNpcIdList;
std::set< uint32_t > m_ContentNpcTalkIdList; std::set< uint32_t > m_ContentNpcTalkIdList;
std::set< uint32_t > m_ContentRandomSelectIdList; std::set< uint32_t > m_ContentRandomSelectIdList;
std::set< uint32_t > m_ContentRouletteIdList; std::set< uint32_t > m_ContentRouletteIdList;
@ -10949,6 +11142,13 @@ struct ZoneSharedGroup
std::set< uint32_t > m_CreditCastIdList; std::set< uint32_t > m_CreditCastIdList;
std::set< uint32_t > m_CreditListIdList; std::set< uint32_t > m_CreditListIdList;
std::set< uint32_t > m_CreditListTextIdList; std::set< uint32_t > m_CreditListTextIdList;
std::set< uint32_t > m_CSBonusContentIdList;
std::set< uint32_t > m_CSBonusContentIdentifierIdList;
std::set< uint32_t > m_CSBonusContentTypeIdList;
std::set< uint32_t > m_CSBonusMissionIdList;
std::set< uint32_t > m_CSBonusMissionTypeIdList;
std::set< uint32_t > m_CSBonusSeasonIdList;
std::set< uint32_t > m_CSBonusTextDataIdList;
std::set< uint32_t > m_CustomTalkIdList; std::set< uint32_t > m_CustomTalkIdList;
std::set< uint32_t > m_CustomTalkDefineClientIdList; std::set< uint32_t > m_CustomTalkDefineClientIdList;
std::set< uint32_t > m_CustomTalkNestHandlersIdList; std::set< uint32_t > m_CustomTalkNestHandlersIdList;
@ -11009,6 +11209,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_EquipSlotCategoryIdList; std::set< uint32_t > m_EquipSlotCategoryIdList;
std::set< uint32_t > m_EurekaAetherItemIdList; std::set< uint32_t > m_EurekaAetherItemIdList;
std::set< uint32_t > m_EurekaAethernetIdList; std::set< uint32_t > m_EurekaAethernetIdList;
std::set< uint32_t > m_EurekaDungeonPortalIdList;
std::set< uint32_t > m_EurekaGrowDataIdList; std::set< uint32_t > m_EurekaGrowDataIdList;
std::set< uint32_t > m_EurekaLogosMixerProbabilityIdList; std::set< uint32_t > m_EurekaLogosMixerProbabilityIdList;
std::set< uint32_t > m_EurekaMagiaActionIdList; std::set< uint32_t > m_EurekaMagiaActionIdList;
@ -11051,6 +11252,8 @@ struct ZoneSharedGroup
std::set< uint32_t > m_FCReputationIdList; std::set< uint32_t > m_FCReputationIdList;
std::set< uint32_t > m_FCRightsIdList; std::set< uint32_t > m_FCRightsIdList;
std::set< uint32_t > m_FestivalIdList; std::set< uint32_t > m_FestivalIdList;
std::set< uint32_t > m_FGSAddonIdList;
std::set< uint32_t > m_FGSStageUIIdList;
std::set< uint32_t > m_FieldMarkerIdList; std::set< uint32_t > m_FieldMarkerIdList;
std::set< uint32_t > m_FishingBaitParameterIdList; std::set< uint32_t > m_FishingBaitParameterIdList;
std::set< uint32_t > m_FishingNoteInfoIdList; std::set< uint32_t > m_FishingNoteInfoIdList;
@ -11112,6 +11315,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_GFateClimbing2ContentIdList; std::set< uint32_t > m_GFateClimbing2ContentIdList;
std::set< uint32_t > m_GFateClimbing2TotemTypeIdList; std::set< uint32_t > m_GFateClimbing2TotemTypeIdList;
std::set< uint32_t > m_GFateRideShootingIdList; std::set< uint32_t > m_GFateRideShootingIdList;
std::set< uint32_t > m_GFateTypeIdList;
std::set< uint32_t > m_GilShopIdList; std::set< uint32_t > m_GilShopIdList;
std::set< uint32_t > m_GilShopItemIdList; std::set< uint32_t > m_GilShopItemIdList;
std::set< uint32_t > m_GimmickAccessorIdList; std::set< uint32_t > m_GimmickAccessorIdList;
@ -11211,6 +11415,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_JournalCategoryIdList; std::set< uint32_t > m_JournalCategoryIdList;
std::set< uint32_t > m_JournalGenreIdList; std::set< uint32_t > m_JournalGenreIdList;
std::set< uint32_t > m_JournalSectionIdList; std::set< uint32_t > m_JournalSectionIdList;
std::set< uint32_t > m_KineDriverOffGroupIdList;
std::set< uint32_t > m_KnockbackIdList; std::set< uint32_t > m_KnockbackIdList;
std::set< uint32_t > m_LegacyQuestIdList; std::set< uint32_t > m_LegacyQuestIdList;
std::set< uint32_t > m_LeveIdList; std::set< uint32_t > m_LeveIdList;
@ -11260,6 +11465,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_MinionRaceIdList; std::set< uint32_t > m_MinionRaceIdList;
std::set< uint32_t > m_MinionRulesIdList; std::set< uint32_t > m_MinionRulesIdList;
std::set< uint32_t > m_MinionSkillTypeIdList; std::set< uint32_t > m_MinionSkillTypeIdList;
std::set< uint32_t > m_MirageStoreSetItemIdList;
std::set< uint32_t > m_MJIAnimalsIdList; std::set< uint32_t > m_MJIAnimalsIdList;
std::set< uint32_t > m_MJIBuildingIdList; std::set< uint32_t > m_MJIBuildingIdList;
std::set< uint32_t > m_MJIBuildingPlaceIdList; std::set< uint32_t > m_MJIBuildingPlaceIdList;
@ -11289,6 +11495,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_MJILivelyActorIdList; std::set< uint32_t > m_MJILivelyActorIdList;
std::set< uint32_t > m_MJIMinionPopAreasIdList; std::set< uint32_t > m_MJIMinionPopAreasIdList;
std::set< uint32_t > m_MJINameIdList; std::set< uint32_t > m_MJINameIdList;
std::set< uint32_t > m_MJINekomimiRequestIdList;
std::set< uint32_t > m_MJIProgressIdList; std::set< uint32_t > m_MJIProgressIdList;
std::set< uint32_t > m_MJIRankIdList; std::set< uint32_t > m_MJIRankIdList;
std::set< uint32_t > m_MJIRecipeIdList; std::set< uint32_t > m_MJIRecipeIdList;
@ -11332,6 +11539,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_NotebookDivisionIdList; std::set< uint32_t > m_NotebookDivisionIdList;
std::set< uint32_t > m_NotebookDivisionCategoryIdList; std::set< uint32_t > m_NotebookDivisionCategoryIdList;
std::set< uint32_t > m_NotoriousMonsterIdList; std::set< uint32_t > m_NotoriousMonsterIdList;
std::set< uint32_t > m_NotoriousMonsterTerritoryIdList;
std::set< uint32_t > m_NpcEquipIdList; std::set< uint32_t > m_NpcEquipIdList;
std::set< uint32_t > m_NpcYellIdList; std::set< uint32_t > m_NpcYellIdList;
std::set< uint32_t > m_OmenIdList; std::set< uint32_t > m_OmenIdList;
@ -11521,6 +11729,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_UDS_PropertyIdList; std::set< uint32_t > m_UDS_PropertyIdList;
std::set< uint32_t > m_UIColorIdList; std::set< uint32_t > m_UIColorIdList;
std::set< uint32_t > m_UIConstIdList; std::set< uint32_t > m_UIConstIdList;
std::set< uint32_t > m_UILevelLookupIdList;
std::set< uint32_t > m_VaseFlowerIdList; std::set< uint32_t > m_VaseFlowerIdList;
std::set< uint32_t > m_VFXIdList; std::set< uint32_t > m_VFXIdList;
std::set< uint32_t > m_VVDDataIdList; std::set< uint32_t > m_VVDDataIdList;
@ -12223,6 +12432,12 @@ const std::set< uint32_t >& getCharaCardDecorationIdList()
loadIdList( m_CharaCardDecorationDat, m_CharaCardDecorationIdList ); loadIdList( m_CharaCardDecorationDat, m_CharaCardDecorationIdList );
return m_CharaCardDecorationIdList; return m_CharaCardDecorationIdList;
} }
const std::set< uint32_t >& getCharaCardDesignCategoryIdList()
{
if( m_CharaCardDesignCategoryIdList.size() == 0 )
loadIdList( m_CharaCardDesignCategoryDat, m_CharaCardDesignCategoryIdList );
return m_CharaCardDesignCategoryIdList;
}
const std::set< uint32_t >& getCharaCardDesignPresetIdList() const std::set< uint32_t >& getCharaCardDesignPresetIdList()
{ {
if( m_CharaCardDesignPresetIdList.size() == 0 ) if( m_CharaCardDesignPresetIdList.size() == 0 )
@ -12541,6 +12756,12 @@ const std::set< uint32_t >& getContentFinderConditionTransientIdList()
loadIdList( m_ContentFinderConditionTransientDat, m_ContentFinderConditionTransientIdList ); loadIdList( m_ContentFinderConditionTransientDat, m_ContentFinderConditionTransientIdList );
return m_ContentFinderConditionTransientIdList; return m_ContentFinderConditionTransientIdList;
} }
const std::set< uint32_t >& getContentFinderParamTableIdList()
{
if( m_ContentFinderParamTableIdList.size() == 0 )
loadIdList( m_ContentFinderParamTableDat, m_ContentFinderParamTableIdList );
return m_ContentFinderParamTableIdList;
}
const std::set< uint32_t >& getContentGaugeIdList() const std::set< uint32_t >& getContentGaugeIdList()
{ {
if( m_ContentGaugeIdList.size() == 0 ) if( m_ContentGaugeIdList.size() == 0 )
@ -12559,6 +12780,12 @@ const std::set< uint32_t >& getContentMemberTypeIdList()
loadIdList( m_ContentMemberTypeDat, m_ContentMemberTypeIdList ); loadIdList( m_ContentMemberTypeDat, m_ContentMemberTypeIdList );
return m_ContentMemberTypeIdList; return m_ContentMemberTypeIdList;
} }
const std::set< uint32_t >& getContentNpcIdList()
{
if( m_ContentNpcIdList.size() == 0 )
loadIdList( m_ContentNpcDat, m_ContentNpcIdList );
return m_ContentNpcIdList;
}
const std::set< uint32_t >& getContentNpcTalkIdList() const std::set< uint32_t >& getContentNpcTalkIdList()
{ {
if( m_ContentNpcTalkIdList.size() == 0 ) if( m_ContentNpcTalkIdList.size() == 0 )
@ -12685,6 +12912,48 @@ const std::set< uint32_t >& getCreditListTextIdList()
loadIdList( m_CreditListTextDat, m_CreditListTextIdList ); loadIdList( m_CreditListTextDat, m_CreditListTextIdList );
return m_CreditListTextIdList; return m_CreditListTextIdList;
} }
const std::set< uint32_t >& getCSBonusContentIdList()
{
if( m_CSBonusContentIdList.size() == 0 )
loadIdList( m_CSBonusContentDat, m_CSBonusContentIdList );
return m_CSBonusContentIdList;
}
const std::set< uint32_t >& getCSBonusContentIdentifierIdList()
{
if( m_CSBonusContentIdentifierIdList.size() == 0 )
loadIdList( m_CSBonusContentIdentifierDat, m_CSBonusContentIdentifierIdList );
return m_CSBonusContentIdentifierIdList;
}
const std::set< uint32_t >& getCSBonusContentTypeIdList()
{
if( m_CSBonusContentTypeIdList.size() == 0 )
loadIdList( m_CSBonusContentTypeDat, m_CSBonusContentTypeIdList );
return m_CSBonusContentTypeIdList;
}
const std::set< uint32_t >& getCSBonusMissionIdList()
{
if( m_CSBonusMissionIdList.size() == 0 )
loadIdList( m_CSBonusMissionDat, m_CSBonusMissionIdList );
return m_CSBonusMissionIdList;
}
const std::set< uint32_t >& getCSBonusMissionTypeIdList()
{
if( m_CSBonusMissionTypeIdList.size() == 0 )
loadIdList( m_CSBonusMissionTypeDat, m_CSBonusMissionTypeIdList );
return m_CSBonusMissionTypeIdList;
}
const std::set< uint32_t >& getCSBonusSeasonIdList()
{
if( m_CSBonusSeasonIdList.size() == 0 )
loadIdList( m_CSBonusSeasonDat, m_CSBonusSeasonIdList );
return m_CSBonusSeasonIdList;
}
const std::set< uint32_t >& getCSBonusTextDataIdList()
{
if( m_CSBonusTextDataIdList.size() == 0 )
loadIdList( m_CSBonusTextDataDat, m_CSBonusTextDataIdList );
return m_CSBonusTextDataIdList;
}
const std::set< uint32_t >& getCustomTalkIdList() const std::set< uint32_t >& getCustomTalkIdList()
{ {
if( m_CustomTalkIdList.size() == 0 ) if( m_CustomTalkIdList.size() == 0 )
@ -13045,6 +13314,12 @@ const std::set< uint32_t >& getEurekaAethernetIdList()
loadIdList( m_EurekaAethernetDat, m_EurekaAethernetIdList ); loadIdList( m_EurekaAethernetDat, m_EurekaAethernetIdList );
return m_EurekaAethernetIdList; return m_EurekaAethernetIdList;
} }
const std::set< uint32_t >& getEurekaDungeonPortalIdList()
{
if( m_EurekaDungeonPortalIdList.size() == 0 )
loadIdList( m_EurekaDungeonPortalDat, m_EurekaDungeonPortalIdList );
return m_EurekaDungeonPortalIdList;
}
const std::set< uint32_t >& getEurekaGrowDataIdList() const std::set< uint32_t >& getEurekaGrowDataIdList()
{ {
if( m_EurekaGrowDataIdList.size() == 0 ) if( m_EurekaGrowDataIdList.size() == 0 )
@ -13297,6 +13572,18 @@ const std::set< uint32_t >& getFestivalIdList()
loadIdList( m_FestivalDat, m_FestivalIdList ); loadIdList( m_FestivalDat, m_FestivalIdList );
return m_FestivalIdList; return m_FestivalIdList;
} }
const std::set< uint32_t >& getFGSAddonIdList()
{
if( m_FGSAddonIdList.size() == 0 )
loadIdList( m_FGSAddonDat, m_FGSAddonIdList );
return m_FGSAddonIdList;
}
const std::set< uint32_t >& getFGSStageUIIdList()
{
if( m_FGSStageUIIdList.size() == 0 )
loadIdList( m_FGSStageUIDat, m_FGSStageUIIdList );
return m_FGSStageUIIdList;
}
const std::set< uint32_t >& getFieldMarkerIdList() const std::set< uint32_t >& getFieldMarkerIdList()
{ {
if( m_FieldMarkerIdList.size() == 0 ) if( m_FieldMarkerIdList.size() == 0 )
@ -13663,6 +13950,12 @@ const std::set< uint32_t >& getGFateRideShootingIdList()
loadIdList( m_GFateRideShootingDat, m_GFateRideShootingIdList ); loadIdList( m_GFateRideShootingDat, m_GFateRideShootingIdList );
return m_GFateRideShootingIdList; return m_GFateRideShootingIdList;
} }
const std::set< uint32_t >& getGFateTypeIdList()
{
if( m_GFateTypeIdList.size() == 0 )
loadIdList( m_GFateTypeDat, m_GFateTypeIdList );
return m_GFateTypeIdList;
}
const std::set< uint32_t >& getGilShopIdList() const std::set< uint32_t >& getGilShopIdList()
{ {
if( m_GilShopIdList.size() == 0 ) if( m_GilShopIdList.size() == 0 )
@ -14257,6 +14550,12 @@ const std::set< uint32_t >& getJournalSectionIdList()
loadIdList( m_JournalSectionDat, m_JournalSectionIdList ); loadIdList( m_JournalSectionDat, m_JournalSectionIdList );
return m_JournalSectionIdList; return m_JournalSectionIdList;
} }
const std::set< uint32_t >& getKineDriverOffGroupIdList()
{
if( m_KineDriverOffGroupIdList.size() == 0 )
loadIdList( m_KineDriverOffGroupDat, m_KineDriverOffGroupIdList );
return m_KineDriverOffGroupIdList;
}
const std::set< uint32_t >& getKnockbackIdList() const std::set< uint32_t >& getKnockbackIdList()
{ {
if( m_KnockbackIdList.size() == 0 ) if( m_KnockbackIdList.size() == 0 )
@ -14551,6 +14850,12 @@ const std::set< uint32_t >& getMinionSkillTypeIdList()
loadIdList( m_MinionSkillTypeDat, m_MinionSkillTypeIdList ); loadIdList( m_MinionSkillTypeDat, m_MinionSkillTypeIdList );
return m_MinionSkillTypeIdList; return m_MinionSkillTypeIdList;
} }
const std::set< uint32_t >& getMirageStoreSetItemIdList()
{
if( m_MirageStoreSetItemIdList.size() == 0 )
loadIdList( m_MirageStoreSetItemDat, m_MirageStoreSetItemIdList );
return m_MirageStoreSetItemIdList;
}
const std::set< uint32_t >& getMJIAnimalsIdList() const std::set< uint32_t >& getMJIAnimalsIdList()
{ {
if( m_MJIAnimalsIdList.size() == 0 ) if( m_MJIAnimalsIdList.size() == 0 )
@ -14725,6 +15030,12 @@ const std::set< uint32_t >& getMJINameIdList()
loadIdList( m_MJINameDat, m_MJINameIdList ); loadIdList( m_MJINameDat, m_MJINameIdList );
return m_MJINameIdList; return m_MJINameIdList;
} }
const std::set< uint32_t >& getMJINekomimiRequestIdList()
{
if( m_MJINekomimiRequestIdList.size() == 0 )
loadIdList( m_MJINekomimiRequestDat, m_MJINekomimiRequestIdList );
return m_MJINekomimiRequestIdList;
}
const std::set< uint32_t >& getMJIProgressIdList() const std::set< uint32_t >& getMJIProgressIdList()
{ {
if( m_MJIProgressIdList.size() == 0 ) if( m_MJIProgressIdList.size() == 0 )
@ -14983,6 +15294,12 @@ const std::set< uint32_t >& getNotoriousMonsterIdList()
loadIdList( m_NotoriousMonsterDat, m_NotoriousMonsterIdList ); loadIdList( m_NotoriousMonsterDat, m_NotoriousMonsterIdList );
return m_NotoriousMonsterIdList; return m_NotoriousMonsterIdList;
} }
const std::set< uint32_t >& getNotoriousMonsterTerritoryIdList()
{
if( m_NotoriousMonsterTerritoryIdList.size() == 0 )
loadIdList( m_NotoriousMonsterTerritoryDat, m_NotoriousMonsterTerritoryIdList );
return m_NotoriousMonsterTerritoryIdList;
}
const std::set< uint32_t >& getNpcEquipIdList() const std::set< uint32_t >& getNpcEquipIdList()
{ {
if( m_NpcEquipIdList.size() == 0 ) if( m_NpcEquipIdList.size() == 0 )
@ -16117,6 +16434,12 @@ const std::set< uint32_t >& getUIConstIdList()
loadIdList( m_UIConstDat, m_UIConstIdList ); loadIdList( m_UIConstDat, m_UIConstIdList );
return m_UIConstIdList; return m_UIConstIdList;
} }
const std::set< uint32_t >& getUILevelLookupIdList()
{
if( m_UILevelLookupIdList.size() == 0 )
loadIdList( m_UILevelLookupDat, m_UILevelLookupIdList );
return m_UILevelLookupIdList;
}
const std::set< uint32_t >& getVaseFlowerIdList() const std::set< uint32_t >& getVaseFlowerIdList()
{ {
if( m_VaseFlowerIdList.size() == 0 ) if( m_VaseFlowerIdList.size() == 0 )

View file

@ -42,41 +42,41 @@ enum ClientLobbyIpcType :
enum ServerZoneIpcType : enum ServerZoneIpcType :
uint16_t uint16_t
{ {
Ping = 0x378, // updated 6.48 Ping = 0x1D9, // updated 6.58 hotfix 2
Init = 0x2ac, // updated 6.48 Init = 0x12A, // updated 6.58 hotfix 2
ActorFreeSpawn = 0x112, // updated 6.48 ActorFreeSpawn = 0x195, // updated 6.58 hotfix 2
InitZone = 0x71, // updated 6.48 InitZone = 0x02D1, // updated 6.58 hotfix 2
PrepareZoning = 0x188, // updated 6.48 PrepareZoning = 0x0124, // updated 6.58 hotfix 2
EffectResult = 0x2a3, // updated 6.48 EffectResult = 0x0336, // updated 6.58 hotfix 2
EffectResultBasic = 0xfa, // updated 6.48 EffectResultBasic = 0x023A, // updated 6.58 hotfix 2
ActorControl = 0xd4, // updated 6.48 ActorControl = 0x0148, // updated 6.58 hotfix 2
ActorControlTarget = 0xef, // updated 6.48 ActorControlTarget = 0x032C, // updated 6.58 hotfix 2
ActorControlSelf = 0x3c1, // updated 6.48 ActorControlSelf = 0x025D, // updated 6.58 hotfix 2
ActorCast = 0xc8, // updated 6.48 ActorCast = 0x01BB, // updated 6.58 hotfix 2
ActorSetPos = 0x32c, // updated 6.48 ActorSetPos = 0x029D, // updated 6.58 hotfix 2
ActorMove = 0x1aa, // updated 6.48 ActorMove = 0x011C, // updated 6.58 hotfix 2
ActorGauge = 0x2a4, // updated 6.48 ActorGauge = 0x03B3, // updated 6.58 hotfix 2
/*! /*!
* @brief Used when resting * @brief Used when resting
*/ */
UpdateHpMpTp = 0x1fb, // updated 6.48 UpdateHpMpTp = 0x007D, // updated 6.58 hotfix 2
UpdateClassInfo = 0x3e3, // updated 6.48 UpdateClassInfo = 0x0172, // updated 6.58 hotfix 2
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
ChatBanned = 0xF06B, ChatBanned = 0xF06B,
Playtime = 0x313, // updated 6.48 Playtime = 0x03DE, // updated 6.58 hotfix 2
Logout = 0x116, // updated 6.48 Logout = 0x0378, // updated 6.58 hotfix 2
CFNotify = 0x69, // updated 6.48 CFNotify = 0x0279, // updated 6.58 hotfix 2
CFMemberStatus = 0x0079, CFMemberStatus = 0x0079,
CFDutyInfo = 0x1be, // updated 6.48 CFDutyInfo = 0x1be, // updated 6.48
CFPlayerInNeed = 0xF07F, CFPlayerInNeed = 0xF07F,
CFPreferredRole = 0x160, // updated 6.48 CFPreferredRole = 0x282, // updated 6.58 hotfix 2
CFCancel = 0x1bb, // updated 6.48 CFCancel = 0x1bb, // updated 6.48
SocialRequestError = 0xF0AD, SocialRequestError = 0xF0AD,
@ -93,26 +93,26 @@ enum ServerZoneIpcType :
WorldVisitList = 0xF0FE, // added 4.5 WorldVisitList = 0xF0FE, // added 4.5
SocialList = 0xb1, // updated 6.48 SocialList = 0x1F2, // updated 6.58 hotfix 2
ExamineSearchInfo = 0x357, // updated 6.48 ExamineSearchInfo = 0x014A, // updated 6.58 hotfix 2
UpdateSearchInfo = 0x115, // updated 6.48 UpdateSearchInfo = 0x00CF, // updated 6.58 hotfix 2
InitSearchInfo = 0x70, // updated 6.48 InitSearchInfo = 0x329, // updated 6.58 hotfix 2
ExamineSearchComment = 0x199, // updated 6.48 ExamineSearchComment = 0x199, // updated 6.48
ServerNoticeShort = 0x0333, // updated 5.58h ServerNoticeShort = 0x0333, // updated 5.58h
ServerNotice = 0x2b1, // updated 6.48 ServerNotice = 0x33B, // updated 6.58 hotfix 2
SystemLogMessage = 0x3c8, // updated 6.48 SystemLogMessage = 0x03A9, // updated 6.58 hotfix 2
SetOnlineStatus = 0x17a, // updated 6.48 SetOnlineStatus = 0x285, // updated 6.58 hotfix 2
CountdownInitiate = 0x399, // updated 6.48 CountdownInitiate = 0x376, // updated 6.58 hotfix 2
CountdownCancel = 0x342, // updated 6.48 CountdownCancel = 0x2B7, // updated 6.58 hotfix 2
PlayerAddedToBlacklist = 0xe2, // updated 6.48 PlayerAddedToBlacklist = 0xe2, // updated 6.48
PlayerRemovedFromBlacklist = 0xd0, // updated 6.48 PlayerRemovedFromBlacklist = 0xd0, // updated 6.48
BlackList = 0x233, // updated 6.48 BlackList = 0x38A, // updated 6.58 hotfix 2
LinkshellList = 0x1f8, // updated 6.48 LinkshellList = 0x2B2, // updated 6.58 hotfix 2
CrossWorldLinkshellList = 0x3cc, // updated 6.48 CrossWorldLinkshellList = 0x3cc, // updated 6.48
FellowshipList = 0x1c5, // updated 6.48 FellowshipList = 0x1c5, // updated 6.48
@ -125,111 +125,111 @@ enum ServerZoneIpcType :
MarketTaxRates = 0x01F8, // updated 5.35h MarketTaxRates = 0x01F8, // updated 5.35h
MarketBoardSearchResult = 0x3d6, // updated 6.48 MarketBoardSearchResult = 0x0161, // updated 6.58 hotfix 2
MarketBoardItemListingCount = 0x306, // updated 6.48 MarketBoardItemListingCount = 0x0286, // updated 6.58 hotfix 2
MarketBoardItemListingHistory = 0x2f4, // updated 6.48 MarketBoardItemListingHistory = 0x0229, // updated 6.58 hotfix 2
MarketBoardItemListing = 0x1db, // updated 6.48 MarketBoardItemListing = 0x03E3, // updated 6.58 hotfix 2
MarketBoardPurchase = 0x1f0, // updated 6.48 MarketBoardPurchase = 0x0143, // updated 6.58 hotfix 2
ItemMarketBoardInfo = 0x11b, // updated 6.48 ItemMarketBoardInfo = 0x01BC, // updated 6.58 hotfix 2
CharaFreeCompanyTag = 0x013B, // updated 4.5 CharaFreeCompanyTag = 0x013B, // updated 4.5
FreeCompanyBoardMsg = 0x03DB, // updated 5.58h FreeCompanyBoardMsg = 0x03DB, // updated 5.58h
FreeCompanyInfo = 0x30f, // updated 6.48 FreeCompanyInfo = 0x02D5, // updated 6.58 hotfix 2
FreeCompanyDialog = 0x1b4, // updated 6.48 FreeCompanyDialog = 0x029F, // updated 6.58 hotfix 2
ExamineFreeCompanyInfo = 0x158, // updated 6.48 ExamineFreeCompanyInfo = 0x158, // updated 6.48
FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 FreeCompanyUpdateShortMessage = 0xF157, // added 5.0
StatusEffectList = 0x1dd, // updated 6.48 StatusEffectList = 0x0383, // updated 6.58 hotfix 2
EurekaStatusEffectList = 0x192, // updated 6.48 EurekaStatusEffectList = 0x3A8, // updated 6.58 hotfix 2
BossStatusEffectList = 0x2cb, // updated 6.48 BossStatusEffectList = 0x28C, // updated 6.58 hotfix 2
StatusEffectList2 = 0x166, // updated 6.48 StatusEffectList2 = 0x0369, // updated 6.58 hotfix 2
StatusEffectList3 = 0x31f, // updated 6.48 StatusEffectList3 = 0x0163, // updated 6.58 hotfix 2
Effect = 0x354, // updated 6.48 Effect = 0x037D, // updated 6.58 hotfix 2
AoeEffect8 = 0x18f, // updated 6.48 AoeEffect8 = 0x0F4, // updated 6.58 hotfix 2
AoeEffect16 = 0x38f, // updated 6.48 AoeEffect16 = 0x121, // updated 6.58 hotfix 2
AoeEffect24 = 0xd1, // updated 6.48 AoeEffect24 = 0x2E3, // updated 6.58 hotfix 2
AoeEffect32 = 0x340, // updated 6.48 AoeEffect32 = 0x1FB, // updated 6.58 hotfix 2
PersistantEffect = 0x31f, // updated 6.48 PersistantEffect = 0x163, // updated 6.58 hotfix 2
PlaceFieldMarker = 0x194, // updated 6.48 PlaceFieldMarker = 0x02E4, // updated 6.58 hotfix 2
PlaceFieldMarkerPreset = 0x221, // updated 6.48 PlaceFieldMarkerPreset = 0x030A, // updated 6.58 hotfix 2
GCAffiliation = 0x280, // updated 6.48 GCAffiliation = 0x35D, // updated 6.58 hotfix 2
PlayerSpawn = 0x10e, // updated 6.48 PlayerSpawn = 0x039C, // updated 6.58 hotfix 2
NpcSpawn = 0x91, // updated 6.48 NpcSpawn = 0x00A7, // updated 6.58 hotfix 2
NpcSpawn2 = 0x2b6, // updated 6.48 NpcSpawn2 = 0x338, // updated 6.58 hotfix 2?
SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18
PartyList = 0x16f, // updated 6.48 PartyList = 0x16f, // updated 6.48
PartyMessage = 0x336, // updated 6.48 PartyMessage = 0x336, // updated 6.48
HateRank = 0x33f, // updated 6.48 HateRank = 0x2A7, // updated 6.58 hotfix 2
HateList = 0x356, // updated 6.48 HateList = 0x26B, // updated 6.58 hotfix 2
ObjectSpawn = 0x190, // updated 6.48 ObjectSpawn = 0x03B8, // updated 6.58 hotfix 2
ObjectDespawn = 0xd2, // updated 6.48 ObjectDespawn = 0x1D8, // updated 6.58 hotfix 2
SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything
PlayerSetup = 0x20e, // updated 6.48 PlayerSetup = 0x035F, // updated 6.58 hotfix 2
PlayerStats = 0x2f3, // updated 6.48 PlayerStats = 0x034F, // updated 6.58 hotfix 2
ActorOwner = 0x20e, // updated 6.48 ActorOwner = 0x2c3, // updated 6.58 hotfix 2?
PlayerStateFlags = 0x2ed, // updated 6.48 PlayerStateFlags = 0x1B6, // updated 6.58 hotfix 2
PlayerClassInfo = 0xfb, // updated 6.48 PlayerClassInfo = 0x238, // updated 6.58 hotfix 2
PlayerUpdateLook = 0xa8, // updated 6.48 PlayerUpdateLook = 0xa8, // updated 6.48
CharaVisualEffect = 0x2fc, // updated 6.48 CharaVisualEffect = 0x0C1, // updated 6.58 hotfix 2
ModelEquip = 0x82, // updated 6.48 ModelEquip = 0x27D, // updated 6.58 hotfix 2
Examine = 0x200, // updated 6.48 Examine = 0x02C0, // updated 6.58 hotfix 2
CharaNameReq = 0x267, // updated 6.48 CharaNameReq = 0x267, // updated 6.48
// nb: see #565 on github // nb: see #565 on github
UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0 UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0
RetainerSaleHistory = 0x23d, // updated 6.48 RetainerSaleHistory = 0x23d, // updated 6.48
RetainerInformation = 0x2fe, // updated 6.48 RetainerInformation = 0x00ED, // updated 6.58 hotfix 2
SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore
ItemInfo = 0x3a4, // updated 6.48 ItemInfo = 0x02F0, // updated 6.58 hotfix 2
ContainerInfo = 0x208, // updated 6.48 ContainerInfo = 0x0069, // updated 6.58 hotfix 2
InventoryTransactionFinish = 0x298, // updated 6.48 InventoryTransactionFinish = 0x009C, // updated 6.58 hotfix 2
InventoryTransaction = 0x3db, // updated 6.48 InventoryTransaction = 0x02BD, // updated 6.58 hotfix 2
CurrencyCrystalInfo = 0x389, // updated 6.48 CurrencyCrystalInfo = 0x02DE, // updated 6.58 hotfix 2
InventoryActionAck = 0x134, // updated 6.48 InventoryActionAck = 0x00DD, // updated 6.58 hotfix 2
UpdateInventorySlot = 0xa4, // updated 6.48 UpdateInventorySlot = 0x034D, // updated 6.58 hotfix 2
HuntingLogEntry = 0xb9, // updated 6.48 HuntingLogEntry = 0x388, // updated 6.58 hotfix 2
EventPlay = 0x2db, // updated 6.48 EventPlay = 0x0155, // updated 6.58 hotfix 2
EventPlay4 = 0xe8, // updated 6.48 EventPlay4 = 0x00D0, // updated 6.58 hotfix 2
EventPlay8 = 0xfe, // updated 6.48 EventPlay8 = 0x022B, // updated 6.58 hotfix 2
EventPlay16 = 0x8f, // updated 6.48 EventPlay16 = 0x00D2, // updated 6.58 hotfix 2
EventPlay32 = 0x374, // updated 6.48 EventPlay32 = 0x02CF, // updated 6.58 hotfix 2
EventPlay64 = 0x27f, // updated 6.48 EventPlay64 = 0x01D4, // updated 6.58 hotfix 2
EventPlay128 = 0x365, // updated 6.48 EventPlay128 = 0x039F, // updated 6.58 hotfix 2
EventPlay255 = 0xdb, // updated 6.48 EventPlay255 = 0x0073, // updated 6.58 hotfix 2
EventStart = 0x2be, // updated 6.48 EventStart = 0x0146, // updated 6.58 hotfix 2
EventFinish = 0x289, // updated 6.48 EventFinish = 0x0339, // updated 6.58 hotfix 2
EventContinue = 0xd9, // updated 6.48 EventReturn = 0x11d, // updated 6.45
EventLinkshell = 0x1169, EventLinkshell = 0x1169,
QuestActiveList = 0x108, // updated 6.48 QuestActiveList = 0x247, // updated 6.58 hotfix 2
QuestUpdate = 0x2f0, // updated 6.48 QuestUpdate = 0x2f0, // updated 6.48
QuestCompleteList = 0x17f, // updated 6.48 QuestCompleteList = 0x352, // updated 6.58 hotfix 2
QuestFinish = 0xf4, // updated 6.48 QuestFinish = 0xf4, // updated 6.48
MSQTrackerComplete = 0x20a, // updated 6.48 MSQTrackerComplete = 0x1A9, // updated 6.58 hotfix 2
MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474
QuestMessage = 0x0220, // updated 5.58h QuestMessage = 0x0220, // updated 5.58h
QuestTracker = 0x2ec, // updated 6.48 QuestTracker = 0x27C, // updated 6.58 hotfix 2
Mount = 0x242, // updated 6.48 Mount = 0x09F, // updated 6.58 hotfix 2
DirectorVars = 0x114, // updated 6.48 DirectorVars = 0x3A6, // updated 6.58 hotfix 2
SomeDirectorUnk1 = 0x0084, // updated 5.18 SomeDirectorUnk1 = 0x0084, // updated 5.18
SomeDirectorUnk2 = 0xF0C1, // updated 5.18 SomeDirectorUnk2 = 0xF0C1, // updated 5.18
SomeDirectorUnk4 = 0x03DD, // updated 5.58h SomeDirectorUnk4 = 0x03DD, // updated 5.58h
@ -241,23 +241,23 @@ enum ServerZoneIpcType :
CFAvailableContents = 0xF1FD, // updated 4.2 CFAvailableContents = 0xF1FD, // updated 4.2
WeatherChange = 0x21c, // updated 6.48 WeatherChange = 0x021D, // updated 6.58 hotfix 2
PlayerTitleList = 0x17c, // updated 6.48 PlayerTitleList = 0x17c, // updated 6.48
Discovery = 0x14f, // updated 6.48 Discovery = 0x14f, // updated 6.48
EorzeaTimeOffset = 0x1a2, // updated 6.48 EorzeaTimeOffset = 0x1a2, // updated 6.48
EquipDisplayFlags = 0x24e, // updated 6.48 EquipDisplayFlags = 0x33A, // updated 6.58 hotfix 2
MiniCactpotInit = 0x0286, // added 5.31 MiniCactpotInit = 0x0286, // added 5.31
ShopMessage = 0x0287, // updated 5.58h ShopMessage = 0x016F, // updated 6.58 hotfix 2
LootMessage = 0x219, // updated 6.48 LootMessage = 0x219, // updated 6.48
ResultDialog = 0x21f, // updated 6.48 ResultDialog = 0x0362, // updated 6.58 hotfix 2
DesynthResult = 0x296, // updated 6.48 DesynthResult = 0x007F, // updated 6.58 hotfix 2
/// Housing ////////////////////////////////////// /// Housing //////////////////////////////////////
LandSetInitialize = 0x228, // updated 6.48 LandSetInitialize = 0x1C9, // updated 6.58 hotfix 2
LandUpdate = 0x26c, // updated 6.48 LandUpdate = 0x26c, // updated 6.48
LandAvailability = 0x258, // updated 6.48 LandAvailability = 0x258, // updated 6.48
YardObjectSpawn = 0x2c0, // updated 6.48 YardObjectSpawn = 0x2c0, // updated 6.48
@ -267,13 +267,13 @@ enum ServerZoneIpcType :
LandRename = 0x255, // updated 6.48 LandRename = 0x255, // updated 6.48
HousingEstateGreeting = 0x253, // updated 6.48 HousingEstateGreeting = 0x253, // updated 6.48
HousingUpdateLandFlagsSlot = 0x3a1, // updated 6.48 HousingUpdateLandFlagsSlot = 0x3a1, // updated 6.48
HousingLandFlags = 0x197, // updated 6.48 HousingLandFlags = 0x330, // updated 6.58 hotfix 2
HousingShowEstateGuestAccess = 0x2f2, // updated 6.48 HousingShowEstateGuestAccess = 0x2f2, // updated 6.48
HousingObjectInitialize = 0x39e, // updated 6.48 HousingObjectInitialize = 0x1AA, // updated 6.58 hotfix 2
HousingInternalObjectSpawn = 0x31c, // updated 6.48 HousingInternalObjectSpawn = 0x31c, // updated 6.48
HousingWardInfo = 0x395, // updated 6.48 HousingWardInfo = 0x327, // updated 6.58 hotfix 2?
HousingObjectMove = 0x21b, // updated 6.48 HousingObjectMove = 0x21b, // updated 6.48
HousingObjectDye = 0x2a6, // updated 6.48 HousingObjectDye = 0x2a6, // updated 6.48
@ -292,8 +292,8 @@ enum ServerZoneIpcType :
DutyGauge = 0x02E5, // updated 5.58h DutyGauge = 0x02E5, // updated 5.58h
// daily quest info -> without them sent, login will take longer... // daily quest info -> without them sent, login will take longer...
DailyQuests = 0x90, // updated 6.48 DailyQuests = 0x2EF, // updated 6.58 hotfix 2
DailyQuestRepeatFlags = 0x382, // updated 6.48 DailyQuestRepeatFlags = 0x134, // updated 6.58 hotfix 2
MapUpdate = 0xa3, // updated 6.48 MapUpdate = 0xa3, // updated 6.48
MapUpdate4 = 0x345, // updated 6.48 MapUpdate4 = 0x345, // updated 6.48
@ -316,19 +316,19 @@ enum ServerZoneIpcType :
MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen. MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen.
/// Airship & Submarine ////////////////////////////////////// /// Airship & Submarine //////////////////////////////////////
AirshipTimers = 0x34f, // updated 6.48 AirshipTimers = 0x0123, // updated 6.58 hotfix 2
AirshipStatus = 0x16b, // updated 6.48 AirshipStatus = 0x0291, // updated 6.58 hotfix 2
AirshipStatusList = 0x2e4, // updated 6.48 AirshipStatusList = 0x023B, // updated 6.58 hotfix 2
AirshipExplorationResult = 0x359, // updated 6.48 AirshipExplorationResult = 0x01BD, // updated 6.58 hotfix 2
SubmarineTimers = 0x3af, // updated 6.48 SubmarineTimers = 0x0185, // updated 6.58 hotfix 2
SubmarineProgressionStatus = 0x152, // updated 6.48 SubmarineProgressionStatus = 0x02DD, // updated 6.58 hotfix 2
SubmarineStatusList = 0xc4, // updated 6.48 SubmarineStatusList = 0x03E2, // updated 6.58 hotfix 2
SubmarineExplorationResult = 0x376, // updated 6.48 SubmarineExplorationResult = 0x02AA, // updated 6.58 hotfix 2
EnvironmentControl = 0x137, // updated 6.48 EnvironmentControl = 0x02FC, // updated 6.58 hotfix 2
RSVData = 0x212, // updated 6.48 RSVData = 0x212, // updated 6.48
IslandWorkshopSupplyDemand = 0xf9, // updated 6.48 IslandWorkshopSupplyDemand = 0x013C, // updated 6.58 hotfix 2
}; };
/** /**
@ -337,10 +337,10 @@ enum ServerZoneIpcType :
enum ClientZoneIpcType : enum ClientZoneIpcType :
uint16_t uint16_t
{ {
PingHandler = 0x238, // updated 6.48 PingHandler = 0x2AE, // updated 6.58 hotfix 2
InitHandler = 0x3b6, // updated 6.48 InitHandler = 0x1CE, // updated 6.58 hotfix 2
FinishLoadingHandler = 0x2ac, // updated 6.48 FinishLoadingHandler = 0x12A, // updated 6.58 hotfix 2
CFCommenceHandler = 0x0381, // updated 5.58h CFCommenceHandler = 0x0381, // updated 5.58h
@ -348,7 +348,7 @@ enum ClientZoneIpcType :
CFRegisterDuty = 0x01BD, // updated 5.58h CFRegisterDuty = 0x01BD, // updated 5.58h
CFRegisterRoulette = 0x037A, // updated 5.58h CFRegisterRoulette = 0x037A, // updated 5.58h
PlayTimeHandler = 0x02B7, // updated 5.58h PlayTimeHandler = 0x02B7, // updated 5.58h
LogoutHandler = 0x1ad, // updated 6.48 LogoutHandler = 0x384, // updated 6.58 hotfix 2
CancelLogout = 0x01e3, // updated 6.31h CancelLogout = 0x01e3, // updated 6.31h
CFDutyInfoHandler = 0xF078, // updated 4.2 CFDutyInfoHandler = 0xF078, // updated 4.2
@ -356,31 +356,31 @@ enum ClientZoneIpcType :
SocialResponseHandler = 0x023B, // updated 5.58h SocialResponseHandler = 0x023B, // updated 5.58h
CreateCrossWorldLS = 0x9999, // updated 5.58h CreateCrossWorldLS = 0x9999, // updated 5.58h
ChatHandler = 0x1df, // updated 6.48 ChatHandler = 0x246, // updated 6.58 hotfix 2
PartyChatHandler = 0x0065, PartySetLeaderHandler = 0x036C, // updated 5.58h PartyChatHandler = 0x0065, PartySetLeaderHandler = 0x036C, // updated 5.58h
LeavePartyHandler = 0x019D, // updated 5.58h LeavePartyHandler = 0x019D, // updated 5.58h
KickPartyMemberHandler = 0x0262, // updated 5.58h KickPartyMemberHandler = 0x0262, // updated 5.58h
DisbandPartyHandler = 0x0276, // updated 5.58h DisbandPartyHandler = 0x0276, // updated 5.58h
SocialListHandler = 0x206, // updated 6.40 SocialListHandler = 0x10B, // updated 6.58 hotfix 2
SetSearchInfoHandler = 0x230, // updated 6.48 SetSearchInfoHandler = 0x01A0, // updated 6.58 hotfix 2
ReqSearchInfoHandler = 0x03b0, // updated 6.31h ReqSearchInfoHandler = 0x0235, // updated 6.58 hotfix 2
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
ReqRemovePlayerFromBlacklist = 0x00B4, // updated 5.58h ReqRemovePlayerFromBlacklist = 0x00B4, // updated 5.58h
BlackListHandler = 0x153, // updated 6.48 BlackListHandler = 0x284, // updated 6.58 hotfix 2
PlayerSearchHandler = 0x037D, // updated 5.58h PlayerSearchHandler = 0x037D, // updated 5.58h
LinkshellListHandler = 0x03B6, // updated 5.58h LinkshellListHandler = 0x0302, // updated 6.58 hotfix 2
MarketBoardRequestItemListingInfo = 0x00F4, // updated 5.58h MarketBoardRequestItemListingInfo = 0x00F4, // updated 5.58h
MarketBoardRequestItemListings = 0x0122, // updated 5.58h MarketBoardRequestItemListings = 0x0122, // updated 5.58h
MarketBoardSearch = 0x0082, // updated 5.58h MarketBoardSearch = 0x0082, // updated 5.58h
MarketBoardPurchaseHandler = 0x15b, // updated 6.48 MarketBoardPurchaseHandler = 0x0322, // updated 6.58 hotfix 2
ReqExamineFcInfo = 0xF37B, // updated 5.58h (prepended F. Conflicts with FinishLoadingHandler 6.38) ReqExamineFcInfo = 0xF37B, // updated 5.58h (prepended F. Conflicts with FinishLoadingHandler 6.38)
FcInfoReqHandler = 0x9999, // unknown FcInfoReqHandler = 0x33B, // updated 6.58 hotfix 2
FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0 FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0
@ -388,35 +388,35 @@ enum ClientZoneIpcType :
ReqJoinNoviceNetwork = 0x0129, // updated 4.2 ReqJoinNoviceNetwork = 0x0129, // updated 4.2
ReqCountdownInitiate = 0x03e1, // updated 6.31h ReqCountdownInitiate = 0x03E3, // updated 6.58 hotfix 2
ReqCountdownCancel = 0x023a, // updated 6.31h ReqCountdownCancel = 0x023a, // updated 6.31h
ZoneLineHandler = 0x34e, // updated 6.48 ZoneLineHandler = 0x34e, // updated 6.48
ClientTrigger = 0x186, // updated 6.48 ClientTrigger = 0x035C, // updated 6.58 hotfix 2
DiscoveryHandler = 0x038B, // updated 5.58h DiscoveryHandler = 0x038B, // updated 5.58h
SkillHandler = 0xa7, // updated 6.48 SkillHandler = 0x07C, // updated 6.58 hotfix 2
GMCommand1 = 0x2f9, // updated 6.48 GMCommand1 = 0x152, // updated 6.58 hotfix 2
GMCommand2 = 0x299, // updated 6.48 GMCommand2 = 0x299, // updated 6.48
AoESkillHandler = 0x65, // updated 6.48 AoESkillHandler = 0x0FC, // updated 6.58 hotfix 2
UpdatePositionHandler = 0x3b5, // updated 6.48 UpdatePositionHandler = 0x0256, // updated 6.58 hotfix 2
InventoryModifyHandler = 0x2da, // updated 6.48 InventoryModifyHandler = 0x023E, // updated 6.58 hotfix 2
InventoryEquipRecommendedItems = 0x01C9, // updated 5.58h InventoryEquipRecommendedItems = 0x01C9, // updated 5.58h
ReqPlaceHousingItem = 0x02D4, // updated 5.58h ReqPlaceHousingItem = 0x02D4, // updated 5.58h
BuildPresetHandler = 0x0223, // updated 5.58h BuildPresetHandler = 0x0223, // updated 5.58h
TalkEventHandler = 0x1a8, // updated 6.48 TalkEventHandler = 0x23A, // updated 6.58 hotfix 2
EmoteEventHandler = 0x00B0, // updated 5.58h EmoteEventHandler = 0x00B0, // updated 5.58h
WithinRangeEventHandler = 0x1b9, // updated 6.48 WithinRangeEventHandler = 0x1b9, // updated 6.48
OutOfRangeEventHandler = 0x263, // updated 6.48 OutOfRangeEventHandler = 0x263, // updated 6.48
EnterTeriEventHandler = 0x370, // updated 6.48 EnterTeriEventHandler = 0x105, // updated 6.58 hotfix 2
ShopEventHandler = 0x0384, // updated 5.58h ShopEventHandler = 0x0384, // updated 5.58h
ReturnEventHandler = 0xef, // updated 6.48 ReturnEventHandler = 0x07D, // updated 6.58 hotfix 2
TradeReturnEventHandler = 0x1fb, // updated 6.48 TradeReturnEventHandler = 0x37D, // updated 6.58 hotfix 2
TradeReturnEventHandler2 = 0x354, // updated 6.48 TradeReturnEventHandler2 = 0x354, // updated 6.48
EventYield2Handler = 0x021D, // updated 5.58h EventYield2Handler = 0x021D, // updated 5.58h
EventYield16Handler = 0x0207, // updated 5.58h EventYield16Handler = 0x0207, // updated 5.58h
@ -424,7 +424,7 @@ enum ClientZoneIpcType :
LinkshellEventHandler = 0x9999, // unknown LinkshellEventHandler = 0x9999, // unknown
LinkshellEventHandler1 = 0x9999, // unknown LinkshellEventHandler1 = 0x9999, // unknown
ReqEquipDisplayFlagsChange = 0x03BC, // updated 6.30h ReqEquipDisplayFlagsChange = 0x0150, // updated 6.58 hotfix 2
LandRenameHandler = 0x028E, // updated 5.58h LandRenameHandler = 0x028E, // updated 5.58h
HousingUpdateHouseGreeting = 0x0343, // updated 5.58h HousingUpdateHouseGreeting = 0x0343, // updated 5.58h
@ -434,7 +434,7 @@ enum ClientZoneIpcType :
SetSharedEstateSettings = 0x00D2, // updated 5.58h SetSharedEstateSettings = 0x00D2, // updated 5.58h
UpdatePositionInstance = 0xa5, // updated 6.48 UpdatePositionInstance = 0x0227, // updated 6.58 hotfix 2
PerformNoteHandler = 0x0243, // updated 5.58h PerformNoteHandler = 0x0243, // updated 5.58h

View file

@ -686,32 +686,41 @@ namespace Sapphire::Network::Packets::Server
uint16_t activeMinion; uint16_t activeMinion;
uint8_t u23; uint8_t u23;
uint8_t u24; uint8_t u24;
uint8_t spawnIndex; uint8_t spawnIndex; // need to recheck the position of this field in the range of u23-u25
//uint16_t u25c;
uint8_t u25cl; // spilted to prevent extra padding byte
uint8_t u25ch;
uint8_t state; uint8_t state;
uint8_t persistentEmote; uint8_t persistentEmote;
uint8_t modelType; uint8_t modelType;
uint8_t subtype; uint8_t subtype;
uint8_t voice; uint8_t voice;
uint16_t u25c;
uint8_t enemyType; uint8_t enemyType;
uint8_t u28;
uint8_t level; uint8_t level;
uint8_t classJob; uint8_t classJob;
uint8_t u26d; uint8_t u26d;
uint16_t u27a;
//uint16_t u27a;
uint8_t u27al; // spilted to prevent extra padding byte
uint8_t u27ah;
uint8_t mountHead; uint8_t mountHead;
uint8_t mountBody; uint8_t mountBody;
uint8_t mountFeet; uint8_t mountFeet;
uint8_t mountColor; uint8_t mountColor;
uint8_t scale; uint8_t scale;
uint8_t elementData[6]; uint8_t elementData[6];
uint8_t unknown5_5;
Common::StatusEffect effect[30]; Common::StatusEffect effect[30];
Common::FFXIVARR_POSITION3 pos; Common::FFXIVARR_POSITION3 pos;
uint32_t models[10]; uint32_t models[10];
uint8_t unknown6_58[10];
char name[32]; char name[32];
uint8_t look[26]; uint8_t look[26];
char fcTag[6]; char fcTag[6];
uint32_t unk30[2]; uint8_t padding[6];
}; };
/** /**
@ -784,6 +793,7 @@ namespace Sapphire::Network::Packets::Server
Common::StatusEffect effect[30]; Common::StatusEffect effect[30];
Common::FFXIVARR_POSITION3 pos; Common::FFXIVARR_POSITION3 pos;
uint32_t models[10]; uint32_t models[10];
uint8_t unknown6_58[10];
char name[32]; char name[32];
uint8_t look[26]; uint8_t look[26];
char fcTag[6]; char fcTag[6];
@ -953,10 +963,9 @@ namespace Sapphire::Network::Packets::Server
*/ */
struct FFXIVIpcPlayerSetup : FFXIVIpcBasePacket< PlayerSetup > struct FFXIVIpcPlayerSetup : FFXIVIpcBasePacket< PlayerSetup >
{ {
// plain C types for a bit until the packet is actually fixed.
// makes conversion between different editors easier.
uint64_t contentId; uint64_t contentId;
uint64_t crest; uint64_t crest;
uint64_t unknown10;
uint32_t charId; uint32_t charId;
uint32_t restedExp; uint32_t restedExp;
uint32_t companionCurrentExp; uint32_t companionCurrentExp;
@ -978,10 +987,6 @@ namespace Sapphire::Network::Packets::Server
uint16_t unknownPvp52[4]; uint16_t unknownPvp52[4];
uint16_t pvpSeriesExp; uint16_t pvpSeriesExp;
uint16_t playerCommendations; uint16_t playerCommendations;
uint16_t unknown5C;
uint16_t unknown5E;
uint16_t pvpFrontlineWeeklyCampaigns;
uint16_t enhancedAnimaGlassProgress;
uint16_t unknown64[8]; uint16_t unknown64[8];
uint16_t pvpRivalWingsTotalMatches; uint16_t pvpRivalWingsTotalMatches;
uint16_t pvpRivalWingsTotalVictories; uint16_t pvpRivalWingsTotalVictories;
@ -1002,36 +1007,22 @@ namespace Sapphire::Network::Packets::Server
uint8_t namedayDay; uint8_t namedayDay;
uint8_t cityState; uint8_t cityState;
uint8_t homepoint; uint8_t homepoint;
uint8_t unknown83; uint8_t unknown8D[3];
uint8_t petHotBar;
uint8_t companionRank; uint8_t companionRank;
uint8_t companionStars; uint8_t companionStars;
uint8_t companionSp; uint8_t companionSp;
uint8_t companionUnk86; uint8_t companionUnk93;
uint8_t companionColor; uint8_t companionColor;
uint8_t companionFavFeed; uint8_t companionFavFeed;
uint8_t favAetheryteCount; uint8_t favAetheryteCount;
uint8_t unknown8C[4]; uint8_t unknown97[5];
uint8_t hasRelicBook;
uint8_t relicBookId;
uint8_t sightseeing21To80Unlock; uint8_t sightseeing21To80Unlock;
uint8_t sightseeingHeavenswardUnlock; uint8_t sightseeingHeavenswardUnlock;
uint8_t unknown94[2]; uint8_t unknown9E[26];
uint8_t craftingMasterMask; uint32_t exp[Common::CLASSJOB_SLOTS];
uint8_t unknown97[9]; uint32_t unknown138[7];
uint8_t unknownA0[3]; uint16_t levels[Common::CLASSJOB_SLOTS];
uint8_t pvpSeriesLevel; /*
uint8_t pvpMalmstonesClaimed;
uint8_t lastSeasonMalmstonesEarned;
uint8_t lastSeasonMalmstonesClaimed;
uint8_t unknownA7[7];
uint32_t exp[30];
uint32_t pvpTotalExp;
uint32_t unknownPvp124;
uint32_t pvpExp;
uint32_t pvpFrontlineOverallRanks[3];
uint32_t unknown138;
uint16_t levels[30];
uint16_t unknown178[8]; uint16_t unknown178[8];
uint16_t fishingRecordsFishId[33]; uint16_t fishingRecordsFishId[33];
uint16_t fishingRecordsFishLength[33]; uint16_t fishingRecordsFishLength[33];
@ -1039,13 +1030,15 @@ namespace Sapphire::Network::Packets::Server
uint16_t unknown21C[6]; uint16_t unknown21C[6];
uint16_t pvpFrontlineWeeklyRanks[3]; uint16_t pvpFrontlineWeeklyRanks[3];
uint16_t unknownMask22C[8]; uint16_t unknownMask22C[8];
*/
uint8_t unknown194[218];
uint8_t companionName[21]; uint8_t companionName[21];
uint8_t companionDefRank; uint8_t companionDefRank;
uint8_t companionAttRank; uint8_t companionAttRank;
uint8_t companionHealRank; uint8_t companionHealRank;
uint8_t mountGuideMask[33]; uint8_t mountGuideMask[33];
uint8_t ornamentMask[4]; uint8_t ornamentMask[4];
uint8_t unknown281[16]; uint8_t unknown281[23];
char name[32]; char name[32];
uint8_t unknown293[16]; uint8_t unknown293[16];
uint8_t unknown2A3; uint8_t unknown2A3;
@ -1185,7 +1178,6 @@ namespace Sapphire::Network::Packets::Server
uint8_t isSpecialist; uint8_t isSpecialist;
uint16_t syncedLevel; // Locks actions, equipment, prob more. Player's current level (synced). uint16_t syncedLevel; // Locks actions, equipment, prob more. Player's current level (synced).
uint16_t classLevel; // Locks roles, prob more. Player's actual unsynced level. uint16_t classLevel; // Locks roles, prob more. Player's actual unsynced level.
uint32_t roleActions[10];
}; };
/** /**
@ -2270,7 +2262,7 @@ namespace Sapphire::Network::Packets::Server
uint8_t padding[3]; uint8_t padding[3];
}; };
struct FFXIVIpcEventContinue : FFXIVIpcBasePacket< EventContinue > struct FFXIVIpcEventReturn : FFXIVIpcBasePacket< EventReturn >
{ {
uint32_t eventId; uint32_t eventId;
uint16_t scene; uint16_t scene;

View file

@ -67,7 +67,7 @@ void Sapphire::World::Manager::MapMgr::updateAll( Entity::Player& player )
{ {
auto quest = m_quests[ npcData ]; auto quest = m_quests[ npcData ];
if( quest->issuerLocation == eventNpc.first ) if( quest && quest->issuerLocation == eventNpc.first )
{ {
insertQuest( player, npcData, mapData ); insertQuest( player, npcData, mapData );
} }
@ -176,7 +176,7 @@ void Sapphire::World::Manager::MapMgr::updateAll( Entity::Player& player )
{ {
auto quest = m_quests[ eObjData ]; auto quest = m_quests[ eObjData ];
if( quest->issuerLocation == eventObj.first ) if( quest && quest->issuerLocation == eventObj.first )
{ {
insertQuest( player, eObjData, mapData ); insertQuest( player, eObjData, mapData );
} }
@ -219,7 +219,7 @@ void Sapphire::World::Manager::MapMgr::updateQuests( Entity::Player& player )
{ {
auto quest = m_quests[ npcData ]; auto quest = m_quests[ npcData ];
if( quest->issuerLocation == eventNpc.first ) if( quest && quest->issuerLocation == eventNpc.first )
{ {
insertQuest( player, npcData, mapData ); insertQuest( player, npcData, mapData );
} }
@ -249,7 +249,7 @@ void Sapphire::World::Manager::MapMgr::updateQuests( Entity::Player& player )
{ {
auto quest = m_quests[ eObjData ]; auto quest = m_quests[ eObjData ];
if( quest->issuerLocation == eventObj.first ) if( quest && quest->issuerLocation == eventObj.first )
{ {
insertQuest( player, eObjData, mapData ); insertQuest( player, eObjData, mapData );
} }
@ -269,7 +269,7 @@ void Sapphire::World::Manager::MapMgr::insertQuest( Entity::Player& player, uint
auto quest = m_quests[ questId ]; auto quest = m_quests[ questId ];
if( isQuestVisible( player, questId, quest ) ) if( quest && isQuestVisible( player, questId, quest ) )
{ {
auto script = scriptMgr.getNativeScriptHandler().getScript< Sapphire::ScriptAPI::EventScript >( questId ); auto script = scriptMgr.getNativeScriptHandler().getScript< Sapphire::ScriptAPI::EventScript >( questId );
@ -423,16 +423,8 @@ bool Sapphire::World::Manager::MapMgr::isQuestVisible( Entity::Player& player, u
if( !player.isQuestCompleted( questPtr->previousQuest[ i ] ) ) if( !player.isQuestCompleted( questPtr->previousQuest[ i ] ) )
{ {
if( i == 0 && questPtr->previousQuest0Sequence != 0 )
{
if( player.getQuestSeq( questPtr->previousQuest[ i ] ) < questPtr->previousQuest0Sequence )
return false; return false;
} }
else
{
return false;
}
}
} }
} }
else if( questPtr->previousQuestJoin == 2 ) else if( questPtr->previousQuestJoin == 2 )

View file

@ -320,7 +320,7 @@ void Sapphire::Network::GameConnection::eventYieldHandler( const Packets::FFXIVA
scriptMgr.onEventYield( player, eventId, scene, param ); scriptMgr.onEventYield( player, eventId, scene, param );
auto response = makeZonePacket< FFXIVIpcEventContinue >( player.getId() ); auto response = makeZonePacket< FFXIVIpcEventReturn >( player.getId() );
response->data().eventId = eventId; response->data().eventId = eventId;
response->data().scene = scene; response->data().scene = scene;
player.queuePacket( response ); player.queuePacket( response );