- // copy the states
- ent = &cl_entities[entityframe.entitydata[i].number];
- ent->state_previous = ent->state_current;
- ent->state_current = entityframe.entitydata[i];
- CL_MoveLerpEntityStates(ent);
- // the entity lives again...
- entlife[ent->state_current.number] = 2;
- cl_entities_active[ent->state_current.number] = true;
+ int i;
+ entity_t *ent;
+ EntityFrame_Read(&cl.entitydatabase);
+ EntityFrame_FetchFrame(&cl.entitydatabase, EntityFrame_MostRecentlyRecievedFrameNum(&cl.entitydatabase), &entityframe);
+ for (i = 0;i < entityframe.numentities;i++)
+ {
+ // copy the states
+ ent = &cl_entities[entityframe.entitydata[i].number];
+ ent->state_previous = ent->state_current;
+ ent->state_current = entityframe.entitydata[i];
+ CL_MoveLerpEntityStates(ent);
+ // the entity lives again...
+ entlife[ent->state_current.number] = 2;
+ cl_entities_active[ent->state_current.number] = true;
+ }
+ }
+ else
+ {
+ if (!cl.entitydatabase4)
+ cl.entitydatabase4 = EntityFrame4_AllocDatabase(cl_entities_mempool);
+ EntityFrame4_CL_ReadFrame(cl.entitydatabase4);