X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fclient%2Fcsqcmodel_hooks.qc;h=0f5c919f9b02886feceb9774f9bd6f05a404d5a7;hb=5214041311eb0bb3b6ef385a176f0292761be169;hp=0b38b108bdc5e8c63a57c1fb86ac300f0f80e584;hpb=bb27a7450133e9fb4b11b37f3b38e19ea232ff82;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/client/csqcmodel_hooks.qc b/qcsrc/client/csqcmodel_hooks.qc index 0b38b108b..0f5c919f9 100644 --- a/qcsrc/client/csqcmodel_hooks.qc +++ b/qcsrc/client/csqcmodel_hooks.qc @@ -279,10 +279,22 @@ void CSQCPlayer_ModelAppearance_Apply(entity this, bool islocalplayer) this.colormap = forcecolor_enemy; } } - else + else // if(!teamplay) { if(autocvar_cl_forcemyplayercolors && islocalplayer) this.colormap = 1024 + autocvar_cl_forcemyplayercolors; + else if (autocvar_cl_forceuniqueplayercolors && !islocalplayer && !ISGAMETYPE(DUEL)) + { + // Assign each enemy unique colors + // pick colors from 0 to 14 since 15 is the rainbow color + // pl01 0 1, pl02 1 2, ..., pl14 13 14, pl15 14 0 + // pl16 0 2, pl17 1 3, ..., pl29 13 0, pl30 14 1 + int num = this.entnum - 1; + int c1 = num % 15; + int q = floor(num / 15); + int c2 = (c1 + 1 + q) % 15; + this.colormap = 1024 + (c1 << 4) + c2; + } else if(autocvar_cl_forceplayercolors && (autocvar_cl_forceplayercolors != 3 || ISGAMETYPE(DUEL))) this.colormap = player_localnum + 1; }