]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/cheats.qc
clean up some cvar uses
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / cheats.qc
index 90f4b234eb8fc07173ef73884a906088803477eb..1bb39dfe0195dc71f9eeb43966db00cbe1fe6f66 100644 (file)
@@ -14,8 +14,7 @@ void Drag_MoveDrag(entity from, entity to) { }
 #else
 
 .float maycheat;
-float sv_cheats;
-float autocvar_sv_cheats;
+float gamestart_sv_cheats;
 
 #define CHIMPULSE_SPEEDRUN_INIT 30
 #define CHIMPULSE_GIVE_ALL 99
@@ -29,7 +28,7 @@ float autocvar_sv_cheats;
 
 void CheatInit()
 {
-       sv_cheats = cvar("sv_cheats");
+       gamestart_sv_cheats = cvar("sv_cheats");
 }
 
 void CheatShutdown()
@@ -62,7 +61,7 @@ float CheatsAllowed(float i, float argc, float fr) // the cheat gets passed as a
                return 1;
        
        // sv_cheats
-       if(sv_cheats && autocvar_sv_cheats)
+       if(gamestart_sv_cheats && autocvar_sv_cheats)
                return 1;
 
        // if we get here, player is not allowed to cheat. Log it.
@@ -216,7 +215,7 @@ float CheatImpulse(float i)
                        break;
                case CHIMPULSE_TELEPORT:
                        IS_CHEAT(i, 0, 0);
-                       if(MoveToRandomMapLocation(self, DPCONTENTS_SOLID | DPCONTENTS_CORPSE | DPCONTENTS_PLAYERCLIP, DPCONTENTS_SLIME | DPCONTENTS_LAVA | DPCONTENTS_SKY | DPCONTENTS_BODY | DPCONTENTS_DONOTENTER, Q3SURFACEFLAG_SKY, ((sv_cheats >= 2) ? 100000 : 100), 1024, 256))
+                       if(MoveToRandomMapLocation(self, DPCONTENTS_SOLID | DPCONTENTS_CORPSE | DPCONTENTS_PLAYERCLIP, DPCONTENTS_SLIME | DPCONTENTS_LAVA | DPCONTENTS_SKY | DPCONTENTS_BODY | DPCONTENTS_DONOTENTER, Q3SURFACEFLAG_SKY, ((gamestart_sv_cheats >= 2) ? 100000 : 100), 1024, 256))
                        {
                                self.angles_x = -self.angles_x;
                                self.fixangle = TRUE;
@@ -230,11 +229,8 @@ float CheatImpulse(float i)
                        IS_CHEAT(i, 0, 0);
                        FOR_EACH_PLAYER(e)
                        {
-                               if( e.playermodel == "models/player/jeandarc.zym"
-                                               ||  e.playermodel == "models/player/pyria.zym"
-                                               ||  e.playermodel == "models/player/skadi.zym"
-                                               || (e.playermodel == "models/player/specop.zym" && random() < 0.5) // you never know
-                                               ||  e.playermodel == "models/player/visitant.zym")
+                               get_model_parameters(e.playermodel, e.skinindex);
+                               if(get_model_parameters_sex == "Female")
                                {
                                        makevectors(e.angles);
                                        traceline(e.origin, e.origin + v_right * 256, MOVE_NORMAL, e);
@@ -307,7 +303,7 @@ float CheatCommand(float argc)
                                // arguments:
                                //   effectname
                                effectnum = particleeffectnum(argv(1));
-                               W_SetupShot(self, FALSE, FALSE, "",0);
+                               W_SetupShot(self, FALSE, FALSE, "", CHAN_WEAPON, 0);
                                traceline(w_shotorg, w_shotorg + w_shotdir * MAX_SHOT_DISTANCE, MOVE_NORMAL, self);
                                trailparticles(self, effectnum, w_shotorg, trace_endpos);
                                DID_CHEAT();
@@ -322,7 +318,7 @@ float CheatCommand(float argc)
                                // arguments:
                                //   modelname mode
                                f = stof(argv(2));
-                               W_SetupShot(self, FALSE, FALSE, "", 0);
+                               W_SetupShot(self, FALSE, FALSE, "", CHAN_WEAPON, 0);
                                traceline(w_shotorg, w_shotorg + w_shotdir * 2048, MOVE_NORMAL, self);
                                if((trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT) || trace_fraction == 1)
                                {
@@ -657,7 +653,7 @@ float CheatCommand(float argc)
                        if(self.movetype != MOVETYPE_FLY)
                        {
                                self.movetype = MOVETYPE_FLY;
-                               sprint(self, "flmodey ON\n");
+                               sprint(self, "flymode ON\n");
                                DID_CHEAT();
                        }
                        else
@@ -676,6 +672,7 @@ float CheatCommand(float argc)
        END_CHEAT_FUNCTION();
 }
 
+void crosshair_trace_plusvisibletriggers(entity pl);
 void Drag_Begin(entity dragger, entity draggee, vector touchpoint);
 void Drag_Finish(entity dragger);
 float Drag_IsDraggable(entity draggee);
@@ -729,7 +726,7 @@ float CheatFrame()
                if(Drag_CanDrag(self))
                        if(self.BUTTON_DRAG)
                        {
-                               crosshair_trace(self);
+                               crosshair_trace_plusvisibletriggers(self);
                                if(trace_ent)
                                        if(Drag_IsDraggable(trace_ent))
                                                switch(0)
@@ -756,6 +753,22 @@ float CheatFrame()
 
 // ENTITY DRAGGING
 
+void crosshair_trace_plusvisibletriggers(entity pl)
+{
+       entity first;
+       entity e;
+       first = findchainfloat(solid, SOLID_TRIGGER);
+
+       for (e = first; e; e = e.chain)
+               if (e.model != "")
+                       e.solid = SOLID_BSP;
+
+       crosshair_trace(pl);
+
+       for (e = first; e; e = e.chain)
+               e.solid = SOLID_TRIGGER;
+}
+
 // on dragger:
 .float draggravity;
 .float dragspeed; // speed of mouse wheel action
@@ -832,14 +845,16 @@ float Drag_IsDraggable(entity draggee)
                return FALSE;
        if(draggee.classname == "func_button")
                return FALSE;
-       if(draggee.model == "")
-               return FALSE;
+//     if(draggee.model == "")
+//             return FALSE;
        if(draggee.classname == "spectator")
                return FALSE;
        if(draggee.classname == "observer")
                return FALSE;
        if(draggee.classname == "exteriorweaponentity")
                return FALSE;
+       if(draggee.classname == "weaponentity")
+               return FALSE;
 
        return TRUE;
 }