1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-25 22:17:45 +00:00

More boost removal

This commit is contained in:
mordred 2018-10-24 13:14:14 +02:00
parent 81cd0558e4
commit 72a034d92a
6 changed files with 440 additions and 1538 deletions

View file

@ -18,7 +18,7 @@ set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
add_library( common ${UTILS_PUBLIC_INCLUDE_FILES} ${UTILS_SOURCE_FILES} )
set_target_properties( common PROPERTIES
CXX_STANDARD 14
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS ON
RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/"

View file

@ -1,726 +0,0 @@
#include "ExdData.h"
#include <boost/make_shared.hpp>
#include <boost/variant.hpp>
/* TYPES !!
case DataType::boolean: 1
case DataType::int8: 2
case DataType::uint8: 3
case DataType::int16: 4
case DataType::uint16: 5
case DataType::int32: 6
case DataType::uint32: 7
case DataType::float32: 8
case DataType::uint64: 9
*/
Core::Data::ExdData::ExdData()
{
}
Core::Data::ExdData::~ExdData( void )
{
}
xiv::exd::Exd Core::Data::ExdData::setupDatAccess( const std::string& name, xiv::exd::Language lang )
{
auto& cat = m_exd_data->get_category( name );
return static_cast< xiv::exd::Exd >( cat.get_data_ln( lang ) );
};
bool Core::Data::ExdData::init( const std::string& path )
{
try
{
m_data = boost::make_shared< xiv::dat::GameData >( path );
m_exd_data = boost::make_shared< xiv::exd::ExdData >( *m_data );
m_questDat = setupDatAccess( "Quest", xiv::exd::Language::en );
m_openingDat = setupDatAccess( "Opening", xiv::exd::Language::none );
m_customTalkDat = setupDatAccess( "CustomTalk", xiv::exd::Language::en );
m_aetheryteDat = setupDatAccess( "Aetheryte", xiv::exd::Language::en );
m_levelDat = setupDatAccess( "Level", xiv::exd::Language::none );
m_placeNameDat = setupDatAccess( "PlaceName", xiv::exd::Language::en );
m_itemsDat = setupDatAccess( "Item", xiv::exd::Language::en );
m_classJobCatDat = setupDatAccess( "ClassJobCategory", xiv::exd::Language::en );
m_raceDat = setupDatAccess( "Race", xiv::exd::Language::en );
m_eventItemDat = setupDatAccess( "EventItem", xiv::exd::Language::en );
}
catch( std::runtime_error )
{
return false;
}
return true;
}
bool Core::Data::ExdData::loadZoneInfo()
{
auto territoryTypeData = setupDatAccess( "TerritoryType", xiv::exd::Language::none );
auto placeNameData = setupDatAccess( "PlaceName", xiv::exd::Language::en );
auto mapData = setupDatAccess( "Map", xiv::exd::Language::none );
auto weatherRate = setupDatAccess( "WeatherRate", xiv::exd::Language::none );
auto territoryTypeDataRows = territoryTypeData.get_rows();
for( auto row : territoryTypeDataRows )
{
auto& fields = row.second;
uint32_t id = row.first;
uint16_t place_id = getField< uint16_t >( fields, 5 );
uint16_t map_id = getField< uint16_t >( fields, 6 );
std::string zoneStr = getField< std::string >( fields, 0 );
if( zoneStr.empty() )
continue;
auto placeNameDataFields = placeNameData.get_row( place_id );
std::string zone_str = getField< std::string >( placeNameDataFields, 0 );
auto mapDataFields = mapData.get_row( map_id );
int16_t map_index = getField< int16_t >( mapDataFields, 12 );
bool is_two_bytes = getField< bool >( mapDataFields, 15 );
uint8_t weather_rate = getField< uint8_t >( fields, 12 ) > 75 ? 0 : getField< uint8_t >( fields, 12 );
auto weatherRateFields = weatherRate.get_row( weather_rate );
int32_t aetheryte_index = getField< int32_t >( fields, 23 );
uint8_t zoneType = getField< uint8_t >( fields, 9 );
ZoneInfo info{ 0 };
info.id = id;
info.zone_name = zoneStr;
info.zone_str = zone_str;
info.layout_id = id;
info.discovery_index = map_index;
info.is_two_byte = is_two_bytes;
info.map_id = map_id;
info.weather_rate = weather_rate; // TODO: deal with weather groups
info.aetheryte_index = aetheryte_index;
info.zone_type = zoneType;
uint8_t sumPc = 0;
for( size_t i = 0; i < 16; )
{
int32_t weatherId = getField< int32_t >( weatherRateFields, i );
if( weatherId == 0 )
break;
sumPc += getField< uint8_t >( weatherRateFields, i + 1 );
info.weather_rate_map[ sumPc ] = weatherId;
i += 2;
}
m_zoneInfoMap[ id ] = info;
}
return true;
}
bool Core::Data::ExdData::loadStatusEffectInfo()
{
auto StatusDat = setupDatAccess( "Status", xiv::exd::Language::en );
auto rows1 = StatusDat.get_rows();
for( auto row : rows1 )
{
auto& fields = row.second;
uint32_t id = row.first;
StatusEffectInfo info{ 0 };
info.id = id;
info.name = getField< std::string >( fields, 0 );
info.lock_movement = getField< bool >( fields, 7 ); // 7
info.lock_actions = getField< bool >( fields, 9 ); // 9
info.lock_control = getField< bool >( fields, 10 ); // 10
info.transfiguration = getField< bool >( fields, 11 ); // 11
info.can_dispel = getField< bool >( fields, 13 ); // 13
info.is_permanent = getField< bool >( fields, 15 ); // 15
info.inflicted_by_actor = getField< bool >( fields, 17 ); // 17
info.is_fc_buff = getField< bool >( fields, 21 ); // 21
info.invisibility = getField< bool >( fields, 22 ); // 22
m_statusEffectInfoMap[ id ] = info;
}
return true;
}
bool Core::Data::ExdData::loadAetheryteInfo()
{
auto AetheryteDat = setupDatAccess( "Aetheryte", xiv::exd::Language::en );
auto rows = AetheryteDat.get_rows();
for( auto row : rows )
{
auto& fields = row.second;
auto info = boost::make_shared< AetheryteInfo >();
info->id = row.first;
info->target_zone = getField< uint16_t >( fields, 10 );
info->isAetheryte = getField< bool >( fields, 15 );
uint16_t placename = getField< uint16_t >( fields, 8 );
auto placeNameInfo = getPlaceNameInfo( placename );
if( placeNameInfo )
{
info->placename = placeNameInfo->placename;
}
uint16_t placename_aethernet = getField< uint16_t >( fields, 9 );
auto placename_aethernetInfo = getPlaceNameInfo( placename_aethernet );
if( placename_aethernetInfo )
{
info->placename_aethernet = placename_aethernetInfo->placename;
}
info->levelId = getField< uint32_t >( fields, 11 );
info->map_coord_x = getField< int16_t >( fields, 20 );
info->map_coord_y = getField< int16_t >( fields, 21 );
m_aetheryteInfoMap.emplace( std::make_pair( info->id, info ) );
}
return true;
}
bool Core::Data::ExdData::loadClassJobInfo()
{
auto ClassJobDat = setupDatAccess( "ClassJob", xiv::exd::Language::en );
auto rows = ClassJobDat.get_rows();
for( auto row : rows )
{
auto& fields = row.second;
ClassJobInfo info{ 0 };
uint32_t id = row.first;
if( id == 0 )
continue;
std::string name = getField< std::string >( fields, 0 );
std::string short_name = getField< std::string >( fields, 1 );
int8_t exp_idx = getField< int8_t >( fields, 4 );
info.id = id;
info.name = name;
info.name_short = short_name;
info.exp_idx = exp_idx;
info.start_weapon_id = getField< int32_t >( fields, 28 );
info.mod_hp = getField< uint16_t >( fields, 9 );
info.mod_mpcpgp = getField< uint16_t >( fields, 10 );
info.mod_str = getField< uint16_t >( fields, 11 );
info.mod_vit = getField< uint16_t >( fields, 12 );
info.mod_dex = getField< uint16_t >( fields, 13 );
info.mod_int = getField< uint16_t >( fields, 14 );
info.mod_mnd = getField< uint16_t >( fields, 15 );
info.mod_pie = getField< uint16_t >( fields, 16 );
m_classJobInfoMap[ id ] = info;
}
return true;
}
bool Core::Data::ExdData::loadParamGrowInfo()
{
auto ParamGrowDat = setupDatAccess( "ParamGrow", xiv::exd::Language::none );
auto rows = ParamGrowDat.get_rows();
for( auto row : rows )
{
auto& fields = row.second;
ParamGrowthInfo info{ 0 };
uint32_t id = row.first;
info.level = id;
info.needed_exp = getField< int32_t >( fields, 0 );
info.mp_mod = getField< uint16_t >( fields, 3 ); // 3
info.mp_const = getField< int32_t >( fields, 4 ); // 4
info.base_secondary = getField< int32_t >( fields, 5 );// 5
info.quest_exp_mod = getField< uint8_t >( fields, 7 ); // 7
info.hp_mod = getField< uint16_t >( fields, 8 ); // 8
m_paramGrowthInfoMap[ id ] = info;
}
return true;
}
bool Core::Data::ExdData::loadTribeInfo()
{
auto tribeDat = setupDatAccess( "Tribe", xiv::exd::Language::en );
auto rows = tribeDat.get_rows();
for( auto row : rows )
{
auto& fields = row.second;
TribeInfo info{ 0 };
uint32_t id = row.first;
info.id = id;
info.name = getField< std::string >( fields, 0 );
info.mod_str = getField< int8_t >( fields, 4 );
info.mod_vit = getField< int8_t >( fields, 5 );
info.mod_dex = getField< int8_t >( fields, 6 );
info.mod_int = getField< int8_t >( fields, 7 );
info.mod_mnd = getField< int8_t >( fields, 8 );
info.mod_pie = getField< int8_t >( fields, 9 );
m_tribeInfoMap[ id ] = info;
}
return true;
}
bool Core::Data::ExdData::loadEventActionInfo()
{
auto EventActionDat = setupDatAccess( "EventAction", xiv::exd::Language::en );
auto rows = EventActionDat.get_rows();
for( auto row : rows )
{
auto& fields = row.second;
EventActionInfo info{ 0 };
uint32_t id = row.first;
if( id == 0 )
{
continue;
}
std::string name = getField< std::string >( fields, 0 );
uint8_t time = getField< uint8_t >( fields, 2 );
info.id = id;
info.name = name;
info.castTime = time * 1000;
m_EventActionInfoMap[ id ] = info;
}
return true;
}
bool Core::Data::ExdData::loadActionInfo()
{
auto ActionDat = setupDatAccess( "Action", xiv::exd::Language::en );
auto rows = ActionDat.get_rows();
for( auto row : rows )
{
auto& fields = row.second;
auto info = boost::make_shared< ActionInfo >();
uint32_t id = row.first;
if( id == 0 )
{
continue;
}
std::string name = getField< std::string >( fields, 0 ); // 0
uint8_t category = getField< uint8_t >( fields, 3 ); // 3
int8_t class_job = getField< int8_t >( fields, 10 ); // 10
uint8_t unlock_level = getField< uint8_t >( fields, 11 ); // 11
int8_t range = getField< int8_t >( fields, 14 ); // 13
bool can_target_self = getField< bool >( fields, 15 ); // 14
bool can_target_party = getField< bool >( fields, 16 ); // 15
bool can_target_friendly = getField< bool >( fields, 17 ); // 16
bool can_target_enemy = getField< bool >( fields, 18 ); // 17
bool is_ground_aoe = getField< bool >( fields, 21 ); // 20
// Column 23: Seems to be related to raising skills (Raise, Resurrection, Reanimate)
bool can_target_ko = getField< bool >( fields, 25 ); // 24
uint8_t aoe_type = getField< uint8_t >( fields, 27 ); // 26
uint8_t aoe_range = getField< uint8_t >( fields, 28 ); // 27
uint8_t aoe_width = getField< uint8_t >( fields, 29 ); // 28
uint8_t points_type = getField< uint8_t >( fields, 31 ); // 30
uint16_t points_cost = getField< uint16_t >( fields, 32 ); // 31
bool is_instant = getField< bool >( fields, 36 ); // 35
uint16_t cast_time = getField< uint16_t >( fields, 37 ); // 36
uint16_t recast_time = getField< uint16_t >( fields, 38 ); // 37
int8_t model = getField< int8_t >( fields, 40 ); // 39
uint8_t aspect = getField< uint8_t >( fields, 41 ); // 40
uint16_t toggle_status_id = getField< uint16_t >( fields, 43 ); // 42
bool affects_position = getField< bool >( fields, 48 ); // 47
bool no_effect_in_battle = getField< bool >( fields, 61 ); // 60
info->id = id;
info->name = name;
info->category = category;
info->class_job = class_job;
info->unlock_level = unlock_level;
info->range = range;
info->can_target_self = can_target_self;
info->can_target_party = can_target_party;
info->can_target_friendly = can_target_friendly;
info->can_target_enemy = can_target_enemy;
info->can_target_ko = can_target_ko;
info->is_ground_aoe = is_ground_aoe;
info->aoe_type = aoe_type;
info->aoe_range = aoe_range;
info->aoe_width = aoe_width;
info->points_type = points_type;
info->points_cost = points_cost;
info->is_instant = is_instant;
info->cast_time = cast_time * 100;
info->recast_time = recast_time * 100;
info->model = model;
info->aspect = aspect;
info->toggle_status_id = toggle_status_id;
info->affects_position = affects_position;
info->no_effect_in_battle = no_effect_in_battle;
// If action type is SingleTarget with an AoE radius set, or if action type isn't SingleTarget
info->is_aoe = ( info->aoe_type == 1 && info->aoe_width != 0 ) || ( info->aoe_type != 1 );
m_actionInfoMap.emplace( std::make_pair( info->id, info ) );
}
return true;
}
boost::shared_ptr< Core::Data::PlaceNameInfo >
Core::Data::ExdData::getPlaceNameInfo( uint32_t placeNameId )
{
try
{
auto row = m_placeNameDat.get_row( placeNameId );
auto info = boost::make_shared< PlaceNameInfo >();
info->id = placeNameId;
info->placename = getField< std::string >( row, 0 );
return info;
}
catch( ... )
{
return nullptr;
}
return nullptr;
}
boost::shared_ptr< Core::Data::ItemInfo >
Core::Data::ExdData::getItemInfo( uint32_t catalogId )
{
try
{
auto row = m_itemsDat.get_row( catalogId );
auto info = boost::make_shared< ItemInfo >();
info->id = catalogId;
info->name = getField< std::string >( row, 0 );
info->item_level = getField< uint16_t >( row, 11 );
info->required_level = getField< uint8_t >( row, 12 );
info->ui_category = getField< uint8_t >( row, 17 );
info->stack_size = getField< uint32_t >( row, 19 );
info->is_hqable = getField< bool >( row, 20 );
info->model_primary = getField< uint64_t >( row, 45 );
info->model_secondary = getField< uint64_t >( row, 46 );
info->physical_damage = getField< uint16_t >( row, 49 );
info->magical_damage = getField< uint16_t >( row, 50 );
info->delayMs = getField< uint16_t >( row, 51 );
info->is_unique = getField< int16_t >( row, 64 ) != 0 ? true : false;
info->is_untradeable = getField< uint8_t >( row, 65 ) != 0 ? true : false;
return info;
}
catch( ... )
{
return nullptr;
}
return nullptr;
}
boost::shared_ptr< Core::Data::AetheryteInfo >
Core::Data::ExdData::getAetheryteInfo( uint32_t aetheryteId )
{
try
{
return m_aetheryteInfoMap[ aetheryteId ];
}
catch( ... )
{
return nullptr;
}
return nullptr;
}
boost::shared_ptr< Core::Data::ActionInfo >
Core::Data::ExdData::getActionInfo( uint32_t actionId )
{
try
{
return m_actionInfoMap[ actionId ];
}
catch( ... )
{
return nullptr;
}
return nullptr;
}
boost::shared_ptr< Core::Data::CustomTalkInfo >
Core::Data::ExdData::getCustomTalkInfo( uint32_t customTalkId )
{
try
{
auto row = m_customTalkDat.get_row( customTalkId );
auto info = boost::make_shared< CustomTalkInfo >();
info->id = customTalkId;
info->name_intern = getField< std::string >( row, 2 );
return info;
}
catch( ... )
{
return nullptr;
}
return nullptr;
}
boost::shared_ptr< Core::Data::QuestInfo >
Core::Data::ExdData::getQuestInfo( uint32_t questId )
{
try
{
auto row = m_questDat.get_row( questId );
auto info = boost::make_shared< QuestInfo >();
info->id = questId;
info->name = getField< std::string >( row, 0 );
info->name_intern = getField< std::string >( row, 1 );
info->quest_level = getField< uint16_t >( row, 4 );
info->enpc_resident_start = getField< uint32_t >( row, 40 );
info->enpc_resident_end = getField< uint32_t >( row, 42 );
info->reward_exp_factor = getField< uint16_t >( row, 1439 );
info->reward_gil = getField< uint32_t >( row, 1440 );
info->reward_gc_seals = getField< uint16_t >( row, 1442 );
info->reward_item_type = getField< uint8_t >( row, 1449 );
for( uint32_t i = 0; i < 6; i++ )
{
uint32_t entry = getField< uint32_t >( row, i + 1450 );
if( entry > 0 )
info->reward_item.push_back( entry );
uint8_t entry1 = getField< uint8_t >( row, i + 1457 );
if( entry1 > 0 )
info->reward_item_count.push_back( entry1 );
uint8_t entry2 = getField< uint8_t >( row, i + 1464 );
if( entry2 > 0 )
info->reward_item_stain.push_back( entry2 );
}
for( uint32_t i = 0; i < 5; i++ )
{
uint32_t entry = getField< uint32_t >( row, i + 1471 );
if( entry > 0 )
info->reward_item_optional.push_back( entry );
uint8_t entry1 = getField< uint8_t >( row, i + 1476 );
if( entry1 > 0 )
info->reward_item_optional_count.push_back( entry1 );
uint8_t entry2 = getField< uint8_t >( row, i + 1486 );
if( entry2 > 0 )
info->reward_item_optional_stain.push_back( entry2 );
}
info->reward_emote = getField< uint8_t >( row, 1491 );
info->reward_action = getField< uint16_t >( row, 1492 );
info->reward_action_general1 = getField< uint8_t >( row, 1493 );
info->reward_action_general2 = getField< uint8_t >( row, 1494 );
info->reward_other = getField< uint8_t >( row, 1496 );
info->instanced_content_unlock = getField< uint32_t >( row, 1499 );
info->reward_tome_type = getField< uint8_t >( row, 1501 );
info->reward_tome_count = getField< uint8_t >( row, 1502 );
info->reward_reputation = getField< uint8_t >( row, 1503 );
for( uint32_t i = 0; i < 50; i++ )
{
std::string entry = getField< std::string >( row, i + 49 );
if( entry.size() > 0 )
{
info->script_entity.push_back( entry );
uint32_t entry1 = getField< uint32_t >( row, i + 99 );
info->script_value.push_back( entry1 );
}
}
return info;
}
catch( ... )
{
return nullptr;
}
return nullptr;
}
boost::shared_ptr< Core::Data::EventItemInfo >
Core::Data::ExdData::getEventItemInfo( uint32_t eventItemId )
{
try
{
auto row = m_eventItemDat.get_row( eventItemId );
auto info = boost::make_shared< EventItemInfo >();
info->id = eventItemId;
info->name = getField< std::string >( row, 0 );
info->eventId = getField< uint32_t >( row, 14 );
info->castTime = getField< uint8_t >( row, 15 ) * 1000;
return info;
}
catch( ... )
{
return nullptr;
}
return nullptr;
}
boost::shared_ptr< Core::Data::LevelInfo >
Core::Data::ExdData::getLevelInfo( uint32_t levelId )
{
try
{
auto row = m_levelDat.get_row( levelId );
auto info = boost::make_shared< LevelInfo >();
info->id = levelId;
info->x = getField< float >( row, 0 );
info->y = getField< float >( row, 1 );
info->z = getField< float >( row, 2 );
info->r = getField< float >( row, 3 );
info->actor_id = getField< uint32_t >( row, 6 );
info->zone_id = getField< uint16_t >( row, 9 );
return info;
}
catch( ... )
{
return nullptr;
}
return nullptr;
}
const std::vector< boost::shared_ptr< Core::Data::AetheryteInfo > >
Core::Data::ExdData::getAetheryteInfoForZone( uint16_t zoneId )
{
std::vector< boost::shared_ptr< AetheryteInfo > > aetheryteList;
for( auto& aetheryteInfo : m_aetheryteInfoMap )
{
if( aetheryteInfo.second->target_zone == zoneId )
{
aetheryteList.push_back( aetheryteInfo.second );
}
}
return aetheryteList;
}
boost::shared_ptr< Core::Data::OpeningInfo >
Core::Data::ExdData::getOpeningInfo( uint32_t openingId )
{
try
{
auto row = m_openingDat.get_row( openingId );
auto info = boost::make_shared< OpeningInfo >();
info->id = openingId;
info->name = getField< std::string >( row, 0 );
return info;
}
catch( ... )
{
return nullptr;
}
return nullptr;
}
boost::shared_ptr< Core::Data::RaceInfo >
Core::Data::ExdData::getRaceInfo( uint32_t raceId )
{
try
{
auto row = m_raceDat.get_row( raceId );
auto info = boost::make_shared< RaceInfo >();
info->id = raceId;
info->name = getField< std::string >( row, 0 );
info->male_body = getField< int32_t >( row, 2 );
info->male_hands = getField< int32_t >( row, 3 );
info->male_legs = getField< int32_t >( row, 4 );
info->male_feet = getField< int32_t >( row, 5 );
info->female_body = getField< int32_t >( row, 6 );
info->female_hands = getField< int32_t >( row, 7 );
info->female_legs = getField< int32_t >( row, 8 );
info->female_feet = getField< int32_t >( row, 9 );
return info;
}
catch( ... )
{
return nullptr;
}
return nullptr;
}

View file

@ -1,372 +0,0 @@
#ifndef _EXDDATA_H
#define _EXDDATA_H
#include <GameData.h>
#include <File.h>
#include <ExdData.h>
#include <ExdCat.h>
#include <Exd.h>
/* TYPES !!
case DataType::boolean: 1
case DataType::int8: 2
case DataType::uint8: 3
case DataType::int16: 4
case DataType::uint16: 5
case DataType::int32: 6
case DataType::uint32: 7
case DataType::float32: 8
case DataType::uint64: 9
*/
namespace Core {
namespace Data {
struct ZoneInfo
{
uint16_t id;
std::string zone_str;
std::string zone_name;
uint32_t layout_id;
uint16_t map_id;
int16_t discovery_index;
bool is_two_byte;
uint16_t weather_rate;
std::map< uint8_t, int32_t > weather_rate_map;
int32_t aetheryte_index;
uint8_t zone_type;
};
struct ClassJobInfo
{
uint8_t id;
std::string name;
std::string name_short;
uint8_t exp_idx;
uint32_t start_weapon_id;
uint16_t mod_hp;
uint16_t mod_mpcpgp;
uint16_t mod_str;
uint16_t mod_vit;
uint16_t mod_dex;
uint16_t mod_int;
uint16_t mod_mnd;
uint16_t mod_pie;
};
struct QuestInfo
{
uint32_t id;
std::string name;
std::string name_intern;
uint16_t quest_level;
uint32_t enpc_resident_start;
uint32_t enpc_resident_end;
uint16_t reward_exp_factor;
uint32_t reward_gil;
uint16_t reward_gc_seals;
uint8_t reward_item_type;
std::vector< uint32_t > reward_item;
std::vector< uint8_t > reward_item_count;
std::vector< uint8_t > reward_item_stain;
std::vector< uint32_t > reward_item_optional;
std::vector< uint8_t > reward_item_optional_count;
std::vector< uint8_t > reward_item_optional_stain;
uint8_t reward_emote;
uint16_t reward_action;
uint8_t reward_action_general1;
uint8_t reward_action_general2;
uint8_t reward_other;
uint32_t instanced_content_unlock;
uint8_t reward_tome_type;
uint8_t reward_tome_count;
uint8_t reward_reputation;
std::vector< std::string > script_entity;
std::vector< uint32_t > script_value;
};
struct EventActionInfo
{
uint32_t id;
std::string name;
uint32_t castTime;
};
struct OpeningInfo
{
uint32_t id;
std::string name;
};
struct ParamGrowthInfo
{
uint32_t level;
uint32_t needed_exp;
int16_t hp_mod;
int32_t mp_const;
int16_t mp_mod;
int32_t base_secondary;
uint16_t quest_exp_mod;
};
struct CustomTalkInfo
{
uint32_t id;
std::string name_intern;
};
struct PlaceNameInfo
{
uint32_t id;
std::string placename;
};
struct AetheryteInfo
{
uint32_t id;
std::string placename;
std::string placename_aethernet;
int32_t target_zone;
int32_t levelId;
bool isAetheryte;
int16_t map_coord_x;
int16_t map_coord_y;
};
struct RaceInfo
{
uint32_t id;
std::string name;
uint32_t male_body;
uint32_t male_hands;
uint32_t male_legs;
uint32_t male_feet;
uint32_t female_body;
uint32_t female_hands;
uint32_t female_legs;
uint32_t female_feet;
int8_t mod_str;
int8_t mod_dex;
int8_t mod_vit;
int8_t mod_int;
int8_t mod_mnd;
int8_t mod_pie;
};
struct TribeInfo
{
uint32_t id;
std::string name;
int8_t mod_str;
int8_t mod_dex;
int8_t mod_vit;
int8_t mod_int;
int8_t mod_mnd;
int8_t mod_pie;
};
struct LevelInfo
{
uint32_t id;
float x;
float y;
float z;
float r;
uint32_t actor_id;
uint32_t zone_id;
};
struct ClassJobCategoryInfo
{
uint32_t id;
// should they add new jobs, this needs to be changed
bool can_equip[0x33];
};
struct ItemInfo
{
uint32_t id;
std::string name; //0
uint16_t item_level; //11
uint8_t required_level; //12
uint16_t unknown_category; //15
uint16_t ui_category; //17
uint32_t stack_size; //19
bool is_hqable; //20
uint64_t model_primary; //28
uint64_t model_secondary; //29
uint16_t physical_damage; //49
uint16_t magical_damage; //50
uint16_t delayMs; //51
uint32_t class_job_requirement; //58
bool is_unique; //72
bool is_untradeable; //73
uint32_t class_job_index; //86
};
struct ActionInfo
{
uint32_t id;
std::string name; // 0
uint16_t category; // 3
int8_t class_job; // 10
uint8_t unlock_level; // 11
int8_t range; // 13
bool can_target_self; // 14
bool can_target_party; // 15
bool can_target_friendly; // 16
bool can_target_enemy; // 17
bool is_ground_aoe; // 20
bool can_target_ko; // 24
uint8_t aoe_type; // 26
uint8_t aoe_range; // 27
uint8_t aoe_width; // 28
uint8_t points_type; // 30
uint16_t points_cost; // 31
bool is_instant; // 35
uint32_t cast_time; // 36
uint32_t recast_time; // 37
int8_t model; // 39
uint8_t aspect; // 40
uint16_t toggle_status_id; // 42
bool affects_position; // 47
bool no_effect_in_battle; // 60
bool is_aoe; // Internal only
};
struct EventItemInfo
{
uint32_t id;
std::string name; //0
uint32_t eventId;
uint32_t castTime;
};
struct StatusEffectInfo
{
uint32_t id;
std::string name; // 0
bool lock_movement; // 7
bool lock_actions; // 9
bool lock_control; // 10
bool transfiguration; // 11
bool can_dispel; // 13
bool is_permanent; // 15
bool inflicted_by_actor; // 17
bool is_fc_buff; // 21
bool invisibility; // 22
};
class ExdData
{
public:
ExdData();
~ExdData( void );
bool init( const std::string& path );
xiv::exd::Exd setupDatAccess( const std::string& name, xiv::exd::Language lang );
template< class T >
T getField( std::vector< xiv::exd::Field >& fields, uint32_t index )
{
return *boost::get< T >( &fields.at( index ) );
}
boost::shared_ptr< xiv::dat::GameData > m_data;
boost::shared_ptr< xiv::exd::ExdData > m_exd_data;
xiv::exd::Exd m_questDat;
xiv::exd::Exd m_openingDat;
xiv::exd::Exd m_customTalkDat;
xiv::exd::Exd m_aetheryteDat;
xiv::exd::Exd m_levelDat;
xiv::exd::Exd m_placeNameDat;
xiv::exd::Exd m_itemsDat;
xiv::exd::Exd m_classJobCatDat;
xiv::exd::Exd m_raceDat;
xiv::exd::Exd m_eventItemDat;
std::map< uint32_t, ZoneInfo > m_zoneInfoMap;
std::map< uint8_t, ClassJobInfo > m_classJobInfoMap;
std::map< uint32_t, ParamGrowthInfo > m_paramGrowthInfoMap;
std::map< uint16_t, EventActionInfo > m_EventActionInfoMap;
std::map< uint16_t, boost::shared_ptr< ActionInfo > > m_actionInfoMap;
std::map< uint16_t, StatusEffectInfo > m_statusEffectInfoMap;
std::map< uint32_t, boost::shared_ptr< AetheryteInfo > > m_aetheryteInfoMap;
std::map< uint32_t, TribeInfo > m_tribeInfoMap;
bool loadZoneInfo();
bool loadClassJobInfo();
bool loadParamGrowInfo();
bool loadEventActionInfo();
bool loadActionInfo();
bool loadStatusEffectInfo();
bool loadAetheryteInfo();
bool loadTribeInfo();
boost::shared_ptr< QuestInfo > getQuestInfo( uint32_t questId );
boost::shared_ptr< OpeningInfo > getOpeningInfo( uint32_t openingId );
boost::shared_ptr< CustomTalkInfo > getCustomTalkInfo( uint32_t customTalkId );
boost::shared_ptr< AetheryteInfo > getAetheryteInfo( uint32_t aetheryteId );
boost::shared_ptr< ActionInfo > getActionInfo( uint32_t actionId );
boost::shared_ptr< PlaceNameInfo > getPlaceNameInfo( uint32_t placeNameId );
boost::shared_ptr< ItemInfo > getItemInfo( uint32_t catalogId );
boost::shared_ptr< RaceInfo > getRaceInfo( uint32_t raceId );
boost::shared_ptr< EventItemInfo > getEventItemInfo( uint32_t eventItemId );
boost::shared_ptr< LevelInfo > getLevelInfo( uint32_t levelId );
const std::vector< boost::shared_ptr< AetheryteInfo > > getAetheryteInfoForZone( uint16_t zoneId );
};
}
}
#endif

View file

@ -1,7 +1,7 @@
#include "ExdDataGenerated.h"
#include <boost/make_shared.hpp>
#include <memory>
#include <boost/variant.hpp>
#include <variant>
@ -5284,8 +5284,8 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path )
{
try
{
m_data = boost::make_shared< xiv::dat::GameData >( path );
m_exd_data = boost::make_shared< xiv::exd::ExdData >( *m_data );
m_data = std::make_shared< xiv::dat::GameData >( path );
m_exd_data = std::make_shared< xiv::exd::ExdData >( *m_data );
m_AchievementDat = setupDatAccess( "Achievement", xiv::exd::Language::en );
m_AchievementCategoryDat = setupDatAccess( "AchievementCategory", xiv::exd::Language::en );

View file

@ -11,7 +11,7 @@
#include <ExdCat.h>
#include <Exd.h>
#include <set>
#include <boost/make_shared.hpp>
#include <variant>
namespace Core {
namespace Data {
@ -4808,13 +4808,13 @@ struct ZoneSharedGroup
template< class T >
T getField( std::vector< xiv::exd::Field >& fields, uint32_t index )
{
return *boost::get< T >( &fields.at( index ) );
return std::get< T >( fields.at( index ) );
}
void loadIdList( xiv::exd::Exd& data, std::set< uint32_t >& outIdList );
boost::shared_ptr< xiv::dat::GameData > m_data;
boost::shared_ptr< xiv::exd::ExdData > m_exd_data;
std::shared_ptr< xiv::dat::GameData > m_data;
std::shared_ptr< xiv::exd::ExdData > m_exd_data;
xiv::exd::Exd m_AchievementDat;
xiv::exd::Exd m_AchievementCategoryDat;
@ -5246,441 +5246,441 @@ struct ZoneSharedGroup
xiv::exd::Exd m_ZoneSharedGroupDat;
using AchievementPtr = boost::shared_ptr< Achievement >;
using AchievementCategoryPtr = boost::shared_ptr< AchievementCategory >;
using AchievementKindPtr = boost::shared_ptr< AchievementKind >;
using ActionPtr = boost::shared_ptr< Action >;
using ActionCastTimelinePtr = boost::shared_ptr< ActionCastTimeline >;
using ActionCastVFXPtr = boost::shared_ptr< ActionCastVFX >;
using ActionCategoryPtr = boost::shared_ptr< ActionCategory >;
using ActionComboRoutePtr = boost::shared_ptr< ActionComboRoute >;
using ActionIndirectionPtr = boost::shared_ptr< ActionIndirection >;
using ActionParamPtr = boost::shared_ptr< ActionParam >;
using ActionProcStatusPtr = boost::shared_ptr< ActionProcStatus >;
using ActionTimelinePtr = boost::shared_ptr< ActionTimeline >;
using ActionTimelineMovePtr = boost::shared_ptr< ActionTimelineMove >;
using ActionTimelineReplacePtr = boost::shared_ptr< ActionTimelineReplace >;
using ActionTransientPtr = boost::shared_ptr< ActionTransient >;
using ActivityFeedButtonsPtr = boost::shared_ptr< ActivityFeedButtons >;
using ActivityFeedCaptionsPtr = boost::shared_ptr< ActivityFeedCaptions >;
using ActivityFeedGroupCaptionsPtr = boost::shared_ptr< ActivityFeedGroupCaptions >;
using ActivityFeedImagesPtr = boost::shared_ptr< ActivityFeedImages >;
using AddonPtr = boost::shared_ptr< Addon >;
using AddonHudPtr = boost::shared_ptr< AddonHud >;
using AdventurePtr = boost::shared_ptr< Adventure >;
using AdventureExPhasePtr = boost::shared_ptr< AdventureExPhase >;
using AetherCurrentPtr = boost::shared_ptr< AetherCurrent >;
using AetherCurrentCompFlgSetPtr = boost::shared_ptr< AetherCurrentCompFlgSet >;
using AetherialWheelPtr = boost::shared_ptr< AetherialWheel >;
using AetherytePtr = boost::shared_ptr< Aetheryte >;
using AetheryteSystemDefinePtr = boost::shared_ptr< AetheryteSystemDefine >;
using AirshipExplorationLevelPtr = boost::shared_ptr< AirshipExplorationLevel >;
using AirshipExplorationLogPtr = boost::shared_ptr< AirshipExplorationLog >;
using AirshipExplorationParamTypePtr = boost::shared_ptr< AirshipExplorationParamType >;
using AirshipExplorationPartPtr = boost::shared_ptr< AirshipExplorationPart >;
using AirshipExplorationPointPtr = boost::shared_ptr< AirshipExplorationPoint >;
using AnimaWeapon5Ptr = boost::shared_ptr< AnimaWeapon5 >;
using AnimaWeapon5ParamPtr = boost::shared_ptr< AnimaWeapon5Param >;
using AnimaWeapon5PatternGroupPtr = boost::shared_ptr< AnimaWeapon5PatternGroup >;
using AnimaWeapon5SpiritTalkPtr = boost::shared_ptr< AnimaWeapon5SpiritTalk >;
using AnimaWeapon5SpiritTalkParamPtr = boost::shared_ptr< AnimaWeapon5SpiritTalkParam >;
using AnimaWeapon5TradeItemPtr = boost::shared_ptr< AnimaWeapon5TradeItem >;
using AnimaWeaponFUITalkPtr = boost::shared_ptr< AnimaWeaponFUITalk >;
using AnimaWeaponFUITalkParamPtr = boost::shared_ptr< AnimaWeaponFUITalkParam >;
using AnimaWeaponIconPtr = boost::shared_ptr< AnimaWeaponIcon >;
using AnimaWeaponItemPtr = boost::shared_ptr< AnimaWeaponItem >;
using AquariumFishPtr = boost::shared_ptr< AquariumFish >;
using AquariumWaterPtr = boost::shared_ptr< AquariumWater >;
using ArrayEventHandlerPtr = boost::shared_ptr< ArrayEventHandler >;
using AttackTypePtr = boost::shared_ptr< AttackType >;
using BacklightColorPtr = boost::shared_ptr< BacklightColor >;
using BalloonPtr = boost::shared_ptr< Balloon >;
using BaseParamPtr = boost::shared_ptr< BaseParam >;
using BattleLevePtr = boost::shared_ptr< BattleLeve >;
using BeastRankBonusPtr = boost::shared_ptr< BeastRankBonus >;
using BeastReputationRankPtr = boost::shared_ptr< BeastReputationRank >;
using BeastTribePtr = boost::shared_ptr< BeastTribe >;
using BehaviorPtr = boost::shared_ptr< Behavior >;
using BGMPtr = boost::shared_ptr< BGM >;
using BGMFadePtr = boost::shared_ptr< BGMFade >;
using BGMSituationPtr = boost::shared_ptr< BGMSituation >;
using BGMSwitchPtr = boost::shared_ptr< BGMSwitch >;
using BGMSystemDefinePtr = boost::shared_ptr< BGMSystemDefine >;
using BNpcAnnounceIconPtr = boost::shared_ptr< BNpcAnnounceIcon >;
using BNpcBasePtr = boost::shared_ptr< BNpcBase >;
using BNpcCustomizePtr = boost::shared_ptr< BNpcCustomize >;
using BNpcNamePtr = boost::shared_ptr< BNpcName >;
using BNpcPartsPtr = boost::shared_ptr< BNpcParts >;
using BuddyPtr = boost::shared_ptr< Buddy >;
using BuddyActionPtr = boost::shared_ptr< BuddyAction >;
using BuddyEquipPtr = boost::shared_ptr< BuddyEquip >;
using BuddyItemPtr = boost::shared_ptr< BuddyItem >;
using BuddyRankPtr = boost::shared_ptr< BuddyRank >;
using BuddySkillPtr = boost::shared_ptr< BuddySkill >;
using CabinetPtr = boost::shared_ptr< Cabinet >;
using CabinetCategoryPtr = boost::shared_ptr< CabinetCategory >;
using CalendarPtr = boost::shared_ptr< Calendar >;
using CharaMakeCustomizePtr = boost::shared_ptr< CharaMakeCustomize >;
using CharaMakeTypePtr = boost::shared_ptr< CharaMakeType >;
using ChocoboRacePtr = boost::shared_ptr< ChocoboRace >;
using ChocoboRaceAbilityPtr = boost::shared_ptr< ChocoboRaceAbility >;
using ChocoboRaceAbilityTypePtr = boost::shared_ptr< ChocoboRaceAbilityType >;
using ChocoboRaceItemPtr = boost::shared_ptr< ChocoboRaceItem >;
using ChocoboRaceRankPtr = boost::shared_ptr< ChocoboRaceRank >;
using ChocoboRaceStatusPtr = boost::shared_ptr< ChocoboRaceStatus >;
using ChocoboRaceTerritoryPtr = boost::shared_ptr< ChocoboRaceTerritory >;
using ChocoboRaceTutorialPtr = boost::shared_ptr< ChocoboRaceTutorial >;
using ChocoboRaceWeatherPtr = boost::shared_ptr< ChocoboRaceWeather >;
using ChocoboTaxiPtr = boost::shared_ptr< ChocoboTaxi >;
using ChocoboTaxiStandPtr = boost::shared_ptr< ChocoboTaxiStand >;
using ClassJobPtr = boost::shared_ptr< ClassJob >;
using ClassJobCategoryPtr = boost::shared_ptr< ClassJobCategory >;
using CompanionPtr = boost::shared_ptr< Companion >;
using CompanionMovePtr = boost::shared_ptr< CompanionMove >;
using CompanionTransientPtr = boost::shared_ptr< CompanionTransient >;
using CompanyActionPtr = boost::shared_ptr< CompanyAction >;
using CompanyCraftDraftPtr = boost::shared_ptr< CompanyCraftDraft >;
using CompanyCraftDraftCategoryPtr = boost::shared_ptr< CompanyCraftDraftCategory >;
using CompanyCraftManufactoryStatePtr = boost::shared_ptr< CompanyCraftManufactoryState >;
using CompanyCraftPartPtr = boost::shared_ptr< CompanyCraftPart >;
using CompanyCraftProcessPtr = boost::shared_ptr< CompanyCraftProcess >;
using CompanyCraftSequencePtr = boost::shared_ptr< CompanyCraftSequence >;
using CompanyCraftSupplyItemPtr = boost::shared_ptr< CompanyCraftSupplyItem >;
using CompanyCraftTypePtr = boost::shared_ptr< CompanyCraftType >;
using CompleteJournalPtr = boost::shared_ptr< CompleteJournal >;
using CompleteJournalCategoryPtr = boost::shared_ptr< CompleteJournalCategory >;
using ContentCloseCyclePtr = boost::shared_ptr< ContentCloseCycle >;
using ContentExActionPtr = boost::shared_ptr< ContentExAction >;
using ContentFinderConditionPtr = boost::shared_ptr< ContentFinderCondition >;
using ContentFinderConditionTransientPtr = boost::shared_ptr< ContentFinderConditionTransient >;
using ContentGaugePtr = boost::shared_ptr< ContentGauge >;
using ContentGaugeColorPtr = boost::shared_ptr< ContentGaugeColor >;
using ContentMemberTypePtr = boost::shared_ptr< ContentMemberType >;
using ContentNpcTalkPtr = boost::shared_ptr< ContentNpcTalk >;
using ContentRoulettePtr = boost::shared_ptr< ContentRoulette >;
using ContentRouletteOpenRulePtr = boost::shared_ptr< ContentRouletteOpenRule >;
using ContentRouletteRoleBonusPtr = boost::shared_ptr< ContentRouletteRoleBonus >;
using ContentsNotePtr = boost::shared_ptr< ContentsNote >;
using ContentTalkPtr = boost::shared_ptr< ContentTalk >;
using ContentTalkParamPtr = boost::shared_ptr< ContentTalkParam >;
using ContentTypePtr = boost::shared_ptr< ContentType >;
using CraftActionPtr = boost::shared_ptr< CraftAction >;
using CraftLevePtr = boost::shared_ptr< CraftLeve >;
using CraftTypePtr = boost::shared_ptr< CraftType >;
using CreditPtr = boost::shared_ptr< Credit >;
using CreditCastPtr = boost::shared_ptr< CreditCast >;
using CurrencyPtr = boost::shared_ptr< Currency >;
using CustomTalkPtr = boost::shared_ptr< CustomTalk >;
using CutscenePtr = boost::shared_ptr< Cutscene >;
using CutScreenImagePtr = boost::shared_ptr< CutScreenImage >;
using DailySupplyItemPtr = boost::shared_ptr< DailySupplyItem >;
using DeepDungeonPtr = boost::shared_ptr< DeepDungeon >;
using DeepDungeonBanPtr = boost::shared_ptr< DeepDungeonBan >;
using DeepDungeonDangerPtr = boost::shared_ptr< DeepDungeonDanger >;
using DeepDungeonEquipmentPtr = boost::shared_ptr< DeepDungeonEquipment >;
using DeepDungeonFloorEffectUIPtr = boost::shared_ptr< DeepDungeonFloorEffectUI >;
using DeepDungeonItemPtr = boost::shared_ptr< DeepDungeonItem >;
using DeepDungeonLayerPtr = boost::shared_ptr< DeepDungeonLayer >;
using DeepDungeonMagicStonePtr = boost::shared_ptr< DeepDungeonMagicStone >;
using DeepDungeonMap5XPtr = boost::shared_ptr< DeepDungeonMap5X >;
using DeepDungeonRoomPtr = boost::shared_ptr< DeepDungeonRoom >;
using DeepDungeonStatusPtr = boost::shared_ptr< DeepDungeonStatus >;
using DefaultTalkPtr = boost::shared_ptr< DefaultTalk >;
using DefaultTalkLipSyncTypePtr = boost::shared_ptr< DefaultTalkLipSyncType >;
using DeliveryQuestPtr = boost::shared_ptr< DeliveryQuest >;
using DisposalShopPtr = boost::shared_ptr< DisposalShop >;
using DisposalShopFilterTypePtr = boost::shared_ptr< DisposalShopFilterType >;
using DisposalShopItemPtr = boost::shared_ptr< DisposalShopItem >;
using DpsChallengePtr = boost::shared_ptr< DpsChallenge >;
using DpsChallengeOfficerPtr = boost::shared_ptr< DpsChallengeOfficer >;
using DpsChallengeTransientPtr = boost::shared_ptr< DpsChallengeTransient >;
using EmotePtr = boost::shared_ptr< Emote >;
using EmoteCategoryPtr = boost::shared_ptr< EmoteCategory >;
using ENpcBasePtr = boost::shared_ptr< ENpcBase >;
using ENpcResidentPtr = boost::shared_ptr< ENpcResident >;
using EObjPtr = boost::shared_ptr< EObj >;
using EObjNamePtr = boost::shared_ptr< EObjName >;
using EquipRaceCategoryPtr = boost::shared_ptr< EquipRaceCategory >;
using EquipSlotCategoryPtr = boost::shared_ptr< EquipSlotCategory >;
using EurekaAethernetPtr = boost::shared_ptr< EurekaAethernet >;
using EurekaGrowDataPtr = boost::shared_ptr< EurekaGrowData >;
using EurekaSphereElementAdjustPtr = boost::shared_ptr< EurekaSphereElementAdjust >;
using EventActionPtr = boost::shared_ptr< EventAction >;
using EventIconPriorityPtr = boost::shared_ptr< EventIconPriority >;
using EventIconTypePtr = boost::shared_ptr< EventIconType >;
using EventItemPtr = boost::shared_ptr< EventItem >;
using EventItemCastTimelinePtr = boost::shared_ptr< EventItemCastTimeline >;
using EventItemHelpPtr = boost::shared_ptr< EventItemHelp >;
using EventItemTimelinePtr = boost::shared_ptr< EventItemTimeline >;
using ExportedSGPtr = boost::shared_ptr< ExportedSG >;
using ExVersionPtr = boost::shared_ptr< ExVersion >;
using FatePtr = boost::shared_ptr< Fate >;
using FCActivityPtr = boost::shared_ptr< FCActivity >;
using FCActivityCategoryPtr = boost::shared_ptr< FCActivityCategory >;
using FCAuthorityPtr = boost::shared_ptr< FCAuthority >;
using FCAuthorityCategoryPtr = boost::shared_ptr< FCAuthorityCategory >;
using FCChestNamePtr = boost::shared_ptr< FCChestName >;
using FccShopPtr = boost::shared_ptr< FccShop >;
using FCHierarchyPtr = boost::shared_ptr< FCHierarchy >;
using FCProfilePtr = boost::shared_ptr< FCProfile >;
using FCReputationPtr = boost::shared_ptr< FCReputation >;
using FCRightsPtr = boost::shared_ptr< FCRights >;
using FieldMarkerPtr = boost::shared_ptr< FieldMarker >;
using FishingRecordTypeTransientPtr = boost::shared_ptr< FishingRecordTypeTransient >;
using FishingSpotPtr = boost::shared_ptr< FishingSpot >;
using FishParameterPtr = boost::shared_ptr< FishParameter >;
using Frontline03Ptr = boost::shared_ptr< Frontline03 >;
using Frontline04Ptr = boost::shared_ptr< Frontline04 >;
using GardeningSeedPtr = boost::shared_ptr< GardeningSeed >;
using GatheringConditionPtr = boost::shared_ptr< GatheringCondition >;
using GatheringExpPtr = boost::shared_ptr< GatheringExp >;
using GatheringItemPtr = boost::shared_ptr< GatheringItem >;
using GatheringItemLevelConvertTablePtr = boost::shared_ptr< GatheringItemLevelConvertTable >;
using GatheringItemPointPtr = boost::shared_ptr< GatheringItemPoint >;
using GatheringLevePtr = boost::shared_ptr< GatheringLeve >;
using GatheringLeveRoutePtr = boost::shared_ptr< GatheringLeveRoute >;
using GatheringNotebookListPtr = boost::shared_ptr< GatheringNotebookList >;
using GatheringPointPtr = boost::shared_ptr< GatheringPoint >;
using GatheringPointBasePtr = boost::shared_ptr< GatheringPointBase >;
using GatheringPointBonusPtr = boost::shared_ptr< GatheringPointBonus >;
using GatheringPointBonusTypePtr = boost::shared_ptr< GatheringPointBonusType >;
using GatheringPointNamePtr = boost::shared_ptr< GatheringPointName >;
using GatheringSubCategoryPtr = boost::shared_ptr< GatheringSubCategory >;
using GatheringTypePtr = boost::shared_ptr< GatheringType >;
using GcArmyCaptureTacticsPtr = boost::shared_ptr< GcArmyCaptureTactics >;
using GcArmyExpeditionPtr = boost::shared_ptr< GcArmyExpedition >;
using GcArmyExpeditionMemberBonusPtr = boost::shared_ptr< GcArmyExpeditionMemberBonus >;
using GcArmyExpeditionTypePtr = boost::shared_ptr< GcArmyExpeditionType >;
using GcArmyMemberGrowPtr = boost::shared_ptr< GcArmyMemberGrow >;
using GcArmyTrainingPtr = boost::shared_ptr< GcArmyTraining >;
using GCRankGridaniaFemaleTextPtr = boost::shared_ptr< GCRankGridaniaFemaleText >;
using GCRankGridaniaMaleTextPtr = boost::shared_ptr< GCRankGridaniaMaleText >;
using GCRankLimsaFemaleTextPtr = boost::shared_ptr< GCRankLimsaFemaleText >;
using GCRankLimsaMaleTextPtr = boost::shared_ptr< GCRankLimsaMaleText >;
using GCRankUldahFemaleTextPtr = boost::shared_ptr< GCRankUldahFemaleText >;
using GCRankUldahMaleTextPtr = boost::shared_ptr< GCRankUldahMaleText >;
using GCScripShopCategoryPtr = boost::shared_ptr< GCScripShopCategory >;
using GCScripShopItemPtr = boost::shared_ptr< GCScripShopItem >;
using GCShopPtr = boost::shared_ptr< GCShop >;
using GCShopItemCategoryPtr = boost::shared_ptr< GCShopItemCategory >;
using GCSupplyDutyPtr = boost::shared_ptr< GCSupplyDuty >;
using GCSupplyDutyRewardPtr = boost::shared_ptr< GCSupplyDutyReward >;
using GeneralActionPtr = boost::shared_ptr< GeneralAction >;
using GFATEPtr = boost::shared_ptr< GFATE >;
using GilShopPtr = boost::shared_ptr< GilShop >;
using GilShopItemPtr = boost::shared_ptr< GilShopItem >;
using GoldSaucerArcadeMachinePtr = boost::shared_ptr< GoldSaucerArcadeMachine >;
using GoldSaucerTextDataPtr = boost::shared_ptr< GoldSaucerTextData >;
using GrandCompanyPtr = boost::shared_ptr< GrandCompany >;
using GrandCompanyRankPtr = boost::shared_ptr< GrandCompanyRank >;
using GuardianDeityPtr = boost::shared_ptr< GuardianDeity >;
using GuildleveAssignmentPtr = boost::shared_ptr< GuildleveAssignment >;
using GuildleveAssignmentCategoryPtr = boost::shared_ptr< GuildleveAssignmentCategory >;
using GuildOrderGuidePtr = boost::shared_ptr< GuildOrderGuide >;
using GuildOrderOfficerPtr = boost::shared_ptr< GuildOrderOfficer >;
using HairMakeTypePtr = boost::shared_ptr< HairMakeType >;
using HouseRetainerPosePtr = boost::shared_ptr< HouseRetainerPose >;
using HousingAethernetPtr = boost::shared_ptr< HousingAethernet >;
using HousingEmploymentNpcListPtr = boost::shared_ptr< HousingEmploymentNpcList >;
using HousingEmploymentNpcRacePtr = boost::shared_ptr< HousingEmploymentNpcRace >;
using HousingFurniturePtr = boost::shared_ptr< HousingFurniture >;
using HousingPlacementPtr = boost::shared_ptr< HousingPlacement >;
using HousingPresetPtr = boost::shared_ptr< HousingPreset >;
using HousingYardObjectPtr = boost::shared_ptr< HousingYardObject >;
using HowToPtr = boost::shared_ptr< HowTo >;
using HowToCategoryPtr = boost::shared_ptr< HowToCategory >;
using HowToPagePtr = boost::shared_ptr< HowToPage >;
using InstanceContentPtr = boost::shared_ptr< InstanceContent >;
using InstanceContentBuffPtr = boost::shared_ptr< InstanceContentBuff >;
using InstanceContentTextDataPtr = boost::shared_ptr< InstanceContentTextData >;
using ItemPtr = boost::shared_ptr< Item >;
using ItemActionPtr = boost::shared_ptr< ItemAction >;
using ItemFoodPtr = boost::shared_ptr< ItemFood >;
using ItemSearchCategoryPtr = boost::shared_ptr< ItemSearchCategory >;
using ItemSeriesPtr = boost::shared_ptr< ItemSeries >;
using ItemSpecialBonusPtr = boost::shared_ptr< ItemSpecialBonus >;
using ItemUICategoryPtr = boost::shared_ptr< ItemUICategory >;
using JournalCategoryPtr = boost::shared_ptr< JournalCategory >;
using JournalGenrePtr = boost::shared_ptr< JournalGenre >;
using JournalSectionPtr = boost::shared_ptr< JournalSection >;
using LevePtr = boost::shared_ptr< Leve >;
using LeveAssignmentTypePtr = boost::shared_ptr< LeveAssignmentType >;
using LeveClientPtr = boost::shared_ptr< LeveClient >;
using LevelPtr = boost::shared_ptr< Level >;
using LeveRewardItemPtr = boost::shared_ptr< LeveRewardItem >;
using LeveRewardItemGroupPtr = boost::shared_ptr< LeveRewardItemGroup >;
using LeveVfxPtr = boost::shared_ptr< LeveVfx >;
using LogFilterPtr = boost::shared_ptr< LogFilter >;
using LogKindPtr = boost::shared_ptr< LogKind >;
using LogKindCategoryTextPtr = boost::shared_ptr< LogKindCategoryText >;
using LogMessagePtr = boost::shared_ptr< LogMessage >;
using LotteryExchangeShopPtr = boost::shared_ptr< LotteryExchangeShop >;
using MacroIconPtr = boost::shared_ptr< MacroIcon >;
using MacroIconRedirectOldPtr = boost::shared_ptr< MacroIconRedirectOld >;
using MainCommandPtr = boost::shared_ptr< MainCommand >;
using MainCommandCategoryPtr = boost::shared_ptr< MainCommandCategory >;
using ManeuversArmorPtr = boost::shared_ptr< ManeuversArmor >;
using MapPtr = boost::shared_ptr< Map >;
using MapMarkerPtr = boost::shared_ptr< MapMarker >;
using MapMarkerRegionPtr = boost::shared_ptr< MapMarkerRegion >;
using MapSymbolPtr = boost::shared_ptr< MapSymbol >;
using MarkerPtr = boost::shared_ptr< Marker >;
using MasterpieceSupplyDutyPtr = boost::shared_ptr< MasterpieceSupplyDuty >;
using MasterpieceSupplyMultiplierPtr = boost::shared_ptr< MasterpieceSupplyMultiplier >;
using MateriaPtr = boost::shared_ptr< Materia >;
using MinionRacePtr = boost::shared_ptr< MinionRace >;
using MinionRulesPtr = boost::shared_ptr< MinionRules >;
using MinionSkillTypePtr = boost::shared_ptr< MinionSkillType >;
using MobHuntOrderTypePtr = boost::shared_ptr< MobHuntOrderType >;
using MobHuntTargetPtr = boost::shared_ptr< MobHuntTarget >;
using ModelCharaPtr = boost::shared_ptr< ModelChara >;
using ModelStatePtr = boost::shared_ptr< ModelState >;
using MonsterNotePtr = boost::shared_ptr< MonsterNote >;
using MonsterNoteTargetPtr = boost::shared_ptr< MonsterNoteTarget >;
using MountPtr = boost::shared_ptr< Mount >;
using MountActionPtr = boost::shared_ptr< MountAction >;
using MountCustomizePtr = boost::shared_ptr< MountCustomize >;
using MountFlyingConditionPtr = boost::shared_ptr< MountFlyingCondition >;
using MountSpeedPtr = boost::shared_ptr< MountSpeed >;
using MountTransientPtr = boost::shared_ptr< MountTransient >;
using MoveTimelinePtr = boost::shared_ptr< MoveTimeline >;
using MoveVfxPtr = boost::shared_ptr< MoveVfx >;
using NpcEquipPtr = boost::shared_ptr< NpcEquip >;
using NpcYellPtr = boost::shared_ptr< NpcYell >;
using OmenPtr = boost::shared_ptr< Omen >;
using OnlineStatusPtr = boost::shared_ptr< OnlineStatus >;
using OpeningPtr = boost::shared_ptr< Opening >;
using OrchestrionPtr = boost::shared_ptr< Orchestrion >;
using OrchestrionCategoryPtr = boost::shared_ptr< OrchestrionCategory >;
using OrchestrionPathPtr = boost::shared_ptr< OrchestrionPath >;
using OrchestrionUiparamPtr = boost::shared_ptr< OrchestrionUiparam >;
using ParamGrowPtr = boost::shared_ptr< ParamGrow >;
using PartyContentCutscenePtr = boost::shared_ptr< PartyContentCutscene >;
using PerformPtr = boost::shared_ptr< Perform >;
using PerformTransientPtr = boost::shared_ptr< PerformTransient >;
using PetPtr = boost::shared_ptr< Pet >;
using PetActionPtr = boost::shared_ptr< PetAction >;
using PicturePtr = boost::shared_ptr< Picture >;
using PlaceNamePtr = boost::shared_ptr< PlaceName >;
using PlantPotFlowerSeedPtr = boost::shared_ptr< PlantPotFlowerSeed >;
using PreHandlerPtr = boost::shared_ptr< PreHandler >;
using PublicContentPtr = boost::shared_ptr< PublicContent >;
using PublicContentCutscenePtr = boost::shared_ptr< PublicContentCutscene >;
using PublicContentTextDataPtr = boost::shared_ptr< PublicContentTextData >;
using PvPActionPtr = boost::shared_ptr< PvPAction >;
using PvPActionSortPtr = boost::shared_ptr< PvPActionSort >;
using PvPRankPtr = boost::shared_ptr< PvPRank >;
using PvPSelectTraitPtr = boost::shared_ptr< PvPSelectTrait >;
using PvPTraitPtr = boost::shared_ptr< PvPTrait >;
using QuestPtr = boost::shared_ptr< Quest >;
using QuestClassJobRewardPtr = boost::shared_ptr< QuestClassJobReward >;
using QuestClassJobSupplyPtr = boost::shared_ptr< QuestClassJobSupply >;
using QuestRepeatFlagPtr = boost::shared_ptr< QuestRepeatFlag >;
using QuestRewardOtherPtr = boost::shared_ptr< QuestRewardOther >;
using QuickChatPtr = boost::shared_ptr< QuickChat >;
using QuickChatTransientPtr = boost::shared_ptr< QuickChatTransient >;
using RacePtr = boost::shared_ptr< Race >;
using RacingChocoboItemPtr = boost::shared_ptr< RacingChocoboItem >;
using RacingChocoboNamePtr = boost::shared_ptr< RacingChocoboName >;
using RacingChocoboNameCategoryPtr = boost::shared_ptr< RacingChocoboNameCategory >;
using RacingChocoboNameInfoPtr = boost::shared_ptr< RacingChocoboNameInfo >;
using RacingChocoboParamPtr = boost::shared_ptr< RacingChocoboParam >;
using RecipePtr = boost::shared_ptr< Recipe >;
using RecipeElementPtr = boost::shared_ptr< RecipeElement >;
using RecipeLevelTablePtr = boost::shared_ptr< RecipeLevelTable >;
using RecipeNotebookListPtr = boost::shared_ptr< RecipeNotebookList >;
using RecommendContentsPtr = boost::shared_ptr< RecommendContents >;
using RelicPtr = boost::shared_ptr< Relic >;
using Relic3Ptr = boost::shared_ptr< Relic3 >;
using RelicItemPtr = boost::shared_ptr< RelicItem >;
using RelicNotePtr = boost::shared_ptr< RelicNote >;
using RelicNoteCategoryPtr = boost::shared_ptr< RelicNoteCategory >;
using ResidentPtr = boost::shared_ptr< Resident >;
using RetainerTaskPtr = boost::shared_ptr< RetainerTask >;
using RetainerTaskLvRangePtr = boost::shared_ptr< RetainerTaskLvRange >;
using RetainerTaskNormalPtr = boost::shared_ptr< RetainerTaskNormal >;
using RetainerTaskParameterPtr = boost::shared_ptr< RetainerTaskParameter >;
using RetainerTaskRandomPtr = boost::shared_ptr< RetainerTaskRandom >;
using RPParameterPtr = boost::shared_ptr< RPParameter >;
using SalvagePtr = boost::shared_ptr< Salvage >;
using SatisfactionNpcPtr = boost::shared_ptr< SatisfactionNpc >;
using SatisfactionSupplyPtr = boost::shared_ptr< SatisfactionSupply >;
using SatisfactionSupplyRewardPtr = boost::shared_ptr< SatisfactionSupplyReward >;
using ScenarioTreePtr = boost::shared_ptr< ScenarioTree >;
using ScenarioTreeTipsPtr = boost::shared_ptr< ScenarioTreeTips >;
using ScenarioTreeTipsClassQuestPtr = boost::shared_ptr< ScenarioTreeTipsClassQuest >;
using ScenarioTreeTipsQuestPtr = boost::shared_ptr< ScenarioTreeTipsQuest >;
using ScenarioTypePtr = boost::shared_ptr< ScenarioType >;
using ScreenImagePtr = boost::shared_ptr< ScreenImage >;
using SecretRecipeBookPtr = boost::shared_ptr< SecretRecipeBook >;
using SkyIsland2MissionPtr = boost::shared_ptr< SkyIsland2Mission >;
using SkyIsland2MissionDetailPtr = boost::shared_ptr< SkyIsland2MissionDetail >;
using SkyIsland2MissionTypePtr = boost::shared_ptr< SkyIsland2MissionType >;
using SkyIsland2RangeTypePtr = boost::shared_ptr< SkyIsland2RangeType >;
using SpearfishingItemPtr = boost::shared_ptr< SpearfishingItem >;
using SpearfishingNotebookPtr = boost::shared_ptr< SpearfishingNotebook >;
using SpearfishingRecordPagePtr = boost::shared_ptr< SpearfishingRecordPage >;
using SpecialShopPtr = boost::shared_ptr< SpecialShop >;
using SpecialShopItemCategoryPtr = boost::shared_ptr< SpecialShopItemCategory >;
using StainPtr = boost::shared_ptr< Stain >;
using StainTransientPtr = boost::shared_ptr< StainTransient >;
using StatusPtr = boost::shared_ptr< Status >;
using StatusHitEffectPtr = boost::shared_ptr< StatusHitEffect >;
using StatusLoopVFXPtr = boost::shared_ptr< StatusLoopVFX >;
using StoryPtr = boost::shared_ptr< Story >;
using SubmarineExplorationPtr = boost::shared_ptr< SubmarineExploration >;
using SubmarinePartPtr = boost::shared_ptr< SubmarinePart >;
using SubmarineRankPtr = boost::shared_ptr< SubmarineRank >;
using SwitchTalkPtr = boost::shared_ptr< SwitchTalk >;
using TerritoryTypePtr = boost::shared_ptr< TerritoryType >;
using TextCommandPtr = boost::shared_ptr< TextCommand >;
using TitlePtr = boost::shared_ptr< Title >;
using TomestonesPtr = boost::shared_ptr< Tomestones >;
using TomestonesItemPtr = boost::shared_ptr< TomestonesItem >;
using TopicSelectPtr = boost::shared_ptr< TopicSelect >;
using TownPtr = boost::shared_ptr< Town >;
using TraitPtr = boost::shared_ptr< Trait >;
using TraitRecastPtr = boost::shared_ptr< TraitRecast >;
using TraitTransientPtr = boost::shared_ptr< TraitTransient >;
using TransformationPtr = boost::shared_ptr< Transformation >;
using TreasurePtr = boost::shared_ptr< Treasure >;
using TreasureHuntRankPtr = boost::shared_ptr< TreasureHuntRank >;
using TribePtr = boost::shared_ptr< Tribe >;
using TripleTriadPtr = boost::shared_ptr< TripleTriad >;
using TripleTriadCardPtr = boost::shared_ptr< TripleTriadCard >;
using TripleTriadCardRarityPtr = boost::shared_ptr< TripleTriadCardRarity >;
using TripleTriadCardResidentPtr = boost::shared_ptr< TripleTriadCardResident >;
using TripleTriadCardTypePtr = boost::shared_ptr< TripleTriadCardType >;
using TripleTriadCompetitionPtr = boost::shared_ptr< TripleTriadCompetition >;
using TripleTriadRulePtr = boost::shared_ptr< TripleTriadRule >;
using TutorialPtr = boost::shared_ptr< Tutorial >;
using TutorialDPSPtr = boost::shared_ptr< TutorialDPS >;
using TutorialHealerPtr = boost::shared_ptr< TutorialHealer >;
using TutorialTankPtr = boost::shared_ptr< TutorialTank >;
using VaseFlowerPtr = boost::shared_ptr< VaseFlower >;
using VFXPtr = boost::shared_ptr< VFX >;
using WarpPtr = boost::shared_ptr< Warp >;
using WarpConditionPtr = boost::shared_ptr< WarpCondition >;
using WarpLogicPtr = boost::shared_ptr< WarpLogic >;
using WeatherPtr = boost::shared_ptr< Weather >;
using WeatherGroupPtr = boost::shared_ptr< WeatherGroup >;
using WeatherRatePtr = boost::shared_ptr< WeatherRate >;
using WeddingBGMPtr = boost::shared_ptr< WeddingBGM >;
using WeeklyBingoOrderDataPtr = boost::shared_ptr< WeeklyBingoOrderData >;
using WeeklyBingoRewardDataPtr = boost::shared_ptr< WeeklyBingoRewardData >;
using WeeklyBingoTextPtr = boost::shared_ptr< WeeklyBingoText >;
using WeeklyLotBonusPtr = boost::shared_ptr< WeeklyLotBonus >;
using WorldPtr = boost::shared_ptr< World >;
using WorldDCGroupTypePtr = boost::shared_ptr< WorldDCGroupType >;
using YKWPtr = boost::shared_ptr< YKW >;
using ZoneSharedGroupPtr = boost::shared_ptr< ZoneSharedGroup >;
using AchievementPtr = std::shared_ptr< Achievement >;
using AchievementCategoryPtr = std::shared_ptr< AchievementCategory >;
using AchievementKindPtr = std::shared_ptr< AchievementKind >;
using ActionPtr = std::shared_ptr< Action >;
using ActionCastTimelinePtr = std::shared_ptr< ActionCastTimeline >;
using ActionCastVFXPtr = std::shared_ptr< ActionCastVFX >;
using ActionCategoryPtr = std::shared_ptr< ActionCategory >;
using ActionComboRoutePtr = std::shared_ptr< ActionComboRoute >;
using ActionIndirectionPtr = std::shared_ptr< ActionIndirection >;
using ActionParamPtr = std::shared_ptr< ActionParam >;
using ActionProcStatusPtr = std::shared_ptr< ActionProcStatus >;
using ActionTimelinePtr = std::shared_ptr< ActionTimeline >;
using ActionTimelineMovePtr = std::shared_ptr< ActionTimelineMove >;
using ActionTimelineReplacePtr = std::shared_ptr< ActionTimelineReplace >;
using ActionTransientPtr = std::shared_ptr< ActionTransient >;
using ActivityFeedButtonsPtr = std::shared_ptr< ActivityFeedButtons >;
using ActivityFeedCaptionsPtr = std::shared_ptr< ActivityFeedCaptions >;
using ActivityFeedGroupCaptionsPtr = std::shared_ptr< ActivityFeedGroupCaptions >;
using ActivityFeedImagesPtr = std::shared_ptr< ActivityFeedImages >;
using AddonPtr = std::shared_ptr< Addon >;
using AddonHudPtr = std::shared_ptr< AddonHud >;
using AdventurePtr = std::shared_ptr< Adventure >;
using AdventureExPhasePtr = std::shared_ptr< AdventureExPhase >;
using AetherCurrentPtr = std::shared_ptr< AetherCurrent >;
using AetherCurrentCompFlgSetPtr = std::shared_ptr< AetherCurrentCompFlgSet >;
using AetherialWheelPtr = std::shared_ptr< AetherialWheel >;
using AetherytePtr = std::shared_ptr< Aetheryte >;
using AetheryteSystemDefinePtr = std::shared_ptr< AetheryteSystemDefine >;
using AirshipExplorationLevelPtr = std::shared_ptr< AirshipExplorationLevel >;
using AirshipExplorationLogPtr = std::shared_ptr< AirshipExplorationLog >;
using AirshipExplorationParamTypePtr = std::shared_ptr< AirshipExplorationParamType >;
using AirshipExplorationPartPtr = std::shared_ptr< AirshipExplorationPart >;
using AirshipExplorationPointPtr = std::shared_ptr< AirshipExplorationPoint >;
using AnimaWeapon5Ptr = std::shared_ptr< AnimaWeapon5 >;
using AnimaWeapon5ParamPtr = std::shared_ptr< AnimaWeapon5Param >;
using AnimaWeapon5PatternGroupPtr = std::shared_ptr< AnimaWeapon5PatternGroup >;
using AnimaWeapon5SpiritTalkPtr = std::shared_ptr< AnimaWeapon5SpiritTalk >;
using AnimaWeapon5SpiritTalkParamPtr = std::shared_ptr< AnimaWeapon5SpiritTalkParam >;
using AnimaWeapon5TradeItemPtr = std::shared_ptr< AnimaWeapon5TradeItem >;
using AnimaWeaponFUITalkPtr = std::shared_ptr< AnimaWeaponFUITalk >;
using AnimaWeaponFUITalkParamPtr = std::shared_ptr< AnimaWeaponFUITalkParam >;
using AnimaWeaponIconPtr = std::shared_ptr< AnimaWeaponIcon >;
using AnimaWeaponItemPtr = std::shared_ptr< AnimaWeaponItem >;
using AquariumFishPtr = std::shared_ptr< AquariumFish >;
using AquariumWaterPtr = std::shared_ptr< AquariumWater >;
using ArrayEventHandlerPtr = std::shared_ptr< ArrayEventHandler >;
using AttackTypePtr = std::shared_ptr< AttackType >;
using BacklightColorPtr = std::shared_ptr< BacklightColor >;
using BalloonPtr = std::shared_ptr< Balloon >;
using BaseParamPtr = std::shared_ptr< BaseParam >;
using BattleLevePtr = std::shared_ptr< BattleLeve >;
using BeastRankBonusPtr = std::shared_ptr< BeastRankBonus >;
using BeastReputationRankPtr = std::shared_ptr< BeastReputationRank >;
using BeastTribePtr = std::shared_ptr< BeastTribe >;
using BehaviorPtr = std::shared_ptr< Behavior >;
using BGMPtr = std::shared_ptr< BGM >;
using BGMFadePtr = std::shared_ptr< BGMFade >;
using BGMSituationPtr = std::shared_ptr< BGMSituation >;
using BGMSwitchPtr = std::shared_ptr< BGMSwitch >;
using BGMSystemDefinePtr = std::shared_ptr< BGMSystemDefine >;
using BNpcAnnounceIconPtr = std::shared_ptr< BNpcAnnounceIcon >;
using BNpcBasePtr = std::shared_ptr< BNpcBase >;
using BNpcCustomizePtr = std::shared_ptr< BNpcCustomize >;
using BNpcNamePtr = std::shared_ptr< BNpcName >;
using BNpcPartsPtr = std::shared_ptr< BNpcParts >;
using BuddyPtr = std::shared_ptr< Buddy >;
using BuddyActionPtr = std::shared_ptr< BuddyAction >;
using BuddyEquipPtr = std::shared_ptr< BuddyEquip >;
using BuddyItemPtr = std::shared_ptr< BuddyItem >;
using BuddyRankPtr = std::shared_ptr< BuddyRank >;
using BuddySkillPtr = std::shared_ptr< BuddySkill >;
using CabinetPtr = std::shared_ptr< Cabinet >;
using CabinetCategoryPtr = std::shared_ptr< CabinetCategory >;
using CalendarPtr = std::shared_ptr< Calendar >;
using CharaMakeCustomizePtr = std::shared_ptr< CharaMakeCustomize >;
using CharaMakeTypePtr = std::shared_ptr< CharaMakeType >;
using ChocoboRacePtr = std::shared_ptr< ChocoboRace >;
using ChocoboRaceAbilityPtr = std::shared_ptr< ChocoboRaceAbility >;
using ChocoboRaceAbilityTypePtr = std::shared_ptr< ChocoboRaceAbilityType >;
using ChocoboRaceItemPtr = std::shared_ptr< ChocoboRaceItem >;
using ChocoboRaceRankPtr = std::shared_ptr< ChocoboRaceRank >;
using ChocoboRaceStatusPtr = std::shared_ptr< ChocoboRaceStatus >;
using ChocoboRaceTerritoryPtr = std::shared_ptr< ChocoboRaceTerritory >;
using ChocoboRaceTutorialPtr = std::shared_ptr< ChocoboRaceTutorial >;
using ChocoboRaceWeatherPtr = std::shared_ptr< ChocoboRaceWeather >;
using ChocoboTaxiPtr = std::shared_ptr< ChocoboTaxi >;
using ChocoboTaxiStandPtr = std::shared_ptr< ChocoboTaxiStand >;
using ClassJobPtr = std::shared_ptr< ClassJob >;
using ClassJobCategoryPtr = std::shared_ptr< ClassJobCategory >;
using CompanionPtr = std::shared_ptr< Companion >;
using CompanionMovePtr = std::shared_ptr< CompanionMove >;
using CompanionTransientPtr = std::shared_ptr< CompanionTransient >;
using CompanyActionPtr = std::shared_ptr< CompanyAction >;
using CompanyCraftDraftPtr = std::shared_ptr< CompanyCraftDraft >;
using CompanyCraftDraftCategoryPtr = std::shared_ptr< CompanyCraftDraftCategory >;
using CompanyCraftManufactoryStatePtr = std::shared_ptr< CompanyCraftManufactoryState >;
using CompanyCraftPartPtr = std::shared_ptr< CompanyCraftPart >;
using CompanyCraftProcessPtr = std::shared_ptr< CompanyCraftProcess >;
using CompanyCraftSequencePtr = std::shared_ptr< CompanyCraftSequence >;
using CompanyCraftSupplyItemPtr = std::shared_ptr< CompanyCraftSupplyItem >;
using CompanyCraftTypePtr = std::shared_ptr< CompanyCraftType >;
using CompleteJournalPtr = std::shared_ptr< CompleteJournal >;
using CompleteJournalCategoryPtr = std::shared_ptr< CompleteJournalCategory >;
using ContentCloseCyclePtr = std::shared_ptr< ContentCloseCycle >;
using ContentExActionPtr = std::shared_ptr< ContentExAction >;
using ContentFinderConditionPtr = std::shared_ptr< ContentFinderCondition >;
using ContentFinderConditionTransientPtr = std::shared_ptr< ContentFinderConditionTransient >;
using ContentGaugePtr = std::shared_ptr< ContentGauge >;
using ContentGaugeColorPtr = std::shared_ptr< ContentGaugeColor >;
using ContentMemberTypePtr = std::shared_ptr< ContentMemberType >;
using ContentNpcTalkPtr = std::shared_ptr< ContentNpcTalk >;
using ContentRoulettePtr = std::shared_ptr< ContentRoulette >;
using ContentRouletteOpenRulePtr = std::shared_ptr< ContentRouletteOpenRule >;
using ContentRouletteRoleBonusPtr = std::shared_ptr< ContentRouletteRoleBonus >;
using ContentsNotePtr = std::shared_ptr< ContentsNote >;
using ContentTalkPtr = std::shared_ptr< ContentTalk >;
using ContentTalkParamPtr = std::shared_ptr< ContentTalkParam >;
using ContentTypePtr = std::shared_ptr< ContentType >;
using CraftActionPtr = std::shared_ptr< CraftAction >;
using CraftLevePtr = std::shared_ptr< CraftLeve >;
using CraftTypePtr = std::shared_ptr< CraftType >;
using CreditPtr = std::shared_ptr< Credit >;
using CreditCastPtr = std::shared_ptr< CreditCast >;
using CurrencyPtr = std::shared_ptr< Currency >;
using CustomTalkPtr = std::shared_ptr< CustomTalk >;
using CutscenePtr = std::shared_ptr< Cutscene >;
using CutScreenImagePtr = std::shared_ptr< CutScreenImage >;
using DailySupplyItemPtr = std::shared_ptr< DailySupplyItem >;
using DeepDungeonPtr = std::shared_ptr< DeepDungeon >;
using DeepDungeonBanPtr = std::shared_ptr< DeepDungeonBan >;
using DeepDungeonDangerPtr = std::shared_ptr< DeepDungeonDanger >;
using DeepDungeonEquipmentPtr = std::shared_ptr< DeepDungeonEquipment >;
using DeepDungeonFloorEffectUIPtr = std::shared_ptr< DeepDungeonFloorEffectUI >;
using DeepDungeonItemPtr = std::shared_ptr< DeepDungeonItem >;
using DeepDungeonLayerPtr = std::shared_ptr< DeepDungeonLayer >;
using DeepDungeonMagicStonePtr = std::shared_ptr< DeepDungeonMagicStone >;
using DeepDungeonMap5XPtr = std::shared_ptr< DeepDungeonMap5X >;
using DeepDungeonRoomPtr = std::shared_ptr< DeepDungeonRoom >;
using DeepDungeonStatusPtr = std::shared_ptr< DeepDungeonStatus >;
using DefaultTalkPtr = std::shared_ptr< DefaultTalk >;
using DefaultTalkLipSyncTypePtr = std::shared_ptr< DefaultTalkLipSyncType >;
using DeliveryQuestPtr = std::shared_ptr< DeliveryQuest >;
using DisposalShopPtr = std::shared_ptr< DisposalShop >;
using DisposalShopFilterTypePtr = std::shared_ptr< DisposalShopFilterType >;
using DisposalShopItemPtr = std::shared_ptr< DisposalShopItem >;
using DpsChallengePtr = std::shared_ptr< DpsChallenge >;
using DpsChallengeOfficerPtr = std::shared_ptr< DpsChallengeOfficer >;
using DpsChallengeTransientPtr = std::shared_ptr< DpsChallengeTransient >;
using EmotePtr = std::shared_ptr< Emote >;
using EmoteCategoryPtr = std::shared_ptr< EmoteCategory >;
using ENpcBasePtr = std::shared_ptr< ENpcBase >;
using ENpcResidentPtr = std::shared_ptr< ENpcResident >;
using EObjPtr = std::shared_ptr< EObj >;
using EObjNamePtr = std::shared_ptr< EObjName >;
using EquipRaceCategoryPtr = std::shared_ptr< EquipRaceCategory >;
using EquipSlotCategoryPtr = std::shared_ptr< EquipSlotCategory >;
using EurekaAethernetPtr = std::shared_ptr< EurekaAethernet >;
using EurekaGrowDataPtr = std::shared_ptr< EurekaGrowData >;
using EurekaSphereElementAdjustPtr = std::shared_ptr< EurekaSphereElementAdjust >;
using EventActionPtr = std::shared_ptr< EventAction >;
using EventIconPriorityPtr = std::shared_ptr< EventIconPriority >;
using EventIconTypePtr = std::shared_ptr< EventIconType >;
using EventItemPtr = std::shared_ptr< EventItem >;
using EventItemCastTimelinePtr = std::shared_ptr< EventItemCastTimeline >;
using EventItemHelpPtr = std::shared_ptr< EventItemHelp >;
using EventItemTimelinePtr = std::shared_ptr< EventItemTimeline >;
using ExportedSGPtr = std::shared_ptr< ExportedSG >;
using ExVersionPtr = std::shared_ptr< ExVersion >;
using FatePtr = std::shared_ptr< Fate >;
using FCActivityPtr = std::shared_ptr< FCActivity >;
using FCActivityCategoryPtr = std::shared_ptr< FCActivityCategory >;
using FCAuthorityPtr = std::shared_ptr< FCAuthority >;
using FCAuthorityCategoryPtr = std::shared_ptr< FCAuthorityCategory >;
using FCChestNamePtr = std::shared_ptr< FCChestName >;
using FccShopPtr = std::shared_ptr< FccShop >;
using FCHierarchyPtr = std::shared_ptr< FCHierarchy >;
using FCProfilePtr = std::shared_ptr< FCProfile >;
using FCReputationPtr = std::shared_ptr< FCReputation >;
using FCRightsPtr = std::shared_ptr< FCRights >;
using FieldMarkerPtr = std::shared_ptr< FieldMarker >;
using FishingRecordTypeTransientPtr = std::shared_ptr< FishingRecordTypeTransient >;
using FishingSpotPtr = std::shared_ptr< FishingSpot >;
using FishParameterPtr = std::shared_ptr< FishParameter >;
using Frontline03Ptr = std::shared_ptr< Frontline03 >;
using Frontline04Ptr = std::shared_ptr< Frontline04 >;
using GardeningSeedPtr = std::shared_ptr< GardeningSeed >;
using GatheringConditionPtr = std::shared_ptr< GatheringCondition >;
using GatheringExpPtr = std::shared_ptr< GatheringExp >;
using GatheringItemPtr = std::shared_ptr< GatheringItem >;
using GatheringItemLevelConvertTablePtr = std::shared_ptr< GatheringItemLevelConvertTable >;
using GatheringItemPointPtr = std::shared_ptr< GatheringItemPoint >;
using GatheringLevePtr = std::shared_ptr< GatheringLeve >;
using GatheringLeveRoutePtr = std::shared_ptr< GatheringLeveRoute >;
using GatheringNotebookListPtr = std::shared_ptr< GatheringNotebookList >;
using GatheringPointPtr = std::shared_ptr< GatheringPoint >;
using GatheringPointBasePtr = std::shared_ptr< GatheringPointBase >;
using GatheringPointBonusPtr = std::shared_ptr< GatheringPointBonus >;
using GatheringPointBonusTypePtr = std::shared_ptr< GatheringPointBonusType >;
using GatheringPointNamePtr = std::shared_ptr< GatheringPointName >;
using GatheringSubCategoryPtr = std::shared_ptr< GatheringSubCategory >;
using GatheringTypePtr = std::shared_ptr< GatheringType >;
using GcArmyCaptureTacticsPtr = std::shared_ptr< GcArmyCaptureTactics >;
using GcArmyExpeditionPtr = std::shared_ptr< GcArmyExpedition >;
using GcArmyExpeditionMemberBonusPtr = std::shared_ptr< GcArmyExpeditionMemberBonus >;
using GcArmyExpeditionTypePtr = std::shared_ptr< GcArmyExpeditionType >;
using GcArmyMemberGrowPtr = std::shared_ptr< GcArmyMemberGrow >;
using GcArmyTrainingPtr = std::shared_ptr< GcArmyTraining >;
using GCRankGridaniaFemaleTextPtr = std::shared_ptr< GCRankGridaniaFemaleText >;
using GCRankGridaniaMaleTextPtr = std::shared_ptr< GCRankGridaniaMaleText >;
using GCRankLimsaFemaleTextPtr = std::shared_ptr< GCRankLimsaFemaleText >;
using GCRankLimsaMaleTextPtr = std::shared_ptr< GCRankLimsaMaleText >;
using GCRankUldahFemaleTextPtr = std::shared_ptr< GCRankUldahFemaleText >;
using GCRankUldahMaleTextPtr = std::shared_ptr< GCRankUldahMaleText >;
using GCScripShopCategoryPtr = std::shared_ptr< GCScripShopCategory >;
using GCScripShopItemPtr = std::shared_ptr< GCScripShopItem >;
using GCShopPtr = std::shared_ptr< GCShop >;
using GCShopItemCategoryPtr = std::shared_ptr< GCShopItemCategory >;
using GCSupplyDutyPtr = std::shared_ptr< GCSupplyDuty >;
using GCSupplyDutyRewardPtr = std::shared_ptr< GCSupplyDutyReward >;
using GeneralActionPtr = std::shared_ptr< GeneralAction >;
using GFATEPtr = std::shared_ptr< GFATE >;
using GilShopPtr = std::shared_ptr< GilShop >;
using GilShopItemPtr = std::shared_ptr< GilShopItem >;
using GoldSaucerArcadeMachinePtr = std::shared_ptr< GoldSaucerArcadeMachine >;
using GoldSaucerTextDataPtr = std::shared_ptr< GoldSaucerTextData >;
using GrandCompanyPtr = std::shared_ptr< GrandCompany >;
using GrandCompanyRankPtr = std::shared_ptr< GrandCompanyRank >;
using GuardianDeityPtr = std::shared_ptr< GuardianDeity >;
using GuildleveAssignmentPtr = std::shared_ptr< GuildleveAssignment >;
using GuildleveAssignmentCategoryPtr = std::shared_ptr< GuildleveAssignmentCategory >;
using GuildOrderGuidePtr = std::shared_ptr< GuildOrderGuide >;
using GuildOrderOfficerPtr = std::shared_ptr< GuildOrderOfficer >;
using HairMakeTypePtr = std::shared_ptr< HairMakeType >;
using HouseRetainerPosePtr = std::shared_ptr< HouseRetainerPose >;
using HousingAethernetPtr = std::shared_ptr< HousingAethernet >;
using HousingEmploymentNpcListPtr = std::shared_ptr< HousingEmploymentNpcList >;
using HousingEmploymentNpcRacePtr = std::shared_ptr< HousingEmploymentNpcRace >;
using HousingFurniturePtr = std::shared_ptr< HousingFurniture >;
using HousingPlacementPtr = std::shared_ptr< HousingPlacement >;
using HousingPresetPtr = std::shared_ptr< HousingPreset >;
using HousingYardObjectPtr = std::shared_ptr< HousingYardObject >;
using HowToPtr = std::shared_ptr< HowTo >;
using HowToCategoryPtr = std::shared_ptr< HowToCategory >;
using HowToPagePtr = std::shared_ptr< HowToPage >;
using InstanceContentPtr = std::shared_ptr< InstanceContent >;
using InstanceContentBuffPtr = std::shared_ptr< InstanceContentBuff >;
using InstanceContentTextDataPtr = std::shared_ptr< InstanceContentTextData >;
using ItemPtr = std::shared_ptr< Item >;
using ItemActionPtr = std::shared_ptr< ItemAction >;
using ItemFoodPtr = std::shared_ptr< ItemFood >;
using ItemSearchCategoryPtr = std::shared_ptr< ItemSearchCategory >;
using ItemSeriesPtr = std::shared_ptr< ItemSeries >;
using ItemSpecialBonusPtr = std::shared_ptr< ItemSpecialBonus >;
using ItemUICategoryPtr = std::shared_ptr< ItemUICategory >;
using JournalCategoryPtr = std::shared_ptr< JournalCategory >;
using JournalGenrePtr = std::shared_ptr< JournalGenre >;
using JournalSectionPtr = std::shared_ptr< JournalSection >;
using LevePtr = std::shared_ptr< Leve >;
using LeveAssignmentTypePtr = std::shared_ptr< LeveAssignmentType >;
using LeveClientPtr = std::shared_ptr< LeveClient >;
using LevelPtr = std::shared_ptr< Level >;
using LeveRewardItemPtr = std::shared_ptr< LeveRewardItem >;
using LeveRewardItemGroupPtr = std::shared_ptr< LeveRewardItemGroup >;
using LeveVfxPtr = std::shared_ptr< LeveVfx >;
using LogFilterPtr = std::shared_ptr< LogFilter >;
using LogKindPtr = std::shared_ptr< LogKind >;
using LogKindCategoryTextPtr = std::shared_ptr< LogKindCategoryText >;
using LogMessagePtr = std::shared_ptr< LogMessage >;
using LotteryExchangeShopPtr = std::shared_ptr< LotteryExchangeShop >;
using MacroIconPtr = std::shared_ptr< MacroIcon >;
using MacroIconRedirectOldPtr = std::shared_ptr< MacroIconRedirectOld >;
using MainCommandPtr = std::shared_ptr< MainCommand >;
using MainCommandCategoryPtr = std::shared_ptr< MainCommandCategory >;
using ManeuversArmorPtr = std::shared_ptr< ManeuversArmor >;
using MapPtr = std::shared_ptr< Map >;
using MapMarkerPtr = std::shared_ptr< MapMarker >;
using MapMarkerRegionPtr = std::shared_ptr< MapMarkerRegion >;
using MapSymbolPtr = std::shared_ptr< MapSymbol >;
using MarkerPtr = std::shared_ptr< Marker >;
using MasterpieceSupplyDutyPtr = std::shared_ptr< MasterpieceSupplyDuty >;
using MasterpieceSupplyMultiplierPtr = std::shared_ptr< MasterpieceSupplyMultiplier >;
using MateriaPtr = std::shared_ptr< Materia >;
using MinionRacePtr = std::shared_ptr< MinionRace >;
using MinionRulesPtr = std::shared_ptr< MinionRules >;
using MinionSkillTypePtr = std::shared_ptr< MinionSkillType >;
using MobHuntOrderTypePtr = std::shared_ptr< MobHuntOrderType >;
using MobHuntTargetPtr = std::shared_ptr< MobHuntTarget >;
using ModelCharaPtr = std::shared_ptr< ModelChara >;
using ModelStatePtr = std::shared_ptr< ModelState >;
using MonsterNotePtr = std::shared_ptr< MonsterNote >;
using MonsterNoteTargetPtr = std::shared_ptr< MonsterNoteTarget >;
using MountPtr = std::shared_ptr< Mount >;
using MountActionPtr = std::shared_ptr< MountAction >;
using MountCustomizePtr = std::shared_ptr< MountCustomize >;
using MountFlyingConditionPtr = std::shared_ptr< MountFlyingCondition >;
using MountSpeedPtr = std::shared_ptr< MountSpeed >;
using MountTransientPtr = std::shared_ptr< MountTransient >;
using MoveTimelinePtr = std::shared_ptr< MoveTimeline >;
using MoveVfxPtr = std::shared_ptr< MoveVfx >;
using NpcEquipPtr = std::shared_ptr< NpcEquip >;
using NpcYellPtr = std::shared_ptr< NpcYell >;
using OmenPtr = std::shared_ptr< Omen >;
using OnlineStatusPtr = std::shared_ptr< OnlineStatus >;
using OpeningPtr = std::shared_ptr< Opening >;
using OrchestrionPtr = std::shared_ptr< Orchestrion >;
using OrchestrionCategoryPtr = std::shared_ptr< OrchestrionCategory >;
using OrchestrionPathPtr = std::shared_ptr< OrchestrionPath >;
using OrchestrionUiparamPtr = std::shared_ptr< OrchestrionUiparam >;
using ParamGrowPtr = std::shared_ptr< ParamGrow >;
using PartyContentCutscenePtr = std::shared_ptr< PartyContentCutscene >;
using PerformPtr = std::shared_ptr< Perform >;
using PerformTransientPtr = std::shared_ptr< PerformTransient >;
using PetPtr = std::shared_ptr< Pet >;
using PetActionPtr = std::shared_ptr< PetAction >;
using PicturePtr = std::shared_ptr< Picture >;
using PlaceNamePtr = std::shared_ptr< PlaceName >;
using PlantPotFlowerSeedPtr = std::shared_ptr< PlantPotFlowerSeed >;
using PreHandlerPtr = std::shared_ptr< PreHandler >;
using PublicContentPtr = std::shared_ptr< PublicContent >;
using PublicContentCutscenePtr = std::shared_ptr< PublicContentCutscene >;
using PublicContentTextDataPtr = std::shared_ptr< PublicContentTextData >;
using PvPActionPtr = std::shared_ptr< PvPAction >;
using PvPActionSortPtr = std::shared_ptr< PvPActionSort >;
using PvPRankPtr = std::shared_ptr< PvPRank >;
using PvPSelectTraitPtr = std::shared_ptr< PvPSelectTrait >;
using PvPTraitPtr = std::shared_ptr< PvPTrait >;
using QuestPtr = std::shared_ptr< Quest >;
using QuestClassJobRewardPtr = std::shared_ptr< QuestClassJobReward >;
using QuestClassJobSupplyPtr = std::shared_ptr< QuestClassJobSupply >;
using QuestRepeatFlagPtr = std::shared_ptr< QuestRepeatFlag >;
using QuestRewardOtherPtr = std::shared_ptr< QuestRewardOther >;
using QuickChatPtr = std::shared_ptr< QuickChat >;
using QuickChatTransientPtr = std::shared_ptr< QuickChatTransient >;
using RacePtr = std::shared_ptr< Race >;
using RacingChocoboItemPtr = std::shared_ptr< RacingChocoboItem >;
using RacingChocoboNamePtr = std::shared_ptr< RacingChocoboName >;
using RacingChocoboNameCategoryPtr = std::shared_ptr< RacingChocoboNameCategory >;
using RacingChocoboNameInfoPtr = std::shared_ptr< RacingChocoboNameInfo >;
using RacingChocoboParamPtr = std::shared_ptr< RacingChocoboParam >;
using RecipePtr = std::shared_ptr< Recipe >;
using RecipeElementPtr = std::shared_ptr< RecipeElement >;
using RecipeLevelTablePtr = std::shared_ptr< RecipeLevelTable >;
using RecipeNotebookListPtr = std::shared_ptr< RecipeNotebookList >;
using RecommendContentsPtr = std::shared_ptr< RecommendContents >;
using RelicPtr = std::shared_ptr< Relic >;
using Relic3Ptr = std::shared_ptr< Relic3 >;
using RelicItemPtr = std::shared_ptr< RelicItem >;
using RelicNotePtr = std::shared_ptr< RelicNote >;
using RelicNoteCategoryPtr = std::shared_ptr< RelicNoteCategory >;
using ResidentPtr = std::shared_ptr< Resident >;
using RetainerTaskPtr = std::shared_ptr< RetainerTask >;
using RetainerTaskLvRangePtr = std::shared_ptr< RetainerTaskLvRange >;
using RetainerTaskNormalPtr = std::shared_ptr< RetainerTaskNormal >;
using RetainerTaskParameterPtr = std::shared_ptr< RetainerTaskParameter >;
using RetainerTaskRandomPtr = std::shared_ptr< RetainerTaskRandom >;
using RPParameterPtr = std::shared_ptr< RPParameter >;
using SalvagePtr = std::shared_ptr< Salvage >;
using SatisfactionNpcPtr = std::shared_ptr< SatisfactionNpc >;
using SatisfactionSupplyPtr = std::shared_ptr< SatisfactionSupply >;
using SatisfactionSupplyRewardPtr = std::shared_ptr< SatisfactionSupplyReward >;
using ScenarioTreePtr = std::shared_ptr< ScenarioTree >;
using ScenarioTreeTipsPtr = std::shared_ptr< ScenarioTreeTips >;
using ScenarioTreeTipsClassQuestPtr = std::shared_ptr< ScenarioTreeTipsClassQuest >;
using ScenarioTreeTipsQuestPtr = std::shared_ptr< ScenarioTreeTipsQuest >;
using ScenarioTypePtr = std::shared_ptr< ScenarioType >;
using ScreenImagePtr = std::shared_ptr< ScreenImage >;
using SecretRecipeBookPtr = std::shared_ptr< SecretRecipeBook >;
using SkyIsland2MissionPtr = std::shared_ptr< SkyIsland2Mission >;
using SkyIsland2MissionDetailPtr = std::shared_ptr< SkyIsland2MissionDetail >;
using SkyIsland2MissionTypePtr = std::shared_ptr< SkyIsland2MissionType >;
using SkyIsland2RangeTypePtr = std::shared_ptr< SkyIsland2RangeType >;
using SpearfishingItemPtr = std::shared_ptr< SpearfishingItem >;
using SpearfishingNotebookPtr = std::shared_ptr< SpearfishingNotebook >;
using SpearfishingRecordPagePtr = std::shared_ptr< SpearfishingRecordPage >;
using SpecialShopPtr = std::shared_ptr< SpecialShop >;
using SpecialShopItemCategoryPtr = std::shared_ptr< SpecialShopItemCategory >;
using StainPtr = std::shared_ptr< Stain >;
using StainTransientPtr = std::shared_ptr< StainTransient >;
using StatusPtr = std::shared_ptr< Status >;
using StatusHitEffectPtr = std::shared_ptr< StatusHitEffect >;
using StatusLoopVFXPtr = std::shared_ptr< StatusLoopVFX >;
using StoryPtr = std::shared_ptr< Story >;
using SubmarineExplorationPtr = std::shared_ptr< SubmarineExploration >;
using SubmarinePartPtr = std::shared_ptr< SubmarinePart >;
using SubmarineRankPtr = std::shared_ptr< SubmarineRank >;
using SwitchTalkPtr = std::shared_ptr< SwitchTalk >;
using TerritoryTypePtr = std::shared_ptr< TerritoryType >;
using TextCommandPtr = std::shared_ptr< TextCommand >;
using TitlePtr = std::shared_ptr< Title >;
using TomestonesPtr = std::shared_ptr< Tomestones >;
using TomestonesItemPtr = std::shared_ptr< TomestonesItem >;
using TopicSelectPtr = std::shared_ptr< TopicSelect >;
using TownPtr = std::shared_ptr< Town >;
using TraitPtr = std::shared_ptr< Trait >;
using TraitRecastPtr = std::shared_ptr< TraitRecast >;
using TraitTransientPtr = std::shared_ptr< TraitTransient >;
using TransformationPtr = std::shared_ptr< Transformation >;
using TreasurePtr = std::shared_ptr< Treasure >;
using TreasureHuntRankPtr = std::shared_ptr< TreasureHuntRank >;
using TribePtr = std::shared_ptr< Tribe >;
using TripleTriadPtr = std::shared_ptr< TripleTriad >;
using TripleTriadCardPtr = std::shared_ptr< TripleTriadCard >;
using TripleTriadCardRarityPtr = std::shared_ptr< TripleTriadCardRarity >;
using TripleTriadCardResidentPtr = std::shared_ptr< TripleTriadCardResident >;
using TripleTriadCardTypePtr = std::shared_ptr< TripleTriadCardType >;
using TripleTriadCompetitionPtr = std::shared_ptr< TripleTriadCompetition >;
using TripleTriadRulePtr = std::shared_ptr< TripleTriadRule >;
using TutorialPtr = std::shared_ptr< Tutorial >;
using TutorialDPSPtr = std::shared_ptr< TutorialDPS >;
using TutorialHealerPtr = std::shared_ptr< TutorialHealer >;
using TutorialTankPtr = std::shared_ptr< TutorialTank >;
using VaseFlowerPtr = std::shared_ptr< VaseFlower >;
using VFXPtr = std::shared_ptr< VFX >;
using WarpPtr = std::shared_ptr< Warp >;
using WarpConditionPtr = std::shared_ptr< WarpCondition >;
using WarpLogicPtr = std::shared_ptr< WarpLogic >;
using WeatherPtr = std::shared_ptr< Weather >;
using WeatherGroupPtr = std::shared_ptr< WeatherGroup >;
using WeatherRatePtr = std::shared_ptr< WeatherRate >;
using WeddingBGMPtr = std::shared_ptr< WeddingBGM >;
using WeeklyBingoOrderDataPtr = std::shared_ptr< WeeklyBingoOrderData >;
using WeeklyBingoRewardDataPtr = std::shared_ptr< WeeklyBingoRewardData >;
using WeeklyBingoTextPtr = std::shared_ptr< WeeklyBingoText >;
using WeeklyLotBonusPtr = std::shared_ptr< WeeklyLotBonus >;
using WorldPtr = std::shared_ptr< World >;
using WorldDCGroupTypePtr = std::shared_ptr< WorldDCGroupType >;
using YKWPtr = std::shared_ptr< YKW >;
using ZoneSharedGroupPtr = std::shared_ptr< ZoneSharedGroup >;
template< class T >
boost::shared_ptr< T > get( uint32_t id )
std::shared_ptr< T > get( uint32_t id )
{
try
{
auto info = boost::make_shared< T >( id, this );
auto info = std::make_shared< T >( id, this );
return info;
}
catch( ... )

View file

@ -12,7 +12,7 @@ namespace Core {
namespace Network {
namespace Packets {
typedef boost::shared_ptr< FFXIVPacketBase > FFXIVPacketBasePtr;
typedef std::shared_ptr< FFXIVPacketBase > FFXIVPacketBasePtr;
class PacketContainer
{