foxygit / doom Log in
commit 6347e5fad98d28e1c8ca89273568da4c7f652a7f
Author:     Samuel Villareal <svkaiser@gmail.com>
AuthorDate: Sat Sep 25 08:09:59 2010 +0000
Commit:     Samuel Villareal <svkaiser@gmail.com>
CommitDate: Sat Sep 25 08:09:59 2010 +0000

    + stonecold, jimmy, gripper, donnytrump, and lego cheats added

    Subversion-branch: /branches/strife-branch
    Subversion-revision: 2138
---
 src/strife/g_game.c   |   2 +
 src/strife/p_mobj.c   |  13 +++++-
 src/strife/p_spec.c   |   6 ++-
 src/strife/st_stuff.c | 107 ++++++++++++++++++++++++++++++++++++++++----------
 4 files changed, 104 insertions(+), 24 deletions(-)

diff --git a/src/strife/g_game.c b/src/strife/g_game.c
index c443830f..96a17ae4 100644
--- a/src/strife/g_game.c
+++ b/src/strife/g_game.c
@@ -1485,6 +1485,7 @@ void G_DoCompleted (void)
     // STRIFE-TODO: save automap powerup state (possibly inlined from G_PlayerFinishLevel);
     // set stonecold to 0

+    stonecold = false;  // villsa [STRIFE]
     if (automapactive)
         AM_Stop ();

@@ -1760,6 +1761,7 @@ void G_DoNewGame (void)
     playeringame[1] = playeringame[2] = playeringame[3] = 0;
     respawnparm = false;
     fastparm = false;
+    stonecold = false;      // villsa [STRIFE]
     nomonsters = false;
     consoleplayer = 0;
     G_InitNew (d_skill, d_episode, d_map);
