diff --git a/Source/Contents/Configuration/ServiceConfiguration.h b/Source/Contents/Configuration/ServiceConfiguration.h index 11223162..c9053bf0 100644 --- a/Source/Contents/Configuration/ServiceConfiguration.h +++ b/Source/Contents/Configuration/ServiceConfiguration.h @@ -1,6 +1,9 @@ #ifndef RAGNAROK_SOURCE_CONTENTS_CONFIGURATION_SERVICECONFIGURATION_H #define RAGNAROK_SOURCE_CONTENTS_CONFIGURATION_SERVICECONFIGURATION_H +#include +#include + extern signed char g_language; extern bool g_serviceFlag05; extern bool g_serviceFlag06; @@ -15,6 +18,7 @@ extern const char* g_patcherExeName; extern const char* g_runPatcherMessage; extern const char* g_windowName; extern char g_launchServerName[24]; +extern std::vector g_loadingScreens; const char* GetLicenceText(); void InitializeServiceStrings(); diff --git a/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp b/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp index 5a54f50b..4d82a786 100644 --- a/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp +++ b/Source/UI/Acceptance/UIChooseSellBuyWnd.cpp @@ -154,6 +154,9 @@ const char* g_bookmarkKeySuffix = bookmarkKeySuffixText; // GLOBAL: gl_25332 int g_window315Enabled = 1; +// GLOBAL: gl_25391 +bool g_randomLoadingScreen; + // OFFSET: 0x0087B500 // FUNCTION: fn_11241 void UIChatHisBox::Configure(int x, int y, int width, int height, unsigned char) { @@ -6386,3 +6389,95 @@ int CSession::GetTraitStat(int type) { // OFFSET: 0x008C8330 // OFFSET: 0x008C8A50 + +// OFFSET: 0x008D4320 +// FUNCTION: fn_12107 +std::vector UIChooseWarpWnd::Slot44() { + std::vector records; + { + const auto record = BuildReplayTaggedRecord(21950, nullptr, 0); + records.insert(records.end(), record.begin(), record.end()); + } + for (auto choice = this->m_choices.begin(); choice < this->m_choices.end(); ++choice) { + const auto record = BuildReplayTaggedRecord(21953, choice->c_str(), choice->size()); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(21951, nullptr, 0); + records.insert(records.end(), record.begin(), record.end()); + } + return records; +} + +// OFFSET: 0x008D4E70 +// FUNCTION: fn_12110 +std::vector UIExchangeWnd::Slot44() { + std::vector records; + { + const auto record = BuildReplayTaggedRecord(20600, nullptr, 0); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(20603, &this->unknown_0108, sizeof(this->unknown_0108)); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(20604, &this->unknown_010C, sizeof(this->unknown_010C)); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(20602, this->unknown_00F0.c_str(), this->unknown_00F0.size()); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(20605, &this->unknown_00CC, sizeof(this->unknown_00CC)); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(20606, &this->unknown_00D0, sizeof(this->unknown_00D0)); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(20607, &this->unknown_00D4, sizeof(this->unknown_00D4)); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(20608, &this->unknown_00D8, sizeof(this->unknown_00D8)); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(20609, &this->unknown_00DC, sizeof(this->unknown_00DC)); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(20601, nullptr, 0); + records.insert(records.end(), record.begin(), record.end()); + } + return records; +} + +// OFFSET: 0x008D6D40 +// FUNCTION: fn_12117 +std::vector UISayDialogWnd::Slot44() { + std::vector records; + { + const auto record = BuildReplayTaggedRecord(22500, nullptr, 0); + records.insert(records.end(), record.begin(), record.end()); + } + const UITagTextViewer* viewer = static_cast(this->m_viewer); + for (auto text = viewer->m_texts.begin(); text != viewer->m_texts.end(); ++text) { + const auto record = BuildReplayTaggedRecord(22503, text->c_str(), text->size()); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(22504, &this->unknown_00D4, sizeof(this->unknown_00D4)); + records.insert(records.end(), record.begin(), record.end()); + } + { + const auto record = BuildReplayTaggedRecord(22501, nullptr, 0); + records.insert(records.end(), record.begin(), record.end()); + } + return records; +} + +// OFFSET: 0x008E30B0 diff --git a/Source/UI/Dialogs/UIChooseWarpWnd.h b/Source/UI/Dialogs/UIChooseWarpWnd.h index 0e8eccbc..8d9d8c1f 100644 --- a/Source/UI/Dialogs/UIChooseWarpWnd.h +++ b/Source/UI/Dialogs/UIChooseWarpWnd.h @@ -3,6 +3,9 @@ #include "UI/Window/UIFrameWnd.h" +#include +#include + struct UIButtonContext; struct UIListBoxContext; class UIListBox; @@ -11,8 +14,11 @@ class UIChooseWarpWnd : public UIFrameWnd { public: void Slot15(int width, int height) override; void Paint() override; + std::vector Slot44() override; /* 00B4 */ UIListBox* m_list; + /* 00B8 */ int unknown_00B8; + /* 00BC */ std::vector m_choices; protected: UIButtonContext* m_controls; diff --git a/Source/UI/Dialogs/UILoadingWnd.h b/Source/UI/Dialogs/UILoadingWnd.h index 40dd69f8..19f4ea73 100644 --- a/Source/UI/Dialogs/UILoadingWnd.h +++ b/Source/UI/Dialogs/UILoadingWnd.h @@ -9,11 +9,12 @@ class UILoadingWnd : public UIFrameWnd { public: UILoadingWnd(UIWindowContext& windows, UIFrameContext& frames); + void Slot15(int width, int height) override; void Paint() override; int SendMsg(UIWindow* sender, int message, std::intptr_t argument1, std::intptr_t argument2, std::intptr_t argument3, std::intptr_t argument4) override; /* 00B4 */ unsigned char unknown_00B4[0x4]; - /* 00B8 */ UIBarGraph* m_progressBar; + /* 00B8 */ UIBarGraph2* m_progressBar; }; #endif diff --git a/Source/UI/Dialogs/UISayDialogWnd.h b/Source/UI/Dialogs/UISayDialogWnd.h index 4a672e63..9d6fac7e 100644 --- a/Source/UI/Dialogs/UISayDialogWnd.h +++ b/Source/UI/Dialogs/UISayDialogWnd.h @@ -23,6 +23,7 @@ public: void Slot11() override; void Slot19() override; void Paint() override; + std::vector Slot44() override; int ButtonX(UIBitmapButton* button); }; diff --git a/Source/UI/Items/UIExchangeWnd.h b/Source/UI/Items/UIExchangeWnd.h index af033da2..40ef418b 100644 --- a/Source/UI/Items/UIExchangeWnd.h +++ b/Source/UI/Items/UIExchangeWnd.h @@ -42,6 +42,7 @@ public: void Slot32(int x, int y) override; void Slot35(int delta) override; void Slot19() override; + std::vector Slot44() override; void LayoutButtons(); void CancelInput();