Files
Client/Tools/Launcher/RYLLoginDlg.h
LGram16 e067522598 Initial commit: ROW Client source code
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>
2025-11-29 16:24:34 +09:00

226 lines
5.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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;
};