foxygit / doom Log in
commit 6afda3400f46f67ef49510e13f9a206242503981
Author:     James Haley <haleyjd@hotmail.com>
AuthorDate: Fri Sep 24 06:46:59 2010 +0000
Commit:     James Haley <haleyjd@hotmail.com>
CommitDate: Fri Sep 24 06:46:59 2010 +0000

    Started work on P_UseSpecialLine cuz I was bored.

    Subversion-branch: /branches/strife-branch
    Subversion-revision: 2134
---
 src/strife/p_switch.c | 32 ++++++++++++++++++++++++--------
 1 file changed, 24 insertions(+), 8 deletions(-)

diff --git a/src/strife/p_switch.c b/src/strife/p_switch.c
index f40e24ac..b37e6586 100644
--- a/src/strife/p_switch.c
+++ b/src/strife/p_switch.c
@@ -453,6 +453,8 @@ static char speciallinemsg[92];
 //
 boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
 {
+    static char usemessage[92]; // [STRIFE]
+
     // Err...
     // Use the back sides of VERY SPECIAL lines...
     if (side)
@@ -464,10 +466,8 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)

         default:
             return false;
-            break;
         }
     }
-

     // Switches that other things can activate.
     if (!thing->player)
@@ -528,9 +528,11 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)
         break;

     case 11:
-        // Exit level
-        P_ChangeSwitchTexture(line,0);
-        G_ExitLevel (0);
+        // Exit level - [STRIFE] Modified to take tag, etc.
+        P_ChangeSwitchTexture(line, 1);
+        if(levelTimer && levelTimeCount)
+            break;
+        G_ExitLevel(line->tag);
         break;

     case 14:
@@ -888,16 +890,30 @@ boolean P_UseSpecialLine(mobj_t* thing, line_t* line, int side)

         P_ChangeSwitchTexture(line, 1);

-        GiveVoiceObjective("VOC70", "LOG70", -1);
-        thing->player->message = DEH_String("Incoming Message from BlackBird...");
+        GiveVoiceObjective("voc70", "log70", 0);
+        // haleyjd: Strife used sprintf here, not a direct set.
+        DEH_snprintf(usemessage, sizeof(usemessage),
+                     "Incoming Message from BlackBird...");
+        thing->player->message = usemessage;

         break;

+    case 234:
+        // haleyjd 09/24/10: [STRIFE] SR Raise Door if Quest 3
+        if(!(thing->player->questflags & QF_QUEST3)) // STRIFE-TODO: identify quest 3
+        {
+            DEH_snprintf(usemessage, sizeof(usemessage),
+                         "That doesn't seem to work!");
+            thing->player->message = usemessage;
+        }
+        else if(EV_DoDoor(line, normal))
+            P_ChangeSwitchTexture(line, 1);
+        break;
+
     case 666:
         // villsa [STRIFE] Move wall
         P_MoveWall(line, thing);
         break;
-
     }

     return true;