| 533 | } |
| 534 | |
| 535 | static void zPlatFM_Update(zPlatform* plat, xScene*, F32 dt) |
| 536 | { |
| 537 | for (S32 i = 0; i < 12; i++) { |
| 538 | zPlatFMRunTime* fmrt = plat->fmrt; |
| 539 | |
| 540 | F32 tm = fmrt->tmrs[i]; |
| 541 | if (tm > 0.0f) { |
| 542 | F32 ttm = fmrt->ttms[i]; |
| 543 | F32 atm = fmrt->atms[i]; |
| 544 | F32 dtm = fmrt->dtms[i]; |
| 545 | F32 vm = fmrt->vms[i]; |
| 546 | |
| 547 | F32 ds; |
| 548 | F32 etm = ttm - tm; |
| 549 | |
| 550 | if (tm > atm) { |
| 551 | if (atm > 0.0f) { |
| 552 | if (tm - dt < atm) { |
| 553 | if (dtm > 0.0f) { |
| 554 | if (tm - dt < dtm) { |
| 555 | if (tm - dt < 0.0f) { |
| 556 | F32 p = ttm - atm; |
| 557 | F32 cfacc = 0.5f * (p + etm) * (p - etm) / p; |
| 558 | F32 cfcs = atm - dtm; |
| 559 | F32 cfdec = 0.5f * dtm; |
| 560 | ds = cfacc + cfcs + cfdec; |
| 561 | } else { |
| 562 | F32 p = ttm - atm; |
| 563 | F32 cfacc = 0.5f * (p + etm) * (p - etm) / p; |
| 564 | F32 cfcs = atm - dtm; |
| 565 | F32 cfdec = 0.5f * (dtm + (tm - dt)) * (dtm - (tm - dt)) / dtm; |
| 566 | ds = cfacc + cfcs + cfdec; |
| 567 | } |
| 568 | } else { |
| 569 | F32 p = ttm - atm; |
| 570 | F32 cfacc = 0.5f * (p + etm) * (p - etm) / p; |
| 571 | F32 cfcs = atm - (tm - dt); |
| 572 | ds = cfacc + cfcs; |
| 573 | } |
| 574 | } else { |
| 575 | if (tm - dt < 0.0f) { |
| 576 | F32 p = ttm - atm; |
| 577 | F32 cfacc = 0.5f * (p + etm) * (p - etm) / p; |
| 578 | F32 cfcs = atm; |
| 579 | ds = cfacc + cfcs; |
| 580 | } else { |
| 581 | F32 p = ttm - atm; |
| 582 | F32 cfacc = 0.5f * (p + etm) * (p - etm) / p; |
| 583 | F32 cfcs = atm - (tm - dt); |
| 584 | ds = cfacc + cfcs; |
| 585 | } |
| 586 | } |
| 587 | } else { |
| 588 | F32 p = ttm - atm; |
| 589 | ds = (etm + 0.5f * dt) * dt / p; |
| 590 | } |
| 591 | } else { |
| 592 | if (tm - dt < 0.0f) { |
no test coverage detected