From: terencehill Date: Mon, 27 Apr 2015 17:45:25 +0000 (+0200) Subject: Add skin attributes for listbox focused items and allow customization of the fade... X-Git-Tag: xonotic-v0.8.1~55^2~15 X-Git-Url: https://git.xonotic.org/?a=commitdiff_plain;h=1a90cd40e2050abaf5fb3838eee64e7ad6f887e9;p=xonotic%2Fxonotic-data.pk3dir.git Add skin attributes for listbox focused items and allow customization of the fade effect --- diff --git a/gfx/menu/luma/skinvalues.txt b/gfx/menu/luma/skinvalues.txt index 1e87e8869..2a9a0077e 100644 --- a/gfx/menu/luma/skinvalues.txt +++ b/gfx/menu/luma/skinvalues.txt @@ -142,6 +142,9 @@ ALPHA_LISTBOX_SELECTED 1 COLOR_LISTBOX_SELECTED '0.97 0.56 0.27' ALPHA_LISTBOX_WAITING 0.8 COLOR_LISTBOX_WAITING '0.73 0.82 0.9' +ALPHA_LISTBOX_FOCUSED 0.8 +FADEALPHA_LISTBOX_FOCUSED 0.2 +COLOR_LISTBOX_FOCUSED '0.09 0.42 0.69' // mainmenu ALPHAS_MAINMENU '0.8 0.9 1' diff --git a/gfx/menu/luminos/skinvalues.txt b/gfx/menu/luminos/skinvalues.txt index 77af6c8dc..2b0f43f69 100755 --- a/gfx/menu/luminos/skinvalues.txt +++ b/gfx/menu/luminos/skinvalues.txt @@ -108,6 +108,9 @@ COLOR_LISTBOX_SELECTED '1 0.4375 0' ALPHA_LISTBOX_SELECTED 1 COLOR_LISTBOX_WAITING '1 1 1' ALPHA_LISTBOX_WAITING 0.5 +COLOR_LISTBOX_FOCUSED '0 0.25 0.5' +ALPHA_LISTBOX_FOCUSED 0.7 +FADEALPHA_LISTBOX_FOCUSED 0.3 // item: map list COLOR_MAPLIST_TITLE '1 1 1' diff --git a/gfx/menu/wickedx/skinvalues.txt b/gfx/menu/wickedx/skinvalues.txt index 8b56baa1f..6e51cd982 100644 --- a/gfx/menu/wickedx/skinvalues.txt +++ b/gfx/menu/wickedx/skinvalues.txt @@ -108,6 +108,9 @@ COLOR_LISTBOX_SELECTED '0.875 0.375 0' ALPHA_LISTBOX_SELECTED 1 COLOR_LISTBOX_WAITING '1 1 1' ALPHA_LISTBOX_WAITING 0.5 +COLOR_LISTBOX_FOCUSED '0 0.375 0.75' +ALPHA_LISTBOX_FOCUSED 0.35 +FADEALPHA_LISTBOX_FOCUSED 0.75 // item: map list COLOR_MAPLIST_TITLE '1 1 1' diff --git a/gfx/menu/xaw/skinvalues.txt b/gfx/menu/xaw/skinvalues.txt index 57c6f2a35..477d1c972 100644 --- a/gfx/menu/xaw/skinvalues.txt +++ b/gfx/menu/xaw/skinvalues.txt @@ -152,8 +152,11 @@ COLOR_LISTBOX_SELECTED '0 0 0' ALPHA_LISTBOX_SELECTED 1 COLOR_LISTBOX_WAITING '1 0 0' ALPHA_LISTBOX_WAITING 0.5 -COLOR_LISTBOX_BACKGROUND '0 0 0' -ALPHA_LISTBOX_BACKGROUND 0 +COLOR_LISTBOX_BACKGROUND '0 0 0' +ALPHA_LISTBOX_BACKGROUND 0 +COLOR_LISTBOX_FOCUSED '0 0 0' +ALPHA_LISTBOX_FOCUSED 0.3 +FADEALPHA_LISTBOX_FOCUSED 0.3 // item: map list COLOR_MAPLIST_TITLE '1 1 1' diff --git a/qcsrc/menu/skin-customizables.inc b/qcsrc/menu/skin-customizables.inc index ee0e76f39..2e0d0b5fa 100644 --- a/qcsrc/menu/skin-customizables.inc +++ b/qcsrc/menu/skin-customizables.inc @@ -191,6 +191,9 @@ SKINBEGIN SKINFLOAT(ALPHA_LISTBOX_WAITING, 0.5); SKINVECTOR(COLOR_LISTBOX_BACKGROUND, '0 0 0'); SKINFLOAT(ALPHA_LISTBOX_BACKGROUND, 0.5); + SKINVECTOR(COLOR_LISTBOX_FOCUSED, '0 0 1'); + SKINFLOAT(ALPHA_LISTBOX_FOCUSED, 0.7); + SKINFLOAT(FADEALPHA_LISTBOX_FOCUSED, 0.3); // item: map list SKINVECTOR(COLOR_MAPLIST_TITLE, '1 1 1'); diff --git a/qcsrc/menu/xonotic/campaign.qc b/qcsrc/menu/xonotic/campaign.qc index aa234a174..2462f7d03 100644 --- a/qcsrc/menu/xonotic/campaign.qc +++ b/qcsrc/menu/xonotic/campaign.qc @@ -264,7 +264,7 @@ void XonoticCampaignList_drawListBoxItem(entity me, int i, vector absSize, bool if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); if(draw_PictureSize(strcat("/maps/", campaign_mapname[i])) == '0 0 0') draw_Picture(me.columnPreviewOrigin * eX, "nopreview_map", me.columnPreviewSize * eX + eY, '1 1 1', theAlpha); diff --git a/qcsrc/menu/xonotic/cvarlist.qc b/qcsrc/menu/xonotic/cvarlist.qc index 26dfb7e99..a00ff6027 100644 --- a/qcsrc/menu/xonotic/cvarlist.qc +++ b/qcsrc/menu/xonotic/cvarlist.qc @@ -165,7 +165,7 @@ void XonoticCvarList_drawListBoxItem(entity me, int i, vector absSize, bool isSe if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); k = bufstr_get(me.handle, i); diff --git a/qcsrc/menu/xonotic/demolist.qc b/qcsrc/menu/xonotic/demolist.qc index 5389456fc..df1b08a4d 100644 --- a/qcsrc/menu/xonotic/demolist.qc +++ b/qcsrc/menu/xonotic/demolist.qc @@ -139,7 +139,7 @@ void XonoticDemoList_drawListBoxItem(entity me, int i, vector absSize, bool isSe if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); s = me.demoName(me,i); s = draw_TextShortenToWidth(s, me.columnNameSize, 0, me.realFontSize); diff --git a/qcsrc/menu/xonotic/gametypelist.qc b/qcsrc/menu/xonotic/gametypelist.qc index eac075a9c..10dc7a76b 100644 --- a/qcsrc/menu/xonotic/gametypelist.qc +++ b/qcsrc/menu/xonotic/gametypelist.qc @@ -83,7 +83,7 @@ void XonoticGametypeList_drawListBoxItem(entity me, int i, vector absSize, bool if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); draw_Picture(me.columnIconOrigin * eX, GameType_GetIcon(i), me.columnIconSize * eX + eY, '1 1 1', SKINALPHA_LISTBOX_SELECTED); s1 = GameType_GetName(i); diff --git a/qcsrc/menu/xonotic/keybinder.qc b/qcsrc/menu/xonotic/keybinder.qc index 75f4e1f7c..09fac4f28 100644 --- a/qcsrc/menu/xonotic/keybinder.qc +++ b/qcsrc/menu/xonotic/keybinder.qc @@ -329,7 +329,7 @@ void XonoticKeyBinder_drawListBoxItem(entity me, int i, vector absSize, bool isS draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); } else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); theAlpha = SKINALPHA_KEYGRABBER_KEYS; theColor = SKINCOLOR_KEYGRABBER_KEYS; diff --git a/qcsrc/menu/xonotic/languagelist.qc b/qcsrc/menu/xonotic/languagelist.qc index 9d217fc51..e6ef90a4c 100644 --- a/qcsrc/menu/xonotic/languagelist.qc +++ b/qcsrc/menu/xonotic/languagelist.qc @@ -61,7 +61,7 @@ void XonoticLanguageList_drawListBoxItem(entity me, int i, vector absSize, bool if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); s = me.languageParameter(me, i, LANGPARM_NAME_LOCALIZED); diff --git a/qcsrc/menu/xonotic/maplist.qc b/qcsrc/menu/xonotic/maplist.qc index 74556429b..4003a36d7 100644 --- a/qcsrc/menu/xonotic/maplist.qc +++ b/qcsrc/menu/xonotic/maplist.qc @@ -182,7 +182,7 @@ void XonoticMapList_drawListBoxItem(entity me, int i, vector absSize, bool isSel if(included) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_MAPLIST_INCLUDEDBG, SKINALPHA_MAPLIST_INCLUDEDBG); if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); } if(draw_PictureSize(strcat("/maps/", MapInfo_Map_bspname)) == '0 0 0') diff --git a/qcsrc/menu/xonotic/playlist.qc b/qcsrc/menu/xonotic/playlist.qc index 9730e8417..744b0be90 100644 --- a/qcsrc/menu/xonotic/playlist.qc +++ b/qcsrc/menu/xonotic/playlist.qc @@ -176,7 +176,7 @@ void XonoticPlayList_drawListBoxItem(entity me, int i, vector absSize, bool isSe if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); if(i == me.playingTrack) { diff --git a/qcsrc/menu/xonotic/screenshotlist.qc b/qcsrc/menu/xonotic/screenshotlist.qc index fe4be4ed3..9cd26cad1 100644 --- a/qcsrc/menu/xonotic/screenshotlist.qc +++ b/qcsrc/menu/xonotic/screenshotlist.qc @@ -171,7 +171,7 @@ void XonoticScreenshotList_drawListBoxItem(entity me, int i, vector absSize, boo if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); s = me.screenshotName(me,i); s = draw_TextShortenToWidth(s, me.columnNameSize, 0, me.realFontSize); diff --git a/qcsrc/menu/xonotic/serverlist.qc b/qcsrc/menu/xonotic/serverlist.qc index 6eb169d88..56f62e452 100644 --- a/qcsrc/menu/xonotic/serverlist.qc +++ b/qcsrc/menu/xonotic/serverlist.qc @@ -1018,7 +1018,7 @@ void XonoticServerList_drawListBoxItem(entity me, int i, vector absSize, bool is if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); s = gethostcachestring(SLIST_FIELD_QCSTATUS, i); m = tokenizebyseparator(s, ":"); diff --git a/qcsrc/menu/xonotic/skinlist.qc b/qcsrc/menu/xonotic/skinlist.qc index 174e64f48..d689295ae 100644 --- a/qcsrc/menu/xonotic/skinlist.qc +++ b/qcsrc/menu/xonotic/skinlist.qc @@ -156,7 +156,7 @@ void XonoticSkinList_drawListBoxItem(entity me, int i, vector absSize, bool isSe if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); s = me.skinParameter(me, i, SKINPARM_PREVIEW); draw_Picture(me.columnPreviewOrigin * eX, s, me.columnPreviewSize * eX + eY, '1 1 1', 1); diff --git a/qcsrc/menu/xonotic/soundlist.qc b/qcsrc/menu/xonotic/soundlist.qc index 6d2608c5d..a23db9302 100644 --- a/qcsrc/menu/xonotic/soundlist.qc +++ b/qcsrc/menu/xonotic/soundlist.qc @@ -107,7 +107,7 @@ void XonoticSoundList_drawListBoxItem(entity me, int i, vector absSize, bool isS if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); s = me.soundName(me,i); if(s == cvar_string("menu_cdtrack")) // current menu track diff --git a/qcsrc/menu/xonotic/statslist.qc b/qcsrc/menu/xonotic/statslist.qc index 1702d367a..ee2cdf08d 100644 --- a/qcsrc/menu/xonotic/statslist.qc +++ b/qcsrc/menu/xonotic/statslist.qc @@ -318,7 +318,7 @@ void XonoticStatsList_drawListBoxItem(entity me, int i, vector absSize, bool isS if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); string data = bufstr_get(me.listStats, i); string s = car(data); diff --git a/qcsrc/menu/xonotic/util.qc b/qcsrc/menu/xonotic/util.qc index 49fe79b01..58d1d934f 100644 --- a/qcsrc/menu/xonotic/util.qc +++ b/qcsrc/menu/xonotic/util.qc @@ -769,19 +769,18 @@ void dialog_hudpanel_common_notoggle(entity me, string panelname) } #define FADE_TIME 0.5 -#define MAX_ALPHA_INCREASE 0.1 #define TRESHOLD_TIME 0.1 -float getHighlightAlpha(float baseAlpha, float highlightedTime) +float getHighlightAlpha(float startAlpha, float targetAlpha, float highlightedTime) { - float alphaIncrease; - if (time - highlightedTime - TRESHOLD_TIME < FADE_TIME) + float theAlpha; + if((time - highlightedTime - TRESHOLD_TIME) < FADE_TIME) { - alphaIncrease = max(0, (time - highlightedTime - TRESHOLD_TIME) / FADE_TIME); - alphaIncrease = (1 - alphaIncrease) * MAX_ALPHA_INCREASE; + float f = max(0, (time - highlightedTime - TRESHOLD_TIME) / FADE_TIME); + theAlpha = startAlpha + f * (targetAlpha - startAlpha); } else - alphaIncrease = 0; - return baseAlpha + alphaIncrease; + theAlpha = targetAlpha; + return theAlpha; } void CheckSendCvars(entity me, string cvarnamestring) diff --git a/qcsrc/menu/xonotic/util.qh b/qcsrc/menu/xonotic/util.qh index e7cd1028c..f880c2f47 100644 --- a/qcsrc/menu/xonotic/util.qh +++ b/qcsrc/menu/xonotic/util.qh @@ -48,7 +48,7 @@ void dialog_hudpanel_common_notoggle(entity me, string panelname); me.TD(me, 1, 4, e = makeXonoticCheckBox(0, strzone(strcat("hud_panel_", panelname)), _("Enable panel"))); \ DIALOG_HUDPANEL_COMMON_NOTOGGLE() -float getHighlightAlpha(float baseAlpha, float highlightedTime); +float getHighlightAlpha(float startAlpha, float targetAlpha, float highlightedTime); string _Nex_ExtResponseSystem_BannedServers; float _Nex_ExtResponseSystem_BannedServersNeedsRefresh; diff --git a/qcsrc/menu/xonotic/weaponslist.qc b/qcsrc/menu/xonotic/weaponslist.qc index 18e5ffb59..038f8d4c7 100644 --- a/qcsrc/menu/xonotic/weaponslist.qc +++ b/qcsrc/menu/xonotic/weaponslist.qc @@ -96,7 +96,7 @@ void XonoticWeaponsList_drawListBoxItem(entity me, int i, vector absSize, bool i if(isSelected) draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED); else if(highlightedTime) - draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, getHighlightAlpha(SKINALPHA_LISTBOX_SELECTED * 0.1, highlightedTime)); + draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_FOCUSED, getHighlightAlpha(SKINALPHA_LISTBOX_FOCUSED, SKINFADEALPHA_LISTBOX_FOCUSED, highlightedTime)); e = get_weaponinfo(stof(argv(i))); string msg = e.message; if(e.spawnflags & WEP_FLAG_MUTATORBLOCKED)