Ym2413a: Here are two files of a new feature I've wrote.

It's called Character Scaling and has been in DDR since the 1st mix.
What it does is read the dancing character's "character.ini" file and uses
attributes stored there to adjust height, width and depth of the 3D object
and animation bones thus adjusting the size of the character on screen.
This commit is contained in:
Andrew Arsenault
2004-10-16 10:29:56 +00:00
parent 2c40b80080
commit b3f472ae8c
2 changed files with 52 additions and 1 deletions
+25 -1
View File
@@ -4,7 +4,7 @@
#include "RageFile.h"
#include "RageMath.h"
#include "RageDisplay.h"
#include "IniFile.h" // Added by Ym2413a, needed for code changes.
RageModelGeometry::RageModelGeometry ()
{
@@ -87,6 +87,24 @@ void RageModelGeometry::LoadMilkshapeAscii( CString sPath )
RageVec3ClearBounds( m_vMins, m_vMaxs );
//Ym2413a Added: Start
//Vector scaling loader.
float fXScale; fXScale = 1;
float fYScale; fYScale = 1;
float fZScale; fZScale = 1;
IniFile ini;
if( ini.ReadFile( sDir+"character.ini" ) )
{
if ( !ini.GetValue( "Attributes", "ScaleX", fXScale ) ) {
fXScale = 1; }
if ( !ini.GetValue( "Attributes", "ScaleY", fYScale ) ) {
fYScale = 1; }
if ( !ini.GetValue( "Attributes", "ScaleZ", fZScale ) ) {
fZScale = 1; }
}
//Ym2413a Added: End
while( f.GetLine( sLine ) > 0 )
{
iLineNum++;
@@ -159,6 +177,12 @@ void RageModelGeometry::LoadMilkshapeAscii( CString sPath )
{
THROW
}
//Ym2413a Added: Start
//Perform rescaling of model vectors.
v.p[0] = v.p[0]*fXScale;
v.p[1] = v.p[1]*fYScale;
v.p[2] = v.p[2]*fZScale;
//Ym2413a Added: End
// vertex.nFlags = nFlags;
v.bone = (uint8_t) nIndex;