[Feature] Implement Big Bags (#4606)

* [Feature] Implement "Big Bags"

* Update worlddb.cpp

* Update shareddb.cpp

* Cleanup

* Cleanup

* Add slot ID conversions

* Update shareddb.cpp

* Update database_update_manifest.cpp

* Update database_update_manifest.cpp

* Update database_update_manifest.cpp

* Update database_update_manifest.cpp

* Update ruletypes.h

* Update database_update_manifest.cpp

* Inventory load fix

* Wrap Handle_OP_MoveItem in a transaction, taking 200+ queries from 200ms+ to 5-20ms

* Speed up lazy loading

* [Performance] Significantly Improve Client Network Resends

* Improve resend algorithm to be exact about when to resend

* Manifest merge

* Update database_update_manifest.cpp

* Post merge

* Add forced interactive update

---------

Co-authored-by: Akkadius <akkadius1@gmail.com>
This commit is contained in:
Alex King
2025-02-03 17:14:41 -05:00
committed by GitHub
parent e3ab90695f
commit d1d6db3a09
25 changed files with 2069 additions and 1655 deletions
+4 -4
View File
@@ -9210,7 +9210,7 @@ void Client::SetPrimaryWeaponOrnamentation(uint32 model_id)
auto l = InventoryRepository::GetWhere(
database,
fmt::format(
"`charid` = {} AND `slotid` = {}",
"`character_id` = {} AND `slot_id` = {}",
character_id,
EQ::invslot::slotPrimary
)
@@ -9222,7 +9222,7 @@ void Client::SetPrimaryWeaponOrnamentation(uint32 model_id)
auto e = l.front();
e.ornamentidfile = model_id;
e.ornament_idfile = model_id;
const int updated = InventoryRepository::UpdateOne(database, e);
@@ -9243,7 +9243,7 @@ void Client::SetSecondaryWeaponOrnamentation(uint32 model_id)
auto l = InventoryRepository::GetWhere(
database,
fmt::format(
"`charid` = {} AND `slotid` = {}",
"`character_id` = {} AND `slot_id` = {}",
character_id,
EQ::invslot::slotSecondary
)
@@ -9255,7 +9255,7 @@ void Client::SetSecondaryWeaponOrnamentation(uint32 model_id)
auto e = l.front();
e.ornamentidfile = model_id;
e.ornament_idfile = model_id;
const int updated = InventoryRepository::UpdateOne(database, e);