diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index a35c11a4..c6f953ec 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -413,9 +413,16 @@ Core::Data::BeastTribe::BeastTribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BeastTribeDat.get_row( row_id ); + minLevel = exdData->getField< uint8_t >( row, 0 ); + maxLevel = exdData->getField< uint8_t >( row, 1 ); beastRankBonus = exdData->getField< uint8_t >( row, 2 ); iconReputation = exdData->getField< uint32_t >( row, 3 ); icon = exdData->getField< uint32_t >( row, 4 ); + maxRank = exdData->getField< uint8_t >( row, 5 ); + alliedBeastTribeQuest = exdData->getField< uint32_t >( row, 6 ); + expansion = exdData->getField< uint8_t >( row, 7 ); + currencyItem = exdData->getField< uint32_t >( row, 8 ); + displayOrder = exdData->getField< uint8_t >( row, 9 ); name = exdData->getField< std::string >( row, 10 ); nameRelation = exdData->getField< std::string >( row, 18 ); } @@ -1973,6 +1980,11 @@ { auto row = exdData->m_GilShopItemDat.get_row( row_id ); item = exdData->getField< int32_t >( row, 0 ); + rowRequired.push_back( exdData->getField< int32_t >( row, 3 ) ); + rowRequired.push_back( exdData->getField< int32_t >( row, 4 ) ); + rowRequired.push_back( exdData->getField< int32_t >( row, 5 ) ); + stateRequired = exdData->getField< uint16_t >( row, 7 ); + patch = exdData->getField< uint16_t >( row, 8 ); } Core::Data::GoldSaucerTextData::GoldSaucerTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -2519,6 +2531,7 @@ flyingCondition = exdData->getField< uint8_t >( row, 10 ); isFlying = exdData->getField< uint8_t >( row, 14 ); rideBGM = exdData->getField< uint16_t >( row, 17 ); + order = exdData->getField< int8_t >( row, 29 ); icon = exdData->getField< uint16_t >( row, 30 ); } @@ -2572,6 +2585,7 @@ Core::Data::OnlineStatus::OnlineStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_OnlineStatusDat.get_row( row_id ); + priority = exdData->getField< uint8_t >( row, 2 ); name = exdData->getField< std::string >( row, 3 ); icon = exdData->getField< uint32_t >( row, 4 ); } @@ -3016,6 +3030,20 @@ name = exdData->getField< std::string >( row, 1 ); } + Core::Data::QuickChat::QuickChat( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) + { + auto row = exdData->m_QuickChatDat.get_row( row_id ); + nameAction = exdData->getField< std::string >( row, 0 ); + icon1 = exdData->getField< int32_t >( row, 1 ); + quickChatTransient = exdData->getField< int8_t >( row, 3 ); + } + + Core::Data::QuickChatTransient::QuickChatTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) + { + auto row = exdData->m_QuickChatTransientDat.get_row( row_id ); + textOutput = exdData->getField< std::string >( row, 0 ); + } + Core::Data::Race::Race( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RaceDat.get_row( row_id ); @@ -3672,6 +3700,17 @@ description = exdData->getField< std::string >( row, 0 ); } + Core::Data::TreasureHuntRank::TreasureHuntRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) + { + auto row = exdData->m_TreasureHuntRankDat.get_row( row_id ); + icon = exdData->getField< uint32_t >( row, 1 ); + itemName = exdData->getField< int32_t >( row, 2 ); + keyItemName = exdData->getField< int32_t >( row, 3 ); + instanceMap = exdData->getField< int32_t >( row, 4 ); + maxPartySize = exdData->getField< uint8_t >( row, 5 ); + minPartySize = exdData->getField< uint8_t >( row, 6 ); + } + Core::Data::Tribe::Tribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TribeDat.get_row( row_id ); @@ -4121,6 +4160,8 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_PlaceNameDat = setupDatAccess( "PlaceName", xiv::exd::Language::en ); m_QuestDat = setupDatAccess( "Quest", xiv::exd::Language::en ); m_QuestRewardOtherDat = setupDatAccess( "QuestRewardOther", xiv::exd::Language::en ); + m_QuickChatDat = setupDatAccess( "QuickChat", xiv::exd::Language::en ); + m_QuickChatTransientDat = setupDatAccess( "QuickChatTransient", xiv::exd::Language::en ); m_RaceDat = setupDatAccess( "Race", xiv::exd::Language::en ); m_RacingChocoboItemDat = setupDatAccess( "RacingChocoboItem", xiv::exd::Language::none ); m_RacingChocoboNameDat = setupDatAccess( "RacingChocoboName", xiv::exd::Language::en ); @@ -4164,6 +4205,7 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_TraitDat = setupDatAccess( "Trait", xiv::exd::Language::en ); m_TraitRecastDat = setupDatAccess( "TraitRecast", xiv::exd::Language::none ); m_TraitTransientDat = setupDatAccess( "TraitTransient", xiv::exd::Language::en ); + m_TreasureHuntRankDat = setupDatAccess( "TreasureHuntRank", xiv::exd::Language::none ); m_TribeDat = setupDatAccess( "Tribe", xiv::exd::Language::en ); m_TripleTriadDat = setupDatAccess( "TripleTriad", xiv::exd::Language::none ); m_TripleTriadCardDat = setupDatAccess( "TripleTriadCard", xiv::exd::Language::en ); @@ -7721,6 +7763,36 @@ Core::Data::ExdDataGenerated::QuestRewardOtherPtr } return nullptr; } +Core::Data::ExdDataGenerated::QuickChatPtr + Core::Data::ExdDataGenerated::getQuickChat( uint32_t QuickChatId ) +{ + try + { + auto row = m_QuickChatDat.get_row( QuickChatId ); + auto info = boost::make_shared< QuickChat >( QuickChatId, this ); + return info; + } + catch( ... ) + { + return nullptr; + } + return nullptr; +} +Core::Data::ExdDataGenerated::QuickChatTransientPtr + Core::Data::ExdDataGenerated::getQuickChatTransient( uint32_t QuickChatTransientId ) +{ + try + { + auto row = m_QuickChatTransientDat.get_row( QuickChatTransientId ); + auto info = boost::make_shared< QuickChatTransient >( QuickChatTransientId, this ); + return info; + } + catch( ... ) + { + return nullptr; + } + return nullptr; +} Core::Data::ExdDataGenerated::RacePtr Core::Data::ExdDataGenerated::getRace( uint32_t RaceId ) { @@ -8366,6 +8438,21 @@ Core::Data::ExdDataGenerated::TraitTransientPtr } return nullptr; } +Core::Data::ExdDataGenerated::TreasureHuntRankPtr + Core::Data::ExdDataGenerated::getTreasureHuntRank( uint32_t TreasureHuntRankId ) +{ + try + { + auto row = m_TreasureHuntRankDat.get_row( TreasureHuntRankId ); + auto info = boost::make_shared< TreasureHuntRank >( TreasureHuntRankId, this ); + return info; + } + catch( ... ) + { + return nullptr; + } + return nullptr; +} Core::Data::ExdDataGenerated::TribePtr Core::Data::ExdDataGenerated::getTribe( uint32_t TribeId ) { diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index c6f7ffd9..3e121380 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -252,6 +252,8 @@ struct Picture; struct PlaceName; struct Quest; struct QuestRewardOther; +struct QuickChat; +struct QuickChatTransient; struct Race; struct RacingChocoboItem; struct RacingChocoboName; @@ -295,6 +297,7 @@ struct Town; struct Trait; struct TraitRecast; struct TraitTransient; +struct TreasureHuntRank; struct Tribe; struct TripleTriad; struct TripleTriadCard; @@ -693,9 +696,16 @@ struct BeastReputationRank struct BeastTribe { + uint8_t minLevel; + uint8_t maxLevel; uint8_t beastRankBonus; uint32_t iconReputation; uint32_t icon; + uint8_t maxRank; + uint32_t alliedBeastTribeQuest; + uint8_t expansion; + uint32_t currencyItem; + uint8_t displayOrder; std::string name; std::string nameRelation; @@ -1536,7 +1546,7 @@ struct EventAction { std::string name; uint16_t icon; - uint16_t castTime; + uint8_t castTime; EventAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -1996,6 +2006,9 @@ struct GilShop struct GilShopItem { int32_t item; + std::vector< int32_t > rowRequired; + uint16_t stateRequired; + uint16_t patch; GilShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -2552,6 +2565,7 @@ struct Mount uint8_t flyingCondition; uint8_t isFlying; uint16_t rideBGM; + int8_t order; uint16_t icon; Mount( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); @@ -2604,6 +2618,7 @@ struct Omen struct OnlineStatus { + uint8_t priority; std::string name; uint32_t icon; @@ -2753,6 +2768,22 @@ struct QuestRewardOther QuestRewardOther( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct QuickChat +{ + std::string nameAction; + int32_t icon1; + int8_t quickChatTransient; + + QuickChat( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct QuickChatTransient +{ + std::string textOutput; + + QuickChatTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct Race { std::string masculine; @@ -3187,6 +3218,18 @@ struct TraitTransient TraitTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct TreasureHuntRank +{ + uint32_t icon; + int32_t itemName; + int32_t keyItemName; + int32_t instanceMap; + uint8_t maxPartySize; + uint8_t minPartySize; + + TreasureHuntRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct Tribe { std::string masculine; @@ -3631,6 +3674,8 @@ struct WorldDCGroupType xiv::exd::Exd m_PlaceNameDat; xiv::exd::Exd m_QuestDat; xiv::exd::Exd m_QuestRewardOtherDat; + xiv::exd::Exd m_QuickChatDat; + xiv::exd::Exd m_QuickChatTransientDat; xiv::exd::Exd m_RaceDat; xiv::exd::Exd m_RacingChocoboItemDat; xiv::exd::Exd m_RacingChocoboNameDat; @@ -3674,6 +3719,7 @@ struct WorldDCGroupType xiv::exd::Exd m_TraitDat; xiv::exd::Exd m_TraitRecastDat; xiv::exd::Exd m_TraitTransientDat; + xiv::exd::Exd m_TreasureHuntRankDat; xiv::exd::Exd m_TribeDat; xiv::exd::Exd m_TripleTriadDat; xiv::exd::Exd m_TripleTriadCardDat; @@ -4166,6 +4212,10 @@ struct WorldDCGroupType QuestPtr getQuest( uint32_t QuestId ); using QuestRewardOtherPtr = boost::shared_ptr< QuestRewardOther >; QuestRewardOtherPtr getQuestRewardOther( uint32_t QuestRewardOtherId ); + using QuickChatPtr = boost::shared_ptr< QuickChat >; + QuickChatPtr getQuickChat( uint32_t QuickChatId ); + using QuickChatTransientPtr = boost::shared_ptr< QuickChatTransient >; + QuickChatTransientPtr getQuickChatTransient( uint32_t QuickChatTransientId ); using RacePtr = boost::shared_ptr< Race >; RacePtr getRace( uint32_t RaceId ); using RacingChocoboItemPtr = boost::shared_ptr< RacingChocoboItem >; @@ -4252,6 +4302,8 @@ struct WorldDCGroupType TraitRecastPtr getTraitRecast( uint32_t TraitRecastId ); using TraitTransientPtr = boost::shared_ptr< TraitTransient >; TraitTransientPtr getTraitTransient( uint32_t TraitTransientId ); + using TreasureHuntRankPtr = boost::shared_ptr< TreasureHuntRank >; + TreasureHuntRankPtr getTreasureHuntRank( uint32_t TreasureHuntRankId ); using TribePtr = boost::shared_ptr< Tribe >; TribePtr getTribe( uint32_t TribeId ); using TripleTriadPtr = boost::shared_ptr< TripleTriad >; @@ -4529,6 +4581,8 @@ struct WorldDCGroupType std::set< uint32_t > m_PlaceNameIdList; std::set< uint32_t > m_QuestIdList; std::set< uint32_t > m_QuestRewardOtherIdList; + std::set< uint32_t > m_QuickChatIdList; + std::set< uint32_t > m_QuickChatTransientIdList; std::set< uint32_t > m_RaceIdList; std::set< uint32_t > m_RacingChocoboItemIdList; std::set< uint32_t > m_RacingChocoboNameIdList; @@ -4572,6 +4626,7 @@ struct WorldDCGroupType std::set< uint32_t > m_TraitIdList; std::set< uint32_t > m_TraitRecastIdList; std::set< uint32_t > m_TraitTransientIdList; + std::set< uint32_t > m_TreasureHuntRankIdList; std::set< uint32_t > m_TribeIdList; std::set< uint32_t > m_TripleTriadIdList; std::set< uint32_t > m_TripleTriadCardIdList; @@ -6004,6 +6059,18 @@ const std::set< uint32_t >& getQuestRewardOtherIdList() loadIdList( m_QuestRewardOtherDat, m_QuestRewardOtherIdList ); return m_QuestRewardOtherIdList; } +const std::set< uint32_t >& getQuickChatIdList() +{ + if( m_QuickChatIdList.size() == 0 ) + loadIdList( m_QuickChatDat, m_QuickChatIdList ); + return m_QuickChatIdList; +} +const std::set< uint32_t >& getQuickChatTransientIdList() +{ + if( m_QuickChatTransientIdList.size() == 0 ) + loadIdList( m_QuickChatTransientDat, m_QuickChatTransientIdList ); + return m_QuickChatTransientIdList; +} const std::set< uint32_t >& getRaceIdList() { if( m_RaceIdList.size() == 0 ) @@ -6262,6 +6329,12 @@ const std::set< uint32_t >& getTraitTransientIdList() loadIdList( m_TraitTransientDat, m_TraitTransientIdList ); return m_TraitTransientIdList; } +const std::set< uint32_t >& getTreasureHuntRankIdList() +{ + if( m_TreasureHuntRankIdList.size() == 0 ) + loadIdList( m_TreasureHuntRankDat, m_TreasureHuntRankIdList ); + return m_TreasureHuntRankIdList; +} const std::set< uint32_t >& getTribeIdList() { if( m_TribeIdList.size() == 0 ) diff --git a/src/tools/exd_struct_gen/ex.json b/src/tools/exd_struct_gen/ex.json index 6ab5db0e..ed23d89a 100644 --- a/src/tools/exd_struct_gen/ex.json +++ b/src/tools/exd_struct_gen/ex.json @@ -1027,6 +1027,13 @@ "sheet": "BeastTribe", "defaultColumn": "Name", "definitions": [ + { + "name": "MinLevel" + }, + { + "index": 1, + "name": "MaxLevel" + }, { "index": 2, "name": "BeastRankBonus", @@ -1049,6 +1056,34 @@ "type": "icon" } }, + { + "index": 5, + "name": "MaxRank" + }, + { + "index": 6, + "name": "AlliedBeastTribeQuest", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 7, + "name": "Expansion" + }, + { + "index": 8, + "name": "CurrencyItem", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 9, + "name": "DisplayOrder" + }, { "index": 10, "name": "Name" @@ -3596,7 +3631,7 @@ } }, { - "index": 3, + "index": 2, "name": "CastTime" } ] @@ -4846,6 +4881,29 @@ "type": "link", "target": "Item" } + }, + { + "type": "repeat", + "count": 3, + "index": 3, + "definition": { + "name": "Row{Required}", + "converter": { + "type": "multiref", + "targets": [ + "Quest", + "Achievement" + ] + } + } + }, + { + "index": 7, + "name": "State{Required}" + }, + { + "index": 8, + "name": "Patch" } ] }, @@ -6662,6 +6720,10 @@ "target": "BGM" } }, + { + "index": 29, + "name": "Order" + }, { "index": 30, "name": "Icon", @@ -6852,6 +6914,10 @@ "sheet": "OnlineStatus", "defaultColumn": "Name", "definitions": [ + { + "index": 2, + "name": "Priority" + }, { "index": 3, "name": "Name" @@ -7461,6 +7527,42 @@ } ] }, + { + "sheet": "QuickChat", + "defaultColumn": "Text", + "definitions": [ + { + "index": 0, + "name": "Name{Action}" + }, + { + "index": 1, + "name": "Icon1", + "converter": { + "type": "icon", + "target": "Action" + } + }, + { + "index": 3, + "name": "QuickChatTransient", + "converter": { + "type": "link", + "target": "QuickChatTransient" + } + } + ] + }, + { + "sheet": "QuickChatTransient", + "defaultColumn": "Text{Output}", + "definitions": [ + { + "index": 0, + "name": "Text{Output}" + } + ] + }, { "sheet": "Race", "defaultColumn": "Feminine", @@ -8971,6 +9073,52 @@ } ] }, + { + "sheet": "TreasureHuntRank", + "defaultColumn": "Name", + "definitions": [ + { + "index": 1, + "name": "Icon", + "converter": { + "type": "icon", + "target": "Item" + } + }, + { + "index": 2, + "name": "ItemName", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 3, + "name": "KeyItemName", + "converter": { + "type": "link", + "target": "EventItem" + } + }, + { + "index": 4, + "name": "InstanceMap", + "converter": { + "type": "link", + "target": "EventItem" + } + }, + { + "index": 5, + "name": "MaxPartySize" + }, + { + "index": 6, + "name": "MinPartySize" + } + ] + }, { "sheet": "Tribe", "defaultColumn": "Feminine", @@ -9518,4 +9666,4 @@ ] } ] -} \ No newline at end of file +}