]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge remote-tracking branch 'origin/master' into samual/updatecommands
authorSamual <samual@xonotic.org>
Wed, 4 Jan 2012 03:56:42 +0000 (22:56 -0500)
committerSamual <samual@xonotic.org>
Wed, 4 Jan 2012 03:56:42 +0000 (22:56 -0500)
defaultXonotic.cfg
gfx/colormap_palette.lmp
gfx/colormap_palette.pl
qcsrc/client/autocvars.qh
qcsrc/client/csqcmodel_hooks.qc
qcsrc/common/util.qc
qcsrc/menu/xonotic/colorbutton.c
qcsrc/server/g_damage.qc

index 92aba7d8cec350e3afb1a304321d6597012ce9f4..75950a9cd7fec160222a90d1ef53e615d065c6b0 100644 (file)
@@ -1152,7 +1152,10 @@ alias sv_fbskin_off "sv_defaultcharacter 0; sv_defaultplayerskin 0; sv_defaultpl
 seta sv_servermodelsonly 1
 
 cl_curl_enabled 1
-cl_curl_maxspeed 400
+cl_curl_maxspeed 500
+cl_curl_useragent 1
+cl_curl_useragent_append "$g_xonoticversion"
+
 sv_curl_defaulturl "http://www.xonotic.org/contentdownload/getmap.php?file="
 set sv_curl_serverpackages_auto 1 "automatically add packs with *.serverpackage files to sv_curl_serverpackages"
 
@@ -1765,9 +1768,12 @@ 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 "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"
+seta cl_forceplayermodels 0 "make everyone look like your own model (requires server to have sv_use_csqc_players 1 and sv_defaultcharacter 0)"
+seta 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)"
+seta cl_forcemyplayermodel "" "set to the model file name you want to show yourself as (requires server to have sv_use_csqc_players 1; does not affect how enemies look with cl_forceplayermodels)"
+seta cl_forcemyplayerskin 0 "set to the skin number you want to show yourself as (requires server to have sv_use_csqc_players 1; does not affect how enemies look with cl_forceplayermodels)"
+seta cl_forcemyplayercolors 0 "set to the color value (encoding is same as _cl_color) for your own player model (requires server to have sv_use_csqc_players 1, and is ignored in teamplay; does not affect how enemies look with cl_forceplayermodels)"
 
 // debug cvars for keyhunt attaching
 set _angles "0 0 0"
index 5450eedccb108be6620d160edec6bedd08398144..f798c8cc845b97fa0d56481a369f1976ce859a9c 100644 (file)
Binary files a/gfx/colormap_palette.lmp and b/gfx/colormap_palette.lmp differ
index 47986f9f30a2b6208967448f2373ec5f9be112ab..07ad2de1142c640f30c387b969c2f97d86523c5e 100644 (file)
@@ -1,29 +1,43 @@
 use strict;
 use warnings;
 
+# Colors:
+#   red
+#   ORANGE1
+#   ORANGE2
+#   yellow
+#   yellowgreen
+#   green
+#   cyangreen
+#   cyan
+#   CYANBLUE1
+#   CYANBLUE2
+#   blue
+#   bluemagenta
+#   magenta
+#   redmagenta
+
 my @colors = (
-       'cccccc',
-       '996600',
-       '00ff80',
-       '00ff00',
-       'ff0000',
-       '00a8ff', # was: 0080ff, green increased
-       '00ffff',
-       '80ff00',
-       '8000ff',
-       'ff00ff',
-       'ff0080',
-       '999999',
-       'ffff00',
-       '0050ff', # was: 0000ff, green increased so the color is perceptively just as bright as red (for teamplay)
-       'ff8000',
-       '000000'
+       'ffffff', # white
+       'ff5500', # orange1
+       '00ff80', # cyangreen
+       '00ff00', # green
+       'ff0000', # red
+       '00aaff', # cyanblue1
+       '00ffff', # cyan
+       '80ff00', # yellowgreen
+       '8000ff', # bluemagenta
+       'ff00ff', # magenta
+       'ff0080', # redmagenta
+       '0000ff', # blue
+       'ffff00', # yellow
+       '0055ff', # cyanblue2
+       'ffaa00', # orange2
+       '000000' # unused
 );
 
 my $value_min = 0x0F;
 my $value_max = 0xFF;
-my $value_smin = 0x00;
-my $value_smax = 0xB3;
 
 my $i = 0;
 my $pal_colormap = "";
@@ -35,9 +49,8 @@ for(@colors)
        my $g = hex $2;
        my $b = hex $3;
        $pal_colormap .= sprintf "%c%c%c", map { int(0.5 + $value_min + ($_ * 1.0 / 0xFF) * ($value_max - $value_min)) } $r, $g, $b;
