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:
195
CryptoSource/GCMDSLoader/GCMDSLoader.cpp
Normal file
195
CryptoSource/GCMDSLoader/GCMDSLoader.cpp
Normal file
@@ -0,0 +1,195 @@
|
||||
// GCMDSLoader.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "SimpleParser.h"
|
||||
|
||||
int _tmain(int argc, _TCHAR* argv[])
|
||||
{
|
||||
// FileLoader
|
||||
CSimpleParser parser;
|
||||
|
||||
if( false == parser.OpenFile( "aaa.gcmds" ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
// Client Source..
|
||||
if( 0 != stricmp( "SKELETON_KEY_DATA", parser.GetNextToken() ) )
|
||||
{
|
||||
return false; // invalid header
|
||||
}
|
||||
|
||||
while( (szToken = parser.GetNextToken()) != NULL )
|
||||
{
|
||||
if( 0 == stricmp( "skeletoncount", szToken ) )
|
||||
{
|
||||
szToken = parser.GetNextToken();
|
||||
m_lSkeletonCount = aton( szToken );
|
||||
}
|
||||
else if( 0 == stricmp( "skeleton", szToken ) )
|
||||
{
|
||||
m_pSkeletonHierarchy = new long[m_lSkeletonCount];
|
||||
m_pAniHolderIndex = new long[m_lSkeletonCount];
|
||||
m_pIndexInSubpart = new long[m_lSkeletonCount];
|
||||
m_pszSkeletonName = new char*[m_lSkeletonCount];
|
||||
|
||||
szToken = parser.GetNextToken();
|
||||
while( 0 != stricmp( szToken, ";" ) )
|
||||
{
|
||||
i = aton(szToken);
|
||||
if( i >= m_lSkeletonCount )
|
||||
{
|
||||
// skip remainder of 4 tokens
|
||||
for( j = 0; j < 4; ++j )
|
||||
{
|
||||
parser.GetNextToken();
|
||||
}
|
||||
|
||||
szToken = parser.GetNextToken();
|
||||
continue;
|
||||
}
|
||||
|
||||
m_pSkeletonHierarchy[i] = aton( parser.GetNextToken() );
|
||||
m_pAniHolderIndex[i] = aton( parser.GetNextToken() );
|
||||
m_pIndexInSubpart[i] = aton( parser.GetNextToken() );
|
||||
szToken = parser.GetNextToken();
|
||||
m_pszSkeletonName[i] = new char[strlen(szToken)+1];
|
||||
strcpy( m_pszSkeletonName[i], szToken );
|
||||
|
||||
szToken = parser.GetNextToken();
|
||||
}
|
||||
}
|
||||
else if( 0 == stricmp( "aniholdercount", szToken ) )
|
||||
{
|
||||
szToken = parser.GetNextToken();
|
||||
m_lAniHolderCount = aton( szToken );
|
||||
}
|
||||
else if( 0 == stricmp( "TMInverse", szToken ) )
|
||||
{
|
||||
m_pLocalizerMatrix = new matrix[m_lSkeletonCount];
|
||||
|
||||
szToken = parser.GetNextToken();
|
||||
while( 0 != stricmp( szToken, ";" ) )
|
||||
{
|
||||
i = aton(parser.GetNextToken()); // skip "matrix" token
|
||||
if( i >= m_lSkeletonCount )
|
||||
{
|
||||
// skip remainder of 12 tokens
|
||||
for( j = 0; j < 12; ++j )
|
||||
{
|
||||
parser.GetNextToken();
|
||||
}
|
||||
szToken = parser.GetNextToken();
|
||||
continue;
|
||||
}
|
||||
|
||||
m_pLocalizerMatrix[i]._11 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._12 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._13 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._14 = 0.0f;
|
||||
|
||||
m_pLocalizerMatrix[i]._21 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._22 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._23 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._24 = 0.0f;
|
||||
|
||||
m_pLocalizerMatrix[i]._31 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._32 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._33 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._34 = 0.0f;
|
||||
|
||||
m_pLocalizerMatrix[i]._41 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._42 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._43 = atof( parser.GetNextToken() );
|
||||
m_pLocalizerMatrix[i]._44 = 1.0f;
|
||||
|
||||
szToken = parser.GetNextToken();
|
||||
}
|
||||
}
|
||||
else if( 0 == stricmp( "BoundingVolume", szToken ) )
|
||||
{
|
||||
Z3D_BOUNDINGVOLUME_INFO bvi;
|
||||
vector3 vPos;
|
||||
quaternion qRot;
|
||||
vector3 vSize;
|
||||
vector3 vTmp;
|
||||
|
||||
szToken = parser.GetNextToken();
|
||||
while( 0 != stricmp( szToken, ";" ) )
|
||||
{
|
||||
if( 0 == stricmp( "OBB", szToken ) ||
|
||||
0 == stricmp( "CYLINDER", szToken ) ||
|
||||
0 == stricmp( "SPHERE", szToken ) )
|
||||
{
|
||||
if( 0 == stricmp( "OBB", szToken ) )
|
||||
{
|
||||
bvi.eBVType = Z3D_BOUNDINGVOLUME_INFO::Z3DBV_OBB;
|
||||
}
|
||||
else if ( 0 == stricmp( "CYLINDER", szToken ) )
|
||||
{
|
||||
bvi.eBVType = Z3D_BOUNDINGVOLUME_INFO::Z3DBV_CYLINDER;
|
||||
}
|
||||
else if ( 0 == stricmp( "SPHERE", szToken ) )
|
||||
{
|
||||
bvi.eBVType = Z3D_BOUNDINGVOLUME_INFO::Z3DBV_SPHERE;
|
||||
}
|
||||
|
||||
bvi.lSkelIndex = aton( parser.GetNextToken() );
|
||||
|
||||
szToken = parser.GetNextToken();
|
||||
while( 0 != stricmp( szToken, ";" ) )
|
||||
{
|
||||
if( 0 == stricmp( "pos", szToken ) )
|
||||
{
|
||||
vPos.x = atof( parser.GetNextToken() );
|
||||
vPos.y = atof( parser.GetNextToken() );
|
||||
vPos.z = atof( parser.GetNextToken() );
|
||||
}
|
||||
else if( 0 == stricmp( "rot", szToken ) )
|
||||
{
|
||||
qRot.x = atof( parser.GetNextToken() );
|
||||
qRot.y = atof( parser.GetNextToken() );
|
||||
qRot.z = atof( parser.GetNextToken() );
|
||||
qRot.w = atof( parser.GetNextToken() );
|
||||
}
|
||||
else if( 0 == stricmp( "size", szToken ) )
|
||||
{
|
||||
vSize.x = atof( parser.GetNextToken() );
|
||||
vSize.y = atof( parser.GetNextToken() );
|
||||
vSize.z = atof( parser.GetNextToken() );
|
||||
}
|
||||
|
||||
szToken = parser.GetNextToken();
|
||||
}
|
||||
|
||||
|
||||
// calc
|
||||
if( Z3D_BOUNDINGVOLUME_INFO::Z3DBV_OBB == bvi.eBVType )
|
||||
{
|
||||
z3d::VectorRotate( vTmp, vector3(0,0.5f*vSize.y,0), qRot );
|
||||
|
||||
bvi.vOrigin = vPos + vTmp;
|
||||
bvi.vExtent = 0.5f*vSize;
|
||||
bvi.qRot = qRot;
|
||||
}
|
||||
else if( Z3D_BOUNDINGVOLUME_INFO::Z3DBV_CYLINDER == bvi.eBVType )
|
||||
{
|
||||
}
|
||||
else if( Z3D_BOUNDINGVOLUME_INFO::Z3DBV_SPHERE == bvi.eBVType )
|
||||
{
|
||||
}
|
||||
|
||||
m_vecBoundingVolumeInfo.push_back( bvi );
|
||||
|
||||
szToken = parser.GetNextToken();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
parser.Close();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user