Update to ZDoom r4129:

Fixed: Hexen's Floor_RaiseAndCrush is not the same action as the one used by Doom and which was used by ZDoom before r4053. Restored the old code and gave it a new special 99:Floor_RaiseAndCrushDoom.
    Fixed: Strife's slow Ceiling_CrushAndRaise lines do no actual damage.
    Fixed translations of Heretic linetype's that perform Floor_LowerToHighest with an offset.
    Added compatibility option for Claustrophobia 1024, map 01.


git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@1525 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
Christoph Oelckers 2013-02-10 09:17:26 +00:00
parent 9be6797076
commit b029b903b5
8 changed files with 34 additions and 17 deletions

View file

@ -97,7 +97,7 @@ DEFINE_SPECIAL(FloorAndCeiling_LowerByValue, 95, 3, 3, 3)
DEFINE_SPECIAL(FloorAndCeiling_RaiseByValue, 96, 3, 3, 3)
DEFINE_SPECIAL(Ceiling_LowerAndCrushDist, 97, 3, 5, 5)
DEFINE_SPECIAL(Sector_SetTranslucent, 98, 3, 4, 4)
DEFINE_SPECIAL(Floor_RaiseAndCrushDoom, 99, 3, 4, 4)
DEFINE_SPECIAL(Scroll_Texture_Left, 100, -1, -1, 2)
DEFINE_SPECIAL(Scroll_Texture_Right, 101, -1, -1, 2)
DEFINE_SPECIAL(Scroll_Texture_Up, 102, -1, -1, 2)

View file

@ -373,13 +373,18 @@ manual_floor:
floor->m_Direction = (floor->m_FloorDestDist > sec->floorplane.d) ? -1 : 1;
break;
case DFloor::floorRaiseAndCrushDoom:
floor->m_Crush = crush;
case DFloor::floorRaiseToLowestCeiling:
floor->m_Direction = 1;
newheight = sec->FindLowestCeilingSurrounding (&spot);
if (floortype == DFloor::floorRaiseAndCrushDoom)
newheight -= 8 * FRACUNIT;
ceilingheight = sec->FindLowestCeilingPoint (&spot2);
floor->m_FloorDestDist = sec->floorplane.PointToDist (spot, newheight);
if (sec->floorplane.ZatPointDist (spot2, floor->m_FloorDestDist) > ceilingheight)
floor->m_FloorDestDist = sec->floorplane.PointToDist (spot2, ceilingheight);
floor->m_FloorDestDist = sec->floorplane.PointToDist (spot2,
floortype == DFloor::floorRaiseAndCrushDoom ? ceilingheight - 8*FRACUNIT : ceilingheight);
break;
case DFloor::floorRaiseToHighest:

View file

