Fixed corona appearing in wrong world position
This commit is contained in:
parent
4c5375c553
commit
d3fe5a1946
2 changed files with 6 additions and 5 deletions
|
|
@ -832,7 +832,7 @@ void HWDrawInfo::RenderPortal(HWPortal *p, FRenderState &state, bool usestencil)
|
|||
|
||||
}
|
||||
|
||||
void HWDrawInfo::DrawCorona(FRenderState& state, AActor* corona, float coronaFade, double dist)
|
||||
void HWDrawInfo::DrawCorona(FRenderState& state, AActor* corona, float coronaFade, const DVector3& pos, double dist)
|
||||
{
|
||||
spriteframe_t* sprframe = &SpriteFrames[sprites[corona->sprite].spriteframes + (size_t)corona->SpawnState->GetFrame()];
|
||||
FTextureID patch = sprframe->Texture[0];
|
||||
|
|
@ -841,7 +841,7 @@ void HWDrawInfo::DrawCorona(FRenderState& state, AActor* corona, float coronaFad
|
|||
if (!tex || !tex->isValid()) return;
|
||||
|
||||
// Project the corona sprite center
|
||||
FVector4 worldPos((float)corona->X(), (float)corona->Z(), (float)corona->Y(), 1.0f);
|
||||
FVector4 worldPos((float)pos.X, (float)pos.Z, (float)pos.Y, 1.0f);
|
||||
FVector4 viewPos, clipPos;
|
||||
VPUniforms.mViewMatrix.multMatrixPoint(&worldPos[0], &viewPos[0]);
|
||||
VPUniforms.mProjectionMatrix.multMatrixPoint(&viewPos[0], &clipPos[0]);
|
||||
|
|
@ -1045,7 +1045,8 @@ void HWDrawInfo::DrawCoronas(FRenderState& state)
|
|||
for (AActor* corona : Coronas)
|
||||
{
|
||||
auto& coronaFade = corona->specialf1;
|
||||
DVector3 direction = Viewpoint.Pos - corona->PosRelative(Viewpoint.sector);
|
||||
DVector3 realPos = corona->PosRelative(Viewpoint.sector);
|
||||
DVector3 direction = Viewpoint.Pos - realPos;
|
||||
double dist = direction.Length();
|
||||
|
||||
// skip coronas that are too far
|
||||
|
|
@ -1066,7 +1067,7 @@ void HWDrawInfo::DrawCoronas(FRenderState& state)
|
|||
}
|
||||
|
||||
if (coronaFade > 0.0f)
|
||||
DrawCorona(state, corona, (float)coronaFade, dist);
|
||||
DrawCorona(state, corona, (float)coronaFade, realPos, dist);
|
||||
}
|
||||
|
||||
state.AlphaFunc(Alpha_Greater, 0.f);
|
||||
|
|
|
|||
|
|
@ -328,7 +328,7 @@ public:
|
|||
void DrawDecals(FRenderState &state, TArray<HWDecal *> &decals);
|
||||
void DrawPlayerSprites(bool hudModelStep, FRenderState &state);
|
||||
void DrawCoronas(FRenderState& state);
|
||||
void DrawCorona(FRenderState& state, AActor* corona, float coronaFade, double dist);
|
||||
void DrawCorona(FRenderState& state, AActor* corona, float coronaFade, const DVector3& pos, double dist);
|
||||
|
||||
void SetDitherTransFlags(AActor* actor);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue