]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/cheats.qc
Merge branch 'master' into terencehill/screenshot_viewer
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / cheats.qc
index e7154b7f52f17617b9a79c7560aba4e551f99161..2f6a660cb203f4debee868d307f05fd4c018e4d4 100644 (file)
@@ -92,9 +92,32 @@ float CheatsAllowed(float i, float argc, float fr) // the cheat gets passed as a
        if((++attempting, !CheatsAllowed(i,argc,fr))) \
                break
 
+float num_autoscreenshot;
+void info_autoscreenshot_findtarget()
+{
+       entity e;
+       e = find(world, targetname, self.target);
+       if(!e)
+       {
+               objerror("Missing target. FAIL!");
+               return;
+       }
+       vector a = vectoangles(e.origin - self.origin);
+       a_x = -a_x; // don't ask
+       self.angles_x = a_x;
+       self.angles_y = a_y;
+       // we leave Rick Roll alone
+}
 void spawnfunc_info_autoscreenshot()
 {
-       // empty spawnfunc just so this entity can exist
+       if(++num_autoscreenshot > autocvar_g_max_info_autoscreenshot)
+       {
+               objerror("Too many info_autoscreenshot entitites. FAIL!");
+               return;
+       }
+       if(self.target != "")
+               InitializeEntity(self, info_autoscreenshot_findtarget, INITPRIO_FINDTARGET);
+       // this one just has to exist
 }
 
 float CheatImpulse(float i)
@@ -122,7 +145,7 @@ float CheatImpulse(float i)
                        self.personal.ammo_fuel = self.ammo_fuel;
                        self.personal.health = self.health;
                        self.personal.armorvalue = self.armorvalue;
-                       self.personal.weapons = self.weapons;
+                       WEPSET_COPY_EE(self.personal, self);
                        self.personal.items = self.items;
                        self.personal.pauserotarmor_finished = self.pauserotarmor_finished;
                        self.personal.pauserothealth_finished = self.pauserothealth_finished;
@@ -183,7 +206,7 @@ float CheatImpulse(float i)
                                        self.ammo_fuel = 999;
                                        self.health = start_health;
                                        self.armorvalue = start_armorvalue;
-                                       self.weapons |= weaponsInMap;
+                                       WEPSET_OR_EA(self.personal, weaponsInMap);
                                        self.pauserotarmor_finished = time + autocvar_g_balance_pause_armor_rot_spawn;
                                        self.pauserothealth_finished = time + autocvar_g_balance_pause_health_rot_spawn;
                                        self.pauserotfuel_finished = time + autocvar_g_balance_pause_fuel_rot_spawn;
@@ -200,7 +223,7 @@ float CheatImpulse(float i)
                                        self.ammo_fuel = self.personal.ammo_fuel;
                                        self.health = self.personal.health;
                                        self.armorvalue = self.personal.armorvalue;
-                                       self.weapons = self.personal.weapons;
+                                       WEPSET_COPY_EE(self, self.personal);
                                        self.items = self.personal.items;
                                        self.pauserotarmor_finished = time + self.personal.pauserotarmor_finished - self.personal.teleport_time;
                                        self.pauserothealth_finished = time + self.personal.pauserothealth_finished - self.personal.teleport_time;
@@ -726,6 +749,7 @@ float CheatFrame()
 
                                float drag;
                                crosshair_trace_plusvisibletriggers(self);
+                               drag = FALSE;
                                if(vlen(self.origin - trace_ent.origin) <= autocvar_g_grab_range)
                                {
                                        switch(trace_ent.grab)