From cabaf32ebb1afab0358d2899f413e6b741e81d9b Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Thu, 12 Nov 2026 15:47:34 +0000 Subject: [PATCH] Decompile 3 functions in Source/Client/Session/Session.h, Source/Contents/Emblems/EmblemDataMgr.cpp, ... Batch #18550 by eAthena: 1 byte-identical, 2 confirmed by peer review. - fn_03655 CAdventurerAgencyMgr::ServiceUrl: logic confirmed by peer review - fn_03931 CCharacterLinkedUserDataMgr::RefreshUrls: byte-identical - fn_04237 CMCStoreInfoBackup::Reset: logic confirmed by peer review Accepted without human review: peers confirmed the logic ("same" ahead by at least 3, with 70% of the votes). --- Source/Client/Session/Session.h | 1 + Source/Contents/Party/AdventurerAgencyMgr.cpp | 2 +- Source/Contents/Store/MCStoreInfoBackup.cpp | 2 +- Source/Contents/UserData/AccountService.cpp | 2 ++ Source/Contents/UserData/CharacterLinkedUserDataMgr.cpp | 3 +-- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Source/Client/Session/Session.h b/Source/Client/Session/Session.h index 35201e49e..414a8f17f 100644 --- a/Source/Client/Session/Session.h +++ b/Source/Client/Session/Session.h @@ -1196,6 +1196,7 @@ public: void RefreshMercenaryInfo(); bool IsBlankString(const char* text) const; void InvalidateWindowFrames(); + std::string ResolveAccountServiceBase(); void RefreshSkillTree(); void SetJob(int job); void EraseMiniPartyRecord(int id); diff --git a/Source/Contents/Party/AdventurerAgencyMgr.cpp b/Source/Contents/Party/AdventurerAgencyMgr.cpp index bb1ee13ed..f82a537bb 100644 --- a/Source/Contents/Party/AdventurerAgencyMgr.cpp +++ b/Source/Contents/Party/AdventurerAgencyMgr.cpp @@ -70,7 +70,7 @@ const std::vector& CAdventurerAgencyMgr::Entries() const { // OFFSET: 0x005CAA50 // FUNCTION: fn_03655 std::string CAdventurerAgencyMgr::ServiceUrl(int operation) const { - std::string url = ResolveAccountServiceBase(*g_session.m_hotkeyScript, *g_session.m_hotkeyScript, g_serviceHost, g_servicePort, g_serviceOverrideKey); + std::string url = g_session.ResolveAccountServiceBase(); if (url.empty()) { return ""; diff --git a/Source/Contents/Store/MCStoreInfoBackup.cpp b/Source/Contents/Store/MCStoreInfoBackup.cpp index ee92eb4a2..4b1219639 100644 --- a/Source/Contents/Store/MCStoreInfoBackup.cpp +++ b/Source/Contents/Store/MCStoreInfoBackup.cpp @@ -78,7 +78,7 @@ void CMCStoreInfoBackup::Reset(LuaScript& settings, LuaScript& tables, const cha this->loaded = false; this->title = ""; this->items.clear(); - const std::string base = ResolveAccountServiceBase(settings, tables, host, port, overrideKey); + const std::string base = g_session.ResolveAccountServiceBase(); if (!base.empty()) { this->saveUrl = base + "/MerchantStore/save"; diff --git a/Source/Contents/UserData/AccountService.cpp b/Source/Contents/UserData/AccountService.cpp index 6073a7f7a..667ef48b8 100644 --- a/Source/Contents/UserData/AccountService.cpp +++ b/Source/Contents/UserData/AccountService.cpp @@ -1,4 +1,6 @@ #include "Contents/UserData/AccountService.h" +#include "Client/Session/Session.h" +#include "Contents/Configuration/ServiceConfiguration.h" #include "Script/LuaScript.h" // OFFSET: 0x00DDBB60 diff --git a/Source/Contents/UserData/CharacterLinkedUserDataMgr.cpp b/Source/Contents/UserData/CharacterLinkedUserDataMgr.cpp index a5c8b8b28..ec0b9f18b 100644 --- a/Source/Contents/UserData/CharacterLinkedUserDataMgr.cpp +++ b/Source/Contents/UserData/CharacterLinkedUserDataMgr.cpp @@ -72,8 +72,7 @@ void CCharacterLinkedUserDataMgr::CompleteSave() { // OFFSET: 0x005E6BB0 // FUNCTION: fn_03931 __declspec(noinline) void CCharacterLinkedUserDataMgr::RefreshUrls() { - const std::string base = - ResolveAccountServiceBase(*g_session.m_hotkeyScript, *g_session.m_hotkeyScript, g_serviceHost, g_servicePort, g_serviceOverrideKey); + const std::string base = g_session.ResolveAccountServiceBase(); if (!base.empty()) { this->m_saveUrl = base + OBFUSCATE_TEXT_NAMED("/charconfig/save", 0xD3E5516F89F161D1ULL, savePath);