X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=host_cmd.c;h=1dec6eca1da66f36d5590bc3d6243f18aaac0009;hb=c0f7a1b5470bc222b7a1d01ca95205c1825a5c6a;hp=b34c09bcb03a71f66c44ec4a6d4eb40a0a786fd8;hpb=ccedf7b7412cf79caef57fa151bc18c1718228c7;p=xonotic%2Fdarkplaces.git diff --git a/host_cmd.c b/host_cmd.c index b34c09bc..1dec6eca 100644 --- a/host_cmd.c +++ b/host_cmd.c @@ -22,8 +22,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. int current_skill; -void Mod_Print (void); - dfunction_t *ED_FindFunction (char *name); /* @@ -32,20 +30,12 @@ Host_Quit_f ================== */ -// 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); + Host_ShutdownServer(false); Sys_Quit (); } @@ -64,7 +54,7 @@ void Host_Status_f (void) int hours = 0; int j; void (*print) (char *fmt, ...); - + if (cmd_source == src_command) { if (!sv.active) @@ -78,7 +68,7 @@ void Host_Status_f (void) print = SV_ClientPrintf; print ("host: %s\n", Cvar_VariableString ("hostname")); - print ("version: %4.2f (build %i)\n", VERSION, buildnumber); + print ("version: %s build %s\n", gamename, buildstring); if (tcpipAvailable) print ("tcp/ip: %s\n", my_tcpip_address); if (ipxAvailable) @@ -266,7 +256,7 @@ void Host_Map_f (void) cls.demonum = -1; // stop demo loop in case this fails -// SCR_BeginLoadingPlaque (); + SCR_BeginLoadingPlaque (); CL_Disconnect (); Host_ShutdownServer(false); @@ -358,7 +348,7 @@ This is sent just before a server changes levels */ void Host_Reconnect_f (void) { -// SCR_BeginLoadingPlaque (); + SCR_BeginLoadingPlaque (); cls.signon = 0; // need new connection messages } @@ -375,10 +365,7 @@ void Host_Connect_f (void) 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 (); @@ -399,7 +386,7 @@ LOAD / SAVE GAME =============== 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) @@ -464,7 +451,7 @@ void Host_Savegame_f (void) Con_Printf ("Relative pathnames are not allowed.\n"); return; } - + for (i=0 ; iv.health <= 0) ) @@ -476,7 +463,7 @@ void Host_Savegame_f (void) 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) @@ -484,7 +471,7 @@ void Host_Savegame_f (void) Con_Printf ("ERROR: couldn't open.\n"); return; } - + Qprintf (f, "%i\n", SAVEGAME_VERSION); Host_SavegameComment (comment); Qprintf (f, "%s\n", comment); @@ -516,6 +503,8 @@ void Host_Savegame_f (void) } +extern mempool_t *edictstring_mempool; + /* =============== Host_Loadgame_f @@ -533,7 +522,7 @@ void Host_Loadgame_f (void) 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; @@ -549,11 +538,6 @@ void Host_Loadgame_f (void) 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) @@ -570,10 +554,13 @@ void Host_Loadgame_f (void) Con_Printf ("Savegame is version %i, not %i\n", version, SAVEGAME_VERSION); return; } + + SCR_BeginLoadingPlaque (); + str = Qgetline (f); for (i=0 ; iactive || !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); @@ -864,7 +849,7 @@ void Host_Color_f(void) 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; } @@ -896,7 +881,6 @@ void Host_Color_f(void) 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"); @@ -955,7 +939,7 @@ void Host_Pause_f (void) Cmd_ForwardToServer (); return; } - if (!pausable.value) + if (!pausable.integer) SV_ClientPrintf ("Pause not allowed.\n"); else { @@ -1123,7 +1107,6 @@ void Host_Spawn_f (void) 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 @@ -1277,58 +1260,58 @@ void Host_Give_f (void) t = Cmd_Argv(1); v = atoi (Cmd_Argv(2)); - + switch (t[0]) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - // MED 01/04/97 added hipnotic give stuff - if (hipnotic) - { - if (t[0] == '6') - { - if (t[1] == 'a') - sv_player->v.items = (int)sv_player->v.items | HIT_PROXIMITY_GUN; - else - sv_player->v.items = (int)sv_player->v.items | IT_GRENADE_LAUNCHER; - } - else if (t[0] == '9') - sv_player->v.items = (int)sv_player->v.items | HIT_LASER_CANNON; - else if (t[0] == '0') - sv_player->v.items = (int)sv_player->v.items | HIT_MJOLNIR; - else if (t[0] >= '2') - sv_player->v.items = (int)sv_player->v.items | (IT_SHOTGUN << (t[0] - '2')); - } - else - { - if (t[0] >= '2') - sv_player->v.items = (int)sv_player->v.items | (IT_SHOTGUN << (t[0] - '2')); - } + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + // MED 01/04/97 added hipnotic give stuff + if (gamemode == GAME_HIPNOTIC) + { + if (t[0] == '6') + { + if (t[1] == 'a') + sv_player->v.items = (int)sv_player->v.items | HIT_PROXIMITY_GUN; + else + sv_player->v.items = (int)sv_player->v.items | IT_GRENADE_LAUNCHER; + } + else if (t[0] == '9') + sv_player->v.items = (int)sv_player->v.items | HIT_LASER_CANNON; + else if (t[0] == '0') + sv_player->v.items = (int)sv_player->v.items | HIT_MJOLNIR; + else if (t[0] >= '2') + sv_player->v.items = (int)sv_player->v.items | (IT_SHOTGUN << (t[0] - '2')); + } + else + { + if (t[0] >= '2') + sv_player->v.items = (int)sv_player->v.items | (IT_SHOTGUN << (t[0] - '2')); + } break; - - case 's': - if (rogue) + + case 's': + if (gamemode == GAME_ROGUE) { - if ((val = GETEDICTFIELDVALUE(sv_player, eval_ammo_shells1))) - val->_float = v; + if ((val = GETEDICTFIELDVALUE(sv_player, eval_ammo_shells1))) + val->_float = v; } - sv_player->v.ammo_shells = v; - break; - case 'n': - if (rogue) + sv_player->v.ammo_shells = v; + break; + case 'n': + if (gamemode == GAME_ROGUE) { - if ((val = GETEDICTFIELDVALUE(sv_player, eval_ammo_nails1))) + if ((val = GETEDICTFIELDVALUE(sv_player, eval_ammo_nails1))) { - val->_float = v; + val->_float = v; if (sv_player->v.weapon <= IT_LIGHTNING) sv_player->v.ammo_nails = v; } @@ -1337,9 +1320,9 @@ void Host_Give_f (void) { sv_player->v.ammo_nails = v; } - break; - case 'l': - if (rogue) + break; + case 'l': + if (gamemode == GAME_ROGUE) { val = GETEDICTFIELDVALUE(sv_player, eval_ammo_lava_nails); if (val) @@ -1349,9 +1332,9 @@ void Host_Give_f (void) sv_player->v.ammo_nails = v; } } - break; - case 'r': - if (rogue) + break; + case 'r': + if (gamemode == GAME_ROGUE) { val = GETEDICTFIELDVALUE(sv_player, eval_ammo_rockets1); if (val) @@ -1365,9 +1348,9 @@ void Host_Give_f (void) { sv_player->v.ammo_rockets = v; } - break; - case 'm': - if (rogue) + break; + case 'm': + if (gamemode == GAME_ROGUE) { val = GETEDICTFIELDVALUE(sv_player, eval_ammo_multi_rockets); if (val) @@ -1377,12 +1360,12 @@ void Host_Give_f (void) sv_player->v.ammo_rockets = v; } } - break; - case 'h': - sv_player->v.health = v; - break; - case 'c': - if (rogue) + break; + case 'h': + sv_player->v.health = v; + break; + case 'c': + if (gamemode == GAME_ROGUE) { val = GETEDICTFIELDVALUE(sv_player, eval_ammo_cells1); if (val) @@ -1396,9 +1379,9 @@ void Host_Give_f (void) { sv_player->v.ammo_cells = v; } - break; - case 'p': - if (rogue) + break; + case 'p': + if (gamemode == GAME_ROGUE) { val = GETEDICTFIELDVALUE(sv_player, eval_ammo_plasma); if (val) @@ -1408,15 +1391,15 @@ void Host_Give_f (void) sv_player->v.ammo_cells = v; } } - break; - } + break; + } } edict_t *FindViewthing (void) { int i; edict_t *e; - + for (i=0 ; iofs_scenes && data) - 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); } @@ -1603,11 +1584,8 @@ Return to looping demos */ void Host_Stopdemo_f (void) { - if (cls.state == ca_dedicated) - return; if (!cls.demoplayback) return; - CL_StopPlayback (); CL_Disconnect (); } @@ -1622,7 +1600,7 @@ void Host_InitCommands (void) { Cmd_AddCommand ("status", Host_Status_f); Cmd_AddCommand ("quit", Host_Quit_f); - if (nehahra) + if (gamemode == GAME_NEHAHRA) { Cmd_AddCommand ("max", Host_God_f); Cmd_AddCommand ("monster", Host_Notarget_f); @@ -1667,6 +1645,5 @@ void Host_InitCommands (void) Cmd_AddCommand ("viewframe", Host_Viewframe_f); Cmd_AddCommand ("viewnext", Host_Viewnext_f); Cmd_AddCommand ("viewprev", Host_Viewprev_f); - - Cmd_AddCommand ("mcache", Mod_Print); } +