- fixed: Line type 49 was wrong for all games. Fixed by adding a new Ceiling_CrushAndRaiseDist special. (thanks to Gez for the patch)

SVN r3348 (trunk)
This commit is contained in:
Christoph Oelckers 2012-02-09 19:59:32 +00:00
commit 5d7ee4dbfd
7 changed files with 24 additions and 11 deletions

View file

@ -133,6 +133,7 @@ void DCeiling::Tick ()
switch (m_Type)
{
case ceilCrushAndRaise:
case ceilCrushAndRaiseDist:
m_Direction = -1;
m_Speed = m_Speed1;
if (!SN_IsMakingLoopingSound (m_Sector))
@ -164,6 +165,7 @@ void DCeiling::Tick ()
switch (m_Type)
{
case ceilCrushAndRaise:
case ceilCrushAndRaiseDist:
case ceilCrushRaiseAndStay:
m_Speed = m_Speed2;
m_Direction = 1;
@ -193,6 +195,7 @@ void DCeiling::Tick ()
switch (m_Type)
{
case ceilCrushAndRaise:
case ceilCrushAndRaiseDist:
case ceilLowerAndCrush:
case ceilLowerAndCrushDist:
if (m_Speed1 == FRACUNIT && m_Speed2 == FRACUNIT)
@ -254,6 +257,7 @@ DCeiling *DCeiling::Create(sector_t *sec, DCeiling::ECeiling type, line_t *line,
switch (type)
{
case ceilCrushAndRaise:
case ceilCrushAndRaiseDist:
case ceilCrushRaiseAndStay:
ceiling->m_TopHeight = sec->ceilingplane.d;
case ceilLowerAndCrush:
@ -263,7 +267,7 @@ DCeiling *DCeiling::Create(sector_t *sec, DCeiling::ECeiling type, line_t *line,
{
targheight += 8*FRACUNIT;
}
else if (type == ceilLowerAndCrushDist)
else if (type == ceilLowerAndCrushDist || type == ceilCrushAndRaiseDist)
{
targheight += height;
}
@ -505,7 +509,7 @@ bool EV_DoCeiling (DCeiling::ECeiling type, line_t *line,
// Reactivate in-stasis ceilings...for certain types.
// This restarts a crusher after it has been stopped
if (type == DCeiling::ceilCrushAndRaise)
if (type == DCeiling::ceilCrushAndRaise || type == DCeiling::ceilCrushAndRaiseDist)
{
P_ActivateInStasisCeiling (tag);
}