Decompile 2 functions in Source/UI/Window/UIWindowMgr.cpp, Source/UI/Window/UIWindowMgr.h, ...

Batch #7991 by eAthena: 0 byte-identical, 2 confirmed by peer review.

- fn_17127 UIWindowMgr::RefreshFrameSkins: logic confirmed by peer review
- fn_24159 SerializeMessengerMembers: logic confirmed by peer review

Peer-reviewed-by: Yommy, pedrao
Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes).
This commit is contained in:
ragnarok-clanker 2026-10-31 13:24:00 +00:00
commit 33e6e1fc77
4 changed files with 29 additions and 0 deletions

View file

@ -2741,3 +2741,14 @@ void CSession::InitJobKeyNames() {
names[358] = "SPIRIT_HANDLER";
names[365] = "SPIRIT_HANDLER_RIDING";
}
// OFFSET: 0x00E2F860
// FUNCTION: fn_24159
std::vector<unsigned char> SerializeMessengerMembers(const std::list<MessengerMember>& members) {
std::vector<unsigned char> records;
for (std::list<MessengerMember>::const_iterator it = members.begin(); it != members.end(); ++it) {
const std::vector<unsigned char> record = it->Serialize();
records.insert(records.end(), record.begin(), record.end());
}
return records;
}

View file

@ -933,6 +933,7 @@ bool IsAdminAccount(int aid);
bool IsMonsterJob(int job);
int MonsterJobColor(int job);
void SetMemberFlags(std::uint32_t* flags);
std::vector<unsigned char> SerializeMessengerMembers(const std::list<MessengerMember>& members);
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(SessionRecord6144) == 0x38);

View file

@ -46,6 +46,8 @@
#include <new>
#include <timeapi.h>
#include "Render/Textures/Surface.h"
#include "UI/FrameSkin.h"
#include "UI/Window/UIRegisterMgr.h"
namespace {
#pragma pack(push, 1)
struct AddFriendPacket {
@ -850,6 +852,20 @@ void UIWindowMgr::AddWhisperName(const char* name) {
}
}
// OFFSET: 0x00A8BB20
// FUNCTION: fn_17127
void UIWindowMgr::RefreshFrameSkins() {
for (UIWindow* window : this->rendered) {
if (CUIRegisterMgr::s_instance == nullptr) {
CUIRegisterMgr::s_instance = new (std::nothrow) CUIRegisterMgr;
}
std::map<int, int>& entries = CUIRegisterMgr::s_instance->entries;
if (entries.find(window->geometry.id) != entries.end()) {
static_cast<CUIFrameWnd*>(window)->RefreshSkinColors();
}
}
}
// OFFSET: 0x00A8B840
// FUNCTION: fn_17124
void UIWindowMgr::RegisterNamedWindow(std::string name, UIWindow* window) {

View file

@ -519,6 +519,7 @@ public:
bool IsHoverOnWindow01C8Button();
void SelectWhisperName(const char* name);
void AddWhisperName(const char* name);
void RefreshFrameSkins();
bool HasUnknown030C();
bool IsDropDownChild(const UIWindow* window);
bool HasMiniPartyMember(std::uint32_t accountId);