summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Haley2010-09-25 23:12:58 +0000
committerJames Haley2010-09-25 23:12:58 +0000
commitb563a6485a2840f324ad0bc7b45d3a8306a9f18b (patch)
treed459cf7f8e2c391efa52e3ed53180a3e700f1270
parent6347e5fad98d28e1c8ca89273568da4c7f652a7f (diff)
downloadchocolate-doom-b563a6485a2840f324ad0bc7b45d3a8306a9f18b.tar.gz
chocolate-doom-b563a6485a2840f324ad0bc7b45d3a8306a9f18b.tar.bz2
chocolate-doom-b563a6485a2840f324ad0bc7b45d3a8306a9f18b.zip
ALL line types implemented in P_UseSpecialLine!
Subversion-branch: /branches/strife-branch Subversion-revision: 2139
-rw-r--r--src/strife/doomdef.h4
-rw-r--r--src/strife/p_doors.c42
-rw-r--r--src/strife/p_local.h2
-rw-r--r--src/strife/p_spec.c6
-rw-r--r--src/strife/p_switch.c425
5 files changed, 290 insertions, 189 deletions
diff --git a/src/strife/doomdef.h b/src/strife/doomdef.h
index 3c924eba..2dbf716b 100644
--- a/src/strife/doomdef.h
+++ b/src/strife/doomdef.h
@@ -243,7 +243,7 @@ enum
{ // Name Flag from bitnum Purpose, if known
QF_QUEST1 = (1 << tk_quest1),
QF_QUEST2 = (1 << tk_quest2),
- QF_QUEST3 = (1 << tk_quest3),
+ QF_QUEST3 = (1 << tk_quest3), // Permission to visit Irale
QF_QUEST4 = (1 << tk_quest4),
QF_QUEST5 = (1 << tk_quest5),
QF_QUEST6 = (1 << tk_quest6), // Destroyed the Power Coupling
@@ -253,7 +253,7 @@ enum
QF_QUEST10 = (1 << tk_quest10),
QF_QUEST11 = (1 << tk_quest11),
QF_QUEST12 = (1 << tk_quest12),
- QF_QUEST13 = (1 << tk_quest13),
+ QF_QUEST13 = (1 << tk_quest13), // Freed the Prisoners
QF_QUEST14 = (1 << tk_quest14),
QF_QUEST15 = (1 << tk_quest15),
QF_QUEST16 = (1 << tk_quest16), // Destroyed the Gate Mechanism
diff --git a/src/strife/p_doors.c b/src/strife/p_doors.c
index 2fed1f27..37e79e37 100644
--- a/src/strife/p_doors.c
+++ b/src/strife/p_doors.c
@@ -542,6 +542,8 @@ boolean EV_ClearForceFields(line_t* line)
//
// EV_VerticalDoor : open a door manually, no tag value
//
+// [STRIFE] Tons of new door types were added.
+//
void EV_VerticalDoor(line_t* line, mobj_t* thing)
{
player_t* player;
@@ -736,6 +738,13 @@ void EV_VerticalDoor(line_t* line, mobj_t* thing)
if (sec->specialdata)
{
door = sec->specialdata;
+ // [STRIFE] Adjusted to handle linetypes handled here by Strife.
+ // BUG: Not all door types are checked here. This means that certain
+ // door lines are allowed to fall through and start a new thinker on the
+ // sector! This is why some doors can become jammed in Strife - stuck in
+ // midair, or unable to be opened at all. Multiple thinkers will fight
+ // over how to move the door. They should have added a default return if
+ // they weren't going to handle this unconditionally...
switch(line->special)
{
case 1: // ONLY FOR "RAISE" DOORS, NOT "OPEN"s
@@ -743,14 +752,15 @@ void EV_VerticalDoor(line_t* line, mobj_t* thing)
case 27:
case 28:
case 117:
- case 159: // villsa [STRIFE] -- haleyjd 09/16/10: STRIFE-TODO: verify all this
- case 161: // villsa [STRIFE]
- case 166: // villsa [STRIFE]
- case 169: // villsa [STRIFE]
- case 170: // villsa [STRIFE]
- case 190: // villsa [STRIFE]
- case 213: // villsa [STRIFE]
- case 232: // villsa [STRIFE]
+ case 159: // villsa
+ case 160: // haleyjd
+ case 161: // villsa
+ case 166: // villsa
+ case 169: // villsa
+ case 170: // villsa
+ case 190: // villsa
+ case 213: // villsa
+ case 232: // villsa
if(door->direction == -1)
door->direction = 1; // go back up
else
@@ -810,9 +820,7 @@ void EV_VerticalDoor(line_t* line, mobj_t* thing)
door->topwait = VDOORWAIT;
R_SoundNumForDoor(door); // haleyjd 09/15/10: [STRIFE] Get door sounds
- // STRIFE-TODO: handle all door types, old and new.
-
- // for proper sound
+ // for proper sound - [STRIFE] - verified complete
switch(line->special)
{
case 117: // BLAZING DOOR RAISE
@@ -825,7 +833,7 @@ void EV_VerticalDoor(line_t* line, mobj_t* thing)
break;
}
- // haleyjd: STRIFE-TODO: verify all of this.
+ // haleyjd: [STRIFE] - verified all.
switch(line->special)
{
case 1:
@@ -835,8 +843,9 @@ void EV_VerticalDoor(line_t* line, mobj_t* thing)
door->type = normal;
break;
-
- // villsa [STRIFE] 31 through 33 are removed
+ case 31:
+ case 32:
+ case 33:
case 34:
case 156: // villsa [STRIFE]
case 157: // villsa [STRIFE]
@@ -855,6 +864,11 @@ void EV_VerticalDoor(line_t* line, mobj_t* thing)
line->special = 0;
door->speed = VDOORSPEED*4;
break;
+
+ default:
+ // haleyjd: [STRIFE] pretty important to have this here!
+ door->type = normal;
+ break;
}
// find the top and bottom of the movement range
diff --git a/src/strife/p_local.h b/src/strife/p_local.h
index b35a0acc..07c2a348 100644
--- a/src/strife/p_local.h
+++ b/src/strife/p_local.h
@@ -150,6 +150,8 @@ void P_DoPunchAlert(mobj_t *puncher, mobj_t *punchee); // villsa [STRIFE]
void A_BodyParts(mobj_t *actor); // haleyjd: [STRIFE]
void A_AlertSpectreC(mobj_t* actor);
void A_FaceTarget (mobj_t* actor);
+void P_FreePrisoners(void);
+void P_DestroyConverter(void);
//
// P_MAPUTL
diff --git a/src/strife/p_spec.c b/src/strife/p_spec.c
index 667d6abb..0d999d4f 100644
--- a/src/strife/p_spec.c
+++ b/src/strife/p_spec.c
@@ -1400,10 +1400,10 @@ P_CrossSpecialLine
//
void
P_ShootSpecialLine
-( mobj_t* thing,
- line_t* line )
+( mobj_t* thing,
+ line_t* line )
{
- int ok;
+ int ok;
// Impacts that other things can activate.
if (!thing->player)
diff --git a/src/strife/p_switch.c b/src/strife/p_switch.c
index 44fde672..50c6996b 100644
--- a/src/strife/p_switch.c
+++ b/src/strife/p_switch.c
@@ -35,10 +35,12 @@
#include "g_game.h"
#include "d_main.h" // villsa [STRIFE]
#include "z_zone.h" // villsa [STRIFE]
-#include "w_wad.h" // villsa [STRIFE]
+#include "w_wad.h" // villsa [STRIFE]
#include "s_sound.h"
#include "m_random.h" // haleyjd [STRIFE]
#include "p_dialog.h"
+#include "p_local.h" // haleyjd [STRIFE]
+#include "m_bbox.h" // villsa [STRIFE]
// Data.
#include "sounds.h"
@@ -46,9 +48,6 @@
// State.
#include "doomstat.h"
#include "r_state.h"
-#include "m_bbox.h" // villsa [STRIFE]
-
-void P_FreePrisoners(void); // villsa [STRIFE]
//
// CHANGE THE TEXTURE OF A WALL SWITCH TO ITS OPPOSITE
@@ -477,6 +476,7 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
switch(line->special)
{
case 1: // MANUAL DOOR RAISE
+ case 31: // haleyjd [STRIFE]
case 144: // haleyjd [STRIFE] Manual sliding door
break;
@@ -494,25 +494,40 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
{
// MANUALS
case 1: // Vertical Door
- case 26: // Blue Door/Locked
- case 27: // Yellow Door /Locked
- case 28: // Red Door /Locked
-
+ case 26: // DR ID Card
+ case 27: // DR Pass Card
+ case 28: // DR ID Badge
case 31: // Manual door open
- case 32: // Blue locked door open
- case 33: // Red locked door open
- case 34: // Yellow locked door open
-
+ case 32: // D1 ID Card
+ case 33: // D1 ID Badge
+ case 34: // D1 Pass Card
case 117: // Blazing door raise
case 118: // Blazing door open
-
- case 165: // villsa [STRIFE] That doesn't seem to work
- case 205: // villsa [STRIFE] Available in retail only
- case 232: // villsa [STRIFE] Oracle pass open
+ case 156: // haleyjd [STRIFE] D1 Brass Key
+ case 157: // haleyjd [STRIFE] D1 Silver Key
+ case 158: // haleyjd [STRIFE] D1 Gold Key
+ case 159: // haleyjd [STRIFE] DR Gold Key
+ case 160: // haleyjd [STRIFE] DR Silver Key
+ case 161: // haleyjd [STRIFE] DR Brass Key
+ case 165: // villsa [STRIFE] That doesn't seem to work
+ case 166: // haleyjd [STRIFE] DR Hand Print
+ case 169: // haleyjd [STRIFE] DR Base Key
+ case 170: // haleyjd [STRIFE] DR Gov's Key
+ case 190: // haleyjd [STRIFE] DR Order Key
+ case 205: // villsa [STRIFE] Available in retail only
+ case 213: // haleyjd [STRIFE] DR Chalice
+ case 217: // haleyjd [STRIFE] DR Core Key
+ case 221: // haleyjd [STRIFE] DR Mauler Key
+ case 224: // haleyjd [STRIFE] DR Chapel Key
+ case 225: // haleyjd [STRIFE] DR Catacomb Key
+ case 232: // villsa [STRIFE] DR Oracle Pass
EV_VerticalDoor (line, thing);
break;
- // SWITCHES
+ // haleyjd: For the sake of our sanity, I have reordered all the line
+ // specials from this point down so that they are strictly in numeric
+ // order, and not divided up in a semi-arbitrary fashion.
+
case 7:
// Build Stairs - [STRIFE] Verified unmodified
if (EV_BuildStairs(line,build8))
@@ -520,7 +535,7 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
break;
case 9:
- // Change Donut
+ // Change Donut - [STRIFE] Verified unmodified
if (EV_DoDonut(line))
P_ChangeSwitchTexture(line,0);
break;
@@ -534,7 +549,7 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
break;
case 14:
- // Raise Floor 32 and change texture
+ // Raise Floor 32 and change texture - [STRIFE] Verified unmodified
if (EV_DoPlat(line, raiseAndChange,32))
P_ChangeSwitchTexture(line,0);
break;
@@ -546,31 +561,31 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
break;
case 18:
- // Raise Floor to next highest floor
+ // Raise Floor to next highest floor - [STRIFE] Verified unmodified
if (EV_DoFloor(line, raiseFloorToNearest))
P_ChangeSwitchTexture(line,0);
break;
case 20:
- // Raise Plat next highest floor and change texture
+ // Raise Plat next highest floor and change texture - [STRIFE] Verified unmodified
if(EV_DoPlat(line, raiseToNearestAndChange, 0))
P_ChangeSwitchTexture(line,0);
break;
case 21:
- // PlatDownWaitUpStay
+ // PlatDownWaitUpStay - [STRIFE] Verified unmodified
if (EV_DoPlat(line, downWaitUpStay,0))
P_ChangeSwitchTexture(line,0);
break;
case 23:
- // Lower Floor to Lowest
+ // Lower Floor to Lowest - [STRIFE] Verified unmodified
if (EV_DoFloor(line,lowerFloorToLowest))
P_ChangeSwitchTexture(line,0);
break;
case 29:
- // Raise Door
+ // Raise Door - [STRIFE] Verified unmodified
if (EV_DoDoor(line,normal))
P_ChangeSwitchTexture(line,0);
break;
@@ -579,250 +594,244 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
// villsa [STRIFE] Split Open Door
if(EV_DoDoor(line, splitOpen))
P_ChangeSwitchTexture(line, 0);
+ break; // haleyjd
case 41:
- // Lower Ceiling to Floor
+ // Lower Ceiling to Floor - [STRIFE] Verified unmodified
if (EV_DoCeiling(line,lowerToFloor))
P_ChangeSwitchTexture(line,0);
break;
- case 71:
- // Turbo Lower Floor
- if (EV_DoFloor(line,turboLower))
- P_ChangeSwitchTexture(line,0);
+ case 42:
+ // Close Door - [STRIFE] Verified unmodified
+ if (EV_DoDoor(line,close))
+ P_ChangeSwitchTexture(line,1);
+ break;
+
+ case 43:
+ // Lower Ceiling to Floor - [STRIFE] Verified unmodified
+ if (EV_DoCeiling(line,lowerToFloor))
+ P_ChangeSwitchTexture(line,1);
+ break;
+
+ case 45:
+ // Lower Floor to Surrounding floor height - [STRIFE] Verified unmodified
+ if (EV_DoFloor(line,lowerFloor))
+ P_ChangeSwitchTexture(line,1);
break;
case 49:
- // Ceiling Crush And Raise
+ // Ceiling Crush And Raise - [STRIFE] Verified unmodified
if (EV_DoCeiling(line,crushAndRaise))
P_ChangeSwitchTexture(line,0);
break;
case 50:
- // Close Door
+ // Close Door - [STRIFE] Verified unmodified
if (EV_DoDoor(line,close))
P_ChangeSwitchTexture(line,0);
break;
case 51:
- // Secret EXIT
+ // [STRIFE] Modifed into S1 Start Finale (was Secret Exit)
P_ChangeSwitchTexture(line,0);
- //G_SecretExitLevel ();
+ G_StartFinale();
break;
case 55:
- // Raise Floor Crush
+ // Raise Floor Crush - [STRIFE] Verified unmodified
if (EV_DoFloor(line,raiseFloorCrush))
P_ChangeSwitchTexture(line,0);
break;
- case 101:
- // Raise Floor
- if (EV_DoFloor(line,raiseFloor))
- P_ChangeSwitchTexture(line,0);
- break;
-
- case 102:
- // Lower Floor to Surrounding floor height
- if (EV_DoFloor(line,lowerFloor))
- P_ChangeSwitchTexture(line,0);
- break;
-
- case 103:
- // Open Door
- if (EV_DoDoor(line,open))
- P_ChangeSwitchTexture(line,0);
- break;
-
- case 111:
- // Blazing Door Raise (faster than TURBO!)
- if (EV_DoDoor (line,blazeRaise))
- P_ChangeSwitchTexture(line,0);
- break;
-
- case 112:
- // Blazing Door Open (faster than TURBO!)
- if (EV_DoDoor (line,blazeOpen))
- P_ChangeSwitchTexture(line,0);
- break;
-
- case 113:
- // Blazing Door Close (faster than TURBO!)
- if (EV_DoDoor (line,blazeClose))
- P_ChangeSwitchTexture(line,0);
- break;
-
- case 122:
- // Blazing PlatDownWaitUpStay
- if(EV_DoPlat(line, blazeDWUS, 0))
- P_ChangeSwitchTexture(line,0);
- break;
-
- case 127:
- // Build Stairs Turbo 16 - [STRIFE] Verified unmodified
- if (EV_BuildStairs(line,turbo16))
- P_ChangeSwitchTexture(line,0);
- break;
-
- case 131:
- // Raise Floor Turbo
- if (EV_DoFloor(line,raiseFloorTurbo))
- P_ChangeSwitchTexture(line,0);
- break;
-
- case 133:
- // BlzOpenDoor BLUE
- case 135:
- // BlzOpenDoor RED
- case 137:
- // BlzOpenDoor YELLOW
- if (EV_DoLockedDoor (line,blazeOpen,thing))
- P_ChangeSwitchTexture(line,0);
- break;
-
- case 140:
- // Raise Floor 512
- if (EV_DoFloor(line,raiseFloor512))
- P_ChangeSwitchTexture(line,0);
- break;
-
- // BUTTONS
- case 42:
- // Close Door
- if (EV_DoDoor(line,close))
- P_ChangeSwitchTexture(line,1);
- break;
-
- case 43:
- // Lower Ceiling to Floor
- if (EV_DoCeiling(line,lowerToFloor))
- P_ChangeSwitchTexture(line,1);
- break;
-
- case 45:
- // Lower Floor to Surrounding floor height
- if (EV_DoFloor(line,lowerFloor))
- P_ChangeSwitchTexture(line,1);
- break;
-
case 60:
- // Lower Floor to Lowest
+ // Lower Floor to Lowest - [STRIFE] Verified unmodified
if (EV_DoFloor(line,lowerFloorToLowest))
P_ChangeSwitchTexture(line,1);
break;
case 61:
- // Open Door
+ // Open Door - [STRIFE] Verified unmodified
if (EV_DoDoor(line,open))
P_ChangeSwitchTexture(line,1);
break;
case 62:
- // PlatDownWaitUpStay
+ // PlatDownWaitUpStay - [STRIFE] Verified unmodified
if (EV_DoPlat(line, downWaitUpStay,1))
P_ChangeSwitchTexture(line,1);
break;
case 63:
- // Raise Door
+ // Raise Door - [STRIFE] Verified unmodified
if (EV_DoDoor(line,normal))
P_ChangeSwitchTexture(line,1);
break;
case 64:
- // Raise Floor to ceiling
+ // Raise Floor to ceiling - [STRIFE] Verified unmodified
if (EV_DoFloor(line,raiseFloor))
P_ChangeSwitchTexture(line,1);
break;
+ case 65:
+ // Raise Floor Crush - [STRIFE] Verified unmodified
+ if (EV_DoFloor(line,raiseFloorCrush))
+ P_ChangeSwitchTexture(line,1);
+ break;
+
case 66:
- // Raise Floor 24 and change texture
+ // Raise Floor 24 and change texture - [STRIFE] Verified unmodified
if (EV_DoPlat(line, raiseAndChange, 24))
P_ChangeSwitchTexture(line,1);
break;
case 67:
- // Raise Floor 32 and change texture
+ // Raise Floor 32 and change texture - [STRIFE] Verified unmodified
if (EV_DoPlat(line, raiseAndChange, 32))
P_ChangeSwitchTexture(line,1);
break;
-
- case 65:
- // Raise Floor Crush
- if (EV_DoFloor(line,raiseFloorCrush))
- P_ChangeSwitchTexture(line,1);
- break;
-
+
case 68:
- // Raise Plat to next highest floor and change texture
+ // Raise Plat to next highest floor and change texture - [STRIFE] Verified unmodified
if (EV_DoPlat(line, raiseToNearestAndChange, 0))
P_ChangeSwitchTexture(line,1);
break;
case 69:
- // Raise Floor to next highest floor
+ // Raise Floor to next highest floor - [STRIFE] Verified unmodified
if (EV_DoFloor(line, raiseFloorToNearest))
P_ChangeSwitchTexture(line,1);
break;
case 70:
- // Turbo Lower Floor
+ // Turbo Lower Floor - [STRIFE] Verified unmodified
if (EV_DoFloor(line,turboLower))
P_ChangeSwitchTexture(line,1);
break;
+ case 71:
+ // Turbo Lower Floor - [STRIFE] Verified unmodified
+ if (EV_DoFloor(line,turboLower))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
+ case 101:
+ // Raise Floor - [STRIFE] Verified unmodified
+ if (EV_DoFloor(line,raiseFloor))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
+ case 102:
+ // Lower Floor to Surrounding floor height - [STRIFE] Verified unmodified
+ if (EV_DoFloor(line,lowerFloor))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
+ case 103:
+ // Open Door - [STRIFE] Verified unmodified
+ if (EV_DoDoor(line,open))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
+ case 111:
+ // Blazing Door Raise (faster than TURBO!) - [STRIFE] Verified unmodified
+ if (EV_DoDoor (line,blazeRaise))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
+ case 112:
+ // Blazing Door Open (faster than TURBO!) - [STRIFE] Verified unmodified
+ if (EV_DoDoor (line,blazeOpen))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
+ case 113:
+ // Blazing Door Close (faster than TURBO!) - [STRIFE] Verified unmodified
+ if (EV_DoDoor (line,blazeClose))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
case 114:
- // Blazing Door Raise (faster than TURBO!)
+ // Blazing Door Raise (faster than TURBO!) - [STRIFE] Verified unmodified
if (EV_DoDoor (line,blazeRaise))
P_ChangeSwitchTexture(line,1);
break;
case 115:
- // Blazing Door Open (faster than TURBO!)
+ // Blazing Door Open (faster than TURBO!) - [STRIFE] Verified unmodified
if (EV_DoDoor (line,blazeOpen))
P_ChangeSwitchTexture(line,1);
break;
case 116:
- // Blazing Door Close (faster than TURBO!)
+ // Blazing Door Close (faster than TURBO!) - [STRIFE] Verified unmodified
if (EV_DoDoor (line,blazeClose))
P_ChangeSwitchTexture(line,1);
break;
+ case 122:
+ // Blazing PlatDownWaitUpStay - [STRIFE] Verified unmodified
+ if(EV_DoPlat(line, blazeDWUS, 0))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
case 123:
- // Blazing PlatDownWaitUpStay
+ // Blazing PlatDownWaitUpStay - [STRIFE] Verified unmodified
if(EV_DoPlat(line, blazeDWUS, 0))
P_ChangeSwitchTexture(line,1);
break;
+ case 127:
+ // Build Stairs Turbo 16 - [STRIFE] Verified unmodified
+ if (EV_BuildStairs(line,turbo16))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
+ case 131:
+ // Raise Floor Turbo - [STRIFE] Verified unmodified
+ if (EV_DoFloor(line,raiseFloorTurbo))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
case 132:
- // Raise Floor Turbo
+ // Raise Floor Turbo - [STRIFE] Verified unmodified
if (EV_DoFloor(line,raiseFloorTurbo))
P_ChangeSwitchTexture(line,1);
break;
- case 99:
- // BlzOpenDoor BLUE
- case 134:
- // BlzOpenDoor RED
- case 136:
- // BlzOpenDoor YELLOW
+ case 133: // [STRIFE] TODO - which key is it?
+ case 135: // [STRIFE] TODO - which key is it?
+ case 137: // [STRIFE] TODO - which key is it?
+ if (EV_DoLockedDoor (line,blazeOpen,thing))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
+ case 99: // [STRIFE] TODO: which key is it?
+ case 134: // [STRIFE] TODO: which key is it?
+ case 136: // [STRIFE] TODO: which key is it?
if (EV_DoLockedDoor (line,blazeOpen,thing))
P_ChangeSwitchTexture(line,1);
break;
case 138:
- // Light Turn On
+ // Light Turn On - [STRIFE] Verified unmodified
EV_LightTurnOn(line,255);
P_ChangeSwitchTexture(line,1);
break;
case 139:
- // Light Turn Off
+ // Light Turn Off - [STRIFE] Verified unmodified
EV_LightTurnOn(line,35);
P_ChangeSwitchTexture(line,1);
break;
+ case 140:
+ // Raise Floor 512 - [STRIFE] Verified unmodified
+ if (EV_DoFloor(line,raiseFloor512))
+ P_ChangeSwitchTexture(line,0);
+ break;
+
case 144:
// villsa [STRIFE] manual sliding door
EV_SlidingDoor(line, thing);
@@ -846,9 +855,10 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
P_Thrust(thing->player, thing->angle + ANG180, 125*FRACUNIT/16);
break;
- case 151:
- // villsa [STRIFE] BlzOpenDoor Gold key
- if(EV_DoLockedDoor(line, blazeOpen,thing))
+ case 151: // villsa [STRIFE] BlzOpenDoor Gold key
+ case 152: // [STRIFE] TODO: which key is it?
+ case 153: // [STRIFE] TODO: which key is it?
+ if(EV_DoLockedDoor(line, blazeOpen, thing))
P_ChangeSwitchTexture(line, 1);
break;
@@ -872,12 +882,36 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
P_ChangeSwitchTexture(line, 1);
break;
- case 164:
- // villsa [STRIFE] BlzOpenDoor Gold key
- if(EV_DoLockedDoor(line, blazeOpen,thing))
+ case 162: // [STRIFE] TODO: which key is it?
+ case 163: // [STRIFE] TODO: which key is it?
+ case 164: // villsa [STRIFE] BlzOpenDoor Gold key
+ case 167: // [STRIFE] TODO: which key is it?
+ if(EV_DoLockedDoor(line, blazeOpen, thing))
P_ChangeSwitchTexture(line, 0);
break;
+ case 168: // [STRIFE] TODO: which key is it?
+ // haleyjd 09/25/10: [STRIFE] SR Blaze Open Door ???? Key
+ if(EV_DoLockedDoor(line, blazeOpen, thing))
+ P_ChangeSwitchTexture(line, 1);
+ break;
+
+ case 171: // [STRIFE] TODO: which key is it?
+ // haleyjd 09/25/10: [STRIFE] S1 Open Door ???? Key
+ if(EV_DoLockedDoor(line, open, thing))
+ P_ChangeSwitchTexture(line, 0);
+ break;
+
+ case 172: // [STRIFE] TODO: which key is it?
+ case 173: // [STRIFE] TODO: which key is it?
+ case 176: // [STRIFE] TODO: which key is it?
+ case 191: // [STRIFE] TODO: which key is it?
+ case 192: // [STRIFE] TODO: which key is it?
+ case 223: // [STRIFE] TODO: which key is it?
+ if(EV_DoLockedDoor(line, normal, thing))
+ P_ChangeSwitchTexture(line, 1);
+ break;
+
case 177:
// villsa [STRIFE] plat lower wait rise if have power3 key
if(thing->player->cards[key_Power3Key])
@@ -892,18 +926,38 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
}
break;
+ case 181:
+ // haleyjd 09/25/10: [STRIFE] S1 Floor Raise 512 & Change
+ if(EV_DoFloor(line, raiseFloor512AndChange))
+ P_ChangeSwitchTexture(line, 0);
+ break;
+
+ case 189: // [STRIFE] TODO: which key is it???
+ // haleyjd 09/25/10: [STRIFE] S1 Split Open Door ???? Key
+ if(EV_DoLockedDoor(line, splitOpen, thing))
+ P_ChangeSwitchTexture(line, 0);
+ break;
+
case 194:
- // villsa [STRIFE] free prisoners
+ // villsa [STRIFE] S1 Free Prisoners
if(EV_DoDoor(line, open))
{
P_ChangeSwitchTexture(line, 0);
P_FreePrisoners();
- return true;
+ }
+ break;
+
+ case 199:
+ // haleyjd 09/25/10: [STRIFE] S1 Destroy Converter
+ if(EV_DoCeiling(line, lowerAndCrush))
+ {
+ P_ChangeSwitchTexture(line, 0);
+ P_DestroyConverter();
}
break;
case 207:
- // villsa [STRIFE] remote sliding door
+ // villsa [STRIFE] SR Remote Sliding Door
if(EV_RemoteSlidingDoor(line, thing))
P_ChangeSwitchTexture(line, 1);
break; // haleyjd
@@ -922,7 +976,7 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
break;
case 211:
- // villsa [STRIFE] play VOC## sound
+ // villsa [STRIFE] S1 Play VOC## sound
if(&players[consoleplayer] == thing->player &&
thing->player->powers[pw_communicator])
{
@@ -933,13 +987,35 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
break;
case 214:
- // villsa [STRIFE] slow lift lower wait up stay
+ // villsa [STRIFE] S1 slow lift lower wait up stay
if(EV_DoPlat(line, slowDWUS, 1))
P_ChangeSwitchTexture(line, 1);
break;
+ case 219:
+ // haleyjd 09/25/10: S1 Lower Floor Blue Crystal
+ if(!thing->player->cards[key_BlueCrystalKey])
+ {
+ thing->player->message = DEH_String("You need the Blue Crystal");
+ S_StartSound(thing, sfx_oof);
+ }
+ else if(EV_DoFloor(line, lowerFloor))
+ P_ChangeSwitchTexture(line, 0);
+ break;
+
+ case 220:
+ // haleyjd 09/25/10: S1 Lower Floor Red Crystal
+ if(!thing->player->cards[key_RedCrystalKey])
+ {
+ thing->player->message = DEH_String("You need the Red Crystal");
+ S_StartSound(thing, sfx_oof);
+ }
+ else if(EV_DoFloor(line, lowerFloor))
+ P_ChangeSwitchTexture(line, 0);
+ break;
+
case 226:
- // villsa [STRIFE] complete training area
+ // villsa [STRIFE] S1 Complete Training Area
if(EV_DoFloor(line, lowerFloor))
{
P_GiveItemToPlayer(thing->player, SPR_TOKN, MT_TOKEN_STAMINA);
@@ -952,8 +1028,8 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
break;
case 229:
- // villsa [STRIFE] sigil sliding door
- if(thing->player && thing->player->sigiltype == 4)
+ // villsa [STRIFE] SR Sigil Sliding Door
+ if(thing->player->sigiltype == 4)
{
if(EV_RemoteSlidingDoor(line, thing))
P_ChangeSwitchTexture(line, 1);
@@ -966,8 +1042,8 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
return true;
P_ChangeSwitchTexture(line, 1);
-
GiveVoiceObjective("voc70", "log70", 0);
+
// haleyjd: Strife used sprintf here, not a direct set.
DEH_snprintf(usemessage, sizeof(usemessage),
"Incoming Message from BlackBird...");
@@ -977,7 +1053,7 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
case 234:
// haleyjd 09/24/10: [STRIFE] SR Raise Door if Quest 3
- if(!(thing->player->questflags & QF_QUEST3)) // STRIFE-TODO: identify quest 3
+ if(!(thing->player->questflags & QF_QUEST3)) // QUEST3 == Irale
{
DEH_snprintf(usemessage, sizeof(usemessage),
"That doesn't seem to work!");
@@ -987,8 +1063,17 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
P_ChangeSwitchTexture(line, 1);
break;
+ case 235:
+ // haleyjd 09/25/10: [STRIFE] S1 Split Open Door if Have Sigil 4
+ if(thing->player->sigiltype == 4)
+ {
+ if(EV_DoDoor(line, splitOpen))
+ P_ChangeSwitchTexture(line, 0);
+ }
+ break;
+
case 666:
- // villsa [STRIFE] Move wall
+ // villsa [STRIFE] SR Move Wall
P_MoveWall(line, thing);
break;
}