]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_parse.c
Added darkplaces-osx-sdl launch script, this has been simplified since
[xonotic/darkplaces.git] / cl_parse.c
index 460ef2701b7f2b6fdcf9038c275e66865fa4a6d1..923e48e734ad8471ead538b2f1f6783e19fc8f30 100644 (file)
@@ -276,7 +276,7 @@ static void CL_ParseStartSoundPacket(int largesoundindex)
 
        MSG_ReadVector(&cl_message, pos, cls.protocol);
 
-       if (sound_num >= MAX_SOUNDS)
+       if (sound_num < 0 || sound_num >= MAX_SOUNDS)
        {
                Con_Printf("CL_ParseStartSoundPacket: sound_num (%i) >= MAX_SOUNDS (%i)\n", sound_num, MAX_SOUNDS);
                return;
@@ -586,6 +586,12 @@ static void QW_CL_RequestNextDownload(void)
        // clear name of file that just finished
        cls.qw_downloadname[0] = 0;
 
+       // skip the download fragment if playing a demo
+       if (!cls.netcon)
+       {
+               return;
+       }
+
        switch (cls.qw_downloadtype)
        {
        case dl_single:
@@ -2305,6 +2311,13 @@ static void CL_ParseStaticSound (int large)
                sound_num = (unsigned short) MSG_ReadShort(&cl_message);
        else
                sound_num = MSG_ReadByte(&cl_message);
+
+       if (sound_num < 0 || sound_num >= MAX_SOUNDS)
+       {
+               Con_Printf("CL_ParseStaticSound: sound_num(%i) >= MAX_SOUNDS (%i)\n", sound_num, MAX_SOUNDS);
+               return;
+       }
+
        vol = MSG_ReadByte(&cl_message);
        atten = MSG_ReadByte(&cl_message);
 
@@ -2880,6 +2893,8 @@ static void CL_ParseTempEntity(void)
                        CL_FindNonSolidLocation(pos, pos, 10);
                        colorStart = MSG_ReadByte(&cl_message);
                        colorLength = MSG_ReadByte(&cl_message);
+                       if (colorLength == 0)
+                               colorLength = 1;
                        CL_ParticleExplosion2(pos, colorStart, colorLength);
                        tempcolor = palette_rgb[(rand()%colorLength) + colorStart];
                        color[0] = tempcolor[0] * (2.0f / 255.0f);