mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-25 14:07:46 +00:00
Merge pull request #566 from NotAdam/develop
5.0 updates, the first of many to come
This commit is contained in:
commit
aa4e213103
14 changed files with 714 additions and 593 deletions
|
@ -21,6 +21,9 @@ namespace Sapphire::Common
|
||||||
const int32_t INVALID_GAME_OBJECT_ID = 0xE0000000;
|
const int32_t INVALID_GAME_OBJECT_ID = 0xE0000000;
|
||||||
const uint64_t INVALID_GAME_OBJECT_ID64 = 0xE0000000;
|
const uint64_t INVALID_GAME_OBJECT_ID64 = 0xE0000000;
|
||||||
|
|
||||||
|
const uint16_t MAX_PLAYER_LEVEL = 80;
|
||||||
|
const uint8_t CURRENT_EXPANSION_ID = 3;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief The maximum length (in ms) of a combo before it is canceled/voided.
|
* @brief The maximum length (in ms) of a combo before it is canceled/voided.
|
||||||
*
|
*
|
||||||
|
|
|
@ -6,8 +6,7 @@
|
||||||
/* This file has been automatically generated.
|
/* This file has been automatically generated.
|
||||||
Changes will be lost upon regeneration.
|
Changes will be lost upon regeneration.
|
||||||
To change the content edit tools/exd_common_gen */
|
To change the content edit tools/exd_common_gen */
|
||||||
namespace Sapphire {
|
namespace Sapphire::Common {
|
||||||
namespace Common {
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
//ActionCategory.exd
|
//ActionCategory.exd
|
||||||
|
@ -173,6 +172,8 @@ enum class ClassJob : uint8_t
|
||||||
Samurai = 34,
|
Samurai = 34,
|
||||||
Redmage = 35,
|
Redmage = 35,
|
||||||
Bluemage = 36,
|
Bluemage = 36,
|
||||||
|
Gunbreaker = 37,
|
||||||
|
Dancer = 38,
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -199,14 +200,10 @@ enum class ContentType : uint8_t
|
||||||
DisciplesoftheHand = 17,
|
DisciplesoftheHand = 17,
|
||||||
RetainerVentures = 18,
|
RetainerVentures = 18,
|
||||||
GoldSaucer = 19,
|
GoldSaucer = 19,
|
||||||
one = 20,
|
|
||||||
DeepDungeons = 21,
|
DeepDungeons = 21,
|
||||||
two = 22,
|
|
||||||
three = 23,
|
|
||||||
WondrousTails = 24,
|
WondrousTails = 24,
|
||||||
CustomDeliveries = 25,
|
CustomDeliveries = 25,
|
||||||
Eureka = 26,
|
Eureka = 26,
|
||||||
four = 27,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -217,7 +214,6 @@ enum class EmoteCategory : uint8_t
|
||||||
General = 1,
|
General = 1,
|
||||||
Special = 2,
|
Special = 2,
|
||||||
Expressions = 3,
|
Expressions = 3,
|
||||||
one = 4,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -227,7 +223,7 @@ enum class ExVersion : uint8_t
|
||||||
ARealmReborn = 0,
|
ARealmReborn = 0,
|
||||||
Heavensward = 1,
|
Heavensward = 1,
|
||||||
Stormblood = 2,
|
Stormblood = 2,
|
||||||
three = 3,
|
Shadowbringers = 3,
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -369,6 +365,8 @@ enum class ItemUICategory : uint8_t
|
||||||
SubmersibleBow = 103,
|
SubmersibleBow = 103,
|
||||||
SubmersibleBridge = 104,
|
SubmersibleBridge = 104,
|
||||||
BlueMagesArm = 105,
|
BlueMagesArm = 105,
|
||||||
|
GunbreakersArm = 106,
|
||||||
|
DancersArm = 107,
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -393,7 +391,7 @@ enum class ItemSearchCategory : uint8_t
|
||||||
ConjurersArms = 15,
|
ConjurersArms = 15,
|
||||||
ArcanistsArms = 16,
|
ArcanistsArms = 16,
|
||||||
Shields = 17,
|
Shields = 17,
|
||||||
ThrowingWeapons = 18,
|
DancersArms = 18,
|
||||||
CarpentersTools = 19,
|
CarpentersTools = 19,
|
||||||
BlacksmithsTools = 20,
|
BlacksmithsTools = 20,
|
||||||
ArmorersTools = 21,
|
ArmorersTools = 21,
|
||||||
|
@ -454,13 +452,15 @@ enum class ItemSearchCategory : uint8_t
|
||||||
DarkKnightsArms = 76,
|
DarkKnightsArms = 76,
|
||||||
MachinistsArms = 77,
|
MachinistsArms = 77,
|
||||||
AstrologiansArms = 78,
|
AstrologiansArms = 78,
|
||||||
Airship_SubmersibleComponents = 79,
|
AirshipSubmersibleComponents = 79,
|
||||||
OrchestrionComponents = 80,
|
OrchestrionComponents = 80,
|
||||||
GardeningItems = 81,
|
GardeningItems = 81,
|
||||||
Paintings = 82,
|
Paintings = 82,
|
||||||
SamuraisArms = 83,
|
SamuraisArms = 83,
|
||||||
RedMagesArms = 84,
|
RedMagesArms = 84,
|
||||||
ScholarsArms = 85,
|
ScholarsArms = 85,
|
||||||
|
GunbreakersArms = 86,
|
||||||
|
ThrowingWeapons = 87,
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -527,6 +527,8 @@ enum class Race : uint8_t
|
||||||
Miqote = 4,
|
Miqote = 4,
|
||||||
Roegadyn = 5,
|
Roegadyn = 5,
|
||||||
AuRa = 6,
|
AuRa = 6,
|
||||||
|
Hrothgar = 7,
|
||||||
|
Viera = 8,
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -546,6 +548,10 @@ enum class Tribe : uint8_t
|
||||||
Hellsguard = 10,
|
Hellsguard = 10,
|
||||||
Raen = 11,
|
Raen = 11,
|
||||||
Xaela = 12,
|
Xaela = 12,
|
||||||
|
Helions = 13,
|
||||||
|
TheLost = 14,
|
||||||
|
Rava = 15,
|
||||||
|
Veena = 16,
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -558,6 +564,7 @@ enum class Town : uint8_t
|
||||||
Uldah = 3,
|
Uldah = 3,
|
||||||
Ishgard = 4,
|
Ishgard = 4,
|
||||||
Kugane = 7,
|
Kugane = 7,
|
||||||
|
TheCrystarium = 10,
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -680,7 +687,21 @@ enum class Weather : uint8_t
|
||||||
TrueBlue = 113,
|
TrueBlue = 113,
|
||||||
TrueBlue1 = 114,
|
TrueBlue1 = 114,
|
||||||
TrueBlue2 = 115,
|
TrueBlue2 = 115,
|
||||||
|
UmbralTurbulence = 116,
|
||||||
TrueBlue3 = 117,
|
TrueBlue3 = 117,
|
||||||
|
EverlastingLight = 118,
|
||||||
|
Gales2 = 119,
|
||||||
|
Termination = 120,
|
||||||
|
Termination1 = 121,
|
||||||
|
Dreams = 122,
|
||||||
|
Dreams1 = 123,
|
||||||
|
Dreams2 = 124,
|
||||||
|
Brilliance = 125,
|
||||||
|
Brilliance1 = 126,
|
||||||
|
Termination2 = 127,
|
||||||
|
Termination3 = 128,
|
||||||
|
EverlastingLight1 = 129,
|
||||||
|
Termination4 = 131,
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -703,8 +724,12 @@ enum class HousingAppeal : uint8_t
|
||||||
Library = 14,
|
Library = 14,
|
||||||
PhotoStudio = 15,
|
PhotoStudio = 15,
|
||||||
HauntedHouse = 16,
|
HauntedHouse = 16,
|
||||||
|
Atelier = 17,
|
||||||
|
Bathhouse = 18,
|
||||||
|
Garden = 19,
|
||||||
|
FarEastern = 20,
|
||||||
};
|
};
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ Sapphire::Data::Achievement::Achievement( uint32_t row_id, Sapphire::Data::ExdDa
|
||||||
data.push_back( exdData->getField< int32_t >( row, 16 ) );
|
data.push_back( exdData->getField< int32_t >( row, 16 ) );
|
||||||
data.push_back( exdData->getField< int32_t >( row, 17 ) );
|
data.push_back( exdData->getField< int32_t >( row, 17 ) );
|
||||||
order = exdData->getField< uint16_t >( row, 18 );
|
order = exdData->getField< uint16_t >( row, 18 );
|
||||||
initialHide = exdData->getField< bool >( row, 20 );
|
initialHide = exdData->getField< uint8_t >( row, 20 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -71,16 +71,16 @@ Sapphire::Data::Action::Action( uint32_t row_id, Sapphire::Data::ExdDataGenerate
|
||||||
cast100ms = exdData->getField< uint16_t >( row, 37 );
|
cast100ms = exdData->getField< uint16_t >( row, 37 );
|
||||||
recast100ms = exdData->getField< uint16_t >( row, 38 );
|
recast100ms = exdData->getField< uint16_t >( row, 38 );
|
||||||
cooldownGroup = exdData->getField< uint8_t >( row, 39 );
|
cooldownGroup = exdData->getField< uint8_t >( row, 39 );
|
||||||
attackType = exdData->getField< int8_t >( row, 40 );
|
attackType = exdData->getField< int8_t >( row, 42 );
|
||||||
aspect = exdData->getField< uint8_t >( row, 41 );
|
aspect = exdData->getField< uint8_t >( row, 43 );
|
||||||
actionProcStatus = exdData->getField< uint8_t >( row, 42 );
|
actionProcStatus = exdData->getField< uint8_t >( row, 44 );
|
||||||
statusGainSelf = exdData->getField< uint16_t >( row, 43 );
|
statusGainSelf = exdData->getField< uint16_t >( row, 46 );
|
||||||
unlockLink = exdData->getField< uint32_t >( row, 44 );
|
unlockLink = exdData->getField< uint32_t >( row, 47 );
|
||||||
classJobCategory = exdData->getField< uint8_t >( row, 45 );
|
classJobCategory = exdData->getField< uint8_t >( row, 48 );
|
||||||
affectsPosition = exdData->getField< bool >( row, 48 );
|
affectsPosition = exdData->getField< bool >( row, 51 );
|
||||||
omen = exdData->getField< uint8_t >( row, 49 );
|
omen = exdData->getField< uint8_t >( row, 52 );
|
||||||
isPvP = exdData->getField< bool >( row, 50 );
|
isPvP = exdData->getField< bool >( row, 53 );
|
||||||
isPlayerAction = exdData->getField< bool >( row, 62 );
|
isPlayerAction = exdData->getField< bool >( row, 65 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::ActionCastTimeline::ActionCastTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::ActionCastTimeline::ActionCastTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -656,24 +656,22 @@ Sapphire::Data::BeastReputationRank::BeastReputationRank( uint32_t row_id, Sapph
|
||||||
Sapphire::Data::BeastTribe::BeastTribe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::BeastTribe::BeastTribe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
{
|
{
|
||||||
auto row = exdData->m_BeastTribeDat.get_row( row_id );
|
auto row = exdData->m_BeastTribeDat.get_row( row_id );
|
||||||
minLevel = exdData->getField< uint8_t >( row, 0 );
|
minLevel = exdData->getField< uint8_t >( row, 1 );
|
||||||
maxLevel = exdData->getField< uint8_t >( row, 1 );
|
|
||||||
beastRankBonus = exdData->getField< uint8_t >( row, 2 );
|
beastRankBonus = exdData->getField< uint8_t >( row, 2 );
|
||||||
iconReputation = exdData->getField< uint32_t >( row, 3 );
|
iconReputation = exdData->getField< uint32_t >( row, 3 );
|
||||||
icon = exdData->getField< uint32_t >( row, 4 );
|
icon = exdData->getField< uint32_t >( row, 4 );
|
||||||
maxRank = exdData->getField< uint8_t >( row, 5 );
|
maxRank = exdData->getField< uint8_t >( row, 5 );
|
||||||
alliedBeastTribeQuest = exdData->getField< uint32_t >( row, 6 );
|
expansion = exdData->getField< uint8_t >( row, 6 );
|
||||||
expansion = exdData->getField< uint8_t >( row, 7 );
|
currencyItem = exdData->getField< uint32_t >( row, 7 );
|
||||||
currencyItem = exdData->getField< uint32_t >( row, 8 );
|
displayOrder = exdData->getField< uint8_t >( row, 8 );
|
||||||
displayOrder = exdData->getField< uint8_t >( row, 9 );
|
name = exdData->getField< std::string >( row, 9 );
|
||||||
name = exdData->getField< std::string >( row, 10 );
|
nameRelation = exdData->getField< std::string >( row, 17 );
|
||||||
nameRelation = exdData->getField< std::string >( row, 18 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::Behavior::Behavior( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::Behavior::Behavior( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
{
|
{
|
||||||
auto row = exdData->m_BehaviorDat.get_row( row_id, subRow );
|
auto row = exdData->m_BehaviorDat.get_row( row_id, subRow );
|
||||||
balloon = exdData->getField< uint16_t >( row, 6 );
|
balloon = exdData->getField< uint16_t >( row, 7 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::BGM::BGM( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::BGM::BGM( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -968,8 +966,6 @@ Sapphire::Data::CharaMakeType::CharaMakeType( uint32_t row_id, Sapphire::Data::E
|
||||||
race = exdData->getField< int32_t >( row, 0 );
|
race = exdData->getField< int32_t >( row, 0 );
|
||||||
tribe = exdData->getField< int32_t >( row, 1 );
|
tribe = exdData->getField< int32_t >( row, 1 );
|
||||||
gender = exdData->getField< int8_t >( row, 2 );
|
gender = exdData->getField< int8_t >( row, 2 );
|
||||||
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3291 ) );
|
|
||||||
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3292 ) );
|
|
||||||
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3293 ) );
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3293 ) );
|
||||||
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3294 ) );
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3294 ) );
|
||||||
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3295 ) );
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3295 ) );
|
||||||
|
@ -1010,6 +1006,20 @@ Sapphire::Data::CharaMakeType::CharaMakeType( uint32_t row_id, Sapphire::Data::E
|
||||||
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3330 ) );
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3330 ) );
|
||||||
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3331 ) );
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3331 ) );
|
||||||
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3332 ) );
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3332 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3333 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3334 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3335 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3336 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3337 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3338 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3339 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3340 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3341 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3342 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3343 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3344 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3345 ) );
|
||||||
|
facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3346 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::ChocoboRace::ChocoboRace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::ChocoboRace::ChocoboRace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -1368,6 +1378,7 @@ Sapphire::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id,
|
||||||
contentLinkType = exdData->getField< uint8_t >( row, 2 );
|
contentLinkType = exdData->getField< uint8_t >( row, 2 );
|
||||||
content = exdData->getField< uint16_t >( row, 3 );
|
content = exdData->getField< uint16_t >( row, 3 );
|
||||||
contentMemberType = exdData->getField< uint8_t >( row, 9 );
|
contentMemberType = exdData->getField< uint8_t >( row, 9 );
|
||||||
|
unlockQuest = exdData->getField< uint32_t >( row, 13 );
|
||||||
classJobLevelRequired = exdData->getField< uint8_t >( row, 15 );
|
classJobLevelRequired = exdData->getField< uint8_t >( row, 15 );
|
||||||
classJobLevelSync = exdData->getField< uint8_t >( row, 16 );
|
classJobLevelSync = exdData->getField< uint8_t >( row, 16 );
|
||||||
itemLevelRequired = exdData->getField< uint16_t >( row, 17 );
|
itemLevelRequired = exdData->getField< uint16_t >( row, 17 );
|
||||||
|
@ -1377,8 +1388,11 @@ Sapphire::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id,
|
||||||
dutyRecorderAllowed = exdData->getField< bool >( row, 30 );
|
dutyRecorderAllowed = exdData->getField< bool >( row, 30 );
|
||||||
name = exdData->getField< std::string >( row, 34 );
|
name = exdData->getField< std::string >( row, 34 );
|
||||||
contentType = exdData->getField< uint8_t >( row, 35 );
|
contentType = exdData->getField< uint8_t >( row, 35 );
|
||||||
|
transientKey = exdData->getField< uint8_t >( row, 36 );
|
||||||
transient = exdData->getField< uint32_t >( row, 37 );
|
transient = exdData->getField< uint32_t >( row, 37 );
|
||||||
|
sortKey = exdData->getField< uint16_t >( row, 38 );
|
||||||
image = exdData->getField< uint32_t >( row, 39 );
|
image = exdData->getField< uint32_t >( row, 39 );
|
||||||
|
icon = exdData->getField< uint32_t >( row, 40 );
|
||||||
levelingRoulette = exdData->getField< bool >( row, 42 );
|
levelingRoulette = exdData->getField< bool >( row, 42 );
|
||||||
level5060Roulette = exdData->getField< bool >( row, 43 );
|
level5060Roulette = exdData->getField< bool >( row, 43 );
|
||||||
mSQRoulette = exdData->getField< bool >( row, 44 );
|
mSQRoulette = exdData->getField< bool >( row, 44 );
|
||||||
|
@ -1475,12 +1489,14 @@ Sapphire::Data::ContentsNote::ContentsNote( uint32_t row_id, Sapphire::Data::Exd
|
||||||
{
|
{
|
||||||
auto row = exdData->m_ContentsNoteDat.get_row( row_id );
|
auto row = exdData->m_ContentsNoteDat.get_row( row_id );
|
||||||
contentType = exdData->getField< uint8_t >( row, 0 );
|
contentType = exdData->getField< uint8_t >( row, 0 );
|
||||||
|
icon = exdData->getField< int32_t >( row, 1 );
|
||||||
menuOrder = exdData->getField< uint8_t >( row, 2 );
|
menuOrder = exdData->getField< uint8_t >( row, 2 );
|
||||||
requiredAmount = exdData->getField< int32_t >( row, 3 );
|
requiredAmount = exdData->getField< int32_t >( row, 3 );
|
||||||
expMultiplier = exdData->getField< int32_t >( row, 5 );
|
expMultiplier = exdData->getField< int32_t >( row, 5 );
|
||||||
gilRward = exdData->getField< int32_t >( row, 7 );
|
gilRward = exdData->getField< int32_t >( row, 7 );
|
||||||
levelUnlock = exdData->getField< uint16_t >( row, 8 );
|
levelUnlock = exdData->getField< uint16_t >( row, 8 );
|
||||||
howTo = exdData->getField< uint16_t >( row, 9 );
|
howTo = exdData->getField< uint16_t >( row, 9 );
|
||||||
|
reqUnlock = exdData->getField< uint32_t >( row, 10 );
|
||||||
name = exdData->getField< std::string >( row, 11 );
|
name = exdData->getField< std::string >( row, 11 );
|
||||||
description = exdData->getField< std::string >( row, 12 );
|
description = exdData->getField< std::string >( row, 12 );
|
||||||
expCap = exdData->getField< int32_t >( row, 13 );
|
expCap = exdData->getField< int32_t >( row, 13 );
|
||||||
|
@ -2067,6 +2083,21 @@ Sapphire::Data::ENpcDressUpDress::ENpcDressUpDress( uint32_t row_id, uint32_t su
|
||||||
{
|
{
|
||||||
auto row = exdData->m_ENpcDressUpDressDat.get_row( row_id, subRow );
|
auto row = exdData->m_ENpcDressUpDressDat.get_row( row_id, subRow );
|
||||||
eNpc = exdData->getField< uint32_t >( row, 6 );
|
eNpc = exdData->getField< uint32_t >( row, 6 );
|
||||||
|
behavior = exdData->getField< uint16_t >( row, 8 );
|
||||||
|
modelMainHand = exdData->getField< uint64_t >( row, 35 );
|
||||||
|
dyeMainHand = exdData->getField< uint8_t >( row, 36 );
|
||||||
|
modelOffHand = exdData->getField< uint64_t >( row, 37 );
|
||||||
|
dyeOffHand = exdData->getField< uint8_t >( row, 38 );
|
||||||
|
modelHead = exdData->getField< uint32_t >( row, 39 );
|
||||||
|
dyeHead = exdData->getField< uint8_t >( row, 40 );
|
||||||
|
modelBody = exdData->getField< uint32_t >( row, 41 );
|
||||||
|
dyeBody = exdData->getField< uint8_t >( row, 42 );
|
||||||
|
modelHands = exdData->getField< uint32_t >( row, 43 );
|
||||||
|
dyeHands = exdData->getField< uint8_t >( row, 44 );
|
||||||
|
modelLegs = exdData->getField< uint32_t >( row, 45 );
|
||||||
|
dyeLegs = exdData->getField< uint8_t >( row, 46 );
|
||||||
|
modelFeet = exdData->getField< uint32_t >( row, 47 );
|
||||||
|
dyeFeet = exdData->getField< uint8_t >( row, 48 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::ENpcResident::ENpcResident( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::ENpcResident::ENpcResident( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -2111,8 +2142,8 @@ Sapphire::Data::EquipRaceCategory::EquipRaceCategory( uint32_t row_id, Sapphire:
|
||||||
miqote = exdData->getField< bool >( row, 3 );
|
miqote = exdData->getField< bool >( row, 3 );
|
||||||
roegadyn = exdData->getField< bool >( row, 4 );
|
roegadyn = exdData->getField< bool >( row, 4 );
|
||||||
auRa = exdData->getField< bool >( row, 5 );
|
auRa = exdData->getField< bool >( row, 5 );
|
||||||
male = exdData->getField< bool >( row, 6 );
|
male = exdData->getField< bool >( row, 8 );
|
||||||
female = exdData->getField< bool >( row, 7 );
|
female = exdData->getField< bool >( row, 9 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::EquipSlotCategory::EquipSlotCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::EquipSlotCategory::EquipSlotCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -2290,17 +2321,17 @@ Sapphire::Data::Fate::Fate( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e
|
||||||
classJobLevel = exdData->getField< uint8_t >( row, 3 );
|
classJobLevel = exdData->getField< uint8_t >( row, 3 );
|
||||||
classJobLevelMax = exdData->getField< uint8_t >( row, 4 );
|
classJobLevelMax = exdData->getField< uint8_t >( row, 4 );
|
||||||
eventItem = exdData->getField< uint32_t >( row, 5 );
|
eventItem = exdData->getField< uint32_t >( row, 5 );
|
||||||
iconObjective = exdData->getField< uint32_t >( row, 10 );
|
iconObjective = exdData->getField< uint32_t >( row, 9 );
|
||||||
iconMap = exdData->getField< uint32_t >( row, 11 );
|
iconMap = exdData->getField< uint32_t >( row, 10 );
|
||||||
music = exdData->getField< int32_t >( row, 13 );
|
music = exdData->getField< int32_t >( row, 12 );
|
||||||
hasWorldMapIcon = exdData->getField< bool >( row, 19 );
|
hasWorldMapIcon = exdData->getField< bool >( row, 17 );
|
||||||
name = exdData->getField< std::string >( row, 27 );
|
name = exdData->getField< std::string >( row, 25 );
|
||||||
description = exdData->getField< std::string >( row, 28 );
|
description = exdData->getField< std::string >( row, 26 );
|
||||||
objective = exdData->getField< std::string >( row, 29 );
|
objective = exdData->getField< std::string >( row, 27 );
|
||||||
|
statusText.push_back( exdData->getField< std::string >( row, 28 ) );
|
||||||
|
statusText.push_back( exdData->getField< std::string >( row, 29 ) );
|
||||||
statusText.push_back( exdData->getField< std::string >( row, 30 ) );
|
statusText.push_back( exdData->getField< std::string >( row, 30 ) );
|
||||||
statusText.push_back( exdData->getField< std::string >( row, 31 ) );
|
arrayIndex = exdData->getField< uint32_t >( row, 31 );
|
||||||
statusText.push_back( exdData->getField< std::string >( row, 32 ) );
|
|
||||||
arrayIndex = exdData->getField< uint32_t >( row, 33 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::FCActivity::FCActivity( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::FCActivity::FCActivity( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -2387,6 +2418,10 @@ Sapphire::Data::FishingRecordType::FishingRecordType( uint32_t row_id, Sapphire:
|
||||||
{
|
{
|
||||||
auto row = exdData->m_FishingRecordTypeDat.get_row( row_id );
|
auto row = exdData->m_FishingRecordTypeDat.get_row( row_id );
|
||||||
addon = exdData->getField< int32_t >( row, 0 );
|
addon = exdData->getField< int32_t >( row, 0 );
|
||||||
|
rankBRequirement = exdData->getField< uint16_t >( row, 1 );
|
||||||
|
rankARequirement = exdData->getField< uint16_t >( row, 2 );
|
||||||
|
rankAARequirement = exdData->getField< uint16_t >( row, 3 );
|
||||||
|
rankAAARequirement = exdData->getField< uint16_t >( row, 4 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::FishingRecordTypeTransient::FishingRecordTypeTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::FishingRecordTypeTransient::FishingRecordTypeTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -2417,6 +2452,7 @@ Sapphire::Data::FishingSpot::FishingSpot( uint32_t row_id, Sapphire::Data::ExdDa
|
||||||
item.push_back( exdData->getField< int32_t >( row, 18 ) );
|
item.push_back( exdData->getField< int32_t >( row, 18 ) );
|
||||||
item.push_back( exdData->getField< int32_t >( row, 19 ) );
|
item.push_back( exdData->getField< int32_t >( row, 19 ) );
|
||||||
placeName = exdData->getField< uint16_t >( row, 20 );
|
placeName = exdData->getField< uint16_t >( row, 20 );
|
||||||
|
order = exdData->getField< uint8_t >( row, 21 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::FishParameter::FishParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::FishParameter::FishParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -2428,10 +2464,10 @@ Sapphire::Data::FishParameter::FishParameter( uint32_t row_id, Sapphire::Data::E
|
||||||
isHidden = exdData->getField< bool >( row, 3 );
|
isHidden = exdData->getField< bool >( row, 3 );
|
||||||
fishingRecordType = exdData->getField< uint8_t >( row, 5 );
|
fishingRecordType = exdData->getField< uint8_t >( row, 5 );
|
||||||
territoryType = exdData->getField< int32_t >( row, 6 );
|
territoryType = exdData->getField< int32_t >( row, 6 );
|
||||||
isInLog = exdData->getField< bool >( row, 7 );
|
gatheringSubCategory = exdData->getField< uint16_t >( row, 7 );
|
||||||
timeRestricted = exdData->getField< bool >( row, 8 );
|
isInLog = exdData->getField< bool >( row, 8 );
|
||||||
weatherRestricted = exdData->getField< bool >( row, 9 );
|
timeRestricted = exdData->getField< bool >( row, 9 );
|
||||||
gatheringSubCategory = exdData->getField< uint16_t >( row, 10 );
|
weatherRestricted = exdData->getField< bool >( row, 10 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::Frontline03::Frontline03( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::Frontline03::Frontline03( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -2510,7 +2546,7 @@ Sapphire::Data::GatheringItem::GatheringItem( uint32_t row_id, Sapphire::Data::E
|
||||||
auto row = exdData->m_GatheringItemDat.get_row( row_id );
|
auto row = exdData->m_GatheringItemDat.get_row( row_id );
|
||||||
item = exdData->getField< int32_t >( row, 0 );
|
item = exdData->getField< int32_t >( row, 0 );
|
||||||
gatheringItemLevel = exdData->getField< uint16_t >( row, 1 );
|
gatheringItemLevel = exdData->getField< uint16_t >( row, 1 );
|
||||||
isHidden = exdData->getField< bool >( row, 2 );
|
isHidden = exdData->getField< bool >( row, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::GatheringItemLevelConvertTable::GatheringItemLevelConvertTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::GatheringItemLevelConvertTable::GatheringItemLevelConvertTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -2951,12 +2987,8 @@ Sapphire::Data::GilShop::GilShop( uint32_t row_id, Sapphire::Data::ExdDataGenera
|
||||||
auto row = exdData->m_GilShopDat.get_row( row_id );
|
auto row = exdData->m_GilShopDat.get_row( row_id );
|
||||||
name = exdData->getField< std::string >( row, 0 );
|
name = exdData->getField< std::string >( row, 0 );
|
||||||
icon = exdData->getField< uint32_t >( row, 1 );
|
icon = exdData->getField< uint32_t >( row, 1 );
|
||||||
questRequired.push_back( exdData->getField< uint32_t >( row, 2 ) );
|
acceptTalk = exdData->getField< int32_t >( row, 3 );
|
||||||
questRequired.push_back( exdData->getField< uint32_t >( row, 3 ) );
|
failTalk = exdData->getField< int32_t >( row, 4 );
|
||||||
questRequired.push_back( exdData->getField< uint32_t >( row, 4 ) );
|
|
||||||
questRequired.push_back( exdData->getField< uint32_t >( row, 5 ) );
|
|
||||||
acceptTalk = exdData->getField< int32_t >( row, 6 );
|
|
||||||
failTalk = exdData->getField< int32_t >( row, 7 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::GilShopItem::GilShopItem( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::GilShopItem::GilShopItem( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -3036,6 +3068,20 @@ Sapphire::Data::GuildleveAssignmentCategory::GuildleveAssignmentCategory( uint32
|
||||||
category.push_back( exdData->getField< int32_t >( row, 7 ) );
|
category.push_back( exdData->getField< int32_t >( row, 7 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Sapphire::Data::GuildOrder::GuildOrder( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
{
|
||||||
|
auto row = exdData->m_GuildOrderDat.get_row( row_id );
|
||||||
|
eNpcName = exdData->getField< uint32_t >( row, 0 );
|
||||||
|
objective = exdData->getField< std::string >( row, 1 );
|
||||||
|
description1 = exdData->getField< std::string >( row, 2 );
|
||||||
|
description2 = exdData->getField< std::string >( row, 3 );
|
||||||
|
description3 = exdData->getField< std::string >( row, 4 );
|
||||||
|
completionBonusExp = exdData->getField< uint32_t >( row, 5 );
|
||||||
|
rewardExp = exdData->getField< uint32_t >( row, 6 );
|
||||||
|
completionBonusGil = exdData->getField< uint32_t >( row, 7 );
|
||||||
|
rewardGil = exdData->getField< uint32_t >( row, 8 );
|
||||||
|
}
|
||||||
|
|
||||||
Sapphire::Data::GuildOrderGuide::GuildOrderGuide( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::GuildOrderGuide::GuildOrderGuide( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
{
|
{
|
||||||
auto row = exdData->m_GuildOrderGuideDat.get_row( row_id );
|
auto row = exdData->m_GuildOrderGuideDat.get_row( row_id );
|
||||||
|
@ -3236,66 +3282,66 @@ Sapphire::Data::HousingLandSet::HousingLandSet( uint32_t row_id, Sapphire::Data:
|
||||||
minPrice.push_back( exdData->getField< uint32_t >( row, 117 ) );
|
minPrice.push_back( exdData->getField< uint32_t >( row, 117 ) );
|
||||||
minPrice.push_back( exdData->getField< uint32_t >( row, 118 ) );
|
minPrice.push_back( exdData->getField< uint32_t >( row, 118 ) );
|
||||||
minPrice.push_back( exdData->getField< uint32_t >( row, 119 ) );
|
minPrice.push_back( exdData->getField< uint32_t >( row, 119 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 300 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 240 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 301 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 241 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 302 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 242 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 303 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 243 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 304 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 244 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 305 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 245 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 306 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 246 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 307 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 247 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 308 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 248 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 309 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 249 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 310 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 250 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 311 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 251 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 312 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 252 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 313 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 253 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 314 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 254 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 315 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 255 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 316 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 256 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 317 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 257 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 318 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 258 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 319 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 259 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 320 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 260 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 321 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 261 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 322 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 262 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 323 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 263 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 324 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 264 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 325 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 265 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 326 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 266 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 327 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 267 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 328 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 268 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 329 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 269 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 330 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 270 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 331 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 271 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 332 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 272 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 333 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 273 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 334 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 274 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 335 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 275 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 336 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 276 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 337 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 277 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 338 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 278 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 339 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 279 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 340 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 280 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 341 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 281 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 342 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 282 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 343 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 283 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 344 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 284 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 345 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 285 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 346 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 286 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 347 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 287 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 348 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 288 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 349 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 289 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 350 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 290 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 351 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 291 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 352 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 292 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 353 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 293 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 354 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 294 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 355 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 295 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 356 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 296 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 357 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 297 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 358 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 298 ) );
|
||||||
initialPrice.push_back( exdData->getField< uint32_t >( row, 359 ) );
|
initialPrice.push_back( exdData->getField< uint32_t >( row, 299 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::HousingMapMarkerInfo::HousingMapMarkerInfo( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::HousingMapMarkerInfo::HousingMapMarkerInfo( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -3418,13 +3464,15 @@ Sapphire::Data::InstanceContent::InstanceContent( uint32_t row_id, Sapphire::Dat
|
||||||
instanceContentTextDataObjectiveStart = exdData->getField< uint32_t >( row, 15 );
|
instanceContentTextDataObjectiveStart = exdData->getField< uint32_t >( row, 15 );
|
||||||
instanceContentTextDataObjectiveEnd = exdData->getField< uint32_t >( row, 16 );
|
instanceContentTextDataObjectiveEnd = exdData->getField< uint32_t >( row, 16 );
|
||||||
sortKey = exdData->getField< uint16_t >( row, 17 );
|
sortKey = exdData->getField< uint16_t >( row, 17 );
|
||||||
|
instanceClearExp = exdData->getField< uint32_t >( row, 18 );
|
||||||
newPlayerBonusA = exdData->getField< uint16_t >( row, 20 );
|
newPlayerBonusA = exdData->getField< uint16_t >( row, 20 );
|
||||||
newPlayerBonusB = exdData->getField< uint16_t >( row, 21 );
|
finalBossCurrencyC = exdData->getField< uint16_t >( row, 21 );
|
||||||
finalBossExp = exdData->getField< uint32_t >( row, 22 );
|
|
||||||
finalBossCurrencyA = exdData->getField< uint16_t >( row, 23 );
|
finalBossCurrencyA = exdData->getField< uint16_t >( row, 23 );
|
||||||
finalBossCurrencyB = exdData->getField< uint16_t >( row, 24 );
|
finalBossCurrencyB = exdData->getField< uint16_t >( row, 24 );
|
||||||
finalBossCurrencyC = exdData->getField< uint16_t >( row, 25 );
|
newPlayerBonusB = exdData->getField< uint16_t >( row, 25 );
|
||||||
instanceClearExp = exdData->getField< uint32_t >( row, 46 );
|
instanceClearGil = exdData->getField< uint32_t >( row, 47 );
|
||||||
|
instanceContentRewardItem = exdData->getField< uint32_t >( row, 48 );
|
||||||
|
finalBossExp = exdData->getField< uint32_t >( row, 50 );
|
||||||
instanceContentBuff = exdData->getField< int32_t >( row, 51 );
|
instanceContentBuff = exdData->getField< int32_t >( row, 51 );
|
||||||
reqInstance = exdData->getField< uint32_t >( row, 52 );
|
reqInstance = exdData->getField< uint32_t >( row, 52 );
|
||||||
partyCondition = exdData->getField< uint8_t >( row, 54 );
|
partyCondition = exdData->getField< uint8_t >( row, 54 );
|
||||||
|
@ -3676,7 +3724,7 @@ Sapphire::Data::JournalGenre::JournalGenre( uint32_t row_id, Sapphire::Data::Exd
|
||||||
auto row = exdData->m_JournalGenreDat.get_row( row_id );
|
auto row = exdData->m_JournalGenreDat.get_row( row_id );
|
||||||
icon = exdData->getField< int32_t >( row, 0 );
|
icon = exdData->getField< int32_t >( row, 0 );
|
||||||
journalCategory = exdData->getField< uint8_t >( row, 1 );
|
journalCategory = exdData->getField< uint8_t >( row, 1 );
|
||||||
name = exdData->getField< std::string >( row, 2 );
|
name = exdData->getField< std::string >( row, 3 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::JournalSection::JournalSection( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::JournalSection::JournalSection( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -3900,7 +3948,7 @@ Sapphire::Data::MapMarker::MapMarker( uint32_t row_id, uint32_t subRow, Sapphire
|
||||||
Sapphire::Data::MapMarkerRegion::MapMarkerRegion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::MapMarkerRegion::MapMarkerRegion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
{
|
{
|
||||||
auto row = exdData->m_MapMarkerRegionDat.get_row( row_id );
|
auto row = exdData->m_MapMarkerRegionDat.get_row( row_id );
|
||||||
x = exdData->getField< int16_t >( row, 0 );
|
x = exdData->getField< int16_t >( row, 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::MapSymbol::MapSymbol( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::MapSymbol::MapSymbol( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -4021,8 +4069,7 @@ Sapphire::Data::ModelSkeleton::ModelSkeleton( uint32_t row_id, Sapphire::Data::E
|
||||||
Sapphire::Data::ModelState::ModelState( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::ModelState::ModelState( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
{
|
{
|
||||||
auto row = exdData->m_ModelStateDat.get_row( row_id );
|
auto row = exdData->m_ModelStateDat.get_row( row_id );
|
||||||
start = exdData->getField< uint16_t >( row, 0 );
|
start = exdData->getField< uint16_t >( row, 1 );
|
||||||
end = exdData->getField< uint16_t >( row, 1 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::MonsterNote::MonsterNote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::MonsterNote::MonsterNote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -4085,30 +4132,18 @@ Sapphire::Data::MountAction::MountAction( uint32_t row_id, Sapphire::Data::ExdDa
|
||||||
Sapphire::Data::MountCustomize::MountCustomize( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::MountCustomize::MountCustomize( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
{
|
{
|
||||||
auto row = exdData->m_MountCustomizeDat.get_row( row_id );
|
auto row = exdData->m_MountCustomizeDat.get_row( row_id );
|
||||||
hyurMaleScale = exdData->getField< float >( row, 1 );
|
hyurMaleCameraHeight = exdData->getField< uint8_t >( row, 17 );
|
||||||
hyurFemaleScale = exdData->getField< float >( row, 2 );
|
hyurFemaleCameraHeight = exdData->getField< uint8_t >( row, 18 );
|
||||||
elezenMaleScale = exdData->getField< float >( row, 3 );
|
elezenMaleCameraHeight = exdData->getField< uint8_t >( row, 21 );
|
||||||
elezenFemaleScale = exdData->getField< float >( row, 4 );
|
elezenFemaleCameraHeight = exdData->getField< uint8_t >( row, 22 );
|
||||||
lalaMaleScale = exdData->getField< float >( row, 5 );
|
lalaMaleCameraHeight = exdData->getField< uint8_t >( row, 23 );
|
||||||
lalaFemaleScale = exdData->getField< float >( row, 6 );
|
lalaFemaleCameraHeight = exdData->getField< uint8_t >( row, 24 );
|
||||||
miqoMaleScale = exdData->getField< float >( row, 7 );
|
miqoMaleCameraHeight = exdData->getField< uint8_t >( row, 25 );
|
||||||
miqoFemaleScale = exdData->getField< float >( row, 8 );
|
miqoFemaleCameraHeight = exdData->getField< uint8_t >( row, 26 );
|
||||||
roeMaleScale = exdData->getField< float >( row, 9 );
|
roeMaleCameraHeight = exdData->getField< uint8_t >( row, 27 );
|
||||||
roeFemaleScale = exdData->getField< float >( row, 10 );
|
roeFemaleCameraHeight = exdData->getField< uint8_t >( row, 28 );
|
||||||
auRaMaleScale = exdData->getField< float >( row, 11 );
|
auRaMaleCameraHeight = exdData->getField< uint8_t >( row, 29 );
|
||||||
auRaFemaleScale = exdData->getField< float >( row, 12 );
|
auRaFemaleCameraHeight = exdData->getField< uint8_t >( row, 30 );
|
||||||
hyurMaleCameraHeight = exdData->getField< uint8_t >( row, 13 );
|
|
||||||
hyurFemaleCameraHeight = exdData->getField< uint8_t >( row, 14 );
|
|
||||||
elezenMaleCameraHeight = exdData->getField< uint8_t >( row, 15 );
|
|
||||||
elezenFemaleCameraHeight = exdData->getField< uint8_t >( row, 16 );
|
|
||||||
lalaMaleCameraHeight = exdData->getField< uint8_t >( row, 17 );
|
|
||||||
lalaFemaleCameraHeight = exdData->getField< uint8_t >( row, 18 );
|
|
||||||
miqoMaleCameraHeight = exdData->getField< uint8_t >( row, 19 );
|
|
||||||
miqoFemaleCameraHeight = exdData->getField< uint8_t >( row, 20 );
|
|
||||||
roeMaleCameraHeight = exdData->getField< uint8_t >( row, 21 );
|
|
||||||
roeFemaleCameraHeight = exdData->getField< uint8_t >( row, 22 );
|
|
||||||
auRaMaleCameraHeight = exdData->getField< uint8_t >( row, 23 );
|
|
||||||
auRaFemaleCameraHeight = exdData->getField< uint8_t >( row, 24 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::MountFlyingCondition::MountFlyingCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::MountFlyingCondition::MountFlyingCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -4431,40 +4466,41 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
|
||||||
classJobCategory0 = exdData->getField< uint8_t >( row, 3 );
|
classJobCategory0 = exdData->getField< uint8_t >( row, 3 );
|
||||||
classJobLevel0 = exdData->getField< uint16_t >( row, 4 );
|
classJobLevel0 = exdData->getField< uint16_t >( row, 4 );
|
||||||
questLevelOffset = exdData->getField< uint8_t >( row, 5 );
|
questLevelOffset = exdData->getField< uint8_t >( row, 5 );
|
||||||
levelMax = exdData->getField< uint16_t >( row, 6 );
|
classJobCategory1 = exdData->getField< uint8_t >( row, 6 );
|
||||||
classJobCategory1 = exdData->getField< uint8_t >( row, 7 );
|
classJobLevel1 = exdData->getField< uint16_t >( row, 7 );
|
||||||
classJobLevel1 = exdData->getField< uint16_t >( row, 8 );
|
previousQuestJoin = exdData->getField< uint8_t >( row, 8 );
|
||||||
previousQuestJoin = exdData->getField< uint8_t >( row, 9 );
|
previousQuest0 = exdData->getField< uint32_t >( row, 9 );
|
||||||
previousQuest0 = exdData->getField< uint32_t >( row, 10 );
|
previousQuest1 = exdData->getField< uint32_t >( row, 11 );
|
||||||
previousQuest1 = exdData->getField< uint32_t >( row, 12 );
|
previousQuest2 = exdData->getField< uint32_t >( row, 12 );
|
||||||
previousQuest2 = exdData->getField< uint32_t >( row, 13 );
|
questLockJoin = exdData->getField< uint8_t >( row, 13 );
|
||||||
questLockJoin = exdData->getField< uint8_t >( row, 14 );
|
questLock.push_back( exdData->getField< uint32_t >( row, 14 ) );
|
||||||
questLock.push_back( exdData->getField< uint32_t >( row, 15 ) );
|
questLock.push_back( exdData->getField< uint32_t >( row, 15 ) );
|
||||||
questLock.push_back( exdData->getField< uint32_t >( row, 16 ) );
|
classJobUnlock = exdData->getField< uint8_t >( row, 19 );
|
||||||
classJobUnlock = exdData->getField< uint8_t >( row, 20 );
|
grandCompany = exdData->getField< uint8_t >( row, 20 );
|
||||||
grandCompany = exdData->getField< uint8_t >( row, 21 );
|
grandCompanyRank = exdData->getField< uint8_t >( row, 21 );
|
||||||
grandCompanyRank = exdData->getField< uint8_t >( row, 22 );
|
instanceContentJoin = exdData->getField< uint8_t >( row, 22 );
|
||||||
instanceContentJoin = exdData->getField< uint8_t >( row, 23 );
|
instanceContent.push_back( exdData->getField< uint32_t >( row, 23 ) );
|
||||||
instanceContent.push_back( exdData->getField< uint32_t >( row, 24 ) );
|
instanceContent.push_back( exdData->getField< uint32_t >( row, 24 ) );
|
||||||
instanceContent.push_back( exdData->getField< uint32_t >( row, 25 ) );
|
instanceContent.push_back( exdData->getField< uint32_t >( row, 25 ) );
|
||||||
instanceContent.push_back( exdData->getField< uint32_t >( row, 26 ) );
|
festival = exdData->getField< uint8_t >( row, 26 );
|
||||||
festival = exdData->getField< uint8_t >( row, 27 );
|
bellStart = exdData->getField< uint16_t >( row, 29 );
|
||||||
bellStart = exdData->getField< uint16_t >( row, 30 );
|
bellEnd = exdData->getField< uint16_t >( row, 30 );
|
||||||
bellEnd = exdData->getField< uint16_t >( row, 31 );
|
beastTribe = exdData->getField< uint8_t >( row, 31 );
|
||||||
beastTribe = exdData->getField< uint8_t >( row, 32 );
|
beastReputationRank = exdData->getField< uint8_t >( row, 32 );
|
||||||
beastReputationRank = exdData->getField< uint8_t >( row, 33 );
|
levelMax = exdData->getField< uint16_t >( row, 33 );
|
||||||
mountRequired = exdData->getField< int32_t >( row, 37 );
|
mountRequired = exdData->getField< int32_t >( row, 36 );
|
||||||
isHouseRequired = exdData->getField< bool >( row, 38 );
|
isHouseRequired = exdData->getField< bool >( row, 37 );
|
||||||
deliveryQuest = exdData->getField< uint8_t >( row, 39 );
|
deliveryQuest = exdData->getField< uint8_t >( row, 38 );
|
||||||
issuerStart = exdData->getField< uint32_t >( row, 40 );
|
issuerStart = exdData->getField< uint32_t >( row, 39 );
|
||||||
behavior = exdData->getField< uint16_t >( row, 41 );
|
behavior = exdData->getField< uint16_t >( row, 40 );
|
||||||
targetEnd = exdData->getField< uint32_t >( row, 42 );
|
targetEnd = exdData->getField< uint32_t >( row, 41 );
|
||||||
isRepeatable = exdData->getField< bool >( row, 43 );
|
isRepeatable = exdData->getField< bool >( row, 42 );
|
||||||
repeatIntervalType = exdData->getField< uint8_t >( row, 44 );
|
repeatIntervalType = exdData->getField< uint8_t >( row, 43 );
|
||||||
questRepeatFlag = exdData->getField< uint8_t >( row, 45 );
|
questRepeatFlag = exdData->getField< uint8_t >( row, 44 );
|
||||||
unlocksSystemContent = exdData->getField< bool >( row, 46 );
|
unlocksSystemContent = exdData->getField< bool >( row, 45 );
|
||||||
type = exdData->getField< uint8_t >( row, 48 );
|
type = exdData->getField< uint8_t >( row, 47 );
|
||||||
questClassJobSupply = exdData->getField< uint16_t >( row, 49 );
|
questClassJobSupply = exdData->getField< uint16_t >( row, 48 );
|
||||||
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 49 ) );
|
||||||
scriptInstruction.push_back( exdData->getField< std::string >( row, 50 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 50 ) );
|
||||||
scriptInstruction.push_back( exdData->getField< std::string >( row, 51 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 51 ) );
|
||||||
scriptInstruction.push_back( exdData->getField< std::string >( row, 52 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 52 ) );
|
||||||
|
@ -4514,7 +4550,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
|
||||||
scriptInstruction.push_back( exdData->getField< std::string >( row, 96 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 96 ) );
|
||||||
scriptInstruction.push_back( exdData->getField< std::string >( row, 97 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 97 ) );
|
||||||
scriptInstruction.push_back( exdData->getField< std::string >( row, 98 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 98 ) );
|
||||||
scriptInstruction.push_back( exdData->getField< std::string >( row, 99 ) );
|
scriptArg.push_back( exdData->getField< uint32_t >( row, 99 ) );
|
||||||
scriptArg.push_back( exdData->getField< uint32_t >( row, 100 ) );
|
scriptArg.push_back( exdData->getField< uint32_t >( row, 100 ) );
|
||||||
scriptArg.push_back( exdData->getField< uint32_t >( row, 101 ) );
|
scriptArg.push_back( exdData->getField< uint32_t >( row, 101 ) );
|
||||||
scriptArg.push_back( exdData->getField< uint32_t >( row, 102 ) );
|
scriptArg.push_back( exdData->getField< uint32_t >( row, 102 ) );
|
||||||
|
@ -4564,7 +4600,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
|
||||||
scriptArg.push_back( exdData->getField< uint32_t >( row, 146 ) );
|
scriptArg.push_back( exdData->getField< uint32_t >( row, 146 ) );
|
||||||
scriptArg.push_back( exdData->getField< uint32_t >( row, 147 ) );
|
scriptArg.push_back( exdData->getField< uint32_t >( row, 147 ) );
|
||||||
scriptArg.push_back( exdData->getField< uint32_t >( row, 148 ) );
|
scriptArg.push_back( exdData->getField< uint32_t >( row, 148 ) );
|
||||||
scriptArg.push_back( exdData->getField< uint32_t >( row, 149 ) );
|
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 149 ) );
|
||||||
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 150 ) );
|
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 150 ) );
|
||||||
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 151 ) );
|
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 151 ) );
|
||||||
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 152 ) );
|
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 152 ) );
|
||||||
|
@ -4628,7 +4664,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
|
||||||
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 210 ) );
|
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 210 ) );
|
||||||
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 211 ) );
|
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 211 ) );
|
||||||
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 212 ) );
|
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 212 ) );
|
||||||
actorSpawnSeq.push_back( exdData->getField< uint8_t >( row, 213 ) );
|
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 213 ) );
|
||||||
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 214 ) );
|
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 214 ) );
|
||||||
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 215 ) );
|
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 215 ) );
|
||||||
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 216 ) );
|
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 216 ) );
|
||||||
|
@ -4692,7 +4728,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
|
||||||
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 274 ) );
|
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 274 ) );
|
||||||
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 275 ) );
|
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 275 ) );
|
||||||
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 276 ) );
|
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 276 ) );
|
||||||
actorDespawnSeq.push_back( exdData->getField< uint8_t >( row, 277 ) );
|
actorSpawn.push_back( exdData->getField< uint32_t >( row, 277 ) );
|
||||||
actorSpawn.push_back( exdData->getField< uint32_t >( row, 278 ) );
|
actorSpawn.push_back( exdData->getField< uint32_t >( row, 278 ) );
|
||||||
actorSpawn.push_back( exdData->getField< uint32_t >( row, 279 ) );
|
actorSpawn.push_back( exdData->getField< uint32_t >( row, 279 ) );
|
||||||
actorSpawn.push_back( exdData->getField< uint32_t >( row, 280 ) );
|
actorSpawn.push_back( exdData->getField< uint32_t >( row, 280 ) );
|
||||||
|
@ -4756,7 +4792,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
|
||||||
actorSpawn.push_back( exdData->getField< uint32_t >( row, 338 ) );
|
actorSpawn.push_back( exdData->getField< uint32_t >( row, 338 ) );
|
||||||
actorSpawn.push_back( exdData->getField< uint32_t >( row, 339 ) );
|
actorSpawn.push_back( exdData->getField< uint32_t >( row, 339 ) );
|
||||||
actorSpawn.push_back( exdData->getField< uint32_t >( row, 340 ) );
|
actorSpawn.push_back( exdData->getField< uint32_t >( row, 340 ) );
|
||||||
actorSpawn.push_back( exdData->getField< uint32_t >( row, 341 ) );
|
questUInt8A.push_back( exdData->getField< uint8_t >( row, 341 ) );
|
||||||
questUInt8A.push_back( exdData->getField< uint8_t >( row, 342 ) );
|
questUInt8A.push_back( exdData->getField< uint8_t >( row, 342 ) );
|
||||||
questUInt8A.push_back( exdData->getField< uint8_t >( row, 343 ) );
|
questUInt8A.push_back( exdData->getField< uint8_t >( row, 343 ) );
|
||||||
questUInt8A.push_back( exdData->getField< uint8_t >( row, 344 ) );
|
questUInt8A.push_back( exdData->getField< uint8_t >( row, 344 ) );
|
||||||
|
@ -4788,7 +4824,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
|
||||||
questUInt8A.push_back( exdData->getField< uint8_t >( row, 370 ) );
|
questUInt8A.push_back( exdData->getField< uint8_t >( row, 370 ) );
|
||||||
questUInt8A.push_back( exdData->getField< uint8_t >( row, 371 ) );
|
questUInt8A.push_back( exdData->getField< uint8_t >( row, 371 ) );
|
||||||
questUInt8A.push_back( exdData->getField< uint8_t >( row, 372 ) );
|
questUInt8A.push_back( exdData->getField< uint8_t >( row, 372 ) );
|
||||||
questUInt8A.push_back( exdData->getField< uint8_t >( row, 373 ) );
|
questUInt8B.push_back( exdData->getField< uint8_t >( row, 373 ) );
|
||||||
questUInt8B.push_back( exdData->getField< uint8_t >( row, 374 ) );
|
questUInt8B.push_back( exdData->getField< uint8_t >( row, 374 ) );
|
||||||
questUInt8B.push_back( exdData->getField< uint8_t >( row, 375 ) );
|
questUInt8B.push_back( exdData->getField< uint8_t >( row, 375 ) );
|
||||||
questUInt8B.push_back( exdData->getField< uint8_t >( row, 376 ) );
|
questUInt8B.push_back( exdData->getField< uint8_t >( row, 376 ) );
|
||||||
|
@ -4820,7 +4856,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
|
||||||
questUInt8B.push_back( exdData->getField< uint8_t >( row, 402 ) );
|
questUInt8B.push_back( exdData->getField< uint8_t >( row, 402 ) );
|
||||||
questUInt8B.push_back( exdData->getField< uint8_t >( row, 403 ) );
|
questUInt8B.push_back( exdData->getField< uint8_t >( row, 403 ) );
|
||||||
questUInt8B.push_back( exdData->getField< uint8_t >( row, 404 ) );
|
questUInt8B.push_back( exdData->getField< uint8_t >( row, 404 ) );
|
||||||
questUInt8B.push_back( exdData->getField< uint8_t >( row, 405 ) );
|
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1173 ) );
|
||||||
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1174 ) );
|
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1174 ) );
|
||||||
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1175 ) );
|
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1175 ) );
|
||||||
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1176 ) );
|
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1176 ) );
|
||||||
|
@ -4844,7 +4880,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
|
||||||
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1194 ) );
|
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1194 ) );
|
||||||
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1195 ) );
|
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1195 ) );
|
||||||
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1196 ) );
|
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1196 ) );
|
||||||
toDoCompleteSeq.push_back( exdData->getField< uint8_t >( row, 1197 ) );
|
toDoQty.push_back( exdData->getField< uint8_t >( row, 1197 ) );
|
||||||
toDoQty.push_back( exdData->getField< uint8_t >( row, 1198 ) );
|
toDoQty.push_back( exdData->getField< uint8_t >( row, 1198 ) );
|
||||||
toDoQty.push_back( exdData->getField< uint8_t >( row, 1199 ) );
|
toDoQty.push_back( exdData->getField< uint8_t >( row, 1199 ) );
|
||||||
toDoQty.push_back( exdData->getField< uint8_t >( row, 1200 ) );
|
toDoQty.push_back( exdData->getField< uint8_t >( row, 1200 ) );
|
||||||
|
@ -4868,7 +4904,7 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
|
||||||
toDoQty.push_back( exdData->getField< uint8_t >( row, 1218 ) );
|
toDoQty.push_back( exdData->getField< uint8_t >( row, 1218 ) );
|
||||||
toDoQty.push_back( exdData->getField< uint8_t >( row, 1219 ) );
|
toDoQty.push_back( exdData->getField< uint8_t >( row, 1219 ) );
|
||||||
toDoQty.push_back( exdData->getField< uint8_t >( row, 1220 ) );
|
toDoQty.push_back( exdData->getField< uint8_t >( row, 1220 ) );
|
||||||
toDoQty.push_back( exdData->getField< uint8_t >( row, 1221 ) );
|
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1221 ) );
|
||||||
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1222 ) );
|
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1222 ) );
|
||||||
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1223 ) );
|
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1223 ) );
|
||||||
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1224 ) );
|
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1224 ) );
|
||||||
|
@ -4892,7 +4928,6 @@ Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated*
|
||||||
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1242 ) );
|
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1242 ) );
|
||||||
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1243 ) );
|
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1243 ) );
|
||||||
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1244 ) );
|
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1244 ) );
|
||||||
toDoMainLocation.push_back( exdData->getField< uint32_t >( row, 1245 ) );
|
|
||||||
classJobRequired = exdData->getField< uint8_t >( row, 1438 );
|
classJobRequired = exdData->getField< uint8_t >( row, 1438 );
|
||||||
expFactor = exdData->getField< uint16_t >( row, 1440 );
|
expFactor = exdData->getField< uint16_t >( row, 1440 );
|
||||||
gilReward = exdData->getField< uint32_t >( row, 1441 );
|
gilReward = exdData->getField< uint32_t >( row, 1441 );
|
||||||
|
@ -5115,56 +5150,56 @@ Sapphire::Data::QuestBattle::QuestBattle( uint32_t row_id, Sapphire::Data::ExdDa
|
||||||
scriptInstruction.push_back( exdData->getField< std::string >( row, 151 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 151 ) );
|
||||||
scriptInstruction.push_back( exdData->getField< std::string >( row, 152 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 152 ) );
|
||||||
scriptInstruction.push_back( exdData->getField< std::string >( row, 153 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 153 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 154 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 154 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 155 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 155 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 156 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 156 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 157 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 157 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 158 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 158 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 159 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 159 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 160 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 160 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 161 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 161 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 162 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 162 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 163 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 163 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 164 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 164 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 165 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 165 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 166 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 166 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 167 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 167 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 168 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 168 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 169 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 169 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 170 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 170 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 171 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 171 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 172 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 172 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 173 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 173 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 174 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 174 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 175 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 175 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 176 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 176 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 177 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 177 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 178 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 178 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 179 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 179 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 180 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 180 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 181 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 181 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 182 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 182 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 183 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 183 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 184 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 184 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 185 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 185 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 186 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 186 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 187 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 187 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 188 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 188 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 189 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 189 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 190 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 190 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 191 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 191 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 192 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 192 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 193 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 193 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 194 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 194 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 195 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 195 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 196 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 196 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 197 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 197 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 198 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 198 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 199 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 199 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 200 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 200 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 201 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 201 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 202 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 202 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 203 ) );
|
scriptInstruction.push_back( exdData->getField< std::string >( row, 203 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 204 ) );
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 204 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 205 ) );
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 205 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 206 ) );
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 206 ) );
|
||||||
|
@ -5265,6 +5300,106 @@ Sapphire::Data::QuestBattle::QuestBattle( uint32_t row_id, Sapphire::Data::ExdDa
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 301 ) );
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 301 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 302 ) );
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 302 ) );
|
||||||
scriptValue.push_back( exdData->getField< uint32_t >( row, 303 ) );
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 303 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 304 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 305 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 306 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 307 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 308 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 309 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 310 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 311 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 312 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 313 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 314 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 315 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 316 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 317 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 318 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 319 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 320 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 321 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 322 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 323 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 324 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 325 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 326 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 327 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 328 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 329 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 330 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 331 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 332 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 333 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 334 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 335 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 336 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 337 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 338 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 339 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 340 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 341 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 342 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 343 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 344 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 345 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 346 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 347 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 348 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 349 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 350 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 351 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 352 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 353 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 354 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 355 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 356 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 357 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 358 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 359 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 360 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 361 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 362 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 363 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 364 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 365 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 366 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 367 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 368 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 369 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 370 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 371 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 372 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 373 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 374 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 375 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 376 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 377 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 378 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 379 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 380 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 381 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 382 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 383 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 384 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 385 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 386 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 387 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 388 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 389 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 390 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 391 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 392 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 393 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 394 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 395 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 396 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 397 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 398 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 399 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 400 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 401 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 402 ) );
|
||||||
|
scriptValue.push_back( exdData->getField< uint32_t >( row, 403 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::QuestClassJobReward::QuestClassJobReward( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::QuestClassJobReward::QuestClassJobReward( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -5400,8 +5535,7 @@ Sapphire::Data::Recipe::Recipe( uint32_t row_id, Sapphire::Data::ExdDataGenerate
|
||||||
recipeLevelTable = exdData->getField< uint16_t >( row, 2 );
|
recipeLevelTable = exdData->getField< uint16_t >( row, 2 );
|
||||||
itemResult = exdData->getField< int32_t >( row, 3 );
|
itemResult = exdData->getField< int32_t >( row, 3 );
|
||||||
amountResult = exdData->getField< uint8_t >( row, 4 );
|
amountResult = exdData->getField< uint8_t >( row, 4 );
|
||||||
recipeElement = exdData->getField< uint8_t >( row, 25 );
|
isSecondary = exdData->getField< bool >( row, 26 );
|
||||||
isSecondary = exdData->getField< bool >( row, 27 );
|
|
||||||
difficultyFactor = exdData->getField< uint16_t >( row, 28 );
|
difficultyFactor = exdData->getField< uint16_t >( row, 28 );
|
||||||
qualityFactor = exdData->getField< uint16_t >( row, 29 );
|
qualityFactor = exdData->getField< uint16_t >( row, 29 );
|
||||||
durabilityFactor = exdData->getField< uint16_t >( row, 30 );
|
durabilityFactor = exdData->getField< uint16_t >( row, 30 );
|
||||||
|
@ -5419,21 +5553,15 @@ Sapphire::Data::Recipe::Recipe( uint32_t row_id, Sapphire::Data::ExdDataGenerate
|
||||||
patchNumber = exdData->getField< uint16_t >( row, 44 );
|
patchNumber = exdData->getField< uint16_t >( row, 44 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::RecipeElement::RecipeElement( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
|
||||||
{
|
|
||||||
auto row = exdData->m_RecipeElementDat.get_row( row_id );
|
|
||||||
name = exdData->getField< std::string >( row, 0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
Sapphire::Data::RecipeLevelTable::RecipeLevelTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::RecipeLevelTable::RecipeLevelTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
{
|
{
|
||||||
auto row = exdData->m_RecipeLevelTableDat.get_row( row_id );
|
auto row = exdData->m_RecipeLevelTableDat.get_row( row_id );
|
||||||
classJobLevel = exdData->getField< uint8_t >( row, 0 );
|
classJobLevel = exdData->getField< uint8_t >( row, 0 );
|
||||||
stars = exdData->getField< uint8_t >( row, 1 );
|
stars = exdData->getField< uint8_t >( row, 1 );
|
||||||
suggestedCraftsmanship = exdData->getField< uint16_t >( row, 2 );
|
suggestedCraftsmanship = exdData->getField< uint16_t >( row, 2 );
|
||||||
difficulty = exdData->getField< uint16_t >( row, 3 );
|
difficulty = exdData->getField< uint16_t >( row, 4 );
|
||||||
quality = exdData->getField< int16_t >( row, 4 );
|
quality = exdData->getField< uint32_t >( row, 5 );
|
||||||
durability = exdData->getField< uint16_t >( row, 5 );
|
durability = exdData->getField< uint16_t >( row, 6 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::RecipeNotebookList::RecipeNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::RecipeNotebookList::RecipeNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -6131,9 +6259,8 @@ Sapphire::Data::SpecialShop::SpecialShop( uint32_t row_id, Sapphire::Data::ExdDa
|
||||||
patchNumber.push_back( exdData->getField< uint16_t >( row, 1859 ) );
|
patchNumber.push_back( exdData->getField< uint16_t >( row, 1859 ) );
|
||||||
patchNumber.push_back( exdData->getField< uint16_t >( row, 1860 ) );
|
patchNumber.push_back( exdData->getField< uint16_t >( row, 1860 ) );
|
||||||
questUnlock = exdData->getField< uint32_t >( row, 1862 );
|
questUnlock = exdData->getField< uint32_t >( row, 1862 );
|
||||||
questShop = exdData->getField< int32_t >( row, 1863 );
|
notCompleteText = exdData->getField< int32_t >( row, 1863 );
|
||||||
notCompleteText = exdData->getField< int32_t >( row, 1864 );
|
completeText = exdData->getField< int32_t >( row, 1864 );
|
||||||
completeText = exdData->getField< int32_t >( row, 1865 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::SpecialShopItemCategory::SpecialShopItemCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::SpecialShopItemCategory::SpecialShopItemCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -6164,18 +6291,18 @@ Sapphire::Data::Status::Status( uint32_t row_id, Sapphire::Data::ExdDataGenerate
|
||||||
description = exdData->getField< std::string >( row, 1 );
|
description = exdData->getField< std::string >( row, 1 );
|
||||||
icon = exdData->getField< uint16_t >( row, 2 );
|
icon = exdData->getField< uint16_t >( row, 2 );
|
||||||
maxStacks = exdData->getField< uint8_t >( row, 3 );
|
maxStacks = exdData->getField< uint8_t >( row, 3 );
|
||||||
category = exdData->getField< uint8_t >( row, 4 );
|
category = exdData->getField< uint8_t >( row, 5 );
|
||||||
hitEffect = exdData->getField< uint8_t >( row, 5 );
|
hitEffect = exdData->getField< uint8_t >( row, 6 );
|
||||||
vFX = exdData->getField< uint8_t >( row, 6 );
|
vFX = exdData->getField< uint8_t >( row, 7 );
|
||||||
lockMovement = exdData->getField< bool >( row, 7 );
|
lockMovement = exdData->getField< bool >( row, 8 );
|
||||||
lockActions = exdData->getField< bool >( row, 9 );
|
lockActions = exdData->getField< bool >( row, 10 );
|
||||||
lockControl = exdData->getField< bool >( row, 10 );
|
lockControl = exdData->getField< bool >( row, 11 );
|
||||||
transfiguration = exdData->getField< bool >( row, 11 );
|
transfiguration = exdData->getField< bool >( row, 12 );
|
||||||
canDispel = exdData->getField< bool >( row, 13 );
|
canDispel = exdData->getField< bool >( row, 14 );
|
||||||
inflictedByActor = exdData->getField< bool >( row, 14 );
|
inflictedByActor = exdData->getField< bool >( row, 15 );
|
||||||
isPermanent = exdData->getField< bool >( row, 15 );
|
isPermanent = exdData->getField< bool >( row, 16 );
|
||||||
isFcBuff = exdData->getField< bool >( row, 21 );
|
isFcBuff = exdData->getField< bool >( row, 24 );
|
||||||
invisibility = exdData->getField< bool >( row, 22 );
|
invisibility = exdData->getField< bool >( row, 25 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::StatusHitEffect::StatusHitEffect( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::StatusHitEffect::StatusHitEffect( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -6202,11 +6329,11 @@ Sapphire::Data::SubmarineExploration::SubmarineExploration( uint32_t row_id, Sap
|
||||||
auto row = exdData->m_SubmarineExplorationDat.get_row( row_id );
|
auto row = exdData->m_SubmarineExplorationDat.get_row( row_id );
|
||||||
destination = exdData->getField< std::string >( row, 0 );
|
destination = exdData->getField< std::string >( row, 0 );
|
||||||
location = exdData->getField< std::string >( row, 1 );
|
location = exdData->getField< std::string >( row, 1 );
|
||||||
rankReq = exdData->getField< uint8_t >( row, 5 );
|
rankReq = exdData->getField< uint8_t >( row, 8 );
|
||||||
ceruleumTankReq = exdData->getField< uint8_t >( row, 6 );
|
ceruleumTankReq = exdData->getField< uint8_t >( row, 9 );
|
||||||
durationmin = exdData->getField< uint16_t >( row, 7 );
|
durationmin = exdData->getField< uint16_t >( row, 10 );
|
||||||
distanceForSurvey = exdData->getField< uint8_t >( row, 8 );
|
distanceForSurvey = exdData->getField< uint8_t >( row, 11 );
|
||||||
expReward = exdData->getField< uint32_t >( row, 9 );
|
expReward = exdData->getField< uint32_t >( row, 12 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::SubmarinePart::SubmarinePart( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::SubmarinePart::SubmarinePart( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -6363,20 +6490,20 @@ Sapphire::Data::Transformation::Transformation( uint32_t row_id, Sapphire::Data:
|
||||||
bNpcName = exdData->getField< uint16_t >( row, 2 );
|
bNpcName = exdData->getField< uint16_t >( row, 2 );
|
||||||
bNpcCustomize = exdData->getField< int32_t >( row, 3 );
|
bNpcCustomize = exdData->getField< int32_t >( row, 3 );
|
||||||
npcEquip = exdData->getField< int32_t >( row, 4 );
|
npcEquip = exdData->getField< int32_t >( row, 4 );
|
||||||
action.push_back( exdData->getField< uint16_t >( row, 5 ) );
|
|
||||||
action.push_back( exdData->getField< uint16_t >( row, 6 ) );
|
|
||||||
action.push_back( exdData->getField< uint16_t >( row, 7 ) );
|
|
||||||
action.push_back( exdData->getField< uint16_t >( row, 8 ) );
|
|
||||||
action.push_back( exdData->getField< uint16_t >( row, 9 ) );
|
|
||||||
action.push_back( exdData->getField< uint16_t >( row, 10 ) );
|
action.push_back( exdData->getField< uint16_t >( row, 10 ) );
|
||||||
speed = exdData->getField< float >( row, 13 );
|
action.push_back( exdData->getField< uint16_t >( row, 11 ) );
|
||||||
scale = exdData->getField< float >( row, 14 );
|
action.push_back( exdData->getField< uint16_t >( row, 12 ) );
|
||||||
isPvP = exdData->getField< bool >( row, 15 );
|
action.push_back( exdData->getField< uint16_t >( row, 13 ) );
|
||||||
isEvent = exdData->getField< bool >( row, 16 );
|
action.push_back( exdData->getField< uint16_t >( row, 14 ) );
|
||||||
playerCamera = exdData->getField< bool >( row, 17 );
|
action.push_back( exdData->getField< uint16_t >( row, 15 ) );
|
||||||
startVFX = exdData->getField< uint16_t >( row, 18 );
|
rPParameter = exdData->getField< uint8_t >( row, 18 );
|
||||||
endVFX = exdData->getField< uint16_t >( row, 19 );
|
speed = exdData->getField< float >( row, 19 );
|
||||||
rPParameter = exdData->getField< uint8_t >( row, 23 );
|
scale = exdData->getField< float >( row, 20 );
|
||||||
|
isPvP = exdData->getField< bool >( row, 21 );
|
||||||
|
isEvent = exdData->getField< bool >( row, 22 );
|
||||||
|
playerCamera = exdData->getField< bool >( row, 23 );
|
||||||
|
startVFX = exdData->getField< uint16_t >( row, 24 );
|
||||||
|
endVFX = exdData->getField< uint16_t >( row, 25 );
|
||||||
}
|
}
|
||||||
|
|
||||||
Sapphire::Data::Treasure::Treasure( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
Sapphire::Data::Treasure::Treasure( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )
|
||||||
|
@ -7003,6 +7130,7 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
|
||||||
m_GuardianDeityDat = setupDatAccess( "GuardianDeity", xiv::exd::Language::en );
|
m_GuardianDeityDat = setupDatAccess( "GuardianDeity", xiv::exd::Language::en );
|
||||||
m_GuildleveAssignmentDat = setupDatAccess( "GuildleveAssignment", xiv::exd::Language::none );
|
m_GuildleveAssignmentDat = setupDatAccess( "GuildleveAssignment", xiv::exd::Language::none );
|
||||||
m_GuildleveAssignmentCategoryDat = setupDatAccess( "GuildleveAssignmentCategory", xiv::exd::Language::none );
|
m_GuildleveAssignmentCategoryDat = setupDatAccess( "GuildleveAssignmentCategory", xiv::exd::Language::none );
|
||||||
|
m_GuildOrderDat = setupDatAccess( "GuildOrder", xiv::exd::Language::en );
|
||||||
m_GuildOrderGuideDat = setupDatAccess( "GuildOrderGuide", xiv::exd::Language::none );
|
m_GuildOrderGuideDat = setupDatAccess( "GuildOrderGuide", xiv::exd::Language::none );
|
||||||
m_GuildOrderOfficerDat = setupDatAccess( "GuildOrderOfficer", xiv::exd::Language::none );
|
m_GuildOrderOfficerDat = setupDatAccess( "GuildOrderOfficer", xiv::exd::Language::none );
|
||||||
m_HairMakeTypeDat = setupDatAccess( "HairMakeType", xiv::exd::Language::none );
|
m_HairMakeTypeDat = setupDatAccess( "HairMakeType", xiv::exd::Language::none );
|
||||||
|
@ -7130,7 +7258,6 @@ bool Sapphire::Data::ExdDataGenerated::init( const std::string& path )
|
||||||
m_RacingChocoboParamDat = setupDatAccess( "RacingChocoboParam", xiv::exd::Language::en );
|
m_RacingChocoboParamDat = setupDatAccess( "RacingChocoboParam", xiv::exd::Language::en );
|
||||||
m_RecastNavimeshDat = setupDatAccess( "RecastNavimesh", xiv::exd::Language::none );
|
m_RecastNavimeshDat = setupDatAccess( "RecastNavimesh", xiv::exd::Language::none );
|
||||||
m_RecipeDat = setupDatAccess( "Recipe", xiv::exd::Language::none );
|
m_RecipeDat = setupDatAccess( "Recipe", xiv::exd::Language::none );
|
||||||
m_RecipeElementDat = setupDatAccess( "RecipeElement", xiv::exd::Language::en );
|
|
||||||
m_RecipeLevelTableDat = setupDatAccess( "RecipeLevelTable", xiv::exd::Language::none );
|
m_RecipeLevelTableDat = setupDatAccess( "RecipeLevelTable", xiv::exd::Language::none );
|
||||||
m_RecipeNotebookListDat = setupDatAccess( "RecipeNotebookList", xiv::exd::Language::none );
|
m_RecipeNotebookListDat = setupDatAccess( "RecipeNotebookList", xiv::exd::Language::none );
|
||||||
m_RecommendContentsDat = setupDatAccess( "RecommendContents", xiv::exd::Language::none );
|
m_RecommendContentsDat = setupDatAccess( "RecommendContents", xiv::exd::Language::none );
|
||||||
|
|
|
@ -278,6 +278,7 @@ struct GrandCompanyRank;
|
||||||
struct GuardianDeity;
|
struct GuardianDeity;
|
||||||
struct GuildleveAssignment;
|
struct GuildleveAssignment;
|
||||||
struct GuildleveAssignmentCategory;
|
struct GuildleveAssignmentCategory;
|
||||||
|
struct GuildOrder;
|
||||||
struct GuildOrderGuide;
|
struct GuildOrderGuide;
|
||||||
struct GuildOrderOfficer;
|
struct GuildOrderOfficer;
|
||||||
struct HairMakeType;
|
struct HairMakeType;
|
||||||
|
@ -405,7 +406,6 @@ struct RacingChocoboNameInfo;
|
||||||
struct RacingChocoboParam;
|
struct RacingChocoboParam;
|
||||||
struct RecastNavimesh;
|
struct RecastNavimesh;
|
||||||
struct Recipe;
|
struct Recipe;
|
||||||
struct RecipeElement;
|
|
||||||
struct RecipeLevelTable;
|
struct RecipeLevelTable;
|
||||||
struct RecipeNotebookList;
|
struct RecipeNotebookList;
|
||||||
struct RecommendContents;
|
struct RecommendContents;
|
||||||
|
@ -511,7 +511,7 @@ struct Achievement
|
||||||
int32_t key;
|
int32_t key;
|
||||||
std::vector< int32_t > data;
|
std::vector< int32_t > data;
|
||||||
uint16_t order;
|
uint16_t order;
|
||||||
bool initialHide;
|
uint8_t initialHide;
|
||||||
|
|
||||||
Achievement( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
Achievement( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
||||||
};
|
};
|
||||||
|
@ -1111,12 +1111,10 @@ struct BeastReputationRank
|
||||||
struct BeastTribe
|
struct BeastTribe
|
||||||
{
|
{
|
||||||
uint8_t minLevel;
|
uint8_t minLevel;
|
||||||
uint8_t maxLevel;
|
|
||||||
uint8_t beastRankBonus;
|
uint8_t beastRankBonus;
|
||||||
uint32_t iconReputation;
|
uint32_t iconReputation;
|
||||||
uint32_t icon;
|
uint32_t icon;
|
||||||
uint8_t maxRank;
|
uint8_t maxRank;
|
||||||
uint32_t alliedBeastTribeQuest;
|
|
||||||
uint8_t expansion;
|
uint8_t expansion;
|
||||||
uint32_t currencyItem;
|
uint32_t currencyItem;
|
||||||
uint8_t displayOrder;
|
uint8_t displayOrder;
|
||||||
|
@ -1734,6 +1732,7 @@ struct ContentFinderCondition
|
||||||
uint8_t contentLinkType;
|
uint8_t contentLinkType;
|
||||||
uint16_t content;
|
uint16_t content;
|
||||||
uint8_t contentMemberType;
|
uint8_t contentMemberType;
|
||||||
|
uint32_t unlockQuest;
|
||||||
uint8_t classJobLevelRequired;
|
uint8_t classJobLevelRequired;
|
||||||
uint8_t classJobLevelSync;
|
uint8_t classJobLevelSync;
|
||||||
uint16_t itemLevelRequired;
|
uint16_t itemLevelRequired;
|
||||||
|
@ -1743,8 +1742,11 @@ struct ContentFinderCondition
|
||||||
bool dutyRecorderAllowed;
|
bool dutyRecorderAllowed;
|
||||||
std::string name;
|
std::string name;
|
||||||
uint8_t contentType;
|
uint8_t contentType;
|
||||||
|
uint8_t transientKey;
|
||||||
uint32_t transient;
|
uint32_t transient;
|
||||||
|
uint16_t sortKey;
|
||||||
uint32_t image;
|
uint32_t image;
|
||||||
|
uint32_t icon;
|
||||||
bool levelingRoulette;
|
bool levelingRoulette;
|
||||||
bool level5060Roulette;
|
bool level5060Roulette;
|
||||||
bool mSQRoulette;
|
bool mSQRoulette;
|
||||||
|
@ -1843,12 +1845,14 @@ struct ContentRouletteRoleBonus
|
||||||
struct ContentsNote
|
struct ContentsNote
|
||||||
{
|
{
|
||||||
uint8_t contentType;
|
uint8_t contentType;
|
||||||
|
int32_t icon;
|
||||||
uint8_t menuOrder;
|
uint8_t menuOrder;
|
||||||
int32_t requiredAmount;
|
int32_t requiredAmount;
|
||||||
int32_t expMultiplier;
|
int32_t expMultiplier;
|
||||||
int32_t gilRward;
|
int32_t gilRward;
|
||||||
uint16_t levelUnlock;
|
uint16_t levelUnlock;
|
||||||
uint16_t howTo;
|
uint16_t howTo;
|
||||||
|
uint32_t reqUnlock;
|
||||||
std::string name;
|
std::string name;
|
||||||
std::string description;
|
std::string description;
|
||||||
int32_t expCap;
|
int32_t expCap;
|
||||||
|
@ -2351,6 +2355,21 @@ struct ENpcDressUp
|
||||||
struct ENpcDressUpDress
|
struct ENpcDressUpDress
|
||||||
{
|
{
|
||||||
uint32_t eNpc;
|
uint32_t eNpc;
|
||||||
|
uint16_t behavior;
|
||||||
|
uint64_t modelMainHand;
|
||||||
|
uint8_t dyeMainHand;
|
||||||
|
uint64_t modelOffHand;
|
||||||
|
uint8_t dyeOffHand;
|
||||||
|
uint32_t modelHead;
|
||||||
|
uint8_t dyeHead;
|
||||||
|
uint32_t modelBody;
|
||||||
|
uint8_t dyeBody;
|
||||||
|
uint32_t modelHands;
|
||||||
|
uint8_t dyeHands;
|
||||||
|
uint32_t modelLegs;
|
||||||
|
uint8_t dyeLegs;
|
||||||
|
uint32_t modelFeet;
|
||||||
|
uint8_t dyeFeet;
|
||||||
|
|
||||||
ENpcDressUpDress( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
|
ENpcDressUpDress( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );
|
||||||
};
|
};
|
||||||
|
@ -2688,6 +2707,10 @@ struct FieldMarker
|
||||||
struct FishingRecordType
|
struct FishingRecordType
|
||||||
{
|
{
|
||||||
int32_t addon;
|
int32_t addon;
|
||||||
|
uint16_t rankBRequirement;
|
||||||
|
uint16_t rankARequirement;
|
||||||
|
uint16_t rankAARequirement;
|
||||||
|
uint16_t rankAAARequirement;
|
||||||
|
|
||||||
FishingRecordType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
FishingRecordType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
||||||
};
|
};
|
||||||
|
@ -2711,6 +2734,7 @@ struct FishingSpot
|
||||||
uint16_t radius;
|
uint16_t radius;
|
||||||
std::vector< int32_t > item;
|
std::vector< int32_t > item;
|
||||||
uint16_t placeName;
|
uint16_t placeName;
|
||||||
|
uint8_t order;
|
||||||
|
|
||||||
FishingSpot( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
FishingSpot( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
||||||
};
|
};
|
||||||
|
@ -2723,10 +2747,10 @@ struct FishParameter
|
||||||
bool isHidden;
|
bool isHidden;
|
||||||
uint8_t fishingRecordType;
|
uint8_t fishingRecordType;
|
||||||
int32_t territoryType;
|
int32_t territoryType;
|
||||||
|
uint16_t gatheringSubCategory;
|
||||||
bool isInLog;
|
bool isInLog;
|
||||||
bool timeRestricted;
|
bool timeRestricted;
|
||||||
bool weatherRestricted;
|
bool weatherRestricted;
|
||||||
uint16_t gatheringSubCategory;
|
|
||||||
|
|
||||||
FishParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
FishParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
||||||
};
|
};
|
||||||
|
@ -3133,7 +3157,6 @@ struct GilShop
|
||||||
{
|
{
|
||||||
std::string name;
|
std::string name;
|
||||||
uint32_t icon;
|
uint32_t icon;
|
||||||
std::vector< uint32_t > questRequired;
|
|
||||||
int32_t acceptTalk;
|
int32_t acceptTalk;
|
||||||
int32_t failTalk;
|
int32_t failTalk;
|
||||||
|
|
||||||
|
@ -3215,6 +3238,21 @@ struct GuildleveAssignmentCategory
|
||||||
GuildleveAssignmentCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
GuildleveAssignmentCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct GuildOrder
|
||||||
|
{
|
||||||
|
uint32_t eNpcName;
|
||||||
|
std::string objective;
|
||||||
|
std::string description1;
|
||||||
|
std::string description2;
|
||||||
|
std::string description3;
|
||||||
|
uint32_t completionBonusExp;
|
||||||
|
uint32_t rewardExp;
|
||||||
|
uint32_t completionBonusGil;
|
||||||
|
uint32_t rewardGil;
|
||||||
|
|
||||||
|
GuildOrder( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
||||||
|
};
|
||||||
|
|
||||||
struct GuildOrderGuide
|
struct GuildOrderGuide
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -3422,13 +3460,15 @@ struct InstanceContent
|
||||||
uint32_t instanceContentTextDataObjectiveStart;
|
uint32_t instanceContentTextDataObjectiveStart;
|
||||||
uint32_t instanceContentTextDataObjectiveEnd;
|
uint32_t instanceContentTextDataObjectiveEnd;
|
||||||
uint16_t sortKey;
|
uint16_t sortKey;
|
||||||
|
uint32_t instanceClearExp;
|
||||||
uint16_t newPlayerBonusA;
|
uint16_t newPlayerBonusA;
|
||||||
uint16_t newPlayerBonusB;
|
uint16_t finalBossCurrencyC;
|
||||||
uint32_t finalBossExp;
|
|
||||||
uint16_t finalBossCurrencyA;
|
uint16_t finalBossCurrencyA;
|
||||||
uint16_t finalBossCurrencyB;
|
uint16_t finalBossCurrencyB;
|
||||||
uint16_t finalBossCurrencyC;
|
uint16_t newPlayerBonusB;
|
||||||
uint32_t instanceClearExp;
|
uint32_t instanceClearGil;
|
||||||
|
uint32_t instanceContentRewardItem;
|
||||||
|
uint32_t finalBossExp;
|
||||||
int32_t instanceContentBuff;
|
int32_t instanceContentBuff;
|
||||||
uint32_t reqInstance;
|
uint32_t reqInstance;
|
||||||
uint8_t partyCondition;
|
uint8_t partyCondition;
|
||||||
|
@ -4004,7 +4044,6 @@ struct ModelSkeleton
|
||||||
struct ModelState
|
struct ModelState
|
||||||
{
|
{
|
||||||
uint16_t start;
|
uint16_t start;
|
||||||
uint16_t end;
|
|
||||||
|
|
||||||
ModelState( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
ModelState( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
||||||
};
|
};
|
||||||
|
@ -4061,18 +4100,6 @@ struct MountAction
|
||||||
|
|
||||||
struct MountCustomize
|
struct MountCustomize
|
||||||
{
|
{
|
||||||
float hyurMaleScale;
|
|
||||||
float hyurFemaleScale;
|
|
||||||
float elezenMaleScale;
|
|
||||||
float elezenFemaleScale;
|
|
||||||
float lalaMaleScale;
|
|
||||||
float lalaFemaleScale;
|
|
||||||
float miqoMaleScale;
|
|
||||||
float miqoFemaleScale;
|
|
||||||
float roeMaleScale;
|
|
||||||
float roeFemaleScale;
|
|
||||||
float auRaMaleScale;
|
|
||||||
float auRaFemaleScale;
|
|
||||||
uint8_t hyurMaleCameraHeight;
|
uint8_t hyurMaleCameraHeight;
|
||||||
uint8_t hyurFemaleCameraHeight;
|
uint8_t hyurFemaleCameraHeight;
|
||||||
uint8_t elezenMaleCameraHeight;
|
uint8_t elezenMaleCameraHeight;
|
||||||
|
@ -4436,7 +4463,6 @@ struct Quest
|
||||||
uint8_t classJobCategory0;
|
uint8_t classJobCategory0;
|
||||||
uint16_t classJobLevel0;
|
uint16_t classJobLevel0;
|
||||||
uint8_t questLevelOffset;
|
uint8_t questLevelOffset;
|
||||||
uint16_t levelMax;
|
|
||||||
uint8_t classJobCategory1;
|
uint8_t classJobCategory1;
|
||||||
uint16_t classJobLevel1;
|
uint16_t classJobLevel1;
|
||||||
uint8_t previousQuestJoin;
|
uint8_t previousQuestJoin;
|
||||||
|
@ -4455,6 +4481,7 @@ struct Quest
|
||||||
uint16_t bellEnd;
|
uint16_t bellEnd;
|
||||||
uint8_t beastTribe;
|
uint8_t beastTribe;
|
||||||
uint8_t beastReputationRank;
|
uint8_t beastReputationRank;
|
||||||
|
uint16_t levelMax;
|
||||||
int32_t mountRequired;
|
int32_t mountRequired;
|
||||||
bool isHouseRequired;
|
bool isHouseRequired;
|
||||||
uint8_t deliveryQuest;
|
uint8_t deliveryQuest;
|
||||||
|
@ -4652,7 +4679,6 @@ struct Recipe
|
||||||
uint16_t recipeLevelTable;
|
uint16_t recipeLevelTable;
|
||||||
int32_t itemResult;
|
int32_t itemResult;
|
||||||
uint8_t amountResult;
|
uint8_t amountResult;
|
||||||
uint8_t recipeElement;
|
|
||||||
bool isSecondary;
|
bool isSecondary;
|
||||||
uint16_t difficultyFactor;
|
uint16_t difficultyFactor;
|
||||||
uint16_t qualityFactor;
|
uint16_t qualityFactor;
|
||||||
|
@ -4673,20 +4699,13 @@ struct Recipe
|
||||||
Recipe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
Recipe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
||||||
};
|
};
|
||||||
|
|
||||||
struct RecipeElement
|
|
||||||
{
|
|
||||||
std::string name;
|
|
||||||
|
|
||||||
RecipeElement( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
|
||||||
};
|
|
||||||
|
|
||||||
struct RecipeLevelTable
|
struct RecipeLevelTable
|
||||||
{
|
{
|
||||||
uint8_t classJobLevel;
|
uint8_t classJobLevel;
|
||||||
uint8_t stars;
|
uint8_t stars;
|
||||||
uint16_t suggestedCraftsmanship;
|
uint16_t suggestedCraftsmanship;
|
||||||
uint16_t difficulty;
|
uint16_t difficulty;
|
||||||
int16_t quality;
|
uint32_t quality;
|
||||||
uint16_t durability;
|
uint16_t durability;
|
||||||
|
|
||||||
RecipeLevelTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
RecipeLevelTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
||||||
|
@ -5006,7 +5025,6 @@ struct SpecialShop
|
||||||
std::vector< int32_t > achievementUnlock;
|
std::vector< int32_t > achievementUnlock;
|
||||||
std::vector< uint16_t > patchNumber;
|
std::vector< uint16_t > patchNumber;
|
||||||
uint32_t questUnlock;
|
uint32_t questUnlock;
|
||||||
int32_t questShop;
|
|
||||||
int32_t notCompleteText;
|
int32_t notCompleteText;
|
||||||
int32_t completeText;
|
int32_t completeText;
|
||||||
|
|
||||||
|
@ -5232,6 +5250,7 @@ struct Transformation
|
||||||
int32_t bNpcCustomize;
|
int32_t bNpcCustomize;
|
||||||
int32_t npcEquip;
|
int32_t npcEquip;
|
||||||
std::vector< uint16_t > action;
|
std::vector< uint16_t > action;
|
||||||
|
uint8_t rPParameter;
|
||||||
float speed;
|
float speed;
|
||||||
float scale;
|
float scale;
|
||||||
bool isPvP;
|
bool isPvP;
|
||||||
|
@ -5239,7 +5258,6 @@ struct Transformation
|
||||||
bool playerCamera;
|
bool playerCamera;
|
||||||
uint16_t startVFX;
|
uint16_t startVFX;
|
||||||
uint16_t endVFX;
|
uint16_t endVFX;
|
||||||
uint8_t rPParameter;
|
|
||||||
|
|
||||||
Transformation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
Transformation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );
|
||||||
};
|
};
|
||||||
|
@ -5866,6 +5884,7 @@ struct ZoneSharedGroup
|
||||||
xiv::exd::Exd m_GuardianDeityDat;
|
xiv::exd::Exd m_GuardianDeityDat;
|
||||||
xiv::exd::Exd m_GuildleveAssignmentDat;
|
xiv::exd::Exd m_GuildleveAssignmentDat;
|
||||||
xiv::exd::Exd m_GuildleveAssignmentCategoryDat;
|
xiv::exd::Exd m_GuildleveAssignmentCategoryDat;
|
||||||
|
xiv::exd::Exd m_GuildOrderDat;
|
||||||
xiv::exd::Exd m_GuildOrderGuideDat;
|
xiv::exd::Exd m_GuildOrderGuideDat;
|
||||||
xiv::exd::Exd m_GuildOrderOfficerDat;
|
xiv::exd::Exd m_GuildOrderOfficerDat;
|
||||||
xiv::exd::Exd m_HairMakeTypeDat;
|
xiv::exd::Exd m_HairMakeTypeDat;
|
||||||
|
@ -5993,7 +6012,6 @@ struct ZoneSharedGroup
|
||||||
xiv::exd::Exd m_RacingChocoboParamDat;
|
xiv::exd::Exd m_RacingChocoboParamDat;
|
||||||
xiv::exd::Exd m_RecastNavimeshDat;
|
xiv::exd::Exd m_RecastNavimeshDat;
|
||||||
xiv::exd::Exd m_RecipeDat;
|
xiv::exd::Exd m_RecipeDat;
|
||||||
xiv::exd::Exd m_RecipeElementDat;
|
|
||||||
xiv::exd::Exd m_RecipeLevelTableDat;
|
xiv::exd::Exd m_RecipeLevelTableDat;
|
||||||
xiv::exd::Exd m_RecipeNotebookListDat;
|
xiv::exd::Exd m_RecipeNotebookListDat;
|
||||||
xiv::exd::Exd m_RecommendContentsDat;
|
xiv::exd::Exd m_RecommendContentsDat;
|
||||||
|
@ -6346,6 +6364,7 @@ struct ZoneSharedGroup
|
||||||
using GuardianDeityPtr = std::shared_ptr< GuardianDeity >;
|
using GuardianDeityPtr = std::shared_ptr< GuardianDeity >;
|
||||||
using GuildleveAssignmentPtr = std::shared_ptr< GuildleveAssignment >;
|
using GuildleveAssignmentPtr = std::shared_ptr< GuildleveAssignment >;
|
||||||
using GuildleveAssignmentCategoryPtr = std::shared_ptr< GuildleveAssignmentCategory >;
|
using GuildleveAssignmentCategoryPtr = std::shared_ptr< GuildleveAssignmentCategory >;
|
||||||
|
using GuildOrderPtr = std::shared_ptr< GuildOrder >;
|
||||||
using GuildOrderGuidePtr = std::shared_ptr< GuildOrderGuide >;
|
using GuildOrderGuidePtr = std::shared_ptr< GuildOrderGuide >;
|
||||||
using GuildOrderOfficerPtr = std::shared_ptr< GuildOrderOfficer >;
|
using GuildOrderOfficerPtr = std::shared_ptr< GuildOrderOfficer >;
|
||||||
using HairMakeTypePtr = std::shared_ptr< HairMakeType >;
|
using HairMakeTypePtr = std::shared_ptr< HairMakeType >;
|
||||||
|
@ -6473,7 +6492,6 @@ struct ZoneSharedGroup
|
||||||
using RacingChocoboParamPtr = std::shared_ptr< RacingChocoboParam >;
|
using RacingChocoboParamPtr = std::shared_ptr< RacingChocoboParam >;
|
||||||
using RecastNavimeshPtr = std::shared_ptr< RecastNavimesh >;
|
using RecastNavimeshPtr = std::shared_ptr< RecastNavimesh >;
|
||||||
using RecipePtr = std::shared_ptr< Recipe >;
|
using RecipePtr = std::shared_ptr< Recipe >;
|
||||||
using RecipeElementPtr = std::shared_ptr< RecipeElement >;
|
|
||||||
using RecipeLevelTablePtr = std::shared_ptr< RecipeLevelTable >;
|
using RecipeLevelTablePtr = std::shared_ptr< RecipeLevelTable >;
|
||||||
using RecipeNotebookListPtr = std::shared_ptr< RecipeNotebookList >;
|
using RecipeNotebookListPtr = std::shared_ptr< RecipeNotebookList >;
|
||||||
using RecommendContentsPtr = std::shared_ptr< RecommendContents >;
|
using RecommendContentsPtr = std::shared_ptr< RecommendContents >;
|
||||||
|
@ -6826,6 +6844,7 @@ struct ZoneSharedGroup
|
||||||
std::set< uint32_t > m_GuardianDeityIdList;
|
std::set< uint32_t > m_GuardianDeityIdList;
|
||||||
std::set< uint32_t > m_GuildleveAssignmentIdList;
|
std::set< uint32_t > m_GuildleveAssignmentIdList;
|
||||||
std::set< uint32_t > m_GuildleveAssignmentCategoryIdList;
|
std::set< uint32_t > m_GuildleveAssignmentCategoryIdList;
|
||||||
|
std::set< uint32_t > m_GuildOrderIdList;
|
||||||
std::set< uint32_t > m_GuildOrderGuideIdList;
|
std::set< uint32_t > m_GuildOrderGuideIdList;
|
||||||
std::set< uint32_t > m_GuildOrderOfficerIdList;
|
std::set< uint32_t > m_GuildOrderOfficerIdList;
|
||||||
std::set< uint32_t > m_HairMakeTypeIdList;
|
std::set< uint32_t > m_HairMakeTypeIdList;
|
||||||
|
@ -6953,7 +6972,6 @@ struct ZoneSharedGroup
|
||||||
std::set< uint32_t > m_RacingChocoboParamIdList;
|
std::set< uint32_t > m_RacingChocoboParamIdList;
|
||||||
std::set< uint32_t > m_RecastNavimeshIdList;
|
std::set< uint32_t > m_RecastNavimeshIdList;
|
||||||
std::set< uint32_t > m_RecipeIdList;
|
std::set< uint32_t > m_RecipeIdList;
|
||||||
std::set< uint32_t > m_RecipeElementIdList;
|
|
||||||
std::set< uint32_t > m_RecipeLevelTableIdList;
|
std::set< uint32_t > m_RecipeLevelTableIdList;
|
||||||
std::set< uint32_t > m_RecipeNotebookListIdList;
|
std::set< uint32_t > m_RecipeNotebookListIdList;
|
||||||
std::set< uint32_t > m_RecommendContentsIdList;
|
std::set< uint32_t > m_RecommendContentsIdList;
|
||||||
|
@ -8606,6 +8624,12 @@ const std::set< uint32_t >& getGuildleveAssignmentCategoryIdList()
|
||||||
loadIdList( m_GuildleveAssignmentCategoryDat, m_GuildleveAssignmentCategoryIdList );
|
loadIdList( m_GuildleveAssignmentCategoryDat, m_GuildleveAssignmentCategoryIdList );
|
||||||
return m_GuildleveAssignmentCategoryIdList;
|
return m_GuildleveAssignmentCategoryIdList;
|
||||||
}
|
}
|
||||||
|
const std::set< uint32_t >& getGuildOrderIdList()
|
||||||
|
{
|
||||||
|
if( m_GuildOrderIdList.size() == 0 )
|
||||||
|
loadIdList( m_GuildOrderDat, m_GuildOrderIdList );
|
||||||
|
return m_GuildOrderIdList;
|
||||||
|
}
|
||||||
const std::set< uint32_t >& getGuildOrderGuideIdList()
|
const std::set< uint32_t >& getGuildOrderGuideIdList()
|
||||||
{
|
{
|
||||||
if( m_GuildOrderGuideIdList.size() == 0 )
|
if( m_GuildOrderGuideIdList.size() == 0 )
|
||||||
|
@ -9368,12 +9392,6 @@ const std::set< uint32_t >& getRecipeIdList()
|
||||||
loadIdList( m_RecipeDat, m_RecipeIdList );
|
loadIdList( m_RecipeDat, m_RecipeIdList );
|
||||||
return m_RecipeIdList;
|
return m_RecipeIdList;
|
||||||
}
|
}
|
||||||
const std::set< uint32_t >& getRecipeElementIdList()
|
|
||||||
{
|
|
||||||
if( m_RecipeElementIdList.size() == 0 )
|
|
||||||
loadIdList( m_RecipeElementDat, m_RecipeElementIdList );
|
|
||||||
return m_RecipeElementIdList;
|
|
||||||
}
|
|
||||||
const std::set< uint32_t >& getRecipeLevelTableIdList()
|
const std::set< uint32_t >& getRecipeLevelTableIdList()
|
||||||
{
|
{
|
||||||
if( m_RecipeLevelTableIdList.size() == 0 )
|
if( m_RecipeLevelTableIdList.size() == 0 )
|
||||||
|
|
|
@ -60,8 +60,8 @@ namespace Sapphire::Network::Packets
|
||||||
///////////////////////////////////////////////////
|
///////////////////////////////////////////////////
|
||||||
|
|
||||||
ChatBanned = 0x006B,
|
ChatBanned = 0x006B,
|
||||||
Playtime = 0x006C, // updated 4.5
|
Playtime = 0x0100, // updated 5.0
|
||||||
Logout = 0x0077, // updated 4.5
|
Logout = 0x0077, // updated 5.0
|
||||||
CFNotify = 0x0078,
|
CFNotify = 0x0078,
|
||||||
CFMemberStatus = 0x0079,
|
CFMemberStatus = 0x0079,
|
||||||
CFDutyInfo = 0x007A,
|
CFDutyInfo = 0x007A,
|
||||||
|
@ -73,33 +73,36 @@ namespace Sapphire::Network::Packets
|
||||||
SocialRequestResponse = 0x00BB, // updated 4.1
|
SocialRequestResponse = 0x00BB, // updated 4.1
|
||||||
CancelAllianceForming = 0x00C6, // updated 4.2
|
CancelAllianceForming = 0x00C6, // updated 4.2
|
||||||
|
|
||||||
Chat = 0x00F7, // updated 4.5?
|
LogMessage = 0x00D0,
|
||||||
|
|
||||||
|
Chat = 0x0104, // updated 5.0
|
||||||
|
|
||||||
WorldVisitList = 0x00FE, // added 4.5
|
WorldVisitList = 0x00FE, // added 4.5
|
||||||
|
|
||||||
SocialList = 0x0103, // updated 4.5
|
SocialList = 0x010D, // updated 5.0
|
||||||
|
|
||||||
UpdateSearchInfo = 0x0106, // updated 4.5
|
UpdateSearchInfo = 0x0110, // updated 5.0
|
||||||
InitSearchInfo = 0x0107, // updated 4.4
|
InitSearchInfo = 0x0111, // updated 5.0
|
||||||
ExamineSearchComment = 0x0102, // updated 4.1
|
ExamineSearchComment = 0x0102, // updated 4.1
|
||||||
|
|
||||||
ServerNoticeShort = 0x010B, // added 4.5
|
ServerNoticeShort = 0x0115, // updated 5.0
|
||||||
ServerNotice = 0x010C, // updated 4.5
|
ServerNotice = 0x0116, // updated 5.0
|
||||||
SetOnlineStatus = 0x010D, // updated 4.5
|
SetOnlineStatus = 0x0117, // updated 5.0
|
||||||
|
|
||||||
CountdownInitiate = 0x0114, // updated 4.5
|
CountdownInitiate = 0x011E, // updated 5.0
|
||||||
CountdownCancel = 0x0115, // updated 4.5
|
CountdownCancel = 0x011F, // updated 5.0
|
||||||
|
|
||||||
BlackList = 0x0118, // updated 4.5
|
PlayerAddedToBlacklist = 0x0120, // updated 5.0
|
||||||
|
PlayerRemovedFromBlacklist = 0x0121, // updated 5.0
|
||||||
|
BlackList = 0x0123, // updated 5.0
|
||||||
|
|
||||||
LogMessage = 0x00D0,
|
LinkshellList = 0x012A, // updated 5.0
|
||||||
|
|
||||||
LinkshellList = 0x011F, // updated 4.5
|
MailDeleteRequest = 0x012B, // updated 5.0
|
||||||
|
// 12D - 137 - constant gap between 4.5x -> 5.0
|
||||||
MailDeleteRequest = 0x0120, // updated 4.5
|
ReqMoogleMailList = 0x0138, // updated 5.0
|
||||||
ReqMoogleMailList = 0x0121, // updated 4.5
|
ReqMoogleMailLetter = 0x0139, // updated 5.0
|
||||||
ReqMoogleMailLetter = 0x0122, // updated 4.5
|
MailLetterNotification = 0x013A, // updated 5.0
|
||||||
MailLetterNotification = 0x0123, // updated 4.5
|
|
||||||
|
|
||||||
MarketBoardItemListingCount = 0x0125, // updated 4.5
|
MarketBoardItemListingCount = 0x0125, // updated 4.5
|
||||||
MarketBoardItemListing = 0x0126, // updated 4.5
|
MarketBoardItemListing = 0x0126, // updated 4.5
|
||||||
|
@ -111,111 +114,115 @@ namespace Sapphire::Network::Packets
|
||||||
FreeCompanyInfo = 0x013D, // updated 4.5
|
FreeCompanyInfo = 0x013D, // updated 4.5
|
||||||
ExamineFreeCompanyInfo = 0x013E, // updated 4.5
|
ExamineFreeCompanyInfo = 0x013E, // updated 4.5
|
||||||
|
|
||||||
StatusEffectList = 0x0151, // updated 4.5
|
StatusEffectList = 0x015B, // updated 5.0
|
||||||
Effect = 0x0154, // updated 4.5
|
EurekaStatusEffectList = 0x015C, // updated 5.0
|
||||||
AoeEffect8 = 0x0157, // updated 4.5
|
Effect = 0x015E, // updated 5.0
|
||||||
AoeEffect16 = 0x0158, // updated 4.5
|
AoeEffect8 = 0x0161, // updated 5.0
|
||||||
AoeEffect24 = 0x0159, // updated 4.5
|
AoeEffect16 = 0x0162, // updated 5.0
|
||||||
AoeEffect32 = 0x015A, // updated 4.5
|
AoeEffect24 = 0x0163, // updated 5.0
|
||||||
PersistantEffect = 0x015B, // updated 4.5
|
AoeEffect32 = 0x0164, // updated 5.0
|
||||||
|
PersistantEffect = 0x0165, // updated 5.0
|
||||||
|
|
||||||
GCAffiliation = 0x0165, // updated 4.5
|
GCAffiliation = 0x016F, // updated 5.0
|
||||||
|
|
||||||
PlayerSpawn = 0x0175, // updated 4.5
|
PlayerSpawn = 0x017F, // updated 5.0
|
||||||
NpcSpawn = 0x0176, // updated 4.5
|
NpcSpawn = 0x0180, // updated 5.0
|
||||||
NpcSpawn2 = 0x0177, // ( Bigger statuseffectlist? ) updated 4.5
|
NpcSpawn2 = 0x0181, // ( Bigger statuseffectlist? ) updated 5.0
|
||||||
ActorMove = 0x0178, // updated 4.5
|
ActorMove = 0x0182, // updated 5.0
|
||||||
|
|
||||||
ActorSetPos = 0x017A, // updated 4.5
|
ActorSetPos = 0x0184, // updated 5.0
|
||||||
|
|
||||||
ActorCast = 0x017C, // updated 4.5
|
ActorCast = 0x0187, // updated 5.0
|
||||||
|
|
||||||
PartyList = 0x017E, // updated 4.5
|
PartyList = 0x0188, // updated 5.0
|
||||||
HateRank = 0x017F, // updated 4.5
|
HateRank = 0x0189, // updated 5.0
|
||||||
HateList = 0x0180, // updated 4.5
|
HateList = 0x018A, // updated 5.0
|
||||||
ObjectSpawn = 0x0181, // updated 4.5
|
ObjectSpawn = 0x018B, // updated 5.0
|
||||||
ObjectDespawn = 0x0182, // updated 4.5
|
ObjectDespawn = 0x018C, // updated 5.0
|
||||||
UpdateClassInfo = 0x0183, // updated 4.5
|
UpdateClassInfo = 0x018D, // updated 5.0
|
||||||
SilentSetClassJob = 0x0184, // updated 4.5 - seems to be the case, not sure if it's actually used for anything
|
SilentSetClassJob = 0x018E, // updated 5.0 - seems to be the case, not sure if it's actually used for anything
|
||||||
PlayerSetup = 0x0185, // updated 4.5
|
PlayerSetup = 0x018F, // updated 5.0
|
||||||
PlayerStats = 0x0186, // updated 4.5
|
PlayerStats = 0x0190, // updated 5.0
|
||||||
ActorOwner = 0x0187, // updated 4.5
|
ActorOwner = 0x0192, // updated 5.0
|
||||||
PlayerStateFlags = 0x0188, // updated 4.5
|
PlayerStateFlags = 0x0193, // updated 5.0
|
||||||
PlayerClassInfo = 0x0189, // updated 4.5
|
PlayerClassInfo = 0x0194, // updated 5.0
|
||||||
|
|
||||||
ModelEquip = 0x018B, // updated 4.5
|
ModelEquip = 0x0196, // updated 5.0
|
||||||
Examine = 0x018C, // updated 4.5
|
Examine = 0x0197, // updated 5.0
|
||||||
CharaNameReq = 0x018D, // updated 4.5
|
CharaNameReq = 0x0198, // updated 5.0
|
||||||
|
|
||||||
|
// nb: see #565 on github
|
||||||
|
UpdateRetainerItemSalePrice = 0x019D, // updated 5.0
|
||||||
|
|
||||||
SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore
|
SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore
|
||||||
|
|
||||||
ItemInfo = 0x0196, // updated 4.5
|
ItemInfo = 0x01A1, // updated 5.0
|
||||||
ContainerInfo = 0x0197, // updated 4.5
|
ContainerInfo = 0x01A2, // updated 5.0
|
||||||
InventoryTransactionFinish = 0x0198, // updated 4.5
|
InventoryTransactionFinish = 0x01A3, // updated 5.0
|
||||||
InventoryTransaction = 0x0199, // updated 4.5
|
InventoryTransaction = 0x01A4, // updated 5.0
|
||||||
|
|
||||||
CurrencyCrystalInfo = 0x019B, // updated 4.5
|
CurrencyCrystalInfo = 0x01A5, // updated 5.0
|
||||||
|
|
||||||
InventoryActionAck = 0x019D, // updated 4.5
|
InventoryActionAck = 0x01A7, // updated 5.0
|
||||||
UpdateInventorySlot = 0x019E, // updated 4.5
|
UpdateInventorySlot = 0x01A8, // updated 5.0
|
||||||
|
|
||||||
HuntingLogEntry = 0x01A9, // added 4.5
|
HuntingLogEntry = 0x01B3, // updated 5.0
|
||||||
|
|
||||||
EventPlay = 0x01AB, // updated 4.5
|
EventPlay = 0x01B5, // updated 5.0
|
||||||
DirectorPlayScene = 0x01AF, // updated 4.5
|
DirectorPlayScene = 0x01B9, // updated 5.0
|
||||||
EventOpenGilShop = 0x01B2, // updated 4.5
|
EventOpenGilShop = 0x01BC, // updated 5.0
|
||||||
|
|
||||||
EventStart = 0x01B4, // updated 4.5
|
EventStart = 0x01BE, // updated 5.0
|
||||||
EventFinish = 0x01B5, // updated 4.5
|
EventFinish = 0x01BF, // updated 5.0
|
||||||
|
|
||||||
EventLinkshell = 0x1169,
|
EventLinkshell = 0x1169,
|
||||||
|
|
||||||
QuestActiveList = 0x01C8, // updated 4.5
|
QuestActiveList = 0x01D2, // updated 5.0
|
||||||
QuestUpdate = 0x01C9, // updated 4.5
|
QuestUpdate = 0x01D3, // updated 5.0
|
||||||
QuestCompleteList = 0x01CA, // updated 4.5
|
QuestCompleteList = 0x01D4, // updated 5.0
|
||||||
|
|
||||||
QuestFinish = 0x01CB, // updated 4.5
|
QuestFinish = 0x01D5, // updated 5.0
|
||||||
MSQTrackerComplete = 0x01CC, // updated 4.5
|
MSQTrackerComplete = 0x01D6, // updated 5.0
|
||||||
MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474
|
MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474
|
||||||
|
|
||||||
QuestMessage = 0x01D3, // updated 4.5
|
QuestMessage = 0x01DE, // updated 5.0
|
||||||
|
|
||||||
QuestTracker = 0x01D8, // updated 4.5
|
QuestTracker = 0x01E3, // updated 5.0
|
||||||
|
|
||||||
Mount = 0x01E8, // updated 4.5
|
Mount = 0x01F3, // updated 5.0
|
||||||
|
|
||||||
DirectorVars = 0x01EA, // updated 4.5
|
DirectorVars = 0x01F5, // updated 5.0
|
||||||
DirectorPopUp = 0x01F5, // display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown
|
DirectorPopUp = 0x0200, // updated 5.0 - display dialogue pop-ups in duties and FATEs, for example, Teraflare's countdown
|
||||||
|
|
||||||
CFAvailableContents = 0xF1FD, // updated 4.2
|
CFAvailableContents = 0xF1FD, // updated 4.2
|
||||||
|
|
||||||
WeatherChange = 0x0205, // updated 4.5
|
WeatherChange = 0x0210, // updated 5.0
|
||||||
PlayerTitleList = 0x0206, // updated 4.5?
|
PlayerTitleList = 0x0211, // updated 5.0
|
||||||
Discovery = 0x0207, // updated 4.5?
|
Discovery = 0x0212, // updated 5.0
|
||||||
|
|
||||||
EorzeaTimeOffset = 0x0209, // updated 4.5
|
EorzeaTimeOffset = 0x0214, // updated 5.0
|
||||||
|
|
||||||
EquipDisplayFlags = 0x0215, // updated 4.5
|
EquipDisplayFlags = 0x0220, // updated 5.0
|
||||||
|
|
||||||
/// Housing //////////////////////////////////////
|
/// Housing //////////////////////////////////////
|
||||||
|
|
||||||
LandSetInitialize = 0x0229, // updated 4.5
|
LandSetInitialize = 0x0234, // updated 5.0
|
||||||
LandUpdate = 0x022A, // updated 4.5
|
LandUpdate = 0x0235, // updated 5.0
|
||||||
YardObjectSpawn = 0x022B, // updated 4.5
|
YardObjectSpawn = 0x0236, // updated 5.0
|
||||||
HousingIndoorInitialize = 0x022C, // updated 4.5
|
HousingIndoorInitialize = 0x0237, // updated 5.0
|
||||||
LandPriceUpdate = 0x022D, // updated 4.5
|
LandPriceUpdate = 0x0238, // updated 5.0
|
||||||
LandInfoSign = 0x022E, // updated 4.5
|
LandInfoSign = 0x0239, // updated 5.0
|
||||||
LandRename = 0x022F, // updated 4.5
|
LandRename = 0x023A, // updated 5.0
|
||||||
HousingEstateGreeting = 0x0230, // updated 4.5
|
HousingEstateGreeting = 0x023B, // updated 5.0
|
||||||
HousingUpdateLandFlagsSlot = 0x0231, // updated 4.5
|
HousingUpdateLandFlagsSlot = 0x023C, // updated 5.0
|
||||||
HousingLandFlags = 0x0232, // updated 4.5
|
HousingLandFlags = 0x023D, // updated 5.0
|
||||||
HousingShowEstateGuestAccess = 0x0233, // updated 4.5
|
HousingShowEstateGuestAccess = 0x023E, // updated 5.0
|
||||||
|
|
||||||
HousingObjectInitialize = 0x0235, // updated 4.45
|
HousingObjectInitialize = 0x0240, // updated 5.0
|
||||||
HousingInternalObjectSpawn = 0x236, // updated 4.5
|
HousingInternalObjectSpawn = 0x241, // updated 5.0
|
||||||
|
|
||||||
HousingWardInfo = 0x0238, // updated 4.5
|
HousingWardInfo = 0x0243, // updated 5.0
|
||||||
HousingObjectMove = 0x0239, // updated 4.5
|
HousingObjectMove = 0x0244, // updated 5.0
|
||||||
|
|
||||||
SharedEstateSettingsResponse = 0x0245, // updated 4.5
|
SharedEstateSettingsResponse = 0x0245, // updated 4.5
|
||||||
|
|
||||||
|
@ -228,16 +235,17 @@ namespace Sapphire::Network::Packets
|
||||||
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
|
DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui
|
||||||
PerformNote = 0x0286, // updated 4.3
|
PerformNote = 0x0286, // updated 4.3
|
||||||
|
|
||||||
PrepareZoning = 0x0299, // updated 4.5
|
PrepareZoning = 0x02A4, // updated 5.0
|
||||||
ActorGauge = 0x0292, // updated 4.3
|
ActorGauge = 0x0292, // updated 4.3
|
||||||
|
|
||||||
// Unknown IPC types that still need to be sent
|
// Unknown IPC types that still need to be sent
|
||||||
// TODO: figure all these out properly
|
// TODO: figure all these out properly
|
||||||
IPCTYPE_UNK_320 = 0x0253, // updated 4.5
|
// daily quest related, init seed and current quota probably
|
||||||
IPCTYPE_UNK_322 = 0x0255, // updated 4.5
|
IPCTYPE_UNK_320 = 0x025E, // updated 5.0
|
||||||
|
IPCTYPE_UNK_322 = 0x0260, // updated 5.0
|
||||||
|
|
||||||
/// Doman Mahjong //////////////////////////////////////
|
/// Doman Mahjong //////////////////////////////////////
|
||||||
MahjongOpenGui = 0x02BC, // only available in mahjong instance
|
MahjongOpenGui = 0x02A4, // only available in mahjong instance
|
||||||
MahjongNextRound = 0x02BD, // initial hands(baipai), # of riichi(wat), winds, honba, score and stuff
|
MahjongNextRound = 0x02BD, // initial hands(baipai), # of riichi(wat), winds, honba, score and stuff
|
||||||
MahjongPlayerAction = 0x02BE, // tsumo(as in drawing a tile) called chi/pon/kan/riichi
|
MahjongPlayerAction = 0x02BE, // tsumo(as in drawing a tile) called chi/pon/kan/riichi
|
||||||
MahjongEndRoundTsumo = 0x02BF, // called tsumo
|
MahjongEndRoundTsumo = 0x02BF, // called tsumo
|
||||||
|
@ -255,36 +263,37 @@ namespace Sapphire::Network::Packets
|
||||||
enum ClientZoneIpcType : uint16_t
|
enum ClientZoneIpcType : uint16_t
|
||||||
{
|
{
|
||||||
|
|
||||||
PingHandler = 0x0065, // unchanged 4.5
|
PingHandler = 0x0065, // unchanged 5.0
|
||||||
InitHandler = 0x0066, // unchanged 4.5
|
InitHandler = 0x0066, // unchanged 5.0
|
||||||
|
|
||||||
FinishLoadingHandler = 0x0069, // unchanged 4.5
|
FinishLoadingHandler = 0x0069, // unchanged 5.0
|
||||||
|
|
||||||
CFCommenceHandler = 0x006F,
|
CFCommenceHandler = 0x006F,
|
||||||
|
|
||||||
|
|
||||||
CFRegisterDuty = 0x0071,
|
CFRegisterDuty = 0x0071,
|
||||||
CFRegisterRoulette = 0x0072,
|
CFRegisterRoulette = 0x0072,
|
||||||
PlayTimeHandler = 0x0073, // unchanged 4.5
|
PlayTimeHandler = 0x0073, // unchanged 5.0
|
||||||
LogoutHandler = 0x0074, // unchanged 4.5
|
LogoutHandler = 0x0074, // unchanged 5.0
|
||||||
|
CancelLogout = 0x0075, // updated 5.0
|
||||||
|
|
||||||
CFDutyInfoHandler = 0x0078, // updated 4.2
|
CFDutyInfoHandler = 0x0078, // updated 4.2
|
||||||
|
|
||||||
SocialReqSendHandler = 0x00AE, // updated 4.1
|
SocialReqSendHandler = 0x00AE, // updated 4.1
|
||||||
CreateCrossWorldLS = 0x00AF, // updated 4.3
|
CreateCrossWorldLS = 0x00AF, // updated 4.3
|
||||||
|
|
||||||
ChatHandler = 0x00D7, // updated 4.5
|
ChatHandler = 0x00D9, // updated 5.0
|
||||||
|
|
||||||
SocialListHandler = 0x00DF, // updated 4.5
|
SocialListHandler = 0x00E1, // updated 5.0
|
||||||
ReqSearchInfoHandler = 0x00E4, // updated 4.5
|
SetSearchInfoHandler = 0x00E4, // updated 5.0
|
||||||
ReqExamineSearchCommentHandler = 0x00E5, // updated 4.5
|
ReqSearchInfoHandler = 0x00E6, // updated 5.0
|
||||||
|
ReqExamineSearchCommentHandler = 0x00E7, // updated 5.0
|
||||||
|
|
||||||
SetSearchInfoHandler = 0x00E2, // unchanged 4.5
|
ReqRemovePlayerFromBlacklist = 0x00F1, // updated 5.0
|
||||||
|
BlackListHandler = 0x00F2, // updated 5.0
|
||||||
|
PlayerSearchHandler = 0x00F4, // updated 5.0
|
||||||
|
|
||||||
BlackListHandler = 0x00F0, // updated 4.5
|
LinkshellListHandler = 0x00FA, // updated 5.0
|
||||||
PlayerSearchHandler = 0x00E6, // updated 4.5
|
|
||||||
|
|
||||||
LinkshellListHandler = 0x00F8, // updated 4.5
|
|
||||||
|
|
||||||
MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5
|
MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5
|
||||||
MarketBoardRequestItemListings = 0x0103, // updated 4.5
|
MarketBoardRequestItemListings = 0x0103, // updated 4.5
|
||||||
|
@ -302,48 +311,48 @@ namespace Sapphire::Network::Packets
|
||||||
ReqCountdownCancel = 0x0134, // updated 4.5
|
ReqCountdownCancel = 0x0134, // updated 4.5
|
||||||
ClearWaymarks = 0x0135, // updated 4.5
|
ClearWaymarks = 0x0135, // updated 4.5
|
||||||
|
|
||||||
ZoneLineHandler = 0x0137, // updated 4.5
|
ZoneLineHandler = 0x0139, // updated 5.0
|
||||||
ClientTrigger = 0x0138, // updated 4.5
|
ClientTrigger = 0x013A, // updated 5.0
|
||||||
DiscoveryHandler = 0x0139, // updated 4.5
|
DiscoveryHandler = 0x013B, // updated 5.0
|
||||||
|
|
||||||
AddWaymark = 0x013A, // updated 4.5
|
AddWaymark = 0x013A, // updated 4.5
|
||||||
|
|
||||||
SkillHandler = 0x013B, // updated 4.5
|
SkillHandler = 0x013D, // updated 5.0
|
||||||
GMCommand1 = 0x013C, // updated 4.5
|
GMCommand1 = 0x013E, // updated 5.0
|
||||||
GMCommand2 = 0x013D, // updated 4.5
|
GMCommand2 = 0x013F, // updated 5.0
|
||||||
AoESkillHandler = 0x13E, // updated 4.5
|
AoESkillHandler = 0x140, // updated 5.0
|
||||||
|
|
||||||
UpdatePositionHandler = 0x013F, // updated 4.5
|
UpdatePositionHandler = 0x0141, // updated 5.0
|
||||||
UpdatePositionInstance = 0x0183, // updated 4.3
|
UpdatePositionInstance = 0x0183, // updated 4.3
|
||||||
|
|
||||||
InventoryModifyHandler = 0x0146, // updated 4.5 ( +4 )
|
InventoryModifyHandler = 0x0148, // updated 5.0
|
||||||
|
|
||||||
ReqPlaceHousingItem = 0x149, // updated 4.5
|
ReqPlaceHousingItem = 0x014B, // updated 5.0
|
||||||
|
BuildPresetHandler = 0x014F, // updated 5.0
|
||||||
|
|
||||||
BuildPresetHandler = 0x014E, // updated 4.5
|
TalkEventHandler = 0x0151, // updated 5.0
|
||||||
TalkEventHandler = 0x014F, // updated 4.5
|
EmoteEventHandler = 0x0152, // updated 5.0
|
||||||
EmoteEventHandler = 0x0150, // updated 4.5
|
WithinRangeEventHandler = 0x0153, // updated 5.0
|
||||||
WithinRangeEventHandler = 0x0151, // updated 4.5
|
OutOfRangeEventHandler = 0x0154, // updated 5.0
|
||||||
OutOfRangeEventHandler = 0x0152, // updated 4.5
|
EnterTeriEventHandler = 0x0155, // updated 5.0
|
||||||
EnterTeriEventHandler = 0x0153, // updated 4.5
|
ShopEventHandler = 0x0156, // updated 5.0
|
||||||
|
|
||||||
ShopEventHandler = 0x0155, // updated 4.5
|
ReturnEventHandler = 0x015A, // updated 5.0?
|
||||||
|
TradeReturnEventHandler = 0x015B, // updated 5.0?
|
||||||
ReturnEventHandler = 0x0158, // updated 4.5
|
|
||||||
TradeReturnEventHandler = 0x0159, // updated 4.5
|
|
||||||
|
|
||||||
LinkshellEventHandler = 0x016B, // updated 4.5
|
LinkshellEventHandler = 0x016B, // updated 4.5
|
||||||
LinkshellEventHandler1 = 0x016C, // updated 4.5
|
LinkshellEventHandler1 = 0x016C, // updated 4.5
|
||||||
|
|
||||||
LandRenameHandler = 0x0175, // updated 4.5
|
ReqEquipDisplayFlagsChange = 0x0175, // updated 5.0
|
||||||
HousingUpdateHouseGreeting = 0x0176, // updated 4.5
|
|
||||||
HousingUpdateObjectPosition = 0x0177, // updated 4.5
|
|
||||||
|
|
||||||
SetSharedEstateSettings = 0x017B, // updated 4.5
|
LandRenameHandler = 0x0177, // updated 5.0
|
||||||
|
HousingUpdateHouseGreeting = 0x0178, // updated 5.0
|
||||||
|
HousingUpdateObjectPosition = 0x0179, // updated 5.0
|
||||||
|
|
||||||
|
SetSharedEstateSettings = 0x017B, // updated 5.0
|
||||||
|
|
||||||
PerformNoteHandler = 0x029B, // updated 4.3
|
PerformNoteHandler = 0x029B, // updated 4.3
|
||||||
|
|
||||||
ReqEquipDisplayFlagsChange = 0x0173, // updated 4.5
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -835,6 +835,7 @@ namespace Sapphire::Network::Packets::Server
|
||||||
unsigned char race;
|
unsigned char race;
|
||||||
unsigned char tribe;
|
unsigned char tribe;
|
||||||
unsigned char gender;
|
unsigned char gender;
|
||||||
|
unsigned char unknown7A;
|
||||||
unsigned char currentJob;
|
unsigned char currentJob;
|
||||||
unsigned char currentClass;
|
unsigned char currentClass;
|
||||||
unsigned char deity;
|
unsigned char deity;
|
||||||
|
@ -842,7 +843,7 @@ namespace Sapphire::Network::Packets::Server
|
||||||
unsigned char namedayDay;
|
unsigned char namedayDay;
|
||||||
unsigned char cityState;
|
unsigned char cityState;
|
||||||
unsigned char homepoint;
|
unsigned char homepoint;
|
||||||
unsigned char unknown81;
|
unsigned char unknown82;
|
||||||
unsigned char petHotBar;
|
unsigned char petHotBar;
|
||||||
unsigned char companionRank;
|
unsigned char companionRank;
|
||||||
unsigned char companionStars;
|
unsigned char companionStars;
|
||||||
|
@ -856,16 +857,16 @@ namespace Sapphire::Network::Packets::Server
|
||||||
unsigned char relicBookId;
|
unsigned char relicBookId;
|
||||||
unsigned char unknown90[4];
|
unsigned char unknown90[4];
|
||||||
unsigned char craftingMasterMask;
|
unsigned char craftingMasterMask;
|
||||||
unsigned char unknown95[10];
|
unsigned char unknown95[9];
|
||||||
unsigned char unknown9F[2];
|
unsigned char unknown9F[2];
|
||||||
unsigned char unknownA1[3];
|
unsigned char unknownA1[3];
|
||||||
unsigned int exp[26];
|
unsigned int exp[28];
|
||||||
unsigned int unknown108;
|
unsigned int unknown108;
|
||||||
unsigned int pvpTotalExp;
|
unsigned int pvpTotalExp;
|
||||||
unsigned int unknownPvp110;
|
unsigned int unknownPvp110;
|
||||||
unsigned int pvpExp;
|
unsigned int pvpExp;
|
||||||
unsigned int pvpFrontlineOverallRanks[3];
|
unsigned int pvpFrontlineOverallRanks[3];
|
||||||
unsigned short levels[26];
|
unsigned short levels[28];
|
||||||
unsigned short unknown15C[9];
|
unsigned short unknown15C[9];
|
||||||
unsigned short u1;
|
unsigned short u1;
|
||||||
unsigned short u2;
|
unsigned short u2;
|
||||||
|
@ -880,32 +881,32 @@ namespace Sapphire::Network::Packets::Server
|
||||||
unsigned char companionAttRank;
|
unsigned char companionAttRank;
|
||||||
unsigned char companionHealRank;
|
unsigned char companionHealRank;
|
||||||
unsigned char u19[2];
|
unsigned char u19[2];
|
||||||
unsigned char mountGuideMask[17];
|
unsigned char mountGuideMask[19];
|
||||||
char name[32];
|
char name[32];
|
||||||
unsigned char unknownOword[16];
|
unsigned char unknownOword[16];
|
||||||
unsigned char unknownOw;
|
unsigned char unknownOw;
|
||||||
unsigned char unlockBitmask[64];
|
unsigned char unlockBitmask[64];
|
||||||
unsigned char aetheryte[17];
|
unsigned char aetheryte[21];
|
||||||
unsigned char discovery[421];
|
unsigned char discovery[445];
|
||||||
unsigned char howto[34];
|
unsigned char howto[34];
|
||||||
unsigned char minions[42];
|
unsigned char minions[45];
|
||||||
unsigned char chocoboTaxiMask[8];
|
unsigned char chocoboTaxiMask[10];
|
||||||
unsigned char watchedCutscenes[118];
|
unsigned char watchedCutscenes[124];
|
||||||
unsigned char companionBardingMask[9];
|
unsigned char companionBardingMask[10];
|
||||||
unsigned char companionEquippedHead;
|
unsigned char companionEquippedHead;
|
||||||
unsigned char companionEquippedBody;
|
unsigned char companionEquippedBody;
|
||||||
unsigned char companionEquippedLegs;
|
unsigned char companionEquippedLegs;
|
||||||
unsigned char unknown52A[4];
|
unsigned char unknown52A[4];
|
||||||
unsigned char unknownMask52E[11];
|
unsigned char unknownMask52E[11];
|
||||||
unsigned char fishingGuideMask[89];
|
unsigned char fishingGuideMask[105];
|
||||||
unsigned char fishingSpotVisited[25];
|
unsigned char fishingSpotVisited[31];
|
||||||
unsigned char unknown59A[15];
|
unsigned char unknown59A[27];
|
||||||
unsigned char unknown5A9[5];
|
unsigned char unknown5A9[7];
|
||||||
unsigned char beastRank[11];
|
unsigned char beastRank[11];
|
||||||
unsigned char unknownPvp5AB[11];
|
unsigned char unknownPvp5AB[11];
|
||||||
unsigned char unknown5B9[5];
|
unsigned char unknown5B9[5];
|
||||||
unsigned char unknown5B91;
|
|
||||||
unsigned char pose;
|
unsigned char pose;
|
||||||
|
unsigned char unknown5B91;
|
||||||
unsigned char challengeLogComplete[9];
|
unsigned char challengeLogComplete[9];
|
||||||
unsigned char weaponPose;
|
unsigned char weaponPose;
|
||||||
unsigned char unknownMask673[10];
|
unsigned char unknownMask673[10];
|
||||||
|
|
|
@ -453,8 +453,8 @@ void Lobby::GameConnection::generateEncryptionKey( uint32_t key, const std::stri
|
||||||
m_baseKey[ 2 ] = 0x34;
|
m_baseKey[ 2 ] = 0x34;
|
||||||
m_baseKey[ 3 ] = 0x12;
|
m_baseKey[ 3 ] = 0x12;
|
||||||
memcpy( m_baseKey + 0x04, &key, 4 );
|
memcpy( m_baseKey + 0x04, &key, 4 );
|
||||||
m_baseKey[ 8 ] = 0xC6;
|
m_baseKey[ 8 ] = 0x88;
|
||||||
m_baseKey[ 9 ] = 0x11;
|
m_baseKey[ 9 ] = 0x13;
|
||||||
memcpy( ( char* ) m_baseKey + 0x0C, keyPhrase.c_str(), keyPhrase.size() );
|
memcpy( ( char* ) m_baseKey + 0x0C, keyPhrase.c_str(), keyPhrase.size() );
|
||||||
Common::Util::md5( m_baseKey, m_encKey, 0x2C );
|
Common::Util::md5( m_baseKey, m_encKey, 0x2C );
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ Sapphire::Data::ExdDataGenerated g_exdData;
|
||||||
using namespace Sapphire;
|
using namespace Sapphire;
|
||||||
|
|
||||||
//const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" );
|
//const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" );
|
||||||
const std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" );
|
std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" );
|
||||||
|
|
||||||
std::string generateEnum( const std::string& exd, int8_t nameIndex, const std::string& type, bool useLang = true )
|
std::string generateEnum( const std::string& exd, int8_t nameIndex, const std::string& type, bool useLang = true )
|
||||||
{
|
{
|
||||||
|
@ -86,13 +86,20 @@ std::string generateEnum( const std::string& exd, int8_t nameIndex, const std::s
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main()
|
int main( int argc, char** argv )
|
||||||
{
|
{
|
||||||
|
|
||||||
Logger::init( "commongen" );
|
Logger::init( "commongen" );
|
||||||
|
|
||||||
|
|
||||||
Logger::info( "Setting up EXD data" );
|
Logger::info( "Setting up EXD data" );
|
||||||
|
|
||||||
|
if( argc > 1 )
|
||||||
|
{
|
||||||
|
Logger::info( "using dat path: {0}", std::string( argv[ 1 ] ) );
|
||||||
|
datLocation = std::string( argv[ 1 ] );
|
||||||
|
}
|
||||||
|
|
||||||
if( !g_exdData.init( datLocation ) )
|
if( !g_exdData.init( datLocation ) )
|
||||||
{
|
{
|
||||||
Logger::fatal( "Error setting up EXD data " );
|
Logger::fatal( "Error setting up EXD data " );
|
||||||
|
@ -107,8 +114,7 @@ int main()
|
||||||
"/* This file has been automatically generated.\n Changes will be lost upon regeneration.\n To change the content edit tools/exd_common_gen */\n";
|
"/* This file has been automatically generated.\n Changes will be lost upon regeneration.\n To change the content edit tools/exd_common_gen */\n";
|
||||||
|
|
||||||
|
|
||||||
result += "namespace Sapphire {\n";
|
result += "namespace Sapphire::Common {\n";
|
||||||
result += "namespace Common {\n";
|
|
||||||
result += generateEnum( "ActionCategory", 0, "uint8_t" );
|
result += generateEnum( "ActionCategory", 0, "uint8_t" );
|
||||||
result += generateEnum( "BaseParam", 1, "uint8_t" );
|
result += generateEnum( "BaseParam", 1, "uint8_t" );
|
||||||
result += generateEnum( "BeastReputationRank", 1, "uint8_t" );
|
result += generateEnum( "BeastReputationRank", 1, "uint8_t" );
|
||||||
|
@ -127,7 +133,6 @@ int main()
|
||||||
result += generateEnum( "Town", 0, "uint8_t" );
|
result += generateEnum( "Town", 0, "uint8_t" );
|
||||||
result += generateEnum( "Weather", 1, "uint8_t" );
|
result += generateEnum( "Weather", 1, "uint8_t" );
|
||||||
result += generateEnum( "HousingAppeal", 0, "uint8_t" );
|
result += generateEnum( "HousingAppeal", 0, "uint8_t" );
|
||||||
result += "}\n";
|
|
||||||
result += "}\n#endif\n";
|
result += "}\n#endif\n";
|
||||||
Logger::info( result );
|
Logger::info( result );
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -27,6 +27,9 @@ namespace fs = std::experimental::filesystem;
|
||||||
Sapphire::Data::ExdDataGenerated g_exdData;
|
Sapphire::Data::ExdDataGenerated g_exdData;
|
||||||
bool skipUnmapped = true;
|
bool skipUnmapped = true;
|
||||||
|
|
||||||
|
std::shared_ptr< xiv::dat::GameData > m_data;
|
||||||
|
std::shared_ptr< xiv::exd::ExdData > m_exd_data;
|
||||||
|
|
||||||
std::map< char, std::string > numberToStringMap
|
std::map< char, std::string > numberToStringMap
|
||||||
{
|
{
|
||||||
{ '0', "zero" },
|
{ '0', "zero" },
|
||||||
|
@ -83,7 +86,7 @@ std::string generateIdListGetter( const std::string& exd )
|
||||||
|
|
||||||
std::string generateSetDatAccessCall( const std::string& exd )
|
std::string generateSetDatAccessCall( const std::string& exd )
|
||||||
{
|
{
|
||||||
auto& cat = g_exdData.m_exd_data->get_category( exd );
|
auto& cat = m_exd_data->get_category( exd );
|
||||||
auto exh = cat.get_header();
|
auto exh = cat.get_header();
|
||||||
|
|
||||||
std::string lang = "xiv::exd::Language::none";
|
std::string lang = "xiv::exd::Language::none";
|
||||||
|
@ -110,7 +113,7 @@ std::map< std::string, std::string > nameTaken;
|
||||||
|
|
||||||
std::string generateStruct( const std::string& exd )
|
std::string generateStruct( const std::string& exd )
|
||||||
{
|
{
|
||||||
auto& cat = g_exdData.m_exd_data->get_category( exd );
|
auto& cat = m_exd_data->get_category( exd );
|
||||||
auto exh = cat.get_header();
|
auto exh = cat.get_header();
|
||||||
auto exhMem = exh.get_exh_members();
|
auto exhMem = exh.get_exh_members();
|
||||||
|
|
||||||
|
@ -261,7 +264,7 @@ std::string generateConstructorsDecl( const std::string& exd )
|
||||||
{
|
{
|
||||||
std::string result;
|
std::string result;
|
||||||
|
|
||||||
auto& cat = g_exdData.m_exd_data->get_category( exd );
|
auto& cat = m_exd_data->get_category( exd );
|
||||||
auto exh = cat.get_header();
|
auto exh = cat.get_header();
|
||||||
auto exhMem = exh.get_exh_members();
|
auto exhMem = exh.get_exh_members();
|
||||||
|
|
||||||
|
@ -355,11 +358,10 @@ int main( int argc, char** argv )
|
||||||
|
|
||||||
|
|
||||||
Logger::info( "Setting up EXD data" );
|
Logger::info( "Setting up EXD data" );
|
||||||
if( !g_exdData.init( datLocation ) )
|
|
||||||
{
|
m_data = std::make_shared< xiv::dat::GameData >( datLocation );
|
||||||
Logger::fatal( "Error setting up EXD data " );
|
m_exd_data = std::make_shared< xiv::exd::ExdData >( *m_data );
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
Logger::info( "Generating structs, this may take several minutes..." );
|
Logger::info( "Generating structs, this may take several minutes..." );
|
||||||
Logger::info( "Go grab a coffee..." );
|
Logger::info( "Go grab a coffee..." );
|
||||||
|
|
||||||
|
@ -385,6 +387,8 @@ int main( int argc, char** argv )
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto& cats = m_exd_data->get_cat_names();
|
||||||
|
|
||||||
uint32_t entryCount = 0;
|
uint32_t entryCount = 0;
|
||||||
for( auto& entry : fs::directory_iterator( "./Definitions/" ) )
|
for( auto& entry : fs::directory_iterator( "./Definitions/" ) )
|
||||||
{
|
{
|
||||||
|
@ -393,10 +397,14 @@ int main( int argc, char** argv )
|
||||||
if( path.extension() != ".json" )
|
if( path.extension() != ".json" )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
entryCount++;
|
|
||||||
|
|
||||||
auto name = path.stem().string();
|
auto name = path.stem().string();
|
||||||
|
|
||||||
|
if( std::find( cats.begin(), cats.end(), name ) == cats.end() )
|
||||||
|
{
|
||||||
|
Logger::warn( "have definition for {} but the sheet doesn't exist", name );
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
forwards += "struct " + name + ";\n";
|
forwards += "struct " + name + ";\n";
|
||||||
structDefs += generateStruct( name );
|
structDefs += generateStruct( name );
|
||||||
dataDecl += generateDatAccessDecl( name );
|
dataDecl += generateDatAccessDecl( name );
|
||||||
|
@ -405,6 +413,8 @@ int main( int argc, char** argv )
|
||||||
datAccCall += generateSetDatAccessCall( name );
|
datAccCall += generateSetDatAccessCall( name );
|
||||||
constructorDecl += generateConstructorsDecl( name );
|
constructorDecl += generateConstructorsDecl( name );
|
||||||
idListGetters += generateIdListGetter( name );
|
idListGetters += generateIdListGetter( name );
|
||||||
|
|
||||||
|
entryCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger::info( "Processed {} definition files, writing files...", entryCount );
|
Logger::info( "Processed {} definition files, writing files...", entryCount );
|
||||||
|
|
|
@ -466,7 +466,7 @@ bool Action::Action::primaryCostCheck( bool subtractCosts )
|
||||||
{
|
{
|
||||||
auto curMp = m_pSource->getMp();
|
auto curMp = m_pSource->getMp();
|
||||||
|
|
||||||
auto cost = Math::CalcStats::calculateMpCost( *m_pSource, m_primaryCost );
|
auto cost = m_primaryCost * 100;
|
||||||
|
|
||||||
if( curMp < cost )
|
if( curMp < cost )
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -695,7 +695,7 @@ void Sapphire::Entity::Player::gainExp( uint32_t amount )
|
||||||
|
|
||||||
queuePacket( makeActorControl143( getId(), GainExpMsg, static_cast< uint8_t >( getClass() ), amount ) );
|
queuePacket( makeActorControl143( getId(), GainExpMsg, static_cast< uint8_t >( getClass() ), amount ) );
|
||||||
|
|
||||||
if( level >= 70 ) // temporary fix for leveling over levelcap
|
if( level >= Common::MAX_PLAYER_LEVEL ) // temporary fix for leveling over levelcap
|
||||||
{
|
{
|
||||||
queuePacket( makeActorControl143( getId(), UpdateUiExp, static_cast< uint8_t >( getClass() ), amount ) );
|
queuePacket( makeActorControl143( getId(), UpdateUiExp, static_cast< uint8_t >( getClass() ), amount ) );
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
using namespace Sapphire::Math;
|
using namespace Sapphire::Math;
|
||||||
using namespace Sapphire::Entity;
|
using namespace Sapphire::Entity;
|
||||||
|
|
||||||
const int levelTable[71][7] =
|
const int levelTable[81][7] =
|
||||||
{
|
{
|
||||||
// PIE, MP, MAIN,SUB,DIV,HP,ELMT,THREAT
|
// PIE, MP, MAIN,SUB,DIV,HP,ELMT,THREAT
|
||||||
{ 1, 1, 1, 1, 1, 1, 1 },
|
{ 1, 1, 1, 1, 1, 1, 1 },
|
||||||
|
@ -88,7 +88,19 @@ const int levelTable[71][7] =
|
||||||
{ 830, 10560, 268, 361, 1643, 3300, 292 },
|
{ 830, 10560, 268, 361, 1643, 3300, 292 },
|
||||||
{ 860, 10980, 276, 362, 1802, 3400, 293 },
|
{ 860, 10980, 276, 362, 1802, 3400, 293 },
|
||||||
{ 890, 11450, 284, 363, 1978, 3500, 294 },
|
{ 890, 11450, 284, 363, 1978, 3500, 294 },
|
||||||
{ 890, 12000, 292, 364, 2170, 3600, 295 }
|
{ 890, 12000, 292, 364, 2170, 3600, 295 },
|
||||||
|
|
||||||
|
// todo: add proper shbr values
|
||||||
|
{ 890, 12000, 292, 364, 2170, 3600, 295 },
|
||||||
|
{ 890, 12000, 292, 364, 2170, 3600, 295 },
|
||||||
|
{ 890, 12000, 292, 364, 2170, 3600, 295 },
|
||||||
|
{ 890, 12000, 292, 364, 2170, 3600, 295 },
|
||||||
|
{ 890, 12000, 292, 364, 2170, 3600, 295 },
|
||||||
|
{ 890, 12000, 292, 364, 2170, 3600, 295 },
|
||||||
|
{ 890, 12000, 292, 364, 2170, 3600, 295 },
|
||||||
|
{ 890, 12000, 292, 364, 2170, 3600, 295 },
|
||||||
|
{ 890, 12000, 292, 364, 2170, 3600, 295 },
|
||||||
|
{ 890, 12000, 292, 364, 2170, 3600, 295 },
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -115,8 +127,8 @@ float CalcStats::calculateBaseStat( const Chara& chara )
|
||||||
float base = 0.0f;
|
float base = 0.0f;
|
||||||
uint8_t level = chara.getLevel();
|
uint8_t level = chara.getLevel();
|
||||||
|
|
||||||
if( level > 70 )
|
if( level > Common::MAX_PLAYER_LEVEL )
|
||||||
level = 70;
|
level = Common::MAX_PLAYER_LEVEL;
|
||||||
|
|
||||||
return static_cast< float >( levelTable[level][2] );
|
return static_cast< float >( levelTable[level][2] );
|
||||||
}
|
}
|
||||||
|
@ -187,86 +199,6 @@ uint32_t CalcStats::calculateMaxMp( PlayerPtr pPlayer, Sapphire::FrameworkPtr pF
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t CalcStats::calculateMpCost( const Sapphire::Entity::Chara& chara, uint16_t baseCost )
|
|
||||||
{
|
|
||||||
auto level = chara.getLevel();
|
|
||||||
|
|
||||||
// each level range is 1-10, 11-20, 21-30, ... therefore:
|
|
||||||
// level 50 should be in the 4th group, not the 5t
|
|
||||||
// dividing by 10 on the border will break this unless we subtract 1
|
|
||||||
auto levelGroup = std::max< uint8_t >( level - 1, 1 ) / 10;
|
|
||||||
|
|
||||||
float cost = baseCost;
|
|
||||||
|
|
||||||
// thanks to andrew for helping me figure this shit out
|
|
||||||
// played with this some more and it seems to be accurate for everything i've tried
|
|
||||||
switch( levelGroup )
|
|
||||||
{
|
|
||||||
// level 1-10
|
|
||||||
case 0:
|
|
||||||
{
|
|
||||||
// r^2 = 0.9999
|
|
||||||
cost = 0.0952f * level + 0.9467f;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// level 11-20
|
|
||||||
case 1:
|
|
||||||
{
|
|
||||||
// r^2 = 1
|
|
||||||
cost = 0.19f * level;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// level 21-30
|
|
||||||
case 2:
|
|
||||||
{
|
|
||||||
// r^2 = 1
|
|
||||||
cost = 0.38f * level - 3.8f;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// level 31-40
|
|
||||||
case 3:
|
|
||||||
{
|
|
||||||
// r^2 = 1
|
|
||||||
cost = 0.6652f * level - 12.358f;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// level 41-50
|
|
||||||
case 4:
|
|
||||||
{
|
|
||||||
// r^2 = 1
|
|
||||||
cost = 1.2352f * level - 35.159f;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// level 51-60
|
|
||||||
case 5:
|
|
||||||
{
|
|
||||||
// r^2 = 1
|
|
||||||
cost = 0.0654f * std::exp( 0.1201f * level );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// level 61-70
|
|
||||||
case 6:
|
|
||||||
{
|
|
||||||
// r^2 = 0.9998
|
|
||||||
cost = 0.2313f * ( level * level ) - 26.98f * level + 875.21f;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return static_cast< uint16_t >( std::round( cost * baseCost ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
float CalcStats::blockProbability( const Chara& chara )
|
float CalcStats::blockProbability( const Chara& chara )
|
||||||
{
|
{
|
||||||
auto level = chara.getLevel();
|
auto level = chara.getLevel();
|
||||||
|
|
|
@ -19,15 +19,6 @@ namespace Sapphire::Math
|
||||||
|
|
||||||
static uint32_t calculateMaxHp( Sapphire::Entity::PlayerPtr pPlayer, FrameworkPtr pFw );
|
static uint32_t calculateMaxHp( Sapphire::Entity::PlayerPtr pPlayer, FrameworkPtr pFw );
|
||||||
|
|
||||||
/*!
|
|
||||||
* @brief Calculates the MP cost of a spell given its base cost
|
|
||||||
*
|
|
||||||
* @param chara The Chara that is casting the action
|
|
||||||
* @param baseCost The action cost
|
|
||||||
* @return The total MP to be consumed by a successful cast
|
|
||||||
*/
|
|
||||||
static uint16_t calculateMpCost( const Sapphire::Entity::Chara& chara, uint16_t baseCost );
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* @brief Calculates the probability of a block happening
|
* @brief Calculates the probability of a block happening
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -71,8 +71,8 @@ namespace Sapphire::Network::Packets::Server
|
||||||
memcpy( m_data.howto, player.getHowToArray(), sizeof( m_data.howto ) );
|
memcpy( m_data.howto, player.getHowToArray(), sizeof( m_data.howto ) );
|
||||||
|
|
||||||
// possibly max level or current level
|
// possibly max level or current level
|
||||||
m_data.maxLevel = 0x46;
|
m_data.maxLevel = Common::MAX_PLAYER_LEVEL;
|
||||||
m_data.expansion = 2;
|
m_data.expansion = Common::CURRENT_EXPANSION_ID;
|
||||||
|
|
||||||
// df stuff
|
// df stuff
|
||||||
// todo: actually do this properly
|
// todo: actually do this properly
|
||||||
|
|
Loading…
Add table
Reference in a new issue