aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/hotfixes/master/2024_10_06_00_hotfixes.sql34
-rw-r--r--src/server/database/Database/Implementation/HotfixDatabase.cpp8
-rw-r--r--src/server/database/Database/Implementation/HotfixDatabase.h3
-rw-r--r--src/server/game/DataStores/DB2LoadInfo.h35
-rw-r--r--src/server/game/DataStores/DB2Stores.cpp2
-rw-r--r--src/server/game/DataStores/DB2Stores.h1
-rw-r--r--src/server/game/DataStores/DB2Structure.h30
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;