/* ===================== CL_ClearState ===================== */ void CL_ClearState (void) { int i; extern float scr_centertime_off; S_StopAllSounds (true); Com_DPrintf ("Clearing memory\n"); if (!com_serveractive) { Host_ClearMemory (); } CL_ClearTEnts (); CL_ClearDlights (); CL_ClearParticles (); CL_ClearNails (); for (i = 0; i < UPDATE_BACKUP; i++) Q_free (cl.frames[i].packet_entities.entities); // wipe the entire cl structure memset (&cl, 0, sizeof(cl)); SZ_Clear (&cls.netchan.message); // clear other arrays memset (cl_efrags, 0, sizeof(cl_efrags)); memset (cl_lightstyle, 0, sizeof(cl_lightstyle)); memset (cl_entities, 0, sizeof(cl_entities)); cl_entframecount = 2; // so that cl_entframecount - 1 != 0 cl.viewheight = DEFAULT_VIEWHEIGHT; cl.minpitch = -70; cl.maxpitch = 80; V_NewMap (); // make sure no centerprint messages are left from previous level scr_centertime_off = 0; // // allocate the efrags and chain together into a free list // cl.free_efrags = cl_efrags; for (i=0 ; i<MAX_EFRAGS-1 ; i++) cl.free_efrags[i].entnext = &cl.free_efrags[i+1]; cl.free_efrags[i].entnext = NULL; }
/* ============== CL_ClearEffects ============== */ void CL_ClearEffects (void) { CL_ClearParticles (); CL_ClearDlights (); CL_ClearLightStyles (); }