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>
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
//----------------------------------------------------------------------------
|
||||
// File: dplay8client.h
|
||||
//
|
||||
// Desc: see main.cpp
|
||||
//
|
||||
// Copyright (c) 1999-2001 Microsoft Corp. All rights reserved.
|
||||
//-----------------------------------------------------------------------------
|
||||
#ifndef _DPLAY8_CLIENT_H
|
||||
#define _DPLAY8_CLIENT_H
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Name:
|
||||
// Desc:
|
||||
//-----------------------------------------------------------------------------
|
||||
#include "NetAbstract.h"
|
||||
|
||||
struct MazeConfig;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Name:
|
||||
// Desc:
|
||||
//-----------------------------------------------------------------------------
|
||||
class CDPlay8Client : public IOutboundClient
|
||||
{
|
||||
public:
|
||||
CDPlay8Client();
|
||||
~CDPlay8Client();
|
||||
|
||||
HRESULT Init(MazeConfig* pMazeConfig);
|
||||
void Shutdown();
|
||||
HRESULT StartSessionEnum( const TCHAR* ipaddress );
|
||||
HRESULT StopSessionEnum();
|
||||
DWORD GetNumSessions() const { return m_dwNumSessions; };
|
||||
const TCHAR* GetSessionName( DWORD num ) const { return m_szSessionNames[num]; };
|
||||
DWORD GetSessionMaxPlayers( DWORD num ) const { return m_Sessions[num].dwMaxPlayers; };
|
||||
DWORD GetSessionCurrentPlayers( DWORD num ) const { return m_Sessions[num].dwCurrentPlayers; };
|
||||
GUID GetSessionGUID( DWORD num ) const { return m_Sessions[num].guidInstance; };
|
||||
HRESULT JoinSession( DWORD num );
|
||||
void SetClient( INetClient* pclient ) { m_pClient = pclient; };
|
||||
IOutboundClient* GetOutboundClient() const { return ((IOutboundClient*)this); };
|
||||
|
||||
DWORD GetNumSPThreads();
|
||||
void SetNumSPThreads(DWORD dwNumSPThreads);
|
||||
|
||||
DWORD GetSPBuffer();
|
||||
void SetSPBuffer(DWORD dwSPBufferSize);
|
||||
|
||||
// IOutboundClient
|
||||
virtual HRESULT SendPacket( void* pData, DWORD dwSize, BOOL bGuaranteed, DWORD dwTimeout );
|
||||
virtual DWORD GetThroughputBPS();
|
||||
virtual DWORD GetRoundTripLatencyMS();
|
||||
virtual BOOL IsSessionLost() { return m_bSessionLost; };
|
||||
virtual DWORD GetSessionLostReason() { return m_dwSessionLostReason; };
|
||||
virtual HRESULT GetConnectionInfo( TCHAR* strConnectionInfo );
|
||||
|
||||
protected:
|
||||
IDirectPlay8Client* m_pDPlay;
|
||||
BOOL m_bConnected;
|
||||
INetClient* m_pClient;
|
||||
BOOL m_bSessionLost;
|
||||
DWORD m_dwSessionLostReason;
|
||||
FLOAT m_fThroughputBPS;
|
||||
DWORD m_dwThroughputBytes;
|
||||
|
||||
CRITICAL_SECTION m_csThreadCountLock;
|
||||
WORD m_wActiveThreadCount;
|
||||
WORD m_wMaxThreadCount;
|
||||
FLOAT m_fAvgThreadCount;
|
||||
FLOAT m_fAvgThreadTime;
|
||||
FLOAT m_fMaxThreadTime;
|
||||
|
||||
// Configuration info.
|
||||
MazeConfig* m_MazeConfig;
|
||||
|
||||
// Connection info
|
||||
FLOAT m_fLastUpdateConnectInfoTime;
|
||||
DPN_CONNECTION_INFO m_dpnConnectionInfo;
|
||||
DWORD m_dwHighPriMessages, m_dwHighPriBytes;
|
||||
DWORD m_dwNormalPriMessages, m_dwNormalPriBytes;
|
||||
DWORD m_dwLowPriMessages, m_dwLowPriBytes;
|
||||
HRESULT UpdateConnectionInfo();
|
||||
|
||||
BOOL EnumSessionCallback( const DPN_APPLICATION_DESC *pdesc, IDirectPlay8Address* pDP8AddressHost, IDirectPlay8Address* pDP8AddressDevice );
|
||||
static HRESULT WINAPI StaticReceiveHandler( void *pvContext, DWORD dwMessageType, void *pvMessage );
|
||||
HRESULT WINAPI ReceiveHandler( void *pvContext, DWORD dwMessageType, void *pvMessage );
|
||||
|
||||
enum {MAX_SESSIONS=256};
|
||||
enum {MAX_SESSION_NAME=64};
|
||||
DWORD m_dwNumSessions;
|
||||
DPN_APPLICATION_DESC m_Sessions[MAX_SESSIONS];
|
||||
IDirectPlay8Address* m_pHostAddresses[MAX_SESSIONS];
|
||||
IDirectPlay8Address* m_pDeviceAddresses[MAX_SESSIONS];
|
||||
TCHAR m_szSessionNames[MAX_SESSIONS][MAX_SESSION_NAME];
|
||||
FLOAT m_fSessionLastSeenTime[MAX_SESSIONS];
|
||||
CRITICAL_SECTION m_csLock;
|
||||
DPNHANDLE m_dpnhEnum;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user