/* =============== CL_AddPacketEntities =============== */ void CL_AddPacketEntities( frame_t *frame ) { cl_entity_t *ent, *clent; int i, e, entityType; clent = CL_GetLocalPlayer(); if( !clent ) return; for( i = 0; i < cl.frame.num_entities; i++ ) { e = cls.packet_entities[(cl.frame.first_entity + i) % cls.num_client_entities].number; ent = CL_GetEntityByIndex( e ); if( !ent || ent == clgame.entities ) continue; CL_UpdateEntityFields( ent ); if( ent->player ) entityType = ET_PLAYER; else if( ent->curstate.entityType == ENTITY_BEAM ) entityType = ET_BEAM; else entityType = ET_NORMAL; CL_AddVisibleEntity( ent, entityType ); } }
/* ================ R_StoreEfrags ================ */ void R_StoreEfrags( efrag_t **ppefrag, int framecount ) { cl_entity_t *pent; model_t *clmodel; efrag_t *pefrag; while(( pefrag = *ppefrag ) != NULL ) { pent = pefrag->entity; clmodel = pent->model; switch( clmodel->type ) { case mod_alias: case mod_brush: case mod_studio: case mod_sprite: pent = pefrag->entity; if( pent->visframe != framecount ) { if( CL_AddVisibleEntity( pent, ET_FRAGMENTED )) { // mark that we've recorded this entity for this frame pent->visframe = framecount; } } ppefrag = &pefrag->leafnext; break; default: Host_Error( "R_StoreEfrags: bad entity type %d\n", clmodel->type ); break; } } }