#ifndef RAGNAROK_SOURCE_UI_LISTS_UICHATHISBOX_H #define RAGNAROK_SOURCE_UI_LISTS_UICHATHISBOX_H #include "UI/Lists/UIListBox.h" #include #include #include class UIItemTagButton; class UINaviLinkButton; class UIChatHisBox : public UIListBox { public: UIChatHisBox(UIWindowContext& windows, UIListBoxContext& list); ~UIChatHisBox() override; bool Slot08() override; void Resize(int width, int height) override; void Show(int visible) override; void Paint() override; void Slot15(int width, int height) override; void Slot25(int x, int y) override; void Slot26(int x, int y) 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; void Configure(int x, int y, int width, int height, unsigned char transparent) override; void Clear() override; virtual void AddText(const char* text, int color, const char* style); void AddTextWrapped(const char* text, int color, const char* style); const char* HistoryText(unsigned int index); bool SaveChatLog(const char* path); void PlaceNaviLinks(int line); void DropOldestLines(); void ShiftNaviLinks(); void ClearNaviLinks(); void DropOldestRecords(); void AddLinkRecord(const char* name, int value, const char* detail); virtual void ResetContents(); void ShiftItemTags(); void PlaceItemTags(int line); void CopyHistory(const UIChatHisBox& other); void Resize(int width, int height, bool flag); void sub_89C080(); std::string ResolvePlayerTags(const char* name); // INLINED std::list>& ItemTags() { return *reinterpret_cast>*>(reinterpret_cast(this) + 0xD4); } /* 00DC */ std::list> naviLinks; /* 00E4 */ std::vector unknown_00E4; /* 00F0 */ int maxLines; /* 00F4 */ std::vector history; /* 0100 */ std::vector unknown_0100; /* 010C */ std::vector unknown_010C; /* 0118 */ std::vector unknown_0118; }; #endif