Restructure repository to include all source folders

Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-29 20:17:20 +09:00
parent 5d3cd64a25
commit dd97ddec92
11602 changed files with 1446576 additions and 0 deletions

View File

@@ -0,0 +1,213 @@
#include "stdafx.h"
#include <Stream/Buffer/Buffer.h>
#include <Stream/Buffer/BufferFactory.h>
#include <Network/Dispatch/AdminToolDispatch.h>
#include <Network/AsyncSock/ClientSock.h>
#include <Network/SingleSession/ClientSingleSession.h>
CSingleSession::CSingleSession( )
: m_hSock( INVALID_SOCKET ), m_lpClientAsync( NULL ), m_pPacketDispatch( NULL ), m_bIsConnected( FALSE )
//m_pRecvBuffer( CREATE_BUFFER( static_cast< unsigned long >( CBufferFactory::GetOptimizedBufferSize( 32768 ) ) ) )
{
m_pRecvBuffer = m_DefaultBufferFactory.Create( 32768 );
}
CSingleSession::~CSingleSession( )
{
Destroy( );
if( m_pRecvBuffer )
{
m_DefaultBufferFactory.Release( m_pRecvBuffer );
//RELEASE_BUFFER( m_pRecvBuffer );
}
}
bool CSingleSession::Initialize( CPacketToolDispatch* pPacketDispatch )
{
if( pPacketDispatch == NULL ) return false;
m_lpClientAsync = new CClientSock( this );
if( !SetDispatch( pPacketDispatch ) )
{
return false;
}
if( !m_lpClientAsync->Create( ) )
{
return false;
}
return true;
}
void CSingleSession::Disconnected( )
{
MessageBox( NULL, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>."), _T("<EFBFBD>˸<EFBFBD>"), MB_OK );
m_bIsConnected = false;
}
bool CSingleSession::Connect( TCHAR* Address, int nPort )
{
if( m_lpClientAsync )
{
if( InitializeInternal( m_pPacketDispatch ) )
{
if( m_lpClientAsync->Connect(Address, nPort ) )
{
m_hSock = m_lpClientAsync->m_hSocket;
m_bIsConnected = true;
return true;
}
}
}
return false;
}
bool CSingleSession::GetConnected( )
{
return m_bIsConnected;
}
bool CSingleSession::InitializeInternal( CPacketToolDispatch* lpPacketDispatch )
{
m_bIsConnected = FALSE;
CloseSocket( );
//m_pRecvBuffer->ClearBuffer( );
if( m_pRecvBuffer == NULL )
{
return false;
}
if( m_pPacketDispatch == NULL )
{
return false;
}
return true;
}
bool CSingleSession::Send( CBuffer* lpBuffer )
{
unsigned long dwSendBytes = 0;
unsigned long nSendByte = lpBuffer->length( );
if( m_hSock != INVALID_SOCKET )
{
while( nSendByte )
{
dwSendBytes = m_lpClientAsync->Send( lpBuffer->begin( ), lpBuffer->length( ) ); // <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>~
if( dwSendBytes )
{
nSendByte -= dwSendBytes;
}
else //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD>θ<EFBFBD>
{
CloseSocket( );
//RELEASE_BUFFER( lpBuffer );
m_DefaultBufferFactory.Release( lpBuffer );
AfxMessageBox( _T("<EFBFBD><EFBFBD>Ŷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>~~"), MB_OK );
return false;
}
}
}
//RELEASE_BUFFER( lpBuffer );
m_DefaultBufferFactory.Release( lpBuffer );
return true;
}
bool CSingleSession::Recv( )
{
unsigned long dwReceived = 0; //<2F><><EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>~
unsigned long dwBufferLength = m_pRecvBuffer->remain( ); //<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if( m_hSock != INVALID_SOCKET ) // <20><>ȿ<EFBFBD><C8BF> <20><><EFBFBD><EFBFBD>?
{
dwReceived = m_lpClientAsync->Receive( m_pRecvBuffer->wr_ptr( ), m_pRecvBuffer->remain( ) ); // <20><><EFBFBD><EFBFBD> <20>޾ƹ<DEBE><C6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>~
if( dwReceived ) // <20><><EFBFBD><EFBFBD> <20>޾Ҵ<DEBE>.
{
return Dispatch( dwReceived ); // <20><>Ŷ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ~ <20><>
}
else // <20><>~
{
CloseSocket( );
}
}
return false;
}
bool CSingleSession::Dispatch( unsigned long dwReceivedBytes )
{
// <20><>Ŷ ó<><C3B3><EFBFBD><EFBFBD> <20>ϰ<EFBFBD>, ó<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>δ<EFBFBD>.
//m_pRecvBuffer->UseBuffer(dwReceivedBytes);
m_pRecvBuffer->wr_ptr( dwReceivedBytes );
unsigned long dwDispatchSize = m_pRecvBuffer->length( );
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> 0(<28><><EFBFBD><EFBFBD> <20>Ϸ<EFBFBD>) <20>̰ų<CCB0>, <20><>Ŷ ó<><C3B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> Socket<65><74> Close<73>Ѵ<EFBFBD>.
bool bResult = ( ( 0 != dwReceivedBytes ) && ( NULL != m_pPacketDispatch ) &&
m_pPacketDispatch->ParsePacket( m_pRecvBuffer->begin( ), &dwDispatchSize ) );
m_pRecvBuffer->rd_ptr( dwDispatchSize ); // ó<><C3B3><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6><EFBFBD≯<EFBFBD>ŭ <20>о<EFBFBD><D0BE>ְ<EFBFBD>
m_pRecvBuffer->pop_read_data( ); // ó<><C3B3><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20><><EFBFBD>ۿ<EFBFBD><DBBF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
if( !bResult )
{
AfxMessageBox( _T("Dispatch <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>~~"), MB_OK );
CloseSocket();
}
return bResult;
}
void CSingleSession::Close( )
{
if( m_lpClientAsync ) delete m_lpClientAsync;
m_hSock = INVALID_SOCKET;
m_bIsConnected = FALSE;
}
bool CSingleSession::SetDispatch( CPacketToolDispatch* pPacketDispatch )
{
if( m_pPacketDispatch ) return false;
m_pPacketDispatch = pPacketDispatch;
m_pPacketDispatch->SetSession(this);
return true;
}
void CSingleSession::Destroy( )
{
Close( );
CloseSocket( );
if( m_pPacketDispatch )
{
m_pPacketDispatch->Destroy();
m_pPacketDispatch = NULL;
}
// m_pRecvBuffer->ClearBuffer();
}
void CSingleSession::CloseSocket( )
{
if(INVALID_SOCKET != m_hSock)
{
shutdown(m_hSock, SD_BOTH);
closesocket(m_hSock);
}
}

View File

@@ -0,0 +1,46 @@
#ifndef _CLIENT_SINGLE_SESSION_H_
#define _CLIENT_SINGLE_SESSION_H_
#include <Stream/Buffer/BufferFactory.h>
#include <tchar.h>
// forward decl.
class CClientSock;
class CBuffer;
class CPacketToolDispatch;
class CWnd;
class CSingleSession
{
public:
CSingleSession( );
~CSingleSession( );
bool Send( CBuffer* lpBuffer );
bool Recv( );
void Close( );
void Destroy( );
bool Initialize( CPacketToolDispatch* CPacketToolDispatch );
bool Connect( TCHAR* Address, int nPort );
void Disconnected( );
bool GetConnected( );
bool SetCurrentWindow( CWnd* pMainFrame );
CWnd* GetCurrentWindow( );
private:
SOCKET m_hSock; // Socket<65><74><EFBFBD><EFBFBD>
CClientSock* m_lpClientAsync; // MfcŬ<63><C5AC><EFBFBD><EFBFBD> CAsyncSocket
CBuffer* m_pRecvBuffer; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͸<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>.
CPacketToolDispatch* m_pPacketDispatch; // <20>޾<EFBFBD><DEBE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>..
bool m_bIsConnected;
void CloseSocket( );
bool InitializeInternal( CPacketToolDispatch* pPacketDispatch );
bool Dispatch( unsigned long dwReceivedBytes );
bool SetDispatch( CPacketToolDispatch* pPacketDispatch );
CDefaultBufferFactory m_DefaultBufferFactory;
};
#endif