diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d18bde4..d8ec5a1c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 ${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 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 ) ###################################### diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index 7ea914cf..f369af89 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -15,32 +15,32 @@ set( MYSQL_FOUND 0 ) if( UNIX ) set(MYSQL_CONFIG_PREFER_PATH "$ENV{MYSQL_HOME}/bin" CACHE FILEPATH - "preferred path to MySQL (mysql_config)" - ) + "preferred path to MySQL (mysql_config)" + ) find_program(MYSQL_CONFIG mysql_config - ${MYSQL_CONFIG_PREFER_PATH} - /usr/local/mysql/bin/ - /usr/local/bin/ - /usr/bin/ - ) + ${MYSQL_CONFIG_PREFER_PATH} + /usr/local/mysql/bin/ + /usr/local/bin/ + /usr/bin/ + ) if( MYSQL_CONFIG ) message(STATUS "Using mysql-config: ${MYSQL_CONFIG}") # set INCLUDE_DIR exec_program(${MYSQL_CONFIG} - ARGS --include - OUTPUT_VARIABLE MY_TMP - ) + ARGS --include + OUTPUT_VARIABLE MY_TMP + ) string(REGEX REPLACE "-I([^ ]*)( .*)?" "\\1" MY_TMP "${MY_TMP}") set(MYSQL_ADD_INCLUDE_PATH ${MY_TMP} CACHE FILEPATH INTERNAL) #message("[DEBUG] MYSQL ADD_INCLUDE_PATH : ${MYSQL_ADD_INCLUDE_PATH}") # set LIBRARY_DIR exec_program(${MYSQL_CONFIG} - ARGS --libs_r - OUTPUT_VARIABLE MY_TMP - ) + ARGS --libs_r + OUTPUT_VARIABLE MY_TMP + ) set(MYSQL_ADD_LIBRARIES "") string(REGEX MATCHALL "-l[^ ]*" MYSQL_LIB_LIST "${MY_TMP}") foreach(LIB ${MYSQL_LIB_LIST}) @@ -67,83 +67,89 @@ endif( UNIX ) if( WIN32 ) SET(PROGRAM_FILES_64 $ENV{ProgramW6432}) if (${PROGRAM_FILES_64}) - STRING(REPLACE "\\\\" "/" PROGRAM_FILES_64 ${PROGRAM_FILES_64}) + STRING(REPLACE "\\\\" "/" PROGRAM_FILES_64 ${PROGRAM_FILES_64}) endif(${PROGRAM_FILES_64}) endif ( WIN32 ) find_path(MYSQL_INCLUDE_DIR - NAMES - mysql.h - PATHS - ${MYSQL_ADD_INCLUDE_PATH} - /usr/include - /usr/include/mariadb - /usr/include/mysql - /usr/local/include - /usr/local/include/mysql - /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.4/include/mysql" - "${PROGRAM_FILES_64}/MariaDB 10.5/include/mysql" - "${PROGRAM_FILES_64}/MariaDB 10.6/include/mysql" - "C:/MySQL/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/include" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/include" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/include" - "c:/msys/local/include" - "$ENV{MYSQL_ROOT}/include" - DOC - "Specify the directory containing mysql.h." -) + NAMES + mysql.h + PATHS + ${MYSQL_ADD_INCLUDE_PATH} + /usr/include + /usr/include/mariadb + /usr/include/mysql + /usr/local/include + /usr/local/include/mysql + /usr/local/mysql/include + "${PROGRAM_FILES_64}/MariaDB 10.3/include/mysql" + "${PROGRAM_FILES_64}/MariaDB 10.4/include/mysql" + "${PROGRAM_FILES_64}/MariaDB 10.5/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" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/include" + "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/include" + "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/include" + "c:/msys/local/include" + "$ENV{MYSQL_ROOT}/include" + DOC + "Specify the directory containing mysql.h." + ) if( UNIX ) foreach(LIB ${MYSQL_ADD_LIBRARIES}) find_library( MYSQL_LIBRARY - NAMES - mysql libmysql libmariadb ${LIB} - PATHS - ${MYSQL_ADD_LIBRARIES_PATH} - /usr/lib - /usr/lib/mysql - /usr/local/lib - /usr/local/lib/mysql - /usr/local/mysql/lib - /usr/lib/x86_64-linux-gnu - DOC "Specify the location of the mysql library here." - ) + NAMES + mysql libmysql libmariadb ${LIB} + PATHS + ${MYSQL_ADD_LIBRARIES_PATH} + /usr/lib + /usr/lib/mysql + /usr/local/lib + /usr/local/lib/mysql + /usr/local/mysql/lib + /usr/lib/x86_64-linux-gnu + DOC "Specify the location of the mysql library here." + ) endforeach(LIB ${MYSQL_ADD_LIBRARY}) endif( UNIX ) if( WIN32 ) find_library( MYSQL_LIBRARY - NAMES - libmysql - libmariadb - PATHS - ${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.4/lib" - "${PROGRAM_FILES_64}/MariaDB 10.5/lib" - "${PROGRAM_FILES_64}/MariaDB 10.6/lib" - "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/opt" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/lib/opt" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/lib/opt" - "c:/msys/local/include" - "$ENV{MYSQL_ROOT}/lib" - DOC "Specify the location of the mysql library here." - ) + NAMES + libmysql + libmariadb + PATHS + ${MYSQL_ADD_LIBRARIES_PATH} + "${PROGRAM_FILES_64}/MariaDB 10.3/lib" + "${PROGRAM_FILES_64}/MariaDB 10.4/lib" + "${PROGRAM_FILES_64}/MariaDB 10.5/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" + "[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" + "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/lib/opt" + "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/lib/opt" + "c:/msys/local/include" + "$ENV{MYSQL_ROOT}/lib" + DOC "Specify the location of the mysql library here." + ) STRING( REGEX REPLACE "(.lib)$" ".dll" MYSQL_DLL ${MYSQL_LIBRARY} ) file(COPY ${MYSQL_DLL} - DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) endif( WIN32 ) @@ -152,50 +158,51 @@ endif( WIN32 ) if( NOT WIN32 ) find_library( MYSQL_EXTRA_LIBRARIES - NAMES - z zlib - PATHS - /usr/lib - /usr/local/lib - DOC - "if more libraries are necessary to link in a MySQL client (typically zlib), specify them here." - ) + NAMES + z zlib + PATHS + /usr/lib + /usr/local/lib + DOC + "if more libraries are necessary to link in a MySQL client (typically zlib), specify them here." + ) else( NOT WIN32 ) set( MYSQL_EXTRA_LIBRARIES "" ) endif( NOT WIN32 ) if( UNIX ) - find_program(MYSQL_EXECUTABLE mysql - PATHS - ${MYSQL_CONFIG_PREFER_PATH} - /usr/local/mysql/bin/ - /usr/local/bin/ - /usr/bin/ - DOC - "path to your mysql binary." - ) + find_program(MYSQL_EXECUTABLE mysql + PATHS + ${MYSQL_CONFIG_PREFER_PATH} + /usr/local/mysql/bin/ + /usr/local/bin/ + /usr/bin/ + DOC + "path to your mysql binary." + ) endif( UNIX ) if( WIN32 ) - find_program(MYSQL_EXECUTABLE mysql - 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.4/bin" - "${PROGRAM_FILES_64}/MariaDB 10.5/bin" - "${PROGRAM_FILES_64}/MariaDB 10.6/bin" - "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/opt" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/bin/opt" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/bin/opt" - "c:/msys/local/include" - "$ENV{MYSQL_ROOT}/bin" - DOC - "path to your mysql binary." - ) + find_program(MYSQL_EXECUTABLE mysql + PATHS + "${PROGRAM_FILES_64}/MariaDB 10.3/bin" + "${PROGRAM_FILES_64}/MariaDB 10.4/bin" + "${PROGRAM_FILES_64}/MariaDB 10.5/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" + "[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" + "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/bin/opt" + "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/bin/opt" + "c:/msys/local/include" + "$ENV{MYSQL_ROOT}/bin" + DOC + "path to your mysql binary." + ) endif( WIN32 ) if( MYSQL_LIBRARY ) diff --git a/src/common/CommonGen.h b/src/common/CommonGen.h index b124e604..01d9d7ca 100644 --- a/src/common/CommonGen.h +++ b/src/common/CommonGen.h @@ -6,834 +6,804 @@ /* This file has been automatically generated. Changes will be lost upon regeneration. To change the content edit tools/exd_common_gen */ -namespace Sapphire::Common { +namespace Sapphire::Common +{ - /////////////////////////////////////////////////////////// - //ActionCategory.exd - enum class ActionCategory : uint8_t - { - None = 0, - Autoattack = 1, - Spell = 2, - Weaponskill = 3, - Ability = 4, - Item = 5, - DoLAbility = 6, - DoHAbility = 7, - Event = 8, - LimitBreak = 9, - System = 10, - System1 = 11, - Mount = 12, - Special = 13, - ItemManipulation = 14, - LimitBreak1 = 15, - //1 = 16, - Artillery = 17, - //2 = 18, - }; +/////////////////////////////////////////////////////////// +//ActionCategory.exd +enum class ActionCategory: uint8_t +{ + None = 0, + Autoattack = 1, + Spell = 2, + Weaponskill = 3, + Ability = 4, + Item = 5, + DoLAbility = 6, + DoHAbility = 7, + Event = 8, + LimitBreak = 9, + System = 10, + System1 = 11, + Mount = 12, + Special = 13, + ItemManipulation = 14, + LimitBreak1 = 15, + //1 = 16, + Artillery = 17, + //2 = 18, +}; - /////////////////////////////////////////////////////////// - //BaseParam.exd - enum class BaseParam : uint8_t - { - None = 0, - Strength = 1, - Dexterity = 2, - Vitality = 3, - Intelligence = 4, - Mind = 5, - Piety = 6, - HP = 7, - MP = 8, - TP = 9, - GP = 10, - CP = 11, - PhysicalDamage = 12, - MagicDamage = 13, - Delay = 14, - AdditionalEffect = 15, - AttackSpeed = 16, - BlockRate = 17, - BlockStrength = 18, - Tenacity = 19, - AttackPower = 20, - Defense = 21, - DirectHitRate = 22, - Evasion = 23, - MagicDefense = 24, - CriticalHitPower = 25, - CriticalHitResilience = 26, - CriticalHit = 27, - CriticalHitEvasion = 28, - SlashingResistance = 29, - PiercingResistance = 30, - BluntResistance = 31, - ProjectileResistance = 32, - AttackMagicPotency = 33, - HealingMagicPotency = 34, - EnhancementMagicPotency = 35, - ElementalBonus = 36, - FireResistance = 37, - IceResistance = 38, - WindResistance = 39, - EarthResistance = 40, - LightningResistance = 41, - WaterResistance = 42, - MagicResistance = 43, - Determination = 44, - SkillSpeed = 45, - SpellSpeed = 46, - Haste = 47, - Morale = 48, - Enmity = 49, - EnmityReduction = 50, - DesynthesisSkillGain = 51, - EXPBonus = 52, - Regen = 53, - Refresh = 54, - MainAttribute = 55, - SecondaryAttribute = 56, - SlowResistance = 57, - PetrificationResistance = 58, - ParalysisResistance = 59, - SilenceResistance = 60, - BlindResistance = 61, - PoisonResistance = 62, - StunResistance = 63, - SleepResistance = 64, - BindResistance = 65, - HeavyResistance = 66, - DoomResistance = 67, - ReducedDurabilityLoss = 68, - IncreasedSpiritbondGain = 69, - Craftsmanship = 70, - Control = 71, - Gathering = 72, - Perception = 73, - }; +/////////////////////////////////////////////////////////// +//BaseParam.exd +enum class BaseParam: uint8_t +{ + None = 0, + Strength = 1, + Dexterity = 2, + Vitality = 3, + Intelligence = 4, + Mind = 5, + Piety = 6, + HP = 7, + MP = 8, + TP = 9, + GP = 10, + CP = 11, + PhysicalDamage = 12, + MagicDamage = 13, + Delay = 14, + AdditionalEffect = 15, + AttackSpeed = 16, + BlockRate = 17, + BlockStrength = 18, + Tenacity = 19, + AttackPower = 20, + Defense = 21, + DirectHitRate = 22, + Evasion = 23, + MagicDefense = 24, + CriticalHitPower = 25, + CriticalHitResilience = 26, + CriticalHit = 27, + CriticalHitEvasion = 28, + SlashingResistance = 29, + PiercingResistance = 30, + BluntResistance = 31, + ProjectileResistance = 32, + AttackMagicPotency = 33, + HealingMagicPotency = 34, + EnhancementMagicPotency = 35, + ElementalBonus = 36, + FireResistance = 37, + IceResistance = 38, + WindResistance = 39, + EarthResistance = 40, + LightningResistance = 41, + WaterResistance = 42, + MagicResistance = 43, + Determination = 44, + SkillSpeed = 45, + SpellSpeed = 46, + Haste = 47, + Morale = 48, + Enmity = 49, + EnmityReduction = 50, + DesynthesisSkillGain = 51, + EXPBonus = 52, + Regen = 53, + Refresh = 54, + MainAttribute = 55, + SecondaryAttribute = 56, + SlowResistance = 57, + PetrificationResistance = 58, + ParalysisResistance = 59, + SilenceResistance = 60, + BlindResistance = 61, + PoisonResistance = 62, + StunResistance = 63, + SleepResistance = 64, + BindResistance = 65, + HeavyResistance = 66, + DoomResistance = 67, + ReducedDurabilityLoss = 68, + IncreasedSpiritbondGain = 69, + Craftsmanship = 70, + Control = 71, + Gathering = 72, + Perception = 73, +}; - /////////////////////////////////////////////////////////// - //BeastReputationRank.exd - enum class BeastReputationRank : uint8_t - { - None = 0, - Neutral = 1, - Recognized = 2, - Friendly = 3, - Trusted = 4, - Respected = 5, - Honored = 6, - Sworn = 7, - Allied = 8, - }; +/////////////////////////////////////////////////////////// +//BeastReputationRank.exd +enum class BeastReputationRank: uint8_t +{ + None = 0, Neutral = 1, Recognized = 2, Friendly = 3, Trusted = 4, Respected = 5, Honored = 6, Sworn = 7, Allied = 8, +}; - /////////////////////////////////////////////////////////// - //BeastTribe.exd - enum class BeastTribe : uint8_t - { - None = 0, - Amaljaa = 1, - Sylphs = 2, - Kobolds = 3, - Sahagin = 4, - Ixal = 5, - VanuVanu = 6, - Vath = 7, - Moogles = 8, - Kojin = 9, - Ananta = 10, - Namazu = 11, - Pixies = 12, - Qitari = 13, - Dwarves = 14, - Arkasodara = 15, - Omicrons = 16, - Loporrits = 17, - }; +/////////////////////////////////////////////////////////// +//BeastTribe.exd +enum class BeastTribe: uint8_t +{ + None = 0, + Amaljaa = 1, + Sylphs = 2, + Kobolds = 3, + Sahagin = 4, + Ixal = 5, + VanuVanu = 6, + Vath = 7, + Moogles = 8, + Kojin = 9, + Ananta = 10, + Namazu = 11, + Pixies = 12, + Qitari = 13, + Dwarves = 14, + Arkasodara = 15, + Omicrons = 16, + Loporrits = 17, +}; - /////////////////////////////////////////////////////////// - //ClassJob.exd - enum class ClassJob : uint8_t - { - Adventurer = 0, - Gladiator = 1, - Pugilist = 2, - Marauder = 3, - Lancer = 4, - Archer = 5, - Conjurer = 6, - Thaumaturge = 7, - Carpenter = 8, - Blacksmith = 9, - Armorer = 10, - Goldsmith = 11, - Leatherworker = 12, - Weaver = 13, - Alchemist = 14, - Culinarian = 15, - Miner = 16, - Botanist = 17, - Fisher = 18, - Paladin = 19, - Monk = 20, - Warrior = 21, - Dragoon = 22, - Bard = 23, - Whitemage = 24, - Blackmage = 25, - Arcanist = 26, - Summoner = 27, - Scholar = 28, - Rogue = 29, - Ninja = 30, - Machinist = 31, - Darkknight = 32, - Astrologian = 33, - Samurai = 34, - Redmage = 35, - Bluemage = 36, - Gunbreaker = 37, - Dancer = 38, - Reaper = 39, - Sage = 40, - }; +/////////////////////////////////////////////////////////// +//ClassJob.exd +enum class ClassJob: uint8_t +{ + Adventurer = 0, + Gladiator = 1, + Pugilist = 2, + Marauder = 3, + Lancer = 4, + Archer = 5, + Conjurer = 6, + Thaumaturge = 7, + Carpenter = 8, + Blacksmith = 9, + Armorer = 10, + Goldsmith = 11, + Leatherworker = 12, + Weaver = 13, + Alchemist = 14, + Culinarian = 15, + Miner = 16, + Botanist = 17, + Fisher = 18, + Paladin = 19, + Monk = 20, + Warrior = 21, + Dragoon = 22, + Bard = 23, + Whitemage = 24, + Blackmage = 25, + Arcanist = 26, + Summoner = 27, + Scholar = 28, + Rogue = 29, + Ninja = 30, + Machinist = 31, + Darkknight = 32, + Astrologian = 33, + Samurai = 34, + Redmage = 35, + Bluemage = 36, + Gunbreaker = 37, + Dancer = 38, + Reaper = 39, + Sage = 40, +}; - /////////////////////////////////////////////////////////// - //ContentType.exd - enum class ContentType : uint8_t - { - None = 0, - DutyRoulette = 1, - Dungeons = 2, - Guildhests = 3, - Trials = 4, - Raids = 5, - PvP = 6, - QuestBattles = 7, - FATEs = 8, - TreasureHunt = 9, - Levequests = 10, - GrandCompany = 11, - Companions = 12, - TribalQuests = 13, - OverallCompletion = 14, - PlayerCommendation = 15, - DisciplesoftheLand = 16, - DisciplesoftheHand = 17, - RetainerVentures = 18, - GoldSaucer = 19, - //1 = 20, - DeepDungeons = 21, - //2 = 22, - //3 = 23, - WondrousTails = 24, - CustomDeliveries = 25, - Eureka = 26, - //4 = 27, - UltimateRaids = 28, - //5 = 29, - VCDungeonFinder = 30, - }; +/////////////////////////////////////////////////////////// +//ContentType.exd +enum class ContentType: uint8_t +{ + None = 0, + DutyRoulette = 1, + Dungeons = 2, + Guildhests = 3, + Trials = 4, + Raids = 5, + PvP = 6, + QuestBattles = 7, + FATEs = 8, + TreasureHunt = 9, + Levequests = 10, + GrandCompany = 11, + Companions = 12, + TribalQuests = 13, + OverallCompletion = 14, + PlayerCommendation = 15, + DisciplesoftheLand = 16, + DisciplesoftheHand = 17, + RetainerVentures = 18, + GoldSaucer = 19, + //1 = 20, + DeepDungeons = 21, + //2 = 22, + //3 = 23, + WondrousTails = 24, + CustomDeliveries = 25, + Eureka = 26, + //4 = 27, + UltimateRaids = 28, + //5 = 29, + VAndCDungeonFinder = 30, +}; - /////////////////////////////////////////////////////////// - //EmoteCategory.exd - enum class EmoteCategory : uint8_t - { - None = 0, - General = 1, - Special = 2, - Expressions = 3, - //1 = 4, - }; +/////////////////////////////////////////////////////////// +//EmoteCategory.exd +enum class EmoteCategory: uint8_t +{ + None = 0, General = 1, Special = 2, Expressions = 3, + //1 = 4, +}; - /////////////////////////////////////////////////////////// - //ExVersion.exd - enum class ExVersion : uint8_t - { - ARealmReborn = 0, - Heavensward = 1, - Stormblood = 2, - Shadowbringers = 3, - Endwalker = 4, - }; +/////////////////////////////////////////////////////////// +//ExVersion.exd +enum class ExVersion: uint8_t +{ + ARealmReborn = 0, Heavensward = 1, Stormblood = 2, Shadowbringers = 3, Endwalker = 4, +}; - /////////////////////////////////////////////////////////// - //GrandCompany.exd - enum class GrandCompany : uint8_t - { - None = 0, - Maelstrom = 1, - OrderoftheTwinAdder = 2, - ImmortalFlames = 3, - }; +/////////////////////////////////////////////////////////// +//GrandCompany.exd +enum class GrandCompany: uint8_t +{ + None = 0, Maelstrom = 1, OrderoftheTwinAdder = 2, ImmortalFlames = 3, +}; - /////////////////////////////////////////////////////////// - //GuardianDeity.exd - enum class GuardianDeity : uint8_t - { - None = 0, - HalonetheFury = 1, - MenphinatheLover = 2, - ThaliaktheScholar = 3, - NymeiatheSpinner = 4, - LlymlaentheNavigator = 5, - OschontheWanderer = 6, - ByregottheBuilder = 7, - RhalgrtheDestroyer = 8, - AzeymatheWarden = 9, - NaldthaltheTraders = 10, - NophicatheMatron = 11, - AlthyktheKeeper = 12, - }; +/////////////////////////////////////////////////////////// +//GuardianDeity.exd +enum class GuardianDeity: uint8_t +{ + None = 0, + HalonetheFury = 1, + MenphinatheLover = 2, + ThaliaktheScholar = 3, + NymeiatheSpinner = 4, + LlymlaentheNavigator = 5, + OschontheWanderer = 6, + ByregottheBuilder = 7, + RhalgrtheDestroyer = 8, + AzeymatheWarden = 9, + NaldthaltheTraders = 10, + NophicatheMatron = 11, + AlthyktheKeeper = 12, +}; - /////////////////////////////////////////////////////////// - //ItemUICategory.exd - enum class ItemUICategory : uint8_t - { - None = 0, - PugilistsArm = 1, - GladiatorsArm = 2, - MaraudersArm = 3, - ArchersArm = 4, - LancersArm = 5, - OnehandedThaumaturgesArm = 6, - TwohandedThaumaturgesArm = 7, - OnehandedConjurersArm = 8, - TwohandedConjurersArm = 9, - ArcanistsGrimoire = 10, - Shield = 11, - CarpentersPrimaryTool = 12, - CarpentersSecondaryTool = 13, - BlacksmithsPrimaryTool = 14, - BlacksmithsSecondaryTool = 15, - ArmorersPrimaryTool = 16, - ArmorersSecondaryTool = 17, - GoldsmithsPrimaryTool = 18, - GoldsmithsSecondaryTool = 19, - LeatherworkersPrimaryTool = 20, - LeatherworkersSecondaryTool = 21, - WeaversPrimaryTool = 22, - WeaversSecondaryTool = 23, - AlchemistsPrimaryTool = 24, - AlchemistsSecondaryTool = 25, - CulinariansPrimaryTool = 26, - CulinariansSecondaryTool = 27, - MinersPrimaryTool = 28, - MinersSecondaryTool = 29, - BotanistsPrimaryTool = 30, - BotanistsSecondaryTool = 31, - FishersPrimaryTool = 32, - FishingTackle = 33, - Head = 34, - Body = 35, - Legs = 36, - Hands = 37, - Feet = 38, - Unobtainable = 39, - Necklace = 40, - Earrings = 41, - Bracelets = 42, - Ring = 43, - Medicine = 44, - Ingredient = 45, - Meal = 46, - Seafood = 47, - Stone = 48, - Metal = 49, - Lumber = 50, - Cloth = 51, - Leather = 52, - Bone = 53, - Reagent = 54, - Dye = 55, - Part = 56, - Furnishing = 57, - Materia = 58, - Crystal = 59, - Catalyst = 60, - Miscellany = 61, - SoulCrystal = 62, - Other = 63, - ConstructionPermit = 64, - Roof = 65, - ExteriorWall = 66, - Window = 67, - Door = 68, - RoofDecoration = 69, - ExteriorWallDecoration = 70, - Placard = 71, - Fence = 72, - InteriorWall = 73, - Flooring = 74, - CeilingLight = 75, - OutdoorFurnishing = 76, - Table = 77, - Tabletop = 78, - Wallmounted = 79, - Rug = 80, - Minion = 81, - Gardening = 82, - Demimateria = 83, - RoguesArm = 84, - SeasonalMiscellany = 85, - TripleTriadCard = 86, - DarkKnightsArm = 87, - MachinistsArm = 88, - AstrologiansArm = 89, - AirshipHull = 90, - AirshipRigging = 91, - AirshipAftcastle = 92, - AirshipForecastle = 93, - OrchestrionRoll = 94, - Painting = 95, - SamuraisArm = 96, - RedMagesArm = 97, - ScholarsArm = 98, - FishersSecondaryTool = 99, - Currency = 100, - SubmersibleHull = 101, - SubmersibleStern = 102, - SubmersibleBow = 103, - SubmersibleBridge = 104, - BlueMagesArm = 105, - GunbreakersArm = 106, - DancersArm = 107, - ReapersArm = 108, - SagesArm = 109, - }; +/////////////////////////////////////////////////////////// +//ItemUICategory.exd +enum class ItemUICategory: uint8_t +{ + None = 0, + PugilistsArm = 1, + GladiatorsArm = 2, + MaraudersArm = 3, + ArchersArm = 4, + LancersArm = 5, + OnehandedThaumaturgesArm = 6, + TwohandedThaumaturgesArm = 7, + OnehandedConjurersArm = 8, + TwohandedConjurersArm = 9, + ArcanistsGrimoire = 10, + Shield = 11, + CarpentersPrimaryTool = 12, + CarpentersSecondaryTool = 13, + BlacksmithsPrimaryTool = 14, + BlacksmithsSecondaryTool = 15, + ArmorersPrimaryTool = 16, + ArmorersSecondaryTool = 17, + GoldsmithsPrimaryTool = 18, + GoldsmithsSecondaryTool = 19, + LeatherworkersPrimaryTool = 20, + LeatherworkersSecondaryTool = 21, + WeaversPrimaryTool = 22, + WeaversSecondaryTool = 23, + AlchemistsPrimaryTool = 24, + AlchemistsSecondaryTool = 25, + CulinariansPrimaryTool = 26, + CulinariansSecondaryTool = 27, + MinersPrimaryTool = 28, + MinersSecondaryTool = 29, + BotanistsPrimaryTool = 30, + BotanistsSecondaryTool = 31, + FishersPrimaryTool = 32, + FishingTackle = 33, + Head = 34, + Body = 35, + Legs = 36, + Hands = 37, + Feet = 38, + Unobtainable = 39, + Necklace = 40, + Earrings = 41, + Bracelets = 42, + Ring = 43, + Medicine = 44, + Ingredient = 45, + Meal = 46, + Seafood = 47, + Stone = 48, + Metal = 49, + Lumber = 50, + Cloth = 51, + Leather = 52, + Bone = 53, + Reagent = 54, + Dye = 55, + Part = 56, + Furnishing = 57, + Materia = 58, + Crystal = 59, + Catalyst = 60, + Miscellany = 61, + SoulCrystal = 62, + Other = 63, + ConstructionPermit = 64, + Roof = 65, + ExteriorWall = 66, + Window = 67, + Door = 68, + RoofDecoration = 69, + ExteriorWallDecoration = 70, + Placard = 71, + Fence = 72, + InteriorWall = 73, + Flooring = 74, + CeilingLight = 75, + OutdoorFurnishing = 76, + Table = 77, + Tabletop = 78, + Wallmounted = 79, + Rug = 80, + Minion = 81, + Gardening = 82, + Demimateria = 83, + RoguesArm = 84, + SeasonalMiscellany = 85, + TripleTriadCard = 86, + DarkKnightsArm = 87, + MachinistsArm = 88, + AstrologiansArm = 89, + AirshipHull = 90, + AirshipRigging = 91, + AirshipAftcastle = 92, + AirshipForecastle = 93, + OrchestrionRoll = 94, + Painting = 95, + SamuraisArm = 96, + RedMagesArm = 97, + ScholarsArm = 98, + FishersSecondaryTool = 99, + Currency = 100, + SubmersibleHull = 101, + SubmersibleStern = 102, + SubmersibleBow = 103, + SubmersibleBridge = 104, + BlueMagesArm = 105, + GunbreakersArm = 106, + DancersArm = 107, + ReapersArm = 108, + SagesArm = 109, +}; - /////////////////////////////////////////////////////////// - //ItemSearchCategory.exd - enum class ItemSearchCategory : uint8_t - { - None = 0, - PrimaryArms = 1, - PrimaryTools = 2, - PrimaryTools1 = 3, - Armor = 4, - Accessories = 5, - Medicines = 6, - Materials = 7, - Other = 8, - PugilistsArms = 9, - GladiatorsArms = 10, - MaraudersArms = 11, - ArchersArms = 12, - LancersArms = 13, - ThaumaturgesArms = 14, - ConjurersArms = 15, - ArcanistsArms = 16, - Shields = 17, - DancersArms = 18, - CarpentersTools = 19, - BlacksmithsTools = 20, - ArmorersTools = 21, - GoldsmithsTools = 22, - LeatherworkersTools = 23, - WeaversTools = 24, - AlchemistsTools = 25, - CulinariansTools = 26, - MinersTools = 27, - BotanistsTools = 28, - FishersTools = 29, - FishingTackle = 30, - Head = 31, - Undershirts = 32, - Body = 33, - Undergarments = 34, - Legs = 35, - Hands = 36, - Feet = 37, - Waist = 38, - Necklaces = 39, - Earrings = 40, - Bracelets = 41, - Rings = 42, - Medicine = 43, - Ingredients = 44, - Meals = 45, - Seafood = 46, - Stone = 47, - Metal = 48, - Lumber = 49, - Cloth = 50, - Leather = 51, - Bone = 52, - Reagents = 53, - Dyes = 54, - WeaponParts = 55, - Furnishings = 56, - Materia = 57, - Crystals = 58, - Catalysts = 59, - Miscellany = 60, - SoulCrystals = 61, - Arrows = 62, - QuestItems = 63, - Other1 = 64, - ExteriorFixtures = 65, - InteriorFixtures = 66, - OutdoorFurnishings = 67, - ChairsandBeds = 68, - Tables = 69, - Tabletop = 70, - Wallmounted = 71, - Rugs = 72, - RoguesArms = 73, - SeasonalMiscellany = 74, - Minions = 75, - DarkKnightsArms = 76, - MachinistsArms = 77, - AstrologiansArms = 78, - AirshipSubmersibleComponents = 79, - OrchestrionComponents = 80, - GardeningItems = 81, - Paintings = 82, - SamuraisArms = 83, - RedMagesArms = 84, - ScholarsArms = 85, - GunbreakersArms = 86, - DancersArms1 = 87, - ReapersArms = 88, - SagesArms = 89, - RegistrableMiscellany = 90, - /* 1 = 91, - 2 = 92, - 3 = 93, - 4 = 94, - 5 = 95, - 6 = 96, - 7 = 97, - 8 = 98, - 9 = 99, - 10 = 100, */ - }; +/////////////////////////////////////////////////////////// +//ItemSearchCategory.exd +enum class ItemSearchCategory: uint8_t +{ + None = 0, + PrimaryArms = 1, + PrimaryTools = 2, + PrimaryTools1 = 3, + Armor = 4, + Accessories = 5, + Medicines = 6, + Materials = 7, + Other = 8, + PugilistsArms = 9, + GladiatorsArms = 10, + MaraudersArms = 11, + ArchersArms = 12, + LancersArms = 13, + ThaumaturgesArms = 14, + ConjurersArms = 15, + ArcanistsArms = 16, + Shields = 17, + DancersArms = 18, + CarpentersTools = 19, + BlacksmithsTools = 20, + ArmorersTools = 21, + GoldsmithsTools = 22, + LeatherworkersTools = 23, + WeaversTools = 24, + AlchemistsTools = 25, + CulinariansTools = 26, + MinersTools = 27, + BotanistsTools = 28, + FishersTools = 29, + FishingTackle = 30, + Head = 31, + Undershirts = 32, + Body = 33, + Undergarments = 34, + Legs = 35, + Hands = 36, + Feet = 37, + Waist = 38, + Necklaces = 39, + Earrings = 40, + Bracelets = 41, + Rings = 42, + Medicine = 43, + Ingredients = 44, + Meals = 45, + Seafood = 46, + Stone = 47, + Metal = 48, + Lumber = 49, + Cloth = 50, + Leather = 51, + Bone = 52, + Reagents = 53, + Dyes = 54, + WeaponParts = 55, + Furnishings = 56, + Materia = 57, + Crystals = 58, + Catalysts = 59, + Miscellany = 60, + SoulCrystals = 61, + Arrows = 62, + QuestItems = 63, + Other1 = 64, + ExteriorFixtures = 65, + InteriorFixtures = 66, + OutdoorFurnishings = 67, + ChairsandBeds = 68, + Tables = 69, + Tabletop = 70, + Wallmounted = 71, + Rugs = 72, + RoguesArms = 73, + SeasonalMiscellany = 74, + Minions = 75, + DarkKnightsArms = 76, + MachinistsArms = 77, + AstrologiansArms = 78, + AirshipAndSubmersibleComponents = 79, + OrchestrionComponents = 80, + GardeningItems = 81, + Paintings = 82, + SamuraisArms = 83, + RedMagesArms = 84, + ScholarsArms = 85, + GunbreakersArms = 86, + DancersArms1 = 87, + ReapersArms = 88, + SagesArms = 89, + RegistrableMiscellany = 90, + /*1 = 91, + 2 = 92, + 3 = 93, + 4 = 94, + 5 = 95, + 6 = 96, + 7 = 97, + 8 = 98, + 9 = 99, + 10 = 100,*/ +}; - /////////////////////////////////////////////////////////// - //OnlineStatus.exd - enum class OnlineStatus : uint8_t - { - None = 0, - GameQA = 1, - GameMaster = 2, - GameMaster1 = 3, - EventParticipant = 4, - Disconnected = 5, - WaitingforFriendListApproval = 6, - WaitingforLinkshellApproval = 7, - WaitingforFreeCompanyApproval = 8, - NotFound = 9, - Offline = 10, - BattleMentor = 11, - Busy = 12, - PvP = 13, - PlayingTripleTriad = 14, - ViewingCutscene = 15, - UsingaChocoboPorter = 16, - AwayfromKeyboard = 17, - CameraMode = 18, - LookingforRepairs = 19, - LookingtoRepair = 20, - LookingtoMeldMateria = 21, - Roleplaying = 22, - LookingforParty = 23, - SwordforHire = 24, - WaitingforDutyFinder = 25, - RecruitingPartyMembers = 26, - Mentor = 27, - PvEMentor = 28, - TradeMentor = 29, - PvPMentor = 30, - Returner = 31, - NewAdventurer = 32, - AllianceLeader = 33, - AlliancePartyLeader = 34, - AlliancePartyMember = 35, - PartyLeader = 36, - PartyMember = 37, - PartyLeaderCrossworld = 38, - PartyMemberCrossworld = 39, - AnotherWorld = 40, - SharingDuty = 41, - SimilarDuty = 42, - InDuty = 43, - TrialAdventurer = 44, - FreeCompany = 45, - GrandCompany = 46, - Online = 47, - }; +/////////////////////////////////////////////////////////// +//OnlineStatus.exd +enum class OnlineStatus: uint8_t +{ + None = 0, + GameQA = 1, + GameMaster = 2, + GameMaster1 = 3, + EventParticipant = 4, + Disconnected = 5, + WaitingforFriendListApproval = 6, + WaitingforLinkshellApproval = 7, + WaitingforFreeCompanyApproval = 8, + NotFound = 9, + Offline = 10, + BattleMentor = 11, + Busy = 12, + PvP = 13, + PlayingTripleTriad = 14, + ViewingCutscene = 15, + UsingaChocoboPorter = 16, + AwayfromKeyboard = 17, + CameraMode = 18, + LookingforRepairs = 19, + LookingtoRepair = 20, + LookingtoMeldMateria = 21, + Roleplaying = 22, + LookingforParty = 23, + SwordforHire = 24, + WaitingforDutyFinder = 25, + RecruitingPartyMembers = 26, + Mentor = 27, + PvEMentor = 28, + TradeMentor = 29, + PvPMentor = 30, + Returner = 31, + NewAdventurer = 32, + AllianceLeader = 33, + AlliancePartyLeader = 34, + AlliancePartyMember = 35, + PartyLeader = 36, + PartyMember = 37, + PartyLeaderCrossworld = 38, + PartyMemberCrossworld = 39, + AnotherWorld = 40, + SharingDuty = 41, + SimilarDuty = 42, + InDuty = 43, + TrialAdventurer = 44, + FreeCompany = 45, + GrandCompany = 46, + Online = 47, +}; - /////////////////////////////////////////////////////////// - //Race.exd - enum class Race : uint8_t - { - None = 0, - Hyur = 1, - Elezen = 2, - Lalafell = 3, - Miqote = 4, - Roegadyn = 5, - AuRa = 6, - Hrothgar = 7, - Viera = 8, - }; +/////////////////////////////////////////////////////////// +//Race.exd +enum class Race: uint8_t +{ + None = 0, Hyur = 1, Elezen = 2, Lalafell = 3, Miqote = 4, Roegadyn = 5, AuRa = 6, Hrothgar = 7, Viera = 8, +}; - /////////////////////////////////////////////////////////// - //Tribe.exd - enum class Tribe : uint8_t - { - None = 0, - Midlander = 1, - Highlander = 2, - Wildwood = 3, - Duskwight = 4, - Plainsfolk = 5, - Dunesfolk = 6, - SeekeroftheSun = 7, - KeeperoftheMoon = 8, - SeaWolf = 9, - Hellsguard = 10, - Raen = 11, - Xaela = 12, - Helions = 13, - TheLost = 14, - Rava = 15, - Veena = 16, - }; +/////////////////////////////////////////////////////////// +//Tribe.exd +enum class Tribe: uint8_t +{ + None = 0, + Midlander = 1, + Highlander = 2, + Wildwood = 3, + Duskwight = 4, + Plainsfolk = 5, + Dunesfolk = 6, + SeekeroftheSun = 7, + KeeperoftheMoon = 8, + SeaWolf = 9, + Hellsguard = 10, + Raen = 11, + Xaela = 12, + Helions = 13, + TheLost = 14, + Rava = 15, + Veena = 16, +}; - /////////////////////////////////////////////////////////// - //Town.exd - enum class Town : uint8_t - { - Nowheresville = 0, - LimsaLominsa = 1, - Gridania = 2, - Uldah = 3, - Ishgard = 4, - /* = 5, - 1 = 6, */ - Kugane = 7, - /* 2 = 8, - 3 = 9, */ - Crystarium = 10, - //4 = 11, - OldSharlayan = 12, - //5 = 13, - }; +/////////////////////////////////////////////////////////// +//Town.exd +enum class Town: uint8_t +{ + Nowheresville = 0, LimsaLominsa = 1, Gridania = 2, Uldah = 3, Ishgard = 4, //= 5, + //1 = 6, + Kugane = 7, //2 = 8, + //3 = 9, + Crystarium = 10, //4 = 11, + OldSharlayan = 12, + //5 = 13, +}; - /////////////////////////////////////////////////////////// - //Weather.exd - enum class Weather : uint8_t - { - None = 0, - ClearSkies = 1, - FairSkies = 2, - Clouds = 3, - Fog = 4, - Wind = 5, - Gales = 6, - Rain = 7, - Showers = 8, - Thunder = 9, - Thunderstorms = 10, - DustStorms = 11, - Sandstorms = 12, - HotSpells = 13, - HeatWaves = 14, - Snow = 15, - Blizzards = 16, - Gloom = 17, - Auroras = 18, - Darkness = 19, - Tension = 20, - Clouds1 = 21, - StormClouds = 22, - RoughSeas = 23, - RoughSeas1 = 24, - Louring = 25, - HeatWaves1 = 26, - Gloom1 = 27, - Gales1 = 28, - Eruptions = 29, - FairSkies1 = 30, - FairSkies2 = 31, - FairSkies3 = 32, - FairSkies4 = 33, - FairSkies5 = 34, - Irradiance = 35, - CoreRadiation = 36, - CoreRadiation1 = 37, - CoreRadiation2 = 38, - CoreRadiation3 = 39, - ShelfClouds = 40, - ShelfClouds1 = 41, - ShelfClouds2 = 42, - ShelfClouds3 = 43, - Oppression = 44, - Oppression1 = 45, - Oppression2 = 46, - Oppression3 = 47, - Oppression4 = 48, - UmbralWind = 49, - UmbralStatic = 50, - Smoke = 51, - FairSkies6 = 52, - RoyalLevin = 53, - Hyperelectricity = 54, - RoyalLevin1 = 55, - Oppression5 = 56, - Thunder1 = 57, - Thunder2 = 58, - CutScene = 59, - Multiplicity = 60, - Multiplicity1 = 61, - Rain1 = 62, - FairSkies7 = 63, - Rain2 = 64, - FairSkies8 = 65, - Dragonstorms = 66, - Dragonstorms1 = 67, - Subterrain = 68, - Concordance = 69, - Concordance1 = 70, - BeyondTime = 71, - BeyondTime1 = 72, - BeyondTime2 = 73, - DemonicInfinity = 74, - DemonicInfinity1 = 75, - DemonicInfinity2 = 76, - DimensionalDisruption = 77, - DimensionalDisruption1 = 78, - DimensionalDisruption2 = 79, - Revelstorms = 80, - Revelstorms1 = 81, - EternalBliss = 82, - EternalBliss1 = 83, - Wyrmstorms = 84, - Wyrmstorms1 = 85, - Revelstorms2 = 86, - Quicklevin = 87, - Thunder3 = 88, - DimensionalDisruption3 = 89, - FairSkies9 = 90, - ClearSkies1 = 91, - WhiteCyclones = 92, - WhiteCyclones1 = 93, - WhiteCyclones2 = 94, - Ultimania = 95, - WhiteCyclones3 = 96, - Moonlight = 97, - Moonlight1 = 98, - Moonlight2 = 99, - Moonlight3 = 100, - RedMoon = 101, - Scarlet = 102, - Scarlet1 = 103, - Scarlet2 = 104, - FairSkies10 = 105, - FairSkies11 = 106, - FairSkies12 = 107, - FairSkies13 = 108, - Flames = 109, - Tsunamis = 110, - Cyclones = 111, - Geostorms = 112, - TrueBlue = 113, - TrueBlue1 = 114, - TrueBlue2 = 115, - UmbralTurbulence = 116, - TrueBlue3 = 117, - EverlastingLight = 118, - Gales2 = 119, - Termination = 120, - Termination1 = 121, - Dreams = 122, - Dreams1 = 123, - Dreams2 = 124, - Brilliance = 125, - Brilliance1 = 126, - Termination2 = 127, - Termination3 = 128, - EverlastingLight1 = 129, - Eruptions1 = 130, - Termination4 = 131, - FairSkies14 = 132, - UmbralFlare = 133, - UmbralDuststorm = 134, - UmbralLevin = 135, - UmbralTempest = 136, - Starshower = 137, - Delirium = 138, - Clouds2 = 139, - Clouds3 = 140, - Irradiance1 = 141, - Irradiance2 = 142, - StormClouds1 = 143, - Firestorm = 144, - SpectralCurrent = 145, - //1 = 146, - Climactic = 147, - MoonDust = 148, - AstromagneticStorm = 149, - Apocalypse = 150, - Polarization = 151, - Polarization1 = 152, - Polarization2 = 153, - Polarization3 = 154, - Polarization4 = 155, - Projection = 156, - Pandaemonium = 157, - Pandaemonium1 = 158, - Pandaemonium2 = 159, - Ultimatum = 160, - Inevitability = 161, - Transcendence = 162, - Transcendence1 = 163, - Transcendence2 = 164, - Transcendence3 = 165, - Transcendence4 = 166, - Transcendence5 = 167, - Transcendence6 = 168, - Transcendence7 = 169, - Dragonstorms2 = 170, - Vacuity = 171, - Vacuity1 = 172, - Vacuity2 = 173, - DimensionalDisruption4 = 174, - DimensionalDisruption5 = 175, - DimensionalDisruption6 = 176, - }; +/////////////////////////////////////////////////////////// +//Weather.exd +enum class Weather: uint8_t +{ + None = 0, + ClearSkies = 1, + FairSkies = 2, + Clouds = 3, + Fog = 4, + Wind = 5, + Gales = 6, + Rain = 7, + Showers = 8, + Thunder = 9, + Thunderstorms = 10, + DustStorms = 11, + Sandstorms = 12, + HotSpells = 13, + HeatWaves = 14, + Snow = 15, + Blizzards = 16, + Gloom = 17, + Auroras = 18, + Darkness = 19, + Tension = 20, + Clouds1 = 21, + StormClouds = 22, + RoughSeas = 23, + RoughSeas1 = 24, + Louring = 25, + HeatWaves1 = 26, + Gloom1 = 27, + Gales1 = 28, + Eruptions = 29, + FairSkies1 = 30, + FairSkies2 = 31, + FairSkies3 = 32, + FairSkies4 = 33, + FairSkies5 = 34, + Irradiance = 35, + CoreRadiation = 36, + CoreRadiation1 = 37, + CoreRadiation2 = 38, + CoreRadiation3 = 39, + ShelfClouds = 40, + ShelfClouds1 = 41, + ShelfClouds2 = 42, + ShelfClouds3 = 43, + Oppression = 44, + Oppression1 = 45, + Oppression2 = 46, + Oppression3 = 47, + Oppression4 = 48, + UmbralWind = 49, + UmbralStatic = 50, + Smoke = 51, + FairSkies6 = 52, + RoyalLevin = 53, + Hyperelectricity = 54, + RoyalLevin1 = 55, + Oppression5 = 56, + Thunder1 = 57, + Thunder2 = 58, + CutScene = 59, + Multiplicity = 60, + Multiplicity1 = 61, + Rain1 = 62, + FairSkies7 = 63, + Rain2 = 64, + FairSkies8 = 65, + Dragonstorms = 66, + Dragonstorms1 = 67, + Subterrain = 68, + Concordance = 69, + Concordance1 = 70, + BeyondTime = 71, + BeyondTime1 = 72, + BeyondTime2 = 73, + DemonicInfinity = 74, + DemonicInfinity1 = 75, + DemonicInfinity2 = 76, + DimensionalDisruption = 77, + DimensionalDisruption1 = 78, + DimensionalDisruption2 = 79, + Revelstorms = 80, + Revelstorms1 = 81, + EternalBliss = 82, + EternalBliss1 = 83, + Wyrmstorms = 84, + Wyrmstorms1 = 85, + Revelstorms2 = 86, + Quicklevin = 87, + Thunder3 = 88, + DimensionalDisruption3 = 89, + FairSkies9 = 90, + ClearSkies1 = 91, + WhiteCyclones = 92, + WhiteCyclones1 = 93, + WhiteCyclones2 = 94, + Ultimania = 95, + WhiteCyclones3 = 96, + Moonlight = 97, + Moonlight1 = 98, + Moonlight2 = 99, + Moonlight3 = 100, + RedMoon = 101, + Scarlet = 102, + Scarlet1 = 103, + Scarlet2 = 104, + FairSkies10 = 105, + FairSkies11 = 106, + FairSkies12 = 107, + FairSkies13 = 108, + Flames = 109, + Tsunamis = 110, + Cyclones = 111, + Geostorms = 112, + TrueBlue = 113, + TrueBlue1 = 114, + TrueBlue2 = 115, + UmbralTurbulence = 116, + TrueBlue3 = 117, + EverlastingLight = 118, + Gales2 = 119, + Termination = 120, + Termination1 = 121, + Dreams = 122, + Dreams1 = 123, + Dreams2 = 124, + Brilliance = 125, + Brilliance1 = 126, + Termination2 = 127, + Termination3 = 128, + EverlastingLight1 = 129, + Eruptions1 = 130, + Termination4 = 131, + FairSkies14 = 132, + UmbralFlare = 133, + UmbralDuststorm = 134, + UmbralLevin = 135, + UmbralTempest = 136, + Starshower = 137, + Delirium = 138, + Clouds2 = 139, + Clouds3 = 140, + Irradiance1 = 141, + Irradiance2 = 142, + StormClouds1 = 143, + Firestorm = 144, + SpectralCurrent = 145, + //1 = 146, + Climactic = 147, + MoonDust = 148, + AstromagneticStorm = 149, + Apocalypse = 150, + Polarization = 151, + Polarization1 = 152, + Polarization2 = 153, + Polarization3 = 154, + Polarization4 = 155, + Projection = 156, + Pandaemonium = 157, + Pandaemonium1 = 158, + Pandaemonium2 = 159, + Ultimatum = 160, + Inevitability = 161, + Transcendence = 162, + Transcendence1 = 163, + Transcendence2 = 164, + Transcendence3 = 165, + Transcendence4 = 166, + Transcendence5 = 167, + Transcendence6 = 168, + Transcendence7 = 169, + Dragonstorms2 = 170, + Vacuity = 171, + Vacuity1 = 172, + Vacuity2 = 173, + DimensionalDisruption4 = 174, + DimensionalDisruption5 = 175, + DimensionalDisruption6 = 176, + Pandaemonium3 = 177, + Pandaemonium4 = 178, +}; - /////////////////////////////////////////////////////////// - //HousingAppeal.exd - enum class HousingAppeal : uint8_t - { - None = 0, - Emporium = 1, - Boutique = 2, - DesignerHome = 3, - MessageBook = 4, - Tavern = 5, - Eatery = 6, - ImmersiveExperience = 7, - Cafe = 8, - Aquarium = 9, - Sanctum = 10, - Venue = 11, - Florist = 12, - // = 13, - Library = 14, - PhotoStudio = 15, - HauntedHouse = 16, - Atelier = 17, - Bathhouse = 18, - Garden = 19, - FarEastern = 20, - VisitorsWelcome = 21, - Bakery = 22, - UnderRenovation = 23, - ConcertHall = 24, - }; +/////////////////////////////////////////////////////////// +//HousingAppeal.exd +enum class HousingAppeal: uint8_t +{ + None = 0, + Emporium = 1, + Boutique = 2, + DesignerHome = 3, + MessageBook = 4, + Tavern = 5, + Eatery = 6, + ImmersiveExperience = 7, + Cafe = 8, + Aquarium = 9, + Sanctum = 10, + Venue = 11, + Florist = 12, + //= 13, + Library = 14, + PhotoStudio = 15, + HauntedHouse = 16, + Atelier = 17, + Bathhouse = 18, + Garden = 19, + FarEastern = 20, + VisitorsWelcome = 21, + Bakery = 22, + UnderRenovation = 23, + ConcertHall = 24, +}; } #endif \ No newline at end of file diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index 2ca01869..c4249c1c 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -557,17 +557,17 @@ Sapphire::Data::AOZContent::AOZContent( uint32_t row_id, Sapphire::Data::ExdData act1FightType = exdData->getField< uint8_t >( row, 2 ); act1 = exdData->getField< uint16_t >( row, 3 ); arenaType1 = exdData->getField< uint8_t >( row, 4 ); - act2FightType = exdData->getField< uint8_t >( row, 5 ); - act2 = exdData->getField< uint16_t >( row, 6 ); - arenaType2 = exdData->getField< uint8_t >( row, 7 ); - act3FightType = exdData->getField< uint8_t >( row, 8 ); - act3 = exdData->getField< uint16_t >( row, 9 ); - arenaType3 = exdData->getField< uint8_t >( row, 10 ); - contentEntry = exdData->getField< uint32_t >( row, 11 ); - order = exdData->getField< uint8_t >( row, 12 ); - gilReward = exdData->getField< uint16_t >( row, 13 ); - alliedSealsReward = exdData->getField< uint16_t >( row, 14 ); - tomestonesReward = exdData->getField< uint16_t >( row, 15 ); + act2FightType = exdData->getField< uint8_t >( row, 6 ); + act2 = exdData->getField< uint16_t >( row, 7 ); + arenaType2 = exdData->getField< uint8_t >( row, 8 ); + act3FightType = exdData->getField< uint8_t >( row, 10 ); + act3 = exdData->getField< uint16_t >( row, 11 ); + arenaType3 = exdData->getField< uint8_t >( row, 12 ); + contentEntry = exdData->getField< uint32_t >( row, 14 ); + order = exdData->getField< uint8_t >( row, 15 ); + gilReward = exdData->getField< uint16_t >( row, 16 ); + alliedSealsReward = exdData->getField< uint16_t >( row, 17 ); + tomestonesReward = exdData->getField< uint16_t >( row, 18 ); } 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 ); } +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 ) { 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 ); collectablesShopItemGroup = exdData->getField< uint8_t >( row, 1 ); levelMin = exdData->getField< uint16_t >( row, 2 ); - levelMax = exdData->getField< uint16_t >( row, 3 ); - stars = exdData->getField< uint8_t >( row, 4 ); - key = exdData->getField< uint8_t >( row, 5 ); - collectablesShopRefine = exdData->getField< uint16_t >( row, 6 ); - collectablesShopRewardScrip = exdData->getField< uint16_t >( row, 7 ); + levelMax = exdData->getField< uint16_t >( row, 4 ); + stars = exdData->getField< uint8_t >( row, 5 ); + key = exdData->getField< uint8_t >( row, 6 ); + collectablesShopRefine = 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 ) @@ -2408,11 +2414,11 @@ Sapphire::Data::ContentRoulette::ContentRoulette( uint32_t row_id, Sapphire::Dat rewardTomeA = exdData->getField< uint16_t >( row, 17 ); rewardTomeB = exdData->getField< uint16_t >( row, 18 ); rewardTomeC = exdData->getField< uint16_t >( row, 19 ); - sortKey = exdData->getField< uint8_t >( row, 22 ); - contentMemberType = exdData->getField< uint8_t >( row, 24 ); - requireAllDuties = exdData->getField< bool >( row, 35 ); - contentRouletteOpenRule = exdData->getField< uint8_t >( row, 37 ); - instanceContent = exdData->getField< uint16_t >( row, 38 ); + sortKey = exdData->getField< uint8_t >( row, 23 ); + contentMemberType = exdData->getField< uint8_t >( row, 25 ); + requireAllDuties = exdData->getField< bool >( row, 36 ); + contentRouletteOpenRule = exdData->getField< uint8_t >( row, 38 ); + instanceContent = exdData->getField< uint16_t >( row, 39 ); } 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 ); } +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 ) { 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 ) ); } +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 ) { 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 ); } +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 ) { 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 ); item = exdData->getField< int32_t >( row, 1 ); gatheringItemLevel = exdData->getField< uint16_t >( row, 2 ); + oceanStars = exdData->getField< uint8_t >( row, 3 ); isHidden = exdData->getField< bool >( row, 4 ); - fishingRecordType = exdData->getField< uint8_t >( row, 6 ); - fishingSpot = exdData->getField< uint16_t >( row, 8 ); - gatheringSubCategory = exdData->getField< uint16_t >( row, 9 ); - isInLog = exdData->getField< bool >( row, 10 ); - timeRestricted = exdData->getField< bool >( row, 11 ); - weatherRestricted = exdData->getField< bool >( row, 12 ); + fishingRecordType = exdData->getField< uint8_t >( row, 5 ); + fishingSpot = exdData->getField< uint16_t >( row, 6 ); + gatheringSubCategory = exdData->getField< uint16_t >( row, 7 ); + isInLog = exdData->getField< bool >( row, 8 ); + achievementCredit = exdData->getField< uint32_t >( row, 9 ); } 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 ) ); } -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 ) { 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 ); type = exdData->getField< std::string >( row, 0 ); - typeId = exdData->getField< uint8_t >( row, 1 ); assignmentTalk = exdData->getField< uint32_t >( row, 2 ); quest.push_back( exdData->getField< uint32_t >( row, 3 ) ); 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 ) @@ -6334,8 +6353,8 @@ Sapphire::Data::IKDRoute::IKDRoute( uint32_t row_id, Sapphire::Data::ExdDataGene { auto row = exdData->m_IKDRouteDat.get_row( row_id ); image = exdData->getField< uint32_t >( row, 6 ); - territoryType = exdData->getField< uint32_t >( row, 7 ); - name = exdData->getField< std::string >( row, 8 ); + territoryType = exdData->getField< uint32_t >( row, 9 ); + name = exdData->getField< std::string >( row, 11 ); } 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 ); subStatCategory = exdData->getField< uint8_t >( row, 89 ); 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 ) @@ -7041,6 +7055,11 @@ Sapphire::Data::MainCommandCategory::MainCommandCategory( uint32_t row_id, Sapph 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 ) { 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 ); 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 ) @@ -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, 8 ) ); item.push_back( exdData->getField< int32_t >( row, 9 ) ); - baseParam = exdData->getField< uint8_t >( row, 10 ); - 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 ) ); + baseParam = exdData->getField< uint8_t >( row, 16 ); value.push_back( exdData->getField< int16_t >( row, 17 ) ); value.push_back( exdData->getField< int16_t >( row, 18 ) ); value.push_back( exdData->getField< int16_t >( row, 19 ) ); value.push_back( exdData->getField< int16_t >( row, 20 ) ); + 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 ) @@ -7222,6 +7241,41 @@ Sapphire::Data::MiniGameRA::MiniGameRA( uint32_t row_id, Sapphire::Data::ExdData 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 ) { 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, 69 ) ); 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 ) @@ -7427,6 +7491,13 @@ Sapphire::Data::MJIFunction::MJIFunction( uint32_t row_id, Sapphire::Data::ExdDa 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 ) { 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 ); } +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 ) { 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 ); order = exdData->getField< int16_t >( row, 29 ); 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 ); baseMotionSpeed_Run = exdData->getField< uint8_t >( row, 33 ); 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 ) { auto row = exdData->m_OnlineStatusDat.get_row( row_id ); - list = exdData->getField< bool >( row, 0 ); - priority = exdData->getField< uint8_t >( row, 2 ); - name = exdData->getField< std::string >( row, 3 ); + list = exdData->getField< bool >( row, 1 ); + priority = exdData->getField< uint8_t >( row, 3 ); 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 ) @@ -8491,13 +8574,10 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* previousQuest.push_back( exdData->getField< uint32_t >( row, 9 ) ); previousQuest0Sequence = exdData->getField< uint8_t >( row, 10 ); 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 ); questLock.push_back( exdData->getField< uint32_t >( row, 14 ) ); questLock.push_back( exdData->getField< uint32_t >( row, 15 ) ); 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 ); grandCompany = exdData->getField< uint8_t >( row, 20 ); 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, 1497 ) ); 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 ); generalActionReward.push_back( exdData->getField< uint8_t >( row, 1501 ) ); 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 ); } +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 ) { 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 ) { 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 ); item = exdData->getField< int32_t >( row, 1 ); gatheringItemLevel = exdData->getField< uint16_t >( row, 2 ); - fishingRecordType = exdData->getField< uint8_t >( row, 5 ); - territoryType = exdData->getField< uint16_t >( row, 6 ); - isVisible = exdData->getField< bool >( row, 9 ); + fishingRecordType = exdData->getField< uint8_t >( row, 4 ); + territoryType = exdData->getField< uint16_t >( row, 5 ); + isVisible = exdData->getField< bool >( row, 7 ); } 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 ); name = exdData->getField< std::string >( row, 0 ); 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 ); classJobCategory = exdData->getField< uint8_t >( row, 5 ); 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 ); z = exdData->getField< int16_t >( row, 4 ); 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 ); rankReq = exdData->getField< uint8_t >( row, 8 ); 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 ); } +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 ) { 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 ); } -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 ); } @@ -14134,6 +14242,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) m_AOZBossDat = setupDatAccess( "AOZBoss", xiv::exd::Language::none ); m_AOZContentDat = setupDatAccess( "AOZContent", 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_AOZScoreDat = setupDatAccess( "AOZScore", xiv::exd::Language::en ); 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_CreditListTextDat = setupDatAccess( "CreditListText", 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_CutsceneDat = setupDatAccess( "Cutscene", 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_EventCustomIconTypeDat = setupDatAccess( "EventCustomIconType", 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_EventItemDat = setupDatAccess( "EventItem", xiv::exd::Language::en ); 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_FieldMarkerDat = setupDatAccess( "FieldMarker", xiv::exd::Language::en ); 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_FishingRecordTypeTransientDat = setupDatAccess( "FishingRecordTypeTransient", xiv::exd::Language::none ); 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_FittingShopItemSetDat = setupDatAccess( "FittingShopItemSet", xiv::exd::Language::en ); 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_FurnitureCatalogItemListDat = setupDatAccess( "FurnitureCatalogItemList", 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_MainCommandDat = setupDatAccess( "MainCommand", 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_MapDat = setupDatAccess( "Map", 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_McGuffinUIDataDat = setupDatAccess( "McGuffinUIData", xiv::exd::Language::en ); 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_MinionRulesDat = setupDatAccess( "MinionRules", 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_MJIFarmPastureRankDat = setupDatAccess( "MJIFarmPastureRank", 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_MJIGatheringItemDat = setupDatAccess( "MJIGatheringItem", 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_MJILivelyActorDat = setupDatAccess( "MJILivelyActor", 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_MJIRankDat = setupDatAccess( "MJIRank", 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_QuestEffectDat = setupDatAccess( "QuestEffect", 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_QuestLinkMarkerIconDat = setupDatAccess( "QuestLinkMarkerIcon", xiv::exd::Language::none ); m_QuestLinkMarkerSetDat = setupDatAccess( "QuestLinkMarkerSet", xiv::exd::Language::none ); m_QuestRedoDat = setupDatAccess( "QuestRedo", xiv::exd::Language::none ); 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_TofuObjectDat = setupDatAccess( "TofuObject", 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_TomestonesItemDat = setupDatAccess( "TomestonesItem", xiv::exd::Language::none ); m_TopicSelectDat = setupDatAccess( "TopicSelect", xiv::exd::Language::en ); diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index 32cf4767..c25f70cc 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -76,6 +76,7 @@ struct AOZArrangement; struct AOZBoss; struct AOZContent; struct AOZContentBriefingBNpc; +struct AOZContentBriefingObject; struct AOZReport; struct AOZScore; struct AquariumFish; @@ -211,6 +212,7 @@ struct CreditCast; struct CreditList; struct CreditListText; struct CustomTalk; +struct CustomTalkDefineClient; struct CustomTalkNestHandlers; struct Cutscene; struct CutSceneIncompQuest; @@ -278,6 +280,7 @@ struct EurekaSphereElementAdjust; struct EventAction; struct EventCustomIconType; struct EventIconPriority; +struct EventIconPriorityPair; struct EventIconType; struct EventItem; struct EventItemCastTimeline; @@ -312,6 +315,7 @@ struct FCRights; struct Festival; struct FieldMarker; struct FishingBaitParameter; +struct FishingNoteInfo; struct FishingRecordType; struct FishingRecordTypeTransient; struct FishingSpot; @@ -321,7 +325,6 @@ struct FittingShopCategory; struct FittingShopCategoryItem; struct FittingShopItemSet; struct Frontline03; -struct Frontline04; struct FurnitureCatalogCategory; struct FurnitureCatalogItemList; struct GameRewardObtainType; @@ -489,6 +492,7 @@ struct MacroIcon; struct MacroIconRedirectOld; struct MainCommand; struct MainCommandCategory; +struct MandervilleWeaponEnhance; struct ManeuversArmor; struct Map; struct MapCondition; @@ -508,6 +512,13 @@ struct MateriaTomestoneRate; struct McGuffin; struct McGuffinUIData; struct MiniGameRA; +struct MiniGameTurnBreakAction; +struct MiniGameTurnBreakConst; +struct MiniGameTurnBreakEnemy; +struct MiniGameTurnBreakPop; +struct MiniGameTurnBreakPopOffset; +struct MiniGameTurnBreakStage; +struct MiniGameTurnBreakStatus; struct MinionRace; struct MinionRules; struct MinionSkillType; @@ -526,6 +537,7 @@ struct MJIDisposalShopItem; struct MJIDisposalShopUICategory; struct MJIFarmPastureRank; struct MJIFunction; +struct MJIGardenscaping; struct MJIGathering; struct MJIGatheringItem; struct MJIGatheringObject; @@ -538,6 +550,7 @@ struct MJILandmark; struct MJILandmarkPlace; struct MJILivelyActor; struct MJIMinionPopAreas; +struct MJIName; struct MJIProgress; struct MJIRank; struct MJIRecipe; @@ -639,7 +652,9 @@ struct QuestDefineClient; struct QuestDerivedClass; struct QuestEffect; struct QuestEffectDefine; +struct QuestEventAreaEntranceInfo; struct QuestLinkMarker; +struct QuestLinkMarkerIcon; struct QuestLinkMarkerSet; struct QuestRedo; struct QuestRedoChapterUI; @@ -735,6 +750,9 @@ struct Title; struct TofuEditParam; struct TofuObject; struct TofuObjectCategory; +struct TofuPreset; +struct TofuPresetCategory; +struct TofuPresetObject; struct Tomestones; struct TomestonesItem; struct TopicSelect; @@ -1397,6 +1415,13 @@ struct AOZContentBriefingBNpc 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 { uint8_t reward; @@ -3040,6 +3065,12 @@ struct CustomTalk 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 { uint32_t nestHandler; @@ -3750,6 +3781,13 @@ struct EventIconPriority 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 { uint32_t npcIconAvailable; @@ -4082,6 +4120,19 @@ struct FishingBaitParameter 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 { int32_t addon; @@ -4127,13 +4178,13 @@ struct FishParameter std::string text; int32_t item; uint16_t gatheringItemLevel; + uint8_t oceanStars; bool isHidden; uint8_t fishingRecordType; uint16_t fishingSpot; uint16_t gatheringSubCategory; bool isInLog; - bool timeRestricted; - bool weatherRestricted; + uint32_t achievementCredit; FishParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -4172,15 +4223,6 @@ struct Frontline03 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 { std::string category; @@ -5890,6 +5932,12 @@ struct MainCommandCategory MainCommandCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; +struct MandervilleWeaponEnhance +{ + + MandervilleWeaponEnhance( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); +}; + struct ManeuversArmor { std::vector< uint32_t > bNpcBase; @@ -6055,6 +6103,48 @@ struct MiniGameRA 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 { std::string name; @@ -6198,6 +6288,14 @@ struct MJIFunction 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 { uint8_t gatheringObject; @@ -6305,6 +6403,19 @@ struct MJIMinionPopAreas 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 { std::string vision; @@ -6532,7 +6643,7 @@ struct Mount int32_t equipFoot; int16_t order; uint16_t icon; - uint8_t uIPriority; + uint16_t uIPriority; uint8_t radiusRate; uint8_t baseMotionSpeed_Run; uint8_t baseMotionSpeed_Walk; @@ -6830,8 +6941,8 @@ struct OnlineStatus { bool list; uint8_t priority; - std::string name; uint32_t icon; + std::string name; OnlineStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; @@ -7332,7 +7443,7 @@ struct Quest std::vector< uint8_t > optionalItemCountReward; std::vector< bool > optionalItemIsHQReward; std::vector< uint8_t > optionalItemStainReward; - uint8_t emoteReward; + uint16_t emoteReward; uint16_t actionReward; std::vector< uint8_t > generalActionReward; uint16_t systemReward0; @@ -7433,12 +7544,27 @@ struct QuestEffectDefine 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 { 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 { @@ -8186,7 +8312,7 @@ struct Status { std::string name; std::string description; - uint16_t icon; + uint32_t icon; uint8_t maxStacks; uint8_t classJobCategory; uint8_t statusCategory; @@ -8266,7 +8392,7 @@ struct SubmarineExploration int16_t y; int16_t z; uint8_t map; - bool passengers; + bool startingPoint; uint8_t stars; uint8_t rankReq; uint8_t ceruleumTankReq; @@ -8428,6 +8554,24 @@ struct TofuObjectCategory 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 { uint16_t weeklyLimit; @@ -8770,7 +8914,7 @@ struct VVDVariantAction { 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 @@ -9088,6 +9232,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_AOZBossDat; xiv::exd::Exd m_AOZContentDat; xiv::exd::Exd m_AOZContentBriefingBNpcDat; + xiv::exd::Exd m_AOZContentBriefingObjectDat; xiv::exd::Exd m_AOZReportDat; xiv::exd::Exd m_AOZScoreDat; xiv::exd::Exd m_AquariumFishDat; @@ -9223,6 +9368,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_CreditListDat; xiv::exd::Exd m_CreditListTextDat; xiv::exd::Exd m_CustomTalkDat; + xiv::exd::Exd m_CustomTalkDefineClientDat; xiv::exd::Exd m_CustomTalkNestHandlersDat; xiv::exd::Exd m_CutsceneDat; xiv::exd::Exd m_CutSceneIncompQuestDat; @@ -9290,6 +9436,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_EventActionDat; xiv::exd::Exd m_EventCustomIconTypeDat; xiv::exd::Exd m_EventIconPriorityDat; + xiv::exd::Exd m_EventIconPriorityPairDat; xiv::exd::Exd m_EventIconTypeDat; xiv::exd::Exd m_EventItemDat; xiv::exd::Exd m_EventItemCastTimelineDat; @@ -9324,6 +9471,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_FestivalDat; xiv::exd::Exd m_FieldMarkerDat; xiv::exd::Exd m_FishingBaitParameterDat; + xiv::exd::Exd m_FishingNoteInfoDat; xiv::exd::Exd m_FishingRecordTypeDat; xiv::exd::Exd m_FishingRecordTypeTransientDat; xiv::exd::Exd m_FishingSpotDat; @@ -9333,7 +9481,6 @@ struct ZoneSharedGroup xiv::exd::Exd m_FittingShopCategoryItemDat; xiv::exd::Exd m_FittingShopItemSetDat; xiv::exd::Exd m_Frontline03Dat; - xiv::exd::Exd m_Frontline04Dat; xiv::exd::Exd m_FurnitureCatalogCategoryDat; xiv::exd::Exd m_FurnitureCatalogItemListDat; xiv::exd::Exd m_GameRewardObtainTypeDat; @@ -9501,6 +9648,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_MacroIconRedirectOldDat; xiv::exd::Exd m_MainCommandDat; xiv::exd::Exd m_MainCommandCategoryDat; + xiv::exd::Exd m_MandervilleWeaponEnhanceDat; xiv::exd::Exd m_ManeuversArmorDat; xiv::exd::Exd m_MapDat; xiv::exd::Exd m_MapConditionDat; @@ -9520,6 +9668,13 @@ struct ZoneSharedGroup xiv::exd::Exd m_McGuffinDat; xiv::exd::Exd m_McGuffinUIDataDat; 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_MinionRulesDat; xiv::exd::Exd m_MinionSkillTypeDat; @@ -9538,6 +9693,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_MJIDisposalShopUICategoryDat; xiv::exd::Exd m_MJIFarmPastureRankDat; xiv::exd::Exd m_MJIFunctionDat; + xiv::exd::Exd m_MJIGardenscapingDat; xiv::exd::Exd m_MJIGatheringDat; xiv::exd::Exd m_MJIGatheringItemDat; xiv::exd::Exd m_MJIGatheringObjectDat; @@ -9550,6 +9706,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_MJILandmarkPlaceDat; xiv::exd::Exd m_MJILivelyActorDat; xiv::exd::Exd m_MJIMinionPopAreasDat; + xiv::exd::Exd m_MJINameDat; xiv::exd::Exd m_MJIProgressDat; xiv::exd::Exd m_MJIRankDat; xiv::exd::Exd m_MJIRecipeDat; @@ -9651,7 +9808,9 @@ struct ZoneSharedGroup xiv::exd::Exd m_QuestDerivedClassDat; xiv::exd::Exd m_QuestEffectDat; xiv::exd::Exd m_QuestEffectDefineDat; + xiv::exd::Exd m_QuestEventAreaEntranceInfoDat; xiv::exd::Exd m_QuestLinkMarkerDat; + xiv::exd::Exd m_QuestLinkMarkerIconDat; xiv::exd::Exd m_QuestLinkMarkerSetDat; xiv::exd::Exd m_QuestRedoDat; xiv::exd::Exd m_QuestRedoChapterUIDat; @@ -9747,6 +9906,9 @@ struct ZoneSharedGroup xiv::exd::Exd m_TofuEditParamDat; xiv::exd::Exd m_TofuObjectDat; 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_TomestonesItemDat; xiv::exd::Exd m_TopicSelectDat; @@ -9861,6 +10023,7 @@ struct ZoneSharedGroup using AOZBossPtr = std::shared_ptr< AOZBoss >; using AOZContentPtr = std::shared_ptr< AOZContent >; using AOZContentBriefingBNpcPtr = std::shared_ptr< AOZContentBriefingBNpc >; + using AOZContentBriefingObjectPtr = std::shared_ptr< AOZContentBriefingObject >; using AOZReportPtr = std::shared_ptr< AOZReport >; using AOZScorePtr = std::shared_ptr< AOZScore >; using AquariumFishPtr = std::shared_ptr< AquariumFish >; @@ -9996,6 +10159,7 @@ struct ZoneSharedGroup using CreditListPtr = std::shared_ptr< CreditList >; using CreditListTextPtr = std::shared_ptr< CreditListText >; using CustomTalkPtr = std::shared_ptr< CustomTalk >; + using CustomTalkDefineClientPtr = std::shared_ptr< CustomTalkDefineClient >; using CustomTalkNestHandlersPtr = std::shared_ptr< CustomTalkNestHandlers >; using CutscenePtr = std::shared_ptr< Cutscene >; using CutSceneIncompQuestPtr = std::shared_ptr< CutSceneIncompQuest >; @@ -10063,6 +10227,7 @@ struct ZoneSharedGroup using EventActionPtr = std::shared_ptr< EventAction >; using EventCustomIconTypePtr = std::shared_ptr< EventCustomIconType >; using EventIconPriorityPtr = std::shared_ptr< EventIconPriority >; + using EventIconPriorityPairPtr = std::shared_ptr< EventIconPriorityPair >; using EventIconTypePtr = std::shared_ptr< EventIconType >; using EventItemPtr = std::shared_ptr< EventItem >; using EventItemCastTimelinePtr = std::shared_ptr< EventItemCastTimeline >; @@ -10097,6 +10262,7 @@ struct ZoneSharedGroup using FestivalPtr = std::shared_ptr< Festival >; using FieldMarkerPtr = std::shared_ptr< FieldMarker >; using FishingBaitParameterPtr = std::shared_ptr< FishingBaitParameter >; + using FishingNoteInfoPtr = std::shared_ptr< FishingNoteInfo >; using FishingRecordTypePtr = std::shared_ptr< FishingRecordType >; using FishingRecordTypeTransientPtr = std::shared_ptr< FishingRecordTypeTransient >; using FishingSpotPtr = std::shared_ptr< FishingSpot >; @@ -10106,7 +10272,6 @@ struct ZoneSharedGroup using FittingShopCategoryItemPtr = std::shared_ptr< FittingShopCategoryItem >; using FittingShopItemSetPtr = std::shared_ptr< FittingShopItemSet >; using Frontline03Ptr = std::shared_ptr< Frontline03 >; - using Frontline04Ptr = std::shared_ptr< Frontline04 >; using FurnitureCatalogCategoryPtr = std::shared_ptr< FurnitureCatalogCategory >; using FurnitureCatalogItemListPtr = std::shared_ptr< FurnitureCatalogItemList >; using GameRewardObtainTypePtr = std::shared_ptr< GameRewardObtainType >; @@ -10274,6 +10439,7 @@ struct ZoneSharedGroup using MacroIconRedirectOldPtr = std::shared_ptr< MacroIconRedirectOld >; using MainCommandPtr = std::shared_ptr< MainCommand >; using MainCommandCategoryPtr = std::shared_ptr< MainCommandCategory >; + using MandervilleWeaponEnhancePtr = std::shared_ptr< MandervilleWeaponEnhance >; using ManeuversArmorPtr = std::shared_ptr< ManeuversArmor >; using MapPtr = std::shared_ptr< Map >; using MapConditionPtr = std::shared_ptr< MapCondition >; @@ -10293,6 +10459,13 @@ struct ZoneSharedGroup using McGuffinPtr = std::shared_ptr< McGuffin >; using McGuffinUIDataPtr = std::shared_ptr< McGuffinUIData >; 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 MinionRulesPtr = std::shared_ptr< MinionRules >; using MinionSkillTypePtr = std::shared_ptr< MinionSkillType >; @@ -10311,6 +10484,7 @@ struct ZoneSharedGroup using MJIDisposalShopUICategoryPtr = std::shared_ptr< MJIDisposalShopUICategory >; using MJIFarmPastureRankPtr = std::shared_ptr< MJIFarmPastureRank >; using MJIFunctionPtr = std::shared_ptr< MJIFunction >; + using MJIGardenscapingPtr = std::shared_ptr< MJIGardenscaping >; using MJIGatheringPtr = std::shared_ptr< MJIGathering >; using MJIGatheringItemPtr = std::shared_ptr< MJIGatheringItem >; using MJIGatheringObjectPtr = std::shared_ptr< MJIGatheringObject >; @@ -10323,6 +10497,7 @@ struct ZoneSharedGroup using MJILandmarkPlacePtr = std::shared_ptr< MJILandmarkPlace >; using MJILivelyActorPtr = std::shared_ptr< MJILivelyActor >; using MJIMinionPopAreasPtr = std::shared_ptr< MJIMinionPopAreas >; + using MJINamePtr = std::shared_ptr< MJIName >; using MJIProgressPtr = std::shared_ptr< MJIProgress >; using MJIRankPtr = std::shared_ptr< MJIRank >; using MJIRecipePtr = std::shared_ptr< MJIRecipe >; @@ -10424,7 +10599,9 @@ struct ZoneSharedGroup using QuestDerivedClassPtr = std::shared_ptr< QuestDerivedClass >; using QuestEffectPtr = std::shared_ptr< QuestEffect >; using QuestEffectDefinePtr = std::shared_ptr< QuestEffectDefine >; + using QuestEventAreaEntranceInfoPtr = std::shared_ptr< QuestEventAreaEntranceInfo >; using QuestLinkMarkerPtr = std::shared_ptr< QuestLinkMarker >; + using QuestLinkMarkerIconPtr = std::shared_ptr< QuestLinkMarkerIcon >; using QuestLinkMarkerSetPtr = std::shared_ptr< QuestLinkMarkerSet >; using QuestRedoPtr = std::shared_ptr< QuestRedo >; using QuestRedoChapterUIPtr = std::shared_ptr< QuestRedoChapterUI >; @@ -10520,6 +10697,9 @@ struct ZoneSharedGroup using TofuEditParamPtr = std::shared_ptr< TofuEditParam >; using TofuObjectPtr = std::shared_ptr< TofuObject >; 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 TomestonesItemPtr = std::shared_ptr< TomestonesItem >; using TopicSelectPtr = std::shared_ptr< TopicSelect >; @@ -10634,6 +10814,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_AOZBossIdList; std::set< uint32_t > m_AOZContentIdList; std::set< uint32_t > m_AOZContentBriefingBNpcIdList; + std::set< uint32_t > m_AOZContentBriefingObjectIdList; std::set< uint32_t > m_AOZReportIdList; std::set< uint32_t > m_AOZScoreIdList; std::set< uint32_t > m_AquariumFishIdList; @@ -10769,6 +10950,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_CreditListIdList; std::set< uint32_t > m_CreditListTextIdList; std::set< uint32_t > m_CustomTalkIdList; + std::set< uint32_t > m_CustomTalkDefineClientIdList; std::set< uint32_t > m_CustomTalkNestHandlersIdList; std::set< uint32_t > m_CutsceneIdList; std::set< uint32_t > m_CutSceneIncompQuestIdList; @@ -10836,6 +11018,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_EventActionIdList; std::set< uint32_t > m_EventCustomIconTypeIdList; std::set< uint32_t > m_EventIconPriorityIdList; + std::set< uint32_t > m_EventIconPriorityPairIdList; std::set< uint32_t > m_EventIconTypeIdList; std::set< uint32_t > m_EventItemIdList; std::set< uint32_t > m_EventItemCastTimelineIdList; @@ -10870,6 +11053,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_FestivalIdList; std::set< uint32_t > m_FieldMarkerIdList; std::set< uint32_t > m_FishingBaitParameterIdList; + std::set< uint32_t > m_FishingNoteInfoIdList; std::set< uint32_t > m_FishingRecordTypeIdList; std::set< uint32_t > m_FishingRecordTypeTransientIdList; std::set< uint32_t > m_FishingSpotIdList; @@ -10879,7 +11063,6 @@ struct ZoneSharedGroup std::set< uint32_t > m_FittingShopCategoryItemIdList; std::set< uint32_t > m_FittingShopItemSetIdList; std::set< uint32_t > m_Frontline03IdList; - std::set< uint32_t > m_Frontline04IdList; std::set< uint32_t > m_FurnitureCatalogCategoryIdList; std::set< uint32_t > m_FurnitureCatalogItemListIdList; std::set< uint32_t > m_GameRewardObtainTypeIdList; @@ -11047,6 +11230,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_MacroIconRedirectOldIdList; std::set< uint32_t > m_MainCommandIdList; std::set< uint32_t > m_MainCommandCategoryIdList; + std::set< uint32_t > m_MandervilleWeaponEnhanceIdList; std::set< uint32_t > m_ManeuversArmorIdList; std::set< uint32_t > m_MapIdList; std::set< uint32_t > m_MapConditionIdList; @@ -11066,6 +11250,13 @@ struct ZoneSharedGroup std::set< uint32_t > m_McGuffinIdList; std::set< uint32_t > m_McGuffinUIDataIdList; 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_MinionRulesIdList; std::set< uint32_t > m_MinionSkillTypeIdList; @@ -11084,6 +11275,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_MJIDisposalShopUICategoryIdList; std::set< uint32_t > m_MJIFarmPastureRankIdList; std::set< uint32_t > m_MJIFunctionIdList; + std::set< uint32_t > m_MJIGardenscapingIdList; std::set< uint32_t > m_MJIGatheringIdList; std::set< uint32_t > m_MJIGatheringItemIdList; std::set< uint32_t > m_MJIGatheringObjectIdList; @@ -11096,6 +11288,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_MJILandmarkPlaceIdList; std::set< uint32_t > m_MJILivelyActorIdList; std::set< uint32_t > m_MJIMinionPopAreasIdList; + std::set< uint32_t > m_MJINameIdList; std::set< uint32_t > m_MJIProgressIdList; std::set< uint32_t > m_MJIRankIdList; std::set< uint32_t > m_MJIRecipeIdList; @@ -11197,7 +11390,9 @@ struct ZoneSharedGroup std::set< uint32_t > m_QuestDerivedClassIdList; std::set< uint32_t > m_QuestEffectIdList; std::set< uint32_t > m_QuestEffectDefineIdList; + std::set< uint32_t > m_QuestEventAreaEntranceInfoIdList; std::set< uint32_t > m_QuestLinkMarkerIdList; + std::set< uint32_t > m_QuestLinkMarkerIconIdList; std::set< uint32_t > m_QuestLinkMarkerSetIdList; std::set< uint32_t > m_QuestRedoIdList; std::set< uint32_t > m_QuestRedoChapterUIIdList; @@ -11293,6 +11488,9 @@ struct ZoneSharedGroup std::set< uint32_t > m_TofuEditParamIdList; std::set< uint32_t > m_TofuObjectIdList; 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_TomestonesItemIdList; std::set< uint32_t > m_TopicSelectIdList; @@ -11677,6 +11875,12 @@ const std::set< uint32_t >& getAOZContentBriefingBNpcIdList() loadIdList( m_AOZContentBriefingBNpcDat, 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() { if( m_AOZReportIdList.size() == 0 ) @@ -12487,6 +12691,12 @@ const std::set< uint32_t >& getCustomTalkIdList() loadIdList( m_CustomTalkDat, 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() { if( m_CustomTalkNestHandlersIdList.size() == 0 ) @@ -12889,6 +13099,12 @@ const std::set< uint32_t >& getEventIconPriorityIdList() loadIdList( m_EventIconPriorityDat, 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() { if( m_EventIconTypeIdList.size() == 0 ) @@ -13093,6 +13309,12 @@ const std::set< uint32_t >& getFishingBaitParameterIdList() loadIdList( m_FishingBaitParameterDat, 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() { if( m_FishingRecordTypeIdList.size() == 0 ) @@ -13147,12 +13369,6 @@ const std::set< uint32_t >& getFrontline03IdList() loadIdList( m_Frontline03Dat, 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() { if( m_FurnitureCatalogCategoryIdList.size() == 0 ) @@ -14155,6 +14371,12 @@ const std::set< uint32_t >& getMainCommandCategoryIdList() loadIdList( m_MainCommandCategoryDat, 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() { if( m_ManeuversArmorIdList.size() == 0 ) @@ -14269,6 +14491,48 @@ const std::set< uint32_t >& getMiniGameRAIdList() loadIdList( m_MiniGameRADat, 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() { if( m_MinionRaceIdList.size() == 0 ) @@ -14377,6 +14641,12 @@ const std::set< uint32_t >& getMJIFunctionIdList() loadIdList( m_MJIFunctionDat, 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() { if( m_MJIGatheringIdList.size() == 0 ) @@ -14449,6 +14719,12 @@ const std::set< uint32_t >& getMJIMinionPopAreasIdList() loadIdList( m_MJIMinionPopAreasDat, 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() { if( m_MJIProgressIdList.size() == 0 ) @@ -15055,12 +15331,24 @@ const std::set< uint32_t >& getQuestEffectDefineIdList() loadIdList( m_QuestEffectDefineDat, 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() { if( m_QuestLinkMarkerIdList.size() == 0 ) loadIdList( m_QuestLinkMarkerDat, 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() { if( m_QuestLinkMarkerSetIdList.size() == 0 ) @@ -15631,6 +15919,24 @@ const std::set< uint32_t >& getTofuObjectCategoryIdList() loadIdList( m_TofuObjectCategoryDat, 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() { if( m_TomestonesIdList.size() == 0 ) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index dce3f514..5a6ef6f7 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -3,468 +3,466 @@ #include -namespace Sapphire::Network::Packets +namespace Sapphire::Network::Packets { + +//////////////////////////////////////////////////////////////////////////////// +/// Lobby Connection IPC Codes +/** + * Server IPC Lobby Type Codes. + */ +enum ServerLobbyIpcType : + uint16_t { + LobbyError = 0x0002, + LobbyServiceAccountList = 0x000C, + LobbyCharList = 0x000D, + LobbyCharCreate = 0x000E, + LobbyEnterWorld = 0x000F, + LobbyServerList = 0x0015, + LobbyRetainerList = 0x0017, - //////////////////////////////////////////////////////////////////////////////// - /// Lobby Connection IPC Codes - /** - * Server IPC Lobby Type Codes. +}; + +/** + * Client IPC Lobby Type Codes. + */ +enum ClientLobbyIpcType : + uint16_t +{ + ReqCharList = 0x0003, ReqEnterWorld = 0x0004, ClientVersionInfo = 0x0005, + + ReqCharDelete = 0x000A, ReqCharCreate = 0x000B, +}; + +//////////////////////////////////////////////////////////////////////////////// +/// Zone Connection IPC Codes +/** + * Server IPC Zone Type Codes. + */ +enum ServerZoneIpcType : + uint16_t +{ + Ping = 0x2c0, // updated 6.40 + Init = 0x12a, // updated 6.40 + + ActorFreeSpawn = 0x8a, // updated 6.40 + + InitZone = 0x347, // updated 6.40 + PrepareZoning = 0x17a, // updated 6.40 + + EffectResult = 0x3b4, // updated 6.40 + EffectResultBasic = 0x295, // updated 6.40 + + ActorControl = 0x381, // updated 6.40 + ActorControlTarget = 0x131, // updated 6.40 + ActorControlSelf = 0x14f, // updated 6.40 + ActorCast = 0x31c, // updated 6.40 + ActorSetPos = 0xea, // updated 6.40 + ActorMove = 0x2a9, // updated 6.40 + ActorGauge = 0x164, // updated 6.40 + + /*! + * @brief Used when resting */ - enum ServerLobbyIpcType : uint16_t - { - LobbyError = 0x0002, - LobbyServiceAccountList = 0x000C, - LobbyCharList = 0x000D, - LobbyCharCreate = 0x000E, - LobbyEnterWorld = 0x000F, - LobbyServerList = 0x0015, - LobbyRetainerList = 0x0017, - - }; - - /** - * Client IPC Lobby Type Codes. - */ - enum ClientLobbyIpcType : uint16_t - { - ReqCharList = 0x0003, - ReqEnterWorld = 0x0004, - ClientVersionInfo = 0x0005, - - ReqCharDelete = 0x000A, - ReqCharCreate = 0x000B, - }; - - //////////////////////////////////////////////////////////////////////////////// - /// Zone Connection IPC Codes - /** - * Server IPC Zone Type Codes. - */ - enum ServerZoneIpcType : uint16_t - { - Ping = 0x2c6, // updated 6.38 - Init = 0x37b, // updated 6.38 - - ActorFreeSpawn = 0x3a2, // updated 6.38 - - InitZone = 0x1fe, // updated 6.38 - PrepareZoning = 0x267, // updated 6.38 - - EffectResult = 0x3b5, // updated 6.38 - EffectResultBasic = 0x2c4, // updated 6.38 - - ActorControl = 0x2c2, // updated 6.38 - ActorControlTarget = 0x1b8, // updated 6.38 - ActorControlSelf = 0x256, // updated 6.38 - ActorCast = 0x15f, // updated 6.38 - ActorSetPos = 0x2f0, // updated 6.38 - ActorMove = 0x25b, // updated 6.38 - ActorGauge = 0x136, // updated 6.38 - - /*! - * @brief Used when resting - */ - UpdateHpMpTp = 0x268, // updated 6.38 - UpdateClassInfo = 0x2f7, // updated 6.38 - - /////////////////////////////////////////////////// - - ChatBanned = 0xF06B, - Playtime = 0xa3, // updated 6.38 - Logout = 0x146, // updated 6.38 - CFNotify = 0x38a, // updated 6.38 - CFMemberStatus = 0x0079, - CFDutyInfo = 0x21d, // updated 6.38 - CFPlayerInNeed = 0xF07F, - CFPreferredRole = 0xbb, // updated 6.38 - CFCancel = 0x227, // updated 6.38 - SocialRequestError = 0xF0AD, - - CFRegistered = 0x029F, // updated 5.58h - SocialRequestResponse = 0x397, // updated 6.38 - SocialMessage = 0x03CB, // updated 5.58h - SocialMessage2 = 0x01D7, // updated 5.58h - CancelAllianceForming = 0xF0C6, // updated 4.2 - - LogMessage = 0x30f, // updated 6.38 - - Chat = 0x1e4, // updated 6.38 - PartyChat = 0x0065, - - WorldVisitList = 0xF0FE, // added 4.5 - - SocialList = 0x219, // updated 6.38 - - ExamineSearchInfo = 0x213, // updated 6.38 - UpdateSearchInfo = 0x3dc, // updated 6.38 - InitSearchInfo = 0x1eb, // updated 6.38 - ExamineSearchComment = 0x357, // updated 6.38 - - ServerNoticeShort = 0x0333, // updated 5.58h - ServerNotice = 0x92, // updated 6.38 - SystemLogMessage = 0x1a6, // updated 6.38 - SetOnlineStatus = 0x2e9, // updated 6.38 - - CountdownInitiate = 0x3b0, // updated 6.38 - CountdownCancel = 0x194, // updated 6.38 - - PlayerAddedToBlacklist = 0x2e6, // updated 6.38 - PlayerRemovedFromBlacklist = 0x2b5, // updated 6.38 - BlackList = 0xde, // updated 6.38 - - LinkshellList = 0x241, // updated 6.38 - CrossWorldLinkshellList = 0x240, // updated 6.38 - FellowshipList = 0x26d, // updated 6.38 - - MailDeleteRequest = 0x1b7, // updated 6.38 - - // 12D - 137 - constant gap between 4.5x -> 5.0 - ReqMoogleMailList = 0xF138, // updated 5.0 - ReqMoogleMailLetter = 0xF139, // updated 5.0 - MailLetterNotification = 0x013A, // updated 5.0 - - MarketTaxRates = 0x01F8, // updated 5.35h - - MarketBoardSearchResult = 0xea, // updated 6.38 - MarketBoardItemListingCount = 0x174, // updated 6.38 - MarketBoardItemListingHistory = 0x3cd, // updated 6.38 - MarketBoardItemListing = 0x379, // updated 6.38 - MarketBoardPurchase = 0x370, // updated 6.38 - ItemMarketBoardInfo = 0x209, // updated 6.38 - - CharaFreeCompanyTag = 0x013B, // updated 4.5 - FreeCompanyBoardMsg = 0x03DB, // updated 5.58h - FreeCompanyInfo = 0x199, // updated 6.38 - FreeCompanyDialog = 0x1d6, // updated 6.38 - ExamineFreeCompanyInfo = 0x29a, // updated 6.38 - - FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 - - StatusEffectList = 0x317, // updated 6.38 - EurekaStatusEffectList = 0x23b, // updated 6.38 - BossStatusEffectList = 0xc8, // updated 6.38 - StatusEffectList2 = 0x30d, // updated 6.38 - StatusEffectList3 = 0x12b, // updated 6.38 - Effect = 0xfb, // updated 6.38 - AoeEffect8 = 0x2ef, // updated 6.38 - AoeEffect16 = 0x3c6, // updated 6.38 - AoeEffect24 = 0x97, // updated 6.38 - AoeEffect32 = 0x24b, // updated 6.38 - PersistantEffect = 0x12b, // updated 6.38 - - PlaceFieldMarker = 0x354, // updated 6.38 - PlaceFieldMarkerPreset = 0x286, // updated 6.38 - - GCAffiliation = 0x264, // updated 6.38 - - PlayerSpawn = 0x94, // updated 6.38 - NpcSpawn = 0x269, // updated 6.38 - NpcSpawn2 = 0x196, // updated 6.38 - - SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 - - PartyList = 0x186, // updated 6.38 - PartyMessage = 0x75, // updated 6.38 - HateRank = 0xe5, // updated 6.38 - HateList = 0x99, // updated 6.38 - ObjectSpawn = 0x2d1, // updated 6.38 - ObjectDespawn = 0x132, // updated 6.38 - SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything - PlayerSetup = 0x2bf, // updated 6.38 - PlayerStats = 0x2d8, // updated 6.38 - ActorOwner = 0x2bf, // updated 6.38 - PlayerStateFlags = 0x3e5, // updated 6.38 - PlayerClassInfo = 0x27b, // updated 6.38 - PlayerUpdateLook = 0x114, // updated 6.38 - CharaVisualEffect = 0x121, // updated 6.38 - - ModelEquip = 0x2e2, // updated 6.38 - Examine = 0x22f, // updated 6.38 - CharaNameReq = 0x170, // updated 6.38 - - // nb: see #565 on github - UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0 - RetainerSaleHistory = 0x1e1, // updated 6.38 - RetainerInformation = 0x260, // updated 6.38 - - SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore - - ItemInfo = 0x34d, // updated 6.38 - ContainerInfo = 0x2e4, // updated 6.38 - InventoryTransactionFinish = 0x2fc, // updated 6.38 - InventoryTransaction = 0x31b, // updated 6.38 - CurrencyCrystalInfo = 0x39a, // updated 6.38 - - InventoryActionAck = 0x2cf, // updated 6.38 - UpdateInventorySlot = 0x335, // updated 6.38 - - HuntingLogEntry = 0x2f3, // updated 6.38 - - EventPlay = 0x284, // updated 6.38 - EventPlay4 = 0xe2, // updated 6.38 - EventPlay8 = 0x2c1, // updated 6.38 - EventPlay16 = 0x7f, // updated 6.38 - EventPlay32 = 0xd3, // updated 6.38 - EventPlay64 = 0xc1, // updated 6.38 - EventPlay128 = 0x29d, // updated 6.38 - EventPlay255 = 0x326, // updated 6.38 - EventStart = 0x8b, // updated 6.38 - EventFinish = 0x362, // updated 6.38 - - EventContinue = 0x33e, // updated 6.38 - - EventLinkshell = 0x1169, - - QuestActiveList = 0xcf, // updated 6.38 - QuestUpdate = 0x17c, // updated 6.38 - QuestCompleteList = 0x2f2, // updated 6.38 - - QuestFinish = 0x25c, // updated 6.38 - MSQTrackerComplete = 0x3bb, // updated 6.38 - MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 - - QuestMessage = 0x0220, // updated 5.58h - - QuestTracker = 0xa8, // updated 6.38 - - Mount = 0x2df, // updated 6.38 - - DirectorVars = 0x1c7, // updated 6.38 - SomeDirectorUnk1 = 0x0084, // updated 5.18 - SomeDirectorUnk2 = 0xF0C1, // updated 5.18 - SomeDirectorUnk4 = 0x03DD, // updated 5.58h - SomeDirectorUnk8 = 0x028A, // updated 5.18 - SomeDirectorUnk16 = 0x028C, // updated 5.18 - DirectorPopUp = 0x03DF, // updated 5.58h - DirectorPopUp4 = 0x019B, // updated 5.58h - DirectorPopUp8 = 0x0271, // updated 5.58h - - CFAvailableContents = 0xF1FD, // updated 4.2 - - WeatherChange = 0x17a, // updated 6.38 - PlayerTitleList = 0x2b3, // updated 6.38 - Discovery = 0x1f7, // updated 6.38 - - EorzeaTimeOffset = 0x2bc, // updated 6.38 - - EquipDisplayFlags = 0x248, // updated 6.38 - - MiniCactpotInit = 0x0286, // added 5.31 - ShopMessage = 0x0287, // updated 5.58h - LootMessage = 0x65, // updated 6.38 - ResultDialog = 0x113, // updated 6.38 - DesynthResult = 0x308, // updated 6.38 - - /// Housing ////////////////////////////////////// - - LandSetInitialize = 0xd4, // updated 6.38 - LandUpdate = 0x151, // updated 6.38 - LandAvailability = 0x81, // updated 6.38 - YardObjectSpawn = 0x3b9, // updated 6.38 - HousingIndoorInitialize = 0x271, // updated 6.38 - LandPriceUpdate = 0x215, // updated 6.38 - LandInfoSign = 0xa9, // updated 6.38 - LandRename = 0x22c, // updated 6.38 - HousingEstateGreeting = 0xa7, // updated 6.38 - HousingUpdateLandFlagsSlot = 0x177, // updated 6.38 - HousingLandFlags = 0x3ba, // updated 6.38 - HousingShowEstateGuestAccess = 0x2ec, // updated 6.38 - - HousingObjectInitialize = 0xc7, // updated 6.38 - HousingInternalObjectSpawn = 0x1d3, // updated 6.38 - - HousingWardInfo = 0x28e, // updated 6.38 - HousingObjectMove = 0x282, // updated 6.38 - HousingObjectDye = 0x3ce, // updated 6.38 - - SharedEstateSettingsResponse = 0x3a0, // updated 6.38 - - LandUpdateHouseName = 0x1a7, // updated 6.38 - LandSetMap = 0x1b0, // updated 6.38 - - CeremonySetActorAppearance = 0x1a9, // updated 6.38 - - ////////////////////////////////////////////////// + UpdateHpMpTp = 0x21a, // updated 6.40 + UpdateClassInfo = 0x380, // updated 6.40 + + /////////////////////////////////////////////////// + + ChatBanned = 0xF06B, Playtime = 0x181, // updated 6.40 + Logout = 0x18a, // updated 6.40 + CFNotify = 0x3e0, // updated 6.40 + CFMemberStatus = 0x0079, CFDutyInfo = 0xe0, // updated 6.40 + CFPlayerInNeed = 0xF07F, CFPreferredRole = 0x221, // updated 6.40 + CFCancel = 0x77, // updated 6.40 + SocialRequestError = 0xF0AD, + + CFRegistered = 0x029F, // updated 5.58h + SocialRequestResponse = 0x323, // updated 6.40 + SocialMessage = 0x03CB, // updated 5.58h + SocialMessage2 = 0x01D7, // updated 5.58h + CancelAllianceForming = 0xF0C6, // updated 4.2 + + LogMessage = 0x113, // updated 6.40 + + Chat = 0x335, // updated 6.40 + PartyChat = 0x0065, + + WorldVisitList = 0xF0FE, // added 4.5 + + SocialList = 0x281, // updated 6.40 + + ExamineSearchInfo = 0x2b0, // updated 6.40 + UpdateSearchInfo = 0x339, // updated 6.40 + InitSearchInfo = 0x37f, // updated 6.40 + ExamineSearchComment = 0x314, // updated 6.40 + + ServerNoticeShort = 0x0333, // updated 5.58h + ServerNotice = 0x273, // updated 6.40 + SystemLogMessage = 0x19b, // updated 6.40 + SetOnlineStatus = 0xb1, // updated 6.40 + + CountdownInitiate = 0x292, // updated 6.40 + CountdownCancel = 0x2ba, // updated 6.40 + + PlayerAddedToBlacklist = 0x3be, // updated 6.40 + PlayerRemovedFromBlacklist = 0x8b, // updated 6.40 + BlackList = 0x2ad, // updated 6.40 + + LinkshellList = 0x287, // updated 6.40 + CrossWorldLinkshellList = 0x358, // updated 6.40 + FellowshipList = 0x238, // updated 6.40 + + MailDeleteRequest = 0x2e3, // updated 6.40 + + // 12D - 137 - constant gap between 4.5x -> 5.0 + ReqMoogleMailList = 0xF138, // updated 5.0 + ReqMoogleMailLetter = 0xF139, // updated 5.0 + MailLetterNotification = 0x013A, // updated 5.0 + + MarketTaxRates = 0x01F8, // updated 5.35h + + MarketBoardSearchResult = 0x197, // updated 6.40 + MarketBoardItemListingCount = 0x1a4, // updated 6.40 + MarketBoardItemListingHistory = 0x2b4, // updated 6.40 + MarketBoardItemListing = 0xa7, // updated 6.40 + MarketBoardPurchase = 0x120, // updated 6.40 + ItemMarketBoardInfo = 0x3c4, // updated 6.40 + + CharaFreeCompanyTag = 0x013B, // updated 4.5 + FreeCompanyBoardMsg = 0x03DB, // updated 5.58h + FreeCompanyInfo = 0x1ce, // updated 6.40 + FreeCompanyDialog = 0x2a1, // updated 6.40 + ExamineFreeCompanyInfo = 0x229, // updated 6.40 + + FreeCompanyUpdateShortMessage = 0xF157, // added 5.0 + + StatusEffectList = 0x13f, // updated 6.40 + EurekaStatusEffectList = 0x25d, // updated 6.40 + BossStatusEffectList = 0x1b0, // updated 6.40 + StatusEffectList2 = 0x149, // updated 6.40 + StatusEffectList3 = 0xe7, // updated 6.40 + Effect = 0x3c9, // updated 6.40 + AoeEffect8 = 0x21e, // updated 6.40 + AoeEffect16 = 0x34c, // updated 6.40 + AoeEffect24 = 0x379, // updated 6.40 + AoeEffect32 = 0x33f, // updated 6.40 + PersistantEffect = 0xe7, // updated 6.40 + + PlaceFieldMarker = 0xd8, // updated 6.40 + PlaceFieldMarkerPreset = 0xFFFF, // updated 6.40 + + GCAffiliation = 0x159, // updated 6.40 + + PlayerSpawn = 0x2cf, // updated 6.40 + NpcSpawn = 0x1c4, // updated 6.40 + NpcSpawn2 = 0x123, // updated 6.40 + + SomeCustomiseChangePacketProbably = 0x00CD, // added 5.18 + + PartyList = 0x110, // updated 6.40 + PartyMessage = 0x374, // updated 6.40 + HateRank = 0x22d, // updated 6.40 + HateList = 0x22e, // updated 6.40 + ObjectSpawn = 0x184, // updated 6.40 + ObjectDespawn = 0xb8, // updated 6.40 + SilentSetClassJob = 0xF18E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything + PlayerSetup = 0x218, // updated 6.40 + PlayerStats = 0x1a3, // updated 6.40 + ActorOwner = 0x218, // updated 6.40 + PlayerStateFlags = 0x37a, // updated 6.40 + PlayerClassInfo = 0xd9, // updated 6.40 + PlayerUpdateLook = 0x1a7, // updated 6.40 + CharaVisualEffect = 0x1ef, // updated 6.40 + + ModelEquip = 0x297, // updated 6.40 + Examine = 0x364, // updated 6.40 + CharaNameReq = 0xc1, // updated 6.40 + + // nb: see #565 on github + UpdateRetainerItemSalePrice = 0xF19F, // updated 5.0 + RetainerSaleHistory = 0x16d, // updated 6.40 + RetainerInformation = 0x39c, // updated 6.40 + + SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore + + ItemInfo = 0x128, // updated 6.40 + ContainerInfo = 0x122, // updated 6.40 + InventoryTransactionFinish = 0x2d9, // updated 6.40 + InventoryTransaction = 0x2e9, // updated 6.40 + CurrencyCrystalInfo = 0x2be, // updated 6.40 + + InventoryActionAck = 0x19c, // updated 6.40 + UpdateInventorySlot = 0x119, // updated 6.40 + + HuntingLogEntry = 0xec, // updated 6.40 + + EventPlay = 0xfb, // updated 6.40 + EventPlay4 = 0x307, // updated 6.40 + EventPlay8 = 0x252, // updated 6.40 + EventPlay16 = 0x214, // updated 6.40 + EventPlay32 = 0x6c, // updated 6.40 + EventPlay64 = 0x223, // updated 6.40 + EventPlay128 = 0x340, // updated 6.40 + EventPlay255 = 0x3dc, // updated 6.40 + EventStart = 0x1a2, // updated 6.40 + EventFinish = 0x2b2, // updated 6.40 + + EventContinue = 0x298, // updated 6.40 + + EventLinkshell = 0x1169, + + QuestActiveList = 0x11d, // updated 6.40 + QuestUpdate = 0x92, // updated 6.40 + QuestCompleteList = 0x36f, // updated 6.40 + + QuestFinish = 0x13a, // updated 6.40 + MSQTrackerComplete = 0x28c, // updated 6.40 + MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 + + QuestMessage = 0x0220, // updated 5.58h + + QuestTracker = 0x1b5, // updated 6.40 + + Mount = 0x3c0, // updated 6.40 + + DirectorVars = 0x27e, // updated 6.40 + SomeDirectorUnk1 = 0x0084, // updated 5.18 + SomeDirectorUnk2 = 0xF0C1, // updated 5.18 + SomeDirectorUnk4 = 0x03DD, // updated 5.58h + SomeDirectorUnk8 = 0x028A, // updated 5.18 + SomeDirectorUnk16 = 0x028C, // updated 5.18 + DirectorPopUp = 0x03DF, // updated 5.58h + DirectorPopUp4 = 0x019B, // updated 5.58h + DirectorPopUp8 = 0x0271, // updated 5.58h + + CFAvailableContents = 0xF1FD, // updated 4.2 + + WeatherChange = 0x1d2, // updated 6.40 + PlayerTitleList = 0x22f, // updated 6.40 + Discovery = 0x22c, // updated 6.40 + + EorzeaTimeOffset = 0x1b8, // updated 6.40 + + EquipDisplayFlags = 0x38c, // updated 6.40 + + MiniCactpotInit = 0x0286, // added 5.31 + ShopMessage = 0x0287, // updated 5.58h + LootMessage = 0x319, // updated 6.40 + ResultDialog = 0x1cb, // updated 6.40 + DesynthResult = 0x1ba, // updated 6.40 + + /// Housing ////////////////////////////////////// + + LandSetInitialize = 0x24d, // updated 6.40 + LandUpdate = 0x232, // updated 6.40 + LandAvailability = 0x67, // updated 6.40 + YardObjectSpawn = 0x1e3, // updated 6.40 + HousingIndoorInitialize = 0x22b, // updated 6.40 + LandPriceUpdate = 0x345, // updated 6.40 + LandInfoSign = 0x1dc, // updated 6.40 + LandRename = 0xf2, // updated 6.40 + HousingEstateGreeting = 0x3d1, // updated 6.40 + HousingUpdateLandFlagsSlot = 0x1b4, // updated 6.40 + HousingLandFlags = 0x32c, // updated 6.40 + HousingShowEstateGuestAccess = 0x36c, // updated 6.40 + + HousingObjectInitialize = 0x330, // updated 6.40 + HousingInternalObjectSpawn = 0x327, // updated 6.40 + + HousingWardInfo = 0x320, // updated 6.40 + HousingObjectMove = 0x245, // updated 6.40 + HousingObjectDye = 0x28b, // updated 6.40 + + SharedEstateSettingsResponse = 0x2d1, // updated 6.40 + + LandUpdateHouseName = 0x233, // updated 6.40 + LandSetMap = 0x34b, // updated 6.40 + + CeremonySetActorAppearance = 0x362, // updated 6.40 + + ////////////////////////////////////////////////// - DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui - PerformNote = 0xb3, // updated 6.38 + DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui + 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... - DailyQuests = 0x21f, // updated 6.38 - DailyQuestRepeatFlags = 0x184, // updated 6.38 + // daily quest info -> without them sent, login will take longer... + DailyQuests = 0x11f, // updated 6.40 + DailyQuestRepeatFlags = 0x1c0, // updated 6.40 - MapUpdate = 0x2cd, // updated 6.38 - MapUpdate4 = 0x3c8, // updated 6.38 - MapUpdate8 = 0x1d9, // updated 6.38 - MapUpdate16 = 0x389, // updated 6.38 - MapUpdate32 = 0x9a, // updated 6.38 - MapUpdate64 = 0x361, // updated 6.38 - MapUpdate128 = 0x1c9, // updated 6.38 + MapUpdate = 0x392, // updated 6.40 + MapUpdate4 = 0x237, // updated 6.40 + MapUpdate8 = 0xd5, // updated 6.40 + MapUpdate16 = 0x36e, // updated 6.40 + MapUpdate32 = 0x2df, // updated 6.40 + MapUpdate64 = 0x2b6, // updated 6.40 + MapUpdate128 = 0x3ac, // updated 6.40 - /// Doman Mahjong ////////////////////////////////////// - MahjongOpenGui = 0x02A4, // only available in mahjong instance - MahjongNextRound = 0x02BD, // initial hands(baipai), # of riichi(wat), winds, honba, score and stuff - MahjongPlayerAction = 0x02BE, // tsumo(as in drawing a tile) called chi/pon/kan/riichi - MahjongEndRoundTsumo = 0x02BF, // called tsumo - MahjongEndRoundRon = 0x2C0, // called ron or double ron (waiting for action must be flagged from discard packet to call) - MahjongTileDiscard = 0x02C1, // giri (discarding a tile.) chi(1)/pon(2)/kan(4)/ron(8) flags etc.. - MahjongPlayersInfo = 0xF2C2, // actor id, name, rating and stuff.. - // 2C3 and 2C4 are currently unknown - MahjongEndRoundDraw = 0x02C5, // self explanatory - MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen. + /// Doman Mahjong ////////////////////////////////////// + MahjongOpenGui = 0x02A4, // only available in mahjong instance + MahjongNextRound = 0x02BD, // initial hands(baipai), # of riichi(wat), winds, honba, score and stuff + MahjongPlayerAction = 0x02BE, // tsumo(as in drawing a tile) called chi/pon/kan/riichi + MahjongEndRoundTsumo = 0x02BF, // called tsumo + MahjongEndRoundRon = 0x2C0, // called ron or double ron (waiting for action must be flagged from discard packet to call) + MahjongTileDiscard = 0x02C1, // giri (discarding a tile.) chi(1)/pon(2)/kan(4)/ron(8) flags etc.. + MahjongPlayersInfo = 0xF2C2, // actor id, name, rating and stuff.. + // 2C3 and 2C4 are currently unknown + MahjongEndRoundDraw = 0x02C5, // self explanatory + MahjongEndGame = 0x02C6, // finished oorasu(all-last) round; shows a result screen. - /// Airship & Submarine ////////////////////////////////////// - AirshipTimers = 0x3d0, // updated 6.38 - AirshipStatus = 0x314, // updated 6.38 - AirshipStatusList = 0x257, // updated 6.38 - AirshipExplorationResult = 0x288, // updated 6.38 + /// Airship & Submarine ////////////////////////////////////// + AirshipTimers = 0x132, // updated 6.40 + AirshipStatus = 0x1eb, // updated 6.40 + AirshipStatusList = 0x2cb, // updated 6.40 + AirshipExplorationResult = 0x2c4, // updated 6.40 - SubmarineTimers = 0x16d, // updated 6.38 - SubmarineProgressionStatus = 0x31a, // updated 6.38 - SubmarineStatusList = 0x1a4, // updated 6.38 - SubmarineExplorationResult = 0x147, // updated 6.38 + SubmarineTimers = 0x2b7, // updated 6.40 + SubmarineProgressionStatus = 0x385, // updated 6.40 + SubmarineStatusList = 0x81, // updated 6.40 + SubmarineExplorationResult = 0x2c9, // updated 6.40 - EnvironmentControl = 0x118, // updated 6.38 - IslandWorkshopSupplyDemand = 0x168, // updated 6.38 - - }; - - /** - * Client IPC Zone Type Codes. - */ - enum ClientZoneIpcType : uint16_t - { - PingHandler = 0x032A, // updated 6.38 - InitHandler = 0x0090, // updated 6.38 + EnvironmentControl = 0x108, // updated 6.40 + IslandWorkshopSupplyDemand = 0x1b7, // updated 6.40 + +}; + +/** + * Client IPC Zone Type Codes. + */ +enum ClientZoneIpcType : + uint16_t +{ + PingHandler = 0x272, // updated 6.40 + 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 - CFCancelHandler = 0x02B2, // updated 5.58h - CFRegisterDuty = 0x01BD, // updated 5.58h - CFRegisterRoulette = 0x037A, // updated 5.58h - PlayTimeHandler = 0x02B7, // updated 5.58h - LogoutHandler = 0x02E5, // updated 6.38 - CancelLogout = 0x01e3, // updated 6.31h - CFDutyInfoHandler = 0xF078, // updated 4.2 - - SocialReqSendHandler = 0x00D7, // updated 5.58h - SocialResponseHandler = 0x023B, // updated 5.58h - CreateCrossWorldLS = 0x035D, // updated 5.58h - - ChatHandler = 0x01F2, // Updated 6.38 - PartyChatHandler = 0x0065, - PartySetLeaderHandler = 0x036C, // updated 5.58h - LeavePartyHandler = 0x019D, // updated 5.58h - KickPartyMemberHandler = 0x0262, // updated 5.58h - DisbandPartyHandler = 0x0276, // updated 5.58h - - SocialListHandler = 0x0200, // updated 6.31 - SetSearchInfoHandler = 0x0165, // updated 6.38 - ReqSearchInfoHandler = 0x03b0, // updated 6.31h - ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 - - ReqRemovePlayerFromBlacklist = 0x00B4, // updated 5.58h - BlackListHandler = 0x010c, // updated 6.31h - PlayerSearchHandler = 0x037D, // updated 5.58h - - LinkshellListHandler = 0x03B6, // updated 5.58h - - MarketBoardRequestItemListingInfo = 0x00F4, // updated 5.58h - MarketBoardRequestItemListings = 0x0122, // updated 5.58h - MarketBoardSearch = 0x0082, // updated 5.58h - MarketBoardPurchaseHandler = 0x0397, // updated 6.38 - - ReqExamineFcInfo = 0xF37B, // updated 5.58h (prepended F. Conflicts with FinishLoadingHandler 6.38) - - FcInfoReqHandler = 0x9999, // unknown - - FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0 - - ReqMarketWishList = 0x00C3, // updated 5.58h - - ReqJoinNoviceNetwork = 0x0129, // updated 4.2 - - ReqCountdownInitiate = 0x03e1, // updated 6.31h - ReqCountdownCancel = 0x023a, // updated 6.31h - - ZoneLineHandler = 0x00ce, // updated 6.31h - ClientTrigger = 0x01BE, // updated 6.38 - DiscoveryHandler = 0x038B, // updated 5.58h - - SkillHandler = 0x0133, // updated 6.31h - GMCommand1 = 0x0273, // updated 6.38 - GMCommand2 = 0x0328, // updated 6.38 - AoESkillHandler = 0x0152, // updated 5.58h - - UpdatePositionHandler = 0x025F, // updated 6.38 - - InventoryModifyHandler = 0x024D, // updated 6.38 - - InventoryEquipRecommendedItems = 0x01C9, // updated 5.58h - - ReqPlaceHousingItem = 0x02D4, // updated 5.58h - BuildPresetHandler = 0x0223, // updated 5.58h - - TalkEventHandler = 0x02C4, // updated 6.38 - EmoteEventHandler = 0x00B0, // updated 5.58h - WithinRangeEventHandler = 0x02B6, // updated 5.58h - OutOfRangeEventHandler = 0x00b4, // updated 6.31h - EnterTeriEventHandler = 0x018F, // updated 6.38 - ShopEventHandler = 0x0384, // updated 5.58h - ReturnEventHandler = 0x0268, // updated 6.38 - TradeReturnEventHandler = 0x00FB, // updated 6.38 - TradeReturnEventHandler2 = 0x023C, // updated 5.58h - EventYield2Handler = 0x021D, // updated 5.58h - EventYield16Handler = 0x0207, // updated 5.58h + CFCancelHandler = 0x02B2, // updated 5.58h + CFRegisterDuty = 0x01BD, // updated 5.58h + CFRegisterRoulette = 0x037A, // updated 5.58h + PlayTimeHandler = 0x02B7, // updated 5.58h + LogoutHandler = 0xac, // updated 6.40 + CancelLogout = 0x01e3, // updated 6.31h + CFDutyInfoHandler = 0xF078, // updated 4.2 + + SocialReqSendHandler = 0x00D7, // updated 5.58h + SocialResponseHandler = 0x023B, // updated 5.58h + CreateCrossWorldLS = 0x9999, // updated 5.58h + + ChatHandler = 0xd3, // updated 6.40 + PartyChatHandler = 0x0065, PartySetLeaderHandler = 0x036C, // updated 5.58h + LeavePartyHandler = 0x019D, // updated 5.58h + KickPartyMemberHandler = 0x0262, // updated 5.58h + DisbandPartyHandler = 0x0276, // updated 5.58h + + SocialListHandler = 0x206, // updated 6.40 + SetSearchInfoHandler = 0x3b6, // updated 6.40 + ReqSearchInfoHandler = 0x03b0, // updated 6.31h + ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0 + + ReqRemovePlayerFromBlacklist = 0x00B4, // updated 5.58h + BlackListHandler = 0x29c, // updated 6.40 + PlayerSearchHandler = 0x037D, // updated 5.58h + + LinkshellListHandler = 0x03B6, // updated 5.58h + + MarketBoardRequestItemListingInfo = 0x00F4, // updated 5.58h + MarketBoardRequestItemListings = 0x0122, // updated 5.58h + MarketBoardSearch = 0x0082, // updated 5.58h + MarketBoardPurchaseHandler = 0x0256, // updated 6.40 + + ReqExamineFcInfo = 0xF37B, // updated 5.58h (prepended F. Conflicts with FinishLoadingHandler 6.38) + + FcInfoReqHandler = 0x9999, // unknown + + FreeCompanyUpdateShortMessageHandler = 0x0123, // added 5.0 + + ReqMarketWishList = 0x00C3, // updated 5.58h + + ReqJoinNoviceNetwork = 0x0129, // updated 4.2 + + ReqCountdownInitiate = 0x03e1, // updated 6.31h + ReqCountdownCancel = 0x023a, // updated 6.31h + + ZoneLineHandler = 0x02b9, // updated 6.40 + ClientTrigger = 0x01BC, // updated 6.40 + DiscoveryHandler = 0x038B, // updated 5.58h + + SkillHandler = 0x0228, // updated 6.40 + GMCommand1 = 0x0139, // updated 6.40 + GMCommand2 = 0x0195, // updated 6.40 + AoESkillHandler = 0x016f, // updated 6.40 + + UpdatePositionHandler = 0x0179, // updated 6.40 + + InventoryModifyHandler = 0x02DB, // updated 6.40 + + InventoryEquipRecommendedItems = 0x01C9, // updated 5.58h + + ReqPlaceHousingItem = 0x02D4, // updated 5.58h + BuildPresetHandler = 0x0223, // updated 5.58h + + TalkEventHandler = 0x035D, // updated 6.40 + EmoteEventHandler = 0x00B0, // updated 5.58h + WithinRangeEventHandler = 0x0213, // updated 6.40 + OutOfRangeEventHandler = 0x03A6, // updated 6.40 + EnterTeriEventHandler = 0x0247, // updated 6.40 + ShopEventHandler = 0x0384, // updated 5.58h + ReturnEventHandler = 0x0131, // updated 6.40 + TradeReturnEventHandler = 0x021A, // updated 6.40 + TradeReturnEventHandler2 = 0x03C9, // updated 6.40 + EventYield2Handler = 0x021D, // updated 5.58h + EventYield16Handler = 0x0207, // updated 5.58h - LinkshellEventHandler = 0x9999, // unknown - LinkshellEventHandler1 = 0x9999, // unknown + LinkshellEventHandler = 0x9999, // unknown + LinkshellEventHandler1 = 0x9999, // unknown - ReqEquipDisplayFlagsChange = 0x03BC, // updated 6.30h + ReqEquipDisplayFlagsChange = 0x03BC, // updated 6.30h - LandRenameHandler = 0x028E, // updated 5.58h - HousingUpdateHouseGreeting = 0x0343, // updated 5.58h - HousingUpdateObjectPosition = 0x9999, // unknown - HousingEditExterior = 0x027B, // updated 5.58h - HousingEditInterior = 0x02E3, // updated 5.58h - - SetSharedEstateSettings = 0x00D2, // updated 5.58h + LandRenameHandler = 0x028E, // updated 5.58h + HousingUpdateHouseGreeting = 0x0343, // updated 5.58h + HousingUpdateObjectPosition = 0x9999, // unknown + HousingEditExterior = 0x027B, // updated 5.58h + HousingEditInterior = 0x02E3, // updated 5.58h + + SetSharedEstateSettings = 0x00D2, // updated 5.58h + + UpdatePositionInstance = 0x00E5, // updated 6.40 - UpdatePositionInstance = 0x01A0, // Updated 6.38 + PerformNoteHandler = 0x0243, // updated 5.58h - PerformNoteHandler = 0x0243, // updated 5.58h + WorldInteractionHandler = 0x0274, // updated 5.58h + Dive = 0x018C, // updated 6.30h +}; - WorldInteractionHandler = 0x0274, // updated 5.58h - Dive = 0x018C, // updated 6.30h - }; +//////////////////////////////////////////////////////////////////////////////// +/// Chat Connection IPC Codes +/** + * Server IPC Chat Type Codes. + */ +enum ServerChatIpcType : + uint16_t +{ + 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) + TellErrNotFound = 0x0066, - //////////////////////////////////////////////////////////////////////////////// - /// Chat Connection IPC Codes - /** - * Server IPC Chat Type Codes. - */ - enum ServerChatIpcType : uint16_t - { - 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) - TellErrNotFound = 0x0066, + FreeCompanyEvent = 0x012C, // added 5.0 +}; - FreeCompanyEvent = 0x012C, // added 5.0 - }; - - /** - * Client IPC Chat Type Codes. - */ - enum ClientChatIpcType : uint16_t - { - TellReq = 0x0064, - PublicContentTellReq = 0x0326, // updated 5.35 hotfix, this is used when sending a /tell in PublicContent instances such as Eureka or Bozja - }; +/** + * Client IPC Chat Type Codes. + */ +enum ClientChatIpcType : + uint16_t +{ + TellReq = 0x0064, + PublicContentTellReq = 0x0326, // updated 5.35 hotfix, this is used when sending a /tell in PublicContent instances such as Eureka or Bozja +}; } diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 5a10a71f..bcefb8ef 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -44,6 +44,7 @@ namespace Sapphire::Network::Packets::Server Common::ChatType chatType; char name[32]; char msg[1012]; + uint8_t unknown[12]; //possibly padding? }; struct FFXIVIpcPartyChat : FFXIVIpcBasePacket< PartyChat > @@ -184,7 +185,7 @@ namespace Sapphire::Network::Packets::Server char searchComment[195]; char padding; }; - + /** * Structural representation of the packet sent by the server * to display a server notice message @@ -199,7 +200,7 @@ namespace Sapphire::Network::Packets::Server // 5 = on screen message + chat log char message[538]; }; - + /** * Structural representation of the packet sent by the server * to display a server notice message @@ -981,7 +982,7 @@ namespace Sapphire::Network::Packets::Server uint16_t unknown5E; uint16_t pvpFrontlineWeeklyCampaigns; uint16_t enhancedAnimaGlassProgress; - uint16_t unknown64[4]; + uint16_t unknown64[8]; uint16_t pvpRivalWingsTotalMatches; uint16_t pvpRivalWingsTotalVictories; uint16_t pvpRivalWingsWeeklyMatches; @@ -1044,25 +1045,26 @@ namespace Sapphire::Network::Packets::Server uint8_t companionHealRank; uint8_t mountGuideMask[33]; uint8_t ornamentMask[4]; - uint8_t unknown281[13]; + uint8_t unknown281[16]; char name[32]; uint8_t unknown293[16]; uint8_t unknown2A3; uint8_t unlockBitmask[64]; uint8_t aetheryte[26]; - uint8_t favoriteAetheryteIds[4]; - uint8_t freeAetheryteId; + uint16_t favoriteAetheryteIds[4]; + uint16_t freeAetheryteId; + uint16_t psPlusFreeAetheryteId; uint8_t discovery[472]; uint8_t howto[36]; + uint8_t unknown554[4]; uint8_t minions[60]; uint8_t chocoboTaxiMask[12]; - uint8_t watchedCutscenes[152]; + uint8_t watchedCutscenes[154]; uint8_t companionBardingMask[12]; + uint8_t unknownMask64E[23]; uint8_t companionEquippedHead; uint8_t companionEquippedBody; uint8_t companionEquippedLegs; - uint8_t unknown5D1[4]; - uint8_t unknownMask5D5[11]; uint8_t fishingGuideMask[161]; uint8_t fishingSpotVisited[38]; uint8_t unknown694[34]; @@ -1079,11 +1081,12 @@ namespace Sapphire::Network::Packets::Server uint8_t sightseeingMask[37]; uint8_t huntingMarkMask[102]; uint8_t tripleTriadCards[45]; - uint8_t unknown7D7[14]; + uint8_t unknown895; + uint8_t unknown7D7[15]; uint8_t unknown7D8; uint8_t unknown7E6[49]; uint8_t regionalFolkloreMask[6]; - uint8_t orchestrionMask[75]; + uint8_t orchestrionMask[87]; uint8_t hallOfNoviceCompletion[3]; uint8_t animaCompletion[11]; uint8_t unknown85E[16]; @@ -1093,16 +1096,17 @@ namespace Sapphire::Network::Packets::Server uint8_t unlockedRaids[28]; uint8_t unlockedDungeons[18]; uint8_t unlockedGuildhests[10]; - uint8_t unlockedTrials[11]; + uint8_t unlockedTrials[12]; uint8_t unlockedPvp[5]; uint8_t clearedRaids[28]; uint8_t clearedDungeons[18]; uint8_t clearedGuildhests[10]; - uint8_t clearedTrials[11]; + uint8_t clearedTrials[12]; uint8_t clearedPvp[5]; - uint8_t unknown948[4]; + uint8_t unknown948[6]; uint8_t unknown94C[2]; uint8_t unknown94E[2]; + uint8_t unknownA06[2]; }; @@ -2129,7 +2133,7 @@ namespace Sapphire::Network::Packets::Server char otherName[32]; }; - + struct FFXIVIpcRetainerInformation : FFXIVIpcBasePacket< RetainerInformation > { uint8_t unknown0[8]; diff --git a/src/tools/exd_common_gen/main.cpp b/src/tools/exd_common_gen/main.cpp index 72af848a..e209793d 100644 --- a/src/tools/exd_common_gen/main.cpp +++ b/src/tools/exd_common_gen/main.cpp @@ -132,7 +132,7 @@ int main( int argc, char** argv ) result += generateEnum( "GuardianDeity", 0, "uint8_t" ); result += generateEnum( "ItemUICategory", 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( "Tribe", 0, "uint8_t" ); result += generateEnum( "Town", 0, "uint8_t" );