From 8835c5457aff91209e8e9560ece8d39633a78afe Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 31 Jan 2018 01:37:08 +1100 Subject: [PATCH 1/4] update ex.json and take optional param to exd_struct_gen to dat path --- src/tools/exd_struct_gen/ex.json | 350 ++++++++++++++++++++---------- src/tools/exd_struct_gen/main.cpp | 11 +- 2 files changed, 244 insertions(+), 117 deletions(-) diff --git a/src/tools/exd_struct_gen/ex.json b/src/tools/exd_struct_gen/ex.json index e8707623..7109460b 100644 --- a/src/tools/exd_struct_gen/ex.json +++ b/src/tools/exd_struct_gen/ex.json @@ -1,5 +1,5 @@ { - "version": "2017.11.15.0000.0000", + "version": "2018.01.25.0000.0000", "sheets": [ { "sheet": "Achievement", @@ -138,63 +138,63 @@ } }, { - "index": 11, + "index": 12, "name": "ClassJobLevel" }, { - "index": 12, + "index": 13, "name": "IsRoleAction" }, { - "index": 13, + "index": 14, "name": "Range" }, { - "index": 14, + "index": 15, "name": "CanTargetSelf" }, { - "index": 15, + "index": 16, "name": "CanTargetParty" }, { - "index": 16, + "index": 17, "name": "CanTargetFriendly" }, { - "index": 17, + "index": 18, "name": "CanTargetHostile" }, { - "index": 20, + "index": 21, "name": "TargetArea" }, { - "index": 24, + "index": 25, "name": "CanTargetDead" }, { - "index": 26, + "index": 27, "name": "CastType" }, { - "index": 27, + "index": 28, "name": "EffectRange" }, { - "index": 28, + "index": 29, "name": "XAxisModifier" }, { - "index": 30, + "index": 31, "name": "Cost{Type}" }, { - "index": 31, + "index": 32, "name": "Cost" }, { - "index": 34, + "index": 35, "name": "Action{Combo}", "converter": { "type": "link", @@ -202,23 +202,23 @@ } }, { - "index": 35, + "index": 36, "name": "PreservesCombo" }, { - "index": 36, + "index": 37, "name": "Cast<100ms>" }, { - "index": 37, + "index": 38, "name": "Recast<100ms>" }, { - "index": 38, + "index": 39, "name": "CooldownGroup" }, { - "index": 39, + "index": 40, "name": "AttackType", "converter": { "type": "link", @@ -226,11 +226,11 @@ } }, { - "index": 40, + "index": 41, "name": "Aspect" }, { - "index": 41, + "index": 42, "name": "ActionProcStatus", "converter": { "type": "link", @@ -238,7 +238,7 @@ } }, { - "index": 42, + "index": 43, "name": "Status{GainSelf}", "converter": { "type": "link", @@ -246,14 +246,14 @@ } }, { - "index": 43, + "index": 44, "name": "ActionData", "converter": { "type": "generic" } }, { - "index": 44, + "index": 45, "name": "ClassJobCategory", "converter": { "type": "link", @@ -261,11 +261,11 @@ } }, { - "index": 47, + "index": 48, "name": "AffectsPosition" }, { - "index": 48, + "index": 49, "name": "Omen", "converter": { "type": "link", @@ -273,7 +273,7 @@ } }, { - "index": 49, + "index": 50, "name": "IsPvP" } ] @@ -1046,11 +1046,11 @@ } }, { - "index": 11, + "index": 10, "name": "Name" }, { - "index": 19, + "index": 18, "name": "Name{Relation}" } ] @@ -1441,18 +1441,6 @@ } ] }, - { - "sheet": "ChainBonus", - "definitions": [ - { - "name": "Bonus<%>" - }, - { - "index": 1, - "name": "Timeout" - } - ] - }, { "sheet": "CharaMakeCustomize", "definitions": [ @@ -2336,10 +2324,11 @@ "sheet": "ContentFinderCondition", "definitions": [ { + "index": 1, "name": "ContentIndicator" }, { - "index": 1, + "index": 2, "name": "InstanceContent", "converter": { "type": "link", @@ -2347,7 +2336,7 @@ } }, { - "index": 5, + "index": 7, "name": "ContentMemberType", "converter": { "type": "link", @@ -2355,15 +2344,23 @@ } }, { - "index": 8, - "name": "ClassJobLevel" + "index": 13, + "name": "ClassJobLevel{Required}" }, { - "index": 10, + "index": 14, + "name": "ClassJobLevel{Sync}" + }, + { + "index": 15, "name": "ItemLevel{Required}" }, { - "index": 29, + "index": 16, + "name": "ItemLevel{Sync}" + }, + { + "index": 36, "name": "Icon", "converter": { "type": "icon" @@ -2417,47 +2414,47 @@ "name": "DutyType" }, { - "index": 5, + "index": 6, "name": "IsInDutyFinder" }, { - "index": 6, - "name": "RequireAllDuties" - }, - { - "index": 9, + "index": 10, "name": "ItemLevel{Required}" }, { - "index": 11, + "index": 12, "name": "Icon", "converter": { "type": "icon" } }, { - "index": 13, + "index": 14, "name": "Reward{TomeA}" }, { - "index": 14, + "index": 15, "name": "Reward{TomeB}" }, { - "index": 15, + "index": 16, "name": "Reward{TomeC}" }, { - "index": 18, + "index": 19, "name": "SortKey" }, { - "index": 20, + "index": 21, "name": "ContentMemberType", "converter": { "type": "link", "target": "ContentMemberType" } + }, + { + "index": 31, + "name": "RequireAllDuties" } ] }, @@ -3585,6 +3582,10 @@ "converter": { "type": "icon" } + }, + { + "index": 3, + "name": "CastTime" } ] }, @@ -3676,7 +3677,11 @@ "type": "link", "target": "Quest" } - } + }, + { + "index": 15, + "name": "CastTime" + }, ] }, { @@ -3702,15 +3707,15 @@ "defaultColumn": "Name", "definitions": [ { - "index": 2, + "index": 3, "name": "ClassJobLevel" }, { - "index": 3, + "index": 4, "name": "ClassJobLevel{Max}" }, { - "index": 4, + "index": 5, "name": "EventItem", "converter": { "type": "link", @@ -3718,33 +3723,33 @@ } }, { - "index": 9, + "index": 10, "name": "Icon{Objective}", "converter": { "type": "icon" } }, { - "index": 10, + "index": 11, "name": "Icon{Map}", "converter": { "type": "icon" } }, { - "index": 26, + "index": 27, "name": "Name" }, { - "index": 27, + "index": 28, "name": "Description" }, { - "index": 28, + "index": 29, "name": "Objective" }, { - "index": 29, + "index": 30, "type": "repeat", "count": 3, "definition": { @@ -3759,6 +3764,24 @@ "definitions": [ { "name": "Text" + }, + { + "index": 4, + "name": "FCActivityCategory", + "converter": { + "type": "link", + "target": "FCActivityCategory" + } + } + ] + }, + { + "sheet": "FCActivityCategory", + "defaultColumn": "Name", + "definitions": [ + { + "index": 1, + "name": "Name" } ] }, @@ -3863,6 +3886,16 @@ } ] }, + { + "sheet": "FCProfile", + "defaultColumn": "Name", + "definitions": [ + { + "index": 1, + "name": "Name" + } + ] + }, { "sheet": "FCReputation", "defaultColumn": "Name", @@ -4536,6 +4569,108 @@ } ] }, + { + "sheet": "GCRankGridaniaFemaleText", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name" + }, + { + "index": 2, + "name": "Plural" + }, + { + "index": 8, + "name": "Name{Rank}" + } + ] + }, + { + "sheet": "GCRankGridaniaMaleText", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name" + }, + { + "index": 2, + "name": "Plural" + }, + { + "index": 8, + "name": "Name{Rank}" + } + ] + }, + { + "sheet": "GCRankLimsaFemaleText", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name" + }, + { + "index": 2, + "name": "Plural" + }, + { + "index": 8, + "name": "Name{Rank}" + } + ] + }, + { + "sheet": "GCRankLimsaMaleText", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name" + }, + { + "index": 2, + "name": "Plural" + }, + { + "index": 8, + "name": "Name{Rank}" + } + ] + }, + { + "sheet": "GCRankUldahFemaleText", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name" + }, + { + "index": 2, + "name": "Plural" + }, + { + "index": 8, + "name": "Name{Rank}" + } + ] + }, + { + "sheet": "GCRankUldahMaleText", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name" + }, + { + "index": 2, + "name": "Plural" + }, + { + "index": 8, + "name": "Name{Rank}" + } + ] + }, { "sheet": "GCScripShopCategory", "definitions": [ @@ -4965,14 +5100,10 @@ }, { "index": 3, - "name": "ClassJobLevel{Sync}" - }, - { - "index": 4, "name": "Name" }, { - "index": 6, + "index": 5, "name": "BGM", "converter": { "type": "link", @@ -4981,10 +5112,6 @@ }, { "index": 9, - "name": "ItemLevel{Sync}" - }, - { - "index": 11, "name": "TerritoryType", "converter": { "type": "link", @@ -4993,21 +5120,14 @@ }, { "index": 13, - "name": "Icon", - "converter": { - "type": "icon" - } - }, - { - "index": 15, "name": "InstanceContentTextData{Boss}{Start}" }, { - "index": 16, + "index": 14, "name": "InstanceContentTextData{Boss}{End}" }, { - "index": 17, + "index": 15, "name": "BNpcBase{Boss}", "converter": { "type": "link", @@ -5015,39 +5135,39 @@ } }, { - "index": 18, + "index": 16, "name": "InstanceContentTextData{Objective}{Start}" }, { - "index": 19, + "index": 17, "name": "InstanceContentTextData{Objective}{End}" }, { - "index": 20, + "index": 18, "name": "SortKey" }, { - "index": 23, + "index": 21, "name": "NewPlayerBonusA" }, { - "index": 24, + "index": 22, "name": "NewPlayerBonusB" }, { - "index": 26, + "index": 24, "name": "FinalBossCurrencyA" }, { - "index": 27, + "index": 25, "name": "FinalBossCurrencyB" }, { - "index": 28, + "index": 26, "name": "FinalBossCurrencyC" }, { - "index": 34, + "index": 32, "type": "repeat", "count": 5, "definition": { @@ -5060,7 +5180,7 @@ } }, { - "index": 39, + "index": 37, "type": "repeat", "count": 5, "definition": { @@ -5073,7 +5193,7 @@ } }, { - "index": 44, + "index": 42, "type": "repeat", "count": 5, "definition": { @@ -5086,7 +5206,7 @@ } }, { - "index": 54, + "index": 52, "name": "InstanceContentBuff", "converter": { "type": "link", @@ -5094,7 +5214,7 @@ } }, { - "index": 58, + "index": 56, "name": "PartyCondition" } ] @@ -5698,14 +5818,6 @@ "target": "ClassJobCategory" } }, - { - "index": 13, - "name": "JournalCategory", - "converter": { - "type": "link", - "target": "JournalGenre" - } - }, { "index": 15, "name": "PlaceName{StartZone}", @@ -5858,6 +5970,10 @@ "target": "Map" } }, + { + "index": 8, + "name": "EventId" + }, { "index": 9, "name": "Territory", @@ -6519,7 +6635,7 @@ "name": "IsFlying" }, { - "index": 28, + "index": 17, "name": "RideBGM", "converter": { "type": "link", @@ -6527,7 +6643,7 @@ } }, { - "index": 41, + "index": 30, "name": "Icon", "converter": { "type": "icon" @@ -6717,11 +6833,11 @@ "defaultColumn": "Name", "definitions": [ { - "index": 2, + "index": 3, "name": "Name" }, { - "index": 3, + "index": 4, "name": "Icon", "converter": { "type": "icon" @@ -8615,6 +8731,10 @@ "target": "Map" } }, + { + "index": 9, + "name": "TerritoryIntendedUse" + }, { "index": 12, "name": "WeatherRate" @@ -8711,7 +8831,7 @@ "name": "Name" }, { - "index": 3, + "index": 4, "type": "repeat", "count": 10, "definition": { diff --git a/src/tools/exd_struct_gen/main.cpp b/src/tools/exd_struct_gen/main.cpp index 4fad0d94..32183b3c 100644 --- a/src/tools/exd_struct_gen/main.cpp +++ b/src/tools/exd_struct_gen/main.cpp @@ -32,7 +32,7 @@ Core::Data::ExdData g_exdData; bool skipUnmapped = true; //const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" ); -const std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv" ); +std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv" ); std::map< uint8_t, std::string > g_typeMap; @@ -271,8 +271,15 @@ std::string generateConstructorsDecl( const std::string& exd ) return result; } -int main() +int main( int argc, char** argv ) { + if( argc > 1 ) + { + printf( "using dat path: %s", argv[1] ); + datLocation = std::string( argv[1] ); + } + + g_typeMap[0] = "std::string"; g_typeMap[1] = "bool"; g_typeMap[2] = "int8_t"; From bc66801c34b14a5d2c9b4999efe41a1a7cc07c10 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 31 Jan 2018 01:37:23 +1100 Subject: [PATCH 2/4] actually commit the fixed json... --- src/tools/exd_struct_gen/ex.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/exd_struct_gen/ex.json b/src/tools/exd_struct_gen/ex.json index 7109460b..b199c795 100644 --- a/src/tools/exd_struct_gen/ex.json +++ b/src/tools/exd_struct_gen/ex.json @@ -3681,7 +3681,7 @@ { "index": 15, "name": "CastTime" - }, + } ] }, { From 1ce2ca6d65328b04dfe20e9bd3804d61015974a3 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 31 Jan 2018 01:47:58 +1100 Subject: [PATCH 3/4] update generated exd data and some generator fixes --- src/common/Exd/ExdDataGenerated.cpp | 369 +++++++++++++++++------- src/common/Exd/ExdDataGenerated.h | 185 ++++++++++-- src/tools/exd_struct_gen/ExdData.h.tmpl | 4 +- src/tools/exd_struct_gen/main.cpp | 6 +- 4 files changed, 432 insertions(+), 132 deletions(-) diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index ff6e1a45..9f00fd42 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -50,34 +50,34 @@ actionTimelineUse = exdData->getField< int16_t >( row, 7 ); actionTimelineHit = exdData->getField< uint16_t >( row, 8 ); classJob = exdData->getField< int8_t >( row, 10 ); - classJobLevel = exdData->getField< uint8_t >( row, 11 ); - isRoleAction = exdData->getField< bool >( row, 12 ); - range = exdData->getField< int8_t >( row, 13 ); - canTargetSelf = exdData->getField< bool >( row, 14 ); - canTargetParty = exdData->getField< bool >( row, 15 ); - canTargetFriendly = exdData->getField< bool >( row, 16 ); - canTargetHostile = exdData->getField< bool >( row, 17 ); - targetArea = exdData->getField< bool >( row, 20 ); - canTargetDead = exdData->getField< bool >( row, 24 ); - castType = exdData->getField< uint8_t >( row, 26 ); - effectRange = exdData->getField< uint8_t >( row, 27 ); - xAxisModifier = exdData->getField< uint8_t >( row, 28 ); - costType = exdData->getField< uint8_t >( row, 30 ); - cost = exdData->getField< uint16_t >( row, 31 ); - actionCombo = exdData->getField< uint16_t >( row, 34 ); - preservesCombo = exdData->getField< bool >( row, 35 ); - cast100ms = exdData->getField< uint16_t >( row, 36 ); - recast100ms = exdData->getField< uint16_t >( row, 37 ); - cooldownGroup = exdData->getField< uint8_t >( row, 38 ); - attackType = exdData->getField< int8_t >( row, 39 ); - aspect = exdData->getField< uint8_t >( row, 40 ); - actionProcStatus = exdData->getField< uint8_t >( row, 41 ); - statusGainSelf = exdData->getField< uint16_t >( row, 42 ); - actionData = exdData->getField< uint32_t >( row, 43 ); - classJobCategory = exdData->getField< uint8_t >( row, 44 ); - affectsPosition = exdData->getField< bool >( row, 47 ); - omen = exdData->getField< uint8_t >( row, 48 ); - isPvP = exdData->getField< bool >( row, 49 ); + classJobLevel = exdData->getField< uint8_t >( row, 12 ); + isRoleAction = exdData->getField< bool >( row, 13 ); + range = exdData->getField< int8_t >( row, 14 ); + canTargetSelf = exdData->getField< bool >( row, 15 ); + canTargetParty = exdData->getField< bool >( row, 16 ); + canTargetFriendly = exdData->getField< bool >( row, 17 ); + canTargetHostile = exdData->getField< bool >( row, 18 ); + targetArea = exdData->getField< bool >( row, 21 ); + canTargetDead = exdData->getField< bool >( row, 25 ); + castType = exdData->getField< uint8_t >( row, 27 ); + effectRange = exdData->getField< uint8_t >( row, 28 ); + xAxisModifier = exdData->getField< uint8_t >( row, 29 ); + costType = exdData->getField< uint8_t >( row, 31 ); + cost = exdData->getField< uint16_t >( row, 32 ); + actionCombo = exdData->getField< uint16_t >( row, 35 ); + preservesCombo = exdData->getField< bool >( row, 36 ); + cast100ms = exdData->getField< uint16_t >( row, 37 ); + recast100ms = exdData->getField< uint16_t >( row, 38 ); + cooldownGroup = exdData->getField< uint8_t >( row, 39 ); + attackType = exdData->getField< int8_t >( row, 40 ); + aspect = exdData->getField< uint8_t >( row, 41 ); + actionProcStatus = exdData->getField< uint8_t >( row, 42 ); + statusGainSelf = exdData->getField< uint16_t >( row, 43 ); + actionData = exdData->getField< uint32_t >( row, 44 ); + classJobCategory = exdData->getField< uint8_t >( row, 45 ); + affectsPosition = exdData->getField< bool >( row, 48 ); + omen = exdData->getField< uint8_t >( row, 49 ); + isPvP = exdData->getField< bool >( row, 50 ); } Core::Data::ActionCategory::ActionCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -415,8 +415,8 @@ beastRankBonus = exdData->getField< uint8_t >( row, 2 ); iconReputation = exdData->getField< uint32_t >( row, 3 ); icon = exdData->getField< uint32_t >( row, 4 ); - name = exdData->getField< std::string >( row, 11 ); - nameRelation = exdData->getField< std::string >( row, 19 ); + name = exdData->getField< std::string >( row, 10 ); + nameRelation = exdData->getField< std::string >( row, 18 ); } Core::Data::Behavior::Behavior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -612,13 +612,6 @@ day.push_back( exdData->getField< uint8_t >( row, 63 ) ); } - Core::Data::ChainBonus::ChainBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) - { - auto row = exdData->m_ChainBonusDat.get_row( row_id ); - bonus = exdData->getField< uint8_t >( row, 0 ); - timeouts = exdData->getField< uint8_t >( row, 1 ); - } - Core::Data::CharaMakeCustomize::CharaMakeCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CharaMakeCustomizeDat.get_row( row_id ); @@ -960,12 +953,14 @@ Core::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentFinderConditionDat.get_row( row_id ); - contentIndicator = exdData->getField< uint8_t >( row, 0 ); - instanceContent = exdData->getField< uint16_t >( row, 1 ); - contentMemberType = exdData->getField< uint8_t >( row, 5 ); - classJobLevel = exdData->getField< uint8_t >( row, 8 ); - itemLevelRequired = exdData->getField< uint16_t >( row, 10 ); - icon = exdData->getField< uint32_t >( row, 29 ); + contentIndicator = exdData->getField< uint8_t >( row, 1 ); + instanceContent = exdData->getField< uint16_t >( row, 2 ); + contentMemberType = exdData->getField< uint8_t >( row, 7 ); + classJobLevelRequired = exdData->getField< uint8_t >( row, 13 ); + classJobLevelSync = exdData->getField< uint8_t >( row, 14 ); + itemLevelRequired = exdData->getField< uint16_t >( row, 15 ); + itemLevelSync = exdData->getField< uint16_t >( row, 16 ); + icon = exdData->getField< uint32_t >( row, 36 ); } Core::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -989,15 +984,15 @@ name = exdData->getField< std::string >( row, 0 ); description = exdData->getField< std::string >( row, 2 ); dutyType = exdData->getField< std::string >( row, 3 ); - isInDutyFinder = exdData->getField< bool >( row, 5 ); - requireAllDuties = exdData->getField< bool >( row, 6 ); - itemLevelRequired = exdData->getField< uint16_t >( row, 9 ); - icon = exdData->getField< uint32_t >( row, 11 ); - rewardTomeA = exdData->getField< uint16_t >( row, 13 ); - rewardTomeB = exdData->getField< uint16_t >( row, 14 ); - rewardTomeC = exdData->getField< uint16_t >( row, 15 ); - sortKey = exdData->getField< uint8_t >( row, 18 ); - contentMemberType = exdData->getField< uint8_t >( row, 20 ); + isInDutyFinder = exdData->getField< bool >( row, 6 ); + itemLevelRequired = exdData->getField< uint16_t >( row, 10 ); + icon = exdData->getField< uint32_t >( row, 12 ); + rewardTomeA = exdData->getField< uint16_t >( row, 14 ); + rewardTomeB = exdData->getField< uint16_t >( row, 15 ); + rewardTomeC = exdData->getField< uint16_t >( row, 16 ); + sortKey = exdData->getField< uint8_t >( row, 19 ); + contentMemberType = exdData->getField< uint8_t >( row, 21 ); + requireAllDuties = exdData->getField< bool >( row, 31 ); } Core::Data::ContentType::ContentType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -1434,6 +1429,7 @@ auto row = exdData->m_EventActionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); icon = exdData->getField< uint16_t >( row, 1 ); + castTime = exdData->getField< uint16_t >( row, 3 ); } Core::Data::EventIconPriority::EventIconPriority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -1477,6 +1473,7 @@ icon = exdData->getField< uint16_t >( row, 10 ); stackSize = exdData->getField< uint8_t >( row, 12 ); quest = exdData->getField< uint32_t >( row, 14 ); + castTime = exdData->getField< uint8_t >( row, 15 ); } Core::Data::EventItemHelp::EventItemHelp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -1494,23 +1491,30 @@ Core::Data::Fate::Fate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FateDat.get_row( row_id ); - classJobLevel = exdData->getField< uint8_t >( row, 2 ); - classJobLevelMax = exdData->getField< uint8_t >( row, 3 ); - eventItem = exdData->getField< uint32_t >( row, 4 ); - iconObjective = exdData->getField< uint32_t >( row, 9 ); - iconMap = exdData->getField< uint32_t >( row, 10 ); - name = exdData->getField< std::string >( row, 26 ); - description = exdData->getField< std::string >( row, 27 ); - objective = exdData->getField< std::string >( row, 28 ); - statusText.push_back( exdData->getField< std::string >( row, 29 ) ); + classJobLevel = exdData->getField< uint8_t >( row, 3 ); + classJobLevelMax = exdData->getField< uint8_t >( row, 4 ); + eventItem = exdData->getField< uint32_t >( row, 5 ); + iconObjective = exdData->getField< uint32_t >( row, 10 ); + iconMap = exdData->getField< uint32_t >( row, 11 ); + name = exdData->getField< std::string >( row, 27 ); + description = exdData->getField< std::string >( row, 28 ); + objective = exdData->getField< std::string >( row, 29 ); statusText.push_back( exdData->getField< std::string >( row, 30 ) ); statusText.push_back( exdData->getField< std::string >( row, 31 ) ); + statusText.push_back( exdData->getField< std::string >( row, 32 ) ); } Core::Data::FCActivity::FCActivity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FCActivityDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); + fCActivityCategory = exdData->getField< uint8_t >( row, 4 ); + } + + Core::Data::FCActivityCategory::FCActivityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) + { + auto row = exdData->m_FCActivityCategoryDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 1 ); } Core::Data::FCAuthority::FCAuthority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -1544,6 +1548,12 @@ name = exdData->getField< std::string >( row, 0 ); } + Core::Data::FCProfile::FCProfile( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) + { + auto row = exdData->m_FCProfileDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 1 ); + } + Core::Data::FCReputation::FCReputation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FCReputationDat.get_row( row_id ); @@ -1850,6 +1860,54 @@ description = exdData->getField< std::string >( row, 5 ); } + Core::Data::GCRankGridaniaFemaleText::GCRankGridaniaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) + { + auto row = exdData->m_GCRankGridaniaFemaleTextDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 0 ); + plural = exdData->getField< std::string >( row, 2 ); + nameRank = exdData->getField< std::string >( row, 8 ); + } + + Core::Data::GCRankGridaniaMaleText::GCRankGridaniaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) + { + auto row = exdData->m_GCRankGridaniaMaleTextDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 0 ); + plural = exdData->getField< std::string >( row, 2 ); + nameRank = exdData->getField< std::string >( row, 8 ); + } + + Core::Data::GCRankLimsaFemaleText::GCRankLimsaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) + { + auto row = exdData->m_GCRankLimsaFemaleTextDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 0 ); + plural = exdData->getField< std::string >( row, 2 ); + nameRank = exdData->getField< std::string >( row, 8 ); + } + + Core::Data::GCRankLimsaMaleText::GCRankLimsaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) + { + auto row = exdData->m_GCRankLimsaMaleTextDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 0 ); + plural = exdData->getField< std::string >( row, 2 ); + nameRank = exdData->getField< std::string >( row, 8 ); + } + + Core::Data::GCRankUldahFemaleText::GCRankUldahFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) + { + auto row = exdData->m_GCRankUldahFemaleTextDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 0 ); + plural = exdData->getField< std::string >( row, 2 ); + nameRank = exdData->getField< std::string >( row, 8 ); + } + + Core::Data::GCRankUldahMaleText::GCRankUldahMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) + { + auto row = exdData->m_GCRankUldahMaleTextDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 0 ); + plural = exdData->getField< std::string >( row, 2 ); + nameRank = exdData->getField< std::string >( row, 8 ); + } + Core::Data::GCScripShopCategory::GCScripShopCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCScripShopCategoryDat.get_row( row_id ); @@ -2004,25 +2062,22 @@ instanceContentType = exdData->getField< uint8_t >( row, 0 ); weekRestriction = exdData->getField< uint8_t >( row, 1 ); timeLimitmin = exdData->getField< uint16_t >( row, 2 ); - classJobLevelSync = exdData->getField< uint8_t >( row, 3 ); - name = exdData->getField< std::string >( row, 4 ); - bGM = exdData->getField< uint16_t >( row, 6 ); - itemLevelSync = exdData->getField< uint16_t >( row, 9 ); - territoryType = exdData->getField< uint32_t >( row, 11 ); - icon = exdData->getField< uint32_t >( row, 13 ); - instanceContentTextDataBossStart = exdData->getField< uint32_t >( row, 15 ); - instanceContentTextDataBossEnd = exdData->getField< uint32_t >( row, 16 ); - bNpcBaseBoss = exdData->getField< uint32_t >( row, 17 ); - instanceContentTextDataObjectiveStart = exdData->getField< uint32_t >( row, 18 ); - instanceContentTextDataObjectiveEnd = exdData->getField< uint32_t >( row, 19 ); - sortKey = exdData->getField< uint16_t >( row, 20 ); - newPlayerBonusA = exdData->getField< uint16_t >( row, 23 ); - newPlayerBonusB = exdData->getField< uint16_t >( row, 24 ); - finalBossCurrencyA = exdData->getField< uint16_t >( row, 26 ); - finalBossCurrencyB = exdData->getField< uint16_t >( row, 27 ); - finalBossCurrencyC = exdData->getField< uint16_t >( row, 28 ); - instanceContentBuff = exdData->getField< int32_t >( row, 54 ); - partyCondition = exdData->getField< uint8_t >( row, 58 ); + name = exdData->getField< std::string >( row, 3 ); + bGM = exdData->getField< uint16_t >( row, 5 ); + territoryType = exdData->getField< uint32_t >( row, 9 ); + instanceContentTextDataBossStart = exdData->getField< uint32_t >( row, 13 ); + instanceContentTextDataBossEnd = exdData->getField< uint32_t >( row, 14 ); + bNpcBaseBoss = exdData->getField< uint32_t >( row, 15 ); + instanceContentTextDataObjectiveStart = exdData->getField< uint32_t >( row, 16 ); + instanceContentTextDataObjectiveEnd = exdData->getField< uint32_t >( row, 17 ); + sortKey = exdData->getField< uint16_t >( row, 18 ); + newPlayerBonusA = exdData->getField< uint16_t >( row, 21 ); + newPlayerBonusB = exdData->getField< uint16_t >( row, 22 ); + finalBossCurrencyA = exdData->getField< uint16_t >( row, 24 ); + finalBossCurrencyB = exdData->getField< uint16_t >( row, 25 ); + finalBossCurrencyC = exdData->getField< uint16_t >( row, 26 ); + instanceContentBuff = exdData->getField< int32_t >( row, 52 ); + partyCondition = exdData->getField< uint8_t >( row, 56 ); } Core::Data::InstanceContentBuff::InstanceContentBuff( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -2195,7 +2250,6 @@ placeNameStart = exdData->getField< int32_t >( row, 9 ); placeNameIssued = exdData->getField< int32_t >( row, 10 ); classJobCategory = exdData->getField< uint8_t >( row, 12 ); - journalCategory = exdData->getField< int32_t >( row, 13 ); placeNameStartZone = exdData->getField< int32_t >( row, 15 ); iconCityState = exdData->getField< int32_t >( row, 16 ); dataId = exdData->getField< int32_t >( row, 17 ); @@ -2235,6 +2289,7 @@ type = exdData->getField< uint8_t >( row, 5 ); objectKey = exdData->getField< uint32_t >( row, 6 ); map = exdData->getField< uint16_t >( row, 7 ); + eventId = exdData->getField< uint32_t >( row, 8 ); territory = exdData->getField< uint16_t >( row, 9 ); } @@ -2458,8 +2513,8 @@ plural = exdData->getField< std::string >( row, 2 ); flyingCondition = exdData->getField< uint8_t >( row, 10 ); isFlying = exdData->getField< uint8_t >( row, 14 ); - rideBGM = exdData->getField< uint16_t >( row, 28 ); - icon = exdData->getField< uint16_t >( row, 41 ); + rideBGM = exdData->getField< uint16_t >( row, 17 ); + icon = exdData->getField< uint16_t >( row, 30 ); } Core::Data::MountAction::MountAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -2512,8 +2567,8 @@ Core::Data::OnlineStatus::OnlineStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_OnlineStatusDat.get_row( row_id ); - name = exdData->getField< std::string >( row, 2 ); - icon = exdData->getField< uint32_t >( row, 3 ); + name = exdData->getField< std::string >( row, 3 ); + icon = exdData->getField< uint32_t >( row, 4 ); } Core::Data::Orchestrion::Orchestrion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -3870,7 +3925,6 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_CabinetDat = setupDatAccess( "Cabinet", xiv::exd::Language::none ); m_CabinetCategoryDat = setupDatAccess( "CabinetCategory", xiv::exd::Language::none ); m_CalendarDat = setupDatAccess( "Calendar", xiv::exd::Language::none ); - m_ChainBonusDat = setupDatAccess( "ChainBonus", xiv::exd::Language::none ); m_CharaMakeCustomizeDat = setupDatAccess( "CharaMakeCustomize", xiv::exd::Language::none ); m_CharaMakeTypeDat = setupDatAccess( "CharaMakeType", xiv::exd::Language::en ); m_ChocoboRaceDat = setupDatAccess( "ChocoboRace", xiv::exd::Language::none ); @@ -3940,11 +3994,13 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_ExVersionDat = setupDatAccess( "ExVersion", xiv::exd::Language::en ); m_FateDat = setupDatAccess( "Fate", xiv::exd::Language::en ); m_FCActivityDat = setupDatAccess( "FCActivity", xiv::exd::Language::en ); + m_FCActivityCategoryDat = setupDatAccess( "FCActivityCategory", xiv::exd::Language::en ); m_FCAuthorityDat = setupDatAccess( "FCAuthority", xiv::exd::Language::en ); m_FCAuthorityCategoryDat = setupDatAccess( "FCAuthorityCategory", xiv::exd::Language::en ); m_FCChestNameDat = setupDatAccess( "FCChestName", xiv::exd::Language::en ); m_FccShopDat = setupDatAccess( "FccShop", xiv::exd::Language::en ); m_FCHierarchyDat = setupDatAccess( "FCHierarchy", xiv::exd::Language::en ); + m_FCProfileDat = setupDatAccess( "FCProfile", xiv::exd::Language::en ); m_FCReputationDat = setupDatAccess( "FCReputation", xiv::exd::Language::en ); m_FCRightsDat = setupDatAccess( "FCRights", xiv::exd::Language::en ); m_FishingSpotDat = setupDatAccess( "FishingSpot", xiv::exd::Language::en ); @@ -3968,6 +4024,12 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_GcArmyExpeditionTypeDat = setupDatAccess( "GcArmyExpeditionType", xiv::exd::Language::en ); m_GcArmyMemberGrowDat = setupDatAccess( "GcArmyMemberGrow", xiv::exd::Language::none ); m_GcArmyTrainingDat = setupDatAccess( "GcArmyTraining", xiv::exd::Language::en ); + m_GCRankGridaniaFemaleTextDat = setupDatAccess( "GCRankGridaniaFemaleText", xiv::exd::Language::en ); + m_GCRankGridaniaMaleTextDat = setupDatAccess( "GCRankGridaniaMaleText", xiv::exd::Language::en ); + m_GCRankLimsaFemaleTextDat = setupDatAccess( "GCRankLimsaFemaleText", xiv::exd::Language::en ); + m_GCRankLimsaMaleTextDat = setupDatAccess( "GCRankLimsaMaleText", xiv::exd::Language::en ); + m_GCRankUldahFemaleTextDat = setupDatAccess( "GCRankUldahFemaleText", xiv::exd::Language::en ); + m_GCRankUldahMaleTextDat = setupDatAccess( "GCRankUldahMaleText", xiv::exd::Language::en ); m_GCScripShopCategoryDat = setupDatAccess( "GCScripShopCategory", xiv::exd::Language::none ); m_GCScripShopItemDat = setupDatAccess( "GCScripShopItem", xiv::exd::Language::none ); m_GCShopDat = setupDatAccess( "GCShop", xiv::exd::Language::none ); @@ -4928,21 +4990,6 @@ boost::shared_ptr< Core::Data::Calendar > } return nullptr; } -boost::shared_ptr< Core::Data::ChainBonus > - Core::Data::ExdDataGenerated::getChainBonus( uint32_t ChainBonusId ) -{ - try - { - auto row = m_ChainBonusDat.get_row( ChainBonusId ); - auto info = boost::make_shared< ChainBonus >( ChainBonusId, this ); - return info; - } - catch( ... ) - { - return nullptr; - } - return nullptr; -} boost::shared_ptr< Core::Data::CharaMakeCustomize > Core::Data::ExdDataGenerated::getCharaMakeCustomize( uint32_t CharaMakeCustomizeId ) { @@ -5978,6 +6025,21 @@ boost::shared_ptr< Core::Data::FCActivity > } return nullptr; } +boost::shared_ptr< Core::Data::FCActivityCategory > + Core::Data::ExdDataGenerated::getFCActivityCategory( uint32_t FCActivityCategoryId ) +{ + try + { + auto row = m_FCActivityCategoryDat.get_row( FCActivityCategoryId ); + auto info = boost::make_shared< FCActivityCategory >( FCActivityCategoryId, this ); + return info; + } + catch( ... ) + { + return nullptr; + } + return nullptr; +} boost::shared_ptr< Core::Data::FCAuthority > Core::Data::ExdDataGenerated::getFCAuthority( uint32_t FCAuthorityId ) { @@ -6053,6 +6115,21 @@ boost::shared_ptr< Core::Data::FCHierarchy > } return nullptr; } +boost::shared_ptr< Core::Data::FCProfile > + Core::Data::ExdDataGenerated::getFCProfile( uint32_t FCProfileId ) +{ + try + { + auto row = m_FCProfileDat.get_row( FCProfileId ); + auto info = boost::make_shared< FCProfile >( FCProfileId, this ); + return info; + } + catch( ... ) + { + return nullptr; + } + return nullptr; +} boost::shared_ptr< Core::Data::FCReputation > Core::Data::ExdDataGenerated::getFCReputation( uint32_t FCReputationId ) { @@ -6398,6 +6475,96 @@ boost::shared_ptr< Core::Data::GcArmyTraining > } return nullptr; } +boost::shared_ptr< Core::Data::GCRankGridaniaFemaleText > + Core::Data::ExdDataGenerated::getGCRankGridaniaFemaleText( uint32_t GCRankGridaniaFemaleTextId ) +{ + try + { + auto row = m_GCRankGridaniaFemaleTextDat.get_row( GCRankGridaniaFemaleTextId ); + auto info = boost::make_shared< GCRankGridaniaFemaleText >( GCRankGridaniaFemaleTextId, this ); + return info; + } + catch( ... ) + { + return nullptr; + } + return nullptr; +} +boost::shared_ptr< Core::Data::GCRankGridaniaMaleText > + Core::Data::ExdDataGenerated::getGCRankGridaniaMaleText( uint32_t GCRankGridaniaMaleTextId ) +{ + try + { + auto row = m_GCRankGridaniaMaleTextDat.get_row( GCRankGridaniaMaleTextId ); + auto info = boost::make_shared< GCRankGridaniaMaleText >( GCRankGridaniaMaleTextId, this ); + return info; + } + catch( ... ) + { + return nullptr; + } + return nullptr; +} +boost::shared_ptr< Core::Data::GCRankLimsaFemaleText > + Core::Data::ExdDataGenerated::getGCRankLimsaFemaleText( uint32_t GCRankLimsaFemaleTextId ) +{ + try + { + auto row = m_GCRankLimsaFemaleTextDat.get_row( GCRankLimsaFemaleTextId ); + auto info = boost::make_shared< GCRankLimsaFemaleText >( GCRankLimsaFemaleTextId, this ); + return info; + } + catch( ... ) + { + return nullptr; + } + return nullptr; +} +boost::shared_ptr< Core::Data::GCRankLimsaMaleText > + Core::Data::ExdDataGenerated::getGCRankLimsaMaleText( uint32_t GCRankLimsaMaleTextId ) +{ + try + { + auto row = m_GCRankLimsaMaleTextDat.get_row( GCRankLimsaMaleTextId ); + auto info = boost::make_shared< GCRankLimsaMaleText >( GCRankLimsaMaleTextId, this ); + return info; + } + catch( ... ) + { + return nullptr; + } + return nullptr; +} +boost::shared_ptr< Core::Data::GCRankUldahFemaleText > + Core::Data::ExdDataGenerated::getGCRankUldahFemaleText( uint32_t GCRankUldahFemaleTextId ) +{ + try + { + auto row = m_GCRankUldahFemaleTextDat.get_row( GCRankUldahFemaleTextId ); + auto info = boost::make_shared< GCRankUldahFemaleText >( GCRankUldahFemaleTextId, this ); + return info; + } + catch( ... ) + { + return nullptr; + } + return nullptr; +} +boost::shared_ptr< Core::Data::GCRankUldahMaleText > + Core::Data::ExdDataGenerated::getGCRankUldahMaleText( uint32_t GCRankUldahMaleTextId ) +{ + try + { + auto row = m_GCRankUldahMaleTextDat.get_row( GCRankUldahMaleTextId ); + auto info = boost::make_shared< GCRankUldahMaleText >( GCRankUldahMaleTextId, this ); + return info; + } + catch( ... ) + { + return nullptr; + } + return nullptr; +} boost::shared_ptr< Core::Data::GCScripShopCategory > Core::Data::ExdDataGenerated::getGCScripShopCategory( uint32_t GCScripShopCategoryId ) { diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index 530caaf0..49386231 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -1,5 +1,5 @@ -#ifndef _EXDDATAGENERATED_H -#define _EXDDATAGENERATED_H +#ifndef GENERATED_EXDDATA_H +#define GENERATED_EXDDATA_H /* This file has been automatically generated. Changes will be lost upon regeneration. @@ -71,7 +71,6 @@ struct BuddySkill; struct Cabinet; struct CabinetCategory; struct Calendar; -struct ChainBonus; struct CharaMakeCustomize; struct CharaMakeType; struct ChocoboRace; @@ -141,11 +140,13 @@ struct EventItemHelp; struct ExVersion; struct Fate; struct FCActivity; +struct FCActivityCategory; struct FCAuthority; struct FCAuthorityCategory; struct FCChestName; struct FccShop; struct FCHierarchy; +struct FCProfile; struct FCReputation; struct FCRights; struct FishingSpot; @@ -169,6 +170,12 @@ struct GcArmyExpeditionMemberBonus; struct GcArmyExpeditionType; struct GcArmyMemberGrow; struct GcArmyTraining; +struct GCRankGridaniaFemaleText; +struct GCRankGridaniaMaleText; +struct GCRankLimsaFemaleText; +struct GCRankLimsaMaleText; +struct GCRankUldahFemaleText; +struct GCRankUldahMaleText; struct GCScripShopCategory; struct GCScripShopItem; struct GCShop; @@ -838,14 +845,6 @@ struct Calendar Calendar( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; -struct ChainBonus -{ - uint8_t bonus; - uint8_t timeouts; - - ChainBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); -}; - struct CharaMakeCustomize { uint32_t icon; @@ -1143,8 +1142,10 @@ struct ContentFinderCondition uint8_t contentIndicator; uint16_t instanceContent; uint8_t contentMemberType; - uint8_t classJobLevel; + uint8_t classJobLevelRequired; + uint8_t classJobLevelSync; uint16_t itemLevelRequired; + uint16_t itemLevelSync; uint32_t icon; ContentFinderCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); @@ -1173,7 +1174,6 @@ struct ContentRoulette std::string description; std::string dutyType; bool isInDutyFinder; - bool requireAllDuties; uint16_t itemLevelRequired; uint32_t icon; uint16_t rewardTomeA; @@ -1181,6 +1181,7 @@ struct ContentRoulette uint16_t rewardTomeC; uint8_t sortKey; uint8_t contentMemberType; + bool requireAllDuties; ContentRoulette( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -1531,6 +1532,7 @@ struct EventAction { std::string name; uint16_t icon; + uint16_t castTime; EventAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -1562,6 +1564,7 @@ struct EventItem uint16_t icon; uint8_t stackSize; uint32_t quest; + uint8_t castTime; EventItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -1598,10 +1601,18 @@ struct Fate struct FCActivity { std::string text; + uint8_t fCActivityCategory; FCActivity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct FCActivityCategory +{ + std::string name; + + FCActivityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct FCAuthority { std::string name; @@ -1638,6 +1649,13 @@ struct FCHierarchy FCHierarchy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct FCProfile +{ + std::string name; + + FCProfile( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct FCReputation { uint32_t pointsToNext; @@ -1851,6 +1869,60 @@ struct GcArmyTraining GcArmyTraining( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct GCRankGridaniaFemaleText +{ + std::string name; + std::string plural; + std::string nameRank; + + GCRankGridaniaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct GCRankGridaniaMaleText +{ + std::string name; + std::string plural; + std::string nameRank; + + GCRankGridaniaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct GCRankLimsaFemaleText +{ + std::string name; + std::string plural; + std::string nameRank; + + GCRankLimsaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct GCRankLimsaMaleText +{ + std::string name; + std::string plural; + std::string nameRank; + + GCRankLimsaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct GCRankUldahFemaleText +{ + std::string name; + std::string plural; + std::string nameRank; + + GCRankUldahFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct GCRankUldahMaleText +{ + std::string name; + std::string plural; + std::string nameRank; + + GCRankUldahMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct GCScripShopCategory { int8_t grandCompany; @@ -2022,12 +2094,9 @@ struct InstanceContent uint8_t instanceContentType; uint8_t weekRestriction; uint16_t timeLimitmin; - uint8_t classJobLevelSync; std::string name; uint16_t bGM; - uint16_t itemLevelSync; uint32_t territoryType; - uint32_t icon; uint32_t instanceContentTextDataBossStart; uint32_t instanceContentTextDataBossEnd; uint32_t bNpcBaseBoss; @@ -2211,7 +2280,6 @@ struct Leve int32_t placeNameStart; int32_t placeNameIssued; uint8_t classJobCategory; - int32_t journalCategory; int32_t placeNameStartZone; int32_t iconCityState; int32_t dataId; @@ -2254,6 +2322,7 @@ struct Level uint8_t type; uint32_t objectKey; uint16_t map; + uint32_t eventId; uint16_t territory; Level( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); @@ -3026,6 +3095,7 @@ struct TerritoryType TerritoryType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; + struct TextCommand { std::string command; @@ -3366,7 +3436,6 @@ struct WorldDCGroupType xiv::exd::Exd m_CabinetDat; xiv::exd::Exd m_CabinetCategoryDat; xiv::exd::Exd m_CalendarDat; - xiv::exd::Exd m_ChainBonusDat; xiv::exd::Exd m_CharaMakeCustomizeDat; xiv::exd::Exd m_CharaMakeTypeDat; xiv::exd::Exd m_ChocoboRaceDat; @@ -3436,11 +3505,13 @@ struct WorldDCGroupType xiv::exd::Exd m_ExVersionDat; xiv::exd::Exd m_FateDat; xiv::exd::Exd m_FCActivityDat; + xiv::exd::Exd m_FCActivityCategoryDat; xiv::exd::Exd m_FCAuthorityDat; xiv::exd::Exd m_FCAuthorityCategoryDat; xiv::exd::Exd m_FCChestNameDat; xiv::exd::Exd m_FccShopDat; xiv::exd::Exd m_FCHierarchyDat; + xiv::exd::Exd m_FCProfileDat; xiv::exd::Exd m_FCReputationDat; xiv::exd::Exd m_FCRightsDat; xiv::exd::Exd m_FishingSpotDat; @@ -3464,6 +3535,12 @@ struct WorldDCGroupType xiv::exd::Exd m_GcArmyExpeditionTypeDat; xiv::exd::Exd m_GcArmyMemberGrowDat; xiv::exd::Exd m_GcArmyTrainingDat; + xiv::exd::Exd m_GCRankGridaniaFemaleTextDat; + xiv::exd::Exd m_GCRankGridaniaMaleTextDat; + xiv::exd::Exd m_GCRankLimsaFemaleTextDat; + xiv::exd::Exd m_GCRankLimsaMaleTextDat; + xiv::exd::Exd m_GCRankUldahFemaleTextDat; + xiv::exd::Exd m_GCRankUldahMaleTextDat; xiv::exd::Exd m_GCScripShopCategoryDat; xiv::exd::Exd m_GCScripShopItemDat; xiv::exd::Exd m_GCShopDat; @@ -3658,7 +3735,6 @@ struct WorldDCGroupType boost::shared_ptr< Cabinet > getCabinet( uint32_t CabinetId ); boost::shared_ptr< CabinetCategory > getCabinetCategory( uint32_t CabinetCategoryId ); boost::shared_ptr< Calendar > getCalendar( uint32_t CalendarId ); - boost::shared_ptr< ChainBonus > getChainBonus( uint32_t ChainBonusId ); boost::shared_ptr< CharaMakeCustomize > getCharaMakeCustomize( uint32_t CharaMakeCustomizeId ); boost::shared_ptr< CharaMakeType > getCharaMakeType( uint32_t CharaMakeTypeId ); boost::shared_ptr< ChocoboRace > getChocoboRace( uint32_t ChocoboRaceId ); @@ -3728,11 +3804,13 @@ struct WorldDCGroupType boost::shared_ptr< ExVersion > getExVersion( uint32_t ExVersionId ); boost::shared_ptr< Fate > getFate( uint32_t FateId ); boost::shared_ptr< FCActivity > getFCActivity( uint32_t FCActivityId ); + boost::shared_ptr< FCActivityCategory > getFCActivityCategory( uint32_t FCActivityCategoryId ); boost::shared_ptr< FCAuthority > getFCAuthority( uint32_t FCAuthorityId ); boost::shared_ptr< FCAuthorityCategory > getFCAuthorityCategory( uint32_t FCAuthorityCategoryId ); boost::shared_ptr< FCChestName > getFCChestName( uint32_t FCChestNameId ); boost::shared_ptr< FccShop > getFccShop( uint32_t FccShopId ); boost::shared_ptr< FCHierarchy > getFCHierarchy( uint32_t FCHierarchyId ); + boost::shared_ptr< FCProfile > getFCProfile( uint32_t FCProfileId ); boost::shared_ptr< FCReputation > getFCReputation( uint32_t FCReputationId ); boost::shared_ptr< FCRights > getFCRights( uint32_t FCRightsId ); boost::shared_ptr< FishingSpot > getFishingSpot( uint32_t FishingSpotId ); @@ -3756,6 +3834,12 @@ struct WorldDCGroupType boost::shared_ptr< GcArmyExpeditionType > getGcArmyExpeditionType( uint32_t GcArmyExpeditionTypeId ); boost::shared_ptr< GcArmyMemberGrow > getGcArmyMemberGrow( uint32_t GcArmyMemberGrowId ); boost::shared_ptr< GcArmyTraining > getGcArmyTraining( uint32_t GcArmyTrainingId ); + boost::shared_ptr< GCRankGridaniaFemaleText > getGCRankGridaniaFemaleText( uint32_t GCRankGridaniaFemaleTextId ); + boost::shared_ptr< GCRankGridaniaMaleText > getGCRankGridaniaMaleText( uint32_t GCRankGridaniaMaleTextId ); + boost::shared_ptr< GCRankLimsaFemaleText > getGCRankLimsaFemaleText( uint32_t GCRankLimsaFemaleTextId ); + boost::shared_ptr< GCRankLimsaMaleText > getGCRankLimsaMaleText( uint32_t GCRankLimsaMaleTextId ); + boost::shared_ptr< GCRankUldahFemaleText > getGCRankUldahFemaleText( uint32_t GCRankUldahFemaleTextId ); + boost::shared_ptr< GCRankUldahMaleText > getGCRankUldahMaleText( uint32_t GCRankUldahMaleTextId ); boost::shared_ptr< GCScripShopCategory > getGCScripShopCategory( uint32_t GCScripShopCategoryId ); boost::shared_ptr< GCScripShopItem > getGCScripShopItem( uint32_t GCScripShopItemId ); boost::shared_ptr< GCShop > getGCShop( uint32_t GCShopId ); @@ -3950,7 +4034,6 @@ struct WorldDCGroupType std::set< uint32_t > m_CabinetIdList; std::set< uint32_t > m_CabinetCategoryIdList; std::set< uint32_t > m_CalendarIdList; - std::set< uint32_t > m_ChainBonusIdList; std::set< uint32_t > m_CharaMakeCustomizeIdList; std::set< uint32_t > m_CharaMakeTypeIdList; std::set< uint32_t > m_ChocoboRaceIdList; @@ -4020,11 +4103,13 @@ struct WorldDCGroupType std::set< uint32_t > m_ExVersionIdList; std::set< uint32_t > m_FateIdList; std::set< uint32_t > m_FCActivityIdList; + std::set< uint32_t > m_FCActivityCategoryIdList; std::set< uint32_t > m_FCAuthorityIdList; std::set< uint32_t > m_FCAuthorityCategoryIdList; std::set< uint32_t > m_FCChestNameIdList; std::set< uint32_t > m_FccShopIdList; std::set< uint32_t > m_FCHierarchyIdList; + std::set< uint32_t > m_FCProfileIdList; std::set< uint32_t > m_FCReputationIdList; std::set< uint32_t > m_FCRightsIdList; std::set< uint32_t > m_FishingSpotIdList; @@ -4048,6 +4133,12 @@ struct WorldDCGroupType std::set< uint32_t > m_GcArmyExpeditionTypeIdList; std::set< uint32_t > m_GcArmyMemberGrowIdList; std::set< uint32_t > m_GcArmyTrainingIdList; + std::set< uint32_t > m_GCRankGridaniaFemaleTextIdList; + std::set< uint32_t > m_GCRankGridaniaMaleTextIdList; + std::set< uint32_t > m_GCRankLimsaFemaleTextIdList; + std::set< uint32_t > m_GCRankLimsaMaleTextIdList; + std::set< uint32_t > m_GCRankUldahFemaleTextIdList; + std::set< uint32_t > m_GCRankUldahMaleTextIdList; std::set< uint32_t > m_GCScripShopCategoryIdList; std::set< uint32_t > m_GCScripShopItemIdList; std::set< uint32_t > m_GCShopIdList; @@ -4512,12 +4603,6 @@ const std::set< uint32_t >& getCalendarIdList() loadIdList( m_CalendarDat, m_CalendarIdList ); return m_CalendarIdList; } -const std::set< uint32_t >& getChainBonusIdList() -{ - if( m_ChainBonusIdList.size() == 0 ) - loadIdList( m_ChainBonusDat, m_ChainBonusIdList ); - return m_ChainBonusIdList; -} const std::set< uint32_t >& getCharaMakeCustomizeIdList() { if( m_CharaMakeCustomizeIdList.size() == 0 ) @@ -4932,6 +5017,12 @@ const std::set< uint32_t >& getFCActivityIdList() loadIdList( m_FCActivityDat, m_FCActivityIdList ); return m_FCActivityIdList; } +const std::set< uint32_t >& getFCActivityCategoryIdList() +{ + if( m_FCActivityCategoryIdList.size() == 0 ) + loadIdList( m_FCActivityCategoryDat, m_FCActivityCategoryIdList ); + return m_FCActivityCategoryIdList; +} const std::set< uint32_t >& getFCAuthorityIdList() { if( m_FCAuthorityIdList.size() == 0 ) @@ -4962,6 +5053,12 @@ const std::set< uint32_t >& getFCHierarchyIdList() loadIdList( m_FCHierarchyDat, m_FCHierarchyIdList ); return m_FCHierarchyIdList; } +const std::set< uint32_t >& getFCProfileIdList() +{ + if( m_FCProfileIdList.size() == 0 ) + loadIdList( m_FCProfileDat, m_FCProfileIdList ); + return m_FCProfileIdList; +} const std::set< uint32_t >& getFCReputationIdList() { if( m_FCReputationIdList.size() == 0 ) @@ -5100,6 +5197,42 @@ const std::set< uint32_t >& getGcArmyTrainingIdList() loadIdList( m_GcArmyTrainingDat, m_GcArmyTrainingIdList ); return m_GcArmyTrainingIdList; } +const std::set< uint32_t >& getGCRankGridaniaFemaleTextIdList() +{ + if( m_GCRankGridaniaFemaleTextIdList.size() == 0 ) + loadIdList( m_GCRankGridaniaFemaleTextDat, m_GCRankGridaniaFemaleTextIdList ); + return m_GCRankGridaniaFemaleTextIdList; +} +const std::set< uint32_t >& getGCRankGridaniaMaleTextIdList() +{ + if( m_GCRankGridaniaMaleTextIdList.size() == 0 ) + loadIdList( m_GCRankGridaniaMaleTextDat, m_GCRankGridaniaMaleTextIdList ); + return m_GCRankGridaniaMaleTextIdList; +} +const std::set< uint32_t >& getGCRankLimsaFemaleTextIdList() +{ + if( m_GCRankLimsaFemaleTextIdList.size() == 0 ) + loadIdList( m_GCRankLimsaFemaleTextDat, m_GCRankLimsaFemaleTextIdList ); + return m_GCRankLimsaFemaleTextIdList; +} +const std::set< uint32_t >& getGCRankLimsaMaleTextIdList() +{ + if( m_GCRankLimsaMaleTextIdList.size() == 0 ) + loadIdList( m_GCRankLimsaMaleTextDat, m_GCRankLimsaMaleTextIdList ); + return m_GCRankLimsaMaleTextIdList; +} +const std::set< uint32_t >& getGCRankUldahFemaleTextIdList() +{ + if( m_GCRankUldahFemaleTextIdList.size() == 0 ) + loadIdList( m_GCRankUldahFemaleTextDat, m_GCRankUldahFemaleTextIdList ); + return m_GCRankUldahFemaleTextIdList; +} +const std::set< uint32_t >& getGCRankUldahMaleTextIdList() +{ + if( m_GCRankUldahMaleTextIdList.size() == 0 ) + loadIdList( m_GCRankUldahMaleTextDat, m_GCRankUldahMaleTextIdList ); + return m_GCRankUldahMaleTextIdList; +} const std::set< uint32_t >& getGCScripShopCategoryIdList() { if( m_GCScripShopCategoryIdList.size() == 0 ) diff --git a/src/tools/exd_struct_gen/ExdData.h.tmpl b/src/tools/exd_struct_gen/ExdData.h.tmpl index 486d04a6..7d75e945 100644 --- a/src/tools/exd_struct_gen/ExdData.h.tmpl +++ b/src/tools/exd_struct_gen/ExdData.h.tmpl @@ -1,5 +1,5 @@ -#ifndef _EXDDATA_H -#define _EXDDATA_H +#ifndef GENERATED_EXDDATA_H +#define GENERATED_EXDDATA_H /* This file has been automatically generated. Changes will be lost upon regeneration. diff --git a/src/tools/exd_struct_gen/main.cpp b/src/tools/exd_struct_gen/main.cpp index 32183b3c..b6486f43 100644 --- a/src/tools/exd_struct_gen/main.cpp +++ b/src/tools/exd_struct_gen/main.cpp @@ -80,7 +80,7 @@ std::string generateDirectGetterDef( const std::string& exd ) std::string result = ""; result = "boost::shared_ptr< Core::Data::" + exd + " >\n" - " get" + exd + "( uint32_t " + exd + "Id )\n" + " Core::Data::ExdDataGenerated::get" + exd + "( uint32_t " + exd + "Id )\n" "{\n" " try\n" " {\n" @@ -273,9 +273,10 @@ std::string generateConstructorsDecl( const std::string& exd ) int main( int argc, char** argv ) { + g_log.init(); if( argc > 1 ) { - printf( "using dat path: %s", argv[1] ); + g_log.info( "using dat path: " + std::string( argv[1] ) ); datLocation = std::string( argv[1] ); } @@ -303,7 +304,6 @@ int main( int argc, char** argv ) using boost::property_tree::ptree; ptree m_propTree; boost::property_tree::read_json( "ex.json", m_propTree ); - g_log.init(); g_log.info( "Setting up EXD data" ); if( !g_exdData.init( datLocation ) ) From 379c9eaf24a444a8cf96e4b0f36f555307e9e95d Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 31 Jan 2018 02:06:11 +1100 Subject: [PATCH 4/4] goat can finish this --- src/servers/sapphire_zone/Event/EventHelper.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/servers/sapphire_zone/Event/EventHelper.cpp b/src/servers/sapphire_zone/Event/EventHelper.cpp index 526faaeb..a043de75 100644 --- a/src/servers/sapphire_zone/Event/EventHelper.cpp +++ b/src/servers/sapphire_zone/Event/EventHelper.cpp @@ -2,8 +2,10 @@ #include "EventHandler.h" #include #include +#include extern Core::Data::ExdData g_exdData; +extern Core::Data::ExdDataGenerated g_exdDataGen; using namespace Core::Common; @@ -17,25 +19,25 @@ std::string Core::Event::getEventName( uint32_t eventId ) { case Event::EventHandler::EventHandlerType::Quest: { - auto questInfo = g_exdData.getQuestInfo( eventId ); + auto questInfo = g_exdDataGen.getQuest( eventId ); if( !questInfo ) return unknown + "Quest"; - std::string name = questInfo->name_intern; + std::string name = questInfo->name; std::size_t pos = name.find_first_of( "_" ); - return questInfo->name_intern.substr( 0, pos ); + return questInfo->name.substr( 0, pos ); } case Event::EventHandler::EventHandlerType::CustomTalk: { - auto customTalkInfo = g_exdData.getCustomTalkInfo( eventId ); + auto customTalkInfo = g_exdDataGen.getCustomTalk( eventId ); if( !customTalkInfo ) return unknown + "CustomTalk"; - std::string name = customTalkInfo->name_intern; + std::string name = customTalkInfo->name; std::size_t pos = name.find_first_of( "_" ); - return customTalkInfo->name_intern.substr( 0, pos ); + return customTalkInfo->name.substr( 0, pos ); } case Event::EventHandler::EventHandlerType::Opening: { @@ -46,7 +48,7 @@ std::string Core::Event::getEventName( uint32_t eventId ) } case Event::EventHandler::EventHandlerType::Aetheryte: { - auto aetherInfo = g_exdData.getAetheryteInfo( eventId & 0xFFFF ); + auto aetherInfo = g_exdDataGen.getAetheryte( eventId & 0xFFFF ); if( aetherInfo->isAetheryte ) return "Aetheryte"; return "Aethernet";