2023-01-02 13:17:18 -06:00
|
|
|
#ifndef GLUE_C_GLUE_MGR_HPP
|
|
|
|
|
#define GLUE_C_GLUE_MGR_HPP
|
|
|
|
|
|
|
|
|
|
#include "event/Event.hpp"
|
2023-01-09 17:37:24 -06:00
|
|
|
#include "net/Types.hpp"
|
2023-01-02 13:17:18 -06:00
|
|
|
#include <cstdint>
|
|
|
|
|
|
|
|
|
|
class CSimpleTop;
|
|
|
|
|
|
|
|
|
|
class CGlueMgr {
|
|
|
|
|
public:
|
|
|
|
|
// Types
|
|
|
|
|
enum GLUE_IDLE_STATE {
|
|
|
|
|
IDLE_NONE = 0,
|
2023-01-09 18:01:27 -06:00
|
|
|
IDLE_LOGIN_SERVER_LOGIN = 1,
|
|
|
|
|
IDLE_ACCOUNT_LOGIN = 2,
|
2023-01-02 13:17:18 -06:00
|
|
|
IDLE_3 = 3,
|
|
|
|
|
IDLE_4 = 4,
|
|
|
|
|
IDLE_5 = 5,
|
|
|
|
|
IDLE_6 = 6,
|
|
|
|
|
IDLE_7 = 7,
|
|
|
|
|
IDLE_8 = 8,
|
|
|
|
|
IDLE_9 = 9,
|
|
|
|
|
IDLE_10 = 10,
|
|
|
|
|
IDLE_11 = 11,
|
|
|
|
|
IDLE_12 = 12,
|
|
|
|
|
IDLE_13 = 13
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Static variables
|
|
|
|
|
static int32_t m_acceptedEULA;
|
|
|
|
|
static int32_t m_acceptedTerminationWithoutNotice;
|
|
|
|
|
static int32_t m_acceptedTOS;
|
2023-01-09 17:37:24 -06:00
|
|
|
static int32_t m_accountMsgAvailable;
|
2023-01-02 13:17:18 -06:00
|
|
|
static char m_accountName[];
|
|
|
|
|
static float m_aspect;
|
|
|
|
|
static bool m_authenticated;
|
|
|
|
|
static char m_currentScreen[];
|
|
|
|
|
static GLUE_IDLE_STATE m_idleState;
|
|
|
|
|
static int32_t m_initialized;
|
|
|
|
|
static int32_t m_lastLoginResult;
|
|
|
|
|
static int32_t m_lastLoginState;
|
|
|
|
|
static int32_t m_loginResult;
|
|
|
|
|
static int32_t m_loginState;
|
|
|
|
|
static int32_t m_matrixRemaining;
|
|
|
|
|
static int32_t m_reload;
|
|
|
|
|
static int32_t m_scandllOkayToLogIn;
|
|
|
|
|
static float m_screenHeight;
|
|
|
|
|
static float m_screenWidth;
|
|
|
|
|
static int32_t m_showedDisconnect;
|
|
|
|
|
static CSimpleTop* m_simpleTop;
|
|
|
|
|
static int32_t m_suspended;
|
|
|
|
|
|
|
|
|
|
// Static functions
|
2023-02-07 23:36:15 -06:00
|
|
|
static void DisplayLoginStatus();
|
2023-01-02 13:17:18 -06:00
|
|
|
// TODO a1: const EVENT_DATA_IDLE*
|
|
|
|
|
static int32_t HandleDisplaySizeChanged(const CSizeEvent& event);
|
2023-01-05 20:58:51 -06:00
|
|
|
static int32_t Idle(const void* a1, void* a2);
|
2023-01-02 13:17:18 -06:00
|
|
|
static void Initialize();
|
|
|
|
|
static void LoginServerLogin(const char* accountName, const char* password);
|
|
|
|
|
static void QuitGame();
|
2023-01-09 18:01:27 -06:00
|
|
|
static void PollLoginServerLogin();
|
2023-01-02 13:17:18 -06:00
|
|
|
static void Resume();
|
2023-02-07 12:57:25 -06:00
|
|
|
static void SetCurrentAccount(const char* accountName);
|
2023-01-09 17:37:24 -06:00
|
|
|
static void SetLoginStateAndResult(LOGIN_STATE state, LOGIN_RESULT result, char const* addrStr, char const* stateStr, char const* resultStr, uint8_t flags);
|
2023-01-05 20:58:51 -06:00
|
|
|
static void SetScreen(const char* screen);
|
2023-01-02 13:17:18 -06:00
|
|
|
static void StatusDialogClick();
|
2023-02-07 23:59:36 -06:00
|
|
|
static void Sub4D8BA0();
|
2023-01-02 13:17:18 -06:00
|
|
|
static void Suspend();
|
|
|
|
|
static void UpdateCurrentScreen(const char* screen);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#endif
|