- for(tm = teams.sort_next; tm; tm = tm.sort_next)
- if(tm.team != NUM_SPECTATOR)
- ++teams_count;
-
- if(autocvar_cl_forcemyplayercolors)
- forcecolor_friend = 1024 + autocvar_cl_forcemyplayercolors;
- if(autocvar_cl_forceplayercolors && teams_count == 2)
- forcecolor_enemy = 1024 + autocvar__cl_color;
-
- if(forcecolor_enemy && !forcecolor_friend)
- {
- // only enemy color is forced?
- // verify it is not equal to the friend color
- if(forcecolor_enemy == 1024 + 17 * myteam)
- forcecolor_enemy = 0;
- }
-
- if(forcecolor_friend && !forcecolor_enemy)
- {
- // only friend color is forced?
- // verify it is not equal to the enemy color
- for(tm = teams.sort_next; tm; tm = tm.sort_next)
- // note: we even compare against our own team.
- // if we rejected because we matched our OWN team color,
- // this is not bad; we then simply keep our color as is
- // anyway.
- if(forcecolor_friend == 1024 + 17 * tm.team)
- forcecolor_friend = 0;
- }
-
- if(cm == 1024 + 17 * myteam)
- {
- if(forcecolor_friend)
- selected_colormap = forcecolor_friend;
- }
- else
- {
- if(forcecolor_enemy)
- selected_colormap = forcecolor_enemy;
- }
- }
- else
- {
- if(autocvar_cl_forcemyplayercolors && islocalplayer)
- selected_colormap = 1024 + autocvar_cl_forcemyplayercolors;
- else if(autocvar_cl_forceplayercolors)
- selected_colormap = player_localnum + 1;
- }
-
- if(selected_colormap > 0)
- self.glowmod = colormapPaletteColor(((selected_colormap >= 1024) ? selected_colormap : stof(getplayerkeyvalue(selected_colormap - 1, "colors"))) & 0x0F, TRUE) * 2;
- else
- self.glowmod = '1 1 1';
-
- if(autocvar_cl_deathglow > 0)
- {
- if(self.csqcmodel_isdead)
- {
- selected_colormap = 0;
- self.glowmod = self.glowmod * bound(0, 1 - (time - self.death_time) / autocvar_cl_deathglow, 1);
- // prevent the zero vector
- self.glowmod_x = max(self.glowmod_x, 0.0001);
- self.glowmod_y = max(self.glowmod_y, 0.0001);
- self.glowmod_z = max(self.glowmod_z, 0.0001);
- }
- }
- self.colormap = selected_colormap;
-
- print(sprintf("CSQCPlayer_GlowMod_Apply(): state = %s, colormap = %f, glowmod = %s\n", (self.csqcmodel_isdead ? "DEAD" : "ALIVE"), selected_colormap, vtos(self.glowmod)));
-}
-
-void CSQCPlayer_ForceModel_PreUpdate(void)