]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'mirceakitsune/campaign_gametype_icon' into 'master'
authorMartin Taibr <taibr.martin@gmail.com>
Sat, 4 Jan 2020 16:20:45 +0000 (16:20 +0000)
committerMartin Taibr <taibr.martin@gmail.com>
Sat, 4 Jan 2020 16:20:45 +0000 (16:20 +0000)
Draw the gametype icon on campaign entries

Since I've been doing multiple campaign fixes, I decided to include an update to the menu part as well. I wanted to see how it would look if the gametype icon of levels was also displayed within the field. Personally I find it good looking, as well somewhat easier to tell which level you're at with this change.

I tried several combinations; Above the checkmark looked okay, but it's harder to tell which level the icon is referring to... it seems to look best on the right side of the map preview image. I included a few screenshots, the first representing the old appearance and the last being what the MR currently adds... if you find another position better please suggest it and I'll make a new commit.

![campaign](/uploads/3cf11cc059b9353dfa1dc973c4e859b9/campaign.jpg)
![campaign_above_checkmark](/uploads/9537d4e2bc7919f4275c8848ffbba405/campaign_above_checkmark.jpg)
![campaign_preview_left](/uploads/2ecd0dfa12246c26a9accc4485658b4e/campaign_preview_left.jpg)
![campaign_preview_right](/uploads/f4b32394f3b54e13daf43a50e32b33a7/campaign_preview_right.jpg)

See merge request xonotic/xonotic-data.pk3dir!748

qcsrc/menu/xonotic/campaign.qc
qcsrc/menu/xonotic/campaign.qh

index a3ad36355d9cece13deb37c750054cfe8794d0d2..0f64aefdbc1a207248f7d1b29e206610b8d7c18e 100644 (file)
@@ -183,6 +183,9 @@ void XonoticCampaignList_resizeNotify(entity me, vector relOrigin, vector relSiz
 
        me.checkMarkOrigin = eY + eX * (me.columnCheckMarkOrigin + me.columnCheckMarkSize) - me.checkMarkSize;
 
+       me.typeIconOrigin = vec3(me.columnPreviewSize - me.checkMarkSize.x, me.checkMarkOrigin.y, 0);
+       me.typeIconSize = me.checkMarkSize;
+
        rewrapCampaign(me.columnNameSize, me.rowsPerItem - 3, me.emptyLineHeight, me.realFontSize);
 }
 void XonoticCampaignList_doubleClickListBoxItem(entity me, float i, vector where)
@@ -226,6 +229,10 @@ void XonoticCampaignList_drawListBoxItem(entity me, int i, vector absSize, bool
        else
                draw_Picture(me.columnPreviewOrigin * eX, strcat("/maps/", campaign_mapname[i]), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha);
 
+       s = strcat("/gfx/menu/", cvar_string("menu_skin"), "/gametype_", campaign_gametype[i]);
+       if(i <= me.campaignIndex && draw_PictureSize(s) != '0 0 0')
+               draw_Picture(me.typeIconOrigin, s, me.typeIconSize, '1 1 1', 1);
+
        if(i < me.campaignIndex)
                draw_Picture(me.checkMarkOrigin, "checkmark", me.checkMarkSize, '1 1 1', 1);
        if(i <= me.campaignIndex)
index 298e27587466697572311d048684b11a2dc21db9..d6c674e8d6343ef21cf9722ebecd0cab9e1d2290 100644 (file)
@@ -23,6 +23,8 @@ CLASS(XonoticCampaignList, XonoticListBox)
        ATTRIB(XonoticCampaignList, columnCheckMarkSize, float, 0);
        ATTRIB(XonoticCampaignList, checkMarkOrigin, vector, '0 0 0');
        ATTRIB(XonoticCampaignList, checkMarkSize, vector, '0 0 0');
+       ATTRIB(XonoticCampaignList, typeIconOrigin, vector, '0 0 0');
+       ATTRIB(XonoticCampaignList, typeIconSize, vector, '0 0 0');
        ATTRIB(XonoticCampaignList, realUpperMargin1, float, 0);
        ATTRIB(XonoticCampaignList, realUpperMargin2, float, 0);