mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-25 21:41:03 +00:00
- fixed: DScroller did not initialize m_LastHeight in all situations. This caused a problem with the serializer because RapidJSON aborts the write of a floating point value if it is invalid.
- ensure that floats are always written out. If the actual value causes an error (i.e. INF or NaN), write a 0 to guarantee proper formatting.
This commit is contained in:
parent
676d2365e1
commit
2d5061e81f
2 changed files with 10 additions and 2 deletions
|
@ -259,6 +259,7 @@ DScroller::DScroller (EScroll type, double dx, double dy,
|
|||
m_Accel = accel;
|
||||
m_Parts = scrollpos;
|
||||
m_vdx = m_vdy = 0;
|
||||
m_LastHeight = 0;
|
||||
if ((m_Control = control) != -1)
|
||||
m_LastHeight =
|
||||
sectors[control].CenterFloor () + sectors[control].CenterCeiling ();
|
||||
|
@ -342,6 +343,7 @@ DScroller::DScroller (double dx, double dy, const line_t *l,
|
|||
m_vdx = m_vdy = 0;
|
||||
m_Accel = accel;
|
||||
m_Parts = scrollpos;
|
||||
m_LastHeight = 0;
|
||||
if ((m_Control = control) != -1)
|
||||
m_LastHeight = sectors[control].CenterFloor() + sectors[control].CenterCeiling();
|
||||
m_Affectee = int(l->sidedef[0] - sides);
|
||||
|
|
|
@ -215,8 +215,14 @@ struct FWriter
|
|||
|
||||
void Double(double k)
|
||||
{
|
||||
if (mWriter1) mWriter1->Double(k);
|
||||
else if (mWriter2) mWriter2->Double(k);
|
||||
if (mWriter1)
|
||||
{
|
||||
if (!mWriter1->Double(k)) mWriter1->Double(0);
|
||||
}
|
||||
else if (mWriter2)
|
||||
{
|
||||
if (!mWriter2->Double(k)) mWriter2->Double(0);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue