soul8320
19.05.2014, 10:07
void CNoSpread::GetSpreadXY( UINT seed, Vector& vec )
{
int iSeed = seed & 255;
iSeed++;
RandomSeed( iSeed );
vec.x = RandomFloat( -0.5, 0.5 ) + RandomFloat( -0.5, 0.5 );
vec.y = RandomFloat( -0.5, 0.5 ) + RandomFloat( -0.5, 0.5 );
vec.z = vec.x * vec.x + vec.y * vec.y;
vec *= GetVecSpread( ); // m_flSpread of FX_FireBullets
}
void CNoSpread::GetSpreadFix( UINT seed, QAngle& vIn, QAngle& vOut )
{
Vector forward, right, up, vecDir;
Vector view, spread;
QAngle dest;
AngleVectors( vIn, &forward, &right, &up );
GetSpreadXY( seed, spread );
vecDir.x = forward.x + spread.x * right.x + spread.y * up.x;
view.x = 8192.0f * vecDir.x;
vecDir.y = forward.y + spread.x * right.y + spread.y * up.y;
view.y = 8192.0f * vecDir.y;
vecDir.z = forward.z + spread.x * right.z + spread.y * up.z;
view.z = 8192.0f * vecDir.z;
VectorAngles( view, dest );
vOut.x = vIn.x - dest.x;
vOut.y = vIn.y - dest.y;
}
/
{
int iSeed = seed & 255;
iSeed++;
RandomSeed( iSeed );
vec.x = RandomFloat( -0.5, 0.5 ) + RandomFloat( -0.5, 0.5 );
vec.y = RandomFloat( -0.5, 0.5 ) + RandomFloat( -0.5, 0.5 );
vec.z = vec.x * vec.x + vec.y * vec.y;
vec *= GetVecSpread( ); // m_flSpread of FX_FireBullets
}
void CNoSpread::GetSpreadFix( UINT seed, QAngle& vIn, QAngle& vOut )
{
Vector forward, right, up, vecDir;
Vector view, spread;
QAngle dest;
AngleVectors( vIn, &forward, &right, &up );
GetSpreadXY( seed, spread );
vecDir.x = forward.x + spread.x * right.x + spread.y * up.x;
view.x = 8192.0f * vecDir.x;
vecDir.y = forward.y + spread.x * right.y + spread.y * up.y;
view.y = 8192.0f * vecDir.y;
vecDir.z = forward.z + spread.x * right.z + spread.y * up.z;
view.z = 8192.0f * vecDir.z;
VectorAngles( view, dest );
vOut.x = vIn.x - dest.x;
vOut.y = vIn.y - dest.y;
}
/