From 914c829f798fffa2b0ea25e5a061936073ae9966 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 29 Mar 2017 01:25:02 +0200 Subject: [PATCH] - added Floor/Ceiling_MoveToValueAndCrush action specials. --- src/actionspecials.h | 4 ++++ src/p_lnspec.cpp | 20 ++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/actionspecials.h b/src/actionspecials.h index 173a07b2d3..08f989754d 100644 --- a/src/actionspecials.h +++ b/src/actionspecials.h @@ -262,5 +262,9 @@ DEFINE_SPECIAL(Stairs_BuildUpDoomCrush, 273, 5, 5, 5) DEFINE_SPECIAL(Door_AnimatedClose, 274, 4, 4, 4) DEFINE_SPECIAL(Floor_Stop, 275, 1, 1, 1) DEFINE_SPECIAL(Ceiling_Stop, 276, 1, 1, 1) +DEFINE_SPECIAL(Sector_SetFloorGlow, 277, 5, 5, 5) +DEFINE_SPECIAL(Sector_SetCeilingGlow, 278, 5, 5, 5) +DEFINE_SPECIAL(Floor_MoveToValueAndCrush, 279, 4, 5, 5) +DEFINE_SPECIAL(Ceiling_MoveToValueAndCrush, 290, 4, 5, 5) #undef DEFINE_SPECIAL diff --git a/src/p_lnspec.cpp b/src/p_lnspec.cpp index 1271e7603d..39b97f1d87 100644 --- a/src/p_lnspec.cpp +++ b/src/p_lnspec.cpp @@ -451,6 +451,13 @@ FUNC(LS_Floor_MoveToValue) arg2*(arg3?-1:1), -1, CHANGE(arg4), false); } +FUNC(LS_Floor_MoveToValueAndCrush) +// Floor_MoveToValueAndCrush (tag, speed, height, crush, crushmode) +{ + return EV_DoFloor(DFloor::floorMoveToValue, ln, arg0, SPEED(arg1), + arg2, CRUSH(arg3) -1, 0, CRUSHTYPE(arg4), false); +} + FUNC(LS_Floor_RaiseToLowestCeiling) // Floor_RaiseToLowestCeiling (tag, speed, change, crush) { @@ -744,6 +751,13 @@ FUNC(LS_Ceiling_MoveToValue) arg2*((arg3) ? -1 : 1), -1, 0, CHANGE(arg4)); } +FUNC(LS_Ceiling_MoveToValueAndCrush) +// Ceiling_MoveToValueAndCrush (tag, speed, height, crush, crushmode) +{ + return EV_DoCeiling (DCeiling::ceilMoveToValue, ln, arg0, SPEED(arg1), 0, + arg2, CRUSH(arg3), 0, 0, CRUSHTYPE(arg4, arg1 == 8)); +} + FUNC(LS_Ceiling_LowerToHighestFloor) // Ceiling_LowerToHighestFloor (tag, speed, change, crush, gap) { @@ -855,13 +869,13 @@ FUNC(LS_Ceiling_ToFloorInstant) FUNC(LS_Ceiling_LowerToFloor) // Ceiling_LowerToFloor (tag, speed, change, crush, gap) { - return EV_DoCeiling (DCeiling::ceilLowerToFloor, ln, arg0, SPEED(arg1), 0, arg4, CRUSH(arg3), 0, CHANGE(arg4)); + return EV_DoCeiling (DCeiling::ceilLowerToFloor, ln, arg0, SPEED(arg1), 0, arg4, CRUSH(arg3), 0, CHANGE(arg2)); } FUNC(LS_Ceiling_LowerByTexture) // Ceiling_LowerByTexture (tag, speed, change, crush) { - return EV_DoCeiling (DCeiling::ceilLowerByTexture, ln, arg0, SPEED(arg1), 0, 0, CRUSH(arg3), 0, CHANGE(arg4)); + return EV_DoCeiling (DCeiling::ceilLowerByTexture, ln, arg0, SPEED(arg1), 0, 0, CRUSH(arg3), 0, CHANGE(arg2)); } FUNC(LS_Ceiling_Stop) @@ -3702,6 +3716,8 @@ static lnSpecFunc LineSpecials[] = /* 276 */ LS_Ceiling_Stop, /* 277 */ LS_Sector_SetFloorGlow, /* 278 */ LS_Sector_SetCeilingGlow, + /* 279 */ LS_Floor_MoveToValueAndCrush, + /* 280 */ LS_Ceiling_MoveToValueAndCrush, };