Model\etc_Tail1 and etc_Tail2
ActionMoverState2.cpp
Code:
void CActionMover::ProcessFlyParticle( float fLenSq )
{
CMover *pMover = m_pMover;
// ¿î¿µÀÚ Åõ¸í¸ðµå¶§´Â ÆÄƼŬ ¾È³ª¿È.
if( (pMover->IsMode( TRANSPARENT_MODE ) ) == 0 )
{
ItemProp* pRideProp = prj.GetItemProp( m_pMover->m_dwRideItemIdx ); // ÇöÀç Ÿ°íÀÖ´Â Å»°ÍÀÇ ÇÁ·ÎÆÛƼ.
// ºñÇà ÆÄƼŬ ó¸®.
if( fLenSq > 0.01f )
{
if( (pMover->IsActiveMover() && g_Neuz.m_camera.m_fZoom > 2.0f) || pMover->IsActiveMover() == FALSE ) // ÀÏÁ¤¼Óµµ ÀÌ»óÀÌ µÇ¸é ²¿¸®¿¡ ÆÄƼŬÀÌ ³ª¿À±â ½ÃÀÛ.
{
int nType = 0;
if( pRideProp && pRideProp->dwID == II_RID_RID_BOR_RIDINGCLOUD )
nType = 1;
CreateFlyParticle( pMover, pMover->GetAngleX(), nType );
}
}
if( fLenSq > 0.001f )
{
if( (pMover->IsActiveMover() && g_Neuz.m_camera.m_fZoom > 1.0f) || pMover->IsActiveMover() == FALSE )
{
if( pRideProp && pRideProp->dwItemKind3 == IK3_BOARD ) // º¸µå¸¸ ²¿¸®°¡ ³ª¿Â´Ù.
{
if( m_pTail )
{
if( pRideProp->dwID == II_RID_RID_BOR_RIDINGCLOUD ) // ±ÙµÎ¿îÀ϶§
{
if( m_pTail->GetType() != 2 ) // »ý¼ºµÇ¾ú´ø ²¿¸®°í ±ÙµÎ¿î¿ëÀÌ ¾Æ´Ï¸é
m_pTail->ChangeTexture( D3DDEVICE, "etc_Tail2.bmp", 2 );
} else
{
if( m_pTail->GetType() != 1 ) // »ý¼ºµÇ¾ú´ø ²¿¸®°í ÀϹݺ¸µå¿ëÀÌ ¾Æ´Ï¸é
m_pTail->ChangeTexture( D3DDEVICE, "etc_Tail1.bmp", 1 ); // ÀϹݺ¸µå¿ëÀ¸·Î ÅؽºÃÄ ±³Ã¼.
}
}
if( m_pTail == NULL ) // ¾ÆÁ÷ ÇÒ´ç ¾ÈµÆÀ¸¸é ÇÒ´çÇÏ°í.
{
if( pRideProp->dwID == II_RID_RID_BOR_RIDINGCLOUD ) // ±ÙµÎ¿î...
{
m_pTail = (CTailEffectBelt*)g_TailEffectMng.AddEffect( g_Neuz.m_pd3dDevice, "etc_Tail2.bmp", 2 );
}
else
{
m_pTail = (CTailEffectBelt*)g_TailEffectMng.AddEffect( g_Neuz.m_pd3dDevice, "etc_Tail1.bmp", 1 );
}
}
D3DXVECTOR3 vPos1, vPos2;
D3DXVECTOR3 vLocal;
FLOAT fAngXZ = pMover->GetAngle();
FLOAT fAngH = pMover->GetAngleX();
AngleToVectorXZ( &vLocal, fAngXZ, -1.0f );
fAngXZ -= 90.0f;
if( fAngXZ < 0 )
fAngXZ += 360.0f;
AngleToVector( &vPos1, fAngXZ, -fAngH, 0.5f );
vPos1 += pMover->GetPos();
vPos1 += vLocal;
fAngXZ = pMover->GetAngle();
fAngH = pMover->GetAngleX();
AngleToVectorXZ( &vLocal, fAngXZ, -1.0f );
fAngXZ += 90.0f;
if( fAngXZ > 360.0f )
fAngXZ -= 360.0f;
AngleToVector( &vPos2, fAngXZ, -fAngH, 0.5f );
vPos2 += pMover->GetPos();
vPos2 += vLocal;
if( m_pTail )
m_pTail->CreateTail( vPos1, vPos2 );
}
}
}
} // Åõ¸í¸ðµå°¡ ¾Æ´Ò¶§
}