-       $pal_scoreboard .= sprintf "%c%c%c", map { int(0.5 + $value_smin + ($_ * 1.0 / 0xFF) * ($value_smax - $value_smin)) } $r, $g, $b;
        printf STDERR "\t\tcase %2d: return '%f %f %f';\n", $i, $r / 0xFF, $g / 0xFF, $b / 0xFF;
        ++$i;
 }
 
-print "$pal_colormap$pal_scoreboard$pal_colormap$pal_scoreboard";
+print "$pal_colormap$pal_colormap$pal_colormap$pal_colormap";
index 489f79dd4204941d8c83954a1cc3e93807e7321f..31fe318458f3af5a07e5114d6108b4094292c34f 100644 (file)
@@ -378,6 +378,9 @@ float autocvar_cl_loddistance1 = 1024;
 float autocvar_cl_loddistance2 = 4096;
 float autocvar_cl_forceplayermodels;
 float autocvar_cl_forceplayercolors;
+string autocvar_cl_forcemyplayermodel;
+float autocvar_cl_forcemyplayerskin;
+float autocvar_cl_forcemyplayercolors;
 float autocvar__cl_playerskin;
 string autocvar__cl_playermodel;
 float autocvar_cl_precacheplayermodels;
index 12cae8eef8790fd305516e080d4a348530523136..92b8983b34428c0965aaeb972e1a8b21868a2284 100644 (file)
@@ -74,6 +74,10 @@ void CSQCPlayer_LOD_Apply(void)
 string forceplayermodels_model;
 float forceplayermodels_modelindex;
 float forceplayermodels_skin;
+
+string forceplayermodels_mymodel;
+float forceplayermodels_mymodelindex;
+
 float forceplayermodels_attempted;
 .string forceplayermodels_savemodel;
 .float forceplayermodels_savemodelindex;
@@ -112,6 +116,8 @@ void CSQCPlayer_ForceModel_Apply(float islocalplayer)
        // forcemodel finding
        if(!forceplayermodels_attempted)
        {
+               forceplayermodels_attempted = 1;
+
                // only if this failed, find it out on our own
                entity e;
                e = spawn();
@@ -119,12 +125,27 @@ void CSQCPlayer_ForceModel_Apply(float islocalplayer)
                forceplayermodels_model = e.model;
                forceplayermodels_modelindex = e.modelindex;
                forceplayermodels_skin = autocvar__cl_playerskin;
-               forceplayermodels_attempted = 1;
+               remove(e);
+       }
+
+       if(autocvar_cl_forcemyplayermodel != "" && autocvar_cl_forcemyplayermodel != forceplayermodels_mymodel)
+       {
+               entity e;
+               e = spawn();
+               setmodel(e, autocvar_cl_forcemyplayermodel); // this is harmless, see below
+               forceplayermodels_mymodel = e.model;
+               forceplayermodels_mymodelindex = e.modelindex;
                remove(e);
        }
 
        // apply it
-       if(autocvar_cl_forceplayermodels && forceplayermodels_modelindex)
+       if(autocvar_cl_forcemyplayermodel != "" && forceplayermodels_mymodelindex && self.entnum == player_localnum + 1)
+       {
+               self.model = forceplayermodels_mymodel;
+               self.modelindex = forceplayermodels_mymodelindex;
+               self.skin = autocvar_cl_forcemyplayerskin;
+       }
+       else if(autocvar_cl_forceplayermodels && forceplayermodels_modelindex)
        {
                self.model = forceplayermodels_model;
                self.modelindex = forceplayermodels_modelindex;
@@ -139,8 +160,12 @@ void CSQCPlayer_ForceModel_Apply(float islocalplayer)
 
        // forceplayercolors too
        if(!teamplay)
-               if(autocvar_cl_forceplayercolors)
+       {
+               if(autocvar_cl_forcemyplayercolors && self.entnum == player_localnum + 1)
+                       self.colormap = 1024 + autocvar_cl_forcemyplayercolors;
+               else if(autocvar_cl_forceplayercolors)
                        self.colormap = player_localnum + 1;
+       }
 }
 
 // FEATURE: fallback frames
