]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - host_cmd.c
lighthalf related transpoly cleanup
[xonotic/darkplaces.git] / host_cmd.c
index 97372b39ed0624ebd1f6c7275969cb4336a9b543..c08e92125405bcbb31a682cc5b70a47858a8d28f 100644 (file)
@@ -26,21 +26,26 @@ int current_skill;
 
 void Mod_Print (void);
 
+dfunction_t *ED_FindFunction (char *name);
+
 /*
 ==================
 Host_Quit_f
 ==================
 */
 
-extern void M_Menu_Quit_f (void);
+// LordHavoc: didn't like it asking me if I wanted to quit
+//extern void M_Menu_Quit_f (void);
 
 void Host_Quit_f (void)
 {
+       /*
        if (key_dest != key_console && cls.state != ca_dedicated)
        {
                M_Menu_Quit_f ();
                return;
        }
+       */
        CL_Disconnect ();
        Host_ShutdownServer(false);             
 
@@ -118,7 +123,7 @@ void Host_God_f (void)
                return;
        }
 
-       if (pr_global_struct->deathmatch && !host_client->privileged)
+       if (pr_global_struct->deathmatch)
                return;
 
        sv_player->v.flags = (int)sv_player->v.flags ^ FL_GODMODE;
@@ -136,7 +141,7 @@ void Host_Notarget_f (void)
                return;
        }
 
-       if (pr_global_struct->deathmatch && !host_client->privileged)
+       if (pr_global_struct->deathmatch)
                return;
 
        sv_player->v.flags = (int)sv_player->v.flags ^ FL_NOTARGET;
@@ -156,7 +161,7 @@ void Host_Noclip_f (void)
                return;
        }
 
-       if (pr_global_struct->deathmatch && !host_client->privileged)
+       if (pr_global_struct->deathmatch)
                return;
 
        if (sv_player->v.movetype != MOVETYPE_NOCLIP)
@@ -188,7 +193,7 @@ void Host_Fly_f (void)
                return;
        }
 
-       if (pr_global_struct->deathmatch && !host_client->privileged)
+       if (pr_global_struct->deathmatch)
                return;
 
        if (sv_player->v.movetype != MOVETYPE_FLY)
@@ -707,59 +712,6 @@ void Host_Version_f (void)
        Con_Printf ("Exe: "__TIME__" "__DATE__"\n");
 }
 
-#ifdef IDGODS
-void Host_Please_f (void)
-{
-       client_t *cl;
-       int                     j;
-       
-       if (cmd_source != src_command)
-               return;
-
-       if ((Cmd_Argc () == 3) && strcmp(Cmd_Argv(1), "#") == 0)
-       {
-               j = atof(Cmd_Argv(2)) - 1;
-               if (j < 0 || j >= svs.maxclients)
-                       return;
-               if (!svs.clients[j].active)
-                       return;
-               cl = &svs.clients[j];
-               if (cl->privileged)
-               {
-                       cl->privileged = false;
-                       cl->edict->v.flags = (int)cl->edict->v.flags & ~(FL_GODMODE|FL_NOTARGET);
-                       cl->edict->v.movetype = MOVETYPE_WALK;
-                       noclip_anglehack = false;
-               }
-               else
-                       cl->privileged = true;
-       }
-
-       if (Cmd_Argc () != 2)
-               return;
-
-       for (j=0, cl = svs.clients ; j<svs.maxclients ; j++, cl++)
-       {
-               if (!cl->active)
-                       continue;
-               if (strcasecmp(cl->name, Cmd_Argv(1)) == 0)
-               {
-                       if (cl->privileged)
-                       {
-                               cl->privileged = false;
-                               cl->edict->v.flags = (int)cl->edict->v.flags & ~(FL_GODMODE|FL_NOTARGET);
-                               cl->edict->v.movetype = MOVETYPE_WALK;
-                               noclip_anglehack = false;
-                       }
-                       else
-                               cl->privileged = true;
-                       break;
-               }
-       }
-}
-#endif
-
-
 void Host_Say(qboolean teamonly)
 {
        client_t *client;
@@ -898,6 +850,8 @@ void Host_Color_f(void)
 {
        int             top, bottom;
        int             playercolor;
+       dfunction_t *f;
+       func_t  SV_ChangeTeam;
        
        if (Cmd_Argc() == 1)
        {
@@ -933,13 +887,25 @@ void Host_Color_f(void)
                return;
        }
 
-       host_client->colors = playercolor;
-       host_client->edict->v.team = bottom + 1;
+       // void(float color) SV_ChangeTeam;
+       if ((f = ED_FindFunction ("SV_ChangeTeam")) && (SV_ChangeTeam = (func_t)(f - pr_functions)))
+       {
+               Con_DPrintf("Calling SV_ChangeTeam\n");
+               pr_global_struct->time = sv.time;
+               pr_globals[0] = playercolor;
+               pr_global_struct->self = EDICT_TO_PROG(host_client->edict);
+               PR_ExecuteProgram (SV_ChangeTeam);
+       }
+       else
+       {
+               host_client->colors = playercolor;
+               host_client->edict->v.team = bottom + 1;
 
-// send notification to all clients
-       MSG_WriteByte (&sv.reliable_datagram, svc_updatecolors);
-       MSG_WriteByte (&sv.reliable_datagram, host_client - svs.clients);
-       MSG_WriteByte (&sv.reliable_datagram, host_client->colors);
+               // send notification to all clients
+               MSG_WriteByte (&sv.reliable_datagram, svc_updatecolors);
+               MSG_WriteByte (&sv.reliable_datagram, host_client - svs.clients);
+               MSG_WriteByte (&sv.reliable_datagram, host_client->colors);
+       }
 }
 
 /*
@@ -1029,8 +995,6 @@ void Host_PreSpawn_f (void)
        host_client->sendsignon = true;
 }
 
-dfunction_t *ED_FindFunction (char *name);
-
 /*
 ==================
 Host_Spawn_f
@@ -1056,14 +1020,18 @@ void Host_Spawn_f (void)
                return;
        }
 
+       // LordHavoc: moved this above the QC calls at FrikaC's request
+// send all current names, colors, and frag counts
+       SZ_Clear (&host_client->message);
+
 // run the entrance script
        if (sv.loadgame)
        {       // loaded games are fully inited allready
                // if this is the last client to be connected, unpause
                sv.paused = false;
 
-               if (f = ED_FindFunction ("RestoreGame"))
-               if (RestoreGame = (func_t)(f - pr_functions))
+               if ((f = ED_FindFunction ("RestoreGame")))
+               if ((RestoreGame = (func_t)(f - pr_functions)))
                {
                        Con_DPrintf("Calling RestoreGame\n");
                        pr_global_struct->time = sv.time;
@@ -1081,7 +1049,7 @@ void Host_Spawn_f (void)
                ent->v.colormap = NUM_FOR_EDICT(ent);
                ent->v.team = (host_client->colors & 15) + 1;
                ent->v.netname = host_client->name - pr_strings;
-               if (val = GETEDICTFIELDVALUE(host_client->edict, eval_pmodel))
+               if ((val = GETEDICTFIELDVALUE(host_client->edict, eval_pmodel)))
                        val->_float = host_client->pmodel;
 
                // copy spawn parms out of the client_t
@@ -1102,9 +1070,6 @@ void Host_Spawn_f (void)
        }
 
 
-// send all current names, colors, and frag counts
-       SZ_Clear (&host_client->message);
-
 // send time of update
        MSG_WriteByte (&host_client->message, svc_time);
        MSG_WriteFloat (&host_client->message, sv.time);
@@ -1210,7 +1175,7 @@ void Host_Kick_f (void)
                        return;
                }
        }
-       else if (pr_global_struct->deathmatch && !host_client->privileged)
+       else if (pr_global_struct->deathmatch)
                return;
 
        save = host_client;
@@ -1298,7 +1263,7 @@ void Host_Give_f (void)
                return;
        }
 
-       if (pr_global_struct->deathmatch && !host_client->privileged)
+       if (pr_global_struct->deathmatch)
                return;
 
        t = Cmd_Argv(1);
@@ -1343,7 +1308,7 @@ void Host_Give_f (void)
     case 's':
                if (rogue)
                {
-                   if (val = GETEDICTFIELDVALUE(sv_player, eval_ammo_shells1))
+                   if ((val = GETEDICTFIELDVALUE(sv_player, eval_ammo_shells1)))
                            val->_float = v;
                }
 
@@ -1352,7 +1317,7 @@ void Host_Give_f (void)
     case 'n':
                if (rogue)
                {
-                   if (val = GETEDICTFIELDVALUE(sv_player, eval_ammo_nails1))
+                   if ((val = GETEDICTFIELDVALUE(sv_player, eval_ammo_nails1)))
                        {
                            val->_float = v;
                                if (sv_player->v.weapon <= IT_LIGHTNING)
@@ -1674,9 +1639,6 @@ void Host_InitCommands (void)
        Cmd_AddCommand ("reconnect", Host_Reconnect_f);
        Cmd_AddCommand ("name", Host_Name_f);
        Cmd_AddCommand ("version", Host_Version_f);
-#ifdef IDGODS
-       Cmd_AddCommand ("please", Host_Please_f);
-#endif
        Cmd_AddCommand ("say", Host_Say_f);
        Cmd_AddCommand ("say_team", Host_Say_Team_f);
        Cmd_AddCommand ("tell", Host_Tell_f);