int current_skill;
-void Mod_Print (void);
-
dfunction_t *ED_FindFunction (char *name);
/*
==================
*/
-// LordHavoc: didn't like it asking me if I wanted to quit
-//extern void M_Menu_Quit_f (void);
-
+extern qboolean host_shuttingdown;
void Host_Quit_f (void)
{
- /*
- if (key_dest != key_console && cls.state != ca_dedicated)
- {
- M_Menu_Quit_f ();
- return;
- }
- */
+ host_shuttingdown = true;
CL_Disconnect ();
Host_ShutdownServer(false);
print = SV_ClientPrintf;
print ("host: %s\n", Cvar_VariableString ("hostname"));
- print ("version: %s build %i\n", gamename, buildnumber);
+ print ("version: %s build %s\n", gamename, buildstring);
if (tcpipAvailable)
print ("tcp/ip: %s\n", my_tcpip_address);
if (ipxAvailable)
cls.demonum = -1; // stop demo loop in case this fails
-// SCR_BeginLoadingPlaque ();
+ SCR_BeginLoadingPlaque ();
CL_Disconnect ();
Host_ShutdownServer(false);
*/
void Host_Reconnect_f (void)
{
-// SCR_BeginLoadingPlaque ();
+ SCR_BeginLoadingPlaque ();
cls.signon = 0; // need new connection messages
}
cls.demonum = -1; // stop demo loop in case this fails
if (cls.demoplayback)
- {
- CL_StopPlayback ();
CL_Disconnect ();
- }
strcpy (name, Cmd_Argv(1));
CL_EstablishConnection (name);
Host_Reconnect_f ();
===============
Host_SavegameComment
-Writes a SAVEGAME_COMMENT_LENGTH character comment describing the current
+Writes a SAVEGAME_COMMENT_LENGTH character comment describing the current
===============
*/
void Host_SavegameComment (char *text)
Con_Printf ("Relative pathnames are not allowed.\n");
return;
}
-
+
for (i=0 ; i<svs.maxclients ; i++)
{
if (svs.clients[i].active && (svs.clients[i].edict->v.health <= 0) )
sprintf (name, "%s/%s", com_gamedir, Cmd_Argv(1));
COM_DefaultExtension (name, ".sav");
-
+
Con_Printf ("Saving game to %s...\n", name);
f = Qopen (name, "w");
if (!f)
Con_Printf ("ERROR: couldn't open.\n");
return;
}
-
+
Qprintf (f, "%i\n", SAVEGAME_VERSION);
Host_SavegameComment (comment);
Qprintf (f, "%s\n", comment);
}
+extern mempool_t *edictstring_mempool;
+
/*
===============
Host_Loadgame_f
edict_t *ent;
int entnum;
int version;
- float spawn_parms[NUM_SPAWN_PARMS];
+ float spawn_parms[NUM_SPAWN_PARMS];
if (cmd_source != src_command)
return;
sprintf (name, "%s/%s", com_gamedir, Cmd_Argv(1));
COM_DefaultExtension (name, ".sav");
- // LordHavoc: made SCR_UpdateScreen use a great deal less stack space, no longer an issue
- //// we can't call SCR_BeginLoadingPlaque, because too much stack space has
- //// been used. The menu calls it before stuffing loadgame command
-// SCR_BeginLoadingPlaque ();
-
Con_Printf ("Loading game from %s...\n", name);
f = Qopen (name, "rz");
if (!f)
Con_Printf ("Savegame is version %i, not %i\n", version, SAVEGAME_VERSION);
return;
}
+
+ SCR_BeginLoadingPlaque ();
+
str = Qgetline (f);
for (i=0 ; i<NUM_SPAWN_PARMS ; i++) {
str = Qgetline (f);
sscanf (str, "%f\n",&time);
CL_Disconnect_f ();
-
+
SV_SpawnServer (mapname);
if (!sv.active)
{
for (i=0 ; i<MAX_LIGHTSTYLES ; i++)
{
str = Qgetline (f);
- sv.lightstyles[i] = Hunk_AllocName (strlen(str)+1, "lightstyles");
+ sv.lightstyles[i] = Mem_Alloc(edictstring_mempool, strlen(str)+1);
strcpy (sv.lightstyles[i], str);
}
*/
void Host_Name_f (void)
{
- char *newName;
+ char newName[64];
if (Cmd_Argc () == 1)
{
Con_Printf ("\"name\" is \"%s\"\n", cl_name.string);
return;
}
+
if (Cmd_Argc () == 2)
- newName = Cmd_Argv(1);
+ strncpy(newName, Cmd_Argv(1), 15);
else
- newName = Cmd_Args();
+ strncpy(newName, Cmd_Args(), 15);
newName[15] = 0;
if (cmd_source == src_command)
void Host_Version_f (void)
{
- Con_Printf ("Version: %s build %i\n", gamename, buildnumber);
- Con_Printf ("Exe: "__TIME__" "__DATE__"\n");
+ Con_Printf ("Version: %s build %s\n", gamename, buildstring);
}
void Host_Say(qboolean teamonly)
{
if (!client || !client->active || !client->spawned)
continue;
- if (teamplay.value && teamonly && client->edict->v.team != save->edict->v.team)
+ if (teamplay.integer && teamonly && client->edict->v.team != save->edict->v.team)
continue;
host_client = client;
SV_ClientPrintf("%s", text);
if (Cmd_Argc() == 1)
{
- Con_Printf ("\"color\" is \"%i %i\"\n", ((int)cl_color.value) >> 4, ((int)cl_color.value) & 0x0f);
+ Con_Printf ("\"color\" is \"%i %i\"\n", cl_color.integer >> 4, cl_color.integer & 15);
Con_Printf ("color <0-13> [0-13]\n");
return;
}
return;
}
- // void(float color) SV_ChangeTeam;
if ((f = ED_FindFunction ("SV_ChangeTeam")) && (SV_ChangeTeam = (func_t)(f - pr_functions)))
{
Con_DPrintf("Calling SV_ChangeTeam\n");
Cmd_ForwardToServer ();
return;
}
- if (!pausable.value)
+ if (!pausable.integer)
SV_ClientPrintf ("Pause not allowed.\n");
else
{
MSG_WriteByte (&host_client->message, STAT_MONSTERS);
MSG_WriteLong (&host_client->message, pr_global_struct->killed_monsters);
-//
// send a fixangle
// Never send a roll angle, because savegames can catch the server
// in a state where it is expecting the client to correct the angle
if (!e)
return;
- m = Mod_ForName (Cmd_Argv(1), false);
+ m = Mod_ForName (Cmd_Argv(1), false, true, false);
if (!m)
{
Con_Printf ("Can't load %s\n", Cmd_Argv(1));
void PrintFrameName (model_t *m, int frame)
{
- int data;
- if (m->ofs_scenes && (data = (int) Mod_Extradata(m)))
- Con_Printf("frame %i: %s\n", frame, ((animscene_t *) (m->ofs_scenes + data))[frame].name);
+ if (m->animscenes)
+ Con_Printf("frame %i: %s\n", frame, m->animscenes[frame].name);
else
Con_Printf("frame %i\n", frame);
}
*/
void Host_Stopdemo_f (void)
{
- if (cls.state == ca_dedicated)
- return;
if (!cls.demoplayback)
return;
- CL_StopPlayback ();
CL_Disconnect ();
}
Cmd_AddCommand ("viewframe", Host_Viewframe_f);
Cmd_AddCommand ("viewnext", Host_Viewnext_f);
Cmd_AddCommand ("viewprev", Host_Viewprev_f);
-
- Cmd_AddCommand ("mcache", Mod_Print);
}
+