mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-14 16:33:52 +00:00
perf: eliminate per-frame heap allocs in M2 renderer; UI polish and report
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
Some checks are pending
Build / Build (arm64) (push) Waiting to run
Build / Build (x86-64) (push) Waiting to run
Build / Build (macOS arm64) (push) Waiting to run
Build / Build (windows-arm64) (push) Waiting to run
Build / Build (windows-x86-64) (push) Waiting to run
Security / CodeQL (C/C++) (push) Waiting to run
Security / Semgrep (push) Waiting to run
Security / Sanitizer Build (ASan/UBSan) (push) Waiting to run
M2 renderer: move 3 per-frame local containers to member variables: - particleGroups_ (unordered_map): reuse bucket structure across frames - ribbonDraws_ (vector): reuse draw call buffer - shadowTexSetCache_ (unordered_map): reuse descriptor cache Eliminates ~3 heap allocations per frame in particle/ribbon/shadow passes. UI polish: - Nameplate hover tooltip showing level, class (players), guild name - Bag window titles show slot counts: "Backpack (12/16)" Player report: CMSG_COMPLAIN packet builder and reportPlayer() method. "Report Player" option in target frame right-click menu for other players. Server response handler (SMSG_COMPLAIN_RESULT) was already implemented.
This commit is contained in:
parent
dee90d2951
commit
2af3594ce8
8 changed files with 117 additions and 44 deletions
|
|
@ -13784,6 +13784,23 @@ void GameHandler::initiateTrade(uint64_t targetGuid) {
|
|||
LOG_INFO("Initiated trade with target: 0x", std::hex, targetGuid, std::dec);
|
||||
}
|
||||
|
||||
void GameHandler::reportPlayer(uint64_t targetGuid, const std::string& reason) {
|
||||
if (!isInWorld()) {
|
||||
LOG_WARNING("Cannot report player: not in world or not connected");
|
||||
return;
|
||||
}
|
||||
|
||||
if (targetGuid == 0) {
|
||||
addSystemChatMessage("You must target a player to report.");
|
||||
return;
|
||||
}
|
||||
|
||||
auto packet = ComplainPacket::build(targetGuid, reason);
|
||||
socket->send(packet);
|
||||
addSystemChatMessage("Player report submitted.");
|
||||
LOG_INFO("Reported player: 0x", std::hex, targetGuid, std::dec, " reason=", reason);
|
||||
}
|
||||
|
||||
void GameHandler::stopCasting() {
|
||||
if (!isInWorld()) {
|
||||
LOG_WARNING("Cannot stop casting: not in world or not connected");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue