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 ) )