diff --git a/Source/UI/Buttons/UIBmpTextButton2.cpp b/Source/UI/Buttons/UIBmpTextButton2.cpp new file mode 100644 index 00000000..422b9749 --- /dev/null +++ b/Source/UI/Buttons/UIBmpTextButton2.cpp @@ -0,0 +1,6 @@ +#include "Resource/Bitmap/BitmapResource.h" +#include "Resource/ResourceMgr.h" +#include "Resource/TextureNames.h" +#include "UI/Buttons/UIBmpTextButton2.h" + +// OFFSET: 0x0085BCF0 diff --git a/Source/UI/Buttons/UIBmpTextButton2.h b/Source/UI/Buttons/UIBmpTextButton2.h index 95ec49d4..d5ee980f 100644 --- a/Source/UI/Buttons/UIBmpTextButton2.h +++ b/Source/UI/Buttons/UIBmpTextButton2.h @@ -20,6 +20,7 @@ struct BmpTextButtonLabel { class UIBmpTextButton2 : public UIBitmapButton { public: + void Paint() override; void DrawLabels(); /* 0120 */ std::vector labels; diff --git a/Source/UI/Buttons/UIColorButton.cpp b/Source/UI/Buttons/UIColorButton.cpp new file mode 100644 index 00000000..8d9437d8 --- /dev/null +++ b/Source/UI/Buttons/UIColorButton.cpp @@ -0,0 +1,5 @@ +#include "Resource/ResourceMgr.h" +#include "Resource/SkinPalette.h" +#include "UI/Buttons/UIColorButton.h" + +// OFFSET: 0x0085C9A0 diff --git a/Source/UI/Buttons/UIColorButton.h b/Source/UI/Buttons/UIColorButton.h new file mode 100644 index 00000000..91090928 --- /dev/null +++ b/Source/UI/Buttons/UIColorButton.h @@ -0,0 +1,18 @@ +#ifndef RAGNAROK_SOURCE_UI_BUTTONS_UICOLORBUTTON_H +#define RAGNAROK_SOURCE_UI_BUTTONS_UICOLORBUTTON_H + +#include "UI/Buttons/UIButton.h" + +class UIColorButton : public UIButton { +public: + void Paint() override; + + /* 00B4 */ unsigned activeRed; + /* 00B8 */ unsigned activeGreen; + /* 00BC */ unsigned activeBlue; + /* 00C0 */ unsigned normalRed; + /* 00C4 */ unsigned normalGreen; + /* 00C8 */ unsigned normalBlue; +}; + +#endif diff --git a/Source/UI/Buttons/UINoneVisibleButton.cpp b/Source/UI/Buttons/UINoneVisibleButton.cpp new file mode 100644 index 00000000..62c824a3 --- /dev/null +++ b/Source/UI/Buttons/UINoneVisibleButton.cpp @@ -0,0 +1,7 @@ +#include "UI/Buttons/UINoneVisibleButton.h" + +// OFFSET: 0x0085D460 +// FUNCTION: fn_10813 +void UINoneVisibleButton::Paint() { + this->ClearSurface(0xFFFF00FF); +} diff --git a/Source/UI/Buttons/UINoneVisibleButton.h b/Source/UI/Buttons/UINoneVisibleButton.h new file mode 100644 index 00000000..dbbf56fc --- /dev/null +++ b/Source/UI/Buttons/UINoneVisibleButton.h @@ -0,0 +1,11 @@ +#ifndef RAGNAROK_SOURCE_UI_BUTTONS_UINONEVISIBLEBUTTON_H +#define RAGNAROK_SOURCE_UI_BUTTONS_UINONEVISIBLEBUTTON_H + +#include "UI/Buttons/UIButton.h" + +class UINoneVisibleButton : public UIButton { +public: + void Paint() override; +}; + +#endif diff --git a/Source/UI/Buttons/UIRadioBtn.cpp b/Source/UI/Buttons/UIRadioBtn.cpp new file mode 100644 index 00000000..95039692 --- /dev/null +++ b/Source/UI/Buttons/UIRadioBtn.cpp @@ -0,0 +1,15 @@ +#include "Resource/Bitmap/BitmapResource.h" +#include "Resource/ResourceMgr.h" +#include "Resource/TextureNames.h" +#include "UI/Buttons/UIButton.h" +#include "UI/Buttons/UIRadioBtn.h" + +// OFFSET: 0x0085D470 + +// OFFSET: 0x0085ECB0 +// FUNCTION: fn_10844 +void UIRadioBtn::Slot25(int, int) { + if (this->parent && this->enabled != 0) { + this->parent->SendMsg(this, 6, this->geometry.id, this->value, 0, 0); + } +} diff --git a/Source/UI/Buttons/UIRadioBtn.h b/Source/UI/Buttons/UIRadioBtn.h new file mode 100644 index 00000000..b2c8a58f --- /dev/null +++ b/Source/UI/Buttons/UIRadioBtn.h @@ -0,0 +1,30 @@ +#ifndef RAGNAROK_SOURCE_UI_BUTTONS_UIRADIOBTN_H +#define RAGNAROK_SOURCE_UI_BUTTONS_UIRADIOBTN_H + +#include "UI/Window/UIWindow.h" + +#include +#include + +struct UIButtonContext; + +class UIRadioBtn : public UIWindow { +public: + void Paint() override; + void Slot25(int x, int y) override; + + /* 007C */ std::string text; + /* 0094 */ int enabled; + /* 0098 */ int highlighted; + /* 009C */ int value; + /* 00A0 */ std::string tooltip; + /* 00B8 */ std::string checkedBitmap; + /* 00D0 */ std::string uncheckedBitmap; + /* 00E8 */ int fontHeight; + /* 00EC */ std::uint32_t textColor; + +protected: + UIButtonContext* m_controls; +}; + +#endif diff --git a/Source/UI/Buttons/UITextureButton.cpp b/Source/UI/Buttons/UITextureButton.cpp new file mode 100644 index 00000000..b345a0bd --- /dev/null +++ b/Source/UI/Buttons/UITextureButton.cpp @@ -0,0 +1,12 @@ +#include "Client/Mode/ModeEvents.h" +#include "UI/Buttons/UITextureButton.h" +#include "UI/Window/UIWindowMgr.h" +#include "UI/Window/WindowPolicy.h" + +// OFFSET: 0x0085E070 +// FUNCTION: fn_10822 +void UITextureButton::Paint() { +} + +// OFFSET: 0x0085F060 +// OFFSET: 0x03DE9CE2 diff --git a/Source/UI/Buttons/UITextureButton.h b/Source/UI/Buttons/UITextureButton.h index ca43f1de..afbfc5ff 100644 --- a/Source/UI/Buttons/UITextureButton.h +++ b/Source/UI/Buttons/UITextureButton.h @@ -8,6 +8,8 @@ class UITextureButton : public UIButton { public: + void Paint() override; + void Slot31(int x, int y) override; void VisitChildren() override; /* 00BC */ std::string normalTexture; diff --git a/Source/UI/Chat/UIChatRoomTitle.cpp b/Source/UI/Chat/UIChatRoomTitle.cpp new file mode 100644 index 00000000..a815253e --- /dev/null +++ b/Source/UI/Chat/UIChatRoomTitle.cpp @@ -0,0 +1,9 @@ +#include "Client/Mode/ModeCursor.h" +#include "Resource/Bitmap/BitmapResource.h" +#include "Resource/ResourceMgr.h" +#include "Resource/TextureNames.h" +#include "UI/Chat/UIChatRoomTitle.h" + +// OFFSET: 0x0085C690 + +// OFFSET: 0x0085F980 diff --git a/Source/UI/Chat/UIChatRoomTitle.h b/Source/UI/Chat/UIChatRoomTitle.h new file mode 100644 index 00000000..16ee8c6e --- /dev/null +++ b/Source/UI/Chat/UIChatRoomTitle.h @@ -0,0 +1,19 @@ +#ifndef RAGNAROK_SOURCE_UI_CHAT_UICHATROOMTITLE_H +#define RAGNAROK_SOURCE_UI_CHAT_UICHATROOMTITLE_H + +#include "UI/Window/UIWindow.h" + +#include + +class UIChatRoomTitle : public UIWindow { +public: + void Paint() override; + void ResetCursor(int x, int y) override; + + /* 007C */ int unknown_007C; + /* 0080 */ std::string title; + /* 0098 */ std::string unknown_0098; + /* 00B0 */ int roomType; +}; + +#endif diff --git a/Source/UI/Edit/UIEditCtrl.h b/Source/UI/Edit/UIEditCtrl.h index e04b5424..9ba3c9a0 100644 --- a/Source/UI/Edit/UIEditCtrl.h +++ b/Source/UI/Edit/UIEditCtrl.h @@ -122,12 +122,14 @@ struct UIEditCtrl3Table { class UIEditCtrl3 : public UIEditCtrl2 { public: UIEditCtrl3(UIWindowContext& windows, UIEditContext& edit); + void Paint() override; + void Slot35(int value) override; void PlaceTags(const int& x, const int& y, const int& firstLine, const int& endLine, const int& line, const int& unused); /* 011C */ std::list> entries; /* 0124 */ std::vector unknown_0124; - /* 0130 */ int unknown_0130; + /* 0130 */ UIWindow* unknown_0130; /* 0134 */ unsigned char unknown_0134; /* 0138 */ int unknown_0138; /* 013C */ int unknown_013C; @@ -172,6 +174,34 @@ public: int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override; }; +class UIBitmapEditCtrl : public UIEditCtrl { +public: + void Paint() override; + + /* 011C */ std::string bitmapName; +}; + +class UIChatEditCtrl : public UIEditCtrl { +public: + void Slot25(int x, int y) override; +}; + +class UIEditCtrl_OldList : public UIEditCtrl { +public: + void Paint() override; + void Slot35(int value) override; + + /* 011C */ std::string bitmapName; + /* 0134 */ std::vector history; + /* 0140 */ int historyIndex; +}; + +class UIEditCtrlVarId : public UIEditCtrl { +public: + void Slot24(int retained) override; + void Slot35(int value) override; +}; + #if defined(_WIN32) && !defined(_WIN64) static_assert(sizeof(UIEditCtrl) == 292); static_assert(sizeof(UIEditCtrlWheel) == 292); diff --git a/Source/UI/Edit/UIEditVariants.cpp b/Source/UI/Edit/UIEditVariants.cpp index af54bbcf..0db29c9e 100644 --- a/Source/UI/Edit/UIEditVariants.cpp +++ b/Source/UI/Edit/UIEditVariants.cpp @@ -1,4 +1,9 @@ #include "Client/Input/Language.h" +#include "Contents/SkinMgr.h" +#include "Resource/Bitmap/BitmapResource.h" +#include "Resource/ResourceMgr.h" +#include "Resource/SkinPalette.h" +#include "Resource/TextureNames.h" #include "UI/Window/InputFocus.h" #include "UI/Edit/UIEditCtrl.h" @@ -101,3 +106,25 @@ int UIEditCtrl5::SendMsg(UIWindow* sender, int message, std::intptr_t a, std::in return 0; } + +// OFFSET: 0x0085CBF0 + +// OFFSET: 0x0085FF60 + +// OFFSET: 0x0085BB60 + +// OFFSET: 0x0085EB50 + +// OFFSET: 0x0085CDE0 + +// OFFSET: 0x0085FFC0 + +// OFFSET: 0x0085E3D0 +// FUNCTION: fn_10827 +void UIEditCtrlVarId::Slot24(int) { + this->Synchronize(); + this->Invalidate(); + this->SendMsg(this, 0, 0, 0, 0, 0); +} + +// OFFSET: 0x0085FFA0 diff --git a/Source/UI/Shop/UIMerchantShopTitle.cpp b/Source/UI/Shop/UIMerchantShopTitle.cpp new file mode 100644 index 00000000..8e8032bb --- /dev/null +++ b/Source/UI/Shop/UIMerchantShopTitle.cpp @@ -0,0 +1,11 @@ +#include "Client/Mode/ModeCursor.h" +#include "Client/Mode/ModeMgr.h" +#include "Contents/Configuration/ServiceOptions.h" +#include "UI/Shop/UIMerchantShopTitle.h" +#include "UI/Window/UIWindowMgr.h" + +// OFFSET: 0x0085EC40 + +// OFFSET: 0x0085E920 + +// OFFSET: 0x0085F9E0 diff --git a/Source/UI/Shop/UIMerchantShopTitle.h b/Source/UI/Shop/UIMerchantShopTitle.h new file mode 100644 index 00000000..4d3509af --- /dev/null +++ b/Source/UI/Shop/UIMerchantShopTitle.h @@ -0,0 +1,20 @@ +#ifndef RAGNAROK_SOURCE_UI_SHOP_UIMERCHANTSHOPTITLE_H +#define RAGNAROK_SOURCE_UI_SHOP_UIMERCHANTSHOPTITLE_H + +#include "UI/Window/UIWindow.h" + +#include + +class UIMerchantShopTitle : public UIWindow { +public: + void Slot25(int x, int y) override; + void Slot26(int x, int y) override; + void ResetCursor(int x, int y) override; + + /* 007C */ int unknown_007C; + /* 0080 */ std::uint32_t ownerAid; + /* 0084 */ int unknown_0084; + /* 0088 */ int buyingShop; +}; + +#endif diff --git a/Source/UI/Text/UIBalloonText.cpp b/Source/UI/Text/UIBalloonText.cpp index 60fed1a7..56b8d42e 100644 --- a/Source/UI/Text/UIBalloonText.cpp +++ b/Source/UI/Text/UIBalloonText.cpp @@ -1,7 +1,10 @@ #include "Render/DeviceContext/DeviceContext.h" #include "Render/Text/TextContext.h" +#include "Resource/EmblemResource.h" +#include "Resource/ResourceMgr.h" #include "UI/Text/TextWrapping.h" #include "UI/Text/UIBalloonText.h" +#include "UI/Text/UINameBalloonText.h" #include @@ -124,3 +127,5 @@ void UIBalloonText::Paint() { y = (y + (height + 4)); } } + +// OFFSET: 0x0085FC90 diff --git a/Source/UI/Text/UINameBalloonText.h b/Source/UI/Text/UINameBalloonText.h new file mode 100644 index 00000000..3bd0823e --- /dev/null +++ b/Source/UI/Text/UINameBalloonText.h @@ -0,0 +1,15 @@ +#ifndef RAGNAROK_SOURCE_UI_TEXT_UINAMEBALLOONTEXT_H +#define RAGNAROK_SOURCE_UI_TEXT_UINAMEBALLOONTEXT_H + +#include "UI/Text/UIBalloonText.h" + +#include + +class UINameBalloonText : public UIBalloonText { +public: + void Slot19() override; + + /* 00A0 */ std::string iconName; +}; + +#endif diff --git a/Source/UI/Text/UIStaticText.cpp b/Source/UI/Text/UIStaticText.cpp index 6a123b21..ecd7083b 100644 --- a/Source/UI/Text/UIStaticText.cpp +++ b/Source/UI/Text/UIStaticText.cpp @@ -113,3 +113,5 @@ void UIStaticText::Slot33(int x, int y) { void UIStaticText::Slot35(int value) { this->parent->Slot35(value); } + +// OFFSET: 0x0085DCA0 diff --git a/Source/UI/Text/UIStaticText.h b/Source/UI/Text/UIStaticText.h index 4fa56bbb..9a3cc2dd 100644 --- a/Source/UI/Text/UIStaticText.h +++ b/Source/UI/Text/UIStaticText.h @@ -38,10 +38,17 @@ public: /* 00A8 */ std::string text; /* 00C0 */ std::string tooltip; -private: +protected: UIButtonContext* m_controls; }; +class UIStaticText3 : public UIStaticText { +public: + void Paint() override; + + /* 00D8 */ int textX; +}; + #if defined(_WIN32) && !defined(_WIN64) static_assert(sizeof(UIStaticText) == 224); #endif diff --git a/Source/UI/Text/UITransBalloonText.cpp b/Source/UI/Text/UITransBalloonText.cpp index d7d8a3eb..fb3f04e0 100644 --- a/Source/UI/Text/UITransBalloonText.cpp +++ b/Source/UI/Text/UITransBalloonText.cpp @@ -128,3 +128,5 @@ void UITransBalloonText::Paint() { y = (y + (lineHeight + 4)); } } + +// OFFSET: 0x0085CBA0 diff --git a/Source/UI/Text/UITransBalloonText.h b/Source/UI/Text/UITransBalloonText.h index b0d00d27..0bc38114 100644 --- a/Source/UI/Text/UITransBalloonText.h +++ b/Source/UI/Text/UITransBalloonText.h @@ -44,6 +44,7 @@ class UIColorTransBalloonText : public UITransBalloonText { public: // INLINED UIColorTransBalloonText(UIWindowContext& windows, BalloonTextContext& text) : UITransBalloonText(windows, text) {} + void Paint() override; }; #if defined(_WIN32) && !defined(_WIN64) diff --git a/Source/UI/UISlotBitmap.cpp b/Source/UI/UISlotBitmap.cpp new file mode 100644 index 00000000..983fc72c --- /dev/null +++ b/Source/UI/UISlotBitmap.cpp @@ -0,0 +1,27 @@ +#include "UI/UISlotBitmap.h" + +// OFFSET: 0x0085E980 +// FUNCTION: fn_10833 +void UISlotBitmap::Slot26(int, int) { + if (this->parent) { + this->parent->SendMsg(this, 6, 184, 0, 0, 0); + } +} + +// OFFSET: 0x0085ED30 +// FUNCTION: fn_10846 +void UISlotBitmap::Slot25(int, int) { + if (this->parent) { + this->parent->SendMsg(this, 13, this->slot, 0, 0, 0); + this->parent->SendMsg(this, 6, this->geometry.id, 0, 0, 0); + } +} + +// OFFSET: 0x0085FE60 +// FUNCTION: fn_10887 +void UISlotBitmap::Slot32(int, int) { + if (this->parent) { + this->parent->SendMsg(this, 13, this->slot, 0, 0, 0); + this->parent->SendMsg(this, 6, this->geometry.id, 226, 0, 0); + } +} diff --git a/Source/UI/UISlotBitmap.h b/Source/UI/UISlotBitmap.h new file mode 100644 index 00000000..97060fbe --- /dev/null +++ b/Source/UI/UISlotBitmap.h @@ -0,0 +1,17 @@ +#ifndef RAGNAROK_SOURCE_UI_UISLOTBITMAP_H +#define RAGNAROK_SOURCE_UI_UISLOTBITMAP_H + +#include "UI/UIStaticBitmap.h" + +class UISlotBitmap : public UIStaticBitmap { +public: + void Slot25(int x, int y) override; + void Slot26(int x, int y) override; + void Slot32(int x, int y) override; + + /* 00B8 */ unsigned char unknown_00B8; + /* 00BC */ int unknown_00BC; + /* 00C0 */ int slot; +}; + +#endif diff --git a/Source/UI/Window/UIBitmapTab.cpp b/Source/UI/Window/UIBitmapTab.cpp new file mode 100644 index 00000000..52ccff3b --- /dev/null +++ b/Source/UI/Window/UIBitmapTab.cpp @@ -0,0 +1,9 @@ +#include "Resource/Bitmap/BitmapResource.h" +#include "Resource/ResourceMgr.h" +#include "Resource/TextureNames.h" +#include "UI/Window/UIBitmapTab.h" +#include "Utility/Text/FormatString.h" + +// OFFSET: 0x0085BBC0 + +// OFFSET: 0x0085EA90 diff --git a/Source/UI/Window/UIBitmapTab.h b/Source/UI/Window/UIBitmapTab.h new file mode 100644 index 00000000..5526dee4 --- /dev/null +++ b/Source/UI/Window/UIBitmapTab.h @@ -0,0 +1,26 @@ +#ifndef RAGNAROK_SOURCE_UI_WINDOW_UIBITMAPTAB_H +#define RAGNAROK_SOURCE_UI_WINDOW_UIBITMAPTAB_H + +#include "UI/Window/UIWindow.h" + +#include +#include + +struct BitmapTabEntry { + /* 0000 */ int height; + /* 0004 */ std::string name; +}; + +class UIBitmapTab : public UIWindow { +public: + void Paint() override; + void Slot25(int x, int y) override; + + /* 007C */ std::vector tabs; +}; + +#if defined(_WIN32) && !defined(_WIN64) +static_assert(sizeof(BitmapTabEntry) == 0x1C); +#endif + +#endif diff --git a/Source/UI/Window/UIEmblemWnd.cpp b/Source/UI/Window/UIEmblemWnd.cpp new file mode 100644 index 00000000..f14ef9e4 --- /dev/null +++ b/Source/UI/Window/UIEmblemWnd.cpp @@ -0,0 +1,16 @@ +#include "Client/Session.h" +#include "Contents/Actors/RenderObject.h" +#include "Contents/Configuration/ServiceOptions.h" +#include "Contents/GuildMgr.h" +#include "Render/Renderer.h" +#include "Resource/Bitmap/BitmapResource.h" +#include "Resource/EmblemResource.h" +#include "Resource/ResourceMgr.h" +#include "Resource/TextureNames.h" +#include "UI/Window/UIEmblemWnd.h" + +#include + +// OFFSET: 0x0085CE40 + +// OFFSET: 0x0085FAF0 diff --git a/Source/UI/Window/UIEmblemWnd.h b/Source/UI/Window/UIEmblemWnd.h new file mode 100644 index 00000000..07db05a9 --- /dev/null +++ b/Source/UI/Window/UIEmblemWnd.h @@ -0,0 +1,19 @@ +#ifndef RAGNAROK_SOURCE_UI_WINDOW_UIEMBLEMWND_H +#define RAGNAROK_SOURCE_UI_WINDOW_UIEMBLEMWND_H + +#include "UI/Window/UIWindow.h" + +#include + +class UIEmblemWnd : public UIWindow { +public: + void Slot19() override; + void Paint() override; + + /* 007C */ int screenX; + /* 0080 */ int screenY; + /* 0084 */ std::uint32_t aid; + /* 0088 */ std::uint32_t guildId; +}; + +#endif diff --git a/Source/UI/Window/UIResizer.cpp b/Source/UI/Window/UIResizer.cpp new file mode 100644 index 00000000..470a7690 --- /dev/null +++ b/Source/UI/Window/UIResizer.cpp @@ -0,0 +1,17 @@ +#include "Client/Mode/ModeCursor.h" +#include "Resource/Bitmap/BitmapResource.h" +#include "Resource/ResourceMgr.h" +#include "Resource/TextureNames.h" +#include "UI/Window/UIResizer.h" +#include "UI/Window/UIWindowMgr.h" + +// OFFSET: 0x0085D650 + +// OFFSET: 0x0085F470 +// FUNCTION: fn_10862 +void UIResizer::Slot28(int, int) { +} + +// OFFSET: 0x0085FA20 + +// OFFSET: 0x0085EFD0 diff --git a/Source/UI/Window/UIResizer.h b/Source/UI/Window/UIResizer.h new file mode 100644 index 00000000..50e7f8fa --- /dev/null +++ b/Source/UI/Window/UIResizer.h @@ -0,0 +1,26 @@ +#ifndef RAGNAROK_SOURCE_UI_WINDOW_UIRESIZER_H +#define RAGNAROK_SOURCE_UI_WINDOW_UIRESIZER_H + +#include "UI/Window/UIWindow.h" + +#include +#include + +class UIResizer : public UIWindow { +public: + void Paint() override; + void Slot28(int x, int y) override; + void ResetCursor(int x, int y) override; + void Slot31(int x, int y) override; + + /* 007C */ std::string bitmapName; + /* 0094 */ int startX; + /* 0098 */ int startY; + /* 009C */ int direction; + /* 00A0 */ int parentWidth; + /* 00A4 */ int parentHeight; + /* 00A8 */ std::uint32_t lineColor; + /* 00AC */ std::uint32_t backgroundColor; +}; + +#endif diff --git a/Source/UI/Window/UITab.cpp b/Source/UI/Window/UITab.cpp new file mode 100644 index 00000000..41d7b3ba --- /dev/null +++ b/Source/UI/Window/UITab.cpp @@ -0,0 +1,10 @@ +#include "Resource/Bitmap/BitmapResource.h" +#include "Resource/ResourceMgr.h" +#include "Resource/TextureNames.h" +#include "UI/Window/UITab.h" + +#include + +// OFFSET: 0x0085DFC0 + +// OFFSET: 0x0085EE70 diff --git a/Source/UI/Window/UITab.h b/Source/UI/Window/UITab.h new file mode 100644 index 00000000..3d986487 --- /dev/null +++ b/Source/UI/Window/UITab.h @@ -0,0 +1,15 @@ +#ifndef RAGNAROK_SOURCE_UI_WINDOW_UITAB_H +#define RAGNAROK_SOURCE_UI_WINDOW_UITAB_H + +#include "UI/Window/UIWindow.h" + +class UITab : public UIWindow { +public: + void Paint() override; + void Slot25(int x, int y) override; + + /* 007C */ int tabCount; + /* 0080 */ int style; +}; + +#endif diff --git a/Source/UI/Window/UIWordDisplayWnd.cpp b/Source/UI/Window/UIWordDisplayWnd.cpp new file mode 100644 index 00000000..8e7e6a2a --- /dev/null +++ b/Source/UI/Window/UIWordDisplayWnd.cpp @@ -0,0 +1,14 @@ +#include "Client/Mode/CGameMode.h" +#include "Client/Mode/ModeMgr.h" +#include "Client/Session.h" +#include "Contents/Actors/Pc.h" +#include "Contents/World/World.h" +#include "Render/Renderer.h" +#include "Resource/Bitmap/BitmapResource.h" +#include "Resource/ResourceMgr.h" +#include "Resource/TextureNames.h" +#include "UI/Window/UIWordDisplayWnd.h" + +// OFFSET: 0x0085E370 + +// OFFSET: 0x0085FD30 diff --git a/Source/UI/Window/UIWordDisplayWnd.h b/Source/UI/Window/UIWordDisplayWnd.h new file mode 100644 index 00000000..9a6d8cbb --- /dev/null +++ b/Source/UI/Window/UIWordDisplayWnd.h @@ -0,0 +1,20 @@ +#ifndef RAGNAROK_SOURCE_UI_WINDOW_UIWORDDISPLAYWND_H +#define RAGNAROK_SOURCE_UI_WINDOW_UIWORDDISPLAYWND_H + +#include "UI/Window/UIFrameWnd.h" + +#include +#include + +class UIWordDisplayWnd : public UIFrameWnd { +public: + void Slot19() override; + void Paint() override; + + /* 00B4 */ int screenX; + /* 00B8 */ int screenY; + /* 00BC */ std::string text; + /* 00D4 */ std::uint32_t aid; +}; + +#endif diff --git a/data/compile.json b/data/compile.json index 8a4b13a1..039ac428 100644 --- a/data/compile.json +++ b/data/compile.json @@ -690,12 +690,18 @@ "Source/UI/Buttons/UIBasicButton.cpp": 2, "Source/UI/Buttons/UIBitmapButton.cpp": 2, "Source/UI/Buttons/UIBmpTextButton.cpp": 2, + "Source/UI/Buttons/UIBmpTextButton2.cpp": 2, "Source/UI/Buttons/UIButton.cpp": 2, "Source/UI/Buttons/UICheckBox.cpp": 2, + "Source/UI/Buttons/UIColorButton.cpp": 2, "Source/UI/Buttons/UIJobSlotButton.cpp": 2, "Source/UI/Buttons/UINaviLinkButton.cpp": 2, + "Source/UI/Buttons/UINoneVisibleButton.cpp": 2, + "Source/UI/Buttons/UIRadioBtn.cpp": 2, "Source/UI/Buttons/UITextButton.cpp": 2, + "Source/UI/Buttons/UITextureButton.cpp": 2, "Source/UI/Chat/ChatSuggestions.cpp": 2, + "Source/UI/Chat/UIChatRoomTitle.cpp": 2, "Source/UI/Cooldowns/CooldownDrawing.cpp": 2, "Source/UI/Cooldowns/CooldownOwner.cpp": 2, "Source/UI/Cooldowns/CooldownState.cpp": 2, @@ -748,6 +754,7 @@ "Source/UI/Shop/ItemDrawing.cpp": 2, "Source/UI/Shop/MerchantShopRefresh.cpp": 2, "Source/UI/Shop/PriceColor.cpp": 2, + "Source/UI/Shop/UIMerchantShopTitle.cpp": 2, "Source/UI/Shortcuts/NormalItemSlotLoad.cpp": 2, "Source/UI/Shortcuts/ShortcutActivation.cpp": 2, "Source/UI/Shortcuts/ShortcutBindings.cpp": 2, @@ -790,24 +797,30 @@ "Source/UI/UIMacroUserInfoWnd.cpp": 2, "Source/UI/UIRoundBoxTooltipWnd.cpp": 2, "Source/UI/UIScrollWnd.cpp": 2, + "Source/UI/UISlotBitmap.cpp": 2, "Source/UI/UIStaticBitmap.cpp": 2, "Source/UI/Window/FrameFocus.cpp": 2, "Source/UI/Window/FrameTextCache.cpp": 2, "Source/UI/Window/InputFocus.cpp": 2, "Source/UI/Window/UIBasicInfoWnd.cpp": 2, + "Source/UI/Window/UIBitmapTab.cpp": 2, "Source/UI/Window/UIControl.cpp": 2, "Source/UI/Window/UIDebuffRemoveWnd.cpp": 2, + "Source/UI/Window/UIEmblemWnd.cpp": 2, "Source/UI/Window/UIFrameWnd.cpp": 2, "Source/UI/Window/UIMessageBox.cpp": 2, "Source/UI/Window/UIMileageWnd.cpp": 2, "Source/UI/Window/UINormalMB.cpp": 2, "Source/UI/Window/UIOpenMailBoxWnd.cpp": 2, "Source/UI/Window/UIOpenRoulletteWnd.cpp": 2, + "Source/UI/Window/UIResizer.cpp": 2, "Source/UI/Window/UISecondCostumeWnd.cpp": 2, "Source/UI/Window/UISeekPartyListWnd.cpp": 2, + "Source/UI/Window/UITab.cpp": 2, "Source/UI/Window/UITransMenuWnd.cpp": 2, "Source/UI/Window/UIWindow.cpp": 2, "Source/UI/Window/UIWindowMgr.cpp": 2, + "Source/UI/Window/UIWordDisplayWnd.cpp": 2, "Source/UI/Window/WindowAncestry.cpp": 2, "Source/UI/Window/WindowBorder.cpp": 2, "Source/UI/Window/WindowDialogs.cpp": 2,