1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-30 08:07:46 +00:00

update to 5.58, part of the opcodes are from github.com/Taezen

Co-authored-by: Taezen <Taezen>
This commit is contained in:
collett 2021-07-27 21:08:23 +09:00
parent 301bd61180
commit ca663de5ed
5 changed files with 1183 additions and 963 deletions

View file

@ -6,6 +6,7 @@
#include "CommonGen.h" #include "CommonGen.h"
#include "Vector3.h" #include "Vector3.h"
#include "Network/PacketDef/Ipcs.h"
// +--------------------------------------------------------------------------- // +---------------------------------------------------------------------------
// The following enumerations are structures to require their type be included. // The following enumerations are structures to require their type be included.
@ -51,11 +52,11 @@ namespace Sapphire::Common
enum InventoryOperation : uint16_t enum InventoryOperation : uint16_t
{ {
Discard = 0x01DE, Discard = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 7,
Move = 0x01DF, Move = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 8,
Swap = 0x01E0, Swap = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 9,
Split = 0x01E1, Split = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 10,
Merge = 0x01E3, Merge = Network::Packets::ClientZoneIpcType::InventoryModifyHandler + 12
}; };
enum ClientLanguage : uint8_t enum ClientLanguage : uint8_t

View file

@ -25,9 +25,10 @@ enum class ActionCategory : uint8_t
System = 10, System = 10,
Artillery = 11, Artillery = 11,
Mount = 12, Mount = 12,
Glamour = 13, Special = 13,
ItemManipulation = 14, ItemManipulation = 14,
AdrenalineRush = 15, AdrenalineRush = 15,
//1 = 16,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -85,7 +86,7 @@ enum class BaseParam : uint8_t
Morale = 48, Morale = 48,
Enmity = 49, Enmity = 49,
EnmityReduction = 50, EnmityReduction = 50,
CarefulDesynthesis = 51, DesynthesisSkillGain = 51,
EXPBonus = 52, EXPBonus = 52,
Regen = 53, Regen = 53,
Refresh = 54, Refresh = 54,
@ -129,6 +130,21 @@ enum class BeastReputationRank : uint8_t
//BeastTribe.exd //BeastTribe.exd
enum class BeastTribe : uint8_t enum class BeastTribe : uint8_t
{ {
/* = 0,
1 = 1,
2 = 2,
3 = 3,
4 = 4,
5 = 5,
6 = 6,
7 = 7,
8 = 8,
9 = 9,
10 = 10,
11 = 11,
12 = 12,
13 = 13,
14 = 14,*/
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -174,6 +190,8 @@ enum class ClassJob : uint8_t
Bluemage = 36, Bluemage = 36,
Gunbreaker = 37, Gunbreaker = 37,
Dancer = 38, Dancer = 38,
// = 39,
//1 = 40,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -200,11 +218,16 @@ enum class ContentType : uint8_t
DisciplesoftheHand = 17, DisciplesoftheHand = 17,
RetainerVentures = 18, RetainerVentures = 18,
GoldSaucer = 19, GoldSaucer = 19,
//1 = 20,
DeepDungeons = 21, DeepDungeons = 21,
//2 = 22,
//3 = 23,
WondrousTails = 24, WondrousTails = 24,
CustomDeliveries = 25, CustomDeliveries = 25,
Eureka = 26, Eureka = 26,
//4 = 27,
UltimateRaids = 28, UltimateRaids = 28,
//5 = 29,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -215,6 +238,7 @@ enum class EmoteCategory : uint8_t
General = 1, General = 1,
Special = 2, Special = 2,
Expressions = 3, Expressions = 3,
//1 = 4,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -461,7 +485,20 @@ enum class ItemSearchCategory : uint8_t
RedMagesArms = 84, RedMagesArms = 84,
ScholarsArms = 85, ScholarsArms = 85,
GunbreakersArms = 86, GunbreakersArms = 86,
ThrowingWeapons = 87, DancersArms1 = 87,
/*1 = 88,
2 = 89,
3 = 90,
4 = 91,
5 = 92,
6 = 93,
7 = 94,
8 = 95,
9 = 96,
10 = 97,
11 = 98,
12 = 99,
13 = 100,*/
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -564,8 +601,13 @@ enum class Town : uint8_t
Gridania = 2, Gridania = 2,
Uldah = 3, Uldah = 3,
Ishgard = 4, Ishgard = 4,
// = 5,
//1 = 6,
Kugane = 7, Kugane = 7,
TheCrystarium = 10, //2 = 8,
//3 = 9,
Crystarium = 10,
//4 = 11,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -718,7 +760,14 @@ enum class Weather : uint8_t
StormClouds1 = 143, StormClouds1 = 143,
Firestorm = 144, Firestorm = 144,
SpectralCurrent = 145, SpectralCurrent = 145,
//1 = 146,
Climactic = 147, Climactic = 147,
//2 = 148,
//3 = 149,
//4 = 150,
//5 = 151,
//6 = 152,
//7 = 153,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -738,6 +787,7 @@ enum class HousingAppeal : uint8_t
Sanctum = 10, Sanctum = 10,
Venue = 11, Venue = 11,
Florist = 12, Florist = 12,
// = 13,
Library = 14, Library = 14,
PhotoStudio = 15, PhotoStudio = 15,
HauntedHouse = 16, HauntedHouse = 16,
@ -750,7 +800,5 @@ enum class HousingAppeal : uint8_t
UnderRenovation = 23, UnderRenovation = 23,
ConcertHall = 24, ConcertHall = 24,
}; };
} }
#endif #endif

View file

@ -23,7 +23,7 @@ Sapphire::Data::Achievement::Achievement( uint32_t row_id, Sapphire::Data::ExdDa
data.push_back( exdData->getField< int32_t >( row, 21 ) ); data.push_back( exdData->getField< int32_t >( row, 21 ) );
data.push_back( exdData->getField< int32_t >( row, 22 ) ); data.push_back( exdData->getField< int32_t >( row, 22 ) );
order = exdData->getField< uint16_t >( row, 23 ); order = exdData->getField< uint16_t >( row, 23 );
achievementHideCondition = exdData->getField< uint8_t >( row, 24 ); achievementHideCondition = exdData->getField< uint8_t >( row, 25 );
} }
Sapphire::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -2120,17 +2120,18 @@ Sapphire::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id,
sortKey = exdData->getField< uint16_t >( row, 42 ); sortKey = exdData->getField< uint16_t >( row, 42 );
image = exdData->getField< uint32_t >( row, 43 ); image = exdData->getField< uint32_t >( row, 43 );
icon = exdData->getField< uint32_t >( row, 44 ); icon = exdData->getField< uint32_t >( row, 44 );
levelingRoulette = exdData->getField< bool >( row, 46 ); level506070Roulette = exdData->getField< bool >( row, 46 );
level506070Roulette = exdData->getField< bool >( row, 48 ); levelingRoulette = exdData->getField< bool >( row, 47 );
mSQRoulette = exdData->getField< bool >( row, 49 ); mSQRoulette = exdData->getField< bool >( row, 48 );
guildHestRoulette = exdData->getField< bool >( row, 50 ); guildHestRoulette = exdData->getField< bool >( row, 49 );
expertRoulette = exdData->getField< bool >( row, 51 ); expertRoulette = exdData->getField< bool >( row, 50 );
trialRoulette = exdData->getField< bool >( row, 52 ); trialRoulette = exdData->getField< bool >( row, 51 );
dailyFrontlineChallenge = exdData->getField< bool >( row, 53 ); dailyFrontlineChallenge = exdData->getField< bool >( row, 52 );
level80Roulette = exdData->getField< bool >( row, 54 ); level80Roulette = exdData->getField< bool >( row, 53 );
mentorRoulette = exdData->getField< bool >( row, 55 ); mentorRoulette = exdData->getField< bool >( row, 54 );
allianceRoulette = exdData->getField< bool >( row, 61 ); allianceRoulette = exdData->getField< bool >( row, 60 );
normalRaidRoulette = exdData->getField< bool >( row, 63 ); feastTeamRoulette = exdData->getField< bool >( row, 61 );
normalRaidRoulette = exdData->getField< bool >( row, 62 );
} }
Sapphire::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -2158,10 +2159,10 @@ Sapphire::Data::ContentGaugeColor::ContentGaugeColor( uint32_t row_id, Sapphire:
Sapphire::Data::ContentMemberType::ContentMemberType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::ContentMemberType::ContentMemberType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_ContentMemberTypeDat.get_row( row_id ); auto row = exdData->m_ContentMemberTypeDat.get_row( row_id );
tanksPerParty = exdData->getField< uint8_t >( row, 9 ); tanksPerParty = exdData->getField< uint8_t >( row, 10 );
healersPerParty = exdData->getField< uint8_t >( row, 10 ); healersPerParty = exdData->getField< uint8_t >( row, 11 );
meleesPerParty = exdData->getField< uint8_t >( row, 11 ); meleesPerParty = exdData->getField< uint8_t >( row, 12 );
rangedPerParty = exdData->getField< uint8_t >( row, 12 ); rangedPerParty = exdData->getField< uint8_t >( row, 13 );
} }
Sapphire::Data::ContentNpcTalk::ContentNpcTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::ContentNpcTalk::ContentNpcTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -2846,7 +2847,7 @@ Sapphire::Data::DynamicEventEnemyType::DynamicEventEnemyType( uint32_t row_id, S
Sapphire::Data::DynamicEventSingleBattle::DynamicEventSingleBattle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::DynamicEventSingleBattle::DynamicEventSingleBattle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_DynamicEventSingleBattleDat.get_row( row_id ); auto row = exdData->m_DynamicEventSingleBattleDat.get_row( row_id );
actionIcon = exdData->getField< int32_t >( row, 0 ); bNpcName = exdData->getField< int32_t >( row, 0 );
icon = exdData->getField< uint32_t >( row, 1 ); icon = exdData->getField< uint32_t >( row, 1 );
text = exdData->getField< std::string >( row, 2 ); text = exdData->getField< std::string >( row, 2 );
} }
@ -3575,7 +3576,9 @@ Sapphire::Data::FieldMarker::FieldMarker( uint32_t row_id, Sapphire::Data::ExdDa
{ {
auto row = exdData->m_FieldMarkerDat.get_row( row_id ); auto row = exdData->m_FieldMarkerDat.get_row( row_id );
vFX = exdData->getField< int32_t >( row, 0 ); vFX = exdData->getField< int32_t >( row, 0 );
icon = exdData->getField< uint16_t >( row, 1 ); uiIcon = exdData->getField< uint16_t >( row, 1 );
mapIcon = exdData->getField< uint16_t >( row, 2 );
name = exdData->getField< std::string >( row, 3 );
} }
Sapphire::Data::FishingRecordType::FishingRecordType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::FishingRecordType::FishingRecordType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -6219,6 +6222,7 @@ Sapphire::Data::Item::Item( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e
materiaSlotCount = exdData->getField< uint8_t >( row, 86 ); materiaSlotCount = exdData->getField< uint8_t >( row, 86 );
isAdvancedMeldingPermitted = exdData->getField< bool >( row, 87 ); isAdvancedMeldingPermitted = exdData->getField< bool >( row, 87 );
isPvP = exdData->getField< bool >( row, 88 ); isPvP = exdData->getField< bool >( row, 88 );
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 ) for( int i = 0; i < 6; ++i )
{ {
@ -6464,7 +6468,7 @@ Sapphire::Data::Leve::Leve( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e
description = exdData->getField< std::string >( row, 1 ); description = exdData->getField< std::string >( row, 1 );
leveClient = exdData->getField< int32_t >( row, 2 ); leveClient = exdData->getField< int32_t >( row, 2 );
leveAssignmentType = exdData->getField< uint8_t >( row, 3 ); leveAssignmentType = exdData->getField< uint8_t >( row, 3 );
town = exdData->getField< int32_t >( row, 4 ); town = exdData->getField< int32_t >( row, 5 );
classJobLevel = exdData->getField< uint16_t >( row, 6 ); classJobLevel = exdData->getField< uint16_t >( row, 6 );
timeLimit = exdData->getField< uint8_t >( row, 7 ); timeLimit = exdData->getField< uint8_t >( row, 7 );
allowanceCost = exdData->getField< uint8_t >( row, 8 ); allowanceCost = exdData->getField< uint8_t >( row, 8 );
@ -8993,6 +8997,13 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
sortKey = exdData->getField< uint16_t >( row, 1514 ); sortKey = exdData->getField< uint16_t >( row, 1514 );
} }
Sapphire::Data::QuestAcceptAdditionCondition::QuestAcceptAdditionCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_QuestAcceptAdditionConditionDat.get_row( row_id );
requirement0 = exdData->getField< uint32_t >( row, 0 );
requirement1 = exdData->getField< uint32_t >( row, 1 );
}
Sapphire::Data::QuestBattle::QuestBattle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::QuestBattle::QuestBattle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_QuestBattleDat.get_row( row_id ); auto row = exdData->m_QuestBattleDat.get_row( row_id );
@ -9437,6 +9448,8 @@ Sapphire::Data::QuestClassJobSupply::QuestClassJobSupply( uint32_t row_id, uint3
classJobCategory = exdData->getField< uint8_t >( row, 0 ); classJobCategory = exdData->getField< uint8_t >( row, 0 );
eNpcResident = exdData->getField< uint32_t >( row, 2 ); eNpcResident = exdData->getField< uint32_t >( row, 2 );
item = exdData->getField< uint32_t >( row, 3 ); item = exdData->getField< uint32_t >( row, 3 );
amountRequired = exdData->getField< uint8_t >( row, 4 );
itemHQ = exdData->getField< bool >( row, 5 );
} }
Sapphire::Data::QuestDerivedClass::QuestDerivedClass( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::QuestDerivedClass::QuestDerivedClass( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -9445,6 +9458,17 @@ Sapphire::Data::QuestDerivedClass::QuestDerivedClass( uint32_t row_id, Sapphire:
classJob = exdData->getField< uint8_t >( row, 0 ); classJob = exdData->getField< uint8_t >( row, 0 );
} }
Sapphire::Data::QuestEffect::QuestEffect( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_QuestEffectDat.get_row( row_id );
}
Sapphire::Data::QuestEffectDefine::QuestEffectDefine( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_QuestEffectDefineDat.get_row( row_id, subRow );
effect = exdData->getField< uint16_t >( row, 0 );
}
Sapphire::Data::QuestRedo::QuestRedo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::QuestRedo::QuestRedo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_QuestRedoDat.get_row( row_id ); auto row = exdData->m_QuestRedoDat.get_row( row_id );
@ -9588,6 +9612,9 @@ Sapphire::Data::RacingChocoboNameInfo::RacingChocoboNameInfo( uint32_t row_id, S
{ {
auto row = exdData->m_RacingChocoboNameInfoDat.get_row( row_id ); auto row = exdData->m_RacingChocoboNameInfoDat.get_row( row_id );
racingChocoboNameCategory = exdData->getField< uint8_t >( row, 0 ); racingChocoboNameCategory = exdData->getField< uint8_t >( row, 0 );
name.push_back( exdData->getField< uint16_t >( row, 5 ) );
name.push_back( exdData->getField< uint16_t >( row, 6 ) );
name.push_back( exdData->getField< uint16_t >( row, 7 ) );
} }
Sapphire::Data::RacingChocoboParam::RacingChocoboParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::RacingChocoboParam::RacingChocoboParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -9672,6 +9699,7 @@ Sapphire::Data::RecipeLookup::RecipeLookup( uint32_t row_id, Sapphire::Data::Exd
Sapphire::Data::RecipeNotebookList::RecipeNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::RecipeNotebookList::RecipeNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_RecipeNotebookListDat.get_row( row_id ); auto row = exdData->m_RecipeNotebookListDat.get_row( row_id );
count = exdData->getField< uint8_t >( row, 0 );
recipe.push_back( exdData->getField< int32_t >( row, 1 ) ); recipe.push_back( exdData->getField< int32_t >( row, 1 ) );
recipe.push_back( exdData->getField< int32_t >( row, 2 ) ); recipe.push_back( exdData->getField< int32_t >( row, 2 ) );
recipe.push_back( exdData->getField< int32_t >( row, 3 ) ); recipe.push_back( exdData->getField< int32_t >( row, 3 ) );
@ -10018,6 +10046,13 @@ Sapphire::Data::RideShooting::RideShooting( uint32_t row_id, Sapphire::Data::Exd
eNpcScale.push_back( exdData->getField< uint8_t >( row, 37 ) ); eNpcScale.push_back( exdData->getField< uint8_t >( row, 37 ) );
} }
Sapphire::Data::RideShootingTargetType::RideShootingTargetType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_RideShootingTargetTypeDat.get_row( row_id );
eObj = exdData->getField< uint32_t >( row, 0 );
score = exdData->getField< int16_t >( row, 1 );
}
Sapphire::Data::RideShootingTextData::RideShootingTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::RideShootingTextData::RideShootingTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_RideShootingTextDataDat.get_row( row_id ); auto row = exdData->m_RideShootingTextDataDat.get_row( row_id );
@ -10410,6 +10445,7 @@ Sapphire::Data::Stain::Stain( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
auto row = exdData->m_StainDat.get_row( row_id ); auto row = exdData->m_StainDat.get_row( row_id );
color = exdData->getField< uint32_t >( row, 0 ); color = exdData->getField< uint32_t >( row, 0 );
shade = exdData->getField< uint8_t >( row, 1 ); shade = exdData->getField< uint8_t >( row, 1 );
subOrder = exdData->getField< uint8_t >( row, 2 );
name = exdData->getField< std::string >( row, 3 ); name = exdData->getField< std::string >( row, 3 );
} }
@ -10420,6 +10456,13 @@ Sapphire::Data::StainTransient::StainTransient( uint32_t row_id, Sapphire::Data:
item2 = exdData->getField< uint32_t >( row, 1 ); item2 = exdData->getField< uint32_t >( row, 1 );
} }
Sapphire::Data::StanceChange::StanceChange( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_StanceChangeDat.get_row( row_id );
action.push_back( exdData->getField< uint16_t >( row, 1 ) );
action.push_back( exdData->getField< uint16_t >( row, 2 ) );
}
Sapphire::Data::Status::Status( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::Status::Status( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_StatusDat.get_row( row_id ); auto row = exdData->m_StatusDat.get_row( row_id );
@ -12399,6 +12442,7 @@ Sapphire::Data::TerritoryType::TerritoryType( uint32_t row_id, Sapphire::Data::E
loadingImage = exdData->getField< uint8_t >( row, 7 ); loadingImage = exdData->getField< uint8_t >( row, 7 );
exclusiveType = exdData->getField< uint8_t >( row, 8 ); exclusiveType = exdData->getField< uint8_t >( row, 8 );
territoryIntendedUse = exdData->getField< uint8_t >( row, 9 ); territoryIntendedUse = exdData->getField< uint8_t >( row, 9 );
contentFinderCondition = exdData->getField< uint16_t >( row, 10 );
weatherRate = exdData->getField< uint8_t >( row, 12 ); weatherRate = exdData->getField< uint8_t >( row, 12 );
pCSearch = exdData->getField< bool >( row, 15 ); pCSearch = exdData->getField< bool >( row, 15 );
stealth = exdData->getField< bool >( row, 16 ); stealth = exdData->getField< bool >( row, 16 );
@ -12431,6 +12475,13 @@ Sapphire::Data::TextCommand::TextCommand( uint32_t row_id, Sapphire::Data::ExdDa
description = exdData->getField< std::string >( row, 7 ); description = exdData->getField< std::string >( row, 7 );
alias = exdData->getField< std::string >( row, 8 ); alias = exdData->getField< std::string >( row, 8 );
shortAlias = exdData->getField< std::string >( row, 9 ); shortAlias = exdData->getField< std::string >( row, 9 );
param = exdData->getField< uint16_t >( row, 10 );
}
Sapphire::Data::TextCommandParam::TextCommandParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_TextCommandParamDat.get_row( row_id );
param = exdData->getField< std::string >( row, 0 );
} }
Sapphire::Data::Title::Title( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::Title::Title( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -13509,11 +13560,14 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_PvPSelectTraitDat = setupDatAccess( "PvPSelectTrait", xiv::exd::Language::en ); m_PvPSelectTraitDat = setupDatAccess( "PvPSelectTrait", xiv::exd::Language::en );
m_PvPTraitDat = setupDatAccess( "PvPTrait", xiv::exd::Language::none ); m_PvPTraitDat = setupDatAccess( "PvPTrait", xiv::exd::Language::none );
m_QuestDat = setupDatAccess( "Quest", xiv::exd::Language::en ); m_QuestDat = setupDatAccess( "Quest", xiv::exd::Language::en );
m_QuestAcceptAdditionConditionDat = setupDatAccess( "QuestAcceptAdditionCondition", xiv::exd::Language::none );
m_QuestBattleDat = setupDatAccess( "QuestBattle", xiv::exd::Language::none ); m_QuestBattleDat = setupDatAccess( "QuestBattle", xiv::exd::Language::none );
m_QuestChapterDat = setupDatAccess( "QuestChapter", xiv::exd::Language::none ); m_QuestChapterDat = setupDatAccess( "QuestChapter", xiv::exd::Language::none );
m_QuestClassJobRewardDat = setupDatAccess( "QuestClassJobReward", xiv::exd::Language::none ); m_QuestClassJobRewardDat = setupDatAccess( "QuestClassJobReward", xiv::exd::Language::none );
m_QuestClassJobSupplyDat = setupDatAccess( "QuestClassJobSupply", xiv::exd::Language::none ); m_QuestClassJobSupplyDat = setupDatAccess( "QuestClassJobSupply", xiv::exd::Language::none );
m_QuestDerivedClassDat = setupDatAccess( "QuestDerivedClass", xiv::exd::Language::none ); m_QuestDerivedClassDat = setupDatAccess( "QuestDerivedClass", xiv::exd::Language::none );
m_QuestEffectDat = setupDatAccess( "QuestEffect", xiv::exd::Language::none );
m_QuestEffectDefineDat = setupDatAccess( "QuestEffectDefine", xiv::exd::Language::none );
m_QuestRedoDat = setupDatAccess( "QuestRedo", xiv::exd::Language::none ); m_QuestRedoDat = setupDatAccess( "QuestRedo", xiv::exd::Language::none );
m_QuestRedoChapterUIDat = setupDatAccess( "QuestRedoChapterUI", xiv::exd::Language::en ); m_QuestRedoChapterUIDat = setupDatAccess( "QuestRedoChapterUI", xiv::exd::Language::en );
m_QuestRedoChapterUICategoryDat = setupDatAccess( "QuestRedoChapterUICategory", xiv::exd::Language::en ); m_QuestRedoChapterUICategoryDat = setupDatAccess( "QuestRedoChapterUICategory", xiv::exd::Language::en );
@ -13549,6 +13603,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_RetainerTaskParameterDat = setupDatAccess( "RetainerTaskParameter", xiv::exd::Language::none ); m_RetainerTaskParameterDat = setupDatAccess( "RetainerTaskParameter", xiv::exd::Language::none );
m_RetainerTaskRandomDat = setupDatAccess( "RetainerTaskRandom", xiv::exd::Language::en ); m_RetainerTaskRandomDat = setupDatAccess( "RetainerTaskRandom", xiv::exd::Language::en );
m_RideShootingDat = setupDatAccess( "RideShooting", xiv::exd::Language::none ); m_RideShootingDat = setupDatAccess( "RideShooting", xiv::exd::Language::none );
m_RideShootingTargetTypeDat = setupDatAccess( "RideShootingTargetType", xiv::exd::Language::none );
m_RideShootingTextDataDat = setupDatAccess( "RideShootingTextData", xiv::exd::Language::en ); m_RideShootingTextDataDat = setupDatAccess( "RideShootingTextData", xiv::exd::Language::en );
m_RPParameterDat = setupDatAccess( "RPParameter", xiv::exd::Language::none ); m_RPParameterDat = setupDatAccess( "RPParameter", xiv::exd::Language::none );
m_SatisfactionArbitrationDat = setupDatAccess( "SatisfactionArbitration", xiv::exd::Language::none ); m_SatisfactionArbitrationDat = setupDatAccess( "SatisfactionArbitration", xiv::exd::Language::none );
@ -13574,6 +13629,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_SpecialShopItemCategoryDat = setupDatAccess( "SpecialShopItemCategory", xiv::exd::Language::en ); m_SpecialShopItemCategoryDat = setupDatAccess( "SpecialShopItemCategory", xiv::exd::Language::en );
m_StainDat = setupDatAccess( "Stain", xiv::exd::Language::en ); m_StainDat = setupDatAccess( "Stain", xiv::exd::Language::en );
m_StainTransientDat = setupDatAccess( "StainTransient", xiv::exd::Language::none ); m_StainTransientDat = setupDatAccess( "StainTransient", xiv::exd::Language::none );
m_StanceChangeDat = setupDatAccess( "StanceChange", xiv::exd::Language::none );
m_StatusDat = setupDatAccess( "Status", xiv::exd::Language::en ); m_StatusDat = setupDatAccess( "Status", xiv::exd::Language::en );
m_StatusHitEffectDat = setupDatAccess( "StatusHitEffect", xiv::exd::Language::none ); m_StatusHitEffectDat = setupDatAccess( "StatusHitEffect", xiv::exd::Language::none );
m_StatusLoopVFXDat = setupDatAccess( "StatusLoopVFX", xiv::exd::Language::none ); m_StatusLoopVFXDat = setupDatAccess( "StatusLoopVFX", xiv::exd::Language::none );
@ -13587,6 +13643,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_TerritoryTypeDat = setupDatAccess( "TerritoryType", xiv::exd::Language::none ); m_TerritoryTypeDat = setupDatAccess( "TerritoryType", xiv::exd::Language::none );
m_TerritoryTypeTransientDat = setupDatAccess( "TerritoryTypeTransient", xiv::exd::Language::none ); m_TerritoryTypeTransientDat = setupDatAccess( "TerritoryTypeTransient", xiv::exd::Language::none );
m_TextCommandDat = setupDatAccess( "TextCommand", xiv::exd::Language::en ); m_TextCommandDat = setupDatAccess( "TextCommand", xiv::exd::Language::en );
m_TextCommandParamDat = setupDatAccess( "TextCommandParam", xiv::exd::Language::en );
m_TitleDat = setupDatAccess( "Title", xiv::exd::Language::en ); m_TitleDat = setupDatAccess( "Title", xiv::exd::Language::en );
m_TomestonesDat = setupDatAccess( "Tomestones", xiv::exd::Language::none ); m_TomestonesDat = setupDatAccess( "Tomestones", xiv::exd::Language::none );
m_TomestonesItemDat = setupDatAccess( "TomestonesItem", xiv::exd::Language::none ); m_TomestonesItemDat = setupDatAccess( "TomestonesItem", xiv::exd::Language::none );

View file

@ -527,11 +527,14 @@ struct PvPRank;
struct PvPSelectTrait; struct PvPSelectTrait;
struct PvPTrait; struct PvPTrait;
struct Quest; struct Quest;
struct QuestAcceptAdditionCondition;
struct QuestBattle; struct QuestBattle;
struct QuestChapter; struct QuestChapter;
struct QuestClassJobReward; struct QuestClassJobReward;
struct QuestClassJobSupply; struct QuestClassJobSupply;
struct QuestDerivedClass; struct QuestDerivedClass;
struct QuestEffect;
struct QuestEffectDefine;
struct QuestRedo; struct QuestRedo;
struct QuestRedoChapterUI; struct QuestRedoChapterUI;
struct QuestRedoChapterUICategory; struct QuestRedoChapterUICategory;
@ -567,6 +570,7 @@ struct RetainerTaskNormal;
struct RetainerTaskParameter; struct RetainerTaskParameter;
struct RetainerTaskRandom; struct RetainerTaskRandom;
struct RideShooting; struct RideShooting;
struct RideShootingTargetType;
struct RideShootingTextData; struct RideShootingTextData;
struct RPParameter; struct RPParameter;
struct SatisfactionArbitration; struct SatisfactionArbitration;
@ -592,6 +596,7 @@ struct SpecialShop;
struct SpecialShopItemCategory; struct SpecialShopItemCategory;
struct Stain; struct Stain;
struct StainTransient; struct StainTransient;
struct StanceChange;
struct Status; struct Status;
struct StatusHitEffect; struct StatusHitEffect;
struct StatusLoopVFX; struct StatusLoopVFX;
@ -605,6 +610,7 @@ struct SwitchTalkVariation;
struct TerritoryType; struct TerritoryType;
struct TerritoryTypeTransient; struct TerritoryTypeTransient;
struct TextCommand; struct TextCommand;
struct TextCommandParam;
struct Title; struct Title;
struct Tomestones; struct Tomestones;
struct TomestonesItem; struct TomestonesItem;
@ -2393,8 +2399,8 @@ struct ContentFinderCondition
uint16_t sortKey; uint16_t sortKey;
uint32_t image; uint32_t image;
uint32_t icon; uint32_t icon;
bool levelingRoulette;
bool level506070Roulette; bool level506070Roulette;
bool levelingRoulette;
bool mSQRoulette; bool mSQRoulette;
bool guildHestRoulette; bool guildHestRoulette;
bool expertRoulette; bool expertRoulette;
@ -2403,6 +2409,7 @@ struct ContentFinderCondition
bool level80Roulette; bool level80Roulette;
bool mentorRoulette; bool mentorRoulette;
bool allianceRoulette; bool allianceRoulette;
bool feastTeamRoulette;
bool normalRaidRoulette; bool normalRaidRoulette;
ContentFinderCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); ContentFinderCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
@ -3049,7 +3056,7 @@ struct DynamicEventEnemyType
struct DynamicEventSingleBattle struct DynamicEventSingleBattle
{ {
int32_t actionIcon; int32_t bNpcName;
uint32_t icon; uint32_t icon;
std::string text; std::string text;
@ -3662,7 +3669,9 @@ struct Festival
struct FieldMarker struct FieldMarker
{ {
int32_t vFX; int32_t vFX;
uint16_t icon; uint16_t uiIcon;
uint16_t mapIcon;
std::string name;
FieldMarker( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); FieldMarker( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -4955,6 +4964,7 @@ struct Item
uint8_t materiaSlotCount; uint8_t materiaSlotCount;
bool isAdvancedMeldingPermitted; bool isAdvancedMeldingPermitted;
bool isPvP; bool isPvP;
uint8_t subStatCategory;
bool isGlamourous; bool isGlamourous;
struct struct
@ -6407,6 +6417,14 @@ struct Quest
Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct QuestAcceptAdditionCondition
{
uint32_t requirement0;
uint32_t requirement1;
QuestAcceptAdditionCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct QuestBattle struct QuestBattle
{ {
int32_t quest; int32_t quest;
@ -6443,6 +6461,8 @@ struct QuestClassJobSupply
uint8_t classJobCategory; uint8_t classJobCategory;
uint32_t eNpcResident; uint32_t eNpcResident;
uint32_t item; uint32_t item;
uint8_t amountRequired;
bool itemHQ;
QuestClassJobSupply( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); QuestClassJobSupply( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -6454,6 +6474,19 @@ struct QuestDerivedClass
QuestDerivedClass( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); QuestDerivedClass( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct QuestEffect
{
QuestEffect( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct QuestEffectDefine
{
uint16_t effect;
QuestEffectDefine( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
};
struct QuestRedo struct QuestRedo
{ {
uint32_t finalQuest; uint32_t finalQuest;
@ -6577,6 +6610,7 @@ struct RacingChocoboNameCategory
struct RacingChocoboNameInfo struct RacingChocoboNameInfo
{ {
uint8_t racingChocoboNameCategory; uint8_t racingChocoboNameCategory;
std::vector< uint16_t > name;
RacingChocoboNameInfo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); RacingChocoboNameInfo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -6667,6 +6701,7 @@ struct RecipeLookup
struct RecipeNotebookList struct RecipeNotebookList
{ {
uint8_t count;
std::vector< int32_t > recipe; std::vector< int32_t > recipe;
RecipeNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); RecipeNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
@ -6840,6 +6875,14 @@ struct RideShooting
RideShooting( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); RideShooting( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct RideShootingTargetType
{
uint32_t eObj;
int16_t score;
RideShootingTargetType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct RideShootingTextData struct RideShootingTextData
{ {
std::string string; std::string string;
@ -7067,6 +7110,7 @@ struct Stain
{ {
uint32_t color; uint32_t color;
uint8_t shade; uint8_t shade;
uint8_t subOrder;
std::string name; std::string name;
Stain( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); Stain( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
@ -7080,6 +7124,13 @@ struct StainTransient
StainTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); StainTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct StanceChange
{
std::vector< uint16_t > action;
StanceChange( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct Status struct Status
{ {
std::string name; std::string name;
@ -7227,6 +7278,7 @@ struct TerritoryType
uint8_t loadingImage; uint8_t loadingImage;
uint8_t exclusiveType; uint8_t exclusiveType;
uint8_t territoryIntendedUse; uint8_t territoryIntendedUse;
uint16_t contentFinderCondition;
uint8_t weatherRate; uint8_t weatherRate;
bool pCSearch; bool pCSearch;
bool stealth; bool stealth;
@ -7261,10 +7313,18 @@ struct TextCommand
std::string description; std::string description;
std::string alias; std::string alias;
std::string shortAlias; std::string shortAlias;
uint16_t param;
TextCommand( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); TextCommand( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct TextCommandParam
{
std::string param;
TextCommandParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct Title struct Title
{ {
std::string masculine; std::string masculine;
@ -8328,11 +8388,14 @@ struct ZoneSharedGroup
xiv::exd::Exd m_PvPSelectTraitDat; xiv::exd::Exd m_PvPSelectTraitDat;
xiv::exd::Exd m_PvPTraitDat; xiv::exd::Exd m_PvPTraitDat;
xiv::exd::Exd m_QuestDat; xiv::exd::Exd m_QuestDat;
xiv::exd::Exd m_QuestAcceptAdditionConditionDat;
xiv::exd::Exd m_QuestBattleDat; xiv::exd::Exd m_QuestBattleDat;
xiv::exd::Exd m_QuestChapterDat; xiv::exd::Exd m_QuestChapterDat;
xiv::exd::Exd m_QuestClassJobRewardDat; xiv::exd::Exd m_QuestClassJobRewardDat;
xiv::exd::Exd m_QuestClassJobSupplyDat; xiv::exd::Exd m_QuestClassJobSupplyDat;
xiv::exd::Exd m_QuestDerivedClassDat; xiv::exd::Exd m_QuestDerivedClassDat;
xiv::exd::Exd m_QuestEffectDat;
xiv::exd::Exd m_QuestEffectDefineDat;
xiv::exd::Exd m_QuestRedoDat; xiv::exd::Exd m_QuestRedoDat;
xiv::exd::Exd m_QuestRedoChapterUIDat; xiv::exd::Exd m_QuestRedoChapterUIDat;
xiv::exd::Exd m_QuestRedoChapterUICategoryDat; xiv::exd::Exd m_QuestRedoChapterUICategoryDat;
@ -8368,6 +8431,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_RetainerTaskParameterDat; xiv::exd::Exd m_RetainerTaskParameterDat;
xiv::exd::Exd m_RetainerTaskRandomDat; xiv::exd::Exd m_RetainerTaskRandomDat;
xiv::exd::Exd m_RideShootingDat; xiv::exd::Exd m_RideShootingDat;
xiv::exd::Exd m_RideShootingTargetTypeDat;
xiv::exd::Exd m_RideShootingTextDataDat; xiv::exd::Exd m_RideShootingTextDataDat;
xiv::exd::Exd m_RPParameterDat; xiv::exd::Exd m_RPParameterDat;
xiv::exd::Exd m_SatisfactionArbitrationDat; xiv::exd::Exd m_SatisfactionArbitrationDat;
@ -8393,6 +8457,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_SpecialShopItemCategoryDat; xiv::exd::Exd m_SpecialShopItemCategoryDat;
xiv::exd::Exd m_StainDat; xiv::exd::Exd m_StainDat;
xiv::exd::Exd m_StainTransientDat; xiv::exd::Exd m_StainTransientDat;
xiv::exd::Exd m_StanceChangeDat;
xiv::exd::Exd m_StatusDat; xiv::exd::Exd m_StatusDat;
xiv::exd::Exd m_StatusHitEffectDat; xiv::exd::Exd m_StatusHitEffectDat;
xiv::exd::Exd m_StatusLoopVFXDat; xiv::exd::Exd m_StatusLoopVFXDat;
@ -8406,6 +8471,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_TerritoryTypeDat; xiv::exd::Exd m_TerritoryTypeDat;
xiv::exd::Exd m_TerritoryTypeTransientDat; xiv::exd::Exd m_TerritoryTypeTransientDat;
xiv::exd::Exd m_TextCommandDat; xiv::exd::Exd m_TextCommandDat;
xiv::exd::Exd m_TextCommandParamDat;
xiv::exd::Exd m_TitleDat; xiv::exd::Exd m_TitleDat;
xiv::exd::Exd m_TomestonesDat; xiv::exd::Exd m_TomestonesDat;
xiv::exd::Exd m_TomestonesItemDat; xiv::exd::Exd m_TomestonesItemDat;
@ -8965,11 +9031,14 @@ struct ZoneSharedGroup
using PvPSelectTraitPtr = std::shared_ptr< PvPSelectTrait >; using PvPSelectTraitPtr = std::shared_ptr< PvPSelectTrait >;
using PvPTraitPtr = std::shared_ptr< PvPTrait >; using PvPTraitPtr = std::shared_ptr< PvPTrait >;
using QuestPtr = std::shared_ptr< Quest >; using QuestPtr = std::shared_ptr< Quest >;
using QuestAcceptAdditionConditionPtr = std::shared_ptr< QuestAcceptAdditionCondition >;
using QuestBattlePtr = std::shared_ptr< QuestBattle >; using QuestBattlePtr = std::shared_ptr< QuestBattle >;
using QuestChapterPtr = std::shared_ptr< QuestChapter >; using QuestChapterPtr = std::shared_ptr< QuestChapter >;
using QuestClassJobRewardPtr = std::shared_ptr< QuestClassJobReward >; using QuestClassJobRewardPtr = std::shared_ptr< QuestClassJobReward >;
using QuestClassJobSupplyPtr = std::shared_ptr< QuestClassJobSupply >; using QuestClassJobSupplyPtr = std::shared_ptr< QuestClassJobSupply >;
using QuestDerivedClassPtr = std::shared_ptr< QuestDerivedClass >; using QuestDerivedClassPtr = std::shared_ptr< QuestDerivedClass >;
using QuestEffectPtr = std::shared_ptr< QuestEffect >;
using QuestEffectDefinePtr = std::shared_ptr< QuestEffectDefine >;
using QuestRedoPtr = std::shared_ptr< QuestRedo >; using QuestRedoPtr = std::shared_ptr< QuestRedo >;
using QuestRedoChapterUIPtr = std::shared_ptr< QuestRedoChapterUI >; using QuestRedoChapterUIPtr = std::shared_ptr< QuestRedoChapterUI >;
using QuestRedoChapterUICategoryPtr = std::shared_ptr< QuestRedoChapterUICategory >; using QuestRedoChapterUICategoryPtr = std::shared_ptr< QuestRedoChapterUICategory >;
@ -9005,6 +9074,7 @@ struct ZoneSharedGroup
using RetainerTaskParameterPtr = std::shared_ptr< RetainerTaskParameter >; using RetainerTaskParameterPtr = std::shared_ptr< RetainerTaskParameter >;
using RetainerTaskRandomPtr = std::shared_ptr< RetainerTaskRandom >; using RetainerTaskRandomPtr = std::shared_ptr< RetainerTaskRandom >;
using RideShootingPtr = std::shared_ptr< RideShooting >; using RideShootingPtr = std::shared_ptr< RideShooting >;
using RideShootingTargetTypePtr = std::shared_ptr< RideShootingTargetType >;
using RideShootingTextDataPtr = std::shared_ptr< RideShootingTextData >; using RideShootingTextDataPtr = std::shared_ptr< RideShootingTextData >;
using RPParameterPtr = std::shared_ptr< RPParameter >; using RPParameterPtr = std::shared_ptr< RPParameter >;
using SatisfactionArbitrationPtr = std::shared_ptr< SatisfactionArbitration >; using SatisfactionArbitrationPtr = std::shared_ptr< SatisfactionArbitration >;
@ -9030,6 +9100,7 @@ struct ZoneSharedGroup
using SpecialShopItemCategoryPtr = std::shared_ptr< SpecialShopItemCategory >; using SpecialShopItemCategoryPtr = std::shared_ptr< SpecialShopItemCategory >;
using StainPtr = std::shared_ptr< Stain >; using StainPtr = std::shared_ptr< Stain >;
using StainTransientPtr = std::shared_ptr< StainTransient >; using StainTransientPtr = std::shared_ptr< StainTransient >;
using StanceChangePtr = std::shared_ptr< StanceChange >;
using StatusPtr = std::shared_ptr< Status >; using StatusPtr = std::shared_ptr< Status >;
using StatusHitEffectPtr = std::shared_ptr< StatusHitEffect >; using StatusHitEffectPtr = std::shared_ptr< StatusHitEffect >;
using StatusLoopVFXPtr = std::shared_ptr< StatusLoopVFX >; using StatusLoopVFXPtr = std::shared_ptr< StatusLoopVFX >;
@ -9043,6 +9114,7 @@ struct ZoneSharedGroup
using TerritoryTypePtr = std::shared_ptr< TerritoryType >; using TerritoryTypePtr = std::shared_ptr< TerritoryType >;
using TerritoryTypeTransientPtr = std::shared_ptr< TerritoryTypeTransient >; using TerritoryTypeTransientPtr = std::shared_ptr< TerritoryTypeTransient >;
using TextCommandPtr = std::shared_ptr< TextCommand >; using TextCommandPtr = std::shared_ptr< TextCommand >;
using TextCommandParamPtr = std::shared_ptr< TextCommandParam >;
using TitlePtr = std::shared_ptr< Title >; using TitlePtr = std::shared_ptr< Title >;
using TomestonesPtr = std::shared_ptr< Tomestones >; using TomestonesPtr = std::shared_ptr< Tomestones >;
using TomestonesItemPtr = std::shared_ptr< TomestonesItem >; using TomestonesItemPtr = std::shared_ptr< TomestonesItem >;
@ -9602,11 +9674,14 @@ struct ZoneSharedGroup
std::set< uint32_t > m_PvPSelectTraitIdList; std::set< uint32_t > m_PvPSelectTraitIdList;
std::set< uint32_t > m_PvPTraitIdList; std::set< uint32_t > m_PvPTraitIdList;
std::set< uint32_t > m_QuestIdList; std::set< uint32_t > m_QuestIdList;
std::set< uint32_t > m_QuestAcceptAdditionConditionIdList;
std::set< uint32_t > m_QuestBattleIdList; std::set< uint32_t > m_QuestBattleIdList;
std::set< uint32_t > m_QuestChapterIdList; std::set< uint32_t > m_QuestChapterIdList;
std::set< uint32_t > m_QuestClassJobRewardIdList; std::set< uint32_t > m_QuestClassJobRewardIdList;
std::set< uint32_t > m_QuestClassJobSupplyIdList; std::set< uint32_t > m_QuestClassJobSupplyIdList;
std::set< uint32_t > m_QuestDerivedClassIdList; std::set< uint32_t > m_QuestDerivedClassIdList;
std::set< uint32_t > m_QuestEffectIdList;
std::set< uint32_t > m_QuestEffectDefineIdList;
std::set< uint32_t > m_QuestRedoIdList; std::set< uint32_t > m_QuestRedoIdList;
std::set< uint32_t > m_QuestRedoChapterUIIdList; std::set< uint32_t > m_QuestRedoChapterUIIdList;
std::set< uint32_t > m_QuestRedoChapterUICategoryIdList; std::set< uint32_t > m_QuestRedoChapterUICategoryIdList;
@ -9642,6 +9717,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_RetainerTaskParameterIdList; std::set< uint32_t > m_RetainerTaskParameterIdList;
std::set< uint32_t > m_RetainerTaskRandomIdList; std::set< uint32_t > m_RetainerTaskRandomIdList;
std::set< uint32_t > m_RideShootingIdList; std::set< uint32_t > m_RideShootingIdList;
std::set< uint32_t > m_RideShootingTargetTypeIdList;
std::set< uint32_t > m_RideShootingTextDataIdList; std::set< uint32_t > m_RideShootingTextDataIdList;
std::set< uint32_t > m_RPParameterIdList; std::set< uint32_t > m_RPParameterIdList;
std::set< uint32_t > m_SatisfactionArbitrationIdList; std::set< uint32_t > m_SatisfactionArbitrationIdList;
@ -9667,6 +9743,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_SpecialShopItemCategoryIdList; std::set< uint32_t > m_SpecialShopItemCategoryIdList;
std::set< uint32_t > m_StainIdList; std::set< uint32_t > m_StainIdList;
std::set< uint32_t > m_StainTransientIdList; std::set< uint32_t > m_StainTransientIdList;
std::set< uint32_t > m_StanceChangeIdList;
std::set< uint32_t > m_StatusIdList; std::set< uint32_t > m_StatusIdList;
std::set< uint32_t > m_StatusHitEffectIdList; std::set< uint32_t > m_StatusHitEffectIdList;
std::set< uint32_t > m_StatusLoopVFXIdList; std::set< uint32_t > m_StatusLoopVFXIdList;
@ -9680,6 +9757,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_TerritoryTypeIdList; std::set< uint32_t > m_TerritoryTypeIdList;
std::set< uint32_t > m_TerritoryTypeTransientIdList; std::set< uint32_t > m_TerritoryTypeTransientIdList;
std::set< uint32_t > m_TextCommandIdList; std::set< uint32_t > m_TextCommandIdList;
std::set< uint32_t > m_TextCommandParamIdList;
std::set< uint32_t > m_TitleIdList; std::set< uint32_t > m_TitleIdList;
std::set< uint32_t > m_TomestonesIdList; std::set< uint32_t > m_TomestonesIdList;
std::set< uint32_t > m_TomestonesItemIdList; std::set< uint32_t > m_TomestonesItemIdList;
@ -12764,6 +12842,12 @@ const std::set< uint32_t >& getQuestIdList()
loadIdList( m_QuestDat, m_QuestIdList ); loadIdList( m_QuestDat, m_QuestIdList );
return m_QuestIdList; return m_QuestIdList;
} }
const std::set< uint32_t >& getQuestAcceptAdditionConditionIdList()
{
if( m_QuestAcceptAdditionConditionIdList.size() == 0 )
loadIdList( m_QuestAcceptAdditionConditionDat, m_QuestAcceptAdditionConditionIdList );
return m_QuestAcceptAdditionConditionIdList;
}
const std::set< uint32_t >& getQuestBattleIdList() const std::set< uint32_t >& getQuestBattleIdList()
{ {
if( m_QuestBattleIdList.size() == 0 ) if( m_QuestBattleIdList.size() == 0 )
@ -12794,6 +12878,18 @@ const std::set< uint32_t >& getQuestDerivedClassIdList()
loadIdList( m_QuestDerivedClassDat, m_QuestDerivedClassIdList ); loadIdList( m_QuestDerivedClassDat, m_QuestDerivedClassIdList );
return m_QuestDerivedClassIdList; return m_QuestDerivedClassIdList;
} }
const std::set< uint32_t >& getQuestEffectIdList()
{
if( m_QuestEffectIdList.size() == 0 )
loadIdList( m_QuestEffectDat, m_QuestEffectIdList );
return m_QuestEffectIdList;
}
const std::set< uint32_t >& getQuestEffectDefineIdList()
{
if( m_QuestEffectDefineIdList.size() == 0 )
loadIdList( m_QuestEffectDefineDat, m_QuestEffectDefineIdList );
return m_QuestEffectDefineIdList;
}
const std::set< uint32_t >& getQuestRedoIdList() const std::set< uint32_t >& getQuestRedoIdList()
{ {
if( m_QuestRedoIdList.size() == 0 ) if( m_QuestRedoIdList.size() == 0 )
@ -13004,6 +13100,12 @@ const std::set< uint32_t >& getRideShootingIdList()
loadIdList( m_RideShootingDat, m_RideShootingIdList ); loadIdList( m_RideShootingDat, m_RideShootingIdList );
return m_RideShootingIdList; return m_RideShootingIdList;
} }
const std::set< uint32_t >& getRideShootingTargetTypeIdList()
{
if( m_RideShootingTargetTypeIdList.size() == 0 )
loadIdList( m_RideShootingTargetTypeDat, m_RideShootingTargetTypeIdList );
return m_RideShootingTargetTypeIdList;
}
const std::set< uint32_t >& getRideShootingTextDataIdList() const std::set< uint32_t >& getRideShootingTextDataIdList()
{ {
if( m_RideShootingTextDataIdList.size() == 0 ) if( m_RideShootingTextDataIdList.size() == 0 )
@ -13154,6 +13256,12 @@ const std::set< uint32_t >& getStainTransientIdList()
loadIdList( m_StainTransientDat, m_StainTransientIdList ); loadIdList( m_StainTransientDat, m_StainTransientIdList );
return m_StainTransientIdList; return m_StainTransientIdList;
} }
const std::set< uint32_t >& getStanceChangeIdList()
{
if( m_StanceChangeIdList.size() == 0 )
loadIdList( m_StanceChangeDat, m_StanceChangeIdList );
return m_StanceChangeIdList;
}
const std::set< uint32_t >& getStatusIdList() const std::set< uint32_t >& getStatusIdList()
{ {
if( m_StatusIdList.size() == 0 ) if( m_StatusIdList.size() == 0 )
@ -13232,6 +13340,12 @@ const std::set< uint32_t >& getTextCommandIdList()
loadIdList( m_TextCommandDat, m_TextCommandIdList ); loadIdList( m_TextCommandDat, m_TextCommandIdList );
return m_TextCommandIdList; return m_TextCommandIdList;
} }
const std::set< uint32_t >& getTextCommandParamIdList()
{
if( m_TextCommandParamIdList.size() == 0 )
loadIdList( m_TextCommandParamDat, m_TextCommandParamIdList );
return m_TextCommandParamIdList;
}
const std::set< uint32_t >& getTitleIdList() const std::set< uint32_t >& getTitleIdList()
{ {
if( m_TitleIdList.size() == 0 ) if( m_TitleIdList.size() == 0 )

View file

@ -43,67 +43,67 @@ namespace Sapphire::Network::Packets
*/ */
enum ServerZoneIpcType : uint16_t enum ServerZoneIpcType : uint16_t
{ {
Ping = 0x0289, // updated 5.55 hotfix Ping = 0x02CB, // updated 5.58
Init = 0x0203, // updated 5.55 hotfix Init = 0x02A8, // updated 5.58
ActorFreeSpawn = 0x01C5, // updated 5.55 hotfix ActorFreeSpawn = 0x0210, // updated 5.58
InitZone = 0x021C, // updated 5.55 hotfix InitZone = 0x0100, // updated 5.58
EffectResult = 0x01E9, // updated 5.55 hotfix EffectResult = 0x0151, // updated 5.58
ActorControl = 0x01C8, // updated 5.55 hotfix ActorControl = 0x0264, // updated 5.58
ActorControlSelf = 0x035A, // updated 5.55 hotfix ActorControlSelf = 0x0314, // updated 5.58
ActorControlTarget = 0x0338, // updated 5.55 hotfix ActorControlTarget = 0x00FC, // updated 5.58
/*! /*!
* @brief Used when resting * @brief Used when resting
*/ */
UpdateHpMpTp = 0x0077, // updated 5.55 hotfix UpdateHpMpTp = 0x039B, // updated 5.58
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
ChatBanned = 0xF06B, ChatBanned = 0xF06B,
Playtime = 0x0348, // updated 5.55 hotfix Playtime = 0x02BE, // updated 5.58
Logout = 0x0292, // updated 5.55 hotfix Logout = 0x0297, // updated 5.58
CFNotify = 0x00DC, // updated 5.55 hotfix CFNotify = 0x01AC, // updated 5.58
CFMemberStatus = 0x0079, CFMemberStatus = 0x0079,
CFDutyInfo = 0x02A3, // updated 5.55 hotfix CFDutyInfo = 0x0083, // updated 5.58
CFPlayerInNeed = 0xF07F, CFPlayerInNeed = 0xF07F,
CFPreferredRole = 0x02B6, // updated 5.55 hotfix CFPreferredRole = 0x02FB, // updated 5.58
CFCancel = 0x0262, // updated 5.55 hotfix CFCancel = 0x0135, // updated 5.58
SocialRequestError = 0xF0AD, SocialRequestError = 0xF0AD,
CFRegistered = 0x0114, // updated 5.55 hotfix CFRegistered = 0x037E, // updated 5.58
SocialRequestResponse = 0x033C, // updated 5.55 hotfix SocialRequestResponse = 0x0254, // updated 5.58
SocialMessage = 0x0304, // updated 5.55 hotfix SocialMessage = 0x02F2, // updated 5.58
SocialMessage2 = 0x01B4, // updated 5.55 hotfix SocialMessage2 = 0x017A, // updated 5.58
CancelAllianceForming = 0x00C6, // updated 4.2 CancelAllianceForming = 0xF0C6, // updated 4.2
LogMessage = 0x00D0, LogMessage = 0x020F, // updated 5.58
Chat = 0x0384, // updated 5.55 hotfix Chat = 0x0220, // updated 5.58
PartyChat = 0x0065, PartyChat = 0x0065,
WorldVisitList = 0xF0FE, // added 4.5 WorldVisitList = 0xF0FE, // added 4.5
SocialList = 0x00DD, // updated 5.55 hotfix SocialList = 0x0396, // updated 5.58
ExamineSearchInfo = 0x022A, // updated 5.55 hotfix ExamineSearchInfo = 0x031F, // updated 5.58
UpdateSearchInfo = 0x03DF, // updated 5.55 hotfix UpdateSearchInfo = 0x0219, // updated 5.58
InitSearchInfo = 0x00F8, // updated 5.55 hotfix InitSearchInfo = 0x01A0, // updated 5.58
ExamineSearchComment = 0x0102, // updated 4.1 ExamineSearchComment = 0x0315, // updated 5.58
ServerNoticeShort = 0x032D, // updated 5.55 hotfix ServerNoticeShort = 0x0211, // updated 5.58
ServerNotice = 0x02CA, // updated 5.55 hotfix ServerNotice = 0x03B9, // updated 5.58
SetOnlineStatus = 0x03A9, // updated 5.55 hotfix SetOnlineStatus = 0x0163, // updated 5.58
CountdownInitiate = 0x0237, // updated 5.25 CountdownInitiate = 0x01F9, // updated 5.58
CountdownCancel = 0x00D9, // updated 5.18 CountdownCancel = 0x0206, // updated 5.58
PlayerAddedToBlacklist = 0x033F, // updated 5.1 PlayerAddedToBlacklist = 0x01FE, // updated 5.58
PlayerRemovedFromBlacklist = 0x0385, // updated 5.1 PlayerRemovedFromBlacklist = 0x02D6, // updated 5.58
BlackList = 0x0093, // updated 5.55 hotfix BlackList = 0x028A, // updated 5.58
LinkshellList = 0x0160, // updated 5.55 hotfix LinkshellList = 0x02DD, // updated 5.58
MailDeleteRequest = 0xF12B, // updated 5.0 MailDeleteRequest = 0xF12B, // updated 5.0
@ -114,85 +114,85 @@ namespace Sapphire::Network::Packets
MarketTaxRates = 0x01F8, // updated 5.35 hotfix MarketTaxRates = 0x01F8, // updated 5.35 hotfix
MarketBoardSearchResult = 0x039D, // updated 5.55 hotfix MarketBoardSearchResult = 0x0355, // updated 5.58
MarketBoardItemListingCount = 0x0277, // updated 5.55 hotfix MarketBoardItemListingCount = 0x0275, // updated 5.58
MarketBoardItemListingHistory = 0x0320, // updated 5.55 hotfix MarketBoardItemListingHistory = 0x0112, // updated 5.58
MarketBoardItemListing = 0x026B, // updated 5.55 hotfix MarketBoardItemListing = 0x00F5, // updated 5.58
CharaFreeCompanyTag = 0x013B, // updated 4.5 CharaFreeCompanyTag = 0x013B, // updated 4.5
FreeCompanyBoardMsg = 0x013C, // updated 4.5 FreeCompanyBoardMsg = 0x028D, // updated 5.58
FreeCompanyInfo = 0x0332, // updated 5.55 hotfix FreeCompanyInfo = 0x0346, // updated 5.58
ExamineFreeCompanyInfo = 0xF13E, // updated 4.5 ExamineFreeCompanyInfo = 0x00B7, // updated 5.58
FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 FreeCompanyUpdateShortMessage = 0xF157, // added 5.0
StatusEffectList = 0x018A, // updated 5.55 hotfix StatusEffectList = 0x01C5, // updated 5.58
EurekaStatusEffectList = 0x0167, // updated 5.18 EurekaStatusEffectList = 0x0167, // updated 5.18
BossStatusEffectList = 0x0312, // added 5.1 BossStatusEffectList = 0x0312, // added 5.1
Effect = 0x0283, // updated 5.55 hotfix Effect = 0x0102, // updated 5.58
AoeEffect8 = 0x025B, // updated 5.55 hotfix AoeEffect8 = 0x0345, // updated 5.58
AoeEffect16 = 0x015D, // updated 5.55 hotfix AoeEffect16 = 0x02B6, // updated 5.58
AoeEffect24 = 0x0091, // updated 5.55 hotfix AoeEffect24 = 0x0298, // updated 5.58
AoeEffect32 = 0x0169, // updated 5.55 hotfix AoeEffect32 = 0x03A4, // updated 5.58
PersistantEffect = 0x035E, // updated 5.55 hotfix PersistantEffect = 0x008D, // updated 5.58
GCAffiliation = 0x0258, // updated 5.55 hotfix GCAffiliation = 0x02B1, // updated 5.58
PlayerSpawn = 0x02C1, // updated 5.55 hotfix PlayerSpawn = 0x0249, // updated 5.58
NpcSpawn = 0x00F1, // updated 5.55 hotfix NpcSpawn = 0x014B, // updated 5.58
NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3 NpcSpawn2 = 0x01CB, // ( Bigger statuseffectlist? ) updated 5.3
ActorMove = 0x009D, // updated 5.55 hotfix ActorMove = 0x023D, // updated 5.58
ActorSetPos = 0x0266, // updated 5.55 hotfix ActorSetPos = 0x0280, // updated 5.58
ActorCast = 0x00A9, // updated 5.55 hotfix ActorCast = 0x02A7, // updated 5.58
SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18
PartyList = 0x01B7, // updated 5.55 hotfix PartyList = 0x02BD, // updated 5.58
PartyMessage = 0x01C1, // updated 5.55 hotfix PartyMessage = 0x0318, // updated 5.58
HateRank = 0x006E, // updated 5.55 hotfix HateRank = 0x02C0, // updated 5.58
HateList = 0x01F1, // updated 5.55 hotfix HateList = 0x01B4, // updated 5.58
ObjectSpawn = 0x00FE, // updated 5.55 hotfix ObjectSpawn = 0x0104, // updated 5.58
ObjectDespawn = 0x0201, // updated 5.55 hotfix ObjectDespawn = 0x030D, // updated 5.58
UpdateClassInfo = 0x0065, // updated 5.55 hotfix UpdateClassInfo = 0x0198, // updated 5.58
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 = 0x01E7, // updated 5.55 hotfix PlayerSetup = 0x0296, // updated 5.58
PlayerStats = 0x012E, // updated 5.55 hotfix PlayerStats = 0x00D5, // updated 5.58
ActorOwner = 0x00EB, // updated 5.55 hotfix ActorOwner = 0x00AE, // updated 5.58
PlayerStateFlags = 0x0190, // updated 5.55 hotfix PlayerStateFlags = 0x022A, // updated 5.58
PlayerClassInfo = 0x022B, // updated 5.55 hotfix PlayerClassInfo = 0x02DF, // updated 5.58
CharaVisualEffect = 0x033A, // updated 5.55 hotfix CharaVisualEffect = 0x0134, // updated 5.58
ModelEquip = 0x0264, // updated 5.55 hotfix ModelEquip = 0x0312, // updated 5.58
Examine = 0x027C, // updated 5.55 hotfix Examine = 0x00D3, // updated 5.58
CharaNameReq = 0x02EC, // updated 5.55 hotfix CharaNameReq = 0x031C, // updated 5.58
// nb: see #565 on github // nb: see #565 on github
UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0 UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0
RetainerSaleHistory = 0x020E, // updated 5.21 hotfix RetainerSaleHistory = 0x01D3, // updated 5.58
RetainerInformation = 0x02DE, // updated 5.55 hotfix RetainerInformation = 0x0069, // updated 5.58
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 = 0x02D3, // updated 5.55 hotfix ItemInfo = 0x00A7, // updated 5.58
ContainerInfo = 0x00CF, // updated 5.55 hotfix ContainerInfo = 0x0208, // updated 5.58
InventoryTransactionFinish = 0x02EE, // updated 5.55 hotfix InventoryTransactionFinish = 0x01A3, // updated 5.58
InventoryTransaction = 0x02FA, // updated 5.55 hotfix InventoryTransaction = 0x03AC, // updated 5.58
CurrencyCrystalInfo = 0x0166, // updated 5.55 hotfix CurrencyCrystalInfo = 0x0394, // updated 5.58
InventoryActionAck = 0x027D, // updated 5.55 hotfix InventoryActionAck = 0x0305, // updated 5.58
UpdateInventorySlot = 0x0073, // updated 5.55 hotfix UpdateInventorySlot = 0x0200, // updated 5.58
HuntingLogEntry = 0x0080, // updated 5.55 hotfix HuntingLogEntry = 0x00C5, // updated 5.58
EventPlay = 0x0369, // updated 5.55 hotfix EventPlay = 0x01EF, // updated 5.58
EventPlay4 = 0x0247, // updated 5.55 hotfix EventPlay4 = 0x021C, // updated 5.58
EventPlay8 = 0x0227, // updated 5.55 hotfix EventPlay8 = 0x0337, // updated 5.58
EventPlay16 = 0x00C5, // updated 5.55 hotfix EventPlay16 = 0x0319, // updated 5.58
EventPlay32 = 0x0184, // updated 5.55 hotfix EventPlay32 = 0x01E2, // updated 5.58
EventPlay64 = 0x011A, // updated 5.55 hotfix EventPlay64 = 0x02FD, // updated 5.58
EventPlay128 = 0x01B3, // updated 5.55 hotfix EventPlay128 = 0x026E, // updated 5.58
EventPlay255 = 0x0240, // updated 5.55 hotfix EventPlay255 = 0x039E, // updated 5.58
EventYield = 0x02CB, // updated 5.55 hotfix EventYield = 0x02CB, // updated 5.55 hotfix
//EventYield4 = 0x0000, //EventYield4 = 0x0000,
@ -203,89 +203,89 @@ namespace Sapphire::Network::Packets
//EventYield128 = 0x0000, //EventYield128 = 0x0000,
//EventYield255 = 0x0000, //EventYield255 = 0x0000,
EventStart = 0x0145, // updated 5.55 hotfix EventStart = 0x01CC, // updated 5.58
EventFinish = 0x0174, // updated 5.55 hotfix EventFinish = 0x0180, // updated 5.58
EventLinkshell = 0x1169, EventLinkshell = 0x1169,
QuestActiveList = 0x0381, // updated 5.55 hotfix QuestActiveList = 0x035D, // updated 5.58
QuestUpdate = 0x031B, // updated 5.55 hotfix QuestUpdate = 0x029A, // updated 5.58
QuestCompleteList = 0x031A, // updated 5.55 hotfix QuestCompleteList = 0x03C5, // updated 5.58
QuestFinish = 0x00E0, // updated 5.55 hotfix QuestFinish = 0x0274, // updated 5.58
MSQTrackerComplete = 0xF1D6, // updated 5.0 MSQTrackerComplete = 0x01C1, // updated 5.58
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 = 0x036E, // updated 5.55 hotfix QuestMessage = 0x036E, // updated 5.55 hotfix
QuestTracker = 0x0294, // updated 5.55 hotfix QuestTracker = 0x038E, // updated 5.58
Mount = 0x016B, // updated 5.55 hotfix Mount = 0x03C2, // updated 5.58
DirectorVars = 0x0391, // updated 5.55 hotfix DirectorVars = 0x01ED, // updated 5.58
SomeDirectorUnk1 = 0x0084, // updated 5.18 SomeDirectorUnk1 = 0x0084, // updated 5.18
SomeDirectorUnk2 = 0xF0C1, // updated 5.18 SomeDirectorUnk2 = 0xF0C1, // updated 5.18
SomeDirectorUnk4 = 0x0101, // updated 5.55 hotfix SomeDirectorUnk4 = 0x01BD, // updated 5.58
SomeDirectorUnk8 = 0x028A, // updated 5.18 SomeDirectorUnk8 = 0x028A, // updated 5.18
SomeDirectorUnk16 = 0x028C, // updated 5.18 SomeDirectorUnk16 = 0x028C, // updated 5.18
DirectorPopUp = 0xF162, // updated 5.18 (could be 0x02C2 in 5.55, needs confirmation - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown DirectorPopUp = 0x02E3, // updated 5.58
DirectorPopUp4 = 0x0214, // updated 5.18 DirectorPopUp4 = 0x01DC, // updated 5.58
DirectorPopUp8 = 0x00F8, // updated 5.18 DirectorPopUp8 = 0x011D, // updated 5.58
CFAvailableContents = 0xF1FD, // updated 4.2 CFAvailableContents = 0xF1FD, // updated 4.2
WeatherChange = 0x0386, // updated 5.55 hotfix WeatherChange = 0x01B1, // updated 5.58
PlayerTitleList = 0x0181, // updated 5.55 hotfix PlayerTitleList = 0x02B4, // updated 5.58
Discovery = 0x019E, // updated 5.55 hotfix Discovery = 0x00B8, // updated 5.58
EorzeaTimeOffset = 0x01AE, // updated 5.55 hotfix EorzeaTimeOffset = 0x03D9, // updated 5.58
EquipDisplayFlags = 0x01A3, // updated 5.55 hotfix EquipDisplayFlags = 0x0199, // updated 5.58
MiniCactpotInit = 0x0286, // added 5.31 MiniCactpotInit = 0x0286, // added 5.31
ShopMessage = 0x0162, // updated 5.55 hotfix ShopMessage = 0x0162, // updated 5.55 hotfix
LootMessage = 0x0299, // updated 5.55 hotfix LootMessage = 0x038C, // updated 5.58
ResultDialog = 0x025D, // updated 5.55 hotfix ResultDialog = 0x00DF, // updated 5.58
DesynthResult = 0x0323, // updated 5.55 hotfix DesynthResult = 0x038F, // updated 5.58
/// Housing ////////////////////////////////////// /// Housing //////////////////////////////////////
LandSetInitialize = 0x01E4, // updated 5.55 hotfix LandSetInitialize = 0x03E3, // updated 5.58
LandUpdate = 0x012B, // updated 5.55 hotfix LandUpdate = 0x029E, // updated 5.58
YardObjectSpawn = 0x0249, // updated 5.55 hotfix YardObjectSpawn = 0x0367, // updated 5.58
HousingIndoorInitialize = 0x0133, // updated 5.55 hotfix HousingIndoorInitialize = 0x02A6, // updated 5.58
LandPriceUpdate = 0x00AA, // updated 5.55 hotfix LandPriceUpdate = 0x0143, // updated 5.58
LandInfoSign = 0x023D, // updated 5.55 hotfix LandInfoSign = 0x0269, // updated 5.58
LandRename = 0x0158, // updated 5.55 hotfix LandRename = 0x0107, // updated 5.58
HousingEstateGreeting = 0x018D, // updated 5.55 hotfix HousingEstateGreeting = 0x0340, // updated 5.58
HousingUpdateLandFlagsSlot = 0x03C8, // updated 5.55 hotfix HousingUpdateLandFlagsSlot = 0x02D2, // updated 5.58
HousingLandFlags = 0x037E, // updated 5.55 hotfix HousingLandFlags = 0x0156, // updated 5.58
HousingShowEstateGuestAccess = 0x01F8, // updated 5.55 hotfix HousingShowEstateGuestAccess = 0x015C, // updated 5.58
HousingObjectInitialize = 0x0331, // updated 5.55 hotfix HousingObjectInitialize = 0x0245, // updated 5.58
HousingInternalObjectSpawn = 0x0092, // updated 5.55 hotfix HousingInternalObjectSpawn = 0x0194, // updated 5.58
HousingWardInfo = 0x0279, // updated 5.55 hotfix HousingWardInfo = 0x00A4, // updated 5.58
HousingObjectMove = 0x0239, // updated 5.55 hotfix HousingObjectMove = 0x01AE, // updated 5.58
SharedEstateSettingsResponse = 0x0263, // updated 5.55 hotfix SharedEstateSettingsResponse = 0x0378, // updated 5.58
LandUpdateHouseName = 0x01D6, // updated 5.55 hotfix LandUpdateHouseName = 0x034B, // updated 5.58
LandSetMap = 0x01D3, // updated 5.55 hotfix LandSetMap = 0x02F6, // updated 5.58
////////////////////////////////////////////////// //////////////////////////////////////////////////
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
PerformNote = 0x038B, // updated 5.55 hotfix PerformNote = 0x00BE, // updated 5.58
PrepareZoning = 0x00A4, // updated 5.55 hotfix PrepareZoning = 0x0171, // updated 5.58
ActorGauge = 0x03B1, // updated 5.55 hotfix ActorGauge = 0x0335, // updated 5.58
DutyGauge = 0x01D3, // updated 5.55 hotfix DutyGauge = 0x02F6, // updated 5.58
// daily quest info -> without them sent, login will take longer... // daily quest info -> without them sent, login will take longer...
DailyQuests = 0x0371, // updated 5.55 hotfix DailyQuests = 0x0331, // updated 5.58
DailyQuestRepeatFlags = 0x021F, // updated 5.55 hotfix DailyQuestRepeatFlags = 0x01D1, // updated 5.58
/// Doman Mahjong ////////////////////////////////////// /// Doman Mahjong //////////////////////////////////////
MahjongOpenGui = 0x02A4, // only available in mahjong instance MahjongOpenGui = 0x02A4, // only available in mahjong instance
@ -300,14 +300,14 @@ namespace Sapphire::Network::Packets
MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen. MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen.
/// Airship & Submarine ////////////////////////////////////// /// Airship & Submarine //////////////////////////////////////
AirshipExplorationResult = 0x007C, // updated 5.55 hotfix AirshipExplorationResult = 0x036C, // updated 5.58
AirshipStatus = 0x00AB, // updated 5.55 hotfix AirshipStatus = 0x021F, // updated 5.58
AirshipStatusList = 0x027B, // updated 5.55 hotfix AirshipStatusList = 0x0073, // updated 5.58
AirshipTimers = 0x02A5, // updated 5.55 hotfix AirshipTimers = 0x0250, // updated 5.58
SubmarineExplorationResult = 0x0099, // updated 5.55 hotfix SubmarineExplorationResult = 0x01D0, // updated 5.58
SubmarineProgressionStatus = 0x0081, // updated 5.55 hotfix SubmarineProgressionStatus = 0x0377, // updated 5.58
SubmarineStatusList = 0x0072, // updated 5.55 hotfix SubmarineStatusList = 0x0338, // updated 5.58
SubmarineTimers = 0x037A, // updated 5.55 hotfix SubmarineTimers = 0x0292, // updated 5.58
}; };
/** /**
@ -315,109 +315,109 @@ namespace Sapphire::Network::Packets
*/ */
enum ClientZoneIpcType : uint16_t enum ClientZoneIpcType : uint16_t
{ {
PingHandler = 0x03AD, // updated 5.55 hotfix PingHandler = 0x03A3, // updated 5.58
InitHandler = 0x03DA, // updated 5.55 hotfix InitHandler = 0x03B3, // updated 5.58
FinishLoadingHandler = 0x0203, // updated 5.55 hotfix FinishLoadingHandler = 0x0217, // updated 5.58
CFCommenceHandler = 0xF118, // updated 5.35 hotfix CFCommenceHandler = 0xF118, // updated 5.35 hotfix
CFCancelHandler = 0x0332, // updated 5.35 hotfix CFCancelHandler = 0x00A9, // updated 5.58
CFRegisterDuty = 0x033C, // updated 5.45 hotfix CFRegisterDuty = 0x036A, // updated 5.58
CFRegisterRoulette = 0x0121, // updated 5.45 hotfix CFRegisterRoulette = 0x038C, // updated 5.58
PlayTimeHandler = 0x0365, // updated 5.55 hotfix PlayTimeHandler = 0x01A8, // updated 5.58
LogoutHandler = 0x039B, // updated 5.55 hotfix LogoutHandler = 0x02A5, // updated 5.58
CancelLogout = 0x010F, // updated 5.55 hotfix CancelLogout = 0x03CC, // updated 5.58
CFDutyInfoHandler = 0xF078, // updated 4.2 CFDutyInfoHandler = 0xF078, // updated 4.2
SocialReqSendHandler = 0x028E, // updated 5.55 hotfix SocialReqSendHandler = 0x0366, // updated 5.58
SocialResponseHandler = 0x0373, // updated 5.55 hotfix SocialResponseHandler = 0x0311, // updated 5.58
CreateCrossWorldLS = 0x028D, // updated 5.55 hotfix CreateCrossWorldLS = 0x0125, // updated 5.58
ChatHandler = 0x01B8, // updated 5.55 hotfix ChatHandler = 0x02F4, // updated 5.58
PartyChatHandler = 0x0065, PartyChatHandler = 0x0065,
PartySetLeaderHandler = 0x0142, // updated 5.55 hotfix PartySetLeaderHandler = 0x03C2, // updated 5.58
LeavePartyHandler = 0x026C, // updated 5.55 hotfix LeavePartyHandler = 0x028A, // updated 5.58
KickPartyMemberHandler = 0x0379, // updated 5.55 hotfix KickPartyMemberHandler = 0x01D1, // updated 5.58
DisbandPartyHandler = 0x037A, // updated 5.45 hotfix DisbandPartyHandler = 0x032B, // updated 5.58
SocialListHandler = 0x00F2, // updated 5.55 hotfix SocialListHandler = 0x006E, // updated 5.58
SetSearchInfoHandler = 0x009C, // updated 5.55 hotfix SetSearchInfoHandler = 0x010A, // updated 5.58
ReqSearchInfoHandler = 0x00B1, // updated 5.55 hotfix ReqSearchInfoHandler = 0x0255, // updated 5.58
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0 ReqRemovePlayerFromBlacklist = 0x015A, // updated 5.58
BlackListHandler = 0x03DE, // updated 5.55 hotfix BlackListHandler = 0x02C5, // updated 5.58
PlayerSearchHandler = 0x00F4, // updated 5.0 PlayerSearchHandler = 0x0259, // updated 5.58
LinkshellListHandler = 0x0291, // updated 5.55 hotfix LinkshellListHandler = 0x01F0, // updated 5.58
MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5 MarketBoardRequestItemListingInfo = 0x02D3, // updated 5.58
MarketBoardRequestItemListings = 0x0103, // updated 4.5 MarketBoardRequestItemListings = 0x00AD, // updated 5.58
MarketBoardSearch = 0x0107, // updated 4.5 MarketBoardSearch = 0x00D6, // updated 5.58
ReqExamineFcInfo = 0x0113, // updated 4.1 ReqExamineFcInfo = 0x0359, // updated 5.58
FcInfoReqHandler = 0x011A, // updated 4.2 FcInfoReqHandler = 0x0078, // updated 5.58
FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0 FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0
ReqMarketWishList = 0x012C, // updated 4.3 ReqMarketWishList = 0x0364, // updated 5.58
ReqJoinNoviceNetwork = 0x0129, // updated 4.2 ReqJoinNoviceNetwork = 0x0129, // updated 4.2
ReqCountdownInitiate = 0x025F, // updated 5.35 hotfix ReqCountdownInitiate = 0x020E, // updated 5.58
ReqCountdownCancel = 0x0244, // updated 5.25 ReqCountdownCancel = 0x03BE, // updated 5.58
ZoneLineHandler = 0x01C2, // updated 5.55 hotfix ZoneLineHandler = 0x00B0, // updated 5.58
ClientTrigger = 0x0337, // updated 5.55 hotfix ClientTrigger = 0x008B, // updated 5.58
DiscoveryHandler = 0x00E3, // updated 5.35 hotfix DiscoveryHandler = 0x01B4, // updated 5.58
PlaceFieldMarkerPreset = 0xF10C, // updated 5.55 hotfix PlaceFieldMarkerPreset = 0x03B0, // updated 5.58
PlaceFieldMarker = 0xF2E2, // updated 5.55 hotfix PlaceFieldMarker = 0x011A, // updated 5.58
SkillHandler = 0x02A2, // updated 5.55 hotfix SkillHandler = 0x0175, // updated 5.58
GMCommand1 = 0x01F0, // updated 5.55 hotfix GMCommand1 = 0x0353, // updated 5.58
GMCommand2 = 0x0068, // updated 5.55 hotfix GMCommand2 = 0x03E7, // updated 5.58
AoESkillHandler = 0x02F6, // updated 5.55 hotfix AoESkillHandler = 0x021D, // updated 5.58
UpdatePositionHandler = 0x024B, // updated 5.55 hotfix UpdatePositionHandler = 0x0212, // updated 5.58
InventoryModifyHandler = 0x01D7, // updated 5.55 hotfix InventoryModifyHandler = 0x014A, // updated 5.58
InventoryEquipRecommendedItems = 0x0186, // updated 5.45 hotfix InventoryEquipRecommendedItems = 0x01D7, // updated 5.58
ReqPlaceHousingItem = 0x023E, // updated 5.55 hotfix ReqPlaceHousingItem = 0x0354, // updated 5.58
BuildPresetHandler = 0x0374, // updated 5.55 hotfix BuildPresetHandler = 0x00DC, // updated 5.58
TalkEventHandler = 0x01E9, // updated 5.55 hotfix TalkEventHandler = 0x012D, // updated 5.58
EmoteEventHandler = 0xF35A, // updated 5.55 hotfix EmoteEventHandler = 0xF35A, // updated 5.55 hotfix
WithinRangeEventHandler = 0x035A, // updated 5.55 hotfix WithinRangeEventHandler = 0x022C, // updated 5.58
OutOfRangeEventHandler = 0x0338, // updated 5.55 hotfix OutOfRangeEventHandler = 0x0294, // updated 5.58
EnterTeriEventHandler = 0x0077, // updated 5.55 hotfix EnterTeriEventHandler = 0x00C1, // updated 5.58
ShopEventHandler = 0x0168, // updated 5.55 hotfix ShopEventHandler = 0x02B8, // updated 5.58
EventYieldHandler = 0x02A0, // updated 5.55 hotfix EventYieldHandler = 0x02A0, // updated 5.55 hotfix
ReturnEventHandler = 0x015D, // updated 5.55 hotfix ReturnEventHandler = 0x0333, // updated 5.58
TradeReturnEventHandler = 0x0091, // updated 5.55 hotfix TradeReturnEventHandler = 0x0179, // updated 5.58
TradeReturnEventHandler2 = 0x0169, // updated 5.55 hotfix TradeReturnEventHandler2 = 0x0169, // updated 5.55 hotfix
LinkshellEventHandler = 0x016B, // updated 4.5 LinkshellEventHandler = 0x016B, // updated 4.5
LinkshellEventHandler1 = 0x016C, // updated 4.5 LinkshellEventHandler1 = 0x016C, // updated 4.5
ReqEquipDisplayFlagsChange = 0x032B, // updated 5.55 hotfix ReqEquipDisplayFlagsChange = 0x01AD, // updated 5.58
LandRenameHandler = 0x0206, // updated 5.55 hotfix LandRenameHandler = 0x0083, // updated 5.58
HousingUpdateHouseGreeting = 0x0330, // updated 5.55 hotfix HousingUpdateHouseGreeting = 0x031A, // updated 5.58
HousingUpdateObjectPosition = 0x03A5, // updated 5.55 hotfix HousingUpdateObjectPosition = 0x010E, // updated 5.58
HousingEditAppearance = 0x00D7, // updated 5.55 hotfix HousingEditAppearance = 0x00D7, // updated 5.55 hotfix
SetSharedEstateSettings = 0x03DC, // updated 5.55 hotfix SetSharedEstateSettings = 0x0342, // updated 5.58
UpdatePositionInstance = 0x009D, // updated 5.55 hotfix UpdatePositionInstance = 0x01A3, // updated 5.58
PerformNoteHandler = 0x01F1, // updated 5.55 hotfix PerformNoteHandler = 0x015E, // updated 5.58
WorldInteractionHandler = 0x0343, // updated 5.55 hotfix WorldInteractionHandler = 0x03CE, // updated 5.58
Dive = 0x021C, // updated 5.55 hotfix Dive = 0x034C, // updated 5.58
}; };
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////