#ifndef RAGNAROK_SOURCE_UI_NAVIGATION_UINAVIGATIONV4WND_H #define RAGNAROK_SOURCE_UI_NAVIGATION_UINAVIGATIONV4WND_H #include "UI/Window/UIFrameWnd.h" #include #include class CBitmapRes; class CNavi_Object; class CTexture; class UIListBox_NaviSearch; class UIStaticText; struct NavigationWindowInfo { /* 0000 */ int x; /* 0004 */ int y; /* 0008 */ int width; /* 000C */ int height; /* 0010 */ unsigned char expanded; void Clamp(); }; class UINavigationV4Wnd : public UIFrameWnd { public: UINavigationV4Wnd(); void Slot11() override; void Slot15(int width, int height) override; void Slot19() override; void Paint() override; void Slot31(int x, int y) override; int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) override; bool ClearRouteTexts(); void LayoutWithoutDetails(); void LayoutWithDetails(); void RefreshLayout(); void SelectRouteNode(int node); bool IsListShown() const; void DrawMapTexture(int x, int y, int size); std::string ObjectName(int type, void* object); std::string ObjectLabel(int type, void* object); std::string MobName(CNavi_Object* mob); void SelectRoute(int route); void FillRouteGroups(); bool LoadRoute(int index); void SetRoadIcon(int slot); void InsertNavigationLink(std::string name, int x, int y); void DrawTargetSprite(int x, int y, int width, int height, const CBitmapRes* background); /* 00B4 */ UIWindow* unknown_00B4; /* 00B8 */ UIWindow* unknown_00B8; /* 00BC */ UIWindow* unknown_00BC; /* 00C0 */ UIWindow* unknown_00C0; /* 00C4 */ UIWindow* unknown_00C4; /* 00C8 */ UIWindow* unknown_00C8; /* 00CC */ UIWindow* unknown_00CC; /* 00D0 */ UIWindow* unknown_00D0; /* 00D4 */ UIWindow* unknown_00D4; /* 00D8 */ UIWindow* unknown_00D8; /* 00DC */ UIWindow* unknown_00DC; /* 00E0 */ UIWindow* unknown_00E0; /* 00E4 */ UIWindow* unknown_00E4; /* 00E8 */ UIStaticText* unknown_00E8; /* 00EC */ UIListBox_NaviSearch* unknown_00EC; /* 00F0 */ UIListBox_NaviSearch* unknown_00F0; /* 00F4 */ UIWindow* unknown_00F4; /* 00F8 */ UIWindow* unknown_00F8; /* 00FC */ UIWindow* unknown_00FC; /* 0100 */ UIWindow* unknown_0100; /* 0104 */ std::vector unknown_0104; /* 0110 */ NavigationWindowInfo* info; /* 0114 */ int unknown_0114; /* 0118 */ int unknown_0118; /* 011C */ int unknown_011C; /* 0120 */ unsigned char unknown_0120[4]; }; class UIStaticBitmap; class UINavigationroadiconWnd : public UIFrameWnd { public: UINavigationroadiconWnd(); void Slot15(int width, int height) override; void Paint() override; void Slot31(int x, int y) override; int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override; /* 00B4 */ UIStaticBitmap* icon; }; class UINavigationRuideWnd : public UIFrameWnd { public: UINavigationRuideWnd(); void Slot15(int width, int height) override; void Paint() override; int SendMsg(UIWindow* sender, int message, std::intptr_t a, std::intptr_t b, std::intptr_t c, std::intptr_t d) override; void RefreshRoute(); protected: public: /* 00B4 */ UIListBox_NaviSearch* routeList; }; extern int g_navigationTab; extern int g_navigationRoadIcon; extern CTexture* g_navigationMapTexture; extern std::string g_navigationText0; extern std::string g_navigationText1; extern std::string g_navigationText2; extern std::string g_navigationText3; extern std::string g_navigationText4; #endif