| 1294 | } |
| 1295 | |
| 1296 | void Projectile::interpolateTick(F32 delta) |
| 1297 | { |
| 1298 | Parent::interpolateTick(delta); |
| 1299 | |
| 1300 | if( mHasExploded ) |
| 1301 | return; |
| 1302 | |
| 1303 | Point3F interpPos = mCurrDeltaBase + mCurrBackDelta * delta; |
| 1304 | Point3F dir = mCurrVelocity; |
| 1305 | if(dir.isZero()) |
| 1306 | dir.set(0,0,1); |
| 1307 | else |
| 1308 | dir.normalize(); |
| 1309 | |
| 1310 | MatrixF xform(true); |
| 1311 | xform = MathUtils::createOrientFromDir(dir); |
| 1312 | xform.setPosition(interpPos); |
| 1313 | setRenderTransform(xform); |
| 1314 | |
| 1315 | // fade out the projectile image |
| 1316 | S32 time = (S32)(mCurrTick - delta); |
| 1317 | if(time > mDataBlock->fadeDelay) |
| 1318 | { |
| 1319 | F32 fade = F32(time - mDataBlock->fadeDelay); |
| 1320 | mFadeValue = 1.0 - (fade / F32(mDataBlock->lifetime)); |
| 1321 | } |
| 1322 | else |
| 1323 | mFadeValue = 1.0; |
| 1324 | |
| 1325 | updateSound(); |
| 1326 | } |
| 1327 | |
| 1328 | |
| 1329 |
nothing calls this directly
no test coverage detected