From: Mario Date: Thu, 6 Nov 2014 06:55:52 +0000 (+1100) Subject: Merge branch 'samual/weapons' into Mario/weapons X-Git-Tag: xonotic-v0.8.0~152^2~25 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=commitdiff_plain;h=bc84852344a61cf02dea8f6db1a1e3a2449b4253;hp=a9b7572c2381856fa90ce31c68fb3cad71a9737c Merge branch 'samual/weapons' into Mario/weapons --- diff --git a/.gitignore b/.gitignore index 111ff91095..a305108b3a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ qcsrc/menu/fteqcc.log qcsrc/server/fteqcc.log weapons.qc.tmp *.lno -qcsrc/qccversion.* +qcsrc/qccversion* +qcsrc/server/precache-for-csqc.inc diff --git a/_hud_descriptions.cfg b/_hud_descriptions.cfg index 5f21867d35..c9a0861556 100644 --- a/_hud_descriptions.cfg +++ b/_hud_descriptions.cfg @@ -128,6 +128,7 @@ seta hud_panel_notify_flip "" "order the list top to bottom instead of bottom to seta hud_panel_notify_fontsize "" "multiplier for the font size used for player names in the panel" seta hud_panel_notify_fadetime "" "fade out time" seta hud_panel_notify_time "" "time that a new entry stays until it fades out" +seta hud_panel_notify_icon_aspect "" "aspect ratio of total drawing area per icon" seta hud_panel_timer "" "enable/disable this panel" seta hud_panel_timer_pos "" "position of this base of the panel" diff --git a/gfx/menu/luminos/color.tga b/gfx/menu/luminos/color.tga deleted file mode 100644 index 3ce25a5b7c..0000000000 Binary files a/gfx/menu/luminos/color.tga and /dev/null differ diff --git a/gfx/menu/luminos/colorbutton_c.tga b/gfx/menu/luminos/colorbutton_c.tga index 586f9b47ef..5f1fc2bcd7 100644 Binary files a/gfx/menu/luminos/colorbutton_c.tga and b/gfx/menu/luminos/colorbutton_c.tga differ diff --git a/gfx/menu/luminos/colorbutton_f.tga b/gfx/menu/luminos/colorbutton_f.tga index 57d7d933cc..0ca0d9b6b8 100644 Binary files a/gfx/menu/luminos/colorbutton_f.tga and b/gfx/menu/luminos/colorbutton_f.tga differ diff --git a/gfx/menu/luminos/colorbutton_n.tga b/gfx/menu/luminos/colorbutton_n.tga old mode 100755 new mode 100644 index 110faa18b5..26e6da5bff Binary files a/gfx/menu/luminos/colorbutton_n.tga and b/gfx/menu/luminos/colorbutton_n.tga differ diff --git a/gfx/menu/luminos/skinvalues.txt b/gfx/menu/luminos/skinvalues.txt index 5e311c9090..025475ab74 100755 --- a/gfx/menu/luminos/skinvalues.txt +++ b/gfx/menu/luminos/skinvalues.txt @@ -46,6 +46,7 @@ ALPHA_BACKGROUND_INGAME 1 ALPHA_DISABLED 0.2 ALPHA_BEHIND 0.5 ALPHA_TEXT 0.7 +COLOR_TEXT '1 1 1' // mouse // uses "cursor" images @@ -67,6 +68,7 @@ MARGIN_TOOLTIP '8 8 0' BORDER_TOOLTIP '16 16 0' FONTSIZE_TOOLTIP 12 ALPHA_TOOLTIP 0.7 +COLOR_TOOLTIP '1 1 1' WIDTH_TOOLTIP 0.3 AVOID_TOOLTIP '8 8 0' @@ -133,6 +135,8 @@ COLOR_SERVERLIST_HIGHPING '1 0 0' ALPHA_SERVERLIST_HIGHPING 0.4 ALPHA_SERVERLIST_FAVORITE 0.8 COLOR_SERVERLIST_FAVORITE '1 1 1' +ALPHA_SERVERLIST_CATEGORY 0.7 +COLOR_SERVERLIST_CATEGORY '1 1 1' // item: skin list COLOR_SKINLIST_TITLE '1 1 1' @@ -204,7 +208,6 @@ ALPHA_KEYGRABBER_KEYS 0.7 // item: player color button // uses "colorbutton" images -// uses "color" images // item: player name editor // uses "charmap" images diff --git a/gfx/menu/wickedx/color.tga b/gfx/menu/wickedx/color.tga deleted file mode 100755 index 5189ab4963..0000000000 Binary files a/gfx/menu/wickedx/color.tga and /dev/null differ diff --git a/gfx/menu/wickedx/colorbutton_c.tga b/gfx/menu/wickedx/colorbutton_c.tga index 1c294f77f5..5f1fc2bcd7 100644 Binary files a/gfx/menu/wickedx/colorbutton_c.tga and b/gfx/menu/wickedx/colorbutton_c.tga differ diff --git a/gfx/menu/wickedx/colorbutton_f.tga b/gfx/menu/wickedx/colorbutton_f.tga index 0031c35e35..0ca0d9b6b8 100644 Binary files a/gfx/menu/wickedx/colorbutton_f.tga and b/gfx/menu/wickedx/colorbutton_f.tga differ diff --git a/gfx/menu/wickedx/colorbutton_n.tga b/gfx/menu/wickedx/colorbutton_n.tga old mode 100755 new mode 100644 index 7fec859bcc..26e6da5bff Binary files a/gfx/menu/wickedx/colorbutton_n.tga and b/gfx/menu/wickedx/colorbutton_n.tga differ diff --git a/gfx/menu/wickedx/skinvalues.txt b/gfx/menu/wickedx/skinvalues.txt index 1560512858..c5062d91a1 100755 --- a/gfx/menu/wickedx/skinvalues.txt +++ b/gfx/menu/wickedx/skinvalues.txt @@ -46,6 +46,7 @@ ALPHA_BACKGROUND_INGAME 1 ALPHA_DISABLED 0.2 ALPHA_BEHIND 0.5 ALPHA_TEXT 0.7 +COLOR_TEXT '1 1 1' // mouse // uses "cursor" images @@ -67,6 +68,7 @@ MARGIN_TOOLTIP '8 8 0' BORDER_TOOLTIP '16 16 0' FONTSIZE_TOOLTIP 12 ALPHA_TOOLTIP 0.7 +COLOR_TOOLTIP '1 1 1' WIDTH_TOOLTIP 0.3 AVOID_TOOLTIP '8 8 0' @@ -133,6 +135,8 @@ COLOR_SERVERLIST_HIGHPING '1 0 0' ALPHA_SERVERLIST_HIGHPING 0.4 ALPHA_SERVERLIST_FAVORITE 0.8 COLOR_SERVERLIST_FAVORITE '1 1 1' +ALPHA_SERVERLIST_CATEGORY 0.7 +COLOR_SERVERLIST_CATEGORY '1 1 1' // item: skin list COLOR_SKINLIST_TITLE '1 1 1' @@ -204,7 +208,6 @@ ALPHA_KEYGRABBER_KEYS 0.7 // item: player color button // uses "colorbutton" images -// uses "color" images // item: player name editor // uses "charmap" images diff --git a/gfx/menu/xaw/color.tga b/gfx/menu/xaw/color.tga deleted file mode 100644 index c7d2fbd651..0000000000 Binary files a/gfx/menu/xaw/color.tga and /dev/null differ diff --git a/gfx/menu/xaw/colorbutton_c.tga b/gfx/menu/xaw/colorbutton_c.tga index e3b92d15fe..c12daf484a 100644 Binary files a/gfx/menu/xaw/colorbutton_c.tga and b/gfx/menu/xaw/colorbutton_c.tga differ diff --git a/gfx/menu/xaw/colorbutton_f.tga b/gfx/menu/xaw/colorbutton_f.tga index 31912d7953..1c737dc9d7 100644 Binary files a/gfx/menu/xaw/colorbutton_f.tga and b/gfx/menu/xaw/colorbutton_f.tga differ diff --git a/gfx/menu/xaw/colorbutton_n.tga b/gfx/menu/xaw/colorbutton_n.tga index 5d678a6cd8..537f0254e1 100644 Binary files a/gfx/menu/xaw/colorbutton_n.tga and b/gfx/menu/xaw/colorbutton_n.tga differ diff --git a/gfx/menu/xaw/skinvalues.txt b/gfx/menu/xaw/skinvalues.txt index 3bd555f031..2dc86f698f 100644 --- a/gfx/menu/xaw/skinvalues.txt +++ b/gfx/menu/xaw/skinvalues.txt @@ -14,6 +14,7 @@ MARGIN_TOOLTIP '5 5 0' BORDER_TOOLTIP '1 1 0' FONTSIZE_TOOLTIP 12 ALPHA_TOOLTIP 0.7 +COLOR_TOOLTIP '1 1 1' WIDTH_TOOLTIP 0.3 AVOID_TOOLTIP '8 8 0' @@ -61,6 +62,7 @@ ALPHA_BACKGROUND_INGAME 0 ALPHA_DISABLED 0.2 ALPHA_BEHIND 1 ALPHA_TEXT 0.7 +COLOR_TEXT '1 1 1' // item: button // uses "button" images @@ -163,7 +165,6 @@ ALPHAS_MAINMENU '1 1 1' // item: player color button // uses "colorbutton" images -// uses "color" images // item: player model COLOR_MODELTITLE '1 1 1' @@ -197,6 +198,8 @@ COLOR_SERVERLIST_HIGHPING '1 0 0' ALPHA_SERVERLIST_HIGHPING 0.2 ALPHA_SERVERLIST_FAVORITE 0.8 COLOR_SERVERLIST_FAVORITE '1 1 1' +ALPHA_SERVERLIST_CATEGORY 0.7 +COLOR_SERVERLIST_CATEGORY '1 1 1' // item: server info COLOR_SERVERINFO_NAME '1 1 1' diff --git a/hud_luminos.cfg b/hud_luminos.cfg index f2b4fa4bd8..2736524c64 100644 --- a/hud_luminos.cfg +++ b/hud_luminos.cfg @@ -126,6 +126,7 @@ seta hud_panel_notify_flip "0" seta hud_panel_notify_fontsize "0.8" seta hud_panel_notify_time "10" seta hud_panel_notify_fadetime "3" +seta hud_panel_notify_icon_aspect "2" seta hud_panel_timer 1 seta hud_panel_timer_pos "0.800000 0.040000" diff --git a/hud_luminos_minimal.cfg b/hud_luminos_minimal.cfg index c401132ac3..fdb57a37ee 100644 --- a/hud_luminos_minimal.cfg +++ b/hud_luminos_minimal.cfg @@ -126,6 +126,7 @@ seta hud_panel_notify_flip "1" seta hud_panel_notify_fontsize "0.8" seta hud_panel_notify_time "10" seta hud_panel_notify_fadetime "3" +seta hud_panel_notify_icon_aspect "2" seta hud_panel_timer 1 seta hud_panel_timer_pos "0.435000 0" diff --git a/hud_luminos_minimal_xhair.cfg b/hud_luminos_minimal_xhair.cfg index 518492ed4a..e0345f822e 100644 --- a/hud_luminos_minimal_xhair.cfg +++ b/hud_luminos_minimal_xhair.cfg @@ -126,6 +126,7 @@ seta hud_panel_notify_flip "1" seta hud_panel_notify_fontsize "0.8" seta hud_panel_notify_time "10" seta hud_panel_notify_fadetime "3" +seta hud_panel_notify_icon_aspect "2" seta hud_panel_timer 1 seta hud_panel_timer_pos "0.435000 0" diff --git a/hud_luminos_old.cfg b/hud_luminos_old.cfg index 0a5f05955e..6a94d2b3ee 100644 --- a/hud_luminos_old.cfg +++ b/hud_luminos_old.cfg @@ -126,6 +126,7 @@ seta hud_panel_notify_flip "0" seta hud_panel_notify_fontsize "0.8" seta hud_panel_notify_time "10" seta hud_panel_notify_fadetime "3" +seta hud_panel_notify_icon_aspect "2" seta hud_panel_timer 1 seta hud_panel_timer_pos "0.870000 0" diff --git a/hud_nexuiz.cfg b/hud_nexuiz.cfg index acf3ad921e..5d8ee1fb96 100644 --- a/hud_nexuiz.cfg +++ b/hud_nexuiz.cfg @@ -126,6 +126,7 @@ seta hud_panel_notify_flip "0" seta hud_panel_notify_fontsize "1" seta hud_panel_notify_time "10" seta hud_panel_notify_fadetime "3" +seta hud_panel_notify_icon_aspect "2" seta hud_panel_timer 1 seta hud_panel_timer_pos "0.850000 0" diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index 67a6f522a2..053499a985 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -269,6 +269,7 @@ float autocvar_hud_panel_notify_fadetime; float autocvar_hud_panel_notify_flip; float autocvar_hud_panel_notify_fontsize; float autocvar_hud_panel_notify_time; +float autocvar_hud_panel_notify_icon_aspect; float autocvar_hud_panel_physics; float autocvar_hud_panel_physics_acceleration_progressbar_mode; float autocvar_hud_panel_physics_acceleration_progressbar_scale; diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc index e52591b0b2..acd22fef82 100644 --- a/qcsrc/client/hud.qc +++ b/qcsrc/client/hud.qc @@ -1562,148 +1562,154 @@ void HUD_HealthArmor(void) void HUD_Notify_Push(string icon, string attacker, string victim) { - if(icon != "") - { - --kn_index; - if (kn_index == -1) { kn_index = KN_MAX_ENTRIES-1; } - notify_times[kn_index] = time; + if (icon == "") + return; + + ++notify_count; + --notify_index; - // icon - if(notify_icon[kn_index]) { strunzone(notify_icon[kn_index]); } - notify_icon[kn_index] = strzone(icon); + if (notify_index == -1) + notify_index = NOTIFY_MAX_ENTRIES-1; - // attacker - if(notify_attackers[kn_index]) { strunzone(notify_attackers[kn_index]); } - notify_attackers[kn_index] = strzone(attacker); + // Free old strings + if (notify_attackers[notify_index]) + strunzone(notify_attackers[notify_index]); - // victim - if(notify_victims[kn_index]) { strunzone(notify_victims[kn_index]); } - notify_victims[kn_index] = strzone(victim); + if (notify_victims[notify_index]) + strunzone(notify_victims[notify_index]); + + if (notify_icons[notify_index]) + strunzone(notify_icons[notify_index]); + + // Allocate new strings + if (victim != "") + { + notify_attackers[notify_index] = strzone(attacker); + notify_victims[notify_index] = strzone(victim); } + else + { + // In case of a notification without a victim, the attacker + // is displayed on the victim's side. Instead of special + // treatment later on, we can simply switch them here. + notify_attackers[notify_index] = string_null; + notify_victims[notify_index] = strzone(attacker); + } + + notify_icons[notify_index] = strzone(icon); + notify_times[notify_index] = time; } void HUD_Notify(void) { - if(!autocvar__hud_configure) - { - if(!autocvar_hud_panel_notify) return; - } + if (!autocvar__hud_configure) + if (!autocvar_hud_panel_notify) + return; HUD_Panel_UpdateCvars(); - vector pos, mySize; - pos = panel_pos; - mySize = panel_size; - HUD_Panel_DrawBg(1); - if(panel_bg_padding) + + if (!autocvar__hud_configure) + if (notify_count == 0) + return; + + vector pos, size; + pos = panel_pos; + size = panel_size; + + if (panel_bg_padding) { - pos += '1 1 0' * panel_bg_padding; - mySize -= '2 2 0' * panel_bg_padding; + pos += '1 1 0' * panel_bg_padding; + size -= '2 2 0' * panel_bg_padding; } - float entries, height; - entries = bound(1, floor(KN_MAX_ENTRIES * mySize_y/mySize_x), KN_MAX_ENTRIES); - height = mySize_y/entries; + float fade_start = max(0, autocvar_hud_panel_notify_time); + float fade_time = max(0, autocvar_hud_panel_notify_fadetime); + float icon_aspect = max(1, autocvar_hud_panel_notify_icon_aspect); - vector fontsize; - float fontheight = height * autocvar_hud_panel_notify_fontsize; - fontsize = '0.5 0.5 0' * fontheight; + float entry_count = bound(1, floor(NOTIFY_MAX_ENTRIES * size_y / size_x), NOTIFY_MAX_ENTRIES); + float entry_height = size_y / entry_count; - float a; - float when; - when = autocvar_hud_panel_notify_time; - float fadetime; - fadetime = autocvar_hud_panel_notify_fadetime; + float panel_width_half = size_x * 0.5; + float icon_width_half = entry_height * icon_aspect / 2; + float name_maxwidth = panel_width_half - icon_width_half - size_x * NOTIFY_ICON_MARGIN; + + vector font_size = '0.5 0.5 0' * entry_height * autocvar_hud_panel_notify_fontsize; + vector icon_size = (eX * icon_aspect + eY) * entry_height; + vector icon_left = eX * (panel_width_half - icon_width_half); + vector attacker_right = eX * name_maxwidth; + vector victim_left = eX * (size_x - name_maxwidth); - vector pos_attacker, pos_victim, pos_icon; - float width_attacker; + vector attacker_pos, victim_pos, icon_pos; string attacker, victim, icon; + float i, j, count, step, limit, alpha; - float i, j, step, limit; - if(autocvar_hud_panel_notify_flip) //order items from the top down + if (autocvar_hud_panel_notify_flip) { + // Order items from the top down i = 0; step = +1; - limit = entries; + limit = entry_count; } - else //order items from the bottom up + else { - i = entries - 1; + // Order items from the bottom up + i = entry_count - 1; step = -1; limit = -1; } - for(j = kn_index; i != limit; i += step, ++j) + for (j = notify_index, count = 0; i != limit; i += step, ++j, ++count) { if(autocvar__hud_configure) { - if (step == +1) - a = i; - else // inverse order - a = entries - 1 - i; - attacker = textShortenToWidth(sprintf(_("Player %d"), a+1), 0.48 * mySize_x - height, fontsize, stringwidth_colors); - victim = textShortenToWidth(sprintf(_("Player %d"), a+2), 0.48 * mySize_x - height, fontsize, stringwidth_colors); - icon = get_weaponinfo(WEP_FIRST + mod(floor(a*2.4), WEP_LAST)).model2; - a = bound(0, (when - a) / 4, 1); - goto hud_config_notifyprint; + attacker = sprintf(_("Player %d"), count + 1); + victim = sprintf(_("Player %d"), count + 2); + icon = get_weaponinfo(min(WEP_FIRST + count * 2, WEP_LAST)).model2; + alpha = bound(0, 1.2 - count / entry_count, 1); } else { - if (j == KN_MAX_ENTRIES) + if (j == NOTIFY_MAX_ENTRIES) j = 0; - if(notify_times[j] + when > time) - a = 1; - else if(fadetime) + if (notify_times[j] + fade_start > time) + alpha = 1; + else if (fade_time != 0) { - a = bound(0, (notify_times[j] + when + fadetime - time) / fadetime, 1); - if(!a) - { + alpha = bound(0, (notify_times[j] + fade_start + fade_time - time) / fade_time, 1); + if (alpha == 0) break; - } } else - { break; - } attacker = notify_attackers[j]; victim = notify_victims[j]; - icon = notify_icon[j]; + icon = notify_icons[j]; } - //type = notify_deathtype[j]; - //w = DEATH_WEAPONOF(type); - - if(icon != "") + if (icon != "" && victim != "") { - if((attacker != "") && (victim == "")) - { - // Y [used by] X - attacker = textShortenToWidth(attacker, 0.73 * mySize_x - height, fontsize, stringwidth_colors); - pos_attacker = pos + eX * (0.27 * mySize_x + height) + eY * ((0.5 * fontsize_y + i * height) + (0.5 * (height - fontheight))); - pos_icon = pos + eX * 0.25 * mySize_x - eX * height + eY * i * height; + vector name_top = eY * (i * entry_height + 0.5 * (entry_height - font_size_y)); - drawpic_aspect_skin(pos_icon, icon, '2 1 0' * height, '1 1 1', panel_fg_alpha * a, DRAWFLAG_NORMAL); - drawcolorcodedstring(pos_attacker, attacker, fontsize, panel_fg_alpha * a, DRAWFLAG_NORMAL); - } - else if((attacker != "") && (victim != "")) + icon_pos = pos + icon_left + eY * i * entry_height; + drawpic_aspect_skin(icon_pos, icon, icon_size, '1 1 1', panel_fg_alpha * alpha, DRAWFLAG_NORMAL); + + victim = textShortenToWidth(victim, name_maxwidth, font_size, stringwidth_colors); + victim_pos = pos + victim_left + name_top; + drawcolorcodedstring(victim_pos, victim, font_size, panel_fg_alpha * alpha, DRAWFLAG_NORMAL); + + if (attacker != "") { - // X [did action to] Y - attacker = textShortenToWidth(attacker, 0.48 * mySize_x - height, fontsize, stringwidth_colors); - victim = textShortenToWidth(victim, 0.48 * mySize_x - height, fontsize, stringwidth_colors); -:hud_config_notifyprint - width_attacker = stringwidth(attacker, TRUE, fontsize); - pos_attacker = pos + eX * (0.48 * mySize_x - height - width_attacker) + eY * ((0.5 * fontsize_y + i * height) + (0.5 * (height - fontheight))); - pos_victim = pos + eX * (0.52 * mySize_x + height) + eY * ((0.5 * fontsize_y + i * height) + (0.5 * (height - fontheight))); - pos_icon = pos + eX * 0.5 * mySize_x - eX * height + eY * i * height; - - drawpic_aspect_skin(pos_icon, icon, '2 1 0' * height, '1 1 1', panel_fg_alpha * a, DRAWFLAG_NORMAL); - drawcolorcodedstring(pos_attacker, attacker, fontsize, panel_fg_alpha * a, DRAWFLAG_NORMAL); - drawcolorcodedstring(pos_victim, victim, fontsize, panel_fg_alpha * a, DRAWFLAG_NORMAL); + attacker = textShortenToWidth(attacker, name_maxwidth, font_size, stringwidth_colors); + attacker_pos = pos + attacker_right - eX * stringwidth(attacker, TRUE, font_size) + name_top; + drawcolorcodedstring(attacker_pos, attacker, font_size, panel_fg_alpha * alpha, DRAWFLAG_NORMAL); } } } + + notify_count = count; } // Timer (#5) diff --git a/qcsrc/client/hud.qh b/qcsrc/client/hud.qh index 5c062c5fac..dcaa81a871 100644 --- a/qcsrc/client/hud.qh +++ b/qcsrc/client/hud.qh @@ -337,14 +337,16 @@ panel_bg_border_str = cvar_string(strcat("hud_panel_", panel.panel_name, "_bg_bo HUD_Panel_GetBorder() \ } ENDS_WITH_CURLY_BRACE +#define NOTIFY_MAX_ENTRIES 10 +#define NOTIFY_ICON_MARGIN 0.02 -#define KN_MAX_ENTRIES 10 +float notify_index; +float notify_count; +float notify_times[NOTIFY_MAX_ENTRIES]; +string notify_attackers[NOTIFY_MAX_ENTRIES]; +string notify_victims[NOTIFY_MAX_ENTRIES]; +string notify_icons[NOTIFY_MAX_ENTRIES]; -float kn_index; -float notify_times[KN_MAX_ENTRIES]; -string notify_icon[KN_MAX_ENTRIES]; -string notify_attackers[KN_MAX_ENTRIES]; -string notify_victims[KN_MAX_ENTRIES]; void HUD_Notify_Push(string icon, string attacker, string victim); var void HUD_ModIcons_GameType(vector pos, vector size); diff --git a/qcsrc/client/hud_config.qc b/qcsrc/client/hud_config.qc index 98dbdefd18..8ecc326b1e 100644 --- a/qcsrc/client/hud_config.qc +++ b/qcsrc/client/hud_config.qc @@ -119,6 +119,7 @@ void HUD_Panel_ExportCfg(string cfgname) HUD_Write_PanelCvar_q("_fontsize"); HUD_Write_PanelCvar_q("_time"); HUD_Write_PanelCvar_q("_fadetime"); + HUD_Write_PanelCvar_q("_icon_aspect"); break; case HUD_PANEL_TIMER: HUD_Write_PanelCvar_q("_increment"); diff --git a/qcsrc/client/miscfunctions.qc b/qcsrc/client/miscfunctions.qc index 8b674e7826..fbdbc45f3a 100644 --- a/qcsrc/client/miscfunctions.qc +++ b/qcsrc/client/miscfunctions.qc @@ -589,20 +589,6 @@ float getplayeralpha(float pl) return 1; } -vector getcsqcplayercolor(float pl) -{ - entity e; - - e = CSQCModel_server2csqc(pl); - if(e) - { - if(e.colormap > 0) - return colormapPaletteColor(((e.colormap >= 1024) ? e.colormap : stof(getplayerkeyvalue(e.colormap - 1, "colors"))) & 0x0F, TRUE); - } - - return '1 1 1'; -} - float getplayerisdead(float pl) { entity e; diff --git a/qcsrc/client/scoreboard.qc b/qcsrc/client/scoreboard.qc index b206e2a7f1..06e29680f2 100644 --- a/qcsrc/client/scoreboard.qc +++ b/qcsrc/client/scoreboard.qc @@ -376,7 +376,7 @@ void Cmd_HUD_SetFields(float argc) hud_field[hud_num_fields] = SP_PL; } else if(str == "kd" || str == "kdr" || str == "kdratio" || str == "k/d") { hud_field[hud_num_fields] = SP_KDRATIO; - } else if(str == "sum" || str == "diff" || str == "f-d") { + } else if(str == "sum" || str == "diff" || str == "k-d") { hud_field[hud_num_fields] = SP_SUM; } else if(str == "name" || str == "nick") { hud_field[hud_num_fields] = SP_NAME; diff --git a/qcsrc/menu/item/label.c b/qcsrc/menu/item/label.c index 8406af01f6..0f6f966471 100644 --- a/qcsrc/menu/item/label.c +++ b/qcsrc/menu/item/label.c @@ -20,7 +20,7 @@ CLASS(Label) EXTENDS(Item) ATTRIB(Label, realFontSize, vector, '0 0 0') ATTRIB(Label, realOrigin, vector, '0 0 0') ATTRIB(Label, alpha, float, 0.7) - ATTRIB(Label, colorL, vector, '1 1 1') + ATTRIB(Label, colorL, vector, SKINCOLOR_TEXT) ATTRIB(Label, disabled, float, 0) ATTRIB(Label, disabledAlpha, float, 0.3) ATTRIB(Label, textEntity, entity, NULL) diff --git a/qcsrc/menu/menu.qc b/qcsrc/menu/menu.qc index 382a19d2de..d7fd581a32 100644 --- a/qcsrc/menu/menu.qc +++ b/qcsrc/menu/menu.qc @@ -666,7 +666,7 @@ void m_tooltip(vector pos) while(getWrappedLine_remaining) { s = getWrappedLine(SKINWIDTH_TOOLTIP, fontsize, draw_TextWidth_WithoutColors); - draw_Text(p, s, fontsize, '1 1 1', SKINALPHA_TOOLTIP * menuTooltipAlpha, FALSE); + draw_Text(p, s, fontsize, SKINCOLOR_TOOLTIP, SKINALPHA_TOOLTIP * menuTooltipAlpha, FALSE); p_y += fontsize_y; } } diff --git a/qcsrc/menu/skin-customizables.inc b/qcsrc/menu/skin-customizables.inc index 6b5cac042c..6583898bc7 100644 --- a/qcsrc/menu/skin-customizables.inc +++ b/qcsrc/menu/skin-customizables.inc @@ -45,10 +45,11 @@ SKINBEGIN SKINSTRING(GFX_TOOLTIP, "tooltip"); SKINVECTOR(MARGIN_TOOLTIP, '5 5 0'); SKINVECTOR(BORDER_TOOLTIP, '1 1 0'); + SKINVECTOR(AVOID_TOOLTIP, '8 8 0'); + SKINFLOAT(WIDTH_TOOLTIP, 0.3); SKINFLOAT(FONTSIZE_TOOLTIP, 12); SKINFLOAT(ALPHA_TOOLTIP, 0.7); - SKINFLOAT(WIDTH_TOOLTIP, 0.3); - SKINVECTOR(AVOID_TOOLTIP, '8 8 0'); + SKINVECTOR(COLOR_TOOLTIP, '1 1 1'); // the individual dialog background colors SKINVECTOR(COLOR_DIALOG_FIRSTRUN, '0.7 0.7 1'); @@ -97,7 +98,8 @@ SKINBEGIN SKINFLOAT(ALPHA_DISABLED, 0.2); SKINFLOAT(ALPHA_BEHIND, 0.5); SKINFLOAT(ALPHA_TEXT, 0.7); - + SKINVECTOR(COLOR_TEXT, '1 1 1'); + // item: button SKINSTRING(GFX_BUTTON, "button"); SKINSTRING(GFX_BUTTON_GRAY, "buttongray"); @@ -201,7 +203,6 @@ SKINBEGIN // item: player color button SKINSTRING(GFX_COLORBUTTON, "colorbutton"); - SKINSTRING(GFX_COLORBUTTON_COLOR, "color"); // item: player model SKINVECTOR(COLOR_MODELTITLE, '1 1 1'); @@ -227,6 +228,8 @@ SKINBEGIN SKINFLOAT(WIDTH_SCROLLBAR, 16); // item: server list + SKINFLOAT(ALPHA_SERVERLIST_CATEGORY, 0.7); + SKINVECTOR(COLOR_SERVERLIST_CATEGORY, '1 1 1'); SKINFLOAT(ALPHA_SERVERLIST_FULL, 0.4); SKINFLOAT(ALPHA_SERVERLIST_EMPTY, 0.7); SKINVECTOR(COLOR_SERVERLIST_LOWPING, '0 1 0'); diff --git a/qcsrc/menu/xonotic/colorbutton.c b/qcsrc/menu/xonotic/colorbutton.c index 772c9e452c..bcbdfee8db 100644 --- a/qcsrc/menu/xonotic/colorbutton.c +++ b/qcsrc/menu/xonotic/colorbutton.c @@ -3,9 +3,8 @@ CLASS(XonoticColorButton) EXTENDS(RadioButton) METHOD(XonoticColorButton, configureXonoticColorButton, void(entity, float, float, float)) METHOD(XonoticColorButton, setChecked, void(entity, float)) METHOD(XonoticColorButton, draw, void(entity)) - ATTRIB(XonoticColorButton, fontSize, float, SKINFONTSIZE_NORMAL) + ATTRIB(XonoticColorButton, fontSize, float, 0) ATTRIB(XonoticColorButton, image, string, SKINGFX_COLORBUTTON) - ATTRIB(XonoticColorButton, image2, string, SKINGFX_COLORBUTTON_COLOR) ATTRIB(XonoticColorButton, useDownAsChecked, float, 1) @@ -54,8 +53,6 @@ void XonoticColorButton_configureXonoticColorButton(entity me, float theGroup, f me.cvarPart = theColor; me.loadCvars(me); me.configureRadioButton(me, string_null, me.fontSize, me.image, theGroup, 0); - me.srcMulti = 1; - me.src2 = me.image2; } void XonoticColorButton_setChecked(entity me, float val) { @@ -94,7 +91,10 @@ void XonoticColorButton_saveCvars(entity me) } void XonoticColorButton_draw(entity me) { - me.color2 = colormapPaletteColor(me.cvarValueFloat, me.cvarPart); + me.color = colormapPaletteColor(me.cvarValueFloat, me.cvarPart); + me.colorC = me.color; + me.colorF = me.color; + me.colorD = me.color; SUPER(XonoticColorButton).draw(me); } #endif diff --git a/qcsrc/menu/xonotic/demolist.c b/qcsrc/menu/xonotic/demolist.c index ee8cf6a4f6..cf0e987c0a 100644 --- a/qcsrc/menu/xonotic/demolist.c +++ b/qcsrc/menu/xonotic/demolist.c @@ -104,7 +104,7 @@ void XonoticDemoList_drawListBoxItem(entity me, float i, vector absSize, float i s = me.demoName(me,i); s = draw_TextShortenToWidth(s, me.columnNameSize, 0, me.realFontSize); - draw_Text(me.realUpperMargin * eY + (me.columnNameOrigin + 0.00 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0); + draw_Text(me.realUpperMargin * eY + (me.columnNameOrigin + 0.00 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, SKINCOLOR_TEXT, SKINALPHA_TEXT, 0); } void XonoticDemoList_showNotify(entity me) diff --git a/qcsrc/menu/xonotic/gametypelist.c b/qcsrc/menu/xonotic/gametypelist.c index 56c25314da..02f17dddb7 100644 --- a/qcsrc/menu/xonotic/gametypelist.c +++ b/qcsrc/menu/xonotic/gametypelist.c @@ -83,9 +83,9 @@ void XonoticGametypeList_drawListBoxItem(entity me, float i, vector absSize, flo draw_Picture(me.columnIconOrigin * eX, GameType_GetIcon(i), me.columnIconSize * eX + eY, '1 1 1', SKINALPHA_LISTBOX_SELECTED); s = GameType_GetName(i); - draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 0.5 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0); + draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 0.5 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, SKINCOLOR_TEXT, SKINALPHA_TEXT, 0); //s = GameType_GetTeams(i); - //draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 1.00 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0); + //draw_Text(me.realUpperMargin1 * eY + (me.columnNameOrigin + 1.00 * (me.columnNameSize - draw_TextWidth(s, 0, me.realFontSize))) * eX, s, me.realFontSize, SKINCOLOR_TEXT, SKINALPHA_TEXT, 0); } void XonoticGametypeList_resizeNotify(entity me, vector relOrigin, vector relSize, vector absOrigin, vector absSize) { diff --git a/qcsrc/menu/xonotic/languagelist.c b/qcsrc/menu/xonotic/languagelist.c index b91610a30e..56d074115a 100644 --- a/qcsrc/menu/xonotic/languagelist.c +++ b/qcsrc/menu/xonotic/languagelist.c @@ -65,13 +65,13 @@ void XonoticLanguageList_drawListBoxItem(entity me, float i, vector absSize, flo s = me.languageParameter(me, i, LANGPARM_NAME_LOCALIZED); s = draw_TextShortenToWidth(s, me.columnNameSize, 0, me.realFontSize); - draw_Text(me.realUpperMargin * eY + me.columnNameOrigin * eX, s, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0); + draw_Text(me.realUpperMargin * eY + me.columnNameOrigin * eX, s, me.realFontSize, SKINCOLOR_TEXT, SKINALPHA_TEXT, 0); p = me.languageParameter(me, i, LANGPARM_PERCENTAGE); if(p != "") { p = draw_TextShortenToWidth(p, me.columnPercentageSize, 0, me.realFontSize); - draw_Text(me.realUpperMargin * eY + (me.columnPercentageOrigin + (me.columnPercentageSize - draw_TextWidth(p, 0, me.realFontSize))) * eX, p, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0); + draw_Text(me.realUpperMargin * eY + (me.columnPercentageOrigin + (me.columnPercentageSize - draw_TextWidth(p, 0, me.realFontSize))) * eX, p, me.realFontSize, SKINCOLOR_TEXT, SKINALPHA_TEXT, 0); } } diff --git a/qcsrc/menu/xonotic/playerlist.c b/qcsrc/menu/xonotic/playerlist.c index a0f64ca39e..315a68caa7 100644 --- a/qcsrc/menu/xonotic/playerlist.c +++ b/qcsrc/menu/xonotic/playerlist.c @@ -108,7 +108,7 @@ void XonoticPlayerList_drawListBoxItem(entity me, float i, vector absSize, float else if(t == 4) rgb = colormapPaletteColor(9, 0); else - rgb = '1 1 1'; + rgb = SKINCOLOR_TEXT; s = me.getPlayerList(me, i, PLAYERPARM_NAME); score = me.getPlayerList(me, i, PLAYERPARM_SCORE); diff --git a/qcsrc/menu/xonotic/playermodel.c b/qcsrc/menu/xonotic/playermodel.c index f37aaeb075..e4195617f9 100644 --- a/qcsrc/menu/xonotic/playermodel.c +++ b/qcsrc/menu/xonotic/playermodel.c @@ -174,7 +174,7 @@ void XonoticPlayerModelSelector_draw(entity me) if (me.numModels <= 0) { - draw_CenterText('0.5 0.5 0', _(""), me.realFontSize, '1 1 1', 0.6, FALSE); + draw_CenterText('0.5 0.5 0', _(""), me.realFontSize, SKINCOLOR_TEXT, 0.6, FALSE); return; } @@ -190,7 +190,7 @@ void XonoticPlayerModelSelector_draw(entity me) o = '0.5 1 0' - eY * me.realFontSize_y * ((n = tokenizebyseparator(me.currentModelDescription, "\n")) + 0.5); for(i = 0; i < n; ++i) { - draw_CenterText(o, argv(i), me.realFontSize, '1 1 1', 1, FALSE); + draw_CenterText(o, argv(i), me.realFontSize, SKINCOLOR_TEXT, 1, FALSE); o += eY * me.realFontSize_y; } } diff --git a/qcsrc/menu/xonotic/serverlist.c b/qcsrc/menu/xonotic/serverlist.c index 0c7fe148be..7537027512 100644 --- a/qcsrc/menu/xonotic/serverlist.c +++ b/qcsrc/menu/xonotic/serverlist.c @@ -1013,8 +1013,8 @@ void XonoticServerList_drawListBoxItem(entity me, float i, vector absSize, float strcat(catent.cat_string, ":"), #endif me.realFontSize, - '1 1 1', - SKINALPHA_TEXT, + SKINCOLOR_SERVERLIST_CATEGORY, + SKINALPHA_SERVERLIST_CATEGORY, 0 ); SET_YRANGE(me.categoriesHeight / (me.categoriesHeight + 1), 1); diff --git a/qcsrc/menu/xonotic/weaponslist.c b/qcsrc/menu/xonotic/weaponslist.c index ad4071060f..b6c536a904 100644 --- a/qcsrc/menu/xonotic/weaponslist.c +++ b/qcsrc/menu/xonotic/weaponslist.c @@ -100,7 +100,7 @@ void XonoticWeaponsList_drawListBoxItem(entity me, float i, vector absSize, floa string msg = e.message; if(e.spawnflags & WEP_FLAG_MUTATORBLOCKED) msg = sprintf(_("%s (mutator weapon)"), msg); - draw_Text(me.realUpperMargin * eY, msg, me.realFontSize, '1 1 1', SKINALPHA_TEXT, 0); + draw_Text(me.realUpperMargin * eY, msg, me.realFontSize, SKINCOLOR_TEXT, SKINALPHA_TEXT, 0); } float XonoticWeaponsList_keyDown(entity me, float scan, float ascii, float shift) diff --git a/qcsrc/server/t_items.qc b/qcsrc/server/t_items.qc index b89a81f688..0e0209892d 100644 --- a/qcsrc/server/t_items.qc +++ b/qcsrc/server/t_items.qc @@ -137,14 +137,14 @@ void ItemRead(float _IsNew) - if(fexists(sprintf("%s%s.md3", _fn2, autocvr_cl_simpleitems_postfix))) - self.mdl = strzone(sprintf("%s%s.md3", _fn2, autocvr_cl_simpleitems_postfix)); - else if(fexists(sprintf("%s%s.dpm", _fn2, autocvr_cl_simpleitems_postfix))) - self.mdl = strzone(sprintf("%s%s.dpm", _fn2, autocvr_cl_simpleitems_postfix)); - else if(fexists(sprintf("%s%s.iqm", _fn2, autocvr_cl_simpleitems_postfix))) - self.mdl = strzone(sprintf("%s%s.iqm", _fn2, autocvr_cl_simpleitems_postfix)); - else if(fexists(sprintf("%s%s.obj", _fn2, autocvr_cl_simpleitems_postfix))) - self.mdl = strzone(sprintf("%s%s.obj", _fn2, autocvr_cl_simpleitems_postfix)); + if(fexists(sprintf("%s%s.md3", _fn2, autocvar_cl_simpleitems_postfix))) + self.mdl = strzone(sprintf("%s%s.md3", _fn2, autocvar_cl_simpleitems_postfix)); + else if(fexists(sprintf("%s%s.dpm", _fn2, autocvar_cl_simpleitems_postfix))) + self.mdl = strzone(sprintf("%s%s.dpm", _fn2, autocvar_cl_simpleitems_postfix)); + else if(fexists(sprintf("%s%s.iqm", _fn2, autocvar_cl_simpleitems_postfix))) + self.mdl = strzone(sprintf("%s%s.iqm", _fn2, autocvar_cl_simpleitems_postfix)); + else if(fexists(sprintf("%s%s.obj", _fn2, autocvar_cl_simpleitems_postfix))) + self.mdl = strzone(sprintf("%s%s.obj", _fn2, autocvar_cl_simpleitems_postfix)); else { self.draw = ItemDraw; diff --git a/qcsrc/server/t_items.qh b/qcsrc/server/t_items.qh index edd3df23a5..13cc3796fe 100644 --- a/qcsrc/server/t_items.qh +++ b/qcsrc/server/t_items.qh @@ -70,7 +70,7 @@ var float autocvar_cl_fullbright_items = 0; var vector autocvar_cl_weapon_stay_color = '2 0.5 0.5'; var float autocvar_cl_weapon_stay_alpha = 0.75; var float autocvar_cl_simple_items = 0; -var string autocvr_cl_simpleitems_postfix = "_simple"; +var string autocvar_cl_simpleitems_postfix = "_simple"; .float spawntime; .float gravity; .vector colormod;