@ -326,6 +326,12 @@ FUNC(LS_Floor_RaiseAndCrush)
return EV_DoFloor (DFloor::floorRaiseAndCrush, ln, arg0, SPEED(arg1), 0, arg2, 0, CRUSHTYPE(arg3));
}
FUNC(LS_Floor_RaiseAndCrushDoom)
// Floor_RaiseAndCrushDoom (tag, speed, crush, crushmode)
{
return EV_DoFloor (DFloor::floorRaiseAndCrushDoom, ln, arg0, SPEED(arg1), 0, arg2, 0, CRUSHTYPE(arg3));
}
FUNC(LS_Floor_RaiseByValueTimes8)
// FLoor_RaiseByValueTimes8 (tag, speed, height)
{
@ -3232,7 +3238,7 @@ lnSpecFunc LineSpecials[256] =
/* 96 */ LS_FloorAndCeiling_RaiseByValue,
/* 97 */ LS_Ceiling_LowerAndCrushDist,
/* 98 */ LS_Sector_SetTranslucent,
/* 99 */ LS_NOP,
/* 99 */ LS_Floor_RaiseAndCrushDoom,
/* 100 */ LS_NOP, // Scroll_Texture_Left
/* 101 */ LS_NOP, // Scroll_Texture_Right
/* 102 */ LS_NOP, // Scroll_Texture_Up
@ -3291,10 +3297,10 @@ lnSpecFunc LineSpecials[256] =
/* 155 */ LS_NOP,
/* 156 */ LS_NOP,
/* 157 */ LS_NOP, // SetGlobalFogParameter // in GZDoom
/* 158 */ LS_NOP, // FS_Execute in GZDoom
/* 158 */ LS_NOP, // FS_Execute
/* 159 */ LS_NOP, // Sector_SetPlaneReflection in GZDoom
/* 160 */ LS_NOP, // Sector_Set3DFloor in GZDoom and Vavoom
/* 161 */ LS_NOP, // Sector_SetContents in GZDoom and Vavoom
/* 160 */ LS_NOP, // Sector_Set3DFloor
/* 161 */ LS_NOP, // Sector_SetContents
/* 162 */ LS_NOP, // Reserved Doom64 branch
/* 163 */ LS_NOP, // Reserved Doom64 branch
/* 164 */ LS_NOP, // Reserved Doom64 branch

View file

@ -697,6 +697,7 @@ public:
floorRaiseToHighest,
floorRaiseToNearest,
floorRaiseAndCrush,
floorRaiseAndCrushDoom,
floorCrushStop,
floorLowerInstant,
floorRaiseInstant,

View file

@ -147,6 +147,7 @@ DCE862393CAAA6FF1294FB7056B53057 // UAC Ultra map07: Contains a scroller dependi
8FF30D57F6CE64F085A6567EC302842A // Enjay's test map for this flag
9D7893D09FEE55C31B73C670DF850962 // Memento Mori II, map12
91E173901E6F3800B81AB646976247CD // Claustrophobia 1024, map01
{
badangles
}
@ -335,3 +336,4 @@ F481922F4881F74760F3C0437FD5EDD0 // map03
{
rebuildnodes
}

View file

@ -54,8 +54,8 @@ include "xlat/defines.i"
52 = WALK, Exit_Normal (0)
53 = WALK, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
54 = WALK, Plat_Stop (tag)
55 = USE, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2)
56 = WALK, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2)
55 = USE, Floor_RaiseAndCrushDoom (tag, F_SLOW, 10, 2)
56 = WALK, Floor_RaiseAndCrushDoom (tag, F_SLOW, 10, 2)
57 = WALK, Ceiling_CrushStop (tag)
58 = WALK, Floor_RaiseByValue (tag, F_SLOW, 24)
59 = WALK, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
@ -64,7 +64,7 @@ include "xlat/defines.i"
62 = USE|REP, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
63 = USE|REP, Door_Raise (tag, D_SLOW, VDOORWAIT)
64 = USE|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
65 = USE|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2)
65 = USE|REP, Floor_RaiseAndCrushDoom (tag, F_SLOW, 10, 2)
66 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
67 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
68 = USE|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
@ -93,7 +93,7 @@ include "xlat/defines.i"
91 = WALK|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
92 = WALK|REP, Floor_RaiseByValue (tag, F_SLOW, 24)
93 = WALK|REP, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
94 = WALK|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2)
94 = WALK|REP, Floor_RaiseAndCrushDoom (tag, F_SLOW, 10, 2)
95 = WALK|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
96 = WALK|REP, Floor_RaiseByTexture (tag, F_SLOW)
97 = WALK|REP|MONST, Teleport (0, tag)

View file

@ -5,7 +5,10 @@ include "xlat/base.txt"
10 = WALK, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
36 = WALK, Floor_LowerToHighest (tag, F_FAST, 136, 1)
49 = USE, Ceiling_LowerAndCrush (tag, C_SLOW, 0, 2)
70 = USE|REP, Floor_LowerToHighest (tag, F_FAST, 136, 1)
71 = USE, Floor_LowerToHighest (tag, F_FAST, 136, 1)
88 = WALK|REP, Plat_DownWaitUpStayLip (tag, P_FAST, PLATWAIT, 0)
98 = WALK|REP, Floor_LowerToHighest (tag, F_FAST, 136, 1)
99 = 0, Scroll_Texture_Right (SCROLL_UNIT)
100 = WALK|REP, Door_Raise (tag, D_SLOW*3, VDOORWAIT)
105 = WALK, Exit_Secret (0)

View file

