diff options
author | Traesh <nicolas.queniro@gmail.com> | 2024-10-06 14:36:32 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-10-06 14:36:32 +0200 |
commit | adbe74a1a466b3af257b5c04a0e6c7a6d28c51ac (patch) | |
tree | 5e52a991c91c41cbf335330fb6889e66f8d396b2 | |
parent | 81276097648abe484d720c8ee9e3e77173825c8c (diff) |
Core/DataStores: Load FlightCapability.db2
-rw-r--r-- | sql/updates/hotfixes/master/2024_10_06_00_hotfixes.sql | 34 | ||||
-rw-r--r-- | src/server/database/Database/Implementation/HotfixDatabase.cpp | 8 | ||||
-rw-r--r-- | src/server/database/Database/Implementation/HotfixDatabase.h | 3 | ||||
-rw-r--r-- | src/server/game/DataStores/DB2LoadInfo.h | 35 | ||||
-rw-r--r-- | src/server/game/DataStores/DB2Stores.cpp | 2 | ||||
-rw-r--r-- | src/server/game/DataStores/DB2Stores.h | 1 | ||||
-rw-r--r-- | src/server/game/DataStores/DB2Structure.h | 30 |
7 files changed, 113 insertions, 0 deletions
diff --git a/sql/updates/hotfixes/master/2024_10_06_00_hotfixes.sql b/sql/updates/hotfixes/master/2024_10_06_00_hotfixes.sql new file mode 100644 index 00000000000..9e841bf32ad --- /dev/null +++ b/sql/updates/hotfixes/master/2024_10_06_00_hotfixes.sql @@ -0,0 +1,34 @@ +-- +-- Table structure for table `flight_capability` +-- +DROP TABLE IF EXISTS `flight_capability`; +CREATE TABLE `flight_capability` ( + `ID` int unsigned NOT NULL DEFAULT '0', + `AirFriction` float NOT NULL DEFAULT '0', + `MaxVel` float NOT NULL DEFAULT '0', + `Unknown1000_2` float NOT NULL DEFAULT '0', + `DoubleJumpVelMod` float NOT NULL DEFAULT '0', + `LiftCoefficient` float NOT NULL DEFAULT '0', + `GlideStartMinHeight` float NOT NULL DEFAULT '0', + `AddImpulseMaxSpeed` float NOT NULL DEFAULT '0', + `BankingRateMin` float NOT NULL DEFAULT '0', + `BankingRateMax` float NOT NULL DEFAULT '0', + `PitchingRateDownMin` float NOT NULL DEFAULT '0', + `PitchingRateDownMax` float NOT NULL DEFAULT '0', + `PitchingRateUpMin` float NOT NULL DEFAULT '0', + `PitchingRateUpMax` float NOT NULL DEFAULT '0', + `TurnVelocityThresholdMin` float NOT NULL DEFAULT '0', + `TurnVelocityThresholdMax` float NOT NULL DEFAULT '0', + `SurfaceFriction` float NOT NULL DEFAULT '0', + `OverMaxDeceleration` float NOT NULL DEFAULT '0', + `Unknown1000_17` float NOT NULL DEFAULT '0', + `Unknown1000_18` float NOT NULL DEFAULT '0', + `Unknown1000_19` float NOT NULL DEFAULT '0', + `Unknown1000_20` float NOT NULL DEFAULT '0', + `Unknown1000_21` float NOT NULL DEFAULT '0', + `LaunchSpeedCoefficient` float NOT NULL DEFAULT '0', + `VigorRegenMaxVelCoefficient` float NOT NULL DEFAULT '0', + `SpellID` int NOT NULL DEFAULT '0', + `VerifiedBuild` int NOT NULL DEFAULT '0', + PRIMARY KEY (`ID`,`VerifiedBuild`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; diff --git a/src/server/database/Database/Implementation/HotfixDatabase.cpp b/src/server/database/Database/Implementation/HotfixDatabase.cpp index 712c1c4f08e..30febfb2746 100644 --- a/src/server/database/Database/Implementation/HotfixDatabase.cpp +++ b/src/server/database/Database/Implementation/HotfixDatabase.cpp @@ -635,6 +635,14 @@ void HotfixDatabaseConnection::DoPrepareStatements() " FROM faction_template WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_FACTION_TEMPLATE, "SELECT MAX(ID) + 1 FROM faction_template", CONNECTION_SYNCH); + // FlightCapability.db2 + PrepareStatement(HOTFIX_SEL_FLIGHT_CAPABILITY, "SELECT ID, AirFriction, MaxVel, Unknown1000_2, DoubleJumpVelMod, LiftCoefficient, " + "GlideStartMinHeight, AddImpulseMaxSpeed, BankingRateMin, BankingRateMax, PitchingRateDownMin, PitchingRateDownMax, PitchingRateUpMin, " + "PitchingRateUpMax, TurnVelocityThresholdMin, TurnVelocityThresholdMax, SurfaceFriction, OverMaxDeceleration, Unknown1000_17, Unknown1000_18, " + "Unknown1000_19, Unknown1000_20, Unknown1000_21, LaunchSpeedCoefficient, VigorRegenMaxVelCoefficient, SpellID FROM flight_capability" + " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PREPARE_MAX_ID_STMT(HOTFIX_SEL_FLIGHT_CAPABILITY, "SELECT MAX(ID) + 1 FROM flight_capability", CONNECTION_SYNCH); + // FriendshipRepReaction.db2 PrepareStatement(HOTFIX_SEL_FRIENDSHIP_REP_REACTION, "SELECT ID, Reaction, FriendshipRepID, ReactionThreshold, OverrideColor" " FROM friendship_rep_reaction WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); diff --git a/src/server/database/Database/Implementation/HotfixDatabase.h b/src/server/database/Database/Implementation/HotfixDatabase.h index 7dc81074692..41732618ffb 100644 --- a/src/server/database/Database/Implementation/HotfixDatabase.h +++ b/src/server/database/Database/Implementation/HotfixDatabase.h @@ -364,6 +364,9 @@ enum HotfixDatabaseStatements : uint32 HOTFIX_SEL_FACTION_TEMPLATE, HOTFIX_SEL_FACTION_TEMPLATE_MAX_ID, + HOTFIX_SEL_FLIGHT_CAPABILITY, + HOTFIX_SEL_FLIGHT_CAPABILITY_MAX_ID, + HOTFIX_SEL_FRIENDSHIP_REP_REACTION, HOTFIX_SEL_FRIENDSHIP_REP_REACTION_MAX_ID, HOTFIX_SEL_FRIENDSHIP_REP_REACTION_LOCALE, diff --git a/src/server/game/DataStores/DB2LoadInfo.h b/src/server/game/DataStores/DB2LoadInfo.h index b40b83bd88c..02bb483aa5e 100644 --- a/src/server/game/DataStores/DB2LoadInfo.h +++ b/src/server/game/DataStores/DB2LoadInfo.h @@ -1923,6 +1923,41 @@ struct FactionTemplateLoadInfo static constexpr DB2LoadInfo Instance{ Fields, 22, &FactionTemplateMeta::Instance, HOTFIX_SEL_FACTION_TEMPLATE }; }; +struct FlightCapabilityLoadInfo +{ + static constexpr DB2FieldMeta Fields[26] = + { + { false, FT_INT, "ID" }, + { false, FT_FLOAT, "AirFriction" }, + { false, FT_FLOAT, "MaxVel" }, + { false, FT_FLOAT, "Unknown1000_2" }, + { false, FT_FLOAT, "DoubleJumpVelMod" }, + { false, FT_FLOAT, "LiftCoefficient" }, + { false, FT_FLOAT, "GlideStartMinHeight" }, + { false, FT_FLOAT, "AddImpulseMaxSpeed" }, + { false, FT_FLOAT, "BankingRateMin" }, + { false, FT_FLOAT, "BankingRateMax" }, + { false, FT_FLOAT, "PitchingRateDownMin" }, + { false, FT_FLOAT, "PitchingRateDownMax" }, + { false, FT_FLOAT, "PitchingRateUpMin" }, + { false, FT_FLOAT, "PitchingRateUpMax" }, + { false, FT_FLOAT, "TurnVelocityThresholdMin" }, + { false, FT_FLOAT, "TurnVelocityThresholdMax" }, + { false, FT_FLOAT, "SurfaceFriction" }, + { false, FT_FLOAT, "OverMaxDeceleration" }, + { false, FT_FLOAT, "Unknown1000_17" }, + { false, FT_FLOAT, "Unknown1000_18" }, + { false, FT_FLOAT, "Unknown1000_19" }, + { false, FT_FLOAT, "Unknown1000_20" }, + { false, FT_FLOAT, "Unknown1000_21" }, + { false, FT_FLOAT, "LaunchSpeedCoefficient" }, + { false, FT_FLOAT, "VigorRegenMaxVelCoefficient" }, + { true, FT_INT, "SpellID" }, + }; + + static constexpr DB2LoadInfo Instance{ Fields, 26, &FlightCapabilityMeta::Instance, HOTFIX_SEL_FLIGHT_CAPABILITY }; +}; + struct FriendshipRepReactionLoadInfo { static constexpr DB2FieldMeta Fields[5] = diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp index d4916949745..6791338274e 100644 --- a/src/server/game/DataStores/DB2Stores.cpp +++ b/src/server/game/DataStores/DB2Stores.cpp @@ -141,6 +141,7 @@ DB2Storage<ExpectedStatEntry> sExpectedStatStore("ExpectedStat DB2Storage<ExpectedStatModEntry> sExpectedStatModStore("ExpectedStatMod.db2", &ExpectedStatModLoadInfo::Instance); DB2Storage<FactionEntry> sFactionStore("Faction.db2", &FactionLoadInfo::Instance); DB2Storage<FactionTemplateEntry> sFactionTemplateStore("FactionTemplate.db2", &FactionTemplateLoadInfo::Instance); +DB2Storage<FlightCapabilityEntry> sFlightCapabilityStore("FlightCapability.db2", &FlightCapabilityLoadInfo::Instance); DB2Storage<FriendshipRepReactionEntry> sFriendshipRepReactionStore("FriendshipRepReaction.db2", &FriendshipRepReactionLoadInfo::Instance); DB2Storage<FriendshipReputationEntry> sFriendshipReputationStore("FriendshipReputation.db2", &FriendshipReputationLoadInfo::Instance); DB2Storage<GameObjectArtKitEntry> sGameObjectArtKitStore("GameObjectArtKit.db2", &GameobjectArtKitLoadInfo::Instance); @@ -753,6 +754,7 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul LOAD_DB2(sExpectedStatModStore); LOAD_DB2(sFactionStore); LOAD_DB2(sFactionTemplateStore); + LOAD_DB2(sFlightCapabilityStore); LOAD_DB2(sFriendshipRepReactionStore); LOAD_DB2(sFriendshipReputationStore); LOAD_DB2(sGameObjectsStore); diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h index 9a5d9c2d3cc..12353f77ffc 100644 --- a/src/server/game/DataStores/DB2Stores.h +++ b/src/server/game/DataStores/DB2Stores.h @@ -108,6 +108,7 @@ TC_GAME_API extern DB2Storage<EmotesEntry> sEmotesStore TC_GAME_API extern DB2Storage<EmotesTextEntry> sEmotesTextStore; TC_GAME_API extern DB2Storage<FactionEntry> sFactionStore; TC_GAME_API extern DB2Storage<FactionTemplateEntry> sFactionTemplateStore; +TC_GAME_API extern DB2Storage<FlightCapabilityEntry> sFlightCapabilityStore; TC_GAME_API extern DB2Storage<FriendshipRepReactionEntry> sFriendshipRepReactionStore; TC_GAME_API extern DB2Storage<FriendshipReputationEntry> sFriendshipReputationStore; TC_GAME_API extern DB2Storage<GameObjectArtKitEntry> sGameObjectArtKitStore; diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h index b4546e48886..c06178d58a0 100644 --- a/src/server/game/DataStores/DB2Structure.h +++ b/src/server/game/DataStores/DB2Structure.h @@ -1679,6 +1679,36 @@ struct FactionTemplateEntry bool IsContestedGuardFaction() const { return (Flags & FACTION_TEMPLATE_FLAG_CONTESTED_GUARD) != 0; } }; +struct FlightCapabilityEntry +{ + uint32 ID; + float AirFriction; + float MaxVel; + float Unknown1000_2; + float DoubleJumpVelMod; + float LiftCoefficient; + float GlideStartMinHeight; + float AddImpulseMaxSpeed; + float BankingRateMin; + float BankingRateMax; + float PitchingRateDownMin; + float PitchingRateDownMax; + float PitchingRateUpMin; + float PitchingRateUpMax; + float TurnVelocityThresholdMin; + float TurnVelocityThresholdMax; + float SurfaceFriction; + float OverMaxDeceleration; + float Unknown1000_17; + float Unknown1000_18; + float Unknown1000_19; + float Unknown1000_20; + float Unknown1000_21; + float LaunchSpeedCoefficient; + float VigorRegenMaxVelCoefficient; + int32 SpellID; +}; + struct FriendshipRepReactionEntry { uint32 ID; |