diff --git a/src/strife/p_mobj.c b/src/strife/p_mobj.c
index 6f4cd774..3a8486a3 100644
--- a/src/strife/p_mobj.c
+++ b/src/strife/p_mobj.c
@@ -545,6 +545,13 @@ void P_MobjThinker (mobj_t* mobj)
     if (mobj->tics != -1)
     {
 	mobj->tics--;
+
+        // villsa [STRIFE] stonecold cheat
+        if(stonecold)
+        {
+            if(mobj->flags & MF_COUNTKILL)
+                P_DamageMobj(mobj, mobj, mobj, 10);
+        }

 	// you can cycle through multiple states in a tic
 	if (!mobj->tics)
@@ -808,11 +815,13 @@ void P_SpawnPlayer(mapthing_t* mthing)
     // accuracy to 50 and give all quest flags
     if(deathmatch)
     {
+        int i;
+
         p->accuracy = 50;
         p->questflags = QF_ALLQUESTS; // 0x7fffffff

-        /*for(i = 0; i < NUMCARDS; i++)
-            p->cards[i] = true;*/
+        for(i = 0; i < NUMCARDS; i++)
+            p->cards[i] = true;
     }

     // villsa [STRIFE] set godmode?
diff --git a/src/strife/p_spec.c b/src/strife/p_spec.c
index 70873bd0..667d6abb 100644
--- a/src/strife/p_spec.c
+++ b/src/strife/p_spec.c
@@ -1358,7 +1358,11 @@ P_CrossSpecialLine
         break;

     case 184:
-        // STRIFE-TODO: New plat type?
+        // villsa [STRIFE] plat up wait down stay
+        EV_DoPlat(line, upWaitDownStay, 0);
+
+        // hmm.. looks like Rogue screwed up here..
+        P_ChangeSwitchTexture(line, 1);
         break;

     case 185:
diff --git a/src/strife/st_stuff.c b/src/strife/st_stuff.c
index df15278a..a29bd922 100644
--- a/src/strife/st_stuff.c
+++ b/src/strife/st_stuff.c
@@ -49,6 +49,7 @@

 #include "p_local.h"
 #include "p_inter.h"
+#include "p_dialog.h"   // villsa [STRIFE]

 #include "am_map.h"
 #include "m_cheat.h"
@@ -293,14 +294,19 @@ static st_number_t      w_maxammo[NUMAMMO];  // haleyjd [STRIFE]: Still used.
 static int              st_fragscount;


-cheatseq_t cheat_mus = CHEAT("spin", 2);       // [STRIFE]: idmus -> spin
-cheatseq_t cheat_god = CHEAT("omnipotent", 0); // [STRIFE]: iddqd -> omnipotent
-cheatseq_t cheat_ammo = CHEAT("idkfa", 0);     // STRIFE-TODO
-cheatseq_t cheat_ammonokey = CHEAT("idfa", 0); // STRIFE-TODO
-cheatseq_t cheat_noclip = CHEAT("elvis", 0);   // [STRIFE]: idclip -> elvis
-cheatseq_t cheat_clev = CHEAT("rift", 2);      // [STRIFE]: idclev -> rift
-cheatseq_t cheat_mypos = CHEAT("gps", 0);      // [STRIFE]: idmypos -> gps
-cheatseq_t cheat_scoot = CHEAT("scoot", 1);    // [STRIFE]: new cheat scoot
+cheatseq_t cheat_mus        = CHEAT("spin", 2);         // [STRIFE]: idmus -> spin
+cheatseq_t cheat_god        = CHEAT("omnipotent", 0);   // [STRIFE]: iddqd -> omnipotent
+cheatseq_t cheat_ammo       = CHEAT("idkfa", 0);        // STRIFE-TODO
+cheatseq_t cheat_ammonokey  = CHEAT("idfa", 0);         // STRIFE-TODO
+cheatseq_t cheat_noclip     = CHEAT("elvis", 0);        // [STRIFE]: idclip -> elvis
+cheatseq_t cheat_clev       = CHEAT("rift", 2);         // [STRIFE]: idclev -> rift
+cheatseq_t cheat_mypos      = CHEAT("gps", 0);          // [STRIFE]: idmypos -> gps
+cheatseq_t cheat_scoot      = CHEAT("scoot", 1);        // [STRIFE]: new cheat scoot
+cheatseq_t cheat_nuke       = CHEAT("stonecold", 0);    // [STRIFE]: new cheat stonecold
+cheatseq_t cheat_keys       = CHEAT("jimmy", 0);        // [STRIFE]: new cheat jimmy (all keys)
+cheatseq_t cheat_stealth    = CHEAT("gripper", 0);      // [STRIFE]: new cheat gripper
+cheatseq_t cheat_midas      = CHEAT("donnytrump", 0);   // [STRIFE]: new cheat
+cheatseq_t cheat_lego       = CHEAT("lego", 0);         // [STRIFE]: new cheat

 cheatseq_t	cheat_powerup[7] = // STRIFE-TODO
 {
@@ -491,6 +497,37 @@ ST_Responder (event_t* ev)

         plyr->message = DEH_String(STSTR_KFAADDED);
     }
+
+    // villsa [STRIFE]
+    else if(cht_CheckCheat(&cheat_keys, ev->data2))
+    {
+        #define FIRSTKEYSETAMOUNT   16
+
+        if(plyr->cards[FIRSTKEYSETAMOUNT - 1])
+        {
+            if(plyr->cards[NUMCARDS - 1] || isdemoversion)
+            {
+                for(i = 0; i < NUMCARDS; i++)
+                    plyr->cards[i] = false;
+
+                plyr->message = DEH_String("Keys removed");
+            }
+            else
+            {
+                for(i = 0; i < NUMCARDS; i++)
+                    plyr->cards[i] = true;
+
+                plyr->message = DEH_String("Cheater Keys Added");
+            }
+        }
+        else
+        {
+            for(i = 0; i < FIRSTKEYSETAMOUNT; i++)
+                plyr->cards[i] = true;
+
+            plyr->message = DEH_String("Cheater Keys Added");
+        }
+    }
     else if (cht_CheckCheat(&cheat_noclip, ev->data2))
     {
         // [STRIFE] Verified unmodified, except no idspispopd shit:
@@ -503,19 +540,17 @@ ST_Responder (event_t* ev)
         else
             plyr->message = DEH_String(STSTR_NCOFF);
     }
-    //
-    // STRIFE-TODO: Stealth Cheat
-    //
-    /*
-    else if (cht_CheckCheat(&cheat_stealth, ev->data2))
+
+    // villsa [STRIFE]
+    else if(cht_CheckCheat(&cheat_stealth, ev->data2))
     {
-        plyr->cheats ^= 4;
-        if(plyr->cheats & 4)
+        plyr->cheats ^= CF_NOMOMENTUM;
+        if(plyr->cheats & CF_NOMOMENTUM)
             plyr->message = DEH_String("STEALTH BOOTS ON");
         else
             plyr->message = DEH_String("STEALTH BOOTS OFF");
     }
-    */
+

     //
     // STRIFE-TODO: Fix idbehold equivalent
@@ -631,11 +666,41 @@ ST_Responder (event_t* ev)
         }
     }

-    //
-    // STRIFE-TODO:
-    // * stonecold cheat
-    // * LEGO cheat
-    //
+    // villsa [STRIFE]
+    if(cht_CheckCheat(&cheat_nuke, ev->data2))
+    {
+        stonecold ^= 1;
+        plyr->message = DEH_String("Kill 'em.  Kill 'em All");
+    }
+
+    // villsa [STRIFE]
+    if(cht_CheckCheat(&cheat_midas, ev->data2))
+    {
+        plyr->message = DEH_String("YOU GOT THE MIDAS TOUCH, BABY");
+        P_GiveItemToPlayer(plyr, SPR_HELT, MT_TOKEN_TOUGHNESS);
+    }
+
+    // villsa [STRIFE]
+    if(cht_CheckCheat(&cheat_lego, ev->data2))
+    {
+        plyr->st_update = true;
+        if(plyr->weaponowned[wp_sigil])
+        {
+            plyr->weaponowned[wp_sigil] = true;
+            if(++plyr->sigiltype > 4)
+            {
+                plyr->sigiltype = -1;
+                plyr->pendingweapon = wp_sigil;
+                plyr->weaponowned[wp_sigil] = true;
+            }
+        }
+        else
+        {
+            plyr->weaponowned[wp_sigil] = true;
+            plyr->sigiltype = -1;
+        }
+        plyr->pendingweapon = wp_sigil;
+    }

     return false;
 }