MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / zSurfaceUpdate

Function zSurfaceUpdate

src/SB/Game/zSurface.cpp:334–486  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

332}
333
334void 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 {

Callers 1

zSceneUpdateFunction · 0.70

Calls 5

xVec3SMulFunction · 0.85
xVec3AddFunction · 0.85
isinFunction · 0.85
xGroupGetCountFunction · 0.85
xrandFunction · 0.85

Tested by

no test coverage detected