From 9e40d3d7a7bedb1f6340d74939129c5709411ca0 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Wed, 28 Oct 2026 19:47:04 +0000 Subject: [PATCH] Decompile fn_03500 (CActorNameCardHolder::Lookup) Batch #1636 by eAthena: 0 byte-identical, 1 confirmed by peer review. - fn_03500 CActorNameCardHolder::Lookup: logic confirmed by peer review Reviewed-by: ragnarok-clanker Adds to the build: Source/Contents/ActorNameRequests.cpp --- Source/Contents/ActorNameCard.h | 1 + Source/Contents/ActorNameRequests.cpp | 20 ++++++++++++++++++++ data/compile.json | 1 + 3 files changed, 22 insertions(+) create mode 100644 Source/Contents/ActorNameRequests.cpp diff --git a/Source/Contents/ActorNameCard.h b/Source/Contents/ActorNameCard.h index 9d07c83..1938346 100644 --- a/Source/Contents/ActorNameCard.h +++ b/Source/Contents/ActorNameCard.h @@ -53,6 +53,7 @@ public: virtual ~CActorNameCardHolder(); std::string Name(std::uint32_t id); void SetName(std::uint32_t id, std::string name); + const CActorNameCard& Lookup(std::uint32_t id); void Set(std::uint32_t id, std::string name, std::string value1, std::string value2, std::string value3, std::string value4, std::string value5, std::uint32_t value); std::uint32_t FindId(std::string name); diff --git a/Source/Contents/ActorNameRequests.cpp b/Source/Contents/ActorNameRequests.cpp new file mode 100644 index 0000000..b9cf1a1 --- /dev/null +++ b/Source/Contents/ActorNameRequests.cpp @@ -0,0 +1,20 @@ +#include "Contents/ActorNameCard.h" + +#include + +// OFFSET: 0x005BFD10 +// FUNCTION: fn_03500 +const CActorNameCard& CActorNameCardHolder::Lookup(std::uint32_t id) { + const auto found = this->cards.find(id); + if (found != this->cards.end() && found->second.received == 1) { + return found->second; + } + + if (std::find(this->pending.begin(), this->pending.end(), id) == this->pending.end()) { + this->pending.push_back(id); + } + + // GLOBAL: gl_24526 + static CActorNameCard empty; + return empty; +} diff --git a/data/compile.json b/data/compile.json index 362490c..d98f387 100644 --- a/data/compile.json +++ b/data/compile.json @@ -271,6 +271,7 @@ "Source/Contents/ActorMovementRoute.cpp": 4, "Source/Contents/ActorNameCard.cpp": 4, "Source/Contents/ActorNameDirectory.cpp": 4, + "Source/Contents/ActorNameRequests.cpp": 4, "Source/Contents/Actors/AttackMotion.cpp": 4, "Source/Contents/Actors/GameObject.cpp": 4, "Source/Contents/Actors/MercenaryAI.cpp": 4,