mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Dialogue UI: Tactical Normie Countermeasure
Fade and overlay with Genesis font depending on context
This commit is contained in:
parent
e76262ae5b
commit
2143fc6662
4 changed files with 56 additions and 0 deletions
|
|
@ -294,9 +294,26 @@ void Dialogue::Tick(void)
|
|||
{
|
||||
slide += kSlideSpeed;
|
||||
}
|
||||
|
||||
if (P_LevelIsFrozen())
|
||||
{
|
||||
if (fade > 0)
|
||||
{
|
||||
fade--;
|
||||
}
|
||||
}
|
||||
else if (fade < 5)
|
||||
{
|
||||
fade++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fade > 0)
|
||||
{
|
||||
fade--;
|
||||
}
|
||||
|
||||
if (slide > 0)
|
||||
{
|
||||
slide -= kSlideSpeed;
|
||||
|
|
@ -342,6 +359,11 @@ INT32 Dialogue::SlideAmount(fixed_t multiplier)
|
|||
return Easing_OutCubic(slide, 0, multiplier);
|
||||
}
|
||||
|
||||
INT32 Dialogue::FadeAmount(void)
|
||||
{
|
||||
return fade;
|
||||
}
|
||||
|
||||
void Dialogue::Draw(void)
|
||||
{
|
||||
if (slide == 0)
|
||||
|
|
@ -516,6 +538,7 @@ void Dialogue::Unset(void)
|
|||
Dismiss();
|
||||
SetSpeaker();
|
||||
slide = 0;
|
||||
fade = 0;
|
||||
current_era = 0;
|
||||
}
|
||||
|
||||
|
|
@ -547,3 +570,8 @@ INT32 K_GetDialogueSlide(fixed_t multiplier)
|
|||
{
|
||||
return g_dialogue.SlideAmount(multiplier);
|
||||
}
|
||||
|
||||
INT32 K_GetDialogueFade(void)
|
||||
{
|
||||
return g_dialogue.FadeAmount();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ void K_TickDialogue(void);
|
|||
|
||||
boolean K_DialogueFreeze(void);
|
||||
INT32 K_GetDialogueSlide(fixed_t multiplier);
|
||||
INT32 K_GetDialogueFade(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ public:
|
|||
void Draw(void);
|
||||
|
||||
INT32 SlideAmount(fixed_t multiplier);
|
||||
INT32 FadeAmount(void);
|
||||
|
||||
void Dismiss(void);
|
||||
void Unset(void);
|
||||
|
|
@ -94,6 +95,7 @@ private:
|
|||
|
||||
bool active;
|
||||
fixed_t slide;
|
||||
INT32 fade;
|
||||
|
||||
bool dismissable;
|
||||
bool freeze;
|
||||
|
|
|
|||
|
|
@ -7654,6 +7654,31 @@ void K_drawKartHUD(void)
|
|||
{
|
||||
if (g_emeraldWin)
|
||||
K_drawEmeraldWin(false);
|
||||
|
||||
// Tacitcal Normie Countermeasure
|
||||
INT32 dfade = K_GetDialogueFade();
|
||||
if (dfade)
|
||||
{
|
||||
V_DrawFadeScreen(31, dfade); // Fade out
|
||||
|
||||
srb2::Draw normiedraw = srb2::Draw()
|
||||
.clipx(0.f, BASEVIDWIDTH)
|
||||
.y((BASEVIDHEIGHT - 36)/2)
|
||||
.flags((10 - dfade)<<FF_TRANSSHIFT)
|
||||
.font(srb2::Draw::Font::kGenesis);
|
||||
|
||||
const char *normietext = "COMMUNICATION IN PROGRESS!! ";
|
||||
INT32 normiew = srb2::Draw::TextElement(normietext).font(srb2::Draw::Font::kGenesis).width();
|
||||
INT32 normiex = -((static_cast<INT32>(timeinmap)) % normiew);
|
||||
|
||||
while (normiex < BASEVIDWIDTH)
|
||||
{
|
||||
normiedraw
|
||||
.x(normiex)
|
||||
.text(normietext);
|
||||
normiex += normiew;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// In case of font debugging break glass
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue