2020#define RSES_NOLIGHTS 8
2121
2222#define MASK_XRAY (1<<3)
23+ #define MASK_PIP (1<<4)
2324
2425var float match_start_time = 0 ;
2526var int camera_index = -1 ;
@@ -221,18 +222,27 @@ void(float apilevel, string enginename, float engineversion) CSQC_Init =
221222 registercommand("pip" );
222223};
223224
225+ void (entity ent) PipResetPlayer =
226+ {
227+ ent. drawmask = MASK_PIP;
228+ ent. effects = 0 ;
229+ ent. alpha = 0 ;
230+ ent. fatness = 0 ;
231+ ent. forceshader = 0 ;
232+ };
233+
224234float (float isnew) PipNewPlayer =
225235{
236+
226237 if (! cvar("pip_xray" )) {
227- self. drawmask = 0 ;
238+ PipResetPlayer( self) ;
228239 return isnew;
229240 }
230241
231242 float pnum = self. entnum-1 ;
232243 float health = getplayerstat(pnum, STAT_HEALTH, EV_FLOAT);
233-
234244 if (health <= 0 ) {
235- self. drawmask = 0 ;
245+ PipResetPlayer( self) ;
236246 return isnew;
237247 }
238248
@@ -241,13 +251,13 @@ float(float isnew) PipNewPlayer =
241251
242252 float distance = vlen(org - self. origin);
243253 if (distance > cutoff) {
244- self. drawmask = 0 ;
254+ PipResetPlayer( self) ;
245255 return isnew;
246256 }
247257
248258 traceline(org, self. origin, MOVE_NORMAL | MOVE_NOMONSTERS, self);
249259 if (trace_fraction == 1 ) {
250- self. drawmask = 0 ;
260+ PipResetPlayer( self) ;
251261 return isnew;
252262 }
253263
@@ -408,7 +418,7 @@ void(float vwidth, float vheight, float notmenu) CSQC_UpdateView =
408418 setviewprop(VF_SIZE_Y, height);
409419 setviewprop(VF_ANGLES, item->camera->angles);
410420 setviewprop(VF_FOV, '110 0 0');
411- addentities(MASK_ENGINE);
421+ addentities(MASK_ENGINE | MASK_PIP );
412422
413423 cvar_set(" scr_autoid_armor", " 0 ");
414424 cvar_set(" scr_autoid_health", " 0 ");
0 commit comments