mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-11 07:12:02 +00:00
Fixed: DBaseStatusBar::Draw did not use its ticFrac parameter when being called from scripts
Instead it directly went to the global viewpoint again which would be inconsistent.
This commit is contained in:
parent
d73d89762d
commit
8787905fed
3 changed files with 13 additions and 12 deletions
|
@ -817,7 +817,7 @@ void D_Display ()
|
|||
{
|
||||
StatusBar->DrawCrosshair();
|
||||
}
|
||||
StatusBar->CallDraw (HUD_AltHud);
|
||||
StatusBar->CallDraw (HUD_AltHud, r_viewpoint.TicFrac);
|
||||
StatusBar->DrawTopStuff (HUD_AltHud);
|
||||
}
|
||||
else
|
||||
|
@ -825,13 +825,13 @@ void D_Display ()
|
|||
{
|
||||
EHudState state = DrawFSHUD ? HUD_Fullscreen : HUD_None;
|
||||
StatusBar->DrawBottomStuff (state);
|
||||
StatusBar->CallDraw (state);
|
||||
StatusBar->CallDraw (state, r_viewpoint.TicFrac);
|
||||
StatusBar->DrawTopStuff (state);
|
||||
}
|
||||
else
|
||||
{
|
||||
StatusBar->DrawBottomStuff (HUD_StatusBar);
|
||||
StatusBar->CallDraw (HUD_StatusBar);
|
||||
StatusBar->CallDraw (HUD_StatusBar, r_viewpoint.TicFrac);
|
||||
StatusBar->DrawTopStuff (HUD_StatusBar);
|
||||
}
|
||||
//stb.Unclock();
|
||||
|
|
|
@ -397,10 +397,10 @@ public:
|
|||
void SetScale();
|
||||
virtual void Tick ();
|
||||
void CallTick();
|
||||
virtual void Draw (EHudState state);
|
||||
void CallDraw(EHudState state);
|
||||
void DrawBottomStuff (EHudState state);
|
||||
void DrawTopStuff (EHudState state);
|
||||
virtual void Draw (EHudState state, double ticFrac);
|
||||
void CallDraw(EHudState state, double ticFrac);
|
||||
void DrawBottomStuff (EHudState state);
|
||||
void DrawTopStuff (EHudState state);
|
||||
void FlashItem (const PClass *itemtype);
|
||||
void AttachToPlayer(player_t *player);
|
||||
DVector2 GetHUDScale() const;
|
||||
|
|
|
@ -1006,7 +1006,7 @@ void DBaseStatusBar::DrawMessages (int layer, int bottom)
|
|||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
void DBaseStatusBar::Draw (EHudState state)
|
||||
void DBaseStatusBar::Draw (EHudState state, double ticFrac)
|
||||
{
|
||||
// HUD_AltHud state is for popups only
|
||||
if (state == HUD_AltHud)
|
||||
|
@ -1048,18 +1048,19 @@ DEFINE_ACTION_FUNCTION(DBaseStatusBar, Draw)
|
|||
{
|
||||
PARAM_SELF_PROLOGUE(DBaseStatusBar);
|
||||
PARAM_INT(state);
|
||||
self->Draw((EHudState)state);
|
||||
PARAM_FLOAT(ticFrac);
|
||||
self->Draw((EHudState)state, ticFrac);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void DBaseStatusBar::CallDraw(EHudState state)
|
||||
void DBaseStatusBar::CallDraw(EHudState state, double ticFrac)
|
||||
{
|
||||
IFVIRTUAL(DBaseStatusBar, Draw)
|
||||
{
|
||||
VMValue params[] = { (DObject*)this, state, r_viewpoint.TicFrac };
|
||||
VMValue params[] = { (DObject*)this, state, ticFrac };
|
||||
VMCall(func, params, countof(params), nullptr, 0);
|
||||
}
|
||||
else Draw(state);
|
||||
else Draw(state, ticFrac);
|
||||
screen->ClearClipRect(); // make sure the scripts don't leave a valid clipping rect behind.
|
||||
BeginStatusBar(BaseSBarHorizontalResolution, BaseSBarVerticalResolution, BaseRelTop, false);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue