rodecomp/Source/UI/UIChangeMaterialWnd.h
ragnarok-clanker 18770c1ebf Maintenance: [forced, user-approved] Window-class layout correction (supersedes batches 10282 and 10283). Removed placeholder members
Batch #10284 by ragnarok-clanker: forced by an admin (109 lower score(s), 2846 changed function(s)); checked with 403 compiled unit(s), including every includer of Source/Contents/SignBoard/SignBoard.h, Source/UI/Acceptance/UIJoinPartyAcceptWnd.h, Source/UI/AdventureGuide/UIAdventureGuide.h, Source/UI/Buttons/UIBasicButton.h, Source/UI/Buttons/UIBitmapButton.h, Source/UI/Buttons/UIBmpRadioBtn.h, Source/UI/Buttons/UIBmpTextButton.h, Source/UI/Buttons/UIButton.h, Source/UI/Buttons/UICheckBox.h, Source/UI/Buttons/UIItemTagButton.h, Source/UI/Buttons/UIJobSlotButton.h, Source/UI/Buttons/UINaviLinkButton.h, Source/UI/Buttons/UIRadioBtn.h, Source/UI/Buttons/UITextButton.h, Source/UI/Buttons/UITextureButton.h, Source/UI/CashShop/UICashShopWnd.h, Source/UI/Chat/UIChatRoomTitle.h, Source/UI/Chat/UINewChatWnd.h, Source/UI/Chat/UISubChatHisWnd.h, Source/UI/Chat/UIWhisperWnd.h, Source/UI/Clan/UIClanWnd.h, Source/UI/Dialogs/UIChooseWarpWnd.h, Source/UI/Dialogs/UIChooseWnd.h, Source/UI/Dialogs/UIDisconnectedServerMsgWnd.h, Source/UI/Dialogs/UIEditctrlWnd.h, Source/UI/Dialogs/UIEmailAddressWnd.h, Source/UI/Dialogs/UIGraffiStrboxWnd.h, Source/UI/Dialogs/UIMemorialDunWnd.h, Source/UI/Dialogs/UIMenuWnd.h, Source/UI/Dialogs/UIMiniMapWnd.h, Source/UI/Dialogs/UIMinimapZoomWnd.h, Source/UI/Dialogs/UINoticeConfirmWnd.h, Source/UI/Dialogs/UINotifyLevelUpWnd.h, Source/UI/Dialogs/UINotifyQuestWnd.h, Source/UI/Dialogs/UINpcEditDialogWnd.h, Source/UI/Dialogs/UIPasswordWnd.h, Source/UI/Dialogs/UIProhibitListWnd.h, Source/UI/Dialogs/UIQuitWnd.h, Source/UI/Dialogs/UIRestartWnd.h, Source/UI/Dialogs/UISelectCartWnd.h, Source/UI/Dialogs/UITipOfTheDayWnd.h, Source/UI/Dialogs/UITipboxWnd.h, Source/UI/Dialogs/UIWaitWnd.h, Source/UI/Edit/UICandidateWnd.h, Source/UI/Edit/UIEditCtrl.h, Source/UI/EntryQueue/UIEntryQueueWnd.h, Source/UI/GameSettings/GameSettingsUI.h, Source/UI/Gauges/UIPcGage.h, Source/UI/Guild/UIAgitWnd.h, Source/UI/Guild/UIGuildHelperWnd.h, Source/UI/Guild/UIGuildWnd.h, Source/UI/Guild/UIGuild_Storage_Log.h, Source/UI/Item/UIItemBaseWnd.h, Source/UI/Item/UIItemStoreSubWnd.h, Source/UI/Item/UIParaItemShopWnd.h, Source/UI/Items/MergeItemWnd.h, Source/UI/Items/UICardItemIllustWnd.h, Source/UI/Items/UIIllustWnd.h, Source/UI/Items/UIItemParamChangeDisplayWnd.h, Source/UI/Items/UIItemRepairWnd.h, Source/UI/Items/UIMakeTargetListWnd.h, Source/UI/Items/UIMakeTargetProcessWnd.h, Source/UI/Items/UIMakeTargetResultWnd.h, Source/UI/Items/UISpellListWnd.h, Source/UI/Items/UISwapEquipmentWnd.h, Source/UI/Items/UIWeaponRefineWnd.h, Source/UI/Lists/UIChatHisBox.h, Source/UI/Lists/UIComboBox.h, Source/UI/Lists/UIComboBoxDefWnd.h, Source/UI/Lists/UIComboBoxEx.h, Source/UI/Lists/UIDropDownBox.h, Source/UI/Lists/UIImgMenu.h, Source/UI/Lists/UIListBox.h, Source/UI/Lists/UIListBoxEx.h, Source/UI/Lists/UIListBoxID.h, Source/UI/Lists/UIListBoxTemplate.h, Source/UI/Lists/UIMemberListBox.h, Source/UI/Lists/UITabControl.h, Source/UI/Lists/UIThumb.h, Source/UI/Lists/UITreeView.h, Source/UI/Lists/UIVScrollBar.h, Source/UI/Navigation/UINavigationV4Wnd.h, Source/UI/Party/UIAdvenPartyBoardWnd.h, Source/UI/Party/UIApplyForPartyWnd.h, Source/UI/Party/UIPartyInfoWnd.h, Source/UI/Party/UIPartySettingWnd.h, Source/UI/Party/UIRegisterPartyWnd.h, Source/UI/Party/UIRequestJoinPartyWnd.h, Source/UI/Quest/UIOngoingQuestInfo.h, Source/UI/Quest/UIQuestDisplay.h, Source/UI/Quest/UIRenewQuestUI.h, Source/UI/Quest/UIRenewQuestWnd.h, Source/UI/Rodex/UIRodexComposeWnd.h, Source/UI/Shop/UIMerchantItemPurchaseMSGWnd.h, Source/UI/Shop/UIMerchantShopMakeWnd.h, Source/UI/Shop/UIMerchantShopTitle.h, Source/UI/Shop/UINoticeMessageBox_LockSellItem.h, Source/UI/Shortcuts/UIQuickSlotWnd.h, Source/UI/Shortcuts/UIShortCutWnd.h, Source/UI/Skill/UISkillListWnd.h, Source/UI/Skill/UISkillNameChangeWnd.h, Source/UI/Status/UIStatusWnd.h, Source/UI/StylingShop/UIStylingShopWnd.h, Source/UI/Text/UIAchWnd.h, Source/UI/Text/UIBalloonText.h, Source/UI/Text/UIStaticText.h, Source/UI/Text/UIStaticTextControl.h, Source/UI/Text/UITextViewer.h, Source/UI/Text/UITransBalloonText.h, Source/UI/UIBarGraph.h, Source/UI/UIBasicCtrl.h, Source/UI/UIBroadcastBalloon.h, Source/UI/UICaptchaPreviewWnd.h, Source/UI/UICaptchaRegisterWnd.h, Source/UI/UIChangeMaterialWnd.h, Source/UI/UICheckAttendanceWnd.h, Source/UI/UIGradeEnchantWnd.h, Source/UI/UIHotkeyGuideWnd.h, Source/UI/UIItemReformWnd.h, Source/UI/UILapineScrollBar.h, Source/UI/UILapineUpgradeBoxWnd.h, Source/UI/UIMacroBlackListCheckWnd.h, Source/UI/UIMacroDetectorWnd.h, Source/UI/UIMacroUserInfoWnd.h, Source/UI/UIPreviewEquipWnd.h, Source/UI/UIRefiningWnd.h, Source/UI/UIReputeWnd.h, Source/UI/UIRoundBoxTooltipWnd.h, Source/UI/UIScrollWnd.h, Source/UI/UIStaticBitmap.h, Source/UI/UIStaticItem.h, Source/UI/Window/UIAccountLimitedToolWnd.h, Source/UI/Window/UIBalloonOpenBtn.h, Source/UI/Window/UIBank_NewWnd.h, Source/UI/Window/UIBasicInfoWnd.h, Source/UI/Window/UIBattleMsgOptionWnd.h, Source/UI/Window/UIChangeNameWnd.h, Source/UI/Window/UIChatRoomWnd.h, Source/UI/Window/UICntWnd.h, Source/UI/Window/UIControl.h, Source/UI/Window/UIDebuffRemoveWnd.h, Source/UI/Window/UIEscOptionWnd.h, Source/UI/Window/UIFrameWnd.h, Source/UI/Window/UIHomunInfoWnd.h, Source/UI/Window/UIJobListWnd.h, Source/UI/Window/UILoginOTPWnd.h, Source/UI/Window/UIMakeCharWnd.h, Source/UI/Window/UIMerInfoWnd.h, Source/UI/Window/UIMessageBox.h, Source/UI/Window/UIMileageWnd.h, Source/UI/Window/UIMonsterDisplayWnd.h, Source/UI/Window/UIMonsterInfoWnd.h, Source/UI/Window/UINavigationHelpWnd.h, Source/UI/Window/UINavigationWnd.h, Source/UI/Window/UINewMakeCharWnd.h, Source/UI/Window/UINewSelectCharWnd.h, Source/UI/Window/UINewSkillListWnd.h, Source/UI/Window/UINormalMB.h, Source/UI/Window/UINoteWnd.h, Source/UI/Window/UINoticeWnd.h, Source/UI/Window/UIOpenMailBoxWnd.h, Source/UI/Window/UIOpenRoulletteWnd.h, Source/UI/Window/UIPartyBookingHelpWnd.h, Source/UI/Window/UIPayConfirmWnd.h, Source/UI/Window/UIPetEvolutionWnd.h, Source/UI/Window/UIPetInfoWnd.h, Source/UI/Window/UIRebirthWnd.h, Source/UI/Window/UIReplayControlWnd.h, Source/UI/Window/UIReplayRECControlWnd.h, Source/UI/Window/UIRodexContentsWnd.h, Source/UI/Window/UIRoulletteWnd.h, Source/UI/Window/UISecondCostumeWnd.h, Source/UI/Window/UISeekPartyListWnd.h, Source/UI/Window/UISeekPartyMBWnd.h, Source/UI/Window/UISeekPartyWnd.h, Source/UI/Window/UISelectReplayDataWnd.h, Source/UI/Window/UISelectServerWnd.h, Source/UI/Window/UISerachStoreInfoWnd.h, Source/UI/Window/UIShowWarpWnd.h, Source/UI/Window/UITalkboxTrapInputWnd.h, Source/UI/Window/UITransMenuWnd.h, Source/UI/Window/UIViewCameraInfoWnd.h, Source/UI/Window/UIWindow.h.
2026-11-03 18:46:49 +00:00

148 lines
4.6 KiB
C++

#ifndef RAGNAROK_SOURCE_UI_UICHANGEMATERIALWND_H
#define RAGNAROK_SOURCE_UI_UICHANGEMATERIALWND_H
#include "Contents/Items/ItemInfo.h"
#include "UI/Buttons/UICheckBox.h"
#include "UI/Lists/UIScrollBar.h"
#include "UI/Window/UIFrameWnd.h"
#include <cstdint>
#include <string>
#include <vector>
class UIButton;
class UIEditCtrl;
class UIChangeMaterialWnd_List;
struct MaterialSlotPos {
/* 0000 */ int x;
/* 0004 */ int y;
};
struct MaterialReq {
/* 0000 */ int id;
/* 0004 */ int quantity;
};
struct MaterialResult {
/* 0000 */ int id;
/* 0004 */ int quantity;
/* 0008 */ int amount;
};
struct MaterialListEntry {
/* 0000 */ unsigned char state;
/* 0004 */ std::vector<MaterialReq> materials;
/* 0010 */ std::vector<MaterialResult> results;
};
struct MaterialNameLess {
bool operator()(unsigned int first, unsigned int second) const;
/* 0000 */ std::vector<MaterialListEntry> entries;
};
class UIChangeMaterialWnd_ScrollBar : public UIScrollBar {
public:
// VTABLE: vt_00211
UIChangeMaterialWnd_ScrollBar();
void Paint() override;
};
class UIChangeMaterialWnd_CheckBox : public UICheckBox {
public:
// INLINED
UIChangeMaterialWnd_CheckBox() : UICheckBox() {}
void Paint() override;
/* 010C */ std::string ascendingText;
/* 0124 */ std::string descendingText;
};
class UIChangeMaterialWnd : public UIFrameWnd {
public:
UIChangeMaterialWnd();
void Slot15(int width, int height) override;
bool Slot02() override;
void Paint() override;
void Slot28(int x, int y) override;
void Slot32(int x, int y) override;
ITEM_INFO* GetItemAt(int x, int y);
void sub_5E39A0();
void UpdateSearchPlaceholder();
int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4)
override;
/* 00B4 */ UIChangeMaterialWnd_List* unknown_00B4;
/* 00B8 */ UIEditCtrl* unknown_00B8;
/* 00BC */ UIChangeMaterialWnd_CheckBox* m_sortBox;
/* 00C0 */ UIButton* m_button;
/* 00C4 */ int m_resultX;
/* 00C8 */ int m_resultY;
/* 00D0 */ ITEM_INFO m_resultItem;
/* 01C8 */ MaterialSlotPos m_materialPos[6];
/* 01F8 */ std::vector<ITEM_INFO> m_materials;
/* 0204 */ int m_resultAmount;
/* 0208 */ std::string m_resultText;
};
class UIChangeMaterialWnd_List : public UIFrameWnd {
public:
UIChangeMaterialWnd_List();
void Paint() override;
void Move(int x, int y) override;
void Slot28(int x, int y) override;
void Slot27(int x, int y) override;
void Slot35(int argument) override;
int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4)
override;
void ApplyFilter(std::string text);
void SortItems(bool ascending);
void RefreshVisibleEntries();
void sub_5E2A70();
void sub_5E3B80(int index);
void sub_5E2590(int unknown, int position);
void sub_5E1080(int delta);
void ShiftSelectedIndex(int value);
void CreateScrollBar(int width, int height);
/* 00B4 */ int unknown_00B4;
/* 00B8 */ int unknown_00B8;
/* 00BC */ int m_pageSize;
/* 00C0 */ int64_t m_selectedIndex;
/* 00C8 */ int64_t m_hoverIndex;
/* 00D0 */ int m_scrollOffset;
/* 00D4 */ int m_previousScrollOffset;
/* 00D8 */ UIScrollBar* m_scrollBar;
/* 00DC */ std::vector<int> m_items;
/* 00E8 */ std::vector<MaterialListEntry> m_entries;
/* 00F4 */ std::uint32_t unknown_00F4;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(offsetof(UIChangeMaterialWnd, m_resultX) == 0xC4);
static_assert(offsetof(UIChangeMaterialWnd, m_resultItem) == 0xD0);
static_assert(offsetof(UIChangeMaterialWnd, m_materialPos) == 0x1C8);
static_assert(offsetof(UIChangeMaterialWnd, m_materials) == 0x1F8);
static_assert(offsetof(UIChangeMaterialWnd, m_resultAmount) == 0x204);
static_assert(offsetof(UIChangeMaterialWnd, m_resultText) == 0x208);
static_assert(sizeof(UIChangeMaterialWnd_List) == 0xF8);
static_assert(offsetof(UIChangeMaterialWnd_List, m_pageSize) == 0xBC);
static_assert(offsetof(UIChangeMaterialWnd_List, m_selectedIndex) == 0xC0);
static_assert(offsetof(UIChangeMaterialWnd_List, m_hoverIndex) == 0xC8);
static_assert(offsetof(UIChangeMaterialWnd_List, m_scrollOffset) == 0xD0);
static_assert(offsetof(UIChangeMaterialWnd_List, m_previousScrollOffset) == 0xD4);
static_assert(offsetof(UIChangeMaterialWnd_List, m_items) == 0xDC);
static_assert(offsetof(UIChangeMaterialWnd_List, m_entries) == 0xE8);
static_assert(sizeof(MaterialListEntry) == 0x1C);
static_assert(offsetof(MaterialListEntry, materials) == 0x4);
static_assert(offsetof(MaterialListEntry, results) == 0x10);
static_assert(sizeof(MaterialResult) == 0xC);
static_assert(sizeof(MaterialReq) == 0x8);
#endif
#endif