rodecomp/Source/Contents/EquipmentResources.cpp
ragnarok-clanker 8836dc5137 Decompile 3 functions in Source/Contents/EquipmentResources.cpp, Source/Contents/EquipmentResourceMgr.h, ...
Batch #1858 by Yommy: 0 byte-identical, 3 confirmed by peer review.

- fn_19746 EquipmentResourceMgr::GetAccessoryResourceName: logic confirmed by peer review
- fn_23357 CSession::GetAccessoryActName: logic confirmed by peer review
- fn_23358 CSession::GetAccessorySprName: logic confirmed by peer review

Reviewed-by: ragnarok-clanker
2026-10-28 23:00:12 +00:00

64 lines
1.9 KiB
C++

#include "Client/Session.h"
#include "Contents/EquipmentResourceMgr.h"
#include "Resource/ResourceMgr.h"
#include "Utility/Text/FormatString.h"
#include <string>
// OFFSET: 0x00BA9AF0
// FUNCTION: fn_19746
std::string EquipmentResourceMgr::GetAccessoryResourceName(int type, int job, int sex, int head, int accessory) {
if (accessory == 0) {
return std::string();
}
std::string path;
std::string sexName;
std::string headName;
std::string accessoryName;
if (sex == 1) {
headName = g_session.m_humanMaleHeadNames[head];
} else if (sex == 0) {
headName = g_session.m_humanFemaleHeadNames[head];
}
sexName = g_session.GetSexName(sex);
accessoryName = g_session.GetAccessoryName(accessory);
if (accessoryName.size() == 0) {
return "";
}
if (g_session.IsDoramJob(job) == true) {
path = FormatOwnedString("악세사리\\%s_doram\\%s%s.%s", sexName.c_str(), sexName.c_str(), accessoryName.c_str(), g_equipmentResourceExtensions[type]);
if (ResourceMgr::Instance().Exists(path.c_str()) == true) {
return path;
}
}
path = FormatOwnedString("악세사리\\%s\\%s%s.%s", sexName.c_str(), sexName.c_str(), accessoryName.c_str(), g_equipmentResourceExtensions[type]);
return path;
}
// OFFSET: 0x00DDBA70
// FUNCTION: fn_23357
std::string CSession::GetAccessoryActName(int job, int sex, int head, int accessory) {
return g_equipmentResourceMgr->GetAccessoryResourceName(0, job, sex, head, accessory);
}
// OFFSET: 0x00DDBAE0
// FUNCTION: fn_23358
std::string CSession::GetAccessorySprName(int job, int sex, int head, int accessory) {
return g_equipmentResourceMgr->GetAccessoryResourceName(1, job, sex, head, accessory);
}
// OFFSET: 0x00E0A2C0
// FUNCTION: fn_23794
std::string CSession::GetAccessoryName(int id) {
if (id < 0 || static_cast<unsigned int>(id) >= this->m_accessoryNames.size()) {
return "_병아리모자";
}
return this->m_accessoryNames[id];
}