| 1338 | } |
| 1339 | |
| 1340 | void ShapeBase::advanceTime(F32 dt) |
| 1341 | { |
| 1342 | // On the client, the shape threads and images are |
| 1343 | // advanced at framerate. |
| 1344 | advanceThreads(dt); |
| 1345 | updateAudioPos(); |
| 1346 | for (S32 i = 0; i < MaxMountedImages; i++) |
| 1347 | if (mMountedImageList[i].dataBlock) |
| 1348 | { |
| 1349 | updateImageState(i, dt); |
| 1350 | updateImageAnimation(i, dt); |
| 1351 | } |
| 1352 | |
| 1353 | // Cloaking |
| 1354 | if (mCloaked && mCloakLevel != 1.0) { |
| 1355 | if (sCloakSpeed <= 0.0f) |
| 1356 | { |
| 1357 | // Instantaneous |
| 1358 | mCloakLevel = 1.0; |
| 1359 | } |
| 1360 | else |
| 1361 | { |
| 1362 | // Over time determined by sCloakSpeed |
| 1363 | mCloakLevel += dt / sCloakSpeed; |
| 1364 | if (mCloakLevel >= 1.0) |
| 1365 | mCloakLevel = 1.0; |
| 1366 | } |
| 1367 | } else if (!mCloaked && mCloakLevel != 0.0) { |
| 1368 | if (sCloakSpeed <= 0.0f) |
| 1369 | { |
| 1370 | // Instantaneous |
| 1371 | mCloakLevel = 0.0; |
| 1372 | } |
| 1373 | else |
| 1374 | { |
| 1375 | // Over time determined by sCloakSpeed |
| 1376 | mCloakLevel -= dt / sCloakSpeed; |
| 1377 | if (mCloakLevel <= 0.0) |
| 1378 | mCloakLevel = 0.0; |
| 1379 | } |
| 1380 | } |
| 1381 | if(mFading) |
| 1382 | { |
| 1383 | mFadeElapsedTime += dt; |
| 1384 | if(mFadeElapsedTime > mFadeTime) |
| 1385 | { |
| 1386 | mFadeVal = F32(!mFadeOut); |
| 1387 | mFading = false; |
| 1388 | } |
| 1389 | else |
| 1390 | { |
| 1391 | mFadeVal = mFadeElapsedTime / mFadeTime; |
| 1392 | if(mFadeOut) |
| 1393 | mFadeVal = 1 - mFadeVal; |
| 1394 | } |
| 1395 | } |
| 1396 | |
| 1397 | if (isMounted()) { |
no test coverage detected