mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-11 15:58:36 +00:00
[Base Data] Remove from shared memory and simplify (#4045)
* [Base Data] Remove from shared memory and simplify - Removes Base Data loading from shared memory and puts it into zone. - Changes type of `level` and `class` to `uint8_t` from `uint32_t` for consistency since we're renaming fields here anyway. - Renames `unk1` to `hp_regen` in `base_data` table. - Renames `unk2` to `end_regen` in `base_data` table. - These changed fields were already mapped, we just hadn't renamed them for whatever reason. - Regenerates Base Data repository. - Adds `#reload base_data` to reload base data in real time. * Cleanup * Update shareddb.h * Cleanup. * Update shareddb.cpp * Update main.cpp
This commit is contained in:
+19
-20
@@ -237,9 +237,10 @@ int64 Client::CalcHPRegen(bool bCombat)
|
||||
item_regen += aabonuses.HPRegen;
|
||||
|
||||
int64 base = 0;
|
||||
auto base_data = database.GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data)
|
||||
base = static_cast<int>(base_data->hp_regen);
|
||||
auto base_data = zone->GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data.level == GetLevel()) {
|
||||
base = static_cast<int>(base_data.hp_regen);
|
||||
}
|
||||
|
||||
auto level = GetLevel();
|
||||
bool skip_innate = false;
|
||||
@@ -486,9 +487,9 @@ int64 Client::CalcBaseHP()
|
||||
stats += 255;
|
||||
}
|
||||
base_hp = 5;
|
||||
auto base_data = database.GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data) {
|
||||
base_hp += base_data->base_hp + (base_data->hp_factor * stats);
|
||||
auto base_data = zone->GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data.level == GetLevel()) {
|
||||
base_hp += base_data.hp + (base_data.hp_fac * stats);
|
||||
base_hp += itembonuses.heroic_max_hp;
|
||||
}
|
||||
}
|
||||
@@ -575,10 +576,9 @@ int64 Client::CalcBaseMana()
|
||||
}
|
||||
ConvertedWisInt = (3 * over200 - 300) / 2 + over200;
|
||||
}
|
||||
auto base_data = database.GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data) {
|
||||
max_m = base_data->base_mana +
|
||||
(ConvertedWisInt * base_data->mana_factor) + itembonuses.heroic_max_mana;
|
||||
auto base_data = zone->GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data.level == GetLevel()) {
|
||||
max_m = base_data.mana + (ConvertedWisInt * base_data.mana_fac) + itembonuses.heroic_max_mana;
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -608,10 +608,9 @@ int64 Client::CalcBaseMana()
|
||||
}
|
||||
ConvertedWisInt = (3 * over200 - 300) / 2 + over200;
|
||||
}
|
||||
auto base_data = database.GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data) {
|
||||
max_m = base_data->base_mana +
|
||||
(ConvertedWisInt * base_data->mana_factor) + itembonuses.heroic_max_mana;
|
||||
auto base_data = zone->GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data.level == GetLevel()) {
|
||||
max_m = base_data.mana + (ConvertedWisInt * base_data.mana_fac) + itembonuses.heroic_max_mana;
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -1639,9 +1638,9 @@ int64 Client::CalcBaseEndurance()
|
||||
else if (stats > 100.0f) {
|
||||
stats = 2.5f * (stats - 100.0f) + 100.0f;
|
||||
}
|
||||
auto base_data = database.GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data) {
|
||||
base_end = base_data->base_end + itembonuses.heroic_max_end + (base_data->endurance_factor * static_cast<int>(stats));
|
||||
auto base_data = zone->GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data.level == GetLevel()) {
|
||||
base_end = base_data.end + itembonuses.heroic_max_end + (base_data.end_fac * static_cast<int>(stats));
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -1676,9 +1675,9 @@ int64 Client::CalcEnduranceRegen(bool bCombat)
|
||||
{
|
||||
int64 base = 0;
|
||||
if (!IsStarved()) {
|
||||
auto base_data = database.GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data) {
|
||||
base = static_cast<int>(base_data->end_regen);
|
||||
auto base_data = zone->GetBaseData(GetLevel(), GetClass());
|
||||
if (base_data.level == GetLevel()) {
|
||||
base = static_cast<int>(base_data.end_regen);
|
||||
if (!auto_attack && base > 0)
|
||||
base += base / 2;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user