Merge branch 'spindash-warning' into 'master'

Spindash helper warning

See merge request kart-krew-dev/ring-racers-internal!2783
This commit is contained in:
Oni VelocitOni 2025-08-31 00:44:04 +00:00
commit 022b70bc12

View file

@ -415,7 +415,7 @@ std::optional<TargetTracking::Tooltip> object_tooltip(const mobj_t* mobj)
auto conditional = [](bool val, auto&& f) { return val ? std::optional<Tooltip> {f()} : std::nullopt; };
Draw::Font splitfont = (r_splitscreen > 1) ? Draw::Font::kThin : Draw::Font::kMenu;
Draw::Font splitfont = (r_splitscreen > 1) ? Draw::Font::kThin : Draw::Font::kMedium;
switch (mobj->type)
{
@ -457,7 +457,7 @@ std::optional<TargetTracking::Tooltip> object_tooltip(const mobj_t* mobj)
case MT_GARDENTOP:
return conditional(
mobj->tracer == stplyr->mo && Obj_GardenTopPlayerNeedsHelp(mobj),
[&] { return TextElement().parse("Try <r>!").font(splitfont); }
[&] { return TextElement().parse("TRY <r_animated>").font(splitfont); }
);
case MT_PLAYER:
@ -482,6 +482,40 @@ std::optional<TargetTracking::Tooltip> object_tooltip(const mobj_t* mobj)
.offset3d(0, 0, 32 * mobj->scale * P_MobjFlip(mobj));
}
boolean offroadwarning = K_ApplyOffroad(stplyr) && stplyr->offroad >= FRACUNIT && !stplyr->spindash && stplyr->curshield != KSHIELD_TOP
&& stplyr->boostpower < FRACUNIT && stplyr->speed < 2*K_GetKartSpeed(stplyr, false, false)/3;
boolean hitwarning = stplyr->flashing && stplyr->rings <= 0 && stplyr->speed < K_GetKartSpeed(stplyr, false, false)/2
&& P_IsObjectOnGround(mobj) && !P_PlayerInPain(stplyr);
boolean hasboost = (stplyr->itemamount &&
(
stplyr->itemtype == KITEM_SNEAKER || stplyr->itemtype == KITEM_INVINCIBILITY || stplyr->itemtype == KITEM_ROCKETSNEAKER
|| stplyr->itemtype == KITEM_FLAMESHIELD || stplyr->itemtype == KITEM_GROW
)
) || stplyr->rocketsneakertimer;
if (mobj->player == stplyr && (offroadwarning || hitwarning))
{
if (offroadwarning)
{
if (hasboost)
{
return Tooltip(
TextElement(
TextElement().parse("BOOST <l_animated>").font(splitfont))
)
.offset3d(0, 0, 64 * mobj->scale * P_MobjFlip(mobj));
}
}
return Tooltip(
TextElement(
TextElement().parse("HOLD <c_animated>").font(splitfont))
)
.offset3d(0, 0, 64 * mobj->scale * P_MobjFlip(mobj));
}
return conditional(
mobj->player == stplyr && stplyr->icecube.frozen,
[&] { return Tooltip(TextElement(