shithub: choc

Download patch

ref: 76d654bb85659ba65cfa843ee24973fba60269cc
parent: 3e2b2b4889f9f8d7de1ee056be6240ca05ec6dfe
author: Samuel Villareal <svkaiser@gmail.com>
date: Sun Sep 19 15:31:37 EDT 2010

+ Line types 194 and 211 added

Subversion-branch: /branches/strife-branch
Subversion-revision: 2121

--- a/src/strife/p_switch.c
+++ b/src/strife/p_switch.c
@@ -48,6 +48,7 @@
 #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
@@ -441,6 +442,9 @@
     line->bbox[BOXTOP] = y;
 }
 
+// villsa [STRIFE]
+static char speciallinemsg[92];
+
 //
 // P_UseSpecialLine
 // Called when a thing uses a special line.
@@ -829,11 +833,32 @@
         P_Thrust(thing->player, thing->angle + ANG180, 125*FRACUNIT/16);
         break;
 
+    case 194:
+        // villsa [STRIFE] free prisoners
+        if(EV_DoDoor(line, open))
+        {
+            P_ChangeSwitchTexture(line, 0);
+            P_FreePrisoners();
+            return true;
+        }
+        break;
+
     case 207:
         // villsa [STRIFE] remote sliding door
         if(EV_RemoteSlidingDoor(line, thing))
             P_ChangeSwitchTexture(line, 1);
         break; // haleyjd
+
+    case 211:
+        // villsa [STRIFE] play VOC## sound
+        if(&players[consoleplayer] == thing->player &&
+            thing->player->powers[pw_communicator])
+        {
+            DEH_snprintf(speciallinemsg, sizeof(speciallinemsg), "voc%i", line->tag);
+            I_StartVoice(speciallinemsg);
+            line->special = 0;
+        }
+        break;
 
     case 226:
         // villsa [STRIFE] complete training area