Decompile 9 functions in Source/UI/AdventureGuide/UIAdventureGuide.cpp, Source/UI/Lists/UIListBoxTemplate.h, ...

Batch #3445 by Yommy: 9 byte-identical, 0 confirmed by peer review.

- fn_14334 AdventureGuide::CUIItemInfo::Slot16: byte-identical
- fn_14337 AdventureGuide::CUIMonsterInfo::Slot16: byte-identical
- fn_14339 AdventureGuide::CUIQuestInfo::Slot16: byte-identical
- fn_14340 AdventureGuide::CUISubTab::Slot16: byte-identical
- fn_14341 AdventureGuide::CUITab::Slot16: byte-identical
- fn_14342 AdventureGuide::CUITabInfo::Slot16: byte-identical
- fn_14344 CUIListBoxEx<AdventureGuide::CUIMonsterInfo,AdventureGuide::CMonsterData>::UpdateScrollBar: byte-identical (annotation added to existing code)
- fn_14345 CUIListBox<AdventureGuide::CUISubTab>::UpdateScrollBar: byte-identical
- fn_14346 CUIListBox<AdventureGuide::CUITab>::UpdateScrollBar: byte-identical

Merged automatically: every function is byte-identical to the original.
This commit is contained in:
ragnarok-clanker 2026-10-29 22:32:41 +00:00
commit 6fc4b05f60
3 changed files with 134 additions and 6 deletions

View file

@ -1,4 +1,11 @@
#include "UI/AdventureGuide/UIAdventureGuide.h"
#include "UI/Lists/UIListBoxTemplate.h"
#include "UI/Lists/UIVScrollBar.h"
#include "UI/Text/UIStaticTextControl.h"
template void CUIListBoxEx<AdventureGuide::CUIMonsterInfo, AdventureGuide::CMonsterData>::UpdateScrollBar();
template void CUIListBox<AdventureGuide::CUITab>::UpdateScrollBar();
template void CUIListBox<AdventureGuide::CUISubTab>::UpdateScrollBar();
namespace AdventureGuide {
@ -36,6 +43,50 @@ void CUIItem::Slot16() {
void CUIQuest::Slot16() {
}
// OFFSET: 0x009DD1D0
// FUNCTION: fn_14334
void CUIItemInfo::Slot16() {
this->unknown_00F0->scrollBar->SetHidden(1);
this->unknown_00F4->scrollBar->SetHidden(1);
this->unknown_00F8->scrollBar->SetHidden(1);
}
// OFFSET: 0x009DD680
// FUNCTION: fn_14337
void CUIMonsterInfo::Slot16() {
this->unknown_00EC->scrollBar->SetHidden(1);
this->unknown_00F0->scrollBar->SetHidden(1);
}
// OFFSET: 0x009DD6C0
// FUNCTION: fn_14339
void CUIQuestInfo::Slot16() {
this->unknown_00EC->scrollBar->SetHidden(1);
CUIVScrollBar* first = this->unknown_00EC->scrollBar;
first->dragging = 0;
first->Invalidate();
this->unknown_00F0->scrollBar->SetHidden(1);
CUIVScrollBar* last = this->unknown_00F4->scrollBar;
last->dragging = 1;
last->Invalidate();
}
// OFFSET: 0x009DD720
// FUNCTION: fn_14340
void CUISubTab::Slot16() {
this->unknown_00EC->Show(0);
}
// OFFSET: 0x009DD730
// FUNCTION: fn_14341
void CUITab::Slot16() {
}
// OFFSET: 0x009DD740
// FUNCTION: fn_14342
void CUITabInfo::Slot16() {
}
// OFFSET: 0x009DDA40
// FUNCTION: fn_14347
void CUIIntro::Slot54(int, int) {

View file

@ -29,13 +29,55 @@ public:
/* 00C0 */ std::function<void(CUIListItem*)> onPress;
};
class CUIStaticText;
namespace AdventureGuide {
class CUISubTab : public CUIListItem {};
class CUITab : public CUIListItem {};
class CUIItemInfo : public CUIListItem {};
class CUIMonsterInfo : public CUIListItem {};
class CUIQuestInfo : public CUIListItem {};
class CUITabInfo : public CUIListItem {};
class CUISubTab : public CUIListItem {
public:
void Slot16() override;
/* 00E8 */ unsigned char unknown_00E8[0x04];
/* 00EC */ UIWindow* unknown_00EC;
};
class CUITab : public CUIListItem {
public:
void Slot16() override;
};
class CUIItemInfo : public CUIListItem {
public:
void Slot16() override;
/* 00E8 */ unsigned char unknown_00E8[0x08];
/* 00F0 */ CUIStaticText* unknown_00F0;
/* 00F4 */ CUIStaticText* unknown_00F4;
/* 00F8 */ CUIStaticText* unknown_00F8;
};
class CUIMonsterInfo : public CUIListItem {
public:
void Slot16() override;
/* 00E8 */ unsigned char unknown_00E8[0x04];
/* 00EC */ CUIStaticText* unknown_00EC;
/* 00F0 */ CUIStaticText* unknown_00F0;
};
class CUIQuestInfo : public CUIListItem {
public:
void Slot16() override;
/* 00E8 */ unsigned char unknown_00E8[0x04];
/* 00EC */ CUIStaticText* unknown_00EC;
/* 00F0 */ CUIStaticText* unknown_00F0;
/* 00F4 */ CUIStaticText* unknown_00F4;
};
class CUITabInfo : public CUIListItem {
public:
void Slot16() override;
};
class CItemData {};
class CMonsterData {};
class CQuestInfo {};
@ -63,6 +105,20 @@ public:
this->scrollBar->SetPosition(this->scrollBar->position);
}
// OFFSET: 0x009DD9A0
// OFFSET: 0x009DD9F0
// FUNCTION: fn_14345
// FUNCTION: fn_14346
void UpdateScrollBar() {
int total = 0;
for (T* item : this->items) {
total += item->geometry.height;
}
this->scrollBar->SetTotal(total);
this->scrollBar->SetVisible(this->geometry.height);
this->scrollBar->SetPosition(this->scrollBar->position);
}
/* 0084 */ unsigned char unknown_0084[0x2C];
/* 00B0 */ CUIVScrollBar* scrollBar;
/* 00B4 */ unsigned char unknown_00B4[0x10];
@ -123,7 +179,9 @@ public:
this->UpdateScrollBar();
}
// OFFSET: 0x009DD950
// OFFSET: 0x00A06300
// FUNCTION: fn_14344
// FUNCTION: fn_15001
void UpdateScrollBar() {
this->scrollBar->SetTotal(this->data.size() * this->rowHeight + this->itemY);

View file

@ -0,0 +1,19 @@
#ifndef RAGNAROK_SOURCE_UI_TEXT_UISTATICTEXTCONTROL_H
#define RAGNAROK_SOURCE_UI_TEXT_UISTATICTEXTCONTROL_H
#include "UI/Window/UIControl.h"
class CUIVScrollBar;
class CUIStaticText : public CUIControl {
public:
/* 0084 */ unsigned char unknown_0084[0x3C];
/* 00C0 */ CUIVScrollBar* scrollBar;
/* 00C4 */ unsigned char unknown_00C4[0x38];
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(sizeof(CUIStaticText) == 0xFC);
#endif
#endif