]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - sv_main.c
made some things static
[xonotic/darkplaces.git] / sv_main.c
index 019ad9d49370bd8a67609543b6c1bad2c822482a..0f798ad88f3ebf45539420fb21aea1bd713ab257 100644 (file)
--- a/sv_main.c
+++ b/sv_main.c
@@ -110,7 +110,7 @@ static void SV_SaveEntFile_f(void)
                return;
        }
        FS_StripExtension(sv.worldmodel->name, basename, sizeof(basename));
-       FS_WriteFile(va("%s.ent", basename), sv.worldmodel->brush.entities, strlen(sv.worldmodel->brush.entities));
+       FS_WriteFile(va("%s.ent", basename), sv.worldmodel->brush.entities, (fs_offset_t)strlen(sv.worldmodel->brush.entities));
 }
 
 
@@ -483,7 +483,8 @@ void SV_PrepareEntitiesForSending(void)
        for (e = 1, ent = PRVM_NEXT_EDICT(prog->edicts);e < prog->num_edicts;e++, ent = PRVM_NEXT_EDICT(ent))
        {
                sendentitiesindex[e] = NULL;
-               if (ent->priv.server->free)
+               // the 2 billion unit check is actually to detect NAN origins (we really don't want to send those)
+               if (ent->priv.server->free || VectorLength2(ent->fields.server->origin) > 2000000000.0*2000000000.0)
                        continue;
 
                cs = defaultstate;
@@ -1678,6 +1679,8 @@ void SV_SpawnServer (const char *server)
 
        memset (&sv, 0, sizeof(sv));
 
+       sv.active = true;
+
        strlcpy (sv.name, server, sizeof (sv.name));
 
        sv.protocol = Protocol_EnumForName(sv_protocolname.string);
@@ -1803,8 +1806,6 @@ void SV_SpawnServer (const char *server)
        // LordHavoc: clear world angles (to fix e3m3.bsp)
        VectorClear(prog->edicts->fields.server->angles);
 
-       sv.active = true;
-
 // all setup is completed, any further precache statements are errors
        sv.state = ss_active;
        prog->allowworldwrites = false;
@@ -1880,7 +1881,7 @@ void SV_VM_CB_InitEdict(prvm_edict_t *e)
                e->fields.server->colormap = num + 1;
                e->fields.server->team = (svs.clients[num].colors & 15) + 1;
                // set netname/clientcolors back to client values so that
-               // DP_SV_CLIENTNAME and DPV_SV_CLIENTCOLORS will not immediately
+               // DP_SV_CLIENTNAME and DP_SV_CLIENTCOLORS will not immediately
                // reset them
                e->fields.server->netname = PRVM_SetEngineString(svs.clients[num].name);
                if ((val = PRVM_GETEDICTFIELDVALUE(e, eval_clientcolors)))