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>
92 lines
2.6 KiB
C++
92 lines
2.6 KiB
C++
//-----------------------------------------------------------------------------
|
|
// File: DXUtil.cpp
|
|
//
|
|
// Desc: Shortcut macros and functions for using DX objects
|
|
//
|
|
//
|
|
// Copyright (c) 1997-2001 Microsoft Corporation. All rights reserved
|
|
//-----------------------------------------------------------------------------
|
|
#define STRICT
|
|
#include <windows.h>
|
|
#include <mmsystem.h>
|
|
#include <tchar.h>
|
|
#include <stdio.h>
|
|
#include <stdarg.h>
|
|
#include "DXUtil.h"
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Name: DXUtil_GetDXSDKMediaPath()
|
|
// Desc: Returns the DirectX SDK media path
|
|
//-----------------------------------------------------------------------------
|
|
const TCHAR* DXUtil_GetDXSDKMediaPath()
|
|
{
|
|
static TCHAR strNull[2] = _T("");
|
|
static TCHAR strPath[MAX_PATH];
|
|
DWORD dwType;
|
|
DWORD dwSize = MAX_PATH;
|
|
HKEY hKey;
|
|
|
|
// Open the appropriate registry key
|
|
LONG lResult = RegOpenKeyEx( HKEY_LOCAL_MACHINE,
|
|
_T("Software\\Microsoft\\DirectX SDK"),
|
|
0, KEY_READ, &hKey );
|
|
if( ERROR_SUCCESS != lResult )
|
|
return strNull;
|
|
|
|
lResult = RegQueryValueEx( hKey, _T("DX81SDK Samples Path"), NULL,
|
|
&dwType, (BYTE*)strPath, &dwSize );
|
|
RegCloseKey( hKey );
|
|
|
|
if( ERROR_SUCCESS != lResult )
|
|
return strNull;
|
|
|
|
_tcscat( strPath, _T("\\Media\\") );
|
|
|
|
return strPath;
|
|
}
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Name: DXUtil_FindMediaFile()
|
|
// Desc: Returns a valid path to a DXSDK media file
|
|
//-----------------------------------------------------------------------------
|
|
HRESULT DXUtil_FindMediaFile( TCHAR* strPath, TCHAR* strFilename )
|
|
{
|
|
HANDLE file;
|
|
|
|
if( NULL==strFilename || NULL==strPath )
|
|
return E_INVALIDARG;
|
|
|
|
// Check if the file exists in the current directory
|
|
_tcscpy( strPath, strFilename );
|
|
|
|
file = CreateFile( strPath, GENERIC_READ, FILE_SHARE_READ, NULL,
|
|
OPEN_EXISTING, 0, NULL );
|
|
if( INVALID_HANDLE_VALUE != file )
|
|
{
|
|
CloseHandle( file );
|
|
return S_OK;
|
|
}
|
|
|
|
// Check if the file exists in the current directory
|
|
_stprintf( strPath, _T("%s%s"), DXUtil_GetDXSDKMediaPath(), strFilename );
|
|
|
|
file = CreateFile( strPath, GENERIC_READ, FILE_SHARE_READ, NULL,
|
|
OPEN_EXISTING, 0, NULL );
|
|
if( INVALID_HANDLE_VALUE != file )
|
|
{
|
|
CloseHandle( file );
|
|
return S_OK;
|
|
}
|
|
|
|
// On failure, just return the file as the path
|
|
_tcscpy( strPath, strFilename );
|
|
return E_FAIL;
|
|
}
|
|
|