Decompile 2 functions in Source/Client/Session.cpp, Source/Client/Session.h

Batch #8657 by youko: 0 byte-identical, 2 confirmed by peer review.

- fn_23621 CSession::SetEquipItem2B50: logic confirmed by peer review
- fn_23625 CSession::SetEquipItem17F0: logic confirmed by peer review

Peer-reviewed-by: gordaoprogramas, Tanke, dori
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 20:07:00 +00:00
commit 7f16dfd34b
2 changed files with 28 additions and 0 deletions

View file

@ -58,6 +58,14 @@ std::string g_guildName;
// GLOBAL: gl_25140
static std::string s_messageEndTag = "</MSG>";
namespace EquipmentProperties {
class CEquipmentPropertiesMgr {
public:
static CEquipmentPropertiesMgr* GetInstance();
void RefreshWearable(const int& key);
};
}
// OFFSET: 0x00DDE860
// FUNCTION: fn_23401
int CSession::MercSkillLevel(int skillId) const {
@ -1561,6 +1569,15 @@ void CSession::UpdateFriendName(std::uint32_t characterId, const char* name) {
}
}
// OFFSET: 0x00DFF830
// FUNCTION: fn_23621
void CSession::SetEquipItem2B50(unsigned int index, const ITEM_INFO& item) {
if (index < 10) {
this->unknown_2B50[index] = item;
EquipmentProperties::CEquipmentPropertiesMgr::GetInstance()->RefreshWearable(reinterpret_cast<const int&>(item.unknown_0000[3]));
}
}
// OFFSET: 0x00DFF870
// FUNCTION: fn_23622
void CSession::SetNavigationPlayerMap(const char* name) {
@ -1610,6 +1627,15 @@ void CSession::SetUnknown16EC(std::uint32_t value) {
}
}
// OFFSET: 0x00DFF9C0
// FUNCTION: fn_23625
void CSession::SetEquipItem17F0(unsigned int index, const ITEM_INFO& item) {
if (index < 10) {
this->unknown_17F0[index] = item;
EquipmentProperties::CEquipmentPropertiesMgr::GetInstance()->RefreshWearable(reinterpret_cast<const int&>(item.unknown_0000[3]));
}
}
// OFFSET: 0x00DFFA00
// FUNCTION: fn_23626
int CSession::SetFriendOffline(std::uint32_t accountId, std::uint32_t characterId, unsigned char offline) {

View file

@ -603,6 +603,8 @@ public:
bool LoadMapPosTable();
bool ScaleMapPositions();
bool LoadFogParameters();
void SetEquipItem2B50(unsigned int index, const ITEM_INFO& item);
void SetEquipItem17F0(unsigned int index, const ITEM_INFO& item);
void ClearHomunStatus();
std::pair<int, int>* InsertPair(int key, int value);
int SetPairValue(int value, int slot);