2022-05-23 19:14:12 +02:00
|
|
|
#pragma once
|
2022-05-24 02:23:37 +02:00
|
|
|
#include "sdklauncher_const.h"
|
2022-05-23 19:14:12 +02:00
|
|
|
|
2022-05-26 22:04:50 +02:00
|
|
|
struct LogList_t
|
|
|
|
{
|
2023-03-22 00:28:41 +01:00
|
|
|
LogList_t(const spdlog::level::level_enum nLevel, const string& svText)
|
2022-05-26 22:04:50 +02:00
|
|
|
{
|
|
|
|
m_nLevel = nLevel;
|
|
|
|
m_svText = svText;
|
|
|
|
}
|
|
|
|
|
|
|
|
spdlog::level::level_enum m_nLevel;
|
2023-03-22 00:28:41 +01:00
|
|
|
string m_svText;
|
2022-05-26 22:04:50 +02:00
|
|
|
};
|
|
|
|
|
2023-03-20 11:16:29 +01:00
|
|
|
class CSurface : public Forms::Form
|
2022-05-23 19:14:12 +02:00
|
|
|
{
|
|
|
|
public:
|
2023-03-20 11:16:29 +01:00
|
|
|
CSurface();
|
2023-03-22 00:28:41 +01:00
|
|
|
virtual ~CSurface()
|
|
|
|
{
|
|
|
|
};
|
|
|
|
UIX::UIXListView* ConsoleListView() const { return m_ConsoleListView; };
|
2022-05-26 22:04:50 +02:00
|
|
|
std::vector<LogList_t> m_LogList;
|
|
|
|
|
2022-05-23 19:14:12 +02:00
|
|
|
private:
|
2022-05-26 01:44:46 +02:00
|
|
|
void Init();
|
|
|
|
void Setup();
|
2023-03-24 00:10:48 +01:00
|
|
|
void LoadSettings();
|
|
|
|
void SaveSettings();
|
2022-05-26 01:44:46 +02:00
|
|
|
void ParseMaps();
|
|
|
|
void ParsePlaylists();
|
2022-05-23 19:14:12 +02:00
|
|
|
|
2023-03-24 00:10:48 +01:00
|
|
|
static void OnLoad(Forms::Control* pSender);
|
|
|
|
static void OnClose(const std::unique_ptr<FormClosingEventArgs>& pEventArgs, Forms::Control* pSender);
|
|
|
|
|
2022-05-24 02:23:37 +02:00
|
|
|
static void LaunchGame(Forms::Control* pSender);
|
2022-05-26 22:04:50 +02:00
|
|
|
static void CleanSDK(Forms::Control* pSender);
|
2022-12-07 01:07:26 +01:00
|
|
|
static void UpdateSDK(Forms::Control* pSender);
|
2022-05-26 01:44:46 +02:00
|
|
|
static void ReloadPlaylists(Forms::Control* pSender);
|
2022-05-26 22:04:50 +02:00
|
|
|
static void VirtualItemToClipboard(const std::unique_ptr<MouseEventArgs>& pEventArgs, Forms::Control* pSender);
|
|
|
|
static void GetVirtualItem(const std::unique_ptr<Forms::RetrieveVirtualItemEventArgs>& pEventArgs, Forms::Control* pSender);
|
2022-05-31 18:05:43 +02:00
|
|
|
static void ForwardCommandToGame(Forms::Control* pSender);
|
2022-12-06 00:48:11 +01:00
|
|
|
|
2022-05-24 02:23:37 +02:00
|
|
|
eLaunchMode BuildParameter(string& svParameter);
|
2023-03-24 00:10:48 +01:00
|
|
|
const char* GetControlValue(Forms::Control* pControl);
|
2022-12-07 01:07:26 +01:00
|
|
|
|
2023-03-20 00:01:49 +01:00
|
|
|
void AppendParameterInternal(string& svParameterList, const char* szParameter, const char* szArgument = nullptr);
|
2022-12-06 00:48:11 +01:00
|
|
|
void AppendReservedCoreCount(string& svParameter);
|
2022-12-07 01:07:26 +01:00
|
|
|
void AppendConsoleParameters(string& svParameter);
|
|
|
|
void AppendVideoParameters(string& svParameter);
|
|
|
|
void AppendHostParameters(string& svParameter);
|
|
|
|
void AppendNetParameters(string& svParameter);
|
2022-05-24 02:23:37 +02:00
|
|
|
|
|
|
|
enum class eMode
|
|
|
|
{
|
|
|
|
NONE = -1,
|
|
|
|
HOST,
|
|
|
|
SERVER,
|
|
|
|
CLIENT,
|
|
|
|
};
|
2022-05-24 19:26:05 +02:00
|
|
|
enum class eVisibility
|
|
|
|
{
|
|
|
|
PUBLIC,
|
|
|
|
HIDDEN,
|
|
|
|
};
|
2022-05-24 02:23:37 +02:00
|
|
|
|
2023-03-22 00:28:41 +01:00
|
|
|
// Game.
|
|
|
|
UIX::UIXGroupBox* m_GameGroup;
|
|
|
|
UIX::UIXGroupBox* m_GameGroupExt;
|
2022-05-23 19:14:12 +02:00
|
|
|
UIX::UIXLabel* m_MapLabel;
|
2023-03-22 00:28:41 +01:00
|
|
|
UIX::UIXComboBox* m_MapCombo;
|
2022-05-23 19:14:12 +02:00
|
|
|
UIX::UIXLabel* m_PlaylistLabel;
|
2023-03-22 00:28:41 +01:00
|
|
|
UIX::UIXComboBox* m_PlaylistCombo;
|
|
|
|
UIX::UIXCheckBox* m_CheatsToggle;
|
|
|
|
UIX::UIXCheckBox* m_DeveloperToggle;
|
|
|
|
UIX::UIXCheckBox* m_ConsoleToggle;
|
|
|
|
UIX::UIXCheckBox* m_ColorConsoleToggle;
|
|
|
|
UIX::UIXTextBox* m_PlaylistFileTextBox;
|
2022-05-23 19:14:12 +02:00
|
|
|
UIX::UIXLabel* m_PlaylistFileLabel;
|
2023-03-22 00:28:41 +01:00
|
|
|
|
|
|
|
// Main.
|
|
|
|
UIX::UIXGroupBox* m_MainGroup;
|
|
|
|
UIX::UIXGroupBox* m_MainGroupExt;
|
|
|
|
UIX::UIXComboBox* m_ModeCombo;
|
|
|
|
UIX::UIXLabel* m_ModeLabel;
|
|
|
|
UIX::UIXTextBox* m_HostNameTextBox;
|
2022-05-24 02:23:37 +02:00
|
|
|
UIX::UIXLabel* m_HostNameLabel;
|
2023-03-22 00:28:41 +01:00
|
|
|
UIX::UIXComboBox* m_VisibilityCombo;
|
2022-05-24 19:26:05 +02:00
|
|
|
UIX::UIXLabel* m_VisibilityLabel;
|
2023-03-22 00:28:41 +01:00
|
|
|
UIX::UIXTextBox* m_LaunchArgsTextBox;
|
2022-05-23 19:14:12 +02:00
|
|
|
UIX::UIXLabel* m_LaunchArgsLabel;
|
2023-03-22 00:28:41 +01:00
|
|
|
UIX::UIXButton* m_CleanSDK;
|
|
|
|
UIX::UIXButton* m_UpdateSDK;
|
|
|
|
UIX::UIXButton* m_LaunchSDK;
|
|
|
|
|
|
|
|
// Engine.
|
2022-05-23 19:14:12 +02:00
|
|
|
UIX::UIXGroupBox* m_EngineBaseGroup;
|
|
|
|
UIX::UIXGroupBox* m_EngineNetworkGroup;
|
|
|
|
UIX::UIXGroupBox* m_EngineVideoGroup;
|
2023-03-22 00:28:41 +01:00
|
|
|
UIX::UIXTextBox* m_ReservedCoresTextBox;
|
|
|
|
UIX::UIXLabel* m_ReservedCoresLabel;
|
|
|
|
UIX::UIXTextBox* m_WorkerThreadsTextBox;
|
|
|
|
UIX::UIXLabel* m_WorkerThreadsLabel;
|
2022-05-23 19:14:12 +02:00
|
|
|
UIX::UIXCheckBox* m_SingleCoreDediToggle;
|
|
|
|
UIX::UIXCheckBox* m_NoAsyncJobsToggle;
|
|
|
|
UIX::UIXCheckBox* m_NetEncryptionToggle;
|
|
|
|
UIX::UIXCheckBox* m_NetRandomKeyToggle;
|
2023-04-25 00:47:44 +02:00
|
|
|
UIX::UIXCheckBox* m_QueuedPacketThread;
|
2022-05-24 02:23:37 +02:00
|
|
|
UIX::UIXCheckBox* m_NoTimeOutToggle;
|
2023-03-22 00:28:41 +01:00
|
|
|
UIX::UIXCheckBox* m_WindowedToggle;
|
|
|
|
UIX::UIXCheckBox* m_NoBorderToggle;
|
|
|
|
UIX::UIXTextBox* m_FpsTextBox;
|
|
|
|
UIX::UIXLabel* m_FpsLabel;
|
|
|
|
UIX::UIXTextBox* m_WidthTextBox;
|
|
|
|
UIX::UIXTextBox* m_HeightTextBox;
|
|
|
|
UIX::UIXLabel* m_ResolutionLabel;
|
|
|
|
|
|
|
|
// Console.
|
|
|
|
UIX::UIXGroupBox* m_ConsoleGroup;
|
|
|
|
UIX::UIXGroupBox* m_ConsoleGroupExt;
|
|
|
|
UIX::UIXListView* m_ConsoleListView;
|
|
|
|
UIX::UIXTextBox* m_ConsoleCommandTextBox;
|
2022-05-31 18:05:43 +02:00
|
|
|
UIX::UIXButton* m_ConsoleSendCommand;
|
2022-05-23 19:14:12 +02:00
|
|
|
};
|