SurfaceProperties: Be more pedantic about what object can contain material

info in SurfData_Impact()
This commit is contained in:
Marco Cawthorne 2022-03-28 19:01:29 -07:00
parent 1a26181241
commit 50312d500a
Signed by: eukara
GPG Key ID: C196CD8BA993248A
2 changed files with 13 additions and 5 deletions

View File

@ -257,13 +257,21 @@ void
NSSurfacePropEntity::SurfaceDataFinish(void)
{
SurfData_SetStage(m_strSurfData);
m_iMaterial = SurfData_Finish();
if (m_strSurfData)
m_iMaterial = SurfData_Finish();
else
m_iMaterial = -1;
}
void
NSSurfacePropEntity::PropDataFinish(void)
{
PropData_SetStage(m_strPropData);
m_iPropData = PropData_Finish();
if (m_strPropData)
m_iPropData = PropData_Finish();
else
m_iPropData = -1;
}
#else
float

View File

@ -489,10 +489,10 @@ SurfData_Impact(entity e, int fl, vector org, vector ang)
} else { /* anything with takedamage = DAMAGE_YES is a NSurfacePropEntity. */
NSSurfacePropEntity foo = (NSSurfacePropEntity)e;
if (foo.GetSurfaceData(SURFDATA_MATERIAL) == -1)
SurfData_Impact_SurfaceParm(e, fl, org, ang);
else
if (foo.HasSurfaceData() && foo.GetSurfaceData(SURFDATA_MATERIAL) != -1)
FX_Impact(foo.GetSurfaceData(SURFDATA_FX_IMPACT), org, ang);
else
SurfData_Impact_SurfaceParm(e, fl, org, ang);
}
}
#endif