mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2025-01-31 10:40:33 +00:00
- 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:
parent
ddd5fe7535
commit
5d7ee4dbfd
7 changed files with 24 additions and 11 deletions
|
@ -146,6 +146,7 @@ DEFINE_SPECIAL(Sector_Set3DFloor, 160, -1, -1, 5)
|
||||||
DEFINE_SPECIAL(Sector_SetContents, 161, -1, -1, 3)
|
DEFINE_SPECIAL(Sector_SetContents, 161, -1, -1, 3)
|
||||||
|
|
||||||
// [RH] Begin new specials for ZDoom
|
// [RH] Begin new specials for ZDoom
|
||||||
|
DEFINE_SPECIAL(Ceiling_CrushAndRaiseDist, 168, 3, 5, 5)
|
||||||
DEFINE_SPECIAL(Generic_Crusher2, 169, 5, 5, 5)
|
DEFINE_SPECIAL(Generic_Crusher2, 169, 5, 5, 5)
|
||||||
DEFINE_SPECIAL(Sector_SetCeilingScale2, 170, 3, 3, 3)
|
DEFINE_SPECIAL(Sector_SetCeilingScale2, 170, 3, 3, 3)
|
||||||
DEFINE_SPECIAL(Sector_SetFloorScale2, 171, 3, 3, 3)
|
DEFINE_SPECIAL(Sector_SetFloorScale2, 171, 3, 3, 3)
|
||||||
|
|
|
@ -133,6 +133,7 @@ void DCeiling::Tick ()
|
||||||
switch (m_Type)
|
switch (m_Type)
|
||||||
{
|
{
|
||||||
case ceilCrushAndRaise:
|
case ceilCrushAndRaise:
|
||||||
|
case ceilCrushAndRaiseDist:
|
||||||
m_Direction = -1;
|
m_Direction = -1;
|
||||||
m_Speed = m_Speed1;
|
m_Speed = m_Speed1;
|
||||||
if (!SN_IsMakingLoopingSound (m_Sector))
|
if (!SN_IsMakingLoopingSound (m_Sector))
|
||||||
|
@ -164,6 +165,7 @@ void DCeiling::Tick ()
|
||||||
switch (m_Type)
|
switch (m_Type)
|
||||||
{
|
{
|
||||||
case ceilCrushAndRaise:
|
case ceilCrushAndRaise:
|
||||||
|
case ceilCrushAndRaiseDist:
|
||||||
case ceilCrushRaiseAndStay:
|
case ceilCrushRaiseAndStay:
|
||||||
m_Speed = m_Speed2;
|
m_Speed = m_Speed2;
|
||||||
m_Direction = 1;
|
m_Direction = 1;
|
||||||
|
@ -193,6 +195,7 @@ void DCeiling::Tick ()
|
||||||
switch (m_Type)
|
switch (m_Type)
|
||||||
{
|
{
|
||||||
case ceilCrushAndRaise:
|
case ceilCrushAndRaise:
|
||||||
|
case ceilCrushAndRaiseDist:
|
||||||
case ceilLowerAndCrush:
|
case ceilLowerAndCrush:
|
||||||
case ceilLowerAndCrushDist:
|
case ceilLowerAndCrushDist:
|
||||||
if (m_Speed1 == FRACUNIT && m_Speed2 == FRACUNIT)
|
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)
|
switch (type)
|
||||||
{
|
{
|
||||||
case ceilCrushAndRaise:
|
case ceilCrushAndRaise:
|
||||||
|
case ceilCrushAndRaiseDist:
|
||||||
case ceilCrushRaiseAndStay:
|
case ceilCrushRaiseAndStay:
|
||||||
ceiling->m_TopHeight = sec->ceilingplane.d;
|
ceiling->m_TopHeight = sec->ceilingplane.d;
|
||||||
case ceilLowerAndCrush:
|
case ceilLowerAndCrush:
|
||||||
|
@ -263,7 +267,7 @@ DCeiling *DCeiling::Create(sector_t *sec, DCeiling::ECeiling type, line_t *line,
|
||||||
{
|
{
|
||||||
targheight += 8*FRACUNIT;
|
targheight += 8*FRACUNIT;
|
||||||
}
|
}
|
||||||
else if (type == ceilLowerAndCrushDist)
|
else if (type == ceilLowerAndCrushDist || type == ceilCrushAndRaiseDist)
|
||||||
{
|
{
|
||||||
targheight += height;
|
targheight += height;
|
||||||
}
|
}
|
||||||
|
@ -505,7 +509,7 @@ bool EV_DoCeiling (DCeiling::ECeiling type, line_t *line,
|
||||||
|
|
||||||
// Reactivate in-stasis ceilings...for certain types.
|
// Reactivate in-stasis ceilings...for certain types.
|
||||||
// This restarts a crusher after it has been stopped
|
// This restarts a crusher after it has been stopped
|
||||||
if (type == DCeiling::ceilCrushAndRaise)
|
if (type == DCeiling::ceilCrushAndRaise || type == DCeiling::ceilCrushAndRaiseDist)
|
||||||
{
|
{
|
||||||
P_ActivateInStasisCeiling (tag);
|
P_ActivateInStasisCeiling (tag);
|
||||||
}
|
}
|
||||||
|
|
|
@ -616,6 +616,12 @@ FUNC(LS_Ceiling_CrushAndRaiseA)
|
||||||
return EV_DoCeiling (DCeiling::ceilCrushAndRaise, ln, arg0, SPEED(arg1), SPEED(arg2), 0, arg3, 0, 0, CRUSHTYPE(arg4));
|
return EV_DoCeiling (DCeiling::ceilCrushAndRaise, ln, arg0, SPEED(arg1), SPEED(arg2), 0, arg3, 0, 0, CRUSHTYPE(arg4));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FUNC(LS_Ceiling_CrushAndRaiseDist)
|
||||||
|
// Ceiling_CrushAndRaiseDist (tag, dist, speed, damage, crushtype)
|
||||||
|
{
|
||||||
|
return EV_DoCeiling (DCeiling::ceilCrushAndRaiseDist, ln, arg0, SPEED(arg2), SPEED(arg2), arg1*FRACUNIT, arg3, 0, 0, CRUSHTYPE(arg4));
|
||||||
|
}
|
||||||
|
|
||||||
FUNC(LS_Ceiling_CrushAndRaiseSilentA)
|
FUNC(LS_Ceiling_CrushAndRaiseSilentA)
|
||||||
// Ceiling_CrushAndRaiseSilentA (tag, dnspeed, upspeed, damage, crushtype)
|
// Ceiling_CrushAndRaiseSilentA (tag, dnspeed, upspeed, damage, crushtype)
|
||||||
{
|
{
|
||||||
|
@ -3248,13 +3254,13 @@ lnSpecFunc LineSpecials[256] =
|
||||||
/* 159 */ LS_NOP, // Sector_SetPlaneReflection in GZDoom
|
/* 159 */ LS_NOP, // Sector_SetPlaneReflection in GZDoom
|
||||||
/* 160 */ LS_NOP, // Sector_Set3DFloor in GZDoom and Vavoom
|
/* 160 */ LS_NOP, // Sector_Set3DFloor in GZDoom and Vavoom
|
||||||
/* 161 */ LS_NOP, // Sector_SetContents in GZDoom and Vavoom
|
/* 161 */ LS_NOP, // Sector_SetContents in GZDoom and Vavoom
|
||||||
/* 162 */ LS_NOP,
|
/* 162 */ LS_NOP, // Reserved Doom64 branch
|
||||||
/* 163 */ LS_NOP,
|
/* 163 */ LS_NOP, // Reserved Doom64 branch
|
||||||
/* 164 */ LS_NOP,
|
/* 164 */ LS_NOP, // Reserved Doom64 branch
|
||||||
/* 165 */ LS_NOP,
|
/* 165 */ LS_NOP, // Reserved Doom64 branch
|
||||||
/* 166 */ LS_NOP,
|
/* 166 */ LS_NOP, // Reserved Doom64 branch
|
||||||
/* 167 */ LS_NOP,
|
/* 167 */ LS_NOP, // Reserved Doom64 branch
|
||||||
/* 168 */ LS_NOP,
|
/* 168 */ LS_Ceiling_CrushAndRaiseDist,
|
||||||
/* 169 */ LS_Generic_Crusher2,
|
/* 169 */ LS_Generic_Crusher2,
|
||||||
/* 170 */ LS_Sector_SetCeilingScale2,
|
/* 170 */ LS_Sector_SetCeilingScale2,
|
||||||
/* 171 */ LS_Sector_SetFloorScale2,
|
/* 171 */ LS_Sector_SetFloorScale2,
|
||||||
|
|
|
@ -603,6 +603,7 @@ public:
|
||||||
ceilLowerInstant,
|
ceilLowerInstant,
|
||||||
ceilRaiseInstant,
|
ceilRaiseInstant,
|
||||||
ceilCrushAndRaise,
|
ceilCrushAndRaise,
|
||||||
|
ceilCrushAndRaiseDist,
|
||||||
ceilLowerAndCrush,
|
ceilLowerAndCrush,
|
||||||
ceilLowerAndCrushDist,
|
ceilLowerAndCrushDist,
|
||||||
ceilCrushRaiseAndStay,
|
ceilCrushRaiseAndStay,
|
||||||
|
|
|
@ -48,7 +48,7 @@ include "xlat/defines.i"
|
||||||
46 = SHOOT|REP|MONST, Door_Open (tag, D_SLOW)
|
46 = SHOOT|REP|MONST, Door_Open (tag, D_SLOW)
|
||||||
47 = SHOOT, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
47 = SHOOT, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
|
||||||
48 = 0, Scroll_Texture_Left (SCROLL_UNIT)
|
48 = 0, Scroll_Texture_Left (SCROLL_UNIT)
|
||||||
49 = USE, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
|
49 = USE, Ceiling_CrushAndRaiseDist (tag, 8, C_SLOW, 10)
|
||||||
50 = USE, Door_Close (tag, D_SLOW)
|
50 = USE, Door_Close (tag, D_SLOW)
|
||||||
51 = USE, Exit_Secret (0)
|
51 = USE, Exit_Secret (0)
|
||||||
52 = WALK, Exit_Normal (0)
|
52 = WALK, Exit_Normal (0)
|
||||||
|
|
|
@ -4,6 +4,7 @@ include "xlat/base.txt"
|
||||||
8 = WALK, Stairs_BuildUpDoom (tag, F_SLOW, 8)
|
8 = WALK, Stairs_BuildUpDoom (tag, F_SLOW, 8)
|
||||||
10 = WALK, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
|
10 = WALK, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
|
||||||
36 = WALK, Floor_LowerToHighest (tag, F_FAST, 136, 1)
|
36 = WALK, Floor_LowerToHighest (tag, F_FAST, 136, 1)
|
||||||
|
49 = USE, Ceiling_LowerAndCrush (tag, C_SLOW, 0, 2)
|
||||||
88 = WALK|REP, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
|
88 = WALK|REP, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
|
||||||
99 = 0, Scroll_Texture_Right (SCROLL_UNIT)
|
99 = 0, Scroll_Texture_Right (SCROLL_UNIT)
|
||||||
100 = WALK|REP, Door_Raise (tag, D_SLOW*3, VDOORWAIT)
|
100 = WALK|REP, Door_Raise (tag, D_SLOW*3, VDOORWAIT)
|
||||||
|
|
|
@ -244,7 +244,7 @@ RetailOnly = 121
|
||||||
189 = USE, ACS_LockedExecute (0, 0, 189, tag, 13)
|
189 = USE, ACS_LockedExecute (0, 0, 189, tag, 13)
|
||||||
41 = USE, Ceiling_LowerToFloor (tag, C_SLOW)
|
41 = USE, Ceiling_LowerToFloor (tag, C_SLOW)
|
||||||
71 = USE, Floor_LowerToHighest (tag, F_FAST, 128)
|
71 = USE, Floor_LowerToHighest (tag, F_FAST, 128)
|
||||||
49 = USE, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
|
49 = USE, Ceiling_CrushAndRaiseDist (tag, 8, C_SLOW, 0, 2)
|
||||||
50 = USE, Door_Close (tag, D_SLOW)
|
50 = USE, Door_Close (tag, D_SLOW)
|
||||||
51 = USE, Teleport_EndGame (0)
|
51 = USE, Teleport_EndGame (0)
|
||||||
55 = USE, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2)
|
55 = USE, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2)
|
||||||
|
|
Loading…
Reference in a new issue