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,192 @@
// H3DOutfitTable.cpp: implementation of the CH3DOutfitTable class.
//
//////////////////////////////////////////////////////////////////////
#include "H3DOutfitTable.h"
#include "SimpleParser.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CH3DOutfitTable::CH3DOutfitTable()
{
}
CH3DOutfitTable::~CH3DOutfitTable()
{
std::map<char*, H3DOutfitElement, szi_less>::iterator it;
for( it = m_mapName2Outfit.begin(); it != m_mapName2Outfit.end(); it++ )
{
it->second.Flush();
}
}
bool CH3DOutfitTable::Load( const char* szFileName )
{
CSimpleParser parser;
if( false == parser.OpenFile( szFileName ) )
{
return false; // file open failed
}
int i;
char* szToken;
char* szTmp;
char szItemName[260];
std::vector<char*> vec_szMeshName;
std::vector<char*> vec_szTexName;
long lState = 0;
/* lState -
0 : item name read mode
1 : Mesh name read mode
2 : Tex name read mode
3 : Set item name read mode */
H3DOutfitElement oel;
while( (szToken = parser.GetNextToken()) != NULL )
{
switch( lState )
{
case 0:
if( 0 == stricmp( szToken, "Mesh" ) )
{
// Mesh name read mode <20><> <20><>ȯ
lState = 1;
}
else if( 0 == stricmp( szToken, "Tex" ) )
{
// Tex name read mode <20><> <20><>ȯ
lState = 2;
}
else if( 0 == stricmp( szToken, "Set" ) )
{
// Set item name read mode <20><> <20><>ȯ
lState = 3;
}
else
{
// <20>̵<EFBFBD><CCB5><EFBFBD><EFBFBD><EFBFBD> <20>ƴϸ<C6B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD> <20>б<EFBFBD><D0B1><EFBFBD>.
strcpy( szItemName, szToken ); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20>ش<EFBFBD><D8B4>ϴ<EFBFBD> <20><><EFBFBD>ڿ<EFBFBD> <20><><EFBFBD><EFBFBD>
}
break;
case 1:
if( 0 == stricmp( szToken, ";" ) )
{
// Mesh name read mode<64><65> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// outfit element <20><> mesh <20>ʵ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
oel.lMeshCount = vec_szMeshName.size();
oel.pszMeshName = new char*[vec_szMeshName.size()];
for( i = 0; i < vec_szMeshName.size(); ++i )
{
oel.pszMeshName[i] = vec_szMeshName[i];
}
// <20><><EFBFBD><EFBFBD> <20><>ȯ
lState = 0;
}
else
{
// mesh name<6D><65> <20>ӽ<EFBFBD> vector<6F><72> <20><><EFBFBD><EFBFBD>
szTmp = new char[strlen(szToken)+1];
strcpy( szTmp, szToken );
vec_szMeshName.push_back( szTmp );
}
break;
case 2:
if( 0 == stricmp( szToken, ";" ) )
{
// Tex name read mode<64><65> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// outfit element <20><> tex <20>ʵ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
oel.lTexCount = vec_szTexName.size();
oel.pszTexName = new char*[vec_szTexName.size()];
for( i = 0; i < vec_szTexName.size(); ++i )
{
oel.pszTexName[i] = vec_szTexName[i];
}
oel.szItemName = new char[strlen(szItemName)+1];
strcpy( oel.szItemName, szItemName );
// <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>ۿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>б<EFBFBD><D0B1><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹Ƿ<CCB9>,
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD> <20>߰<EFBFBD><DFB0>ϰ<EFBFBD>,
AddItem( oel );
// <20>ӽ<EFBFBD><D3BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> vector<6F><72><EFBFBD><EFBFBD>
vec_szMeshName.clear();
vec_szTexName.clear();
oel.szSetItemName = NULL;
// <20><><EFBFBD><EFBFBD> <20><>ȯ
lState = 0;
}
else
{
// mesh name<6D><65> <20>ӽ<EFBFBD> vector<6F><72> <20><><EFBFBD><EFBFBD>
szTmp = new char[strlen(szToken)+1];
strcpy( szTmp, szToken );
vec_szTexName.push_back( szTmp );
}
break;
case 3:
if( 0 == stricmp( szToken, ";" ) )
{
lState = 0;
}
else
{
oel.szSetItemName = new char[strlen(szToken)+1];
strcpy( oel.szSetItemName, szToken );
}
}
}
return true;
}
bool CH3DOutfitTable::AddItem( H3DOutfitElement &outfit )
{
if( m_mapName2Outfit.end() != m_mapName2Outfit.find( outfit.szItemName ) )
{
// <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD><EFBFBD><EFBFBD> <20>̹<EFBFBD> <20><><EFBFBD>ϵ<EFBFBD> <20>׸<EFBFBD><D7B8><EFBFBD> <20>ִ<EFBFBD>.
return false;
}
m_mapName2Outfit[outfit.szItemName] = outfit;
return true;
}
bool CH3DOutfitTable
::GetOutfit( H3DOutfitElement* &pOutfit, char* szOutfitName )
{
std::map<char*, H3DOutfitElement, szi_less>::iterator it;
it = m_mapName2Outfit.find( szOutfitName );
if( m_mapName2Outfit.end() == it )
{
/*outfit.lMeshCount = 0;
outfit.lTexCount = 0;
outfit.pszMeshName = NULL;
outfit.pszTexName = NULL;*/
pOutfit = NULL;
return false;
}
pOutfit = &(it->second);
return true;
}