@ -99,7 +99,7 @@ RetailOnly = 121
17 = WALK, Light_StrobeDoom (tag, 5, 35)
19 = WALK, Floor_LowerToHighest (tag, F_SLOW, 128)
22 = WALK, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
25 = WALK, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
25 = WALK, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 0)
30 = WALK, Floor_RaiseByTexture (tag, F_SLOW)
35 = WALK, Light_ChangeToValue (tag, 35)
36 = WALK, Floor_LowerToHighest (tag, F_FAST, 128)
@ -113,7 +113,7 @@ RetailOnly = 121
52 = WALK|REP, ACS_ExecuteAlways (0, 0, 52, tag)
53 = WALK, Plat_PerpetualRaiseLip (tag, P_SLOW, PLATWAIT, 0)
54 = WALK, Plat_Stop (tag)
56 = WALK, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2)
56 = WALK, Floor_RaiseAndCrushDoom (tag, F_SLOW, 10, 2)
57 = WALK, Ceiling_CrushStop (tag)
58 = WALK, Floor_RaiseByValue (tag, F_SLOW, 64)
59 = WALK, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
@ -128,7 +128,7 @@ RetailOnly = 121
124 = WALK, Teleport_EndGame ()
125 = MONWALK, Teleport (0, tag)
130 = WALK, Floor_RaiseToNearest (tag, F_FAST)
141 = WALK, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 10)
141 = WALK, Ceiling_CrushAndRaiseSilentA (tag, C_SLOW, C_SLOW, 0)
174 = WALK, ACS_ExecuteAlways (0, 0, 174, tag)
183 = WALK, ACS_ExecuteAlways (0, 0, 183, tag)
178 = WALK, Generic_Stairs (tag, ST_FAST, 16, 0, 0)
@ -146,7 +146,7 @@ RetailOnly = 121
216 = WALK|REP, ACS_ExecuteAlways (0, 0, 216, tag)
90 = WALK|REP, Door_Raise (tag, D_SLOW, VDOORWAIT)
72 = WALK|REP, Ceiling_LowerAndCrushDist (tag, C_SLOW, 10)
73 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 10)
73 = WALK|REP, Ceiling_CrushAndRaiseA (tag, C_SLOW, C_SLOW, 0)
74 = WALK|REP, Ceiling_CrushStop (tag)
75 = WALK|REP, Door_Close (tag, D_SLOW)
76 = WALK|REP, Door_CloseWaitOpen (tag, D_SLOW, 240)
@ -164,7 +164,7 @@ RetailOnly = 121
91 = WALK|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
92 = WALK|REP, Floor_RaiseByValue (tag, F_SLOW, 64)
93 = WALK|REP, Floor_RaiseByValueTxTy (tag, F_SLOW, 24)
94 = WALK|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2)
94 = WALK|REP, Floor_RaiseAndCrushDoom (tag, F_SLOW, 10, 2)
95 = WALK|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
96 = WALK|REP, Floor_RaiseByTexture (tag, F_SLOW)
97 = WALK|REP|MONST, Teleport (0, tag)
@ -247,7 +247,7 @@ RetailOnly = 121
49 = USE, Ceiling_CrushAndRaiseDist (tag, 8, C_SLOW, 0, 2)
50 = USE, Door_Close (tag, D_SLOW)
51 = USE, Teleport_EndGame (0)
55 = USE, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2)
55 = USE, Floor_RaiseAndCrushDoom (tag, F_SLOW, 10, 2)
101 = USE, Floor_RaiseToLowestCeiling (tag, F_SLOW)
102 = USE, Floor_LowerToHighest (tag, F_SLOW, 128)
103 = USE, Door_Open (tag, D_SLOW)
@ -289,7 +289,7 @@ RetailOnly = 121
64 = USE|REP, Floor_RaiseToLowestCeiling (tag, F_SLOW)
66 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 3)
67 = USE|REP, Plat_UpByValueStayTx (tag, P_SLOW/2, 4)
65 = USE|REP, Floor_RaiseAndCrush (tag, F_SLOW, 10, 2)
65 = USE|REP, Floor_RaiseAndCrushDoom (tag, F_SLOW, 10, 2)
68 = USE|REP, Plat_RaiseAndStayTx0 (tag, P_SLOW/2)
69 = USE|REP, Floor_RaiseToNearest (tag, F_SLOW)
70 = USE|REP, Floor_LowerToHighest (tag, F_FAST, 128)