Vehicle.cc updateDamageSmoke() - small bug
by Stefan Beffy Moises · in Torque Game Engine · 12/26/2005 (8:11 am) · 3 replies
Since there doesnt seem to be a bugtracker for TGE anymore (?), I'll post it here:
If you use more than one and also different damage emitters for vehicles, there is an error and wrong emitters are used since the wrong index is used in this function:
So, in vehicle.cc, replace:
with
If you use more than one and also different damage emitters for vehicles, there is an error and wrong emitters are used since the wrong index is used in this function:
So, in vehicle.cc, replace:
void Vehicle::updateDamageSmoke( F32 dt )
{
for( S32 j=VehicleData::VC_NUM_DAMAGE_LEVELS-1; j>=0; j-- )
{
F32 damagePercent = mDamage / mDataBlock->maxDamage;
if( damagePercent >= mDataBlock->damageLevelTolerance[j] )
{
for( int i=0; i<mDataBlock->numDmgEmitterAreas; i++ )
{
MatrixF trans = getTransform();
Point3F offset = mDataBlock->damageEmitterOffset[i];
trans.mulP( offset );
Point3F emitterPoint = offset;
if( pointInWater(offset ) )
{
U32 emitterOffset = VehicleData::VC_BUBBLE_EMITTER;
if( mDamageEmitterList[emitterOffset] )
{
mDamageEmitterList[emitterOffset]->emitParticles( emitterPoint, emitterPoint, Point3F( 0.0, 0.0, 1.0 ), getVelocity(), (U32)( dt * 1000 ) );
}
}
else
{
if( mDamageEmitterList[j] )
{
mDamageEmitterList[j]->emitParticles( emitterPoint, emitterPoint, Point3F( 0.0, 0.0, 1.0 ), getVelocity(), (U32)(dt * 1000));
}
}
}
break;
}
}
}with
void Vehicle::updateDamageSmoke( F32 dt )
{
for( S32 j=VehicleData::VC_NUM_DAMAGE_LEVELS-1; j>=0; j-- )
{
F32 damagePercent = mDamage / mDataBlock->maxDamage;
if( damagePercent >= mDataBlock->damageLevelTolerance[j] )
{
for( int i=0; i<mDataBlock->numDmgEmitterAreas; i++ )
{
MatrixF trans = getTransform();
Point3F offset = mDataBlock->damageEmitterOffset[i];
trans.mulP( offset );
Point3F emitterPoint = offset;
if( pointInWater(offset ) )
{
U32 emitterOffset = VehicleData::VC_BUBBLE_EMITTER;
if( mDamageEmitterList[emitterOffset] )
{
mDamageEmitterList[emitterOffset]->emitParticles( emitterPoint, emitterPoint, Point3F( 0.0, 0.0, 1.0 ), getVelocity(), (U32)( dt * 1000 ) );
}
}
else
{
if( mDamageEmitterList[i] )
{
mDamageEmitterList[i]->emitParticles( emitterPoint, emitterPoint, Point3F( 0.0, 0.0, 1.0 ), getVelocity(), (U32)(dt * 1000));
}
}
}
break;
}
}
}(Note the use of i instead of j in the last if() section)About the author
#2
Are there plans to use Mantis for TGE, too?
Or is the old, custom bugtracker still in use and I just can't find it?
12/26/2005 (10:51 pm)
Heya Ben! No problem :)Are there plans to use Mantis for TGE, too?
Or is the old, custom bugtracker still in use and I just can't find it?
#3
12/27/2005 (1:21 am)
We are using Mantis. :) It's just mostly private as it's simpler for us to use without worrying about including anything NDA or offensive in the logs.
Associate Kyle Carter