| 332 | } |
| 333 | |
| 334 | void zSurfaceUpdate(xBase* to, xScene* sc, F32 dt) |
| 335 | { |
| 336 | F32 timestep_forUV = dt; |
| 337 | S32 j; |
| 338 | xSurface* t = (xSurface*)to; |
| 339 | zSurfaceProps* moprops = (zSurfaceProps*)t->moprops; |
| 340 | |
| 341 | for (j = 0; j < 2; j++) |
| 342 | { |
| 343 | if ((j == 0 && (moprops->uvfx_flags & UVANIM_FLAG_ON)) || |
| 344 | (j == 1 && (moprops->uvfx_flags & UVANIM_FLAG_ON2))) |
| 345 | { |
| 346 | switch (moprops->uvfx[j].mode) |
| 347 | { |
| 348 | case 0: |
| 349 | { |
| 350 | xVec3 d; |
| 351 | |
| 352 | moprops->uvfx[j].rot += moprops->uvfx[j].rot_spd * dt; |
| 353 | while (moprops->uvfx[j].rot >= 360.0f) |
| 354 | moprops->uvfx[j].rot -= 360.0f; |
| 355 | while (moprops->uvfx[j].rot < 0.0f) |
| 356 | moprops->uvfx[j].rot += 360.0f; |
| 357 | |
| 358 | xVec3SMul(&d, &moprops->uvfx[j].trans_spd, timestep_forUV); |
| 359 | xVec3Add(&moprops->uvfx[j].trans, &d, &moprops->uvfx[j].trans); |
| 360 | while (moprops->uvfx[j].trans.x >= 1.0f) |
| 361 | moprops->uvfx[j].trans.x -= 1.0f; |
| 362 | while (moprops->uvfx[j].trans.x < 0.0f) |
| 363 | moprops->uvfx[j].trans.x += 1.0f; |
| 364 | while (moprops->uvfx[j].trans.y >= 1.0f) |
| 365 | moprops->uvfx[j].trans.y -= 1.0f; |
| 366 | while (moprops->uvfx[j].trans.y < 0.0f) |
| 367 | moprops->uvfx[j].trans.y += 1.0f; |
| 368 | |
| 369 | xVec3SMul(&d, &moprops->uvfx[j].scale_spd, dt); |
| 370 | xVec3Add(&moprops->uvfx[j].scale, &d, &moprops->uvfx[j].scale); |
| 371 | while (moprops->uvfx[j].scale.x >= 8.0f) |
| 372 | moprops->uvfx[j].scale.x -= 8.0f; |
| 373 | while (moprops->uvfx[j].scale.x < 0.0f) |
| 374 | moprops->uvfx[j].scale.x += 8.0f; |
| 375 | while (moprops->uvfx[j].scale.y >= 8.0f) |
| 376 | moprops->uvfx[j].scale.y -= 8.0f; |
| 377 | while (moprops->uvfx[j].scale.y < 0.0f) |
| 378 | moprops->uvfx[j].scale.y += 8.0f; |
| 379 | |
| 380 | break; |
| 381 | } |
| 382 | case 1: |
| 383 | { |
| 384 | moprops->uvfx[j].trans.x = isin(2.0f * gFrameCount * (1.0f/60)); |
| 385 | moprops->uvfx[j].trans.y = isin(2.0f * gFrameCount * (1.0f/60)); |
| 386 | moprops->uvfx[j].scale.x = isin(2.0f * gFrameCount * (1.0f/60)); |
| 387 | moprops->uvfx[j].scale.y = isin(2.0f * gFrameCount * (1.0f/60)); |
| 388 | break; |
| 389 | } |
| 390 | case 2: |
| 391 | { |
no test coverage detected