From 2c901c12ec2eae742c359ee4291519891e78b5e6 Mon Sep 17 00:00:00 2001 From: goaaats Date: Tue, 22 May 2018 20:15:30 +0200 Subject: [PATCH 1/2] exd_struct_gen: Fix fields starting with numbers, fix fields that are cpp keywords --- src/tools/exd_struct_gen/main.cpp | 41 +++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/src/tools/exd_struct_gen/main.cpp b/src/tools/exd_struct_gen/main.cpp index e0d21973..c31aca84 100644 --- a/src/tools/exd_struct_gen/main.cpp +++ b/src/tools/exd_struct_gen/main.cpp @@ -25,13 +25,34 @@ #include #include #include +#include Core::Logger g_log; Core::Data::ExdData g_exdData; bool skipUnmapped = true; -std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" ); +std::map< char, std::string > numberToStringMap +{ + { '0', "zero" }, + { '1', "one" }, + { '2', "two" }, + { '3', "three" }, + { '4', "four" }, + { '5', "five" }, + { '6', "six" }, + { '7', "seven" }, + { '8', "eight" }, + { '9', "nine" }, +}; + +std::vector< std::string > cppKeyWords +{ + "new", + "class" +}; + +std::string datLocation( "E:\\Steam\\SteamApps\\common\\FINAL FANTASY XIV Online\\game\\sqpack" ); //std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv" ); std::map< uint8_t, std::string > g_typeMap; @@ -179,7 +200,23 @@ std::string generateStruct( const std::string &exd ) fieldName = indexToNameMap[count]; } fieldName[0] = std::tolower( fieldName[0] ); - fieldName.erase( boost::remove_if( fieldName, boost::is_any_of(",-':![](){}<>% \x02\x1f\x01\x03") ), fieldName.end() ); + fieldName.erase( boost::remove_if( fieldName, boost::is_any_of(",-':![](){}<>% \x02\x1f\x01\x03") ), fieldName.end() ); + + for( auto entry : numberToStringMap ) + { + if( fieldName[0] == entry.first ) + { + fieldName.erase( 0, 1 ); + fieldName.insert( 0, entry.second ); + } + } + + for( std::string keyword : cppKeyWords ) + { + if( fieldName == keyword ) + fieldName[0] = toupper( fieldName[0] ); + } + indexToNameMap[count] = fieldName; indexToTypeMap[count] = type; if( indexToTarget.find( count ) != indexToTarget.end() ) From 3b0a5c9226e578e2009b771a3e9c5dddde1d8177 Mon Sep 17 00:00:00 2001 From: goaaats Date: Tue, 22 May 2018 20:15:46 +0200 Subject: [PATCH 2/2] Update ex.json(needs testing) --- src/tools/exd_struct_gen/ex.json | 1627 ++++++++++++++++++++++++++++-- 1 file changed, 1525 insertions(+), 102 deletions(-) diff --git a/src/tools/exd_struct_gen/ex.json b/src/tools/exd_struct_gen/ex.json index eabdf8ec..8dd7ef24 100644 --- a/src/tools/exd_struct_gen/ex.json +++ b/src/tools/exd_struct_gen/ex.json @@ -1,5 +1,5 @@ { - "version": "2018.01.25.0000.0000", + "version": "2018.05.16.0000.0000", "sheets": [ { "sheet": "Achievement", @@ -113,9 +113,25 @@ "target": "ActionCategory" } }, + { + "index": 5, + "name": "Animation{Start}", + "converter": { + "type": "link", + "target": "ActionCastTimeline" + } + }, + { + "index": 6, + "name": "VFX", + "converter": { + "type": "link", + "target": "ActionCastVFX" + } + }, { "index": 7, - "name": "ActionTimeline{Use}", + "name": "Animation{End}", "converter": { "type": "link", "target": "ActionTimeline" @@ -278,6 +294,40 @@ } ] }, + { + "sheet": "ActionCastTimeline", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 1, + "name": "VFX", + "converter": { + "type": "link", + "target": "VFX" + } + } + ] + }, + { + "sheet": "ActionCastVFX", + "defaultColumn": "VFX", + "definitions": [ + { + "name": "VFX", + "converter": { + "type": "link", + "target": "VFX" + } + } + ] + }, { "sheet": "ActionCategory", "defaultColumn": "Name", @@ -321,6 +371,15 @@ } ] }, + { + "sheet": "ActionParam", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name" + } + ] + }, { "sheet": "ActionProcStatus", "defaultColumn": "Status", @@ -344,6 +403,26 @@ } ] }, + { + "sheet": "ActionTimelineReplace", + "definitions": [ + { + "name": "Old", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 1, + "name": "New", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + } + ] + }, { "sheet": "ActionTransient", "defaultColumn": "Description", @@ -476,6 +555,30 @@ } ] }, + { + "sheet": "AetherCurrentCompFlgSet", + "definitions": [ + { + "name": "Territory", + "converter": { + "type": "link", + "target": "TerritoryType" + } + }, + { + "index": 2, + "type": "repeat", + "count": 15, + "definition": { + "name": "AetherCurrent", + "converter": { + "type": "link", + "target": "AetherCurrent" + } + } + } + ] + }, { "sheet": "AetherialWheel", "definitions": [ @@ -532,6 +635,18 @@ "target": "TerritoryType" } }, + { + "index": 11, + "type": "repeat", + "count": 4, + "definition": { + "name": "Level", + "converter": { + "type": "link", + "target": "Level" + } + } + }, { "index": 15, "name": "IsAetheryte" @@ -929,6 +1044,82 @@ { "index": 2, "name": "Description" + }, + { + "index": 4, + "name": "1HWpn%" + }, + { + "index": 5, + "name": "OH<%>" + }, + { + "index": 6, + "name": "Head<%>" + }, + { + "index": 7, + "name": "Chest<%>" + }, + { + "index": 8, + "name": "Hands<%>" + }, + { + "index": 9, + "name": "Waist<%>" + }, + { + "index": 10, + "name": "Legs<%>" + }, + { + "index": 11, + "name": "Feet<%>" + }, + { + "index": 12, + "name": "Earring<%>" + }, + { + "index": 13, + "name": "Necklace<%>" + }, + { + "index": 14, + "name": "Bracelet<%>" + }, + { + "index": 15, + "name": "Ring<%>" + }, + { + "index": 16, + "name": "2HWpn<%>" + }, + { + "index": 18, + "name": "ChestHead<%>" + }, + { + "index": 19, + "name": "ChestHeadLegsFeet<%>" + }, + { + "index": 21, + "name": "LegsFeet<%>" + }, + { + "index": 22, + "name": "HeadChestHandsLegsFeet<%>" + }, + { + "index": 23, + "name": "ChestLegsGloves<%>" + }, + { + "index": 24, + "name": "ChestLegsFeet<%>" } ] }, @@ -1066,7 +1257,11 @@ }, { "index": 7, - "name": "Expansion" + "name": "Expansion", + "converter": { + "type": "link", + "target": "ExVersion" + } }, { "index": 8, @@ -1294,6 +1489,43 @@ } ] }, + { + "sheet": "Buddy", + "definitions": [ + { + "index": 1, + "name": "QuestRequirement{2}", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 2, + "name": "QuestRequirement{1}", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 4, + "name": "SoundEffect{4}" + }, + { + "index": 5, + "name": "SoundEffect{3}" + }, + { + "index": 6, + "name": "SoundEffect{2}" + }, + { + "index": 7, + "name": "SoundEffect{1}" + } + ] + }, { "sheet": "BuddyAction", "defaultColumn": "Name", @@ -1404,6 +1636,43 @@ "definitions": [ { "name": "BuddyLevel" + }, + { + "index": 1, + "name": "IsActive" + }, + { + "index": 2, + "name": "Defender", + "converter": { + "type": "multiref", + "targets": [ + "Trait", + "Action" + ] + } + }, + { + "index": 3, + "name": "Attacker", + "converter": { + "type": "multiref", + "targets": [ + "Trait", + "Action" + ] + } + }, + { + "index": 4, + "name": "Healer", + "converter": { + "type": "multiref", + "targets": [ + "Trait", + "Action" + ] + } } ] }, @@ -1434,7 +1703,7 @@ }, { "sheet": "CabinetCategory", - "defaultColumn": "Name", + "defaultColumn": "Category", "definitions": [ { "name": "MenuOrder" @@ -1489,6 +1758,10 @@ { "index": 2, "name": "Data" + }, + { + "index": 3, + "name": "IsPurchasable" } ] }, @@ -1515,7 +1788,7 @@ "name": "Gender" }, { - "index": 2283, + "index": 3291, "type": "repeat", "count": 42, "definition": { @@ -1581,6 +1854,7 @@ }, { "sheet": "ChocoboRaceAbilityType", + "defaultColumn": "IsActive", "definitions": [ { "name": "IsActive" @@ -1672,8 +1946,21 @@ } ] }, + { + "sheet": "ChocoboTaxi", + "definitions": [ + { + "name": "Location", + "converter": { + "type": "link", + "target": "ChocoboTaxiStand" + } + } + ] + }, { "sheet": "ChocoboTaxiStand", + "defaultColumn": "PlaceName", "isGenericReferenceTarget": true, "definitions": [ { @@ -1789,6 +2076,30 @@ "target": "Item" } }, + { + "index": 38, + "name": "UnlockQuest", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 39, + "name": "RelicQuest", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 40, + "name": "Prerequisite", + "converter": { + "type": "link", + "target": "Quest" + } + }, { "index": 41, "name": "StartingLevel" @@ -1937,6 +2248,14 @@ { "index": 34, "name": "AST" + }, + { + "index": 35, + "name": "SAM" + }, + { + "index": 36, + "name": "RDM" } ] }, @@ -2367,11 +2686,7 @@ "sheet": "ContentFinderCondition", "definitions": [ { - "index": 1, - "name": "ContentIndicator" - }, - { - "index": 2, + "index": 3, "name": "InstanceContent", "converter": { "type": "link", @@ -2379,7 +2694,7 @@ } }, { - "index": 7, + "index": 9, "name": "ContentMemberType", "converter": { "type": "link", @@ -2387,23 +2702,35 @@ } }, { - "index": 13, + "index": 15, "name": "ClassJobLevel{Required}" }, { - "index": 14, + "index": 16, "name": "ClassJobLevel{Sync}" }, { - "index": 15, + "index": 17, "name": "ItemLevel{Required}" }, { - "index": 16, + "index": 18, "name": "ItemLevel{Sync}" }, { - "index": 36, + "index": 24, + "name": "ContentIndicator" + }, + { + "index": 33, + "name": "ContentType", + "converter": { + "type": "link", + "target": "ContentType" + } + }, + { + "index": 37, "name": "Icon", "converter": { "type": "icon" @@ -2441,6 +2768,23 @@ } ] }, + { + "sheet": "ContentNpcTalk", + "definitions": [ + { + "index": 1, + "type": "repeat", + "count": 8, + "definition": { + "name": "ContentTalk", + "converter": { + "type": "link", + "target": "ContentTalk" + } + } + } + ] + }, { "sheet": "ContentRoulette", "defaultColumn": "Name", @@ -2461,34 +2805,34 @@ "name": "IsInDutyFinder" }, { - "index": 10, + "index": 11, "name": "ItemLevel{Required}" }, { - "index": 12, + "index": 13, "name": "Icon", "converter": { "type": "icon" } }, { - "index": 14, + "index": 15, "name": "Reward{TomeA}" }, { - "index": 15, + "index": 16, "name": "Reward{TomeB}" }, { - "index": 16, + "index": 17, "name": "Reward{TomeC}" }, { - "index": 19, + "index": 20, "name": "SortKey" }, { - "index": 21, + "index": 22, "name": "ContentMemberType", "converter": { "type": "link", @@ -2496,11 +2840,74 @@ } }, { - "index": 31, + "index": 32, "name": "RequireAllDuties" } ] }, + { + "sheet": "ContentsNote", + "definitions": [ + { + "name": "ContentType", + "converter": { + "type": "link", + "target": "ContentsNoteCategory" + } + }, + { + "index": 2, + "name": "RequiredAmount" + } + ] + }, + { + "sheet": "ContentsNoteCategory", + "defaultColumn": "Type", + "definitions": [ + { + "index": 1, + "name": "Type", + "converter": { + "type": "link", + "target": "ContentType" + } + } + ] + }, + { + "sheet": "ContentTalk", + "defaultColumn": "Text", + "definitions": [ + { + "name": "ContentTalkParam", + "converter": { + "type": "link", + "target": "ContentTalkParam" + } + }, + { + "index": 1, + "name": "Text" + } + ] + }, + { + "sheet": "ContentTalkParam", + "definitions": [ + { + "name": "Param" + }, + { + "index": 2, + "name": "TestAction", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + } + ] + }, { "sheet": "ContentType", "defaultColumn": "Name", @@ -2535,6 +2942,22 @@ "index": 1, "name": "Description" }, + { + "index": 2, + "name": "Animation{Start}", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 3, + "name": "Animation{End}", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, { "index": 4, "name": "Icon", @@ -2676,9 +3099,6 @@ }, { "name": "ItemCount" - }, - { - "name": "HQ" } ] } @@ -3516,6 +3936,15 @@ } ] }, + { + "sheet": "EObjName", + "defaultColumn": "Singular", + "definitions": [ + { + "name": "Singular" + } + ] + }, { "sheet": "EquipRaceCategory", "definitions": [ @@ -3612,6 +4041,37 @@ } ] }, + { + "sheet": "EurekaAethernet", + "defaultColumn": "Location", + "definitions": [ + { + "name": "Location", + "converter": { + "type": "link", + "target": "PlaceName" + } + } + ] + }, + { + "sheet": "EurekaGrowData", + "defaultColumn": "BaseElementalPower", + "definitions": [ + { + "name": "BaseResistance" + } + ] + }, + { + "sheet": "EurekaSphereElementAdjust", + "defaultColumn": "PowerModifier", + "definitions": [ + { + "name": "PowerModifier" + } + ] + }, { "sheet": "EventAction", "defaultColumn": "Name", @@ -3749,6 +4209,13 @@ "sheet": "Fate", "defaultColumn": "Name", "definitions": [ + { + "name": "EurekaFate" + }, + { + "index": 2, + "name": "Location" + }, { "index": 3, "name": "ClassJobLevel" @@ -3779,6 +4246,14 @@ "type": "icon" } }, + { + "index": 13, + "name": "Music", + "converter": { + "type": "link", + "target": "BGM" + } + }, { "index": 27, "name": "Name" @@ -3798,6 +4273,14 @@ "definition": { "name": "StatusText" } + }, + { + "index": 33, + "name": "ArrayIndex", + "converter": { + "type": "link", + "target": "ArrayEventHandler" + } } ] }, @@ -3984,6 +4467,26 @@ } ] }, + { + "sheet": "FieldMarker", + "defaultColumn": "Icon", + "definitions": [ + { + "name": "VFX", + "converter": { + "type": "link", + "target": "VFX" + } + }, + { + "index": 1, + "name": "Icon", + "converter": { + "type": "icon" + } + } + ] + }, { "sheet": "FishingSpot", "defaultColumn": "PlaceName", @@ -4848,6 +5351,14 @@ "index": 1, "name": "Description" }, + { + "index": 3, + "name": "Action", + "converter": { + "type": "link", + "target": "Action" + } + }, { "index": 7, "name": "Icon", @@ -4879,9 +5390,9 @@ } }, { + "index": 3, "type": "repeat", "count": 3, - "index": 3, "definition": { "name": "Row{Required}", "converter": { @@ -5079,11 +5590,11 @@ } }, { - "index": 5, + "index": 6, "name": "Event" }, { - "index": 6, + "index": 7, "name": "Item", "converter": { "type": "link", @@ -5091,7 +5602,7 @@ } }, { - "index": 7, + "index": 8, "name": "DestroyOnRemoval" } ] @@ -5202,11 +5713,19 @@ }, { "index": 16, - "name": "InstanceContentTextData{Objective}{Start}" + "name": "InstanceContentTextData{Objective}{Start}", + "converter": { + "type": "link", + "target": "InstanceContentTextData" + } }, { "index": 17, - "name": "InstanceContentTextData{Objective}{End}" + "name": "InstanceContentTextData{Objective}{End}", + "converter": { + "type": "link", + "target": "InstanceContentTextData" + } }, { "index": 18, @@ -5306,23 +5825,6 @@ } ] }, - { - "sheet": "InstanceContentType", - "definitions": [ - { - "index": 2, - "name": "SortKey" - }, - { - "index": 4, - "name": "ContentType", - "converter": { - "type": "link", - "target": "ContentType" - } - } - ] - }, { "sheet": "Item", "defaultColumn": "Name", @@ -6007,7 +6509,6 @@ }, { "sheet": "Level", - "defaultColumn": "Map", "definitions": [ { "name": "X" @@ -6365,6 +6866,14 @@ "index": 4, "name": "SubtextOrientation" }, + { + "index": 5, + "name": "MapMarkerRegion", + "converter": { + "type": "link", + "target": "MapMarkerRegion" + } + }, { "index": 6, "name": "Type" @@ -6379,6 +6888,15 @@ } ] }, + { + "sheet": "MapMarkerRegion", + "defaultColumn": "X", + "definitions": [ + { + "name": "X" + } + ] + }, { "sheet": "MapSymbol", "definitions": [ @@ -6398,6 +6916,21 @@ } ] }, + { + "sheet": "Marker", + "definitions": [ + { + "name": "Icon", + "converter": { + "type": "icon" + } + }, + { + "index": 1, + "name": "Name" + } + ] + }, { "sheet": "MasterpieceSupplyDuty", "definitions": [ @@ -6753,6 +7286,112 @@ } ] }, + { + "sheet": "MoveTimeline", + "defaultColumn": "Idle", + "definitions": [ + { + "name": "Idle", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 1, + "name": "MoveForward", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 2, + "name": "MoveBack", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 3, + "name": "MoveLeft", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 4, + "name": "MoveRight", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 5, + "name": "MoveUp", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 6, + "name": "MoveDown", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 7, + "name": "MoveTurnLeft", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 8, + "name": "MoveTurnRight", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 9, + "name": "Extra", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + } + ] + }, + { + "sheet": "MoveVfx", + "defaultColumn": "0", + "definitions": [ + { + "name": "0", + "converter": { + "type": "link", + "target": "VFX" + } + }, + { + "index": 1, + "name": "1", + "converter": { + "type": "link", + "target": "VFX" + } + } + ] + }, { "sheet": "NpcEquip", "definitions": [ @@ -7025,6 +7664,88 @@ } ] }, + { + "sheet": "Perform", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name" + }, + { + "index": 2, + "name": "ModelKey" + }, + { + "index": 3, + "name": "Animation{Start}", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 4, + "name": "Animation{End}", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 5, + "name": "Animation{Idle}", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 6, + "name": "Animation{Play01}", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 7, + "name": "Animation{Play02}", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 8, + "name": "StopAnimation", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 9, + "name": "Instrument" + }, + { + "index": 11, + "name": "Transient", + "converter": { + "type": "link", + "target": "PerformTransient" + } + } + ] + }, + { + "sheet": "PerformTransient", + "defaultColumn": "Text", + "definitions": [ + { + "name": "Text" + } + ] + }, { "sheet": "Pet", "defaultColumn": "Name", @@ -7100,6 +7821,52 @@ } ] }, + { + "sheet": "PublicContent", + "defaultColumn": "Name", + "definitions": [ + { + "index": 1, + "name": "TimeLimit" + }, + { + "index": 2, + "name": "MapIcon", + "converter": { + "type": "icon" + } + }, + { + "index": 3, + "name": "Name" + }, + { + "index": 7, + "name": "TerritoryType", + "converter": { + "type": "link", + "target": "TerritoryType" + } + } + ] + }, + { + "sheet": "PvPActionSort", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name" + }, + { + "index": 1, + "name": "Action", + "converter": { + "type": "link", + "target": "Action" + } + } + ] + }, { "sheet": "Quest", "defaultColumn": "Name", @@ -7293,7 +8060,7 @@ "name": "RepeatIntervalType" }, { - "index": 49, + "index": 50, "type": "repeat", "count": 50, "definition": { @@ -7301,7 +8068,7 @@ } }, { - "index": 99, + "index": 100, "type": "repeat", "count": 50, "definition": { @@ -7309,7 +8076,7 @@ } }, { - "index": 1221, + "index": 1222, "type": "repeat", "count": 171, "definition": { @@ -7321,7 +8088,7 @@ } }, { - "index": 1437, + "index": 1438, "name": "ClassJob{Required}", "converter": { "type": "link", @@ -7329,19 +8096,19 @@ } }, { - "index": 1439, + "index": 1440, "name": "ExpFactor" }, { - "index": 1440, + "index": 1441, "name": "GilReward" }, { - "index": 1442, + "index": 1443, "name": "GCSeals" }, { - "index": 1443, + "index": 1444, "type": "repeat", "count": 3, "definition": { @@ -7353,7 +8120,7 @@ } }, { - "index": 1446, + "index": 1447, "type": "repeat", "count": 3, "definition": { @@ -7361,11 +8128,11 @@ } }, { - "index": 1449, + "index": 1450, "name": "ItemRewardType" }, { - "index": 1450, + "index": 1451, "type": "repeat", "count": 6, "definition": { @@ -7377,7 +8144,7 @@ } }, { - "index": 1457, + "index": 1458, "type": "repeat", "count": 6, "definition": { @@ -7385,7 +8152,7 @@ } }, { - "index": 1464, + "index": 1465, "type": "repeat", "count": 6, "definition": { @@ -7397,7 +8164,7 @@ } }, { - "index": 1471, + "index": 1472, "type": "repeat", "count": 5, "definition": { @@ -7409,7 +8176,7 @@ } }, { - "index": 1476, + "index": 1477, "type": "repeat", "count": 5, "definition": { @@ -7417,7 +8184,7 @@ } }, { - "index": 1481, + "index": 1482, "type": "repeat", "count": 5, "definition": { @@ -7425,7 +8192,7 @@ } }, { - "index": 1486, + "index": 1487, "type": "repeat", "count": 5, "definition": { @@ -7437,7 +8204,7 @@ } }, { - "index": 1491, + "index": 1492, "name": "Emote{Reward}", "converter": { "type": "link", @@ -7445,7 +8212,7 @@ } }, { - "index": 1492, + "index": 1493, "name": "Action{Reward}", "converter": { "type": "link", @@ -7453,7 +8220,7 @@ } }, { - "index": 1493, + "index": 1494, "type": "repeat", "count": 2, "definition": { @@ -7465,7 +8232,7 @@ } }, { - "index": 1496, + "index": 1497, "name": "Other{Reward}", "converter": { "type": "link", @@ -7473,7 +8240,7 @@ } }, { - "index": 1499, + "index": 1500, "name": "InstanceContent{Unlock}", "converter": { "type": "link", @@ -7481,7 +8248,7 @@ } }, { - "index": 1501, + "index": 1502, "name": "Tomestone{Reward}", "converter": { "type": "complexlink", @@ -7495,15 +8262,15 @@ } }, { - "index": 1502, + "index": 1503, "name": "TomestoneCount{Reward}" }, { - "index": 1503, + "index": 1504, "name": "ReputationReward" }, { - "index": 1504, + "index": 1505, "name": "PlaceName", "converter": { "type": "link", @@ -7511,7 +8278,7 @@ } }, { - "index": 1505, + "index": 1506, "name": "JournalGenre", "converter": { "type": "link", @@ -7519,21 +8286,21 @@ } }, { - "index": 1507, + "index": 1508, "name": "Icon", "converter": { "type": "icon" } }, { - "index": 1508, + "index": 1509, "name": "Icon{Special}", "converter": { "type": "icon" } }, { - "index": 1511, + "index": 1512, "name": "EventIconType", "converter": { "type": "link", @@ -7541,11 +8308,77 @@ } }, { - "index": 1513, + "index": 1514, "name": "SortKey" } ] }, + { + "sheet": "QuestClassJobReward", + "defaultColumn": "Name", + "definitions": [ + { + "name": "ClassJobCategory", + "converter": { + "type": "link", + "target": "ClassJobCategory" + } + }, + { + "index": 1, + "type": "repeat", + "count": 4, + "definition": { + "name": "Reward{Item}", + "converter": { + "type": "link", + "target": "Item" + } + } + }, + { + "index": 5, + "type": "repeat", + "count": 4, + "definition": { + "name": "Reward{Amount}" + } + }, + { + "index": 9, + "type": "repeat", + "count": 4, + "definition": { + "name": "Required{Item}", + "converter": { + "type": "link", + "target": "Item" + } + } + }, + { + "index": 13, + "type": "repeat", + "count": 4, + "definition": { + "name": "Required{Amount}" + } + } + ] + }, + { + "sheet": "QuestRepeatFlag", + "defaultColumn": "Quest", + "definitions": [ + { + "name": "Quest", + "converter": { + "type": "link", + "target": "Quest" + } + } + ] + }, { "sheet": "QuestRewardOther", "defaultColumn": "Name", @@ -7561,15 +8394,21 @@ "defaultColumn": "Text", "definitions": [ { - "index": 0, "name": "Name{Action}" }, { "index": 1, - "name": "Icon1", + "name": "Icon", "converter": { - "type": "icon", - "target": "Action" + "type": "icon" + } + }, + { + "index": 2, + "name": "Addon", + "converter": { + "type": "link", + "target": "Addon" } }, { @@ -7587,7 +8426,6 @@ "defaultColumn": "Text{Output}", "definitions": [ { - "index": 0, "name": "Text{Output}" } ] @@ -7845,6 +8683,10 @@ "index": 38, "name": "CanHq" }, + { + "index": 39, + "name": "ExpRewarded" + }, { "index": 40, "name": "Status{Required}", @@ -7887,15 +8729,15 @@ "name": "Stars" }, { - "index": 2, + "index": 3, "name": "Difficulty" }, { - "index": 3, + "index": 4, "name": "Quality" }, { - "index": 4, + "index": 5, "name": "Durability" } ] @@ -7917,6 +8759,19 @@ } ] }, + { + "sheet": "RecommendContents", + "defaultColumn": "Level", + "definitions": [ + { + "name": "Level", + "converter": { + "type": "link", + "target": "Level" + } + } + ] + }, { "sheet": "Relic", "defaultColumn": "Item{Animus}", @@ -8228,6 +9083,18 @@ } ] }, + { + "sheet": "RetainerTaskLvRange", + "definitions": [ + { + "name": "Min" + }, + { + "index": 1, + "name": "Max" + } + ] + }, { "sheet": "RetainerTaskNormal", "defaultColumn": "Item", @@ -8250,6 +9117,25 @@ { "index": 3, "name": "Quantity[2]" + }, + { + "index": 4, + "name": "GatheringLog", + "converter": { + "type": "link", + "target": "GatheringItem" + } + }, + { + "index": 5, + "name": "FishingLog", + "converter": { + "type": "multiref", + "targets": [ + "SpearfishingItem", + "FishParameter" + ] + } } ] }, @@ -8482,6 +9368,102 @@ } ] }, + { + "sheet": "ScenarioTree", + "definitions": [ + { + "name": "Type", + "converter": { + "type": "link", + "target": "ScenarioType" + } + }, + { + "index": 1, + "name": "Image", + "converter": { + "type": "link", + "target": "ScreenImage" + } + } + ] + }, + { + "sheet": "ScenarioTreeTips", + "defaultColumn": "Type", + "definitions": [ + { + "index": 1, + "name": "Tips1", + "converter": { + "type": "link", + "target": "ScenarioTreeTipsQuest" + } + }, + { + "index": 3, + "name": "Tips2", + "converter": { + "type": "link", + "target": "ScenarioTree" + } + } + ] + }, + { + "sheet": "ScenarioTreeTipsClassQuest", + "defaultColumn": "Quest", + "definitions": [ + { + "name": "Quest", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 1, + "name": "RequiredLevel" + }, + { + "index": 2, + "name": "RequiredExpansion", + "converter": { + "type": "link", + "target": "ExVersion" + } + }, + { + "index": 3, + "name": "RequiredQuest", + "converter": { + "type": "link", + "target": "Quest" + } + } + ] + }, + { + "sheet": "ScenarioTreeTipsQuest", + "definitions": [ + { + "name": "Level", + "converter": { + "type": "link", + "target": "level" + } + } + ] + }, + { + "sheet": "ScenarioType", + "defaultColumn": "Type", + "definitions": [ + { + "name": "Type" + } + ] + }, { "sheet": "ScreenImage", "definitions": [ @@ -8507,6 +9489,117 @@ } ] }, + { + "sheet": "SkyIsland2Mission", + "defaultColumn": "Item{1}", + "definitions": [ + { + "name": "Item{1}", + "converter": { + "type": "link", + "target": "EventItem" + } + }, + { + "index": 1, + "name": "Item{2}", + "converter": { + "type": "link", + "target": "EventItem" + } + }, + { + "index": 4, + "name": "Objective{1}", + "converter": { + "type": "link", + "target": "SkyIsland2MissionDetail" + } + }, + { + "index": 6, + "name": "RequiredAmount{1}" + }, + { + "index": 9, + "name": "Objective2", + "converter": { + "type": "link", + "target": "SkyIsland2MissionDetail" + } + }, + { + "index": 11, + "name": "RequiredAmount{2}" + }, + { + "index": 14, + "name": "Objective3", + "converter": { + "type": "link", + "target": "SkyIsland2MissionDetail" + } + }, + { + "index": 20, + "name": "Image", + "converter": { + "type": "icon" + } + } + ] + }, + { + "sheet": "SkyIsland2MissionDetail", + "defaultColumn": "Objective", + "definitions": [ + { + "name": "Type", + "converter": { + "type": "link", + "target": "SkyIsland2MissionType" + } + }, + { + "index": 2, + "name": "Range", + "converter": { + "type": "link", + "target": "SkyIsland2RangeType" + } + }, + { + "index": 4, + "name": "EObj", + "converter": { + "type": "link", + "target": "EObjName" + } + }, + { + "index": 7, + "name": "Objective" + } + ] + }, + { + "sheet": "SkyIsland2MissionType", + "defaultColumn": "Type", + "definitions": [ + { + "name": "Type" + } + ] + }, + { + "sheet": "SkyIsland2RangeType", + "defaultColumn": "Type", + "definitions": [ + { + "name": "Type" + } + ] + }, { "sheet": "SpearfishingItem", "defaultColumn": "Item", @@ -8753,6 +9846,27 @@ } ] }, + { + "sheet": "StainTransient", + "defaultColumn": "Item{1}", + "definitions": [ + { + "name": "Item{1}", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 1, + "name": "Item{2}", + "converter": { + "type": "link", + "target": "Item" + } + } + ] + }, { "sheet": "Status", "defaultColumn": "Name", @@ -8775,6 +9889,26 @@ "index": 3, "name": "MaxStacks" }, + { + "index": 4, + "name": "Category" + }, + { + "index": 5, + "name": "HitEffect", + "converter": { + "type": "link", + "target": "StatusHitEffect" + } + }, + { + "index": 6, + "name": "VFX", + "converter": { + "type": "link", + "target": "StatusLoopVFX" + } + }, { "index": 7, "name": "LockMovement" @@ -8796,12 +9930,12 @@ "name": "CanDispel" }, { - "index": 15, - "name": "IsPermanent" + "index": 14, + "name": "InflictedByActor" }, { - "index": 17, - "name": "InflictedByActor" + "index": 15, + "name": "IsPermanent" }, { "index": 21, @@ -8813,6 +9947,32 @@ } ] }, + { + "sheet": "StatusHitEffect", + "defaultColumn": "Location", + "definitions": [ + { + "name": "Location", + "converter": { + "type": "link", + "target": "VFX" + } + } + ] + }, + { + "sheet": "StatusLoopVFX", + "defaultColumn": "Location", + "definitions": [ + { + "name": "Location", + "converter": { + "type": "link", + "target": "VFX" + } + } + ] + }, { "sheet": "Story", "isGenericReferenceTarget": true, @@ -8894,8 +10054,10 @@ }, { "sheet": "SubmarineRank", - "defaultColumn": "Slot", "definitions": [ + { + "name": "Rank" + }, { "index": 1, "name": "ExpToNext" @@ -8984,7 +10146,15 @@ "name": "WeatherRate" }, { - "index": 23, + "index": 22, + "name": "ArrayEventHandler", + "converter": { + "type": "link", + "target": "ArrayEventHandler" + } + }, + { + "index": 24, "name": "Aetheryte", "converter": { "type": "link", @@ -9186,6 +10356,81 @@ } ] }, + { + "sheet": "Transformation", + "definitions": [ + { + "index": 1, + "name": "Model", + "converter": { + "type": "link", + "target": "ModelChara" + } + }, + { + "index": 2, + "name": "BNpcCustomize", + "converter": { + "type": "link", + "target": "BNpcCustomize" + } + }, + { + "index": 3, + "name": "BNpcEquip", + "converter": { + "type": "link", + "target": "BNpcEquip" + } + }, + { + "index": 4, + "type": "repeat", + "count": 6, + "definition": { + "name": "Action", + "converter": { + "type": "link", + "target": "Action" + } + } + }, + { + "index": 12, + "name": "Speed" + }, + { + "index": 13, + "name": "Scale" + }, + { + "index": 14, + "name": "IsPvP" + }, + { + "index": 15, + "name": "IsEvent" + }, + { + "index": 16, + "name": "PlayerCamera" + } + ] + }, + { + "sheet": "Treasure", + "defaultColumn": "Item", + "definitions": [ + { + "index": 8, + "name": "Item", + "converter": { + "type": "link", + "target": "Item" + } + } + ] + }, { "sheet": "TreasureHuntRank", "defaultColumn": "Name", @@ -9194,8 +10439,7 @@ "index": 1, "name": "Icon", "converter": { - "type": "icon", - "target": "Item" + "type": "icon" } }, { @@ -9574,6 +10818,28 @@ } ] }, + { + "sheet": "VaseFlower", + "definitions": [ + { + "index": 3, + "name": "Item", + "converter": { + "type": "link", + "target": "Item" + } + } + ] + }, + { + "sheet": "VFX", + "defaultColumn": "Location", + "definitions": [ + { + "name": "Location" + } + ] + }, { "sheet": "Warp", "isGenericReferenceTarget": true, @@ -9595,15 +10861,27 @@ }, { "index": 2, - "name": "DefaultTalk1" + "name": "DefaultTalk1", + "converter": { + "type": "link", + "target": "DefaultTalk" + } }, { "index": 3, - "name": "DefaultTalk2" + "name": "DefaultTalk2", + "converter": { + "type": "link", + "target": "DefaultTalk" + } }, { "index": 4, - "name": "DefaultTalk3" + "name": "DefaultTalk3", + "converter": { + "type": "link", + "target": "DefaultTalk" + } }, { "index": 5, @@ -9615,6 +10893,43 @@ } ] }, + { + "sheet": "WarpCondition", + "definitions": [ + { + "index": 2, + "name": "RequiredQuest{1}", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 3, + "name": "RequiredQuest{2}", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 4, + "name": "DRequiredQuest{3}", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 5, + "name": "RequiredQuest{4}", + "converter": { + "type": "link", + "target": "Quest" + } + } + ] + }, { "sheet": "Weather", "defaultColumn": "Name", @@ -9674,6 +10989,23 @@ } ] }, + { + "sheet": "WeddingBGM", + "defaultColumn": "Song", + "definitions": [ + { + "name": "Song", + "converter": { + "type": "link", + "target": "BGM" + } + }, + { + "index": 1, + "name": "SongName" + } + ] + }, { "sheet": "WeeklyBingoOrderData", "definitions": [ @@ -9769,6 +11101,19 @@ } ] }, + { + "sheet": "World", + "definitions": [ + { + "index": 1, + "name": "DataCenter", + "converter": { + "type": "link", + "target": "WorldDCGroupType" + } + } + ] + }, { "sheet": "WorldDCGroupType", "defaultColumn": "Name", @@ -9777,6 +11122,84 @@ "name": "Name" } ] + }, + { + "sheet": "YKW", + "definitions": [ + { + "index": 1, + "name": "Item", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 2, + "type": "repeat", + "count": 3, + "definition": { + "name": "Location", + "converter": { + "type": "link", + "target": "TerritoryType" + } + } + } + ] + }, + { + "sheet": "ZoneSharedGroup", + "definitions": [ + { + "index": 2, + "name": "Quest{1}", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 6, + "name": "Quest{2}", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 10, + "name": "Quest{3}", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 14, + "name": "Quest{4}", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 18, + "name": "Quest{5}", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 22, + "name": "Quest{6}", + "converter": { + "type": "link", + "target": "Quest" + } + } + ] } ] -} +} \ No newline at end of file