Game client codebase including: - CharacterActionControl: Character and creature management - GlobalScript: Network, items, skills, quests, utilities - RYLClient: Main client application with GUI and event handlers - Engine: 3D rendering engine (RYLGL) - MemoryManager: Custom memory allocation - Library: Third-party dependencies (DirectX, boost, etc.) - Tools: Development utilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
226 lines
5.4 KiB
C++
226 lines
5.4 KiB
C++
// RYLLoginDlg.h : header file
|
||
//
|
||
|
||
#pragma once
|
||
|
||
#include "MSGDialog.h"
|
||
#include "afxwin.h"
|
||
|
||
#include "ZBitmapButton.h"
|
||
#include "CISBitmap.h"
|
||
#include "GradientStatic.h"
|
||
#include "DlgServerSelect.h"
|
||
|
||
#include <Network/clientsocket/LoginSocket.h>
|
||
#include <Network/Packet/PacketStruct/ServerInfo.h>
|
||
|
||
#include "UpdateManager.h"
|
||
|
||
#include "memdc.h"
|
||
#include "SplashDlg.h"
|
||
|
||
#include "RYLLOGIN_DEFINITIONS.H"
|
||
|
||
#include "tranlistbox.h"
|
||
|
||
#include <list>
|
||
|
||
// forward decl.
|
||
class ISoundObject;
|
||
|
||
enum ConnectionState
|
||
{
|
||
CS_IDLE,
|
||
CS_START,
|
||
CS_FILEINFOGATHERING,
|
||
CS_PATCHDOWN,
|
||
CS_DECOMPRESS,
|
||
CS_SERVERSELECT,
|
||
};
|
||
|
||
class ILoginDlgCommand
|
||
{
|
||
public:
|
||
|
||
virtual ~ILoginDlgCommand() { }
|
||
|
||
virtual bool IsProcessNow(DWORD dwCurrentTime) { return true; }
|
||
virtual bool ProcessCommand() = 0;
|
||
};
|
||
|
||
|
||
// CRYLLoginDlg dialog
|
||
class CRYLLoginDlg : public CDialog
|
||
{
|
||
// Construction
|
||
public:
|
||
|
||
CRYLLoginDlg(CWnd* pParent = NULL);
|
||
|
||
enum { IDD = IDD_RYLLOGIN_DIALOG };
|
||
|
||
protected:
|
||
|
||
// DDX/DDV support
|
||
virtual void DoDataExchange(CDataExchange* pDX);
|
||
|
||
// Generated message map functions
|
||
virtual BOOL OnInitDialog();
|
||
afx_msg void OnPaint();
|
||
|
||
afx_msg HCURSOR OnQueryDragIcon();
|
||
DECLARE_MESSAGE_MAP()
|
||
|
||
afx_msg void OnBnClickedButtonNewacc();
|
||
afx_msg void OnBnClickedButtonPsw();
|
||
afx_msg void OnBnClickedButtonEnd();
|
||
afx_msg void OnMove(int x, int y);
|
||
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
|
||
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
|
||
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
||
afx_msg void OnTimer(UINT nIDEvent);
|
||
afx_msg void OnBnClickedButtonMusic();
|
||
afx_msg void OnBnClickedButtonFilecheck();
|
||
afx_msg void OnBnClickedButtonSetup();
|
||
afx_msg LRESULT OnRylLauncherShutdown(WPARAM,LPARAM);
|
||
afx_msg void OnDestroy();
|
||
afx_msg void OnBnClickedButtonStart();
|
||
afx_msg void OnLbnSelchangeListServer();
|
||
afx_msg void OnLbnDblclkListServer();
|
||
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
||
|
||
public:
|
||
|
||
bool IsServerClosed() { return m_bServerClosed; }
|
||
|
||
void RenderBack( CDC &rDC, CBitmap &rBitmap, int Px, int Py, int SizeX = -1 , int SizeY = -1 );
|
||
void RenderAni( CDC &rDC, CBitmap &rBitmap, int Px, int Py , int SizeX, int SizeY, int nAniNum );
|
||
|
||
void PlayBGM(void);
|
||
void InitClientFoloder(void);
|
||
void InitInterface(void);
|
||
void InitWebBrowser(void);
|
||
bool UpdateFile(bool bFileCheck = false); // '<27><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>˻<EFBFBD>'<27>ÿ<EFBFBD><C3BF><EFBFBD> <20>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD>Ͱ<EFBFBD> true
|
||
|
||
void Execute(CString strExec, BOOL bWait);
|
||
void ExecuteClient(int nServer);
|
||
|
||
DWORD GetLocalClientVersion();
|
||
void SetClientVer(DWORD dwVer);
|
||
|
||
DWORD WaitForWebPageCreated(DWORD dwMilliseconds = INFINITE) const
|
||
{ return WaitForSingleObject(m_hWebPageCreated, dwMilliseconds); }
|
||
|
||
void SetLoginDisplayText(const char* szText, bool bInvalidate = true)
|
||
{
|
||
m_stcLoginDisplay.SetWindowText(szText);
|
||
if (bInvalidate) { m_stcLoginDisplay.Invalidate(); }
|
||
}
|
||
|
||
void SetDefaultLoginServerAddress(const char* szLoginAddress)
|
||
{ m_strDefaultLoginServerAddr.SetString(szLoginAddress); }
|
||
|
||
bool ConnectToLoginServer();
|
||
bool RequestServerList();
|
||
bool ProcessServerList(DWORD dwClientVersionFromServer,
|
||
const char* szPatchAddressFromLoginServer, const SERVER_LIST& serverList);
|
||
|
||
LoginSocket* GetLoginSocket() { return m_pLoginSocket; }
|
||
|
||
void PutCommand(ILoginDlgCommand* lpLoginDlgCommand) { m_LoginDlgCommandList.push_back(lpLoginDlgCommand); }
|
||
|
||
// <20><>ġ<EFBFBD><C4A1> <20>Ϸᰡ <20>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD> Ȯ<><C8AE>.
|
||
|
||
bool GetPatchComplete() { return m_bPatchComplete; }
|
||
void SetPatchComplete(bool bPatchComplete) { m_bPatchComplete = bPatchComplete; }
|
||
|
||
private:
|
||
|
||
typedef std::list<ILoginDlgCommand*> LoginDlgCommandList;
|
||
|
||
LoginDlgCommandList m_LoginDlgCommandList;
|
||
|
||
// Graphic variables
|
||
CZBitmapButton m_btnNewAcc;
|
||
CZBitmapButton m_btnPsw;
|
||
CZBitmapButton m_btnSetup;
|
||
CZBitmapButton m_btnFileCheck;
|
||
CZBitmapButton m_btnMusic;
|
||
CZBitmapButton m_btnEnd;
|
||
CZBitmapButton m_btnServerStart;
|
||
|
||
CGradientStatic m_stcLoginDisplay;
|
||
CGradientStatic m_stcVersionView;
|
||
|
||
CTranListBox m_ServerList;
|
||
|
||
CHtmlCtrl m_WebPage;
|
||
CCISBitmap m_btmBase;
|
||
CBitmap m_btmFILE;
|
||
CBitmap m_btmFTP;
|
||
CBitmap m_btmPatching;
|
||
CBitmap m_btmComplete;
|
||
CBitmap m_btmLoging;
|
||
CBitmap m_btmAlarmAni;
|
||
|
||
CDC m_memDC;
|
||
CDC m_BkDC;
|
||
CBitmap m_BkBitmap;
|
||
CSplashDlg m_dlgSplash;
|
||
CRect m_rt;
|
||
HICON m_hIcon;
|
||
|
||
#ifdef _TW_
|
||
CMSGDialog* m_TMsgDlg;
|
||
#endif
|
||
|
||
// String variable
|
||
CString m_strRYLFolder;
|
||
CString m_strLoginServerAddrFromRegistry;
|
||
CString m_strPatchUrlFromRegistry;
|
||
CString m_strDefaultLoginServerAddr;
|
||
CString m_strPatchUrlFromLoginServer;
|
||
|
||
CUpdateManager m_UpdateManager;
|
||
|
||
CFont *m_pBoldFont;
|
||
ISoundObject *m_pStreamSound;
|
||
LoginSocket *m_pLoginSocket;
|
||
CBitmap *m_pOldBitmap;
|
||
|
||
const char *m_szVersionSignature;
|
||
|
||
SERVER_LIST m_ServerListData;
|
||
DEVMODE m_DeviceMode;
|
||
|
||
HANDLE m_hWebPageCreated;
|
||
|
||
volatile ConnectionState m_ConnectionState;
|
||
|
||
float m_fBlueProgressPercentage;
|
||
float m_fRedProgressPercentage;
|
||
|
||
DWORD m_dwLocalClientVersion;
|
||
DWORD m_dwServerClientVersion;
|
||
|
||
int m_nLoginProcess;
|
||
int m_nFade;
|
||
|
||
int m_nUpdateAni;
|
||
int m_nUpdateLogoAni;
|
||
|
||
int m_nShowRateServerSelectDlg;
|
||
int m_nServerClass;
|
||
|
||
bool m_bFileCheck; // file check <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD> <20>ڽ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
bool m_bServerClosed;
|
||
bool m_bPatchComplete;
|
||
|
||
bool m_bCheckSetup;
|
||
bool m_bCheckSucLoginData;
|
||
|
||
bool m_bBGMPlay;
|
||
bool m_bUpdating;
|
||
bool m_bShowServerSelectDlg;
|
||
};
|