index c3b95d97740ee849fff3332101bf5d4436bef242..19339a36e99635908c379b21383ceff01d7dc42a 100644 (file)
@@ -195,21 +195,21 @@ vector colormapPaletteColor(float c, float isPants)
 {
        switch(c)
        {
-               case  0: return '0.800000 0.800000 0.800000';
-               case  1: return '0.600000 0.400000 0.000000';
+               case  0: return '1.000000 1.000000 1.000000';
+               case  1: return '1.000000 0.333333 0.000000';
                case  2: return '0.000000 1.000000 0.501961';
                case  3: return '0.000000 1.000000 0.000000';
                case  4: return '1.000000 0.000000 0.000000';
-               case  5: return '0.000000 0.658824 1.000000';
+               case  5: return '0.000000 0.666667 1.000000';
                case  6: return '0.000000 1.000000 1.000000';
                case  7: return '0.501961 1.000000 0.000000';
                case  8: return '0.501961 0.000000 1.000000';
                case  9: return '1.000000 0.000000 1.000000';
                case 10: return '1.000000 0.000000 0.501961';
-               case 11: return '0.600000 0.600000 0.600000';
+               case 11: return '0.000000 0.000000 1.000000';
                case 12: return '1.000000 1.000000 0.000000';
-               case 13: return '0.000000 0.313725 1.000000';
-               case 14: return '1.000000 0.501961 0.000000';
+               case 13: return '0.000000 0.333333 1.000000';
+               case 14: return '1.000000 0.666667 0.000000';
                case 15:
                        if(isPants)
                                return
index 2ca8c86c4078d056c86ba0d8512709b7d45b5df8..4e81a4acc24d2aa7d5ecce525e54d15090e307ce 100644 (file)
@@ -28,6 +28,27 @@ entity makeXonoticColorButton(float theGroup, float theColor, float theValue)
 }
 void XonoticColorButton_configureXonoticColorButton(entity me, float theGroup, float theColor, float theValue)
 {
+       switch(theValue)
+       {
+               // rearrange 1..14 for rainbow order
+               case  1: theValue = 10; break;
+               case  2: theValue =  4; break;
+               case  3: theValue =  1; break;
+               case  4: theValue = 14; break;
+               case  5: theValue = 12; break;
+               case  6: theValue =  7; break;
+               case  7: theValue =  3; break;
+               case  8: theValue =  2; break;
+               case  9: theValue =  6; break;
+               case 10: theValue =  5; break;
+               case 11: theValue = 13; break;
+               case 12: theValue = 11; break;
+               case 13: theValue =  8; break;
+               case 14: theValue =  9; break;
+               default:
+                       // no change
+                       break;
+       }
        me.cvarName = "_cl_color";
        me.cvarValueFloat = theValue;
        me.cvarPart = theColor;
index 170793a5524b0621760b283023dbee138a205132..b192845bcd3ea083615b5244d215a1594eda71b7 100644 (file)
@@ -230,25 +230,25 @@ string Obituary_ExtraFragInfo(entity player) // Extra fragmessage information
 
        // health/armor of attacker (person who killed you)
        if(autocvar_sv_fraginfo_stats && (player.health >= 1))
-               if((autocvar_sv_fraginfo_stats == 2) || !inWarmupStage)
+               if((autocvar_sv_fraginfo_stats == 2) || inWarmupStage)
                        health_output = strcat("^7(Health ^1", ftos(rint(player.health)), "^7 / Armor ^2", ftos(rint(player.armorvalue)), "^7)");
        
        // ping display
        if(autocvar_sv_fraginfo_ping)
-               ping_output = ((clienttype(player) == CLIENTTYPE_BOT) ? "^2Bot" : strcat("Ping ", ((player.ping >= 150) ? "^1" : "^2"), ftos(player.ping), "ms"));
+               ping_output = ((clienttype(player) == CLIENTTYPE_BOT) ? "^2Bot" : strcat("Ping ", ((player.ping >= 150) ? "^1" : "^2"), ftos(rint(player.ping)), "ms"));
                
        // handicap display 
        if(autocvar_sv_fraginfo_handicap) 
        {
                if(autocvar_sv_fraginfo_handicap == 2)  
-                       handicap_output = strcat(output, strcat("Handicap ^2", ((player.cvar_cl_handicap <= 1) ? "Off" : ftos(player.cvar_cl_handicap))));
+                       handicap_output = strcat(output, strcat("Handicap ^2", ((player.cvar_cl_handicap <= 1) ? "Off" : ftos(rint(player.cvar_cl_handicap)))));
                else if(player.cvar_cl_handicap) // with _handicap 1, only show this if there actually is a handicap enabled.   
-                       handicap_output = strcat("Handicap ^2", ftos(player.cvar_cl_handicap));
+                       handicap_output = strcat("Handicap ^2", ftos(rint(player.cvar_cl_handicap)));
        }
        
        // format the string
-       output = strcat(health_output, (health_output ? " ^7(" : ((ping_output || handicap_output) ? "^7(" : "")), 
-               ping_output, ((ping_output && handicap_output) ? "^7 / " : ""), 
+       output = strcat(health_output, (health_output ? ((ping_output || handicap_output) ? " ^7(" : "") : ((ping_output || handicap_output) ? "^7(" : "")), 
+               ping_output, (handicap_output ? "^7 / " : ""), 
                handicap_output, ((ping_output || handicap_output) ? "^7)" : ""));
        
        // add new line to the beginning if there is a message