aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/DataStores
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2020-06-13 00:30:32 +0200
committerShauren <shauren.trinity@gmail.com>2020-06-13 00:30:32 +0200
commit6533de31005fc9680d9f2b61a4d8ea4958fc8edc (patch)
treea83c4ac3ca242cb2c24c553c7bcd2a41cc0ad110 /src/server/game/DataStores
parent2493d88a7224d829bd3b893f637cc255b2a751dc (diff)
Core/Items: Implemented corruption and corruption resistance stats
Diffstat (limited to 'src/server/game/DataStores')
-rw-r--r--src/server/game/DataStores/DB2LoadInfo.h17
-rw-r--r--src/server/game/DataStores/DB2Stores.cpp4
-rw-r--r--src/server/game/DataStores/DB2Stores.h1
-rw-r--r--src/server/game/DataStores/DB2Structure.h9
-rw-r--r--src/server/game/DataStores/DBCEnums.h9
-rw-r--r--src/server/game/DataStores/GameTables.h4
6 files changed, 40 insertions, 4 deletions
diff --git a/src/server/game/DataStores/DB2LoadInfo.h b/src/server/game/DataStores/DB2LoadInfo.h
index f14772bf9ab..9fa79edfdbd 100644
--- a/src/server/game/DataStores/DB2LoadInfo.h
+++ b/src/server/game/DataStores/DB2LoadInfo.h
@@ -1199,6 +1199,23 @@ struct ConversationLineLoadInfo
}
};
+struct CorruptionEffectsLoadInfo
+{
+ static DB2LoadInfo const* Instance()
+ {
+ static DB2FieldMeta const fields[] =
+ {
+ { false, FT_INT, "ID" },
+ { false, FT_FLOAT, "MinCorruption" },
+ { true, FT_INT, "Aura" },
+ { true, FT_INT, "PlayerConditionID" },
+ { true, FT_INT, "Flags" },
+ };
+ static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CorruptionEffectsMeta::Instance(), HOTFIX_SEL_CORRUPTION_EFFECTS);
+ return &loadInfo;
+ }
+};
+
struct CreatureDisplayInfoLoadInfo
{
static DB2LoadInfo const* Instance()
diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp
index f40a96a8461..3adc0394627 100644
--- a/src/server/game/DataStores/DB2Stores.cpp
+++ b/src/server/game/DataStores/DB2Stores.cpp
@@ -93,6 +93,7 @@ DB2Storage<CinematicSequencesEntry> sCinematicSequencesStore("Cinema
DB2Storage<ContentTuningEntry> sContentTuningStore("ContentTuning.db2", ContentTuningLoadInfo::Instance());
DB2Storage<ContentTuningXExpectedEntry> sContentTuningXExpectedStore("ContentTuningXExpected.db2", ContentTuningXExpectedLoadInfo::Instance());
DB2Storage<ConversationLineEntry> sConversationLineStore("ConversationLine.db2", ConversationLineLoadInfo::Instance());
+DB2Storage<CorruptionEffectsEntry> sCorruptionEffectsStore("CorruptionEffects.db2", CorruptionEffectsLoadInfo::Instance());
DB2Storage<CreatureDisplayInfoEntry> sCreatureDisplayInfoStore("CreatureDisplayInfo.db2", CreatureDisplayInfoLoadInfo::Instance());
DB2Storage<CreatureDisplayInfoExtraEntry> sCreatureDisplayInfoExtraStore("CreatureDisplayInfoExtra.db2", CreatureDisplayInfoExtraLoadInfo::Instance());
DB2Storage<CreatureFamilyEntry> sCreatureFamilyStore("CreatureFamily.db2", CreatureFamilyLoadInfo::Instance());
@@ -361,7 +362,6 @@ namespace
};
StorageMap _stores;
- uint32 _hotfixCount = 0;
DB2Manager::HotfixContainer _hotfixData;
std::map<std::pair<uint32 /*tableHash*/, int32 /*recordId*/>, std::vector<uint8>> _hotfixBlob;
@@ -583,6 +583,7 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
LOAD_DB2(sContentTuningStore);
LOAD_DB2(sContentTuningXExpectedStore);
LOAD_DB2(sConversationLineStore);
+ LOAD_DB2(sCorruptionEffectsStore);
LOAD_DB2(sCreatureDisplayInfoStore);
LOAD_DB2(sCreatureDisplayInfoExtraStore);
LOAD_DB2(sCreatureFamilyStore);
@@ -1398,7 +1399,6 @@ void DB2Manager::LoadHotfixData()
hotfixRecord.RecordID = recordId;
hotfixRecord.HotfixID = id;
_hotfixData.insert(hotfixRecord);
- ++_hotfixCount;
deletedRecords[std::make_pair(tableHash, recordId)] = deleted;
++count;
} while (result->NextRow());
diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h
index 843b1b0479f..7d60c184a9d 100644
--- a/src/server/game/DataStores/DB2Stores.h
+++ b/src/server/game/DataStores/DB2Stores.h
@@ -74,6 +74,7 @@ TC_GAME_API extern DB2Storage<CinematicCameraEntry> sCinematicCa
TC_GAME_API extern DB2Storage<CinematicSequencesEntry> sCinematicSequencesStore;
TC_GAME_API extern DB2Storage<ContentTuningEntry> sContentTuningStore;
TC_GAME_API extern DB2Storage<ConversationLineEntry> sConversationLineStore;
+TC_GAME_API extern DB2Storage<CorruptionEffectsEntry> sCorruptionEffectsStore;
TC_GAME_API extern DB2Storage<CreatureDisplayInfoEntry> sCreatureDisplayInfoStore;
TC_GAME_API extern DB2Storage<CreatureDisplayInfoExtraEntry> sCreatureDisplayInfoExtraStore;
TC_GAME_API extern DB2Storage<CreatureFamilyEntry> sCreatureFamilyStore;
diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h
index 2a861ad2d2c..329903c5e56 100644
--- a/src/server/game/DataStores/DB2Structure.h
+++ b/src/server/game/DataStores/DB2Structure.h
@@ -689,6 +689,15 @@ struct ConversationLineEntry
uint8 EndAnimation;
};
+struct CorruptionEffectsEntry
+{
+ uint32 ID;
+ float MinCorruption;
+ int32 Aura;
+ int32 PlayerConditionID;
+ int32 Flags;
+};
+
struct CreatureDisplayInfoEntry
{
uint32 ID;
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index dac3557f501..bb1003cd03a 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -19,6 +19,7 @@
#define DBCENUMS_H
#include "Define.h"
+#include "EnumFlag.h"
#include <array>
#pragma pack(push, 1)
@@ -206,6 +207,14 @@ enum ChrSpecializationFlag
CHR_SPECIALIZATION_FLAG_RECOMMENDED = 0x40,
};
+enum class CorruptionEffectsFlag
+{
+ None = 0,
+ Disabled = 0x1
+};
+
+DEFINE_ENUM_FLAG(CorruptionEffectsFlag);
+
enum CriteriaCondition
{
CRITERIA_CONDITION_NONE = 0,
diff --git a/src/server/game/DataStores/GameTables.h b/src/server/game/DataStores/GameTables.h
index 16f5f26dae2..ea14c64c56b 100644
--- a/src/server/game/DataStores/GameTables.h
+++ b/src/server/game/DataStores/GameTables.h
@@ -69,8 +69,8 @@ struct GtCombatRatingsEntry
float CritMelee = 0.0f;
float CritRanged = 0.0f;
float CritSpell = 0.0f;
- float MultiStrike = 0.0f;
- float Readiness = 0.0f;
+ float Corruption = 0.0f;
+ float CorruptionResistance = 0.0f;
float Speed = 0.0f;
float ResilienceCritTaken = 0.0f;
float ResiliencePlayerDamage = 0.0f;