[Cleanup] Fix ornamentation augment icons in inspect requests (#3264)

* [Cleanup] Fix ornamentation augment icons in inspect requests

# Notes
- We were not setting `aug_item` to the ornamentation augment when we found one.

* Update client.cpp
This commit is contained in:
Alex King 2023-04-05 19:04:32 -04:00 committed by GitHub
parent f2f8fae58b
commit 7e9994b5d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5609,50 +5609,61 @@ void Client::SetRadiantCrystals(uint32 value) {
} }
// Processes a client request to inspect a SoF+ client's equipment. // Processes a client request to inspect a SoF+ client's equipment.
void Client::ProcessInspectRequest(Client* requestee, Client* requester) { void Client::ProcessInspectRequest(Client *requestee, Client *requester)
if(requestee && requester) { {
if (requestee && requester) {
auto outapp = new EQApplicationPacket(OP_InspectAnswer, sizeof(InspectResponse_Struct)); auto outapp = new EQApplicationPacket(OP_InspectAnswer, sizeof(InspectResponse_Struct));
InspectResponse_Struct* insr = (InspectResponse_Struct*) outapp->pBuffer; auto insr = (InspectResponse_Struct *) outapp->pBuffer;
insr->TargetID = requester->GetID(); insr->TargetID = requester->GetID();
insr->playerid = requestee->GetID(); insr->playerid = requestee->GetID();
const EQ::ItemData* item = nullptr; const EQ::ItemData *item = nullptr;
const EQ::ItemInstance* inst = nullptr; const EQ::ItemInstance *inst = nullptr;
int ornamentationAugtype = RuleI(Character, OrnamentationAugmentType); int ornamentation_augment_type = RuleI(Character, OrnamentationAugmentType);
for(int16 L = EQ::invslot::EQUIPMENT_BEGIN; L <= EQ::invslot::EQUIPMENT_END; L++) {
for (int16 L = EQ::invslot::EQUIPMENT_BEGIN; L <= EQ::invslot::EQUIPMENT_END; L++) {
inst = requestee->GetInv().GetItem(L); inst = requestee->GetInv().GetItem(L);
if(inst) { if (inst) {
item = inst->GetItem(); item = inst->GetItem();
if(item) { if (item) {
strcpy(insr->itemnames[L], item->Name); strcpy(insr->itemnames[L], item->Name);
const EQ::ItemData *aug_item = nullptr; const EQ::ItemData *aug_item = nullptr;
if (inst->GetOrnamentationAug(ornamentationAugtype)) if (inst->GetOrnamentationAug(ornamentation_augment_type)) {
inst->GetOrnamentationAug(ornamentationAugtype)->GetItem(); aug_item = inst->GetOrnamentationAug(ornamentation_augment_type)->GetItem();
}
if (aug_item) if (aug_item) {
insr->itemicons[L] = aug_item->Icon; insr->itemicons[L] = aug_item->Icon;
else if (inst->GetOrnamentationIcon()) } else if (inst->GetOrnamentationIcon()) {
insr->itemicons[L] = inst->GetOrnamentationIcon(); insr->itemicons[L] = inst->GetOrnamentationIcon();
else } else {
insr->itemicons[L] = item->Icon; insr->itemicons[L] = item->Icon;
} }
else { } else {
insr->itemnames[L][0] = '\0'; insr->itemnames[L][0] = '\0';
insr->itemicons[L] = 0xFFFFFFFF; insr->itemicons[L] = 0xFFFFFFFF;
} }
} } else {
else {
insr->itemnames[L][0] = '\0'; insr->itemnames[L][0] = '\0';
insr->itemicons[L] = 0xFFFFFFFF; insr->itemicons[L] = 0xFFFFFFFF;
} }
} }
strcpy(insr->text, requestee->GetInspectMessage().text); strcpy(insr->text, requestee->GetInspectMessage().text);
// There could be an OP for this..or not... (Ti clients are not processed here..this message is generated client-side) // There could be an OP for this..or not... (Ti clients are not processed here..this message is generated client-side)
if(requestee->IsClient() && (requestee != requester)) { requestee->Message(Chat::White, "%s is looking at your equipment...", requester->GetName()); } if (requestee->IsClient() && requestee != requester) {
requestee->Message(
Chat::White,
fmt::format(
"{} is looking at your equipment...",
requester->GetName()
).c_str()
);
}
requester->QueuePacket(outapp); // Send answer to requester requester->QueuePacket(outapp); // Send answer to requester
safe_delete(outapp); safe_delete(outapp);