From 2d264e43ba1f1e77352dab1d390ffacefa00aca7 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Wed, 28 Oct 2026 22:39:25 +0000 Subject: [PATCH] Decompile 2 functions in Source/Contents/HeadResources.cpp Batch #1806 by ragnarok-clanker: 0 byte-identical, 2 confirmed by peer review. - fn_23393 CSession::GetDisplayJob: logic confirmed by peer review - fn_23336 CSession::NormalizeHead: logic confirmed by peer review Peer-reviewed-by: Yommy Reviewed-by: ragnarok-clanker --- Source/Contents/HeadResources.cpp | 165 +++++++++++++++--------------- 1 file changed, 82 insertions(+), 83 deletions(-) diff --git a/Source/Contents/HeadResources.cpp b/Source/Contents/HeadResources.cpp index 905f9b6..232f6c1 100644 --- a/Source/Contents/HeadResources.cpp +++ b/Source/Contents/HeadResources.cpp @@ -14,139 +14,138 @@ const char* g_equipmentResourceExtensions[2] = {"act", "spr"}; // FUNCTION: fn_23393 int CSession::GetDisplayJob() { const int job = this->m_job; - const std::uint32_t flags = this->m_jobFlags; if (job == 7) { - if (flags >> 5 & 1) { - return 13; + if (g_session.m_jobFlags >> 5 & 1) { + return job + 6; } } else if (job == 14) { - if (flags >> 5 & 1) { - return 21; + if (g_session.m_jobFlags >> 5 & 1) { + return job + 7; } } else if (job == 4008) { - if (flags >> 5 & 1) { - return 4014; + if (g_session.m_jobFlags >> 5 & 1) { + return job + 6; } } else if (job == 4030) { - if (flags >> 5 & 1) { - return 4036; + if (g_session.m_jobFlags >> 5 & 1) { + return job + 6; } } else if (job == 4015) { - if (flags >> 5 & 1) { - return 4022; + if (g_session.m_jobFlags >> 5 & 1) { + return job + 7; } } else if (job == 4037) { - if (flags >> 5 & 1) { - return 4044; + if (g_session.m_jobFlags >> 5 & 1) { + return job + 7; } } else if (job == 4066) { - if (flags >> 5 & 1) { - return 4082; + if (g_session.m_jobFlags >> 5 & 1) { + return job + 16; } } else if (job == 4073) { - if (flags >> 5 & 1) { - return 4083; + if (g_session.m_jobFlags >> 5 & 1) { + return job + 10; } } else if (job == 4102) { - if (flags >> 5 & 1) { - return 4110; + if (g_session.m_jobFlags >> 5 & 1) { + return job + 8; } } else if (job == 4054) { - if (flags >> 19 & 1) { + if (g_session.m_jobFlags >> 19 & 1) { return 4080; } - if (flags >> 23 & 1) { + if (g_session.m_jobFlags >> 23 & 1) { return 4088; } - if (flags & 0x1000000) { + if (g_session.m_jobFlags & 0x1000000) { return 4090; } - if (flags >> 25 & 1) { + if (g_session.m_jobFlags >> 25 & 1) { return 4092; } - if (flags >> 26 & 1) { + if (g_session.m_jobFlags >> 26 & 1) { return 4094; } } else if (job == 4060) { - if (flags >> 19 & 1) { + if (g_session.m_jobFlags >> 19 & 1) { return 4081; } - if (flags >> 23 & 1) { + if (g_session.m_jobFlags >> 23 & 1) { return 4089; } - if (flags & 0x1000000) { + if (g_session.m_jobFlags & 0x1000000) { return 4091; } - if (flags >> 25 & 1) { + if (g_session.m_jobFlags >> 25 & 1) { return 4093; } - if (flags >> 26 & 1) { + if (g_session.m_jobFlags >> 26 & 1) { return 4095; } } else if (job == 4096) { - if (flags >> 19 & 1) { - return 4109; + if (g_session.m_jobFlags >> 19 & 1) { + return job + 13; } } else if (job == 4047) { - if (flags >> 15 & 1) { - return 4048; + if (g_session.m_jobFlags >> 15 & 1) { + return job + 1; } } else if (job == 4056) { - if (flags >> 21 & 1) { - return 4084; + if (g_session.m_jobFlags >> 21 & 1) { + return job + 28; } } else if (job == 4062) { - if (flags >> 21 & 1) { - return 4085; + if (g_session.m_jobFlags >> 21 & 1) { + return job + 23; } } else if (job == 4098) { - if (flags >> 21 & 1) { - return 4111; + if (g_session.m_jobFlags >> 21 & 1) { + return job + 13; } } else if (job == 4058) { - if (this->unknown_8074 != 0) { - return 4086; + if (g_session.unknown_8074 != 0) { + return job + 28; } } else if (job == 4064) { - if (this->unknown_8074 != 0) { - return 4087; + if (g_session.unknown_8074 != 0) { + return job + 23; } } else if (job == 4100) { - if (this->unknown_8074 != 0) { - return 4112; + if (g_session.unknown_8074 != 0) { + return job + 12; } } else if (job == 4253) { - if (this->unknown_8074 != 0) { - return 4279; + if (g_session.unknown_8074 != 0) { + return job + 26; } } else if (job == 4226) { - if (flags >> 15 & 1) { - return 4238; + if (g_session.m_jobFlags >> 15 & 1) { + return job + 12; } } else if (job == 4239) { - if (flags >> 15 & 1) { - return 4243; + if (g_session.m_jobFlags >> 15 & 1) { + return job + 4; } } else if (job == 4241) { - if (flags >> 15 & 1) { - return 4244; + if (g_session.m_jobFlags >> 15 & 1) { + return job + 3; } } else if (job == 4257) { - if (flags >> 21 & 1) { - return 4278; + if (g_session.m_jobFlags >> 21 & 1) { + return job + 21; } } else if (job == 4252) { - if (flags >> 19 & 1) { - return 4280; + if (g_session.m_jobFlags >> 19 & 1) { + return job + 28; } } else if (job == 4258) { - if (flags >> 5 & 1) { - return 4281; + if (g_session.m_jobFlags >> 5 & 1) { + return job + 23; } } else if (job == 4302) { - if (flags >> 15 & 1) { - return 4316; + if (g_session.m_jobFlags >> 15 & 1) { + return job + 14; } } @@ -206,29 +205,29 @@ void CSession::NormalizeHead(int* head, int job) { return; } - switch (job) { - case 1: - *head = 2; - break; - case 2: - *head = 3; - break; - case 3: - *head = 4; - break; - case 4: - *head = 5; - break; - case 5: - *head = 6; - break; - case 6: - *head = 7; - break; - default: - *head = 1; - break; + if (job < 23) { + switch (job) { + case 1: + *head = 2; + return; + case 2: + *head = 3; + return; + case 3: + *head = 4; + return; + case 4: + *head = 5; + return; + case 5: + *head = 6; + return; + case 6: + *head = 7; + return; + } } + *head = 1; } // OFFSET: 0x00BAAB10