Files
Client/Library/dxx8/samples/Multimedia/DirectPlay/Maze/MazeCommon/MazeApp.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

151 lines
4.9 KiB
C++

//----------------------------------------------------------------------------
// File: mazeapp.h
//
// Desc: see main.cpp
//
// Copyright (c) 1999-2001 Microsoft Corp. All rights reserved.
//-----------------------------------------------------------------------------
#ifndef _MAZE_APP_H
#define _MAZE_APP_H
#include "DPlay8Client.h"
#include "MazeClient.h"
#include "IMazeGraphics.h"
class CDPlay8Client;
//-----------------------------------------------------------------------------
// Defines, and constants
//-----------------------------------------------------------------------------
#define MAX_OUTPUT_QUEUE 256
#define MICROSOFT_SERVER TEXT("DirectPlayMaze.rte.microsoft.com")
#define MAZE_REGKEYNAME TEXT("Software\\Microsoft\\DirectPlayMaze\\MazeClient")
//-----------------------------------------------------------------------------
// Dplay Defines, and constants
//-----------------------------------------------------------------------------
#define MIN_SP_THREADS 1
#define MAX_SP_THREADS 128
#define MAX_SP_BUFFER 1024000
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
struct MazeConfig
{
BOOL bConnectToMicrosoftSite;
BOOL bConnectToLocalServer;
BOOL bConnectToRemoteServer;
DWORD dwNetworkRetryDelay;
BOOL bShowFramerate;
BOOL bShowIndicators;
BOOL bDrawMiniMap;
BOOL bFullScreen;
BOOL bReflections;
BOOL bFileLogging;
DWORD dwSPThreads;
DWORD dwSPBufferSize;
DWORD dwStressConnect;
TCHAR szIPAddress[64];
DWORD dwLogLevel;
DWORD dwAutoPrintStats;
BOOL bAutoDisconnnect;
BOOL bAutoConnnect;
};
//-----------------------------------------------------------------------------
// Name:
// Desc:
//-----------------------------------------------------------------------------
class CMazeApp
{
public:
CMazeApp();
~CMazeApp();
HRESULT Create( IMazeGraphics* pMazeGraphics );
int Run( HINSTANCE hInst );
HRESULT FrameMove( FLOAT fElapsedTime );
void ConsolePrintf( EnumLineType EnumLineType, const TCHAR* fmt, ... );
void ReadConfig();
void WriteConfig();
void CreateTempLogFile();
void CloseTempLogFile();
MazeConfig* GetConfig() {return &m_Config; };
TCHAR* GetLogDir() { return m_strLogDir; };
TCHAR* GetLogFile() { return m_strLogFile; };
BOOL IsOutOfDateClient() { return m_bOutOfDateClient; };
VOID SetOutOfDateClient( BOOL bOutOfDateClient ) { m_bOutOfDateClient = bOutOfDateClient; };
VOID SetAllowConnect( BOOL bAllowConnect ) { m_bAllowConnect = bAllowConnect; };
VOID SetSaveSettings( BOOL bSaveSettings ) { m_bSaveSettings = bSaveSettings; };
VOID SetConnectNow( BOOL bConnectNow ) { m_bConnectNow = bConnectNow; };
VOID SetDisconnectNow( BOOL bDisconnectNow ) { m_bDisconnectNow = bDisconnectNow; };
VOID SetAllowLoopback( BOOL bAllowLoopback ) { m_bAllowLoopback = bAllowLoopback; };
protected:
static UINT WINAPI StaticOutputMsgThread( LPVOID pParam );
static UINT WINAPI StaticClientThread( LPVOID pParam );
UINT WINAPI OutputMsgThread( LPVOID pParam );
UINT WINAPI ClientThread( LPVOID pParam );
void SuspendPowerManagement();
BOOL ParseCommandLine();
HRESULT StartSessionEnum();
HRESULT InitServerForLoopback();
BOOL TryToConnect();
void UpdateTimeStamp();
IMazeGraphics* m_pMazeGraphics;
CDPlay8Client m_DP8Client;
CMazeClient m_MazeClient;
CMazeServer m_MazeServer;
CDummyConnectorServer m_DummyServerConnection;
CDummyConnectorClient m_DummyClientConnection;
MazeConfig m_Config;
HANDLE m_hOutputMsgThread;
BOOL m_bQuitThread;
HANDLE m_hClientThread;
DWORD m_dwNextOutputMsg;
BOOL m_bLocalLoopbackInitDone;
BOOL m_bInitDone;
BOOL m_bAllowLoopback;
BOOL m_bLocalLoopback;
BOOL m_bAllowConnect;
BOOL m_bConnectNow;
BOOL m_bDisconnectNow;
BOOL m_bOutOfDateClient;
TCHAR m_strTimeStamp[50];
BOOL m_bSaveSettings;
CCriticalSection m_OutputMsgQueueLock;
LONG m_lQueueSize;
TCHAR m_szOutputMsgBuffer[MAX_OUTPUT_QUEUE][256];
EnumLineType m_EnumLineType[MAX_OUTPUT_QUEUE];
DWORD m_dwNextFreeOutputMsg;
HANDLE m_hOutputMsgEvent;
HANDLE m_hLogFile;
TCHAR m_strLogFile[MAX_PATH];
TCHAR m_strLogDir[MAX_PATH];
};
#endif