]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - protocol.c
enabled SDL sound and CD
[xonotic/darkplaces.git] / protocol.c
index 0c966f8e07635814f2e914c94e92b5f27210a970..f22241e706d48c9474d67c1065fefef99be850f6 100644 (file)
@@ -146,25 +146,21 @@ void EntityFrameQuake_ISeeDeadEntities(void)
                return;
        lastentity = cl_lastquakeentity;
        cl_lastquakeentity = 0;
-       for (num = 0;num < lastentity;num++)
+       for (num = 0;num <= lastentity;num++)
        {
                if (cl_isquakeentity[num])
                {
-                       cl_isquakeentity[num] = false;
-                       if (cl_entities_active[num])
+                       if (cl_entities_active[num] && cl_entities[num].state_current.time == cl.mtime[0])
                        {
-                               if (cl_entities[num].state_current.time == cl.mtime[0])
-                               {
-                                       cl_isquakeentity[num] = true;
-                                       cl_lastquakeentity = num;
-                               }
-                               else
-                               {
-                                       cl_isquakeentity[num] = false;
-                                       cl_entities_active[num] = false;
-                                       cl_entities[num].state_current = defaultstate;
-                                       cl_entities[num].state_current.number = num;
-                               }
+                               cl_isquakeentity[num] = true;
+                               cl_lastquakeentity = num;
+                       }
+                       else
+                       {
+                               cl_isquakeentity[num] = false;
+                               cl_entities_active[num] = false;
+                               cl_entities[num].state_current = defaultstate;
+                               cl_entities[num].state_current.number = num;
                        }
                }
        }
@@ -686,8 +682,7 @@ void EntityFrame_ClearDatabase(entityframe_database_t *d)
 void EntityFrame_AckFrame(entityframe_database_t *d, int frame)
 {
        int i;
-       if (d->ackframenum < frame)
-               d->ackframenum = frame;
+       d->ackframenum = frame;
        for (i = 0;i < d->numframes && d->frames[i].framenum < frame;i++);
        // ignore outdated frame acks (out of order packets)
        if (i == 0)
@@ -805,7 +800,7 @@ void EntityFrame_WriteFrame(sizebuf_t *msg, entityframe_database_t *d, int numst
 
        EntityFrame_AddFrame(d, eye, d->latestframenum, numstates, states);
 
-       EntityFrame_FetchFrame(d, d->ackframenum > 0 ? d->ackframenum : -1, o);
+       EntityFrame_FetchFrame(d, d->ackframenum, o);
 
        MSG_WriteByte (msg, svc_entities);
        MSG_WriteLong (msg, o->framenum);
@@ -1024,7 +1019,6 @@ entityframe4_database_t *EntityFrame4_AllocDatabase(mempool_t *pool)
        d = Mem_Alloc(pool, sizeof(*d));
        d->mempool = pool;
        EntityFrame4_ResetDatabase(d);
-       d->ackframenum = -1;
        return d;
 }
 
@@ -1042,7 +1036,6 @@ void EntityFrame4_FreeDatabase(entityframe4_database_t *d)
 void EntityFrame4_ResetDatabase(entityframe4_database_t *d)
 {
        int i;
-       d->ackframenum = -1;
        d->referenceframenum = -1;
        for (i = 0;i < MAX_ENTITY_HISTORY;i++)
                d->commit[i].numentities = 0;
@@ -1145,7 +1138,7 @@ void EntityFrame4_CL_ReadFrame(void)
                if (!d->commit[i].numentities)
                {
                        d->currentcommit = d->commit + i;
-                       d->currentcommit->framenum = d->ackframenum = framenum;
+                       d->currentcommit->framenum = framenum;
                        d->currentcommit->numentities = 0;
                }
        }
@@ -1360,7 +1353,6 @@ void EntityFrame5_ResetDatabase(entityframe5_database_t *d)
        int i;
        memset(d, 0, sizeof(*d));
        d->latestframenum = 0;
-       d->ackframenum = -1;
        for (i = 0;i < MAX_EDICTS;i++)
                d->states[i] = defaultstate;
 }
@@ -1777,9 +1769,6 @@ void EntityFrame5_AckFrame(entityframe5_database_t *d, int framenum, int viewent
        int i, j, k, l, bits;
        entityframe5_changestate_t *s, *s2;
        entityframe5_packetlog_t *p, *p2;
-       if (framenum <= d->ackframenum)
-               return;
-       d->ackframenum = framenum;
        // scan for packets made obsolete by this ack
        for (i = 0, p = d->packetlog;i < ENTITYFRAME5_MAXPACKETLOGS;i++, p++)
        {