diff options
author | James Haley | 2010-09-25 23:12:58 +0000 |
---|---|---|
committer | James Haley | 2010-09-25 23:12:58 +0000 |
commit | b563a6485a2840f324ad0bc7b45d3a8306a9f18b (patch) | |
tree | d459cf7f8e2c391efa52e3ed53180a3e700f1270 /src | |
parent | 6347e5fad98d28e1c8ca89273568da4c7f652a7f (diff) | |
download | chocolate-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
Diffstat (limited to 'src')
-rw-r--r-- | src/strife/doomdef.h | 4 | ||||
-rw-r--r-- | src/strife/p_doors.c | 42 | ||||
-rw-r--r-- | src/strife/p_local.h | 2 | ||||
-rw-r--r-- | src/strife/p_spec.c | 6 | ||||
-rw-r--r-- | src/strife/p_switch.c | 425 |
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; } |