fix coronas

This commit is contained in:
Christoph Oelckers 2023-10-27 16:49:08 +02:00 committed by Magnus Norddahl
commit fb4667b9bb
3 changed files with 7 additions and 8 deletions

View file

@ -654,10 +654,9 @@ void HWDrawInfo::DrawCoronas(FRenderState& state)
float timeElapsed = (screen->FrameTime - LastFrameTime) / 1000.0f;
LastFrameTime = screen->FrameTime;
for (auto& coronap : Coronas)
for (AActor* corona : Coronas)
{
auto corona = coronap.first;
auto& coronaFade = coronap.second;
auto& coronaFade = corona->specialf1;
auto cPos = corona->Vec3Offset(0., 0., corona->Height * 0.5);
DVector3 direction = Viewpoint.Pos - cPos;
double dist = direction.Length();
@ -672,15 +671,15 @@ void HWDrawInfo::DrawCoronas(FRenderState& state)
FTraceResults results;
if (!Trace(cPos, corona->Sector, direction, dist, MF_SOLID, ML_BLOCKEVERYTHING, corona, results, 0, CheckForViewpointActor, &Viewpoint))
{
coronaFade = std::min(coronaFade + timeElapsed * fadeSpeed, 1.0f);
coronaFade = std::min(coronaFade + timeElapsed * fadeSpeed, 1.0);
}
else
{
coronaFade = std::max(coronaFade - timeElapsed * fadeSpeed, 0.0f);
coronaFade = std::max(coronaFade - timeElapsed * fadeSpeed, 0.0);
}
if (coronaFade > 0.0f)
DrawCorona(state, corona, coronaFade, dist);
DrawCorona(state, corona, (float)coronaFade, dist);
}
state.SetTextureMode(TM_NORMAL);

View file

@ -150,7 +150,7 @@ struct HWDrawInfo
TArray<HWPortal *> Portals;
TArray<HWDecal *> Decals[2]; // the second slot is for mirrors which get rendered in a separate pass.
TArray<HUDSprite> hudsprites; // These may just be stored by value.
TArray<std::pair<AActor*, float>> Coronas;
TArray<AActor*> Coronas;
TArray<LevelMeshSurface*> VisibleSurfaces;
uint64_t LastFrameTime = 0;

View file

@ -756,7 +756,7 @@ void HWSprite::Process(HWDrawInfo *di, FRenderState& state, AActor* thing, secto
if (thing->IsKindOf(NAME_Corona))
{
di->Coronas.Push(std::make_pair(thing, 0));
di->Coronas.Push(thing);
return;
}