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

Merge pull request #937 from MapleHinata/Sapphire_Retail_6.40

Update Retail to 6.40
This commit is contained in:
Mordred 2023-05-29 09:47:53 +02:00 committed by GitHub
commit 45c6e2d833
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 1882 additions and 1472 deletions

View file

@ -15,7 +15,6 @@ add_custom_target( copy_runtime_files ALL
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/web ${CMAKE_BINARY_DIR}/bin/web COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/web ${CMAKE_BINARY_DIR}/bin/web
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/sql_import.sh ${CMAKE_BINARY_DIR}/bin/sql_import.sh COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/sql_import.sh ${CMAKE_BINARY_DIR}/bin/sql_import.sh
COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/bin/data/actions COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_DIR}/bin/data/actions
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/deps/Oodle/oo2net_9_win64.dll ${CMAKE_BINARY_DIR}/bin/oo2net_9_win64.dll
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/deps/ffxiv-actions/actions ${CMAKE_BINARY_DIR}/bin/data/actions ) COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/deps/ffxiv-actions/actions ${CMAKE_BINARY_DIR}/bin/data/actions )
###################################### ######################################

View file

@ -82,12 +82,15 @@ find_path(MYSQL_INCLUDE_DIR
/usr/local/include /usr/local/include
/usr/local/include/mysql /usr/local/include/mysql
/usr/local/mysql/include /usr/local/mysql/include
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/include"
"${PROGRAM_FILES_64}/MySQL/include"
"${PROGRAM_FILES_64}/MariaDB 10.3/include/mysql" "${PROGRAM_FILES_64}/MariaDB 10.3/include/mysql"
"${PROGRAM_FILES_64}/MariaDB 10.4/include/mysql" "${PROGRAM_FILES_64}/MariaDB 10.4/include/mysql"
"${PROGRAM_FILES_64}/MariaDB 10.5/include/mysql" "${PROGRAM_FILES_64}/MariaDB 10.5/include/mysql"
"${PROGRAM_FILES_64}/MariaDB 10.6/include/mysql" "${PROGRAM_FILES_64}/MariaDB 10.6/include/mysql"
"${PROGRAM_FILES_64}/MariaDB 10.7/include/mysql"
"${PROGRAM_FILES_64}/MariaDB 10.8/include/mysql"
"${PROGRAM_FILES_64}/MariaDB 10.9/include/mysql"
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/include"
"${PROGRAM_FILES_64}/MySQL/include"
"C:/MySQL/include" "C:/MySQL/include"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/include" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/include"
"$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/include" "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/include"
@ -123,13 +126,16 @@ if( WIN32 )
libmariadb libmariadb
PATHS PATHS
${MYSQL_ADD_LIBRARIES_PATH} ${MYSQL_ADD_LIBRARIES_PATH}
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/lib"
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/lib/opt"
"${PROGRAM_FILES_64}/MySQL/lib"
"${PROGRAM_FILES_64}/MariaDB 10.3/lib" "${PROGRAM_FILES_64}/MariaDB 10.3/lib"
"${PROGRAM_FILES_64}/MariaDB 10.4/lib" "${PROGRAM_FILES_64}/MariaDB 10.4/lib"
"${PROGRAM_FILES_64}/MariaDB 10.5/lib" "${PROGRAM_FILES_64}/MariaDB 10.5/lib"
"${PROGRAM_FILES_64}/MariaDB 10.6/lib" "${PROGRAM_FILES_64}/MariaDB 10.6/lib"
"${PROGRAM_FILES_64}/MariaDB 10.7/lib"
"${PROGRAM_FILES_64}/MariaDB 10.8/lib"
"${PROGRAM_FILES_64}/MariaDB 10.9/lib"
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/lib"
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/lib/opt"
"${PROGRAM_FILES_64}/MySQL/lib"
"C:/MySQL/lib/debug" "C:/MySQL/lib/debug"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib/opt" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib/opt"
@ -179,13 +185,14 @@ endif( UNIX )
if( WIN32 ) if( WIN32 )
find_program(MYSQL_EXECUTABLE mysql find_program(MYSQL_EXECUTABLE mysql
PATHS PATHS
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin"
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin/opt"
"${PROGRAM_FILES_64}/MySQL/bin"
"${PROGRAM_FILES_64}/MariaDB 10.3/bin" "${PROGRAM_FILES_64}/MariaDB 10.3/bin"
"${PROGRAM_FILES_64}/MariaDB 10.4/bin" "${PROGRAM_FILES_64}/MariaDB 10.4/bin"
"${PROGRAM_FILES_64}/MariaDB 10.5/bin" "${PROGRAM_FILES_64}/MariaDB 10.5/bin"
"${PROGRAM_FILES_64}/MariaDB 10.6/bin" "${PROGRAM_FILES_64}/MariaDB 10.6/bin"
"${PROGRAM_FILES_64}/MariaDB 10.7/bin"
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin"
"${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin/opt"
"${PROGRAM_FILES_64}/MySQL/bin"
"C:/MySQL/bin/debug" "C:/MySQL/bin/debug"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin/opt" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin/opt"

View file

@ -6,7 +6,8 @@
/* This file has been automatically generated. /* This file has been automatically generated.
Changes will be lost upon regeneration. Changes will be lost upon regeneration.
To change the content edit tools/exd_common_gen */ To change the content edit tools/exd_common_gen */
namespace Sapphire::Common { namespace Sapphire::Common
{
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
//ActionCategory.exd //ActionCategory.exd
@ -117,15 +118,7 @@ namespace Sapphire::Common {
//BeastReputationRank.exd //BeastReputationRank.exd
enum class BeastReputationRank: uint8_t enum class BeastReputationRank: uint8_t
{ {
None = 0, None = 0, Neutral = 1, Recognized = 2, Friendly = 3, Trusted = 4, Respected = 5, Honored = 6, Sworn = 7, Allied = 8,
Neutral = 1,
Recognized = 2,
Friendly = 3,
Trusted = 4,
Respected = 5,
Honored = 6,
Sworn = 7,
Allied = 8,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -233,17 +226,14 @@ namespace Sapphire::Common {
//4 = 27, //4 = 27,
UltimateRaids = 28, UltimateRaids = 28,
//5 = 29, //5 = 29,
VCDungeonFinder = 30, VAndCDungeonFinder = 30,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
//EmoteCategory.exd //EmoteCategory.exd
enum class EmoteCategory: uint8_t enum class EmoteCategory: uint8_t
{ {
None = 0, None = 0, General = 1, Special = 2, Expressions = 3,
General = 1,
Special = 2,
Expressions = 3,
//1 = 4, //1 = 4,
}; };
@ -251,21 +241,14 @@ namespace Sapphire::Common {
//ExVersion.exd //ExVersion.exd
enum class ExVersion: uint8_t enum class ExVersion: uint8_t
{ {
ARealmReborn = 0, ARealmReborn = 0, Heavensward = 1, Stormblood = 2, Shadowbringers = 3, Endwalker = 4,
Heavensward = 1,
Stormblood = 2,
Shadowbringers = 3,
Endwalker = 4,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
//GrandCompany.exd //GrandCompany.exd
enum class GrandCompany: uint8_t enum class GrandCompany: uint8_t
{ {
None = 0, None = 0, Maelstrom = 1, OrderoftheTwinAdder = 2, ImmortalFlames = 3,
Maelstrom = 1,
OrderoftheTwinAdder = 2,
ImmortalFlames = 3,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -486,7 +469,7 @@ namespace Sapphire::Common {
DarkKnightsArms = 76, DarkKnightsArms = 76,
MachinistsArms = 77, MachinistsArms = 77,
AstrologiansArms = 78, AstrologiansArms = 78,
AirshipSubmersibleComponents = 79, AirshipAndSubmersibleComponents = 79,
OrchestrionComponents = 80, OrchestrionComponents = 80,
GardeningItems = 81, GardeningItems = 81,
Paintings = 82, Paintings = 82,
@ -568,15 +551,7 @@ namespace Sapphire::Common {
//Race.exd //Race.exd
enum class Race: uint8_t enum class Race: uint8_t
{ {
None = 0, None = 0, Hyur = 1, Elezen = 2, Lalafell = 3, Miqote = 4, Roegadyn = 5, AuRa = 6, Hrothgar = 7, Viera = 8,
Hyur = 1,
Elezen = 2,
Lalafell = 3,
Miqote = 4,
Roegadyn = 5,
AuRa = 6,
Hrothgar = 7,
Viera = 8,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
@ -606,18 +581,11 @@ namespace Sapphire::Common {
//Town.exd //Town.exd
enum class Town: uint8_t enum class Town: uint8_t
{ {
Nowheresville = 0, Nowheresville = 0, LimsaLominsa = 1, Gridania = 2, Uldah = 3, Ishgard = 4, //= 5,
LimsaLominsa = 1, //1 = 6,
Gridania = 2, Kugane = 7, //2 = 8,
Uldah = 3, //3 = 9,
Ishgard = 4, Crystarium = 10, //4 = 11,
/* = 5,
1 = 6, */
Kugane = 7,
/* 2 = 8,
3 = 9, */
Crystarium = 10,
//4 = 11,
OldSharlayan = 12, OldSharlayan = 12,
//5 = 13, //5 = 13,
}; };
@ -803,6 +771,8 @@ namespace Sapphire::Common {
DimensionalDisruption4 = 174, DimensionalDisruption4 = 174,
DimensionalDisruption5 = 175, DimensionalDisruption5 = 175,
DimensionalDisruption6 = 176, DimensionalDisruption6 = 176,
Pandaemonium3 = 177,
Pandaemonium4 = 178,
}; };
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////

View file

@ -557,17 +557,17 @@ Sapphire::Data::AOZContent::AOZContent( uint32_t row_id, Sapphire::Data::ExdData
act1FightType = exdData->getField< uint8_t >( row, 2 ); act1FightType = exdData->getField< uint8_t >( row, 2 );
act1 = exdData->getField< uint16_t >( row, 3 ); act1 = exdData->getField< uint16_t >( row, 3 );
arenaType1 = exdData->getField< uint8_t >( row, 4 ); arenaType1 = exdData->getField< uint8_t >( row, 4 );
act2FightType = exdData->getField< uint8_t >( row, 5 ); act2FightType = exdData->getField< uint8_t >( row, 6 );
act2 = exdData->getField< uint16_t >( row, 6 ); act2 = exdData->getField< uint16_t >( row, 7 );
arenaType2 = exdData->getField< uint8_t >( row, 7 ); arenaType2 = exdData->getField< uint8_t >( row, 8 );
act3FightType = exdData->getField< uint8_t >( row, 8 ); act3FightType = exdData->getField< uint8_t >( row, 10 );
act3 = exdData->getField< uint16_t >( row, 9 ); act3 = exdData->getField< uint16_t >( row, 11 );
arenaType3 = exdData->getField< uint8_t >( row, 10 ); arenaType3 = exdData->getField< uint8_t >( row, 12 );
contentEntry = exdData->getField< uint32_t >( row, 11 ); contentEntry = exdData->getField< uint32_t >( row, 14 );
order = exdData->getField< uint8_t >( row, 12 ); order = exdData->getField< uint8_t >( row, 15 );
gilReward = exdData->getField< uint16_t >( row, 13 ); gilReward = exdData->getField< uint16_t >( row, 16 );
alliedSealsReward = exdData->getField< uint16_t >( row, 14 ); alliedSealsReward = exdData->getField< uint16_t >( row, 17 );
tomestonesReward = exdData->getField< uint16_t >( row, 15 ); tomestonesReward = exdData->getField< uint16_t >( row, 18 );
} }
Sapphire::Data::AOZContentBriefingBNpc::AOZContentBriefingBNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::AOZContentBriefingBNpc::AOZContentBriefingBNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -600,6 +600,12 @@ Sapphire::Data::AOZContentBriefingBNpc::AOZContentBriefingBNpc( uint32_t row_id,
flatOrDeathVuln = exdData->getField< bool >( row, 24 ); flatOrDeathVuln = exdData->getField< bool >( row, 24 );
} }
Sapphire::Data::AOZContentBriefingObject::AOZContentBriefingObject( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_AOZContentBriefingObjectDat.get_row( row_id, subRow );
icon = exdData->getField< uint32_t >( row, 0 );
}
Sapphire::Data::AOZReport::AOZReport( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::AOZReport::AOZReport( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_AOZReportDat.get_row( row_id ); auto row = exdData->m_AOZReportDat.get_row( row_id );
@ -1956,11 +1962,11 @@ Sapphire::Data::CollectablesShopItem::CollectablesShopItem( uint32_t row_id, uin
item = exdData->getField< uint32_t >( row, 0 ); item = exdData->getField< uint32_t >( row, 0 );
collectablesShopItemGroup = exdData->getField< uint8_t >( row, 1 ); collectablesShopItemGroup = exdData->getField< uint8_t >( row, 1 );
levelMin = exdData->getField< uint16_t >( row, 2 ); levelMin = exdData->getField< uint16_t >( row, 2 );
levelMax = exdData->getField< uint16_t >( row, 3 ); levelMax = exdData->getField< uint16_t >( row, 4 );
stars = exdData->getField< uint8_t >( row, 4 ); stars = exdData->getField< uint8_t >( row, 5 );
key = exdData->getField< uint8_t >( row, 5 ); key = exdData->getField< uint8_t >( row, 6 );
collectablesShopRefine = exdData->getField< uint16_t >( row, 6 ); collectablesShopRefine = exdData->getField< uint16_t >( row, 7 );
collectablesShopRewardScrip = exdData->getField< uint16_t >( row, 7 ); collectablesShopRewardScrip = exdData->getField< uint16_t >( row, 8 );
} }
Sapphire::Data::CollectablesShopItemGroup::CollectablesShopItemGroup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::CollectablesShopItemGroup::CollectablesShopItemGroup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -2408,11 +2414,11 @@ Sapphire::Data::ContentRoulette::ContentRoulette( uint32_t row_id, Sapphire::Dat
rewardTomeA = exdData->getField< uint16_t >( row, 17 ); rewardTomeA = exdData->getField< uint16_t >( row, 17 );
rewardTomeB = exdData->getField< uint16_t >( row, 18 ); rewardTomeB = exdData->getField< uint16_t >( row, 18 );
rewardTomeC = exdData->getField< uint16_t >( row, 19 ); rewardTomeC = exdData->getField< uint16_t >( row, 19 );
sortKey = exdData->getField< uint8_t >( row, 22 ); sortKey = exdData->getField< uint8_t >( row, 23 );
contentMemberType = exdData->getField< uint8_t >( row, 24 ); contentMemberType = exdData->getField< uint8_t >( row, 25 );
requireAllDuties = exdData->getField< bool >( row, 35 ); requireAllDuties = exdData->getField< bool >( row, 36 );
contentRouletteOpenRule = exdData->getField< uint8_t >( row, 37 ); contentRouletteOpenRule = exdData->getField< uint8_t >( row, 38 );
instanceContent = exdData->getField< uint16_t >( row, 38 ); instanceContent = exdData->getField< uint16_t >( row, 39 );
} }
Sapphire::Data::ContentRouletteOpenRule::ContentRouletteOpenRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::ContentRouletteOpenRule::ContentRouletteOpenRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -2661,6 +2667,11 @@ Sapphire::Data::CustomTalk::CustomTalk( uint32_t row_id, Sapphire::Data::ExdData
specialLinks = exdData->getField< uint32_t >( row, 75 ); specialLinks = exdData->getField< uint32_t >( row, 75 );
} }
Sapphire::Data::CustomTalkDefineClient::CustomTalkDefineClient( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_CustomTalkDefineClientDat.get_row( row_id, subRow );
}
Sapphire::Data::CustomTalkNestHandlers::CustomTalkNestHandlers( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::CustomTalkNestHandlers::CustomTalkNestHandlers( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_CustomTalkNestHandlersDat.get_row( row_id, subRow ); auto row = exdData->m_CustomTalkNestHandlersDat.get_row( row_id, subRow );
@ -3465,6 +3476,12 @@ Sapphire::Data::EventIconPriority::EventIconPriority( uint32_t row_id, Sapphire:
icon.push_back( exdData->getField< uint32_t >( row, 18 ) ); icon.push_back( exdData->getField< uint32_t >( row, 18 ) );
} }
Sapphire::Data::EventIconPriorityPair::EventIconPriorityPair( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_EventIconPriorityPairDat.get_row( row_id );
icon1 = 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 )
{ {
auto row = exdData->m_EventIconTypeDat.get_row( row_id ); auto row = exdData->m_EventIconTypeDat.get_row( row_id );
@ -3838,6 +3855,18 @@ Sapphire::Data::FishingBaitParameter::FishingBaitParameter( uint32_t row_id, Sap
auto row = exdData->m_FishingBaitParameterDat.get_row( row_id ); auto row = exdData->m_FishingBaitParameterDat.get_row( row_id );
} }
Sapphire::Data::FishingNoteInfo::FishingNoteInfo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_FishingNoteInfoDat.get_row( row_id );
size = exdData->getField< uint8_t >( row, 0 );
aquariumWater = exdData->getField< uint8_t >( row, 1 );
weatherRestriction = exdData->getField< uint8_t >( row, 2 );
timeRestriction = exdData->getField< uint8_t >( row, 3 );
specialConditions = exdData->getField< uint8_t >( row, 4 );
isCollectable = exdData->getField< uint8_t >( row, 5 );
item = exdData->getField< int32_t >( row, 6 );
}
Sapphire::Data::FishingRecordType::FishingRecordType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::FishingRecordType::FishingRecordType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_FishingRecordTypeDat.get_row( row_id ); auto row = exdData->m_FishingRecordTypeDat.get_row( row_id );
@ -3890,13 +3919,13 @@ Sapphire::Data::FishParameter::FishParameter( uint32_t row_id, Sapphire::Data::E
text = exdData->getField< std::string >( row, 0 ); text = 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 );
oceanStars = exdData->getField< uint8_t >( row, 3 );
isHidden = exdData->getField< bool >( row, 4 ); isHidden = exdData->getField< bool >( row, 4 );
fishingRecordType = exdData->getField< uint8_t >( row, 6 ); fishingRecordType = exdData->getField< uint8_t >( row, 5 );
fishingSpot = exdData->getField< uint16_t >( row, 8 ); fishingSpot = exdData->getField< uint16_t >( row, 6 );
gatheringSubCategory = exdData->getField< uint16_t >( row, 9 ); gatheringSubCategory = exdData->getField< uint16_t >( row, 7 );
isInLog = exdData->getField< bool >( row, 10 ); isInLog = exdData->getField< bool >( row, 8 );
timeRestricted = exdData->getField< bool >( row, 11 ); achievementCredit = exdData->getField< uint32_t >( row, 9 );
weatherRestricted = exdData->getField< bool >( row, 12 );
} }
Sapphire::Data::FittingShop::FittingShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::FittingShop::FittingShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -3936,14 +3965,6 @@ Sapphire::Data::Frontline03::Frontline03( uint32_t row_id, Sapphire::Data::ExdDa
immortalFlamesIcon.push_back( exdData->getField< uint32_t >( row, 20 ) ); immortalFlamesIcon.push_back( exdData->getField< uint32_t >( row, 20 ) );
} }
Sapphire::Data::Frontline04::Frontline04( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_Frontline04Dat.get_row( row_id );
level1 = exdData->getField< int32_t >( row, 0 );
level2 = exdData->getField< int32_t >( row, 1 );
level3 = exdData->getField< int32_t >( row, 2 );
}
Sapphire::Data::FurnitureCatalogCategory::FurnitureCatalogCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::FurnitureCatalogCategory::FurnitureCatalogCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_FurnitureCatalogCategoryDat.get_row( row_id ); auto row = exdData->m_FurnitureCatalogCategoryDat.get_row( row_id );
@ -4891,11 +4912,9 @@ 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 )
@ -6334,8 +6353,8 @@ Sapphire::Data::IKDRoute::IKDRoute( uint32_t row_id, Sapphire::Data::ExdDataGene
{ {
auto row = exdData->m_IKDRouteDat.get_row( row_id ); auto row = exdData->m_IKDRouteDat.get_row( row_id );
image = exdData->getField< uint32_t >( row, 6 ); image = exdData->getField< uint32_t >( row, 6 );
territoryType = exdData->getField< uint32_t >( row, 7 ); territoryType = exdData->getField< uint32_t >( row, 9 );
name = exdData->getField< std::string >( row, 8 ); name = exdData->getField< std::string >( row, 11 );
} }
Sapphire::Data::IKDRouteTable::IKDRouteTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::IKDRouteTable::IKDRouteTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -6558,11 +6577,6 @@ 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 )
@ -7041,6 +7055,11 @@ Sapphire::Data::MainCommandCategory::MainCommandCategory( uint32_t row_id, Sapph
name = exdData->getField< std::string >( row, 1 ); name = exdData->getField< std::string >( row, 1 );
} }
Sapphire::Data::MandervilleWeaponEnhance::MandervilleWeaponEnhance( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MandervilleWeaponEnhanceDat.get_row( row_id );
}
Sapphire::Data::ManeuversArmor::ManeuversArmor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::ManeuversArmor::ManeuversArmor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_ManeuversArmorDat.get_row( row_id ); auto row = exdData->m_ManeuversArmorDat.get_row( row_id );
@ -7134,7 +7153,7 @@ Sapphire::Data::Marker::Marker( uint32_t row_id, Sapphire::Data::ExdDataGenerate
{ {
auto row = exdData->m_MarkerDat.get_row( row_id ); auto row = exdData->m_MarkerDat.get_row( row_id );
icon = exdData->getField< int32_t >( row, 0 ); icon = exdData->getField< int32_t >( row, 0 );
name = exdData->getField< std::string >( row, 1 ); name = exdData->getField< std::string >( row, 2 );
} }
Sapphire::Data::Materia::Materia( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::Materia::Materia( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -7150,17 +7169,17 @@ Sapphire::Data::Materia::Materia( uint32_t row_id, Sapphire::Data::ExdDataGenera
item.push_back( exdData->getField< int32_t >( row, 7 ) ); item.push_back( exdData->getField< int32_t >( row, 7 ) );
item.push_back( exdData->getField< int32_t >( row, 8 ) ); item.push_back( exdData->getField< int32_t >( row, 8 ) );
item.push_back( exdData->getField< int32_t >( row, 9 ) ); item.push_back( exdData->getField< int32_t >( row, 9 ) );
baseParam = exdData->getField< uint8_t >( row, 10 ); baseParam = exdData->getField< uint8_t >( row, 16 );
value.push_back( exdData->getField< int16_t >( row, 11 ) );
value.push_back( exdData->getField< int16_t >( row, 12 ) );
value.push_back( exdData->getField< int16_t >( row, 13 ) );
value.push_back( exdData->getField< int16_t >( row, 14 ) );
value.push_back( exdData->getField< int16_t >( row, 15 ) );
value.push_back( exdData->getField< int16_t >( row, 16 ) );
value.push_back( exdData->getField< int16_t >( row, 17 ) ); value.push_back( exdData->getField< int16_t >( row, 17 ) );
value.push_back( exdData->getField< int16_t >( row, 18 ) ); value.push_back( exdData->getField< int16_t >( row, 18 ) );
value.push_back( exdData->getField< int16_t >( row, 19 ) ); value.push_back( exdData->getField< int16_t >( row, 19 ) );
value.push_back( exdData->getField< int16_t >( row, 20 ) ); value.push_back( exdData->getField< int16_t >( row, 20 ) );
value.push_back( exdData->getField< int16_t >( row, 21 ) );
value.push_back( exdData->getField< int16_t >( row, 22 ) );
value.push_back( exdData->getField< int16_t >( row, 23 ) );
value.push_back( exdData->getField< int16_t >( row, 24 ) );
value.push_back( exdData->getField< int16_t >( row, 25 ) );
value.push_back( exdData->getField< int16_t >( row, 26 ) );
} }
Sapphire::Data::MateriaGrade::MateriaGrade( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MateriaGrade::MateriaGrade( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -7222,6 +7241,41 @@ Sapphire::Data::MiniGameRA::MiniGameRA( uint32_t row_id, Sapphire::Data::ExdData
bGM = exdData->getField< int32_t >( row, 3 ); bGM = exdData->getField< int32_t >( row, 3 );
} }
Sapphire::Data::MiniGameTurnBreakAction::MiniGameTurnBreakAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MiniGameTurnBreakActionDat.get_row( row_id );
}
Sapphire::Data::MiniGameTurnBreakConst::MiniGameTurnBreakConst( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MiniGameTurnBreakConstDat.get_row( row_id );
}
Sapphire::Data::MiniGameTurnBreakEnemy::MiniGameTurnBreakEnemy( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MiniGameTurnBreakEnemyDat.get_row( row_id );
}
Sapphire::Data::MiniGameTurnBreakPop::MiniGameTurnBreakPop( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MiniGameTurnBreakPopDat.get_row( row_id, subRow );
}
Sapphire::Data::MiniGameTurnBreakPopOffset::MiniGameTurnBreakPopOffset( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MiniGameTurnBreakPopOffsetDat.get_row( row_id );
}
Sapphire::Data::MiniGameTurnBreakStage::MiniGameTurnBreakStage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MiniGameTurnBreakStageDat.get_row( row_id );
}
Sapphire::Data::MiniGameTurnBreakStatus::MiniGameTurnBreakStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MiniGameTurnBreakStatusDat.get_row( row_id );
}
Sapphire::Data::MinionRace::MinionRace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MinionRace::MinionRace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_MinionRaceDat.get_row( row_id ); auto row = exdData->m_MinionRaceDat.get_row( row_id );
@ -7371,6 +7425,16 @@ Sapphire::Data::MJICraftworksPopularity::MJICraftworksPopularity( uint32_t row_i
popularity.push_back( exdData->getField< uint8_t >( row, 68 ) ); popularity.push_back( exdData->getField< uint8_t >( row, 68 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 69 ) ); popularity.push_back( exdData->getField< uint8_t >( row, 69 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 70 ) ); popularity.push_back( exdData->getField< uint8_t >( row, 70 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 71 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 72 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 73 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 74 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 75 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 76 ) );
popularity.push_back( exdData->getField< uint8_t >( row, 77 ) );
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, 80 ) );
} }
Sapphire::Data::MJICraftworksPopularityType::MJICraftworksPopularityType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJICraftworksPopularityType::MJICraftworksPopularityType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -7427,6 +7491,13 @@ Sapphire::Data::MJIFunction::MJIFunction( uint32_t row_id, Sapphire::Data::ExdDa
auto row = exdData->m_MJIFunctionDat.get_row( row_id ); auto row = exdData->m_MJIFunctionDat.get_row( row_id );
} }
Sapphire::Data::MJIGardenscaping::MJIGardenscaping( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MJIGardenscapingDat.get_row( row_id );
level = exdData->getField< uint8_t >( row, 0 );
item = exdData->getField< int32_t >( row, 5 );
}
Sapphire::Data::MJIGathering::MJIGathering( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::MJIGathering::MJIGathering( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_MJIGatheringDat.get_row( row_id ); auto row = exdData->m_MJIGatheringDat.get_row( row_id );
@ -7530,6 +7601,18 @@ Sapphire::Data::MJIMinionPopAreas::MJIMinionPopAreas( uint32_t row_id, Sapphire:
auto row = exdData->m_MJIMinionPopAreasDat.get_row( row_id ); auto row = exdData->m_MJIMinionPopAreasDat.get_row( row_id );
} }
Sapphire::Data::MJIName::MJIName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_MJINameDat.get_row( row_id );
singular = exdData->getField< std::string >( row, 0 );
adjective = exdData->getField< int8_t >( row, 1 );
plural = exdData->getField< std::string >( row, 2 );
possessivePronoun = exdData->getField< int8_t >( row, 3 );
startsWithVowel = exdData->getField< int8_t >( row, 4 );
pronoun = exdData->getField< int8_t >( row, 6 );
article = exdData->getField< int8_t >( row, 7 );
}
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 );
@ -7746,7 +7829,7 @@ Sapphire::Data::Mount::Mount( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
equipFoot = exdData->getField< int32_t >( row, 28 ); equipFoot = exdData->getField< int32_t >( row, 28 );
order = exdData->getField< int16_t >( row, 29 ); order = exdData->getField< int16_t >( row, 29 );
icon = exdData->getField< uint16_t >( row, 30 ); icon = exdData->getField< uint16_t >( row, 30 );
uIPriority = exdData->getField< uint8_t >( row, 31 ); uIPriority = exdData->getField< uint16_t >( row, 31 );
radiusRate = exdData->getField< uint8_t >( row, 32 ); radiusRate = exdData->getField< uint8_t >( row, 32 );
baseMotionSpeed_Run = exdData->getField< uint8_t >( row, 33 ); baseMotionSpeed_Run = exdData->getField< uint8_t >( row, 33 );
baseMotionSpeed_Walk = exdData->getField< uint8_t >( row, 34 ); baseMotionSpeed_Walk = exdData->getField< uint8_t >( row, 34 );
@ -8021,10 +8104,10 @@ Sapphire::Data::OmikujiGuidance::OmikujiGuidance( uint32_t row_id, Sapphire::Dat
Sapphire::Data::OnlineStatus::OnlineStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::OnlineStatus::OnlineStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_OnlineStatusDat.get_row( row_id ); auto row = exdData->m_OnlineStatusDat.get_row( row_id );
list = exdData->getField< bool >( row, 0 ); list = exdData->getField< bool >( row, 1 );
priority = exdData->getField< uint8_t >( row, 2 ); priority = exdData->getField< uint8_t >( row, 3 );
name = exdData->getField< std::string >( row, 3 );
icon = exdData->getField< uint32_t >( row, 4 ); icon = exdData->getField< uint32_t >( row, 4 );
name = exdData->getField< std::string >( row, 6 );
} }
Sapphire::Data::OpenContent::OpenContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::OpenContent::OpenContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -8491,13 +8574,10 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
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 ); previousQuest0Sequence = exdData->getField< uint8_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 );
@ -9779,7 +9859,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
optionalItemStainReward.push_back( exdData->getField< uint8_t >( row, 1496 ) ); optionalItemStainReward.push_back( exdData->getField< uint8_t >( row, 1496 ) );
optionalItemStainReward.push_back( exdData->getField< uint8_t >( row, 1497 ) ); optionalItemStainReward.push_back( exdData->getField< uint8_t >( row, 1497 ) );
optionalItemStainReward.push_back( exdData->getField< uint8_t >( row, 1498 ) ); optionalItemStainReward.push_back( exdData->getField< uint8_t >( row, 1498 ) );
emoteReward = exdData->getField< uint8_t >( row, 1499 ); emoteReward = exdData->getField< uint16_t >( row, 1499 );
actionReward = exdData->getField< uint16_t >( row, 1500 ); actionReward = exdData->getField< uint16_t >( row, 1500 );
generalActionReward.push_back( exdData->getField< uint8_t >( row, 1501 ) ); generalActionReward.push_back( exdData->getField< uint8_t >( row, 1501 ) );
generalActionReward.push_back( exdData->getField< uint8_t >( row, 1502 ) ); generalActionReward.push_back( exdData->getField< uint8_t >( row, 1502 ) );
@ -10280,11 +10360,24 @@ Sapphire::Data::QuestEffectDefine::QuestEffectDefine( uint32_t row_id, uint32_t
effect = exdData->getField< uint16_t >( row, 0 ); effect = exdData->getField< uint16_t >( row, 0 );
} }
Sapphire::Data::QuestEventAreaEntranceInfo::QuestEventAreaEntranceInfo( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_QuestEventAreaEntranceInfoDat.get_row( row_id, subRow );
quest = exdData->getField< uint32_t >( row, 0 );
location = exdData->getField< uint32_t >( row, 2 );
}
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 );
} }
Sapphire::Data::QuestLinkMarkerIcon::QuestLinkMarkerIcon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_QuestLinkMarkerIconDat.get_row( row_id );
icon = exdData->getField< uint32_t >( row, 0 );
}
Sapphire::Data::QuestLinkMarkerSet::QuestLinkMarkerSet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::QuestLinkMarkerSet::QuestLinkMarkerSet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_QuestLinkMarkerSetDat.get_row( row_id ); auto row = exdData->m_QuestLinkMarkerSetDat.get_row( row_id );
@ -11140,9 +11233,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, 5 ); fishingRecordType = exdData->getField< uint8_t >( row, 4 );
territoryType = exdData->getField< uint16_t >( row, 6 ); territoryType = exdData->getField< uint16_t >( row, 5 );
isVisible = exdData->getField< bool >( row, 9 ); isVisible = exdData->getField< bool >( row, 7 );
} }
Sapphire::Data::SpearfishingNotebook::SpearfishingNotebook( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::SpearfishingNotebook::SpearfishingNotebook( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
@ -11394,7 +11487,7 @@ Sapphire::Data::Status::Status( uint32_t row_id, Sapphire::Data::ExdDataGenerate
auto row = exdData->m_StatusDat.get_row( row_id ); auto row = exdData->m_StatusDat.get_row( row_id );
name = exdData->getField< std::string >( row, 0 ); name = exdData->getField< std::string >( row, 0 );
description = exdData->getField< std::string >( row, 1 ); description = exdData->getField< std::string >( row, 1 );
icon = exdData->getField< uint16_t >( row, 2 ); icon = exdData->getField< uint32_t >( row, 2 );
maxStacks = exdData->getField< uint8_t >( row, 4 ); maxStacks = exdData->getField< uint8_t >( row, 4 );
classJobCategory = exdData->getField< uint8_t >( row, 5 ); classJobCategory = exdData->getField< uint8_t >( row, 5 );
statusCategory = exdData->getField< uint8_t >( row, 6 ); statusCategory = exdData->getField< uint8_t >( row, 6 );
@ -13311,7 +13404,7 @@ Sapphire::Data::SubmarineExploration::SubmarineExploration( uint32_t row_id, Sap
y = exdData->getField< int16_t >( row, 3 ); y = exdData->getField< int16_t >( row, 3 );
z = exdData->getField< int16_t >( row, 4 ); z = exdData->getField< int16_t >( row, 4 );
map = exdData->getField< uint8_t >( row, 5 ); map = exdData->getField< uint8_t >( row, 5 );
passengers = exdData->getField< bool >( row, 6 ); startingPoint = exdData->getField< bool >( row, 6 );
stars = exdData->getField< uint8_t >( row, 7 ); stars = exdData->getField< uint8_t >( row, 7 );
rankReq = exdData->getField< uint8_t >( row, 8 ); rankReq = exdData->getField< uint8_t >( row, 8 );
ceruleumTankReq = exdData->getField< uint8_t >( row, 9 ); ceruleumTankReq = exdData->getField< uint8_t >( row, 9 );
@ -13456,6 +13549,21 @@ Sapphire::Data::TofuObjectCategory::TofuObjectCategory( uint32_t row_id, Sapphir
auto row = exdData->m_TofuObjectCategoryDat.get_row( row_id ); auto row = exdData->m_TofuObjectCategoryDat.get_row( row_id );
} }
Sapphire::Data::TofuPreset::TofuPreset( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_TofuPresetDat.get_row( row_id );
}
Sapphire::Data::TofuPresetCategory::TofuPresetCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_TofuPresetCategoryDat.get_row( row_id );
}
Sapphire::Data::TofuPresetObject::TofuPresetObject( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{
auto row = exdData->m_TofuPresetObjectDat.get_row( row_id );
}
Sapphire::Data::Tomestones::Tomestones( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::Tomestones::Tomestones( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_TomestonesDat.get_row( row_id ); auto row = exdData->m_TomestonesDat.get_row( row_id );
@ -13814,9 +13922,9 @@ Sapphire::Data::VVDRouteData::VVDRouteData( uint32_t row_id, uint32_t subRow, Sa
auto row = exdData->m_VVDRouteDataDat.get_row( row_id, subRow ); auto row = exdData->m_VVDRouteDataDat.get_row( row_id, subRow );
} }
Sapphire::Data::VVDVariantAction::VVDVariantAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) Sapphire::Data::VVDVariantAction::VVDVariantAction( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
{ {
auto row = exdData->m_VVDVariantActionDat.get_row( row_id ); auto row = exdData->m_VVDVariantActionDat.get_row( row_id, subRow );
action = exdData->getField< uint32_t >( row, 0 ); action = exdData->getField< uint32_t >( row, 0 );
} }
@ -14134,6 +14242,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_AOZBossDat = setupDatAccess( "AOZBoss", xiv::exd::Language::none ); m_AOZBossDat = setupDatAccess( "AOZBoss", xiv::exd::Language::none );
m_AOZContentDat = setupDatAccess( "AOZContent", xiv::exd::Language::none ); m_AOZContentDat = setupDatAccess( "AOZContent", xiv::exd::Language::none );
m_AOZContentBriefingBNpcDat = setupDatAccess( "AOZContentBriefingBNpc", xiv::exd::Language::none ); m_AOZContentBriefingBNpcDat = setupDatAccess( "AOZContentBriefingBNpc", xiv::exd::Language::none );
m_AOZContentBriefingObjectDat = setupDatAccess( "AOZContentBriefingObject", xiv::exd::Language::none );
m_AOZReportDat = setupDatAccess( "AOZReport", xiv::exd::Language::none ); m_AOZReportDat = setupDatAccess( "AOZReport", xiv::exd::Language::none );
m_AOZScoreDat = setupDatAccess( "AOZScore", xiv::exd::Language::en ); m_AOZScoreDat = setupDatAccess( "AOZScore", xiv::exd::Language::en );
m_AquariumFishDat = setupDatAccess( "AquariumFish", xiv::exd::Language::none ); m_AquariumFishDat = setupDatAccess( "AquariumFish", xiv::exd::Language::none );
@ -14269,6 +14378,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
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_CustomTalkDat = setupDatAccess( "CustomTalk", xiv::exd::Language::en ); m_CustomTalkDat = setupDatAccess( "CustomTalk", xiv::exd::Language::en );
m_CustomTalkDefineClientDat = setupDatAccess( "CustomTalkDefineClient", xiv::exd::Language::none );
m_CustomTalkNestHandlersDat = setupDatAccess( "CustomTalkNestHandlers", xiv::exd::Language::none ); m_CustomTalkNestHandlersDat = setupDatAccess( "CustomTalkNestHandlers", xiv::exd::Language::none );
m_CutsceneDat = setupDatAccess( "Cutscene", xiv::exd::Language::none ); m_CutsceneDat = setupDatAccess( "Cutscene", xiv::exd::Language::none );
m_CutSceneIncompQuestDat = setupDatAccess( "CutSceneIncompQuest", xiv::exd::Language::none ); m_CutSceneIncompQuestDat = setupDatAccess( "CutSceneIncompQuest", xiv::exd::Language::none );
@ -14336,6 +14446,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_EventActionDat = setupDatAccess( "EventAction", xiv::exd::Language::en ); m_EventActionDat = setupDatAccess( "EventAction", xiv::exd::Language::en );
m_EventCustomIconTypeDat = setupDatAccess( "EventCustomIconType", xiv::exd::Language::none ); m_EventCustomIconTypeDat = setupDatAccess( "EventCustomIconType", xiv::exd::Language::none );
m_EventIconPriorityDat = setupDatAccess( "EventIconPriority", xiv::exd::Language::none ); m_EventIconPriorityDat = setupDatAccess( "EventIconPriority", xiv::exd::Language::none );
m_EventIconPriorityPairDat = setupDatAccess( "EventIconPriorityPair", xiv::exd::Language::none );
m_EventIconTypeDat = setupDatAccess( "EventIconType", xiv::exd::Language::none ); m_EventIconTypeDat = setupDatAccess( "EventIconType", xiv::exd::Language::none );
m_EventItemDat = setupDatAccess( "EventItem", xiv::exd::Language::en ); m_EventItemDat = setupDatAccess( "EventItem", xiv::exd::Language::en );
m_EventItemCastTimelineDat = setupDatAccess( "EventItemCastTimeline", xiv::exd::Language::none ); m_EventItemCastTimelineDat = setupDatAccess( "EventItemCastTimeline", xiv::exd::Language::none );
@ -14370,6 +14481,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_FestivalDat = setupDatAccess( "Festival", xiv::exd::Language::none ); m_FestivalDat = setupDatAccess( "Festival", 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_FishingRecordTypeDat = setupDatAccess( "FishingRecordType", xiv::exd::Language::none ); m_FishingRecordTypeDat = setupDatAccess( "FishingRecordType", xiv::exd::Language::none );
m_FishingRecordTypeTransientDat = setupDatAccess( "FishingRecordTypeTransient", xiv::exd::Language::none ); m_FishingRecordTypeTransientDat = setupDatAccess( "FishingRecordTypeTransient", xiv::exd::Language::none );
m_FishingSpotDat = setupDatAccess( "FishingSpot", xiv::exd::Language::en ); m_FishingSpotDat = setupDatAccess( "FishingSpot", xiv::exd::Language::en );
@ -14379,7 +14491,6 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_FittingShopCategoryItemDat = setupDatAccess( "FittingShopCategoryItem", xiv::exd::Language::none ); m_FittingShopCategoryItemDat = setupDatAccess( "FittingShopCategoryItem", xiv::exd::Language::none );
m_FittingShopItemSetDat = setupDatAccess( "FittingShopItemSet", xiv::exd::Language::en ); m_FittingShopItemSetDat = setupDatAccess( "FittingShopItemSet", xiv::exd::Language::en );
m_Frontline03Dat = setupDatAccess( "Frontline03", xiv::exd::Language::none ); m_Frontline03Dat = setupDatAccess( "Frontline03", xiv::exd::Language::none );
m_Frontline04Dat = setupDatAccess( "Frontline04", xiv::exd::Language::none );
m_FurnitureCatalogCategoryDat = setupDatAccess( "FurnitureCatalogCategory", xiv::exd::Language::en ); m_FurnitureCatalogCategoryDat = setupDatAccess( "FurnitureCatalogCategory", xiv::exd::Language::en );
m_FurnitureCatalogItemListDat = setupDatAccess( "FurnitureCatalogItemList", xiv::exd::Language::none ); m_FurnitureCatalogItemListDat = setupDatAccess( "FurnitureCatalogItemList", xiv::exd::Language::none );
m_GameRewardObtainTypeDat = setupDatAccess( "GameRewardObtainType", xiv::exd::Language::none ); m_GameRewardObtainTypeDat = setupDatAccess( "GameRewardObtainType", xiv::exd::Language::none );
@ -14547,6 +14658,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_MacroIconRedirectOldDat = setupDatAccess( "MacroIconRedirectOld", xiv::exd::Language::none ); m_MacroIconRedirectOldDat = setupDatAccess( "MacroIconRedirectOld", xiv::exd::Language::none );
m_MainCommandDat = setupDatAccess( "MainCommand", xiv::exd::Language::en ); m_MainCommandDat = setupDatAccess( "MainCommand", xiv::exd::Language::en );
m_MainCommandCategoryDat = setupDatAccess( "MainCommandCategory", xiv::exd::Language::en ); m_MainCommandCategoryDat = setupDatAccess( "MainCommandCategory", xiv::exd::Language::en );
m_MandervilleWeaponEnhanceDat = setupDatAccess( "MandervilleWeaponEnhance", xiv::exd::Language::none );
m_ManeuversArmorDat = setupDatAccess( "ManeuversArmor", xiv::exd::Language::en ); m_ManeuversArmorDat = setupDatAccess( "ManeuversArmor", xiv::exd::Language::en );
m_MapDat = setupDatAccess( "Map", xiv::exd::Language::none ); m_MapDat = setupDatAccess( "Map", xiv::exd::Language::none );
m_MapConditionDat = setupDatAccess( "MapCondition", xiv::exd::Language::none ); m_MapConditionDat = setupDatAccess( "MapCondition", xiv::exd::Language::none );
@ -14566,6 +14678,13 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_McGuffinDat = setupDatAccess( "McGuffin", xiv::exd::Language::none ); m_McGuffinDat = setupDatAccess( "McGuffin", xiv::exd::Language::none );
m_McGuffinUIDataDat = setupDatAccess( "McGuffinUIData", xiv::exd::Language::en ); m_McGuffinUIDataDat = setupDatAccess( "McGuffinUIData", xiv::exd::Language::en );
m_MiniGameRADat = setupDatAccess( "MiniGameRA", xiv::exd::Language::none ); m_MiniGameRADat = setupDatAccess( "MiniGameRA", xiv::exd::Language::none );
m_MiniGameTurnBreakActionDat = setupDatAccess( "MiniGameTurnBreakAction", xiv::exd::Language::en );
m_MiniGameTurnBreakConstDat = setupDatAccess( "MiniGameTurnBreakConst", xiv::exd::Language::none );
m_MiniGameTurnBreakEnemyDat = setupDatAccess( "MiniGameTurnBreakEnemy", xiv::exd::Language::none );
m_MiniGameTurnBreakPopDat = setupDatAccess( "MiniGameTurnBreakPop", xiv::exd::Language::none );
m_MiniGameTurnBreakPopOffsetDat = setupDatAccess( "MiniGameTurnBreakPopOffset", xiv::exd::Language::none );
m_MiniGameTurnBreakStageDat = setupDatAccess( "MiniGameTurnBreakStage", xiv::exd::Language::none );
m_MiniGameTurnBreakStatusDat = setupDatAccess( "MiniGameTurnBreakStatus", xiv::exd::Language::en );
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 );
@ -14584,6 +14703,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_MJIDisposalShopUICategoryDat = setupDatAccess( "MJIDisposalShopUICategory", xiv::exd::Language::en ); m_MJIDisposalShopUICategoryDat = setupDatAccess( "MJIDisposalShopUICategory", xiv::exd::Language::en );
m_MJIFarmPastureRankDat = setupDatAccess( "MJIFarmPastureRank", xiv::exd::Language::none ); m_MJIFarmPastureRankDat = setupDatAccess( "MJIFarmPastureRank", xiv::exd::Language::none );
m_MJIFunctionDat = setupDatAccess( "MJIFunction", xiv::exd::Language::none ); m_MJIFunctionDat = setupDatAccess( "MJIFunction", xiv::exd::Language::none );
m_MJIGardenscapingDat = setupDatAccess( "MJIGardenscaping", xiv::exd::Language::none );
m_MJIGatheringDat = setupDatAccess( "MJIGathering", xiv::exd::Language::none ); m_MJIGatheringDat = setupDatAccess( "MJIGathering", xiv::exd::Language::none );
m_MJIGatheringItemDat = setupDatAccess( "MJIGatheringItem", xiv::exd::Language::none ); m_MJIGatheringItemDat = setupDatAccess( "MJIGatheringItem", xiv::exd::Language::none );
m_MJIGatheringObjectDat = setupDatAccess( "MJIGatheringObject", xiv::exd::Language::none ); m_MJIGatheringObjectDat = setupDatAccess( "MJIGatheringObject", xiv::exd::Language::none );
@ -14596,6 +14716,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_MJILandmarkPlaceDat = setupDatAccess( "MJILandmarkPlace", xiv::exd::Language::none ); m_MJILandmarkPlaceDat = setupDatAccess( "MJILandmarkPlace", xiv::exd::Language::none );
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_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 );
@ -14697,7 +14818,9 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
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_QuestEffectDat = setupDatAccess( "QuestEffect", xiv::exd::Language::none );
m_QuestEffectDefineDat = setupDatAccess( "QuestEffectDefine", xiv::exd::Language::none ); m_QuestEffectDefineDat = setupDatAccess( "QuestEffectDefine", xiv::exd::Language::none );
m_QuestEventAreaEntranceInfoDat = setupDatAccess( "QuestEventAreaEntranceInfo", xiv::exd::Language::none );
m_QuestLinkMarkerDat = setupDatAccess( "QuestLinkMarker", xiv::exd::Language::none ); m_QuestLinkMarkerDat = setupDatAccess( "QuestLinkMarker", xiv::exd::Language::none );
m_QuestLinkMarkerIconDat = setupDatAccess( "QuestLinkMarkerIcon", xiv::exd::Language::none );
m_QuestLinkMarkerSetDat = setupDatAccess( "QuestLinkMarkerSet", xiv::exd::Language::none ); m_QuestLinkMarkerSetDat = setupDatAccess( "QuestLinkMarkerSet", 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 );
@ -14793,6 +14916,9 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
m_TofuEditParamDat = setupDatAccess( "TofuEditParam", xiv::exd::Language::en ); m_TofuEditParamDat = setupDatAccess( "TofuEditParam", xiv::exd::Language::en );
m_TofuObjectDat = setupDatAccess( "TofuObject", xiv::exd::Language::en ); m_TofuObjectDat = setupDatAccess( "TofuObject", xiv::exd::Language::en );
m_TofuObjectCategoryDat = setupDatAccess( "TofuObjectCategory", xiv::exd::Language::en ); m_TofuObjectCategoryDat = setupDatAccess( "TofuObjectCategory", xiv::exd::Language::en );
m_TofuPresetDat = setupDatAccess( "TofuPreset", xiv::exd::Language::en );
m_TofuPresetCategoryDat = setupDatAccess( "TofuPresetCategory", xiv::exd::Language::en );
m_TofuPresetObjectDat = setupDatAccess( "TofuPresetObject", xiv::exd::Language::none );
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 );
m_TopicSelectDat = setupDatAccess( "TopicSelect", xiv::exd::Language::en ); m_TopicSelectDat = setupDatAccess( "TopicSelect", xiv::exd::Language::en );

View file

@ -76,6 +76,7 @@ struct AOZArrangement;
struct AOZBoss; struct AOZBoss;
struct AOZContent; struct AOZContent;
struct AOZContentBriefingBNpc; struct AOZContentBriefingBNpc;
struct AOZContentBriefingObject;
struct AOZReport; struct AOZReport;
struct AOZScore; struct AOZScore;
struct AquariumFish; struct AquariumFish;
@ -211,6 +212,7 @@ struct CreditCast;
struct CreditList; struct CreditList;
struct CreditListText; struct CreditListText;
struct CustomTalk; struct CustomTalk;
struct CustomTalkDefineClient;
struct CustomTalkNestHandlers; struct CustomTalkNestHandlers;
struct Cutscene; struct Cutscene;
struct CutSceneIncompQuest; struct CutSceneIncompQuest;
@ -278,6 +280,7 @@ struct EurekaSphereElementAdjust;
struct EventAction; struct EventAction;
struct EventCustomIconType; struct EventCustomIconType;
struct EventIconPriority; struct EventIconPriority;
struct EventIconPriorityPair;
struct EventIconType; struct EventIconType;
struct EventItem; struct EventItem;
struct EventItemCastTimeline; struct EventItemCastTimeline;
@ -312,6 +315,7 @@ struct FCRights;
struct Festival; struct Festival;
struct FieldMarker; struct FieldMarker;
struct FishingBaitParameter; struct FishingBaitParameter;
struct FishingNoteInfo;
struct FishingRecordType; struct FishingRecordType;
struct FishingRecordTypeTransient; struct FishingRecordTypeTransient;
struct FishingSpot; struct FishingSpot;
@ -321,7 +325,6 @@ struct FittingShopCategory;
struct FittingShopCategoryItem; struct FittingShopCategoryItem;
struct FittingShopItemSet; struct FittingShopItemSet;
struct Frontline03; struct Frontline03;
struct Frontline04;
struct FurnitureCatalogCategory; struct FurnitureCatalogCategory;
struct FurnitureCatalogItemList; struct FurnitureCatalogItemList;
struct GameRewardObtainType; struct GameRewardObtainType;
@ -489,6 +492,7 @@ struct MacroIcon;
struct MacroIconRedirectOld; struct MacroIconRedirectOld;
struct MainCommand; struct MainCommand;
struct MainCommandCategory; struct MainCommandCategory;
struct MandervilleWeaponEnhance;
struct ManeuversArmor; struct ManeuversArmor;
struct Map; struct Map;
struct MapCondition; struct MapCondition;
@ -508,6 +512,13 @@ struct MateriaTomestoneRate;
struct McGuffin; struct McGuffin;
struct McGuffinUIData; struct McGuffinUIData;
struct MiniGameRA; struct MiniGameRA;
struct MiniGameTurnBreakAction;
struct MiniGameTurnBreakConst;
struct MiniGameTurnBreakEnemy;
struct MiniGameTurnBreakPop;
struct MiniGameTurnBreakPopOffset;
struct MiniGameTurnBreakStage;
struct MiniGameTurnBreakStatus;
struct MinionRace; struct MinionRace;
struct MinionRules; struct MinionRules;
struct MinionSkillType; struct MinionSkillType;
@ -526,6 +537,7 @@ struct MJIDisposalShopItem;
struct MJIDisposalShopUICategory; struct MJIDisposalShopUICategory;
struct MJIFarmPastureRank; struct MJIFarmPastureRank;
struct MJIFunction; struct MJIFunction;
struct MJIGardenscaping;
struct MJIGathering; struct MJIGathering;
struct MJIGatheringItem; struct MJIGatheringItem;
struct MJIGatheringObject; struct MJIGatheringObject;
@ -538,6 +550,7 @@ struct MJILandmark;
struct MJILandmarkPlace; struct MJILandmarkPlace;
struct MJILivelyActor; struct MJILivelyActor;
struct MJIMinionPopAreas; struct MJIMinionPopAreas;
struct MJIName;
struct MJIProgress; struct MJIProgress;
struct MJIRank; struct MJIRank;
struct MJIRecipe; struct MJIRecipe;
@ -639,7 +652,9 @@ struct QuestDefineClient;
struct QuestDerivedClass; struct QuestDerivedClass;
struct QuestEffect; struct QuestEffect;
struct QuestEffectDefine; struct QuestEffectDefine;
struct QuestEventAreaEntranceInfo;
struct QuestLinkMarker; struct QuestLinkMarker;
struct QuestLinkMarkerIcon;
struct QuestLinkMarkerSet; struct QuestLinkMarkerSet;
struct QuestRedo; struct QuestRedo;
struct QuestRedoChapterUI; struct QuestRedoChapterUI;
@ -735,6 +750,9 @@ struct Title;
struct TofuEditParam; struct TofuEditParam;
struct TofuObject; struct TofuObject;
struct TofuObjectCategory; struct TofuObjectCategory;
struct TofuPreset;
struct TofuPresetCategory;
struct TofuPresetObject;
struct Tomestones; struct Tomestones;
struct TomestonesItem; struct TomestonesItem;
struct TopicSelect; struct TopicSelect;
@ -1397,6 +1415,13 @@ struct AOZContentBriefingBNpc
AOZContentBriefingBNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); AOZContentBriefingBNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct AOZContentBriefingObject
{
uint32_t icon;
AOZContentBriefingObject( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
};
struct AOZReport struct AOZReport
{ {
uint8_t reward; uint8_t reward;
@ -3040,6 +3065,12 @@ struct CustomTalk
CustomTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); CustomTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct CustomTalkDefineClient
{
CustomTalkDefineClient( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
};
struct CustomTalkNestHandlers struct CustomTalkNestHandlers
{ {
uint32_t nestHandler; uint32_t nestHandler;
@ -3750,6 +3781,13 @@ struct EventIconPriority
EventIconPriority( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); EventIconPriority( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct EventIconPriorityPair
{
uint32_t icon1;
EventIconPriorityPair( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct EventIconType struct EventIconType
{ {
uint32_t npcIconAvailable; uint32_t npcIconAvailable;
@ -4082,6 +4120,19 @@ struct FishingBaitParameter
FishingBaitParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); FishingBaitParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct FishingNoteInfo
{
uint8_t size;
uint8_t aquariumWater;
uint8_t weatherRestriction;
uint8_t timeRestriction;
uint8_t specialConditions;
uint8_t isCollectable;
int32_t item;
FishingNoteInfo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct FishingRecordType struct FishingRecordType
{ {
int32_t addon; int32_t addon;
@ -4127,13 +4178,13 @@ struct FishParameter
std::string text; std::string text;
int32_t item; int32_t item;
uint16_t gatheringItemLevel; uint16_t gatheringItemLevel;
uint8_t oceanStars;
bool isHidden; bool isHidden;
uint8_t fishingRecordType; uint8_t fishingRecordType;
uint16_t fishingSpot; uint16_t fishingSpot;
uint16_t gatheringSubCategory; uint16_t gatheringSubCategory;
bool isInLog; bool isInLog;
bool timeRestricted; uint32_t achievementCredit;
bool weatherRestricted;
FishParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); FishParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -4172,15 +4223,6 @@ struct Frontline03
Frontline03( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); Frontline03( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct Frontline04
{
int32_t level1;
int32_t level2;
int32_t level3;
Frontline04( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct FurnitureCatalogCategory struct FurnitureCatalogCategory
{ {
std::string category; std::string category;
@ -5890,6 +5932,12 @@ struct MainCommandCategory
MainCommandCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); MainCommandCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct MandervilleWeaponEnhance
{
MandervilleWeaponEnhance( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct ManeuversArmor struct ManeuversArmor
{ {
std::vector< uint32_t > bNpcBase; std::vector< uint32_t > bNpcBase;
@ -6055,6 +6103,48 @@ struct MiniGameRA
MiniGameRA( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); MiniGameRA( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct MiniGameTurnBreakAction
{
MiniGameTurnBreakAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct MiniGameTurnBreakConst
{
MiniGameTurnBreakConst( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct MiniGameTurnBreakEnemy
{
MiniGameTurnBreakEnemy( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct MiniGameTurnBreakPop
{
MiniGameTurnBreakPop( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
};
struct MiniGameTurnBreakPopOffset
{
MiniGameTurnBreakPopOffset( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct MiniGameTurnBreakStage
{
MiniGameTurnBreakStage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct MiniGameTurnBreakStatus
{
MiniGameTurnBreakStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct MinionRace struct MinionRace
{ {
std::string name; std::string name;
@ -6198,6 +6288,14 @@ struct MJIFunction
MJIFunction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); MJIFunction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct MJIGardenscaping
{
uint8_t level;
int32_t item;
MJIGardenscaping( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct MJIGathering struct MJIGathering
{ {
uint8_t gatheringObject; uint8_t gatheringObject;
@ -6305,6 +6403,19 @@ struct MJIMinionPopAreas
MJIMinionPopAreas( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); MJIMinionPopAreas( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct MJIName
{
std::string singular;
int8_t adjective;
std::string plural;
int8_t possessivePronoun;
int8_t startsWithVowel;
int8_t pronoun;
int8_t article;
MJIName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct MJIProgress struct MJIProgress
{ {
std::string vision; std::string vision;
@ -6532,7 +6643,7 @@ struct Mount
int32_t equipFoot; int32_t equipFoot;
int16_t order; int16_t order;
uint16_t icon; uint16_t icon;
uint8_t uIPriority; uint16_t uIPriority;
uint8_t radiusRate; uint8_t radiusRate;
uint8_t baseMotionSpeed_Run; uint8_t baseMotionSpeed_Run;
uint8_t baseMotionSpeed_Walk; uint8_t baseMotionSpeed_Walk;
@ -6830,8 +6941,8 @@ struct OnlineStatus
{ {
bool list; bool list;
uint8_t priority; uint8_t priority;
std::string name;
uint32_t icon; uint32_t icon;
std::string name;
OnlineStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); OnlineStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
@ -7332,7 +7443,7 @@ struct Quest
std::vector< uint8_t > optionalItemCountReward; std::vector< uint8_t > optionalItemCountReward;
std::vector< bool > optionalItemIsHQReward; std::vector< bool > optionalItemIsHQReward;
std::vector< uint8_t > optionalItemStainReward; std::vector< uint8_t > optionalItemStainReward;
uint8_t emoteReward; uint16_t emoteReward;
uint16_t actionReward; uint16_t actionReward;
std::vector< uint8_t > generalActionReward; std::vector< uint8_t > generalActionReward;
uint16_t systemReward0; uint16_t systemReward0;
@ -7433,12 +7544,27 @@ struct QuestEffectDefine
QuestEffectDefine( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); QuestEffectDefine( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct QuestEventAreaEntranceInfo
{
uint32_t quest;
uint32_t location;
QuestEventAreaEntranceInfo( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
};
struct QuestLinkMarker struct QuestLinkMarker
{ {
QuestLinkMarker( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); QuestLinkMarker( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct QuestLinkMarkerIcon
{
uint32_t icon;
QuestLinkMarkerIcon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct QuestLinkMarkerSet struct QuestLinkMarkerSet
{ {
@ -8186,7 +8312,7 @@ struct Status
{ {
std::string name; std::string name;
std::string description; std::string description;
uint16_t icon; uint32_t icon;
uint8_t maxStacks; uint8_t maxStacks;
uint8_t classJobCategory; uint8_t classJobCategory;
uint8_t statusCategory; uint8_t statusCategory;
@ -8266,7 +8392,7 @@ struct SubmarineExploration
int16_t y; int16_t y;
int16_t z; int16_t z;
uint8_t map; uint8_t map;
bool passengers; bool startingPoint;
uint8_t stars; uint8_t stars;
uint8_t rankReq; uint8_t rankReq;
uint8_t ceruleumTankReq; uint8_t ceruleumTankReq;
@ -8428,6 +8554,24 @@ struct TofuObjectCategory
TofuObjectCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); TofuObjectCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct TofuPreset
{
TofuPreset( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct TofuPresetCategory
{
TofuPresetCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct TofuPresetObject
{
TofuPresetObject( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
};
struct Tomestones struct Tomestones
{ {
uint16_t weeklyLimit; uint16_t weeklyLimit;
@ -8770,7 +8914,7 @@ struct VVDVariantAction
{ {
uint32_t action; uint32_t action;
VVDVariantAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); VVDVariantAction( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
}; };
struct Warp struct Warp
@ -9088,6 +9232,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_AOZBossDat; xiv::exd::Exd m_AOZBossDat;
xiv::exd::Exd m_AOZContentDat; xiv::exd::Exd m_AOZContentDat;
xiv::exd::Exd m_AOZContentBriefingBNpcDat; xiv::exd::Exd m_AOZContentBriefingBNpcDat;
xiv::exd::Exd m_AOZContentBriefingObjectDat;
xiv::exd::Exd m_AOZReportDat; xiv::exd::Exd m_AOZReportDat;
xiv::exd::Exd m_AOZScoreDat; xiv::exd::Exd m_AOZScoreDat;
xiv::exd::Exd m_AquariumFishDat; xiv::exd::Exd m_AquariumFishDat;
@ -9223,6 +9368,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_CreditListDat; xiv::exd::Exd m_CreditListDat;
xiv::exd::Exd m_CreditListTextDat; xiv::exd::Exd m_CreditListTextDat;
xiv::exd::Exd m_CustomTalkDat; xiv::exd::Exd m_CustomTalkDat;
xiv::exd::Exd m_CustomTalkDefineClientDat;
xiv::exd::Exd m_CustomTalkNestHandlersDat; xiv::exd::Exd m_CustomTalkNestHandlersDat;
xiv::exd::Exd m_CutsceneDat; xiv::exd::Exd m_CutsceneDat;
xiv::exd::Exd m_CutSceneIncompQuestDat; xiv::exd::Exd m_CutSceneIncompQuestDat;
@ -9290,6 +9436,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_EventActionDat; xiv::exd::Exd m_EventActionDat;
xiv::exd::Exd m_EventCustomIconTypeDat; xiv::exd::Exd m_EventCustomIconTypeDat;
xiv::exd::Exd m_EventIconPriorityDat; xiv::exd::Exd m_EventIconPriorityDat;
xiv::exd::Exd m_EventIconPriorityPairDat;
xiv::exd::Exd m_EventIconTypeDat; xiv::exd::Exd m_EventIconTypeDat;
xiv::exd::Exd m_EventItemDat; xiv::exd::Exd m_EventItemDat;
xiv::exd::Exd m_EventItemCastTimelineDat; xiv::exd::Exd m_EventItemCastTimelineDat;
@ -9324,6 +9471,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_FestivalDat; xiv::exd::Exd m_FestivalDat;
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_FishingRecordTypeDat; xiv::exd::Exd m_FishingRecordTypeDat;
xiv::exd::Exd m_FishingRecordTypeTransientDat; xiv::exd::Exd m_FishingRecordTypeTransientDat;
xiv::exd::Exd m_FishingSpotDat; xiv::exd::Exd m_FishingSpotDat;
@ -9333,7 +9481,6 @@ struct ZoneSharedGroup
xiv::exd::Exd m_FittingShopCategoryItemDat; xiv::exd::Exd m_FittingShopCategoryItemDat;
xiv::exd::Exd m_FittingShopItemSetDat; xiv::exd::Exd m_FittingShopItemSetDat;
xiv::exd::Exd m_Frontline03Dat; xiv::exd::Exd m_Frontline03Dat;
xiv::exd::Exd m_Frontline04Dat;
xiv::exd::Exd m_FurnitureCatalogCategoryDat; xiv::exd::Exd m_FurnitureCatalogCategoryDat;
xiv::exd::Exd m_FurnitureCatalogItemListDat; xiv::exd::Exd m_FurnitureCatalogItemListDat;
xiv::exd::Exd m_GameRewardObtainTypeDat; xiv::exd::Exd m_GameRewardObtainTypeDat;
@ -9501,6 +9648,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_MacroIconRedirectOldDat; xiv::exd::Exd m_MacroIconRedirectOldDat;
xiv::exd::Exd m_MainCommandDat; xiv::exd::Exd m_MainCommandDat;
xiv::exd::Exd m_MainCommandCategoryDat; xiv::exd::Exd m_MainCommandCategoryDat;
xiv::exd::Exd m_MandervilleWeaponEnhanceDat;
xiv::exd::Exd m_ManeuversArmorDat; xiv::exd::Exd m_ManeuversArmorDat;
xiv::exd::Exd m_MapDat; xiv::exd::Exd m_MapDat;
xiv::exd::Exd m_MapConditionDat; xiv::exd::Exd m_MapConditionDat;
@ -9520,6 +9668,13 @@ struct ZoneSharedGroup
xiv::exd::Exd m_McGuffinDat; xiv::exd::Exd m_McGuffinDat;
xiv::exd::Exd m_McGuffinUIDataDat; xiv::exd::Exd m_McGuffinUIDataDat;
xiv::exd::Exd m_MiniGameRADat; xiv::exd::Exd m_MiniGameRADat;
xiv::exd::Exd m_MiniGameTurnBreakActionDat;
xiv::exd::Exd m_MiniGameTurnBreakConstDat;
xiv::exd::Exd m_MiniGameTurnBreakEnemyDat;
xiv::exd::Exd m_MiniGameTurnBreakPopDat;
xiv::exd::Exd m_MiniGameTurnBreakPopOffsetDat;
xiv::exd::Exd m_MiniGameTurnBreakStageDat;
xiv::exd::Exd m_MiniGameTurnBreakStatusDat;
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;
@ -9538,6 +9693,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_MJIDisposalShopUICategoryDat; xiv::exd::Exd m_MJIDisposalShopUICategoryDat;
xiv::exd::Exd m_MJIFarmPastureRankDat; xiv::exd::Exd m_MJIFarmPastureRankDat;
xiv::exd::Exd m_MJIFunctionDat; xiv::exd::Exd m_MJIFunctionDat;
xiv::exd::Exd m_MJIGardenscapingDat;
xiv::exd::Exd m_MJIGatheringDat; xiv::exd::Exd m_MJIGatheringDat;
xiv::exd::Exd m_MJIGatheringItemDat; xiv::exd::Exd m_MJIGatheringItemDat;
xiv::exd::Exd m_MJIGatheringObjectDat; xiv::exd::Exd m_MJIGatheringObjectDat;
@ -9550,6 +9706,7 @@ struct ZoneSharedGroup
xiv::exd::Exd m_MJILandmarkPlaceDat; xiv::exd::Exd m_MJILandmarkPlaceDat;
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_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;
@ -9651,7 +9808,9 @@ struct ZoneSharedGroup
xiv::exd::Exd m_QuestDerivedClassDat; xiv::exd::Exd m_QuestDerivedClassDat;
xiv::exd::Exd m_QuestEffectDat; xiv::exd::Exd m_QuestEffectDat;
xiv::exd::Exd m_QuestEffectDefineDat; xiv::exd::Exd m_QuestEffectDefineDat;
xiv::exd::Exd m_QuestEventAreaEntranceInfoDat;
xiv::exd::Exd m_QuestLinkMarkerDat; xiv::exd::Exd m_QuestLinkMarkerDat;
xiv::exd::Exd m_QuestLinkMarkerIconDat;
xiv::exd::Exd m_QuestLinkMarkerSetDat; xiv::exd::Exd m_QuestLinkMarkerSetDat;
xiv::exd::Exd m_QuestRedoDat; xiv::exd::Exd m_QuestRedoDat;
xiv::exd::Exd m_QuestRedoChapterUIDat; xiv::exd::Exd m_QuestRedoChapterUIDat;
@ -9747,6 +9906,9 @@ struct ZoneSharedGroup
xiv::exd::Exd m_TofuEditParamDat; xiv::exd::Exd m_TofuEditParamDat;
xiv::exd::Exd m_TofuObjectDat; xiv::exd::Exd m_TofuObjectDat;
xiv::exd::Exd m_TofuObjectCategoryDat; xiv::exd::Exd m_TofuObjectCategoryDat;
xiv::exd::Exd m_TofuPresetDat;
xiv::exd::Exd m_TofuPresetCategoryDat;
xiv::exd::Exd m_TofuPresetObjectDat;
xiv::exd::Exd m_TomestonesDat; xiv::exd::Exd m_TomestonesDat;
xiv::exd::Exd m_TomestonesItemDat; xiv::exd::Exd m_TomestonesItemDat;
xiv::exd::Exd m_TopicSelectDat; xiv::exd::Exd m_TopicSelectDat;
@ -9861,6 +10023,7 @@ struct ZoneSharedGroup
using AOZBossPtr = std::shared_ptr< AOZBoss >; using AOZBossPtr = std::shared_ptr< AOZBoss >;
using AOZContentPtr = std::shared_ptr< AOZContent >; using AOZContentPtr = std::shared_ptr< AOZContent >;
using AOZContentBriefingBNpcPtr = std::shared_ptr< AOZContentBriefingBNpc >; using AOZContentBriefingBNpcPtr = std::shared_ptr< AOZContentBriefingBNpc >;
using AOZContentBriefingObjectPtr = std::shared_ptr< AOZContentBriefingObject >;
using AOZReportPtr = std::shared_ptr< AOZReport >; using AOZReportPtr = std::shared_ptr< AOZReport >;
using AOZScorePtr = std::shared_ptr< AOZScore >; using AOZScorePtr = std::shared_ptr< AOZScore >;
using AquariumFishPtr = std::shared_ptr< AquariumFish >; using AquariumFishPtr = std::shared_ptr< AquariumFish >;
@ -9996,6 +10159,7 @@ struct ZoneSharedGroup
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 CustomTalkPtr = std::shared_ptr< CustomTalk >; using CustomTalkPtr = std::shared_ptr< CustomTalk >;
using CustomTalkDefineClientPtr = std::shared_ptr< CustomTalkDefineClient >;
using CustomTalkNestHandlersPtr = std::shared_ptr< CustomTalkNestHandlers >; using CustomTalkNestHandlersPtr = std::shared_ptr< CustomTalkNestHandlers >;
using CutscenePtr = std::shared_ptr< Cutscene >; using CutscenePtr = std::shared_ptr< Cutscene >;
using CutSceneIncompQuestPtr = std::shared_ptr< CutSceneIncompQuest >; using CutSceneIncompQuestPtr = std::shared_ptr< CutSceneIncompQuest >;
@ -10063,6 +10227,7 @@ struct ZoneSharedGroup
using EventActionPtr = std::shared_ptr< EventAction >; using EventActionPtr = std::shared_ptr< EventAction >;
using EventCustomIconTypePtr = std::shared_ptr< EventCustomIconType >; using EventCustomIconTypePtr = std::shared_ptr< EventCustomIconType >;
using EventIconPriorityPtr = std::shared_ptr< EventIconPriority >; using EventIconPriorityPtr = std::shared_ptr< EventIconPriority >;
using EventIconPriorityPairPtr = std::shared_ptr< EventIconPriorityPair >;
using EventIconTypePtr = std::shared_ptr< EventIconType >; using EventIconTypePtr = std::shared_ptr< EventIconType >;
using EventItemPtr = std::shared_ptr< EventItem >; using EventItemPtr = std::shared_ptr< EventItem >;
using EventItemCastTimelinePtr = std::shared_ptr< EventItemCastTimeline >; using EventItemCastTimelinePtr = std::shared_ptr< EventItemCastTimeline >;
@ -10097,6 +10262,7 @@ struct ZoneSharedGroup
using FestivalPtr = std::shared_ptr< Festival >; using FestivalPtr = std::shared_ptr< Festival >;
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 FishingRecordTypePtr = std::shared_ptr< FishingRecordType >; using FishingRecordTypePtr = std::shared_ptr< FishingRecordType >;
using FishingRecordTypeTransientPtr = std::shared_ptr< FishingRecordTypeTransient >; using FishingRecordTypeTransientPtr = std::shared_ptr< FishingRecordTypeTransient >;
using FishingSpotPtr = std::shared_ptr< FishingSpot >; using FishingSpotPtr = std::shared_ptr< FishingSpot >;
@ -10106,7 +10272,6 @@ struct ZoneSharedGroup
using FittingShopCategoryItemPtr = std::shared_ptr< FittingShopCategoryItem >; using FittingShopCategoryItemPtr = std::shared_ptr< FittingShopCategoryItem >;
using FittingShopItemSetPtr = std::shared_ptr< FittingShopItemSet >; using FittingShopItemSetPtr = std::shared_ptr< FittingShopItemSet >;
using Frontline03Ptr = std::shared_ptr< Frontline03 >; using Frontline03Ptr = std::shared_ptr< Frontline03 >;
using Frontline04Ptr = std::shared_ptr< Frontline04 >;
using FurnitureCatalogCategoryPtr = std::shared_ptr< FurnitureCatalogCategory >; using FurnitureCatalogCategoryPtr = std::shared_ptr< FurnitureCatalogCategory >;
using FurnitureCatalogItemListPtr = std::shared_ptr< FurnitureCatalogItemList >; using FurnitureCatalogItemListPtr = std::shared_ptr< FurnitureCatalogItemList >;
using GameRewardObtainTypePtr = std::shared_ptr< GameRewardObtainType >; using GameRewardObtainTypePtr = std::shared_ptr< GameRewardObtainType >;
@ -10274,6 +10439,7 @@ struct ZoneSharedGroup
using MacroIconRedirectOldPtr = std::shared_ptr< MacroIconRedirectOld >; using MacroIconRedirectOldPtr = std::shared_ptr< MacroIconRedirectOld >;
using MainCommandPtr = std::shared_ptr< MainCommand >; using MainCommandPtr = std::shared_ptr< MainCommand >;
using MainCommandCategoryPtr = std::shared_ptr< MainCommandCategory >; using MainCommandCategoryPtr = std::shared_ptr< MainCommandCategory >;
using MandervilleWeaponEnhancePtr = std::shared_ptr< MandervilleWeaponEnhance >;
using ManeuversArmorPtr = std::shared_ptr< ManeuversArmor >; using ManeuversArmorPtr = std::shared_ptr< ManeuversArmor >;
using MapPtr = std::shared_ptr< Map >; using MapPtr = std::shared_ptr< Map >;
using MapConditionPtr = std::shared_ptr< MapCondition >; using MapConditionPtr = std::shared_ptr< MapCondition >;
@ -10293,6 +10459,13 @@ struct ZoneSharedGroup
using McGuffinPtr = std::shared_ptr< McGuffin >; using McGuffinPtr = std::shared_ptr< McGuffin >;
using McGuffinUIDataPtr = std::shared_ptr< McGuffinUIData >; using McGuffinUIDataPtr = std::shared_ptr< McGuffinUIData >;
using MiniGameRAPtr = std::shared_ptr< MiniGameRA >; using MiniGameRAPtr = std::shared_ptr< MiniGameRA >;
using MiniGameTurnBreakActionPtr = std::shared_ptr< MiniGameTurnBreakAction >;
using MiniGameTurnBreakConstPtr = std::shared_ptr< MiniGameTurnBreakConst >;
using MiniGameTurnBreakEnemyPtr = std::shared_ptr< MiniGameTurnBreakEnemy >;
using MiniGameTurnBreakPopPtr = std::shared_ptr< MiniGameTurnBreakPop >;
using MiniGameTurnBreakPopOffsetPtr = std::shared_ptr< MiniGameTurnBreakPopOffset >;
using MiniGameTurnBreakStagePtr = std::shared_ptr< MiniGameTurnBreakStage >;
using MiniGameTurnBreakStatusPtr = std::shared_ptr< MiniGameTurnBreakStatus >;
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 >;
@ -10311,6 +10484,7 @@ struct ZoneSharedGroup
using MJIDisposalShopUICategoryPtr = std::shared_ptr< MJIDisposalShopUICategory >; using MJIDisposalShopUICategoryPtr = std::shared_ptr< MJIDisposalShopUICategory >;
using MJIFarmPastureRankPtr = std::shared_ptr< MJIFarmPastureRank >; using MJIFarmPastureRankPtr = std::shared_ptr< MJIFarmPastureRank >;
using MJIFunctionPtr = std::shared_ptr< MJIFunction >; using MJIFunctionPtr = std::shared_ptr< MJIFunction >;
using MJIGardenscapingPtr = std::shared_ptr< MJIGardenscaping >;
using MJIGatheringPtr = std::shared_ptr< MJIGathering >; using MJIGatheringPtr = std::shared_ptr< MJIGathering >;
using MJIGatheringItemPtr = std::shared_ptr< MJIGatheringItem >; using MJIGatheringItemPtr = std::shared_ptr< MJIGatheringItem >;
using MJIGatheringObjectPtr = std::shared_ptr< MJIGatheringObject >; using MJIGatheringObjectPtr = std::shared_ptr< MJIGatheringObject >;
@ -10323,6 +10497,7 @@ struct ZoneSharedGroup
using MJILandmarkPlacePtr = std::shared_ptr< MJILandmarkPlace >; using MJILandmarkPlacePtr = std::shared_ptr< MJILandmarkPlace >;
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 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 >;
@ -10424,7 +10599,9 @@ struct ZoneSharedGroup
using QuestDerivedClassPtr = std::shared_ptr< QuestDerivedClass >; using QuestDerivedClassPtr = std::shared_ptr< QuestDerivedClass >;
using QuestEffectPtr = std::shared_ptr< QuestEffect >; using QuestEffectPtr = std::shared_ptr< QuestEffect >;
using QuestEffectDefinePtr = std::shared_ptr< QuestEffectDefine >; using QuestEffectDefinePtr = std::shared_ptr< QuestEffectDefine >;
using QuestEventAreaEntranceInfoPtr = std::shared_ptr< QuestEventAreaEntranceInfo >;
using QuestLinkMarkerPtr = std::shared_ptr< QuestLinkMarker >; using QuestLinkMarkerPtr = std::shared_ptr< QuestLinkMarker >;
using QuestLinkMarkerIconPtr = std::shared_ptr< QuestLinkMarkerIcon >;
using QuestLinkMarkerSetPtr = std::shared_ptr< QuestLinkMarkerSet >; using QuestLinkMarkerSetPtr = std::shared_ptr< QuestLinkMarkerSet >;
using QuestRedoPtr = std::shared_ptr< QuestRedo >; using QuestRedoPtr = std::shared_ptr< QuestRedo >;
using QuestRedoChapterUIPtr = std::shared_ptr< QuestRedoChapterUI >; using QuestRedoChapterUIPtr = std::shared_ptr< QuestRedoChapterUI >;
@ -10520,6 +10697,9 @@ struct ZoneSharedGroup
using TofuEditParamPtr = std::shared_ptr< TofuEditParam >; using TofuEditParamPtr = std::shared_ptr< TofuEditParam >;
using TofuObjectPtr = std::shared_ptr< TofuObject >; using TofuObjectPtr = std::shared_ptr< TofuObject >;
using TofuObjectCategoryPtr = std::shared_ptr< TofuObjectCategory >; using TofuObjectCategoryPtr = std::shared_ptr< TofuObjectCategory >;
using TofuPresetPtr = std::shared_ptr< TofuPreset >;
using TofuPresetCategoryPtr = std::shared_ptr< TofuPresetCategory >;
using TofuPresetObjectPtr = std::shared_ptr< TofuPresetObject >;
using TomestonesPtr = std::shared_ptr< Tomestones >; using TomestonesPtr = std::shared_ptr< Tomestones >;
using TomestonesItemPtr = std::shared_ptr< TomestonesItem >; using TomestonesItemPtr = std::shared_ptr< TomestonesItem >;
using TopicSelectPtr = std::shared_ptr< TopicSelect >; using TopicSelectPtr = std::shared_ptr< TopicSelect >;
@ -10634,6 +10814,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_AOZBossIdList; std::set< uint32_t > m_AOZBossIdList;
std::set< uint32_t > m_AOZContentIdList; std::set< uint32_t > m_AOZContentIdList;
std::set< uint32_t > m_AOZContentBriefingBNpcIdList; std::set< uint32_t > m_AOZContentBriefingBNpcIdList;
std::set< uint32_t > m_AOZContentBriefingObjectIdList;
std::set< uint32_t > m_AOZReportIdList; std::set< uint32_t > m_AOZReportIdList;
std::set< uint32_t > m_AOZScoreIdList; std::set< uint32_t > m_AOZScoreIdList;
std::set< uint32_t > m_AquariumFishIdList; std::set< uint32_t > m_AquariumFishIdList;
@ -10769,6 +10950,7 @@ struct ZoneSharedGroup
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_CustomTalkIdList; std::set< uint32_t > m_CustomTalkIdList;
std::set< uint32_t > m_CustomTalkDefineClientIdList;
std::set< uint32_t > m_CustomTalkNestHandlersIdList; std::set< uint32_t > m_CustomTalkNestHandlersIdList;
std::set< uint32_t > m_CutsceneIdList; std::set< uint32_t > m_CutsceneIdList;
std::set< uint32_t > m_CutSceneIncompQuestIdList; std::set< uint32_t > m_CutSceneIncompQuestIdList;
@ -10836,6 +11018,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_EventActionIdList; std::set< uint32_t > m_EventActionIdList;
std::set< uint32_t > m_EventCustomIconTypeIdList; std::set< uint32_t > m_EventCustomIconTypeIdList;
std::set< uint32_t > m_EventIconPriorityIdList; std::set< uint32_t > m_EventIconPriorityIdList;
std::set< uint32_t > m_EventIconPriorityPairIdList;
std::set< uint32_t > m_EventIconTypeIdList; std::set< uint32_t > m_EventIconTypeIdList;
std::set< uint32_t > m_EventItemIdList; std::set< uint32_t > m_EventItemIdList;
std::set< uint32_t > m_EventItemCastTimelineIdList; std::set< uint32_t > m_EventItemCastTimelineIdList;
@ -10870,6 +11053,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_FestivalIdList; std::set< uint32_t > m_FestivalIdList;
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_FishingRecordTypeIdList; std::set< uint32_t > m_FishingRecordTypeIdList;
std::set< uint32_t > m_FishingRecordTypeTransientIdList; std::set< uint32_t > m_FishingRecordTypeTransientIdList;
std::set< uint32_t > m_FishingSpotIdList; std::set< uint32_t > m_FishingSpotIdList;
@ -10879,7 +11063,6 @@ struct ZoneSharedGroup
std::set< uint32_t > m_FittingShopCategoryItemIdList; std::set< uint32_t > m_FittingShopCategoryItemIdList;
std::set< uint32_t > m_FittingShopItemSetIdList; std::set< uint32_t > m_FittingShopItemSetIdList;
std::set< uint32_t > m_Frontline03IdList; std::set< uint32_t > m_Frontline03IdList;
std::set< uint32_t > m_Frontline04IdList;
std::set< uint32_t > m_FurnitureCatalogCategoryIdList; std::set< uint32_t > m_FurnitureCatalogCategoryIdList;
std::set< uint32_t > m_FurnitureCatalogItemListIdList; std::set< uint32_t > m_FurnitureCatalogItemListIdList;
std::set< uint32_t > m_GameRewardObtainTypeIdList; std::set< uint32_t > m_GameRewardObtainTypeIdList;
@ -11047,6 +11230,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_MacroIconRedirectOldIdList; std::set< uint32_t > m_MacroIconRedirectOldIdList;
std::set< uint32_t > m_MainCommandIdList; std::set< uint32_t > m_MainCommandIdList;
std::set< uint32_t > m_MainCommandCategoryIdList; std::set< uint32_t > m_MainCommandCategoryIdList;
std::set< uint32_t > m_MandervilleWeaponEnhanceIdList;
std::set< uint32_t > m_ManeuversArmorIdList; std::set< uint32_t > m_ManeuversArmorIdList;
std::set< uint32_t > m_MapIdList; std::set< uint32_t > m_MapIdList;
std::set< uint32_t > m_MapConditionIdList; std::set< uint32_t > m_MapConditionIdList;
@ -11066,6 +11250,13 @@ struct ZoneSharedGroup
std::set< uint32_t > m_McGuffinIdList; std::set< uint32_t > m_McGuffinIdList;
std::set< uint32_t > m_McGuffinUIDataIdList; std::set< uint32_t > m_McGuffinUIDataIdList;
std::set< uint32_t > m_MiniGameRAIdList; std::set< uint32_t > m_MiniGameRAIdList;
std::set< uint32_t > m_MiniGameTurnBreakActionIdList;
std::set< uint32_t > m_MiniGameTurnBreakConstIdList;
std::set< uint32_t > m_MiniGameTurnBreakEnemyIdList;
std::set< uint32_t > m_MiniGameTurnBreakPopIdList;
std::set< uint32_t > m_MiniGameTurnBreakPopOffsetIdList;
std::set< uint32_t > m_MiniGameTurnBreakStageIdList;
std::set< uint32_t > m_MiniGameTurnBreakStatusIdList;
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;
@ -11084,6 +11275,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_MJIDisposalShopUICategoryIdList; std::set< uint32_t > m_MJIDisposalShopUICategoryIdList;
std::set< uint32_t > m_MJIFarmPastureRankIdList; std::set< uint32_t > m_MJIFarmPastureRankIdList;
std::set< uint32_t > m_MJIFunctionIdList; std::set< uint32_t > m_MJIFunctionIdList;
std::set< uint32_t > m_MJIGardenscapingIdList;
std::set< uint32_t > m_MJIGatheringIdList; std::set< uint32_t > m_MJIGatheringIdList;
std::set< uint32_t > m_MJIGatheringItemIdList; std::set< uint32_t > m_MJIGatheringItemIdList;
std::set< uint32_t > m_MJIGatheringObjectIdList; std::set< uint32_t > m_MJIGatheringObjectIdList;
@ -11096,6 +11288,7 @@ struct ZoneSharedGroup
std::set< uint32_t > m_MJILandmarkPlaceIdList; std::set< uint32_t > m_MJILandmarkPlaceIdList;
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_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;
@ -11197,7 +11390,9 @@ struct ZoneSharedGroup
std::set< uint32_t > m_QuestDerivedClassIdList; std::set< uint32_t > m_QuestDerivedClassIdList;
std::set< uint32_t > m_QuestEffectIdList; std::set< uint32_t > m_QuestEffectIdList;
std::set< uint32_t > m_QuestEffectDefineIdList; std::set< uint32_t > m_QuestEffectDefineIdList;
std::set< uint32_t > m_QuestEventAreaEntranceInfoIdList;
std::set< uint32_t > m_QuestLinkMarkerIdList; std::set< uint32_t > m_QuestLinkMarkerIdList;
std::set< uint32_t > m_QuestLinkMarkerIconIdList;
std::set< uint32_t > m_QuestLinkMarkerSetIdList; std::set< uint32_t > m_QuestLinkMarkerSetIdList;
std::set< uint32_t > m_QuestRedoIdList; std::set< uint32_t > m_QuestRedoIdList;
std::set< uint32_t > m_QuestRedoChapterUIIdList; std::set< uint32_t > m_QuestRedoChapterUIIdList;
@ -11293,6 +11488,9 @@ struct ZoneSharedGroup
std::set< uint32_t > m_TofuEditParamIdList; std::set< uint32_t > m_TofuEditParamIdList;
std::set< uint32_t > m_TofuObjectIdList; std::set< uint32_t > m_TofuObjectIdList;
std::set< uint32_t > m_TofuObjectCategoryIdList; std::set< uint32_t > m_TofuObjectCategoryIdList;
std::set< uint32_t > m_TofuPresetIdList;
std::set< uint32_t > m_TofuPresetCategoryIdList;
std::set< uint32_t > m_TofuPresetObjectIdList;
std::set< uint32_t > m_TomestonesIdList; std::set< uint32_t > m_TomestonesIdList;
std::set< uint32_t > m_TomestonesItemIdList; std::set< uint32_t > m_TomestonesItemIdList;
std::set< uint32_t > m_TopicSelectIdList; std::set< uint32_t > m_TopicSelectIdList;
@ -11677,6 +11875,12 @@ const std::set< uint32_t >& getAOZContentBriefingBNpcIdList()
loadIdList( m_AOZContentBriefingBNpcDat, m_AOZContentBriefingBNpcIdList ); loadIdList( m_AOZContentBriefingBNpcDat, m_AOZContentBriefingBNpcIdList );
return m_AOZContentBriefingBNpcIdList; return m_AOZContentBriefingBNpcIdList;
} }
const std::set< uint32_t >& getAOZContentBriefingObjectIdList()
{
if( m_AOZContentBriefingObjectIdList.size() == 0 )
loadIdList( m_AOZContentBriefingObjectDat, m_AOZContentBriefingObjectIdList );
return m_AOZContentBriefingObjectIdList;
}
const std::set< uint32_t >& getAOZReportIdList() const std::set< uint32_t >& getAOZReportIdList()
{ {
if( m_AOZReportIdList.size() == 0 ) if( m_AOZReportIdList.size() == 0 )
@ -12487,6 +12691,12 @@ const std::set< uint32_t >& getCustomTalkIdList()
loadIdList( m_CustomTalkDat, m_CustomTalkIdList ); loadIdList( m_CustomTalkDat, m_CustomTalkIdList );
return m_CustomTalkIdList; return m_CustomTalkIdList;
} }
const std::set< uint32_t >& getCustomTalkDefineClientIdList()
{
if( m_CustomTalkDefineClientIdList.size() == 0 )
loadIdList( m_CustomTalkDefineClientDat, m_CustomTalkDefineClientIdList );
return m_CustomTalkDefineClientIdList;
}
const std::set< uint32_t >& getCustomTalkNestHandlersIdList() const std::set< uint32_t >& getCustomTalkNestHandlersIdList()
{ {
if( m_CustomTalkNestHandlersIdList.size() == 0 ) if( m_CustomTalkNestHandlersIdList.size() == 0 )
@ -12889,6 +13099,12 @@ const std::set< uint32_t >& getEventIconPriorityIdList()
loadIdList( m_EventIconPriorityDat, m_EventIconPriorityIdList ); loadIdList( m_EventIconPriorityDat, m_EventIconPriorityIdList );
return m_EventIconPriorityIdList; return m_EventIconPriorityIdList;
} }
const std::set< uint32_t >& getEventIconPriorityPairIdList()
{
if( m_EventIconPriorityPairIdList.size() == 0 )
loadIdList( m_EventIconPriorityPairDat, m_EventIconPriorityPairIdList );
return m_EventIconPriorityPairIdList;
}
const std::set< uint32_t >& getEventIconTypeIdList() const std::set< uint32_t >& getEventIconTypeIdList()
{ {
if( m_EventIconTypeIdList.size() == 0 ) if( m_EventIconTypeIdList.size() == 0 )
@ -13093,6 +13309,12 @@ const std::set< uint32_t >& getFishingBaitParameterIdList()
loadIdList( m_FishingBaitParameterDat, m_FishingBaitParameterIdList ); loadIdList( m_FishingBaitParameterDat, m_FishingBaitParameterIdList );
return m_FishingBaitParameterIdList; return m_FishingBaitParameterIdList;
} }
const std::set< uint32_t >& getFishingNoteInfoIdList()
{
if( m_FishingNoteInfoIdList.size() == 0 )
loadIdList( m_FishingNoteInfoDat, m_FishingNoteInfoIdList );
return m_FishingNoteInfoIdList;
}
const std::set< uint32_t >& getFishingRecordTypeIdList() const std::set< uint32_t >& getFishingRecordTypeIdList()
{ {
if( m_FishingRecordTypeIdList.size() == 0 ) if( m_FishingRecordTypeIdList.size() == 0 )
@ -13147,12 +13369,6 @@ const std::set< uint32_t >& getFrontline03IdList()
loadIdList( m_Frontline03Dat, m_Frontline03IdList ); loadIdList( m_Frontline03Dat, m_Frontline03IdList );
return m_Frontline03IdList; return m_Frontline03IdList;
} }
const std::set< uint32_t >& getFrontline04IdList()
{
if( m_Frontline04IdList.size() == 0 )
loadIdList( m_Frontline04Dat, m_Frontline04IdList );
return m_Frontline04IdList;
}
const std::set< uint32_t >& getFurnitureCatalogCategoryIdList() const std::set< uint32_t >& getFurnitureCatalogCategoryIdList()
{ {
if( m_FurnitureCatalogCategoryIdList.size() == 0 ) if( m_FurnitureCatalogCategoryIdList.size() == 0 )
@ -14155,6 +14371,12 @@ const std::set< uint32_t >& getMainCommandCategoryIdList()
loadIdList( m_MainCommandCategoryDat, m_MainCommandCategoryIdList ); loadIdList( m_MainCommandCategoryDat, m_MainCommandCategoryIdList );
return m_MainCommandCategoryIdList; return m_MainCommandCategoryIdList;
} }
const std::set< uint32_t >& getMandervilleWeaponEnhanceIdList()
{
if( m_MandervilleWeaponEnhanceIdList.size() == 0 )
loadIdList( m_MandervilleWeaponEnhanceDat, m_MandervilleWeaponEnhanceIdList );
return m_MandervilleWeaponEnhanceIdList;
}
const std::set< uint32_t >& getManeuversArmorIdList() const std::set< uint32_t >& getManeuversArmorIdList()
{ {
if( m_ManeuversArmorIdList.size() == 0 ) if( m_ManeuversArmorIdList.size() == 0 )
@ -14269,6 +14491,48 @@ const std::set< uint32_t >& getMiniGameRAIdList()
loadIdList( m_MiniGameRADat, m_MiniGameRAIdList ); loadIdList( m_MiniGameRADat, m_MiniGameRAIdList );
return m_MiniGameRAIdList; return m_MiniGameRAIdList;
} }
const std::set< uint32_t >& getMiniGameTurnBreakActionIdList()
{
if( m_MiniGameTurnBreakActionIdList.size() == 0 )
loadIdList( m_MiniGameTurnBreakActionDat, m_MiniGameTurnBreakActionIdList );
return m_MiniGameTurnBreakActionIdList;
}
const std::set< uint32_t >& getMiniGameTurnBreakConstIdList()
{
if( m_MiniGameTurnBreakConstIdList.size() == 0 )
loadIdList( m_MiniGameTurnBreakConstDat, m_MiniGameTurnBreakConstIdList );
return m_MiniGameTurnBreakConstIdList;
}
const std::set< uint32_t >& getMiniGameTurnBreakEnemyIdList()
{
if( m_MiniGameTurnBreakEnemyIdList.size() == 0 )
loadIdList( m_MiniGameTurnBreakEnemyDat, m_MiniGameTurnBreakEnemyIdList );
return m_MiniGameTurnBreakEnemyIdList;
}
const std::set< uint32_t >& getMiniGameTurnBreakPopIdList()
{
if( m_MiniGameTurnBreakPopIdList.size() == 0 )
loadIdList( m_MiniGameTurnBreakPopDat, m_MiniGameTurnBreakPopIdList );
return m_MiniGameTurnBreakPopIdList;
}
const std::set< uint32_t >& getMiniGameTurnBreakPopOffsetIdList()
{
if( m_MiniGameTurnBreakPopOffsetIdList.size() == 0 )
loadIdList( m_MiniGameTurnBreakPopOffsetDat, m_MiniGameTurnBreakPopOffsetIdList );
return m_MiniGameTurnBreakPopOffsetIdList;
}
const std::set< uint32_t >& getMiniGameTurnBreakStageIdList()
{
if( m_MiniGameTurnBreakStageIdList.size() == 0 )
loadIdList( m_MiniGameTurnBreakStageDat, m_MiniGameTurnBreakStageIdList );
return m_MiniGameTurnBreakStageIdList;
}
const std::set< uint32_t >& getMiniGameTurnBreakStatusIdList()
{
if( m_MiniGameTurnBreakStatusIdList.size() == 0 )
loadIdList( m_MiniGameTurnBreakStatusDat, m_MiniGameTurnBreakStatusIdList );
return m_MiniGameTurnBreakStatusIdList;
}
const std::set< uint32_t >& getMinionRaceIdList() const std::set< uint32_t >& getMinionRaceIdList()
{ {
if( m_MinionRaceIdList.size() == 0 ) if( m_MinionRaceIdList.size() == 0 )
@ -14377,6 +14641,12 @@ const std::set< uint32_t >& getMJIFunctionIdList()
loadIdList( m_MJIFunctionDat, m_MJIFunctionIdList ); loadIdList( m_MJIFunctionDat, m_MJIFunctionIdList );
return m_MJIFunctionIdList; return m_MJIFunctionIdList;
} }
const std::set< uint32_t >& getMJIGardenscapingIdList()
{
if( m_MJIGardenscapingIdList.size() == 0 )
loadIdList( m_MJIGardenscapingDat, m_MJIGardenscapingIdList );
return m_MJIGardenscapingIdList;
}
const std::set< uint32_t >& getMJIGatheringIdList() const std::set< uint32_t >& getMJIGatheringIdList()
{ {
if( m_MJIGatheringIdList.size() == 0 ) if( m_MJIGatheringIdList.size() == 0 )
@ -14449,6 +14719,12 @@ const std::set< uint32_t >& getMJIMinionPopAreasIdList()
loadIdList( m_MJIMinionPopAreasDat, m_MJIMinionPopAreasIdList ); loadIdList( m_MJIMinionPopAreasDat, m_MJIMinionPopAreasIdList );
return m_MJIMinionPopAreasIdList; return m_MJIMinionPopAreasIdList;
} }
const std::set< uint32_t >& getMJINameIdList()
{
if( m_MJINameIdList.size() == 0 )
loadIdList( m_MJINameDat, m_MJINameIdList );
return m_MJINameIdList;
}
const std::set< uint32_t >& getMJIProgressIdList() const std::set< uint32_t >& getMJIProgressIdList()
{ {
if( m_MJIProgressIdList.size() == 0 ) if( m_MJIProgressIdList.size() == 0 )
@ -15055,12 +15331,24 @@ const std::set< uint32_t >& getQuestEffectDefineIdList()
loadIdList( m_QuestEffectDefineDat, m_QuestEffectDefineIdList ); loadIdList( m_QuestEffectDefineDat, m_QuestEffectDefineIdList );
return m_QuestEffectDefineIdList; return m_QuestEffectDefineIdList;
} }
const std::set< uint32_t >& getQuestEventAreaEntranceInfoIdList()
{
if( m_QuestEventAreaEntranceInfoIdList.size() == 0 )
loadIdList( m_QuestEventAreaEntranceInfoDat, m_QuestEventAreaEntranceInfoIdList );
return m_QuestEventAreaEntranceInfoIdList;
}
const std::set< uint32_t >& getQuestLinkMarkerIdList() const std::set< uint32_t >& getQuestLinkMarkerIdList()
{ {
if( m_QuestLinkMarkerIdList.size() == 0 ) if( m_QuestLinkMarkerIdList.size() == 0 )
loadIdList( m_QuestLinkMarkerDat, m_QuestLinkMarkerIdList ); loadIdList( m_QuestLinkMarkerDat, m_QuestLinkMarkerIdList );
return m_QuestLinkMarkerIdList; return m_QuestLinkMarkerIdList;
} }
const std::set< uint32_t >& getQuestLinkMarkerIconIdList()
{
if( m_QuestLinkMarkerIconIdList.size() == 0 )
loadIdList( m_QuestLinkMarkerIconDat, m_QuestLinkMarkerIconIdList );
return m_QuestLinkMarkerIconIdList;
}
const std::set< uint32_t >& getQuestLinkMarkerSetIdList() const std::set< uint32_t >& getQuestLinkMarkerSetIdList()
{ {
if( m_QuestLinkMarkerSetIdList.size() == 0 ) if( m_QuestLinkMarkerSetIdList.size() == 0 )
@ -15631,6 +15919,24 @@ const std::set< uint32_t >& getTofuObjectCategoryIdList()
loadIdList( m_TofuObjectCategoryDat, m_TofuObjectCategoryIdList ); loadIdList( m_TofuObjectCategoryDat, m_TofuObjectCategoryIdList );
return m_TofuObjectCategoryIdList; return m_TofuObjectCategoryIdList;
} }
const std::set< uint32_t >& getTofuPresetIdList()
{
if( m_TofuPresetIdList.size() == 0 )
loadIdList( m_TofuPresetDat, m_TofuPresetIdList );
return m_TofuPresetIdList;
}
const std::set< uint32_t >& getTofuPresetCategoryIdList()
{
if( m_TofuPresetCategoryIdList.size() == 0 )
loadIdList( m_TofuPresetCategoryDat, m_TofuPresetCategoryIdList );
return m_TofuPresetCategoryIdList;
}
const std::set< uint32_t >& getTofuPresetObjectIdList()
{
if( m_TofuPresetObjectIdList.size() == 0 )
loadIdList( m_TofuPresetObjectDat, m_TofuPresetObjectIdList );
return m_TofuPresetObjectIdList;
}
const std::set< uint32_t >& getTomestonesIdList() const std::set< uint32_t >& getTomestonesIdList()
{ {
if( m_TomestonesIdList.size() == 0 ) if( m_TomestonesIdList.size() == 0 )

View file

@ -3,15 +3,15 @@
#include <stdint.h> #include <stdint.h>
namespace Sapphire::Network::Packets namespace Sapphire::Network::Packets {
{
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
/// Lobby Connection IPC Codes /// Lobby Connection IPC Codes
/** /**
* Server IPC Lobby Type Codes. * Server IPC Lobby Type Codes.
*/ */
enum ServerLobbyIpcType : uint16_t enum ServerLobbyIpcType :
uint16_t
{ {
LobbyError = 0x0002, LobbyError = 0x0002,
LobbyServiceAccountList = 0x000C, LobbyServiceAccountList = 0x000C,
@ -26,14 +26,12 @@ namespace Sapphire::Network::Packets
/** /**
* Client IPC Lobby Type Codes. * Client IPC Lobby Type Codes.
*/ */
enum ClientLobbyIpcType : uint16_t enum ClientLobbyIpcType :
uint16_t
{ {
ReqCharList = 0x0003, ReqCharList = 0x0003, ReqEnterWorld = 0x0004, ClientVersionInfo = 0x0005,
ReqEnterWorld = 0x0004,
ClientVersionInfo = 0x0005,
ReqCharDelete = 0x000A, ReqCharDelete = 0x000A, ReqCharCreate = 0x000B,
ReqCharCreate = 0x000B,
}; };
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
@ -41,83 +39,81 @@ namespace Sapphire::Network::Packets
/** /**
* Server IPC Zone Type Codes. * Server IPC Zone Type Codes.
*/ */
enum ServerZoneIpcType : uint16_t enum ServerZoneIpcType :
uint16_t
{ {
Ping = 0x2c6, // updated 6.38 Ping = 0x2c0, // updated 6.40
Init = 0x37b, // updated 6.38 Init = 0x12a, // updated 6.40
ActorFreeSpawn = 0x3a2, // updated 6.38 ActorFreeSpawn = 0x8a, // updated 6.40
InitZone = 0x1fe, // updated 6.38 InitZone = 0x347, // updated 6.40
PrepareZoning = 0x267, // updated 6.38 PrepareZoning = 0x17a, // updated 6.40
EffectResult = 0x3b5, // updated 6.38 EffectResult = 0x3b4, // updated 6.40
EffectResultBasic = 0x2c4, // updated 6.38 EffectResultBasic = 0x295, // updated 6.40
ActorControl = 0x2c2, // updated 6.38 ActorControl = 0x381, // updated 6.40
ActorControlTarget = 0x1b8, // updated 6.38 ActorControlTarget = 0x131, // updated 6.40
ActorControlSelf = 0x256, // updated 6.38 ActorControlSelf = 0x14f, // updated 6.40
ActorCast = 0x15f, // updated 6.38 ActorCast = 0x31c, // updated 6.40
ActorSetPos = 0x2f0, // updated 6.38 ActorSetPos = 0xea, // updated 6.40
ActorMove = 0x25b, // updated 6.38 ActorMove = 0x2a9, // updated 6.40
ActorGauge = 0x136, // updated 6.38 ActorGauge = 0x164, // updated 6.40
/*! /*!
* @brief Used when resting * @brief Used when resting
*/ */
UpdateHpMpTp = 0x268, // updated 6.38 UpdateHpMpTp = 0x21a, // updated 6.40
UpdateClassInfo = 0x2f7, // updated 6.38 UpdateClassInfo = 0x380, // updated 6.40
/////////////////////////////////////////////////// ///////////////////////////////////////////////////
ChatBanned = 0xF06B, ChatBanned = 0xF06B, Playtime = 0x181, // updated 6.40
Playtime = 0xa3, // updated 6.38 Logout = 0x18a, // updated 6.40
Logout = 0x146, // updated 6.38 CFNotify = 0x3e0, // updated 6.40
CFNotify = 0x38a, // updated 6.38 CFMemberStatus = 0x0079, CFDutyInfo = 0xe0, // updated 6.40
CFMemberStatus = 0x0079, CFPlayerInNeed = 0xF07F, CFPreferredRole = 0x221, // updated 6.40
CFDutyInfo = 0x21d, // updated 6.38 CFCancel = 0x77, // updated 6.40
CFPlayerInNeed = 0xF07F,
CFPreferredRole = 0xbb, // updated 6.38
CFCancel = 0x227, // updated 6.38
SocialRequestError = 0xF0AD, SocialRequestError = 0xF0AD,
CFRegistered = 0x029F, // updated 5.58h CFRegistered = 0x029F, // updated 5.58h
SocialRequestResponse = 0x397, // updated 6.38 SocialRequestResponse = 0x323, // updated 6.40
SocialMessage = 0x03CB, // updated 5.58h SocialMessage = 0x03CB, // updated 5.58h
SocialMessage2 = 0x01D7, // updated 5.58h SocialMessage2 = 0x01D7, // updated 5.58h
CancelAllianceForming = 0xF0C6, // updated 4.2 CancelAllianceForming = 0xF0C6, // updated 4.2
LogMessage = 0x30f, // updated 6.38 LogMessage = 0x113, // updated 6.40
Chat = 0x1e4, // updated 6.38 Chat = 0x335, // updated 6.40
PartyChat = 0x0065, PartyChat = 0x0065,
WorldVisitList = 0xF0FE, // added 4.5 WorldVisitList = 0xF0FE, // added 4.5
SocialList = 0x219, // updated 6.38 SocialList = 0x281, // updated 6.40
ExamineSearchInfo = 0x213, // updated 6.38 ExamineSearchInfo = 0x2b0, // updated 6.40
UpdateSearchInfo = 0x3dc, // updated 6.38 UpdateSearchInfo = 0x339, // updated 6.40
InitSearchInfo = 0x1eb, // updated 6.38 InitSearchInfo = 0x37f, // updated 6.40
ExamineSearchComment = 0x357, // updated 6.38 ExamineSearchComment = 0x314, // updated 6.40
ServerNoticeShort = 0x0333, // updated 5.58h ServerNoticeShort = 0x0333, // updated 5.58h
ServerNotice = 0x92, // updated 6.38 ServerNotice = 0x273, // updated 6.40
SystemLogMessage = 0x1a6, // updated 6.38 SystemLogMessage = 0x19b, // updated 6.40
SetOnlineStatus = 0x2e9, // updated 6.38 SetOnlineStatus = 0xb1, // updated 6.40
CountdownInitiate = 0x3b0, // updated 6.38 CountdownInitiate = 0x292, // updated 6.40
CountdownCancel = 0x194, // updated 6.38 CountdownCancel = 0x2ba, // updated 6.40
PlayerAddedToBlacklist = 0x2e6, // updated 6.38 PlayerAddedToBlacklist = 0x3be, // updated 6.40
PlayerRemovedFromBlacklist = 0x2b5, // updated 6.38 PlayerRemovedFromBlacklist = 0x8b, // updated 6.40
BlackList = 0xde, // updated 6.38 BlackList = 0x2ad, // updated 6.40
LinkshellList = 0x241, // updated 6.38 LinkshellList = 0x287, // updated 6.40
CrossWorldLinkshellList = 0x240, // updated 6.38 CrossWorldLinkshellList = 0x358, // updated 6.40
FellowshipList = 0x26d, // updated 6.38 FellowshipList = 0x238, // updated 6.40
MailDeleteRequest = 0x1b7, // updated 6.38 MailDeleteRequest = 0x2e3, // updated 6.40
// 12D - 137 - constant gap between 4.5x -> 5.0 // 12D - 137 - constant gap between 4.5x -> 5.0
ReqMoogleMailList = 0xF138, // updated 5.0 ReqMoogleMailList = 0xF138, // updated 5.0
@ -126,111 +122,111 @@ namespace Sapphire::Network::Packets
MarketTaxRates = 0x01F8, // updated 5.35h MarketTaxRates = 0x01F8, // updated 5.35h
MarketBoardSearchResult = 0xea, // updated 6.38 MarketBoardSearchResult = 0x197, // updated 6.40
MarketBoardItemListingCount = 0x174, // updated 6.38 MarketBoardItemListingCount = 0x1a4, // updated 6.40
MarketBoardItemListingHistory = 0x3cd, // updated 6.38 MarketBoardItemListingHistory = 0x2b4, // updated 6.40
MarketBoardItemListing = 0x379, // updated 6.38 MarketBoardItemListing = 0xa7, // updated 6.40
MarketBoardPurchase = 0x370, // updated 6.38 MarketBoardPurchase = 0x120, // updated 6.40
ItemMarketBoardInfo = 0x209, // updated 6.38 ItemMarketBoardInfo = 0x3c4, // updated 6.40
CharaFreeCompanyTag = 0x013B, // updated 4.5 CharaFreeCompanyTag = 0x013B, // updated 4.5
FreeCompanyBoardMsg = 0x03DB, // updated 5.58h FreeCompanyBoardMsg = 0x03DB, // updated 5.58h
FreeCompanyInfo = 0x199, // updated 6.38 FreeCompanyInfo = 0x1ce, // updated 6.40
FreeCompanyDialog = 0x1d6, // updated 6.38 FreeCompanyDialog = 0x2a1, // updated 6.40
ExamineFreeCompanyInfo = 0x29a, // updated 6.38 ExamineFreeCompanyInfo = 0x229, // updated 6.40
FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 FreeCompanyUpdateShortMessage = 0xF157, // added 5.0
StatusEffectList = 0x317, // updated 6.38 StatusEffectList = 0x13f, // updated 6.40
EurekaStatusEffectList = 0x23b, // updated 6.38 EurekaStatusEffectList = 0x25d, // updated 6.40
BossStatusEffectList = 0xc8, // updated 6.38 BossStatusEffectList = 0x1b0, // updated 6.40
StatusEffectList2 = 0x30d, // updated 6.38 StatusEffectList2 = 0x149, // updated 6.40
StatusEffectList3 = 0x12b, // updated 6.38 StatusEffectList3 = 0xe7, // updated 6.40
Effect = 0xfb, // updated 6.38 Effect = 0x3c9, // updated 6.40
AoeEffect8 = 0x2ef, // updated 6.38 AoeEffect8 = 0x21e, // updated 6.40
AoeEffect16 = 0x3c6, // updated 6.38 AoeEffect16 = 0x34c, // updated 6.40
AoeEffect24 = 0x97, // updated 6.38 AoeEffect24 = 0x379, // updated 6.40
AoeEffect32 = 0x24b, // updated 6.38 AoeEffect32 = 0x33f, // updated 6.40
PersistantEffect = 0x12b, // updated 6.38 PersistantEffect = 0xe7, // updated 6.40
PlaceFieldMarker = 0x354, // updated 6.38 PlaceFieldMarker = 0xd8, // updated 6.40
PlaceFieldMarkerPreset = 0x286, // updated 6.38 PlaceFieldMarkerPreset = 0xFFFF, // updated 6.40
GCAffiliation = 0x264, // updated 6.38 GCAffiliation = 0x159, // updated 6.40
PlayerSpawn = 0x94, // updated 6.38 PlayerSpawn = 0x2cf, // updated 6.40
NpcSpawn = 0x269, // updated 6.38 NpcSpawn = 0x1c4, // updated 6.40
NpcSpawn2 = 0x196, // updated 6.38 NpcSpawn2 = 0x123, // updated 6.40
SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18
PartyList = 0x186, // updated 6.38 PartyList = 0x110, // updated 6.40
PartyMessage = 0x75, // updated 6.38 PartyMessage = 0x374, // updated 6.40
HateRank = 0xe5, // updated 6.38 HateRank = 0x22d, // updated 6.40
HateList = 0x99, // updated 6.38 HateList = 0x22e, // updated 6.40
ObjectSpawn = 0x2d1, // updated 6.38 ObjectSpawn = 0x184, // updated 6.40
ObjectDespawn = 0x132, // updated 6.38 ObjectDespawn = 0xb8, // updated 6.40
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 = 0x2bf, // updated 6.38 PlayerSetup = 0x218, // updated 6.40
PlayerStats = 0x2d8, // updated 6.38 PlayerStats = 0x1a3, // updated 6.40
ActorOwner = 0x2bf, // updated 6.38 ActorOwner = 0x218, // updated 6.40
PlayerStateFlags = 0x3e5, // updated 6.38 PlayerStateFlags = 0x37a, // updated 6.40
PlayerClassInfo = 0x27b, // updated 6.38 PlayerClassInfo = 0xd9, // updated 6.40
PlayerUpdateLook = 0x114, // updated 6.38 PlayerUpdateLook = 0x1a7, // updated 6.40
CharaVisualEffect = 0x121, // updated 6.38 CharaVisualEffect = 0x1ef, // updated 6.40
ModelEquip = 0x2e2, // updated 6.38 ModelEquip = 0x297, // updated 6.40
Examine = 0x22f, // updated 6.38 Examine = 0x364, // updated 6.40
CharaNameReq = 0x170, // updated 6.38 CharaNameReq = 0xc1, // updated 6.40
// nb: see #565 on github // nb: see #565 on github
UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0 UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0
RetainerSaleHistory = 0x1e1, // updated 6.38 RetainerSaleHistory = 0x16d, // updated 6.40
RetainerInformation = 0x260, // updated 6.38 RetainerInformation = 0x39c, // updated 6.40
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 = 0x34d, // updated 6.38 ItemInfo = 0x128, // updated 6.40
ContainerInfo = 0x2e4, // updated 6.38 ContainerInfo = 0x122, // updated 6.40
InventoryTransactionFinish = 0x2fc, // updated 6.38 InventoryTransactionFinish = 0x2d9, // updated 6.40
InventoryTransaction = 0x31b, // updated 6.38 InventoryTransaction = 0x2e9, // updated 6.40
CurrencyCrystalInfo = 0x39a, // updated 6.38 CurrencyCrystalInfo = 0x2be, // updated 6.40
InventoryActionAck = 0x2cf, // updated 6.38 InventoryActionAck = 0x19c, // updated 6.40
UpdateInventorySlot = 0x335, // updated 6.38 UpdateInventorySlot = 0x119, // updated 6.40
HuntingLogEntry = 0x2f3, // updated 6.38 HuntingLogEntry = 0xec, // updated 6.40
EventPlay = 0x284, // updated 6.38 EventPlay = 0xfb, // updated 6.40
EventPlay4 = 0xe2, // updated 6.38 EventPlay4 = 0x307, // updated 6.40
EventPlay8 = 0x2c1, // updated 6.38 EventPlay8 = 0x252, // updated 6.40
EventPlay16 = 0x7f, // updated 6.38 EventPlay16 = 0x214, // updated 6.40
EventPlay32 = 0xd3, // updated 6.38 EventPlay32 = 0x6c, // updated 6.40
EventPlay64 = 0xc1, // updated 6.38 EventPlay64 = 0x223, // updated 6.40
EventPlay128 = 0x29d, // updated 6.38 EventPlay128 = 0x340, // updated 6.40
EventPlay255 = 0x326, // updated 6.38 EventPlay255 = 0x3dc, // updated 6.40
EventStart = 0x8b, // updated 6.38 EventStart = 0x1a2, // updated 6.40
EventFinish = 0x362, // updated 6.38 EventFinish = 0x2b2, // updated 6.40
EventContinue = 0x33e, // updated 6.38 EventContinue = 0x298, // updated 6.40
EventLinkshell = 0x1169, EventLinkshell = 0x1169,
QuestActiveList = 0xcf, // updated 6.38 QuestActiveList = 0x11d, // updated 6.40
QuestUpdate = 0x17c, // updated 6.38 QuestUpdate = 0x92, // updated 6.40
QuestCompleteList = 0x2f2, // updated 6.38 QuestCompleteList = 0x36f, // updated 6.40
QuestFinish = 0x25c, // updated 6.38 QuestFinish = 0x13a, // updated 6.40
MSQTrackerComplete = 0x3bb, // updated 6.38 MSQTrackerComplete = 0x28c, // updated 6.40
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 = 0xa8, // updated 6.38 QuestTracker = 0x1b5, // updated 6.40
Mount = 0x2df, // updated 6.38 Mount = 0x3c0, // updated 6.40
DirectorVars = 0x1c7, // updated 6.38 DirectorVars = 0x27e, // updated 6.40
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
@ -242,67 +238,67 @@ namespace Sapphire::Network::Packets
CFAvailableContents = 0xF1FD, // updated 4.2 CFAvailableContents = 0xF1FD, // updated 4.2
WeatherChange = 0x17a, // updated 6.38 WeatherChange = 0x1d2, // updated 6.40
PlayerTitleList = 0x2b3, // updated 6.38 PlayerTitleList = 0x22f, // updated 6.40
Discovery = 0x1f7, // updated 6.38 Discovery = 0x22c, // updated 6.40
EorzeaTimeOffset = 0x2bc, // updated 6.38 EorzeaTimeOffset = 0x1b8, // updated 6.40
EquipDisplayFlags = 0x248, // updated 6.38 EquipDisplayFlags = 0x38c, // updated 6.40
MiniCactpotInit = 0x0286, // added 5.31 MiniCactpotInit = 0x0286, // added 5.31
ShopMessage = 0x0287, // updated 5.58h ShopMessage = 0x0287, // updated 5.58h
LootMessage = 0x65, // updated 6.38 LootMessage = 0x319, // updated 6.40
ResultDialog = 0x113, // updated 6.38 ResultDialog = 0x1cb, // updated 6.40
DesynthResult = 0x308, // updated 6.38 DesynthResult = 0x1ba, // updated 6.40
/// Housing ////////////////////////////////////// /// Housing //////////////////////////////////////
LandSetInitialize = 0xd4, // updated 6.38 LandSetInitialize = 0x24d, // updated 6.40
LandUpdate = 0x151, // updated 6.38 LandUpdate = 0x232, // updated 6.40
LandAvailability = 0x81, // updated 6.38 LandAvailability = 0x67, // updated 6.40
YardObjectSpawn = 0x3b9, // updated 6.38 YardObjectSpawn = 0x1e3, // updated 6.40
HousingIndoorInitialize = 0x271, // updated 6.38 HousingIndoorInitialize = 0x22b, // updated 6.40
LandPriceUpdate = 0x215, // updated 6.38 LandPriceUpdate = 0x345, // updated 6.40
LandInfoSign = 0xa9, // updated 6.38 LandInfoSign = 0x1dc, // updated 6.40
LandRename = 0x22c, // updated 6.38 LandRename = 0xf2, // updated 6.40
HousingEstateGreeting = 0xa7, // updated 6.38 HousingEstateGreeting = 0x3d1, // updated 6.40
HousingUpdateLandFlagsSlot = 0x177, // updated 6.38 HousingUpdateLandFlagsSlot = 0x1b4, // updated 6.40
HousingLandFlags = 0x3ba, // updated 6.38 HousingLandFlags = 0x32c, // updated 6.40
HousingShowEstateGuestAccess = 0x2ec, // updated 6.38 HousingShowEstateGuestAccess = 0x36c, // updated 6.40
HousingObjectInitialize = 0xc7, // updated 6.38 HousingObjectInitialize = 0x330, // updated 6.40
HousingInternalObjectSpawn = 0x1d3, // updated 6.38 HousingInternalObjectSpawn = 0x327, // updated 6.40
HousingWardInfo = 0x28e, // updated 6.38 HousingWardInfo = 0x320, // updated 6.40
HousingObjectMove = 0x282, // updated 6.38 HousingObjectMove = 0x245, // updated 6.40
HousingObjectDye = 0x3ce, // updated 6.38 HousingObjectDye = 0x28b, // updated 6.40
SharedEstateSettingsResponse = 0x3a0, // updated 6.38 SharedEstateSettingsResponse = 0x2d1, // updated 6.40
LandUpdateHouseName = 0x1a7, // updated 6.38 LandUpdateHouseName = 0x233, // updated 6.40
LandSetMap = 0x1b0, // updated 6.38 LandSetMap = 0x34b, // updated 6.40
CeremonySetActorAppearance = 0x1a9, // updated 6.38 CeremonySetActorAppearance = 0x362, // updated 6.40
////////////////////////////////////////////////// //////////////////////////////////////////////////
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
PerformNote = 0xb3, // updated 6.38 PerformNote = 0x1df, // updated 6.40
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 = 0x21f, // updated 6.38 DailyQuests = 0x11f, // updated 6.40
DailyQuestRepeatFlags = 0x184, // updated 6.38 DailyQuestRepeatFlags = 0x1c0, // updated 6.40
MapUpdate = 0x2cd, // updated 6.38 MapUpdate = 0x392, // updated 6.40
MapUpdate4 = 0x3c8, // updated 6.38 MapUpdate4 = 0x237, // updated 6.40
MapUpdate8 = 0x1d9, // updated 6.38 MapUpdate8 = 0xd5, // updated 6.40
MapUpdate16 = 0x389, // updated 6.38 MapUpdate16 = 0x36e, // updated 6.40
MapUpdate32 = 0x9a, // updated 6.38 MapUpdate32 = 0x2df, // updated 6.40
MapUpdate64 = 0x361, // updated 6.38 MapUpdate64 = 0x2b6, // updated 6.40
MapUpdate128 = 0x1c9, // updated 6.38 MapUpdate128 = 0x3ac, // updated 6.40
/// Doman Mahjong ////////////////////////////////////// /// Doman Mahjong //////////////////////////////////////
MahjongOpenGui = 0x02A4, // only available in mahjong instance MahjongOpenGui = 0x02A4, // only available in mahjong instance
@ -317,30 +313,31 @@ 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 //////////////////////////////////////
AirshipTimers = 0x3d0, // updated 6.38 AirshipTimers = 0x132, // updated 6.40
AirshipStatus = 0x314, // updated 6.38 AirshipStatus = 0x1eb, // updated 6.40
AirshipStatusList = 0x257, // updated 6.38 AirshipStatusList = 0x2cb, // updated 6.40
AirshipExplorationResult = 0x288, // updated 6.38 AirshipExplorationResult = 0x2c4, // updated 6.40
SubmarineTimers = 0x16d, // updated 6.38 SubmarineTimers = 0x2b7, // updated 6.40
SubmarineProgressionStatus = 0x31a, // updated 6.38 SubmarineProgressionStatus = 0x385, // updated 6.40
SubmarineStatusList = 0x1a4, // updated 6.38 SubmarineStatusList = 0x81, // updated 6.40
SubmarineExplorationResult = 0x147, // updated 6.38 SubmarineExplorationResult = 0x2c9, // updated 6.40
EnvironmentControl = 0x118, // updated 6.38 EnvironmentControl = 0x108, // updated 6.40
IslandWorkshopSupplyDemand = 0x168, // updated 6.38 IslandWorkshopSupplyDemand = 0x1b7, // updated 6.40
}; };
/** /**
* Client IPC Zone Type Codes. * Client IPC Zone Type Codes.
*/ */
enum ClientZoneIpcType : uint16_t enum ClientZoneIpcType :
uint16_t
{ {
PingHandler = 0x032A, // updated 6.38 PingHandler = 0x272, // updated 6.40
InitHandler = 0x0090, // updated 6.38 InitHandler = 0x397, // updated 6.40
FinishLoadingHandler = 0x037B, // updated 6.38 FinishLoadingHandler = 0x12a, // updated 6.40
CFCommenceHandler = 0x0381, // updated 5.58h CFCommenceHandler = 0x0381, // updated 5.58h
@ -348,28 +345,27 @@ namespace Sapphire::Network::Packets
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 = 0x02E5, // updated 6.38 LogoutHandler = 0xac, // updated 6.40
CancelLogout = 0x01e3, // updated 6.31h CancelLogout = 0x01e3, // updated 6.31h
CFDutyInfoHandler = 0xF078, // updated 4.2 CFDutyInfoHandler = 0xF078, // updated 4.2
SocialReqSendHandler = 0x00D7, // updated 5.58h SocialReqSendHandler = 0x00D7, // updated 5.58h
SocialResponseHandler = 0x023B, // updated 5.58h SocialResponseHandler = 0x023B, // updated 5.58h
CreateCrossWorldLS = 0x035D, // updated 5.58h CreateCrossWorldLS = 0x9999, // updated 5.58h
ChatHandler = 0x01F2, // Updated 6.38 ChatHandler = 0xd3, // updated 6.40
PartyChatHandler = 0x0065, PartyChatHandler = 0x0065, PartySetLeaderHandler = 0x036C, // updated 5.58h
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 = 0x0200, // updated 6.31 SocialListHandler = 0x206, // updated 6.40
SetSearchInfoHandler = 0x0165, // updated 6.38 SetSearchInfoHandler = 0x3b6, // updated 6.40
ReqSearchInfoHandler = 0x03b0, // updated 6.31h ReqSearchInfoHandler = 0x03b0, // updated 6.31h
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
ReqRemovePlayerFromBlacklist = 0x00B4, // updated 5.58h ReqRemovePlayerFromBlacklist = 0x00B4, // updated 5.58h
BlackListHandler = 0x010c, // updated 6.31h BlackListHandler = 0x29c, // updated 6.40
PlayerSearchHandler = 0x037D, // updated 5.58h PlayerSearchHandler = 0x037D, // updated 5.58h
LinkshellListHandler = 0x03B6, // updated 5.58h LinkshellListHandler = 0x03B6, // updated 5.58h
@ -377,7 +373,7 @@ namespace Sapphire::Network::Packets
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 = 0x0397, // updated 6.38 MarketBoardPurchaseHandler = 0x0256, // updated 6.40
ReqExamineFcInfo = 0xF37B, // updated 5.58h (prepended F. Conflicts with FinishLoadingHandler 6.38) ReqExamineFcInfo = 0xF37B, // updated 5.58h (prepended F. Conflicts with FinishLoadingHandler 6.38)
@ -392,33 +388,33 @@ namespace Sapphire::Network::Packets
ReqCountdownInitiate = 0x03e1, // updated 6.31h ReqCountdownInitiate = 0x03e1, // updated 6.31h
ReqCountdownCancel = 0x023a, // updated 6.31h ReqCountdownCancel = 0x023a, // updated 6.31h
ZoneLineHandler = 0x00ce, // updated 6.31h ZoneLineHandler = 0x02b9, // updated 6.40
ClientTrigger = 0x01BE, // updated 6.38 ClientTrigger = 0x01BC, // updated 6.40
DiscoveryHandler = 0x038B, // updated 5.58h DiscoveryHandler = 0x038B, // updated 5.58h
SkillHandler = 0x0133, // updated 6.31h SkillHandler = 0x0228, // updated 6.40
GMCommand1 = 0x0273, // updated 6.38 GMCommand1 = 0x0139, // updated 6.40
GMCommand2 = 0x0328, // updated 6.38 GMCommand2 = 0x0195, // updated 6.40
AoESkillHandler = 0x0152, // updated 5.58h AoESkillHandler = 0x016f, // updated 6.40
UpdatePositionHandler = 0x025F, // updated 6.38 UpdatePositionHandler = 0x0179, // updated 6.40
InventoryModifyHandler = 0x024D, // updated 6.38 InventoryModifyHandler = 0x02DB, // updated 6.40
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 = 0x02C4, // updated 6.38 TalkEventHandler = 0x035D, // updated 6.40
EmoteEventHandler = 0x00B0, // updated 5.58h EmoteEventHandler = 0x00B0, // updated 5.58h
WithinRangeEventHandler = 0x02B6, // updated 5.58h WithinRangeEventHandler = 0x0213, // updated 6.40
OutOfRangeEventHandler = 0x00b4, // updated 6.31h OutOfRangeEventHandler = 0x03A6, // updated 6.40
EnterTeriEventHandler = 0x018F, // updated 6.38 EnterTeriEventHandler = 0x0247, // updated 6.40
ShopEventHandler = 0x0384, // updated 5.58h ShopEventHandler = 0x0384, // updated 5.58h
ReturnEventHandler = 0x0268, // updated 6.38 ReturnEventHandler = 0x0131, // updated 6.40
TradeReturnEventHandler = 0x00FB, // updated 6.38 TradeReturnEventHandler = 0x021A, // updated 6.40
TradeReturnEventHandler2 = 0x023C, // updated 5.58h TradeReturnEventHandler2 = 0x03C9, // updated 6.40
EventYield2Handler = 0x021D, // updated 5.58h EventYield2Handler = 0x021D, // updated 5.58h
EventYield16Handler = 0x0207, // updated 5.58h EventYield16Handler = 0x0207, // updated 5.58h
@ -435,7 +431,7 @@ namespace Sapphire::Network::Packets
SetSharedEstateSettings = 0x00D2, // updated 5.58h SetSharedEstateSettings = 0x00D2, // updated 5.58h
UpdatePositionInstance = 0x01A0, // Updated 6.38 UpdatePositionInstance = 0x00E5, // updated 6.40
PerformNoteHandler = 0x0243, // updated 5.58h PerformNoteHandler = 0x0243, // updated 5.58h
@ -448,7 +444,8 @@ namespace Sapphire::Network::Packets
/** /**
* Server IPC Chat Type Codes. * Server IPC Chat Type Codes.
*/ */
enum ServerChatIpcType : uint16_t enum ServerChatIpcType :
uint16_t
{ {
Tell = 0x0064, // updated for sb Tell = 0x0064, // updated for sb
PublicContentTell = 0xF0FB, // added 4.5, this is used when receiving a /tell in PublicContent instances such as Eureka or Bozja (prepended F conflicts with TradeReturnEventHandler 6.38) PublicContentTell = 0xF0FB, // added 4.5, this is used when receiving a /tell in PublicContent instances such as Eureka or Bozja (prepended F conflicts with TradeReturnEventHandler 6.38)
@ -460,7 +457,8 @@ namespace Sapphire::Network::Packets
/** /**
* Client IPC Chat Type Codes. * Client IPC Chat Type Codes.
*/ */
enum ClientChatIpcType : uint16_t enum ClientChatIpcType :
uint16_t
{ {
TellReq = 0x0064, TellReq = 0x0064,
PublicContentTellReq = 0x0326, // updated 5.35 hotfix, this is used when sending a /tell in PublicContent instances such as Eureka or Bozja PublicContentTellReq = 0x0326, // updated 5.35 hotfix, this is used when sending a /tell in PublicContent instances such as Eureka or Bozja

View file

@ -44,6 +44,7 @@ namespace Sapphire::Network::Packets::Server
Common::ChatType chatType; Common::ChatType chatType;
char name[32]; char name[32];
char msg[1012]; char msg[1012];
uint8_t unknown[12]; //possibly padding?
}; };
struct FFXIVIpcPartyChat : FFXIVIpcBasePacket< PartyChat > struct FFXIVIpcPartyChat : FFXIVIpcBasePacket< PartyChat >
@ -981,7 +982,7 @@ namespace Sapphire::Network::Packets::Server
uint16_t unknown5E; uint16_t unknown5E;
uint16_t pvpFrontlineWeeklyCampaigns; uint16_t pvpFrontlineWeeklyCampaigns;
uint16_t enhancedAnimaGlassProgress; uint16_t enhancedAnimaGlassProgress;
uint16_t unknown64[4]; uint16_t unknown64[8];
uint16_t pvpRivalWingsTotalMatches; uint16_t pvpRivalWingsTotalMatches;
uint16_t pvpRivalWingsTotalVictories; uint16_t pvpRivalWingsTotalVictories;
uint16_t pvpRivalWingsWeeklyMatches; uint16_t pvpRivalWingsWeeklyMatches;
@ -1044,25 +1045,26 @@ namespace Sapphire::Network::Packets::Server
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[13]; uint8_t unknown281[16];
char name[32]; char name[32];
uint8_t unknown293[16]; uint8_t unknown293[16];
uint8_t unknown2A3; uint8_t unknown2A3;
uint8_t unlockBitmask[64]; uint8_t unlockBitmask[64];
uint8_t aetheryte[26]; uint8_t aetheryte[26];
uint8_t favoriteAetheryteIds[4]; uint16_t favoriteAetheryteIds[4];
uint8_t freeAetheryteId; uint16_t freeAetheryteId;
uint16_t psPlusFreeAetheryteId;
uint8_t discovery[472]; uint8_t discovery[472];
uint8_t howto[36]; uint8_t howto[36];
uint8_t unknown554[4];
uint8_t minions[60]; uint8_t minions[60];
uint8_t chocoboTaxiMask[12]; uint8_t chocoboTaxiMask[12];
uint8_t watchedCutscenes[152]; uint8_t watchedCutscenes[154];
uint8_t companionBardingMask[12]; uint8_t companionBardingMask[12];
uint8_t unknownMask64E[23];
uint8_t companionEquippedHead; uint8_t companionEquippedHead;
uint8_t companionEquippedBody; uint8_t companionEquippedBody;
uint8_t companionEquippedLegs; uint8_t companionEquippedLegs;
uint8_t unknown5D1[4];
uint8_t unknownMask5D5[11];
uint8_t fishingGuideMask[161]; uint8_t fishingGuideMask[161];
uint8_t fishingSpotVisited[38]; uint8_t fishingSpotVisited[38];
uint8_t unknown694[34]; uint8_t unknown694[34];
@ -1079,11 +1081,12 @@ namespace Sapphire::Network::Packets::Server
uint8_t sightseeingMask[37]; uint8_t sightseeingMask[37];
uint8_t huntingMarkMask[102]; uint8_t huntingMarkMask[102];
uint8_t tripleTriadCards[45]; uint8_t tripleTriadCards[45];
uint8_t unknown7D7[14]; uint8_t unknown895;
uint8_t unknown7D7[15];
uint8_t unknown7D8; uint8_t unknown7D8;
uint8_t unknown7E6[49]; uint8_t unknown7E6[49];
uint8_t regionalFolkloreMask[6]; uint8_t regionalFolkloreMask[6];
uint8_t orchestrionMask[75]; uint8_t orchestrionMask[87];
uint8_t hallOfNoviceCompletion[3]; uint8_t hallOfNoviceCompletion[3];
uint8_t animaCompletion[11]; uint8_t animaCompletion[11];
uint8_t unknown85E[16]; uint8_t unknown85E[16];
@ -1093,16 +1096,17 @@ namespace Sapphire::Network::Packets::Server
uint8_t unlockedRaids[28]; uint8_t unlockedRaids[28];
uint8_t unlockedDungeons[18]; uint8_t unlockedDungeons[18];
uint8_t unlockedGuildhests[10]; uint8_t unlockedGuildhests[10];
uint8_t unlockedTrials[11]; uint8_t unlockedTrials[12];
uint8_t unlockedPvp[5]; uint8_t unlockedPvp[5];
uint8_t clearedRaids[28]; uint8_t clearedRaids[28];
uint8_t clearedDungeons[18]; uint8_t clearedDungeons[18];
uint8_t clearedGuildhests[10]; uint8_t clearedGuildhests[10];
uint8_t clearedTrials[11]; uint8_t clearedTrials[12];
uint8_t clearedPvp[5]; uint8_t clearedPvp[5];
uint8_t unknown948[4]; uint8_t unknown948[6];
uint8_t unknown94C[2]; uint8_t unknown94C[2];
uint8_t unknown94E[2]; uint8_t unknown94E[2];
uint8_t unknownA06[2];
}; };

View file

@ -132,7 +132,7 @@ int main( int argc, char** argv )
result += generateEnum( "GuardianDeity", 0, "uint8_t" ); result += generateEnum( "GuardianDeity", 0, "uint8_t" );
result += generateEnum( "ItemUICategory", 0, "uint8_t" ); result += generateEnum( "ItemUICategory", 0, "uint8_t" );
result += generateEnum( "ItemSearchCategory", 0, "uint8_t" ); result += generateEnum( "ItemSearchCategory", 0, "uint8_t" );
result += generateEnum( "OnlineStatus", 3, "uint8_t" ); result += generateEnum( "OnlineStatus", 6, "uint8_t" );
result += generateEnum( "Race", 1, "uint8_t" ); result += generateEnum( "Race", 1, "uint8_t" );
result += generateEnum( "Tribe", 0, "uint8_t" ); result += generateEnum( "Tribe", 0, "uint8_t" );
result += generateEnum( "Town", 0, "uint8_t" ); result += generateEnum( "Town", 0, "uint8_t" );