]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_main.c
TE_EXPLOSION2: don't crash on colorLength == 0.
[xonotic/darkplaces.git] / cl_main.c
index d50d4dd67d9fb3f62d6bb887018d82002e6de059..51a02ffb7b62ed9a71b159b272c90f36e66d3a43 100644 (file)
--- a/cl_main.c
+++ b/cl_main.c
@@ -171,7 +171,7 @@ void CL_ClearState(void)
                cl.entities[i].state_current = defaultstate;
        }
 
-       if (gamemode == GAME_NEXUIZ || gamemode == GAME_XONOTIC)
+       if (IS_NEXUIZ_DERIVED(gamemode))
        {
                VectorSet(cl.playerstandmins, -16, -16, -24);
                VectorSet(cl.playerstandmaxs, 16, 16, 45);
@@ -428,7 +428,9 @@ void CL_EstablishConnection(const char *host, int firstarg)
                return;
 
        // clear menu's connect error message
+#ifdef CONFIG_MENU
        M_Update_Return_Reason("");
+#endif
        cls.demonum = -1;
 
        // stop demo loop in case this fails
@@ -462,12 +464,16 @@ void CL_EstablishConnection(const char *host, int firstarg)
                        *cls.connect_userinfo = 0;
                }
 
+#ifdef CONFIG_MENU
                M_Update_Return_Reason("Trying to connect...");
+#endif
        }
        else
        {
                Con_Print("Unable to find a suitable network socket to connect to server.\n");
+#ifdef CONFIG_MENU
                M_Update_Return_Reason("No network");
+#endif
        }
 }
 
@@ -1212,7 +1218,7 @@ static void CL_UpdateNetworkEntityTrail(entity_t *e)
        {
                if (e->render.effects & EF_BRIGHTFIELD)
                {
-                       if (gamemode == GAME_NEXUIZ || gamemode == GAME_XONOTIC)
+                       if (IS_NEXUIZ_DERIVED(gamemode))
                                trailtype = EFFECT_TR_NEXUIZPLASMA;
                        else
                                CL_EntityParticles(e);
@@ -1439,7 +1445,7 @@ static void CL_LinkNetworkEntity(entity_t *e)
        {
                if (e->render.effects & EF_BRIGHTFIELD)
                {
-                       if (gamemode == GAME_NEXUIZ || gamemode == GAME_XONOTIC)
+                       if (IS_NEXUIZ_DERIVED(gamemode))
                                trailtype = EFFECT_TR_NEXUIZPLASMA;
                }
                if (e->render.effects & EF_DIMLIGHT)
@@ -1484,7 +1490,7 @@ static void CL_LinkNetworkEntity(entity_t *e)
                trace_t trace;
                matrix4x4_t tempmatrix;
                Matrix4x4_Transform(&e->render.matrix, muzzleflashorigin, v2);
-               trace = CL_TraceLine(origin, v2, MOVE_NOMONSTERS, NULL, SUPERCONTENTS_SOLID | SUPERCONTENTS_SKY, true, false, NULL, false, false);
+               trace = CL_TraceLine(origin, v2, MOVE_NOMONSTERS, NULL, SUPERCONTENTS_SOLID | SUPERCONTENTS_SKY, collision_extendmovelength.value, true, false, NULL, false, false);
                Matrix4x4_Normalize(&tempmatrix, &e->render.matrix);
                Matrix4x4_SetOrigin(&tempmatrix, trace.endpos[0], trace.endpos[1], trace.endpos[2]);
                Matrix4x4_Scale(&tempmatrix, 150, 1);
@@ -1580,6 +1586,10 @@ static void CL_RelinkWorld(void)
        CL_UpdateRenderEntity(&ent->render);
        r_refdef.scene.worldentity = &ent->render;
        r_refdef.scene.worldmodel = cl.worldmodel;
+
+       // if the world is q2bsp, animate the textures
+       if (ent->render.model && ent->render.model->brush.isq2bsp)
+               ent->render.framegroupblend[0].frame = (int)(cl.time * 2.0f);
 }
 
 static void CL_RelinkStaticEntities(void)
@@ -2103,7 +2113,7 @@ static void CL_Locs_AddNode(vec3_t mins, vec3_t maxs, const char *name)
        int namelen;
        if (!name)
                name = "";
-       namelen = strlen(name);
+       namelen = (int)strlen(name);
        node = (cl_locnode_t *) Mem_Alloc(cls.levelmempool, sizeof(cl_locnode_t) + namelen + 1);
        VectorSet(node->mins, min(mins[0], maxs[0]), min(mins[1], maxs[1]), min(mins[2], maxs[2]));
        VectorSet(node->maxs, max(mins[0], maxs[0]), max(mins[1], maxs[1]), max(mins[2], maxs[2]));