]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - host_cmd.c
fix bug in wav loader that messed up loopstart, now looping sounds in
[xonotic/darkplaces.git] / host_cmd.c
index 8bb5e69a71379ccfe559275e4bfe5ad78ce496df..5e4b14764bf5bc32a94216063f3c39a9a4afb0a6 100644 (file)
@@ -20,6 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "quakedef.h"
 #include "sv_demo.h"
+#include "image.h"
 
 int current_skill;
 cvar_t sv_cheats = {0, "sv_cheats", "0", "enables cheat commands in any game, and cheat impulses in dpmod"};
@@ -29,6 +30,7 @@ cvar_t rcon_address = {0, "rcon_address", "", "server address to send rcon comma
 cvar_t team = {CVAR_USERINFO | CVAR_SAVE, "team", "none", "QW team (4 character limit, example: blue)"};
 cvar_t skin = {CVAR_USERINFO | CVAR_SAVE, "skin", "", "QW player skin name (example: base)"};
 cvar_t noaim = {CVAR_USERINFO | CVAR_SAVE, "noaim", "1", "QW option to disable vertical autoaim"};
+cvar_t r_fixtrans_auto = {0, "r_fixtrans_auto", "0", "automatically fixtrans textures (when set to 2, it also saves the fixed versions to a fixtrans directory)"};
 qboolean allowcheats = false;
 
 extern qboolean host_shuttingdown;
@@ -262,6 +264,10 @@ void Host_Map_f (void)
                return;
        }
 
+       // GAME_DELUXEQUAKE - clear warpmark (used by QC)
+       if (gamemode == GAME_DELUXEQUAKE)
+               Cvar_Set("warpmark", "");
+
        cls.demonum = -1;               // stop demo loop in case this fails
 
        CL_Disconnect ();
@@ -493,7 +499,7 @@ void Host_Savegame_f (void)
        FS_Printf(f, "%i\n", SAVEGAME_VERSION);
 
        memset(comment, 0, sizeof(comment));
-       sprintf(comment, "%-21s kills:%3i/%3i", PRVM_GetString(prog->edicts->fields.server->message), (int)prog->globals.server->killed_monsters, (int)prog->globals.server->total_monsters);
+       sprintf(comment, "%-21.21s kills:%3i/%3i", PRVM_GetString(prog->edicts->fields.server->message), (int)prog->globals.server->killed_monsters, (int)prog->globals.server->total_monsters);
        // convert space to _ to make stdio happy
        // LordHavoc: convert control characters to _ as well
        for (i=0 ; i<SAVEGAME_COMMENT_LENGTH ; i++)
@@ -559,6 +565,13 @@ void Host_Loadgame_f (void)
 
        Con_Printf("Loading game from %s...\n", filename);
 
+       // stop playing demos
+       if (cls.demoplayback)
+               CL_Disconnect ();
+
+       // remove menu
+       key_dest = key_game;
+
        cls.demonum = -1;               // stop demo loop in case this fails
 
        t = text = (char *)FS_LoadFile (filename, tempmempool, false, NULL);
@@ -1940,7 +1953,7 @@ void Host_Startdemos_f (void)
                Con_Printf("Max %i demos in demoloop\n", MAX_DEMOS);
                c = MAX_DEMOS;
        }
-       Con_Printf("%i demo(s) in loop\n", c);
+       Con_DPrintf("%i demo(s) in loop\n", c);
 
        for (i=1 ; i<c+1 ; i++)
                strlcpy (cls.demos[i-1], Cmd_Argv(i), sizeof (cls.demos[i-1]));
@@ -2336,6 +2349,8 @@ void Host_Packet_f (void) // credit: taken from QuakeWorld
        }
 
        mysocket = NetConn_ChooseClientSocketForAddress(&address);
+       if (!mysocket)
+               mysocket = NetConn_ChooseServerSocketForAddress(&address);
        if (mysocket)
                NetConn_Write(mysocket, send, out - send, &address);
 }
@@ -2496,6 +2511,9 @@ void Host_InitCommands (void)
        Cmd_AddCommand_WithClientCommand ("pings", NULL, Host_Pings_f, "command sent by clients to request updated ping and packetloss of players on scoreboard (originally from QW, but also used on NQ servers)");
        Cmd_AddCommand ("pingplreport", Host_PingPLReport_f, "command sent by server containing client ping and packet loss values for scoreboard, triggered by pings command from client (not used by QW servers)");
 
+       Cmd_AddCommand ("fixtrans", Image_FixTransparentPixels_f, "change alpha-zero pixels in an image file to sensible values, and write out a new TGA (warning: SLOW)");
+       Cvar_RegisterVariable (&r_fixtrans_auto);
+
        Cvar_RegisterVariable (&team);
        Cvar_RegisterVariable (&skin);
        Cvar_RegisterVariable (&noaim);
@@ -2504,3 +2522,6 @@ void Host_InitCommands (void)
        Cvar_RegisterVariable(&sv_adminnick);
 }
 
+void Host_NoOperation_f(void)
+{
+}