rodecomp/Source/UI/Lists/UIThumb.h
ragnarok-clanker e152126ceb Decompile 51 functions in Source/Contents/Effects/Particle.cpp, Source/UI/Enchant/UIEnchantUI.cpp, ...
Batch #15085 by Yommy: 30 byte-identical, 21 confirmed by peer review.

- fn_14031 CUIListBox<AdventureGuide::CUITab>::LoadSkin: byte-identical
- fn_14030 CUIListBox<AdventureGuide::CUISubTab>::LoadSkin: byte-identical
- fn_14718 CUIThumb::LoadSkin: byte-identical
- fn_14699 CUITitleBar::LoadSkin: byte-identical
- fn_16815 CUIListBoxEx<SkillDelayInfo::CUIDelayItem,SkillDelayInfo::CDelayItemData>::LoadSkin: byte-identical
- fn_16673 CUIListBoxEx<SelectPackageItemBox::CUITabInfo,SelectPackageItemBox::CTabInfoData>::LoadSkin: byte-identical
- fn_16672 CUIListBoxEx<SelectPackageItemBox::CUIItemInfo,ITEM_INFO>::LoadSkin: byte-identical
- fn_16442 CUIListBoxEx<RenewQuestUI::CUIQuestItem,unsigned long>::LoadSkin: byte-identical
- fn_16234 CUIListBoxEx<OngoingQuestInfo::CUIRewardItem,OngoingQuestInfo::CRewardItemData>::LoadSkin: byte-identical
- fn_16123 CUIListBoxEx<ProbabilityTable::CUIItem,ProbabilityTable::CItemData>::LoadSkin: byte-identical
- fn_15431 CUIListBoxEx<GameSettingsUI::CUIOptionItem,TALKTYPE>::LoadSkin: byte-identical
- fn_15430 CUIListBoxEx<GameSettingsUI::CUIComboItem,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::LoadSkin: byte-identical
- fn_15429 CUIListBoxEx<GameSettingsUI::CUIComboItem,RenderBackend>::LoadSkin: byte-identical
- fn_15428 CUIListBoxEx<GameSettingsUI::CUIComboItem,DisplayMode>::LoadSkin: byte-identical
- fn_15427 CUIListBoxEx<GameSettingsUI::CUIComboItem,RenderAdapter>::LoadSkin: byte-identical
- fn_15198 CUIListBoxEx<ExchangeUI::CUIItem,ExchangeUI::CItemData>::LoadSkin: byte-identical
- fn_15040 CUIListBoxEx<EquipmentPropertiesWnd::CUIItemEquipmentPropertiesLine,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::LoadSkin: byte-identical
- fn_14840 CUIListBoxEx<EnchantUI::CUITargetItem,ITEM_INFO>::LoadSkin: byte-identical
- fn_14839 CUIListBoxEx<EnchantUI::CUIEnchantItem,EnchantUI::CEnchantItemData>::LoadSkin: byte-identical
- fn_14719 CUIVScrollBar::LoadSkin: byte-identical
- fn_14667 CUIStaticImage::LoadSkin: byte-identical
- fn_14650 CUIImageButton::LoadSkin: byte-identical
- fn_14035 CUIListBoxEx<AdventureGuide::CUITabInfo,Guide_Intro::Contents>::LoadSkin: byte-identical
- fn_14034 CUIListBoxEx<AdventureGuide::CUIQuestInfo,AdventureGuide::CQuestInfo>::LoadSkin: byte-identical
- fn_14033 CUIListBoxEx<AdventureGuide::CUIMonsterInfo,AdventureGuide::CMonsterData>::LoadSkin: byte-identical
- fn_14032 CUIListBoxEx<AdventureGuide::CUIItemInfo,AdventureGuide::CItemData>::LoadSkin: byte-identical
- fn_14490 CUIImageTextButton::LoadSkin: byte-identical
- fn_18815 CEZ2STRParticle::ReleaseResource: byte-identical
- fn_14508 CUIResizer::LoadSkin: byte-identical
- fn_18819 CEZ2STRParticle::Open: logic confirmed by peer review (already on main)
- fn_18817 CEZ2STRParticle::Clear: byte-identical
- fn_14694 CUITabButton::LoadSkin: logic confirmed by peer review
- fn_18813 CEZ2STRParticle::CEZ2STRParticle: logic confirmed by peer review (already on main)
- fn_14406 CUIBasicButton::LoadSkin: logic confirmed by peer review
- fn_16122 CUIListBoxEx<ProbabilityTable::CUIItem,ProbabilityTable::CItemData>::AddNewItem: logic confirmed by peer review
- fn_15200 CUIListBoxEx<ExchangeUI::CUIItem,ExchangeUI::CItemData>::OnScroll: logic confirmed by peer review
- fn_15033 CUIEquipmentPropertiesWnd::Initialize: logic confirmed by peer review
- fn_15035 CUIEquipmentPropertiesWnd::OnCreate: logic confirmed by peer review
- fn_15039 CUIListBoxEx<EquipmentPropertiesWnd::CUIItemEquipmentPropertiesLine,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::AddNewItem: logic confirmed by peer review
- fn_15042 CUIListBoxEx<EquipmentPropertiesWnd::CUIItemEquipmentPropertiesLine,std::basic_string<char,std::char_traits<char>,std::allocator<char> > >::OnScroll: logic confirmed by peer review
- fn_15171 CUIEquipmentPropertiesWnd::SetTab: logic confirmed by peer review
- fn_16229 OngoingQuestInfo::CUIRewards::OnCreate: logic confirmed by peer review
- fn_16233 CUIListBoxEx<OngoingQuestInfo::CUIRewardItem,OngoingQuestInfo::CRewardItemData>::AddNewItem: logic confirmed by peer review
- fn_16317 CUIOngoingQuestInfo::SetQuest: logic confirmed by peer review
- fn_16814 CUIListBoxEx<SkillDelayInfo::CUIDelayItem,SkillDelayInfo::CDelayItemData>::AddNewItem: logic confirmed by peer review
- fn_16872 CUISkillDelayInfo::CUISkillDelayInfo: logic confirmed by peer review
- fn_16434 RenewQuestUI::CUIQuestItem::OnCreate: logic confirmed by peer review
- fn_16436 CUIRenewQuestUI::OnCreate: logic confirmed by peer review
- fn_16439 CUIListBoxEx<RenewQuestUI::CUIQuestItem,unsigned long>::AddNewItem: logic confirmed by peer review
- fn_16444 CUIListBoxEx<RenewQuestUI::CUIQuestItem,unsigned long>::OnScroll: logic confirmed by peer review
- fn_16624 CUIRenewQuestUI::OnInit: logic confirmed by peer review

Peer-reviewed-by: ragnarok-clanker
Reviewed-by: ragnarok-clanker
2026-11-09 12:32:04 +00:00

60 lines
1.6 KiB
C++

#ifndef RAGNAROK_SOURCE_UI_LISTS_UITHUMB_H
#define RAGNAROK_SOURCE_UI_LISTS_UITHUMB_H
#include "UI/Window/UIControl.h"
#include <cstddef>
#include <functional>
#include <string>
class CUIThumb : public CUIControl {
public:
CUIThumb();
~CUIThumb() override;
void ResetCursor(int x, int y) override;
void OnMouseHover(int x, int y) override;
void LoadSkin(bool resolveSkin) override;
__declspec(noinline) void SetImages(const std::string& top, const std::string& middle, const std::string& bottom);
void SetImage(const std::string& name);
/* 0080 */ unsigned char resizable;
/* 0084 */ CResPtr<CBitmapRes> top;
/* 0088 */ CResPtr<CBitmapRes> middle;
/* 008C */ CResPtr<CBitmapRes> bottom;
/* 0090 */ int dragOrigin;
/* 0094 */ unsigned char transparent;
/* 0098 */ std::string tooltip;
/* 00B0 */ std::string topName;
/* 00C8 */ std::string middleName;
/* 00E0 */ std::string bottomName;
/* 00F8 */ std::function<void(int)> onDrag;
};
class CUIVThumb : public CUIThumb {
public:
CUIVThumb();
void Paint() override;
void OnLBtnDown(int x, int y) override;
void OnMouseMove(int x, int y) override;
void OnLBtnUp(int x, int y) override;
};
class CUIHThumb : public CUIVThumb {
public:
CUIHThumb();
void Paint() override;
void OnLBtnDown(int x, int y) override;
void OnMouseMove(int x, int y) override;
void OnLBtnUp(int x, int y) override;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(offsetof(CUIThumb, dragOrigin) == 0x90);
static_assert(offsetof(CUIThumb, tooltip) == 0x98);
static_assert(offsetof(CUIThumb, onDrag) == 0xF8);
static_assert(sizeof(CUIThumb) == 0x120);
#endif
#endif