fix interpolation for cat cs, pop up 2d text

This commit is contained in:
Pheenoh
2026-04-18 14:27:01 -06:00
parent 45adce4af2
commit a9f8595901
3 changed files with 88 additions and 46 deletions
+27 -7
View File
@@ -16,6 +16,7 @@
#include "d/d_meter2_info.h"
#include "d/d_meter_HIO.h"
#include "d/d_pane_class.h"
#include "dusk/frame_interpolation.h"
#include <cstring>
dMeterString_c::dMeterString_c(int i_stringID) {
@@ -105,16 +106,27 @@ void dMeterString_c::draw() {
f32 var_f30 = 1.0f;
if (mAnimFrame < 60.0f) {
mAnimFrame += g_drawHIO.mMiniGame.mReadyFightTextAnimSpeed;
if (mAnimFrame > 60.0f) {
mAnimFrame = 60.0f;
#if TARGET_PC
if (dusk::frame_interp::get_ui_tick_pending())
#endif
{
mAnimFrame += g_drawHIO.mMiniGame.mReadyFightTextAnimSpeed;
if (mAnimFrame > 60.0f) {
mAnimFrame = 60.0f;
}
}
playBckAnimation(mAnimFrame);
} else if (mAnimFrame < (f32)g_drawHIO.mMiniGame.mReadyFightTextWaitFrames + 60.0f) {
mAnimFrame += var_f30;
#if TARGET_PC
if (dusk::frame_interp::get_ui_tick_pending())
#endif
mAnimFrame += var_f30;
} else if (mAnimFrame < var_f31) {
mAnimFrame += var_f30;
#if TARGET_PC
if (dusk::frame_interp::get_ui_tick_pending())
#endif
mAnimFrame += var_f30;
var_f30 = acc(g_drawHIO.mMiniGame.field_0x172, var_f31 - mAnimFrame, 0);
}
@@ -128,13 +140,21 @@ void dMeterString_c::draw() {
if (mPikariAnimFrame > 0.0f) {
drawPikari();
} else if (mPikariAnimFrame == -1.0f &&
#if TARGET_PC
dusk::frame_interp::get_ui_tick_pending() &&
#endif
mAnimFrame > g_drawHIO.mMiniGame.mReadyFightPikariAppearFrames)
{
mPikariAnimFrame = 18.0f - g_drawHIO.mMiniGame.mReadyFightPikariAnimSpeed;
}
if (mAnimFrame >= var_f31) {
dMeter2Info_resetMeterString();
#if TARGET_PC
if (dusk::frame_interp::get_ui_tick_pending())
#endif
{
if (mAnimFrame >= var_f31) {
dMeter2Info_resetMeterString();
}
}
}
}