From da7c7a6ca75f369acd296a5ef7d1d6a3a9b50029 Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Thu, 29 Oct 2026 15:48:55 +0000 Subject: [PATCH] Decompile fn_13678 (BasicInfoWndInfo::Reset) Batch #2362 by alisonrag: 0 byte-identical, 1 confirmed by peer review. - fn_13678 BasicInfoWndInfo::Reset: logic confirmed by peer review Reviewed-by: ragnarok-clanker --- Source/Client/Session.h | 1 + Source/Contents/UserData/NormalItemSlots.cpp | 21 ++++++++++++++++++++ Source/Contents/UserData/NormalItemSlots.h | 10 ++++++++++ 3 files changed, 32 insertions(+) diff --git a/Source/Client/Session.h b/Source/Client/Session.h index bd650fd9..155f692e 100644 --- a/Source/Client/Session.h +++ b/Source/Client/Session.h @@ -386,6 +386,7 @@ public: bool HasItemCount(int itemId, int count) const; void NormalizeHead(int* head, int job); int GetDisplayJob(); + bool IsTreeGroupThree(int job) const; std::string GetSexName(int sex); std::string GetHeadActName(int job, int sex, int* head); std::string GetPlayerHeadActName(); diff --git a/Source/Contents/UserData/NormalItemSlots.cpp b/Source/Contents/UserData/NormalItemSlots.cpp index e778a1ad..f6c39991 100644 --- a/Source/Contents/UserData/NormalItemSlots.cpp +++ b/Source/Contents/UserData/NormalItemSlots.cpp @@ -1,4 +1,5 @@ #include "Contents/UserData/NormalItemSlots.h" +#include "Client/Session.h" #include "Render/Renderer.h" #include @@ -122,6 +123,26 @@ void AchTracingWndInfo::Reset() { this->y = (g_renderer->viewport.height - 150) / 2; } +// OFFSET: 0x009A63C0 +// FUNCTION: fn_13678 +void BasicInfoWndInfo::Reset() { + this->x = 0; + this->y = 0; + this->width = 220; + this->height = 134; + if (g_session.IsTreeGroupThree(g_session.GetDisplayJob()) == true) { + if (this->unknown_0012 == 1) { + this->height = 149; + } else { + this->height = 71; + } + this->unknown_0010 = 0; + } else { + this->height = this->unknown_0012 == 1 ? 134 : 55; + this->unknown_0010 = 0; + } +} + // OFFSET: 0x009A6430 // FUNCTION: fn_13679 void CashEmotionListWndInfo::Reset() { diff --git a/Source/Contents/UserData/NormalItemSlots.h b/Source/Contents/UserData/NormalItemSlots.h index 5a2b5f4d..cef358bc 100644 --- a/Source/Contents/UserData/NormalItemSlots.h +++ b/Source/Contents/UserData/NormalItemSlots.h @@ -84,6 +84,15 @@ struct AchTracingWndInfo : WindowPlacement { void Reset(); }; +struct BasicInfoWndInfo : WindowPlacement { + /* 0010 */ unsigned char unknown_0010; + /* 0011 */ unsigned char unknown_0011; + /* 0012 */ unsigned char unknown_0012; + /* 0013 */ unsigned char unknown_0013; + + void Reset(); +}; + struct CashEmotionListWndInfo : WindowPlacement { void Reset(); }; @@ -306,6 +315,7 @@ struct SayDialogWndInfo : WindowPlacement { #if defined(_WIN32) && !defined(_WIN64) static_assert(offsetof(WindowPlacement, height) == 0x000C); static_assert(sizeof(WindowPlacement) == 0x10); +static_assert(sizeof(BasicInfoWndInfo) == 0x14); static_assert(sizeof(EquipWndInfo) == 0x18); static_assert(sizeof(ItemStoreFindListInfo) == 0x14); static_assert(sizeof(ItemWndInfo) == 0x28);