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:
2025-11-29 16:24:34 +09:00
commit e067522598
5135 changed files with 1745744 additions and 0 deletions

View File

@@ -0,0 +1,136 @@
// Z3DMaskedStream.cpp: implementation of the CZ3DMaskedStream class.
//
//////////////////////////////////////////////////////////////////////
#include "Z3DMaskedStream.h"
#include "GMMemory.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CZ3DMaskedStream::CZ3DMaskedStream()
{
m_szFileName = NULL;
m_pFile = NULL;
m_szMaskString = NULL;
m_lMaskStringLength = 0;
m_lPointerInMask = 0;
}
CZ3DMaskedStream::~CZ3DMaskedStream()
{
Reset();
}
void CZ3DMaskedStream::Reset()
{
if( m_pFile )
{
fclose( m_pFile );
m_pFile = NULL;
}
SAFE_DELETEA( m_szFileName );
SAFE_DELETEA( m_szMaskString );
m_lMaskStringLength = 0;
m_lPointerInMask = 0;
}
bool CZ3DMaskedStream::Open( const char* szFileName, const char* szMaskString )
{
Reset();
if( NULL == (m_pFile = fopen( szFileName, "wb" )) )
{
return false;
}
m_szFileName = new char[strlen(szFileName) + 1];
strcpy( m_szFileName, szFileName );
SetMaskString( szMaskString );
return true;
}
void CZ3DMaskedStream::Printf( char* szTypes, ... )
{
if( NULL == m_pFile )
{
return; // file not opened
}
const long MAX_STRING_SIZE = 300;
char szTmp[MAX_STRING_SIZE];
va_list vl;
long l = 0;
va_start( vl, szTypes );
l = _vsnprintf( szTmp, MAX_STRING_SIZE, szTypes, vl );
va_end( vl );
if( l < 0 )
{
return; // _vsnprintf() error
}
for( int i = 0; i < l; ++i )
{
if( '\n' == szTmp[i] )
{
// handle 'new line' char.
fputc( 0x0D ^ GetMaskChar(), m_pFile );
fputc( 0x0A ^ GetMaskChar(), m_pFile );
}
else
{
fputc( szTmp[i] ^ GetMaskChar(), m_pFile );
}
}
}
void CZ3DMaskedStream::SetMaskString( const char* szString )
{
m_lPointerInMask = 0;
if( m_szMaskString )
{
SAFE_DELETEA( m_szMaskString )
}
if( NULL == szString )
{
m_lMaskStringLength = 0;
return;
}
m_lMaskStringLength = strlen(szString);
m_szMaskString = new char[m_lMaskStringLength+1];
strcpy( m_szMaskString, szString );
int iLen = strlen(m_szMaskString);
for(int k = 0; k < iLen; ++k)
{
m_szMaskString[k] = m_szMaskString[k]^0xc8;
}
}
char CZ3DMaskedStream::GetMaskChar()
{
if( NULL == m_szMaskString )
{
return 0;
}
long l = m_lPointerInMask;
m_lPointerInMask = ( m_lPointerInMask + 1 ) % m_lMaskStringLength;
return m_szMaskString[l];
}