[Cleanup] Convert Quest Ornament Methods to Repositories (#4048)

# Notes
- Convert `Client::SetPrimaryWeaponOrnamentation` and `Client::SetSecondaryWeaponOrnamentation` to repositories.
This commit is contained in:
Alex King 2024-02-10 04:27:47 -05:00 committed by GitHub
parent 75539b4f89
commit dacebca9dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -66,6 +66,7 @@ extern volatile bool RunLoops;
#include "../common/repositories/character_disciplines_repository.h" #include "../common/repositories/character_disciplines_repository.h"
#include "../common/repositories/character_data_repository.h" #include "../common/repositories/character_data_repository.h"
#include "../common/repositories/discovered_items_repository.h" #include "../common/repositories/discovered_items_repository.h"
#include "../common/repositories/inventory_repository.h"
#include "../common/repositories/keyring_repository.h" #include "../common/repositories/keyring_repository.h"
#include "../common/events/player_events.h" #include "../common/events/player_events.h"
#include "../common/events/player_event_logs.h" #include "../common/events/player_event_logs.h"
@ -8853,49 +8854,69 @@ void Client::SetEXPEnabled(bool is_exp_enabled)
m_exp_enabled = is_exp_enabled; m_exp_enabled = is_exp_enabled;
} }
/**
* @param model_id
*/
void Client::SetPrimaryWeaponOrnamentation(uint32 model_id) void Client::SetPrimaryWeaponOrnamentation(uint32 model_id)
{ {
auto primary_item = m_inv.GetItem(EQ::invslot::slotPrimary); auto primary_item = m_inv.GetItem(EQ::invslot::slotPrimary);
if (primary_item) { if (primary_item) {
database.QueryDatabase( auto l = InventoryRepository::GetWhere(
StringFormat( database,
"UPDATE `inventory` SET `ornamentidfile` = %i WHERE `charid` = %i AND `slotid` = %i", fmt::format(
model_id, "`charid` = {} AND `slotid` = {}",
character_id, character_id,
EQ::invslot::slotPrimary EQ::invslot::slotPrimary
)); )
);
primary_item->SetOrnamentationIDFile(model_id); if (l.empty()) {
SendItemPacket(EQ::invslot::slotPrimary, primary_item, ItemPacketTrade); return;
WearChange(EQ::textures::weaponPrimary, static_cast<uint16>(model_id), 0); }
Message(Chat::Yellow, "Your primary weapon appearance has been modified"); auto e = l.front();
e.ornamentidfile = model_id;
const int updated = InventoryRepository::UpdateOne(database, e);
if (updated) {
primary_item->SetOrnamentationIDFile(model_id);
SendItemPacket(EQ::invslot::slotPrimary, primary_item, ItemPacketTrade);
WearChange(EQ::textures::weaponPrimary, model_id, 0);
Message(Chat::Yellow, "Your primary weapon appearance has been modified.");
}
} }
} }
/**
* @param model_id
*/
void Client::SetSecondaryWeaponOrnamentation(uint32 model_id) void Client::SetSecondaryWeaponOrnamentation(uint32 model_id)
{ {
auto secondary_item = m_inv.GetItem(EQ::invslot::slotSecondary); auto secondary_item = m_inv.GetItem(EQ::invslot::slotSecondary);
if (secondary_item) { if (secondary_item) {
database.QueryDatabase( auto l = InventoryRepository::GetWhere(
StringFormat( database,
"UPDATE `inventory` SET `ornamentidfile` = %i WHERE `charid` = %i AND `slotid` = %i", fmt::format(
model_id, "`charid` = {} AND `slotid` = {}",
character_id, character_id,
EQ::invslot::slotSecondary EQ::invslot::slotSecondary
)); )
);
secondary_item->SetOrnamentationIDFile(model_id); if (l.empty()) {
SendItemPacket(EQ::invslot::slotSecondary, secondary_item, ItemPacketTrade); return;
WearChange(EQ::textures::weaponSecondary, static_cast<uint16>(model_id), 0); }
Message(Chat::Yellow, "Your secondary weapon appearance has been modified"); auto e = l.front();
e.ornamentidfile = model_id;
const int updated = InventoryRepository::UpdateOne(database, e);
if (updated) {
secondary_item->SetOrnamentationIDFile(model_id);
SendItemPacket(EQ::invslot::slotSecondary, secondary_item, ItemPacketTrade);
WearChange(EQ::textures::weaponSecondary, model_id, 0);
Message(Chat::Yellow, "Your secondary weapon appearance has been modified.");
}
} }
} }