thunderbrew/src/glue/CGlueMgr.hpp

123 lines
4.5 KiB
C++
Raw Normal View History

2023-01-02 13:17:18 -06:00
#ifndef GLUE_C_GLUE_MGR_HPP
#define GLUE_C_GLUE_MGR_HPP
#include "event/Event.hpp"
#include "net/Types.hpp"
#include "gx/Texture.hpp"
2023-01-02 13:17:18 -06:00
#include <cstdint>
2025-03-29 23:57:13 +04:00
float CalculateAspectRatio();
2023-01-02 13:17:18 -06:00
class CSimpleTop;
class CGlueMgr {
public:
// Types
enum GLUE_IDLE_STATE {
IDLE_NONE = 0,
IDLE_LOGIN_SERVER_LOGIN = 1,
IDLE_ACCOUNT_LOGIN = 2,
IDLE_CHARACTER_LIST = 3,
IDLE_REALM_LIST = 4,
IDLE_CREATE_CHARACTER = 5,
IDLE_DELETE_CHARACTER = 6,
2023-01-02 13:17:18 -06:00
IDLE_7 = 7,
IDLE_8 = 8,
IDLE_9 = 9,
IDLE_ENTER_WORLD = 10,
IDLE_WORLD_LOGIN = 11,
2023-01-02 13:17:18 -06:00
IDLE_12 = 12,
IDLE_13 = 13
};
// Static variables
static int32_t m_acceptedEULA;
static int32_t m_acceptedTerminationWithoutNotice;
static int32_t m_acceptedTOS;
static int32_t m_processServerAlert;
static int32_t m_pendingTimerAlert;
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 MipBits* m_cursorMipBits;
static int32_t m_disconnectPending;
static int32_t m_displayingQueueDialog;
2023-01-02 13:17:18 -06:00
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_matrixChallengeCount;
2023-01-02 13:17:18 -06:00
static int32_t m_matrixRemaining;
static int32_t m_reconnect;
2023-01-02 13:17:18 -06:00
static int32_t m_reload;
static int32_t m_scandllOkayToLogIn;
static float m_screenHeight;
static float m_screenWidth;
static int32_t m_clientKickReason;
2023-01-02 13:17:18 -06:00
static int32_t m_showedDisconnect;
static CSimpleTop* m_simpleTop;
static int32_t m_suspended;
static int32_t m_surveyTimer;
static int32_t m_executedSurvey;
static int32_t m_surveyDownload;
static int32_t m_patchDownload;
static bool m_deleteLocalPatch;
static CHARACTER_INFO* m_characterInfo;
2023-01-02 13:17:18 -06:00
// Static functions
static void ChangeRealm(const REALM_INFO* realmInfo);
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);
static void GetRealmList(bool showProgress);
static void GetCharacterList();
static int32_t NetDisconnectHandler(const void* eventData, void*);
static int32_t Idle(const void* a1, void* a2);
2023-01-02 13:17:18 -06:00
static void Initialize();
static void InitCursor();
2023-01-02 13:17:18 -06:00
static void LoginServerLogin(const char* accountName, const char* password);
static void QuitGame();
static void EnterWorld();
static void PollAccountLogin(int32_t errorCode, const char* msg, int32_t complete, int32_t result, WOWCS_OPS op);
static void PollLoginServerLogin();
static void PollCharacterList(int32_t errorCode, const char* msg, int32_t complete, int32_t result, WOWCS_OPS op);
static void PollRealmList(int32_t errorCode, const char* msg, int32_t complete, int32_t result, WOWCS_OPS op);
static void PollCreateCharacter(int32_t errorCode, const char* msg, int32_t complete, int32_t result, WOWCS_OPS op);
static void PollDeleteCharacter(int32_t errorCode, const char* msg, int32_t complete, int32_t result, WOWCS_OPS op);
static void PollUserSurvey();
static void CancelLogin();
2023-01-02 13:17:18 -06:00
static void Resume();
static void SetCurrentAccount(const char* accountName);
static void SetLoginStateAndResult(LOGIN_STATE state, LOGIN_RESULT result, char const* addrStr, char const* stateStr, char const* resultStr, uint8_t flags);
static void SetScreen(const char* screen);
2023-01-02 13:17:18 -06:00
static void StatusDialogClick();
static void Sub4D8BA0();
2023-01-02 13:17:18 -06:00
static void Suspend();
static void UpdateCurrentScreen(const char* screen);
2025-03-29 23:43:21 +04:00
static bool HandleBattlenetDisconnect();
static void DeleteCharacter(uint64_t guid);
static void PollEnterWorld();
// Survey Download System
static void SurveyDownloadStart();
static void SurveyDownloadCancel();
static void SurveyDownloadIdle();
static bool SurveyExecute();
static void SurveySendResults();
// Patch Download System
static void PatchDownloadStart();
static void PatchDownloadIdle();
2023-01-02 13:17:18 -06:00
};
#endif