Merge branch 'master' of /var/cache/git/xonotic/xonotic-data.pk3dir
authorRudolf Polzer <divverent@alientrap.org>
Tue, 3 Jan 2012 12:02:44 +0000 (13:02 +0100)
committerRudolf Polzer <divverent@alientrap.org>
Tue, 3 Jan 2012 12:02:44 +0000 (13:02 +0100)
defaultXonotic.cfg
qcsrc/client/autocvars.qh
qcsrc/client/csqcmodel_hooks.qc
qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c

index d31db25..fb50f79 100644 (file)
@@ -1923,7 +1923,8 @@ set waypoint_benchmark 0 "quit after waypoint loading to benchmark bot navigatio
 set g_debug_bot_commands 0 "print scripted bot commands before executing"
 set g_debug_defaultsounds 0 "always use default sounds"
 set sv_use_csqc_players 1 "set to 0 to disable CSQC players for better Xonotic 0.5 compat"
-set cl_forceplayermodels 0 "set to 1 to make everyone look like yourself (requires server to have sv_use_csqc_players 1)"
+set cl_forceplayermodels 0 "make everyone look like your own model (requires server to have sv_use_csqc_players 1 and sv_defaultcharacter 0)"
+set cl_forceplayercolors 0 "make everyone look like your own color (requires server to have sv_use_csqc_players 1 and sv_defaultcharacter 0, and is ignored in teamplay)"
 set cl_precacheplayermodels 0 "TODO please check if this needs to be 1 or if precaching a model the server already requested is fast enough to do it at runtime"
 
 // debug cvars for keyhunt attaching
index d829904..489f79d 100644 (file)
@@ -377,6 +377,7 @@ float autocvar_cl_playerdetailreduction;
 float autocvar_cl_loddistance1 = 1024;
 float autocvar_cl_loddistance2 = 4096;
 float autocvar_cl_forceplayermodels;
+float autocvar_cl_forceplayercolors;
 float autocvar__cl_playerskin;
 string autocvar__cl_playermodel;
 float autocvar_cl_precacheplayermodels;
index 145218b..12cae8e 100644 (file)
@@ -78,17 +78,20 @@ float forceplayermodels_attempted;
 .string forceplayermodels_savemodel;
 .float forceplayermodels_savemodelindex;
 .float forceplayermodels_saveskin;
+.float forceplayermodels_savecolormap;
 void CSQCPlayer_ForceModel_PreUpdate(void)
 {
        self.model = self.forceplayermodels_savemodel;
        self.modelindex = self.forceplayermodels_savemodelindex;
        self.skin = self.forceplayermodels_saveskin;
+       self.colormap = self.forceplayermodels_savecolormap;
 }
 void CSQCPlayer_ForceModel_PostUpdate(void)
 {
        self.forceplayermodels_savemodel = self.model;
        self.forceplayermodels_savemodelindex = self.modelindex;
        self.forceplayermodels_saveskin = self.skin;
+       self.forceplayermodels_savecolormap = self.colormap;
 }
 void CSQCPlayer_ForceModel_Apply(float islocalplayer)
 {
@@ -133,6 +136,11 @@ void CSQCPlayer_ForceModel_Apply(float islocalplayer)
                self.modelindex = self.forceplayermodels_savemodelindex;
                self.skin = self.forceplayermodels_saveskin;
        }
+
+       // forceplayercolors too
+       if(!teamplay)
+               if(autocvar_cl_forceplayercolors)
+                       self.colormap = player_localnum + 1;
 }
 
 // FEATURE: fallback frames
index d4211de..fde65aa 100644 (file)
@@ -64,13 +64,13 @@ void XonoticPlayerSettingsTab_fill(entity me)
                me.TD(me, 1, 0.3, e = makeXonoticButton("<<", '0 0 0'));
                        e.onClick = PlayerModelSelector_Prev_Click;
                        e.onClickEntity = pms;
-               me.TD(me, me.rows - me.currentRow - 2, 1.8, pms);
+               me.TD(me, me.rows - (me.currentRow + 3), 1.8, pms);
                me.TD(me, 1, 0.3, e = makeXonoticButton(">>", '0 0 0'));
                        e.onClick = PlayerModelSelector_Next_Click;
                        e.onClickEntity = pms;
        me.TR(me);
                r = me.currentRow;
-               m = me.rows - r - 3;
+               m = me.rows - (r + 4);
                n = 16 - !cvar("developer");
                m = m / (n - 1);
                for(i = 0; i < n; ++i)
@@ -83,8 +83,10 @@ void XonoticPlayerSettingsTab_fill(entity me)
                        me.gotoRC(me, r + i * m, 0.4);
                        me.TDNoMargin(me, m, 0.2, e = makeXonoticColorButton(2, 1, i), '0 1 0');
                }
-       me.gotoRC(me, me.rows - 2, 0);
+       me.gotoRC(me, me.rows - 3, 0);
                me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_forceplayermodels", _("Force player models to mine")));
+       me.TR(me);
+               me.TD(me, 1, 3, e = makeXonoticCheckBox(0, "cl_forceplayercolors", _("Force player colors to mine")));
 
        me.gotoRC(me, 0, 3.5); me.setFirstColumn(me, me.currentColumn);
                me.TD(me, 1, 1, e = makeXonoticTextLabel(0, _("Field of view:")));