Make consent variable names more descriptive and replace char pointer parameters with std::string

Use fmt::format for SQL statement when updating corpse guild id
This commit is contained in:
hg 2020-02-04 18:27:59 -05:00
parent b8229c8459
commit d7138e84c0
5 changed files with 39 additions and 46 deletions

View File

@ -6255,12 +6255,9 @@ void Client::DragCorpses()
} }
} }
void Client::ConsentCorpses(const char* consent_name, bool deny) void Client::ConsentCorpses(std::string consent_name, bool deny)
{ {
if (!consent_name) { if (strcasecmp(consent_name.c_str(), GetName()) == 0) {
return;
}
else if (strcasecmp(consent_name, GetName()) == 0) {
MessageString(Chat::Red, CONSENT_YOURSELF); MessageString(Chat::Red, CONSENT_YOURSELF);
} }
else if (!consent_throttle_timer.Check()) { else if (!consent_throttle_timer.Check()) {
@ -6269,7 +6266,7 @@ void Client::ConsentCorpses(const char* consent_name, bool deny)
else { else {
auto pack = new ServerPacket(ServerOP_Consent, sizeof(ServerOP_Consent_Struct)); auto pack = new ServerPacket(ServerOP_Consent, sizeof(ServerOP_Consent_Struct));
ServerOP_Consent_Struct* scs = (ServerOP_Consent_Struct*)pack->pBuffer; ServerOP_Consent_Struct* scs = (ServerOP_Consent_Struct*)pack->pBuffer;
strn0cpy(scs->grantname, consent_name, sizeof(scs->grantname)); strn0cpy(scs->grantname, consent_name.c_str(), sizeof(scs->grantname));
strn0cpy(scs->ownername, GetName(), sizeof(scs->ownername)); strn0cpy(scs->ownername, GetName(), sizeof(scs->ownername));
strn0cpy(scs->zonename, "Unknown", sizeof(scs->zonename)); strn0cpy(scs->zonename, "Unknown", sizeof(scs->zonename));
scs->permission = deny ? 0 : 1; scs->permission = deny ? 0 : 1;

View File

@ -1139,7 +1139,7 @@ public:
inline bool IsDraggingCorpse() { return (DraggedCorpses.size() > 0); } inline bool IsDraggingCorpse() { return (DraggedCorpses.size() > 0); }
void DragCorpses(); void DragCorpses();
inline void ClearDraggedCorpses() { DraggedCorpses.clear(); } inline void ClearDraggedCorpses() { DraggedCorpses.clear(); }
void ConsentCorpses(const char* consent_name, bool deny = false); void ConsentCorpses(std::string consent_name, bool deny = false);
void SendAltCurrencies(); void SendAltCurrencies();
void SetAlternateCurrencyValue(uint32 currency_id, uint32 new_amount); void SetAlternateCurrencyValue(uint32 currency_id, uint32 new_amount);
void AddAlternateCurrencyValue(uint32 currency_id, int32 amount, int8 method = 0); void AddAlternateCurrencyValue(uint32 currency_id, int32 amount, int8 method = 0);

View File

@ -138,7 +138,7 @@ Corpse* Corpse::LoadCharacterCorpseEntity(uint32 in_dbid, uint32 in_charid, std:
pc->drakkin_details = pcs->drakkin_details; pc->drakkin_details = pcs->drakkin_details;
pc->IsRezzed(rezzed); pc->IsRezzed(rezzed);
pc->become_npc = false; pc->become_npc = false;
pc->consent_guild_id = guild_consent_id; pc->consented_guild_id = guild_consent_id;
pc->UpdateEquipmentLight(); // itemlist populated above..need to determine actual values pc->UpdateEquipmentLight(); // itemlist populated above..need to determine actual values
@ -285,15 +285,15 @@ Corpse::Corpse(Client* client, int32 in_rezexp) : Mob (
if (client->AutoConsentGroupEnabled()) { if (client->AutoConsentGroupEnabled()) {
Group* grp = client->GetGroup(); Group* grp = client->GetGroup();
consent_group_id = grp ? grp->GetID() : 0; consented_group_id = grp ? grp->GetID() : 0;
} }
if (client->AutoConsentRaidEnabled()) { if (client->AutoConsentRaidEnabled()) {
Raid* raid = client->GetRaid(); Raid* raid = client->GetRaid();
consent_raid_id = raid ? raid->GetID() : 0; consented_raid_id = raid ? raid->GetID() : 0;
} }
consent_guild_id = client->AutoConsentGuildEnabled() ? client->GuildID() : 0; consented_guild_id = client->AutoConsentGuildEnabled() ? client->GuildID() : 0;
is_corpse_changed = true; is_corpse_changed = true;
rez_experience = in_rezexp; rez_experience = in_rezexp;
@ -624,11 +624,11 @@ bool Corpse::Save() {
/* Create New Corpse*/ /* Create New Corpse*/
if (corpse_db_id == 0) { if (corpse_db_id == 0) {
corpse_db_id = database.SaveCharacterCorpse(char_id, corpse_name, zone->GetZoneID(), zone->GetInstanceID(), dbpc, m_Position, consent_guild_id); corpse_db_id = database.SaveCharacterCorpse(char_id, corpse_name, zone->GetZoneID(), zone->GetInstanceID(), dbpc, m_Position, consented_guild_id);
} }
/* Update Corpse Data */ /* Update Corpse Data */
else{ else{
corpse_db_id = database.UpdateCharacterCorpse(corpse_db_id, char_id, corpse_name, zone->GetZoneID(), zone->GetInstanceID(), dbpc, m_Position, consent_guild_id, IsRezzed()); corpse_db_id = database.UpdateCharacterCorpse(corpse_db_id, char_id, corpse_name, zone->GetZoneID(), zone->GetInstanceID(), dbpc, m_Position, consented_guild_id, IsRezzed());
} }
safe_delete_array(dbpc); safe_delete_array(dbpc);
@ -660,27 +660,23 @@ void Corpse::DepopPlayerCorpse() {
player_corpse_depop = true; player_corpse_depop = true;
} }
void Corpse::AddConsentName(const char* add_name) void Corpse::AddConsentName(std::string consent_player_name)
{ {
if (add_name) { for (const auto& consented_player_name : consented_player_names) {
for (const auto& n : consent_names) { if (strcasecmp(consented_player_name.c_str(), consent_player_name.c_str()) == 0) {
if (strcasecmp(n.c_str(), add_name) == 0) { return;
return;
}
} }
consent_names.emplace_back(add_name);
} }
consented_player_names.emplace_back(consent_player_name);
} }
void Corpse::RemoveConsentName(const char* rem_name) void Corpse::RemoveConsentName(std::string consent_player_name)
{ {
if (rem_name) { consented_player_names.erase(std::remove_if(consented_player_names.begin(), consented_player_names.end(),
consent_names.erase(std::remove_if(consent_names.begin(), consent_names.end(), [consent_player_name](const std::string& consented_player_name) {
[rem_name](const std::string& n) { return strcasecmp(consented_player_name.c_str(), consent_player_name.c_str()) == 0;
return strcasecmp(n.c_str(), rem_name) == 0; }
} ), consented_player_names.end());
), consent_names.end());
}
} }
uint32 Corpse::CountItems() { uint32 Corpse::CountItems() {
@ -1477,27 +1473,27 @@ bool Corpse::Summon(Client* client, bool spell, bool CheckDistance) {
else else
{ {
bool consented = false; bool consented = false;
for (const auto& n : consent_names) { for (const auto& consented_player_name : consented_player_names) {
if (strcasecmp(client->GetName(), n.c_str()) == 0) { if (strcasecmp(client->GetName(), consented_player_name.c_str()) == 0) {
consented = true; consented = true;
break; break;
} }
} }
if (!consented && consent_guild_id && consent_guild_id != GUILD_NONE) { if (!consented && consented_guild_id && consented_guild_id != GUILD_NONE) {
if (client->GuildID() == consent_guild_id) { if (client->GuildID() == consented_guild_id) {
consented = true; consented = true;
} }
} }
if (!consented && consent_group_id) { if (!consented && consented_group_id) {
Group* grp = client->GetGroup(); Group* grp = client->GetGroup();
if (grp && grp->GetID() == consent_group_id) { if (grp && grp->GetID() == consented_group_id) {
consented = true; consented = true;
} }
} }
if (!consented && consent_raid_id) { if (!consented && consented_raid_id) {
Raid* raid = client->GetRaid(); Raid* raid = client->GetRaid();
if (raid && raid->GetID() == consent_raid_id) { if (raid && raid->GetID() == consented_raid_id) {
consented = true; consented = true;
} }
} }

View File

@ -74,11 +74,11 @@ class Corpse : public Mob {
uint32 GetDecayTime() { if (!corpse_decay_timer.Enabled()) return 0xFFFFFFFF; else return corpse_decay_timer.GetRemainingTime(); } uint32 GetDecayTime() { if (!corpse_decay_timer.Enabled()) return 0xFFFFFFFF; else return corpse_decay_timer.GetRemainingTime(); }
uint32 GetRezTime() { if (!corpse_rez_timer.Enabled()) return 0; else return corpse_rez_timer.GetRemainingTime(); } uint32 GetRezTime() { if (!corpse_rez_timer.Enabled()) return 0; else return corpse_rez_timer.GetRemainingTime(); }
void SetDecayTimer(uint32 decay_time); void SetDecayTimer(uint32 decay_time);
void SetConsentGroupID(uint32 id) { if (IsPlayerCorpse()) { consent_group_id = id; } } void SetConsentGroupID(uint32 group_id) { if (IsPlayerCorpse()) { consented_group_id = group_id; } }
void SetConsentRaidID(uint32 id) { if (IsPlayerCorpse()) { consent_raid_id = id; } } void SetConsentRaidID(uint32 raid_id) { if (IsPlayerCorpse()) { consented_raid_id = raid_id; } }
void SetConsentGuildID(uint32 id) { if (IsPlayerCorpse()) { consent_guild_id = id; } } void SetConsentGuildID(uint32 guild_id) { if (IsPlayerCorpse()) { consented_guild_id = guild_id; } }
void AddConsentName(const char* name); void AddConsentName(std::string consent_player_name);
void RemoveConsentName(const char* name); void RemoveConsentName(std::string consent_player_name);
void Delete(); void Delete();
void Bury(); void Bury();
@ -147,9 +147,9 @@ private:
int32 player_kill_item; /* Determines if Player Kill Item */ int32 player_kill_item; /* Determines if Player Kill Item */
uint32 corpse_db_id; /* Corpse Database ID (Player Corpse) */ uint32 corpse_db_id; /* Corpse Database ID (Player Corpse) */
uint32 char_id; /* Character ID */ uint32 char_id; /* Character ID */
uint32 consent_group_id = 0; /* consented group id */ uint32 consented_group_id = 0;
uint32 consent_raid_id = 0; /* consented raid id */ uint32 consented_raid_id = 0;
uint32 consent_guild_id = 0; /* consented guild id */ uint32 consented_guild_id = 0;
ItemList itemlist; /* Internal Item list used for corpses */ ItemList itemlist; /* Internal Item list used for corpses */
uint32 copper; uint32 copper;
uint32 silver; uint32 silver;
@ -168,7 +168,7 @@ private:
Timer corpse_graveyard_timer; Timer corpse_graveyard_timer;
Timer loot_cooldown_timer; /* Delay between loot actions on the corpse entity */ Timer loot_cooldown_timer; /* Delay between loot actions on the corpse entity */
EQEmu::TintProfile item_tint; EQEmu::TintProfile item_tint;
std::vector<std::string> consent_names; std::vector<std::string> consented_player_names;
LootRequestType loot_request_type; LootRequestType loot_request_type;
}; };

View File

@ -4321,7 +4321,7 @@ uint32 ZoneDatabase::UpdateCharacterCorpse(uint32 db_id, uint32 char_id, const c
uint32 ZoneDatabase::UpdateCharacterCorpseConsent(uint32 charid, uint32 guildid) uint32 ZoneDatabase::UpdateCharacterCorpseConsent(uint32 charid, uint32 guildid)
{ {
std::string query = StringFormat("UPDATE `character_corpses` SET `guild_consent_id` = %u WHERE `charid` = %u", guildid, charid); std::string query = fmt::format("UPDATE `character_corpses` SET `guild_consent_id` = '{}' WHERE charid = '{}'", guildid, charid);
auto results = QueryDatabase(query); auto results = QueryDatabase(query);
return results.RowsAffected(); return results.RowsAffected();
} }