]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_parse.c
renamed r_shadow_cursor cvars to actually have the word cursor in their name like...
[xonotic/darkplaces.git] / cl_parse.c
index d7432e0c772d56c74c4d967dab562b6c4c629418..43b82068ba0fb1757cbefcf1966b03ed8457f809 100644 (file)
@@ -99,8 +99,6 @@ char *svc_strings[128] =
 cvar_t demo_nehahra = {0, "demo_nehahra", "0"};
 cvar_t developer_networkentities = {0, "developer_networkentities", "0"};
 
-mempool_t *cl_scores_mempool;
-
 /*
 ==================
 CL_ParseStartSoundPacket
@@ -144,14 +142,19 @@ void CL_ParseStartSoundPacket(int largesoundindex)
        else
                sound_num = MSG_ReadByte ();
 
-       if (sound_num >= MAX_SOUNDS)
-               Host_Error("CL_ParseStartSoundPacket: sound_num (%i) >= MAX_SOUNDS (%i)\n", sound_num, MAX_SOUNDS);
+       MSG_ReadVector(pos, cl.protocol);
 
+       if (sound_num >= MAX_SOUNDS)
+       {
+               Con_Printf("CL_ParseStartSoundPacket: sound_num (%i) >= MAX_SOUNDS (%i)\n", sound_num, MAX_SOUNDS);
+               return;
+       }
 
        if (ent >= MAX_EDICTS)
-               Host_Error ("CL_ParseStartSoundPacket: ent = %i", ent);
-
-       MSG_ReadVector(pos, cl.protocol);
+       {
+               Con_Printf("CL_ParseStartSoundPacket: ent = %i", ent);
+               return;
+       }
 
        S_StartSound (ent, channel, cl.sound_precache[sound_num], pos, volume/255.0f, attenuation);
 }
@@ -332,6 +335,7 @@ void CL_ParseServerInfo (void)
        entity_t *ent;
 
        Con_DPrint("Serverinfo packet received.\n");
+
 //
 // wipe the client_state_t struct
 //
@@ -357,8 +361,7 @@ void CL_ParseServerInfo (void)
                Host_Error("Bad maxclients (%u) from server\n", cl.maxclients);
                return;
        }
-       Mem_EmptyPool(cl_scores_mempool);
-       cl.scores = Mem_Alloc(cl_scores_mempool, cl.maxclients*sizeof(*cl.scores));
+       cl.scores = Mem_Alloc(cl_mempool, cl.maxclients*sizeof(*cl.scores));
 
 // parse gametype
        cl.gametype = MSG_ReadByte ();
@@ -870,6 +873,9 @@ void CL_ParseBeam (model_t *m, int lightning)
                ent = 0;
        }
 
+       if (ent >= cl_max_entities)
+               CL_ExpandEntities(ent);
+
        // override any beam with the same entity
        for (i = 0, b = cl_beams;i < cl_max_beams;i++, b++)
        {
@@ -1257,8 +1263,8 @@ void CL_ParseTempEntity(void)
        case TE_TELEPORT:
                MSG_ReadVector(pos, cl.protocol);
                Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-               CL_AllocDlight(NULL, &tempmatrix, 500, 1.0f, 1.0f, 1.0f, 1500, 99.0f, 0, -1, true, 1, 0.25, 1, 0, 0, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
-//             CL_TeleportSplash(pos);
+               CL_AllocDlight(NULL, &tempmatrix, 200, 1.0f, 1.0f, 1.0f, 600, 99.0f, 0, -1, true, 1, 0.25, 1, 0, 0, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
+               CL_TeleportSplash(pos);
                break;
 
        case TE_EXPLOSION2:
@@ -1487,6 +1493,8 @@ void CL_ParseServerMessage(void)
                        cl.viewentity = (unsigned short)MSG_ReadShort ();
                        if (cl.viewentity >= MAX_EDICTS)
                                Host_Error("svc_setview >= MAX_EDICTS\n");
+                       if (cl.viewentity >= cl_max_entities)
+                               CL_ExpandEntities(cl.viewentity);
                        // LordHavoc: assume first setview recieved is the real player entity
                        if (!cl.playerentity)
                                cl.playerentity = cl.viewentity;
@@ -1585,12 +1593,16 @@ void CL_ParseServerMessage(void)
                        i = (unsigned short) MSG_ReadShort ();
                        if (i < 0 || i >= MAX_EDICTS)
                                Host_Error ("CL_ParseServerMessage: svc_spawnbaseline: invalid entity number %i", i);
+                       if (i >= cl_max_entities)
+                               CL_ExpandEntities(i);
                        CL_ParseBaseline (cl_entities + i, false);
                        break;
                case svc_spawnbaseline2:
                        i = (unsigned short) MSG_ReadShort ();
                        if (i < 0 || i >= MAX_EDICTS)
                                Host_Error ("CL_ParseServerMessage: svc_spawnbaseline2: invalid entity number %i", i);
+                       if (i >= cl_max_entities)
+                               CL_ExpandEntities(i);
                        CL_ParseBaseline (cl_entities + i, true);
                        break;
                case svc_spawnstatic:
@@ -1761,7 +1773,6 @@ void CL_Parse_DumpPacket(void)
 void CL_Parse_Init(void)
 {
        // LordHavoc: added demo_nehahra cvar
-       cl_scores_mempool = Mem_AllocPool("client player info", 0, NULL);
        Cvar_RegisterVariable (&demo_nehahra);
        if (gamemode == GAME_NEHAHRA)
                Cvar_SetValue("demo_nehahra", 1);
@@ -1770,5 +1781,4 @@ void CL_Parse_Init(void)
 
 void CL_Parse_Shutdown(void)
 {
-       Mem_FreePool (&cl_scores_mempool);
 }