]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge branch 'master' into mirceakitsune/preview_images
authorMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Tue, 3 Jan 2012 16:43:59 +0000 (18:43 +0200)
committerMircea Kitsune <sonichedgehog_hyperblast00@yahoo.com>
Tue, 3 Jan 2012 16:43:59 +0000 (18:43 +0200)
21 files changed:
gfx/m_nomap.jpg [deleted file]
gfx/menu/luminos/nopreview_map.tga [new file with mode: 0644]
gfx/menu/luminos/nopreview_menuskin.tga [new file with mode: 0644]
gfx/menu/luminos/nopreview_player.tga [new file with mode: 0644]
gfx/menu/wickedx/nopreview_map.tga [new file with mode: 0644]
gfx/menu/wickedx/nopreview_menuskin.tga [new file with mode: 0644]
gfx/menu/wickedx/nopreview_player.tga [new file with mode: 0644]
gfx/menu/xaw/nopreview_map.tga [new file with mode: 0644]
gfx/menu/xaw/nopreview_menuskin.tga [new file with mode: 0644]
gfx/menu/xaw/nopreview_player.tga [new file with mode: 0644]
qcsrc/client/Main.qc
qcsrc/client/mapvoting.qc
qcsrc/common/util.qc
qcsrc/common/util.qh
qcsrc/menu/draw.qc
qcsrc/menu/draw.qh
qcsrc/menu/xonotic/campaign.c
qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c
qcsrc/menu/xonotic/maplist.c
qcsrc/menu/xonotic/playermodel.c
qcsrc/menu/xonotic/skinlist.c

diff --git a/gfx/m_nomap.jpg b/gfx/m_nomap.jpg
deleted file mode 100644 (file)
index 79675d6..0000000
Binary files a/gfx/m_nomap.jpg and /dev/null differ
diff --git a/gfx/menu/luminos/nopreview_map.tga b/gfx/menu/luminos/nopreview_map.tga
new file mode 100644 (file)
index 0000000..c4fed58
Binary files /dev/null and b/gfx/menu/luminos/nopreview_map.tga differ
diff --git a/gfx/menu/luminos/nopreview_menuskin.tga b/gfx/menu/luminos/nopreview_menuskin.tga
new file mode 100644 (file)
index 0000000..c4fed58
Binary files /dev/null and b/gfx/menu/luminos/nopreview_menuskin.tga differ
diff --git a/gfx/menu/luminos/nopreview_player.tga b/gfx/menu/luminos/nopreview_player.tga
new file mode 100644 (file)
index 0000000..c4fed58
Binary files /dev/null and b/gfx/menu/luminos/nopreview_player.tga differ
diff --git a/gfx/menu/wickedx/nopreview_map.tga b/gfx/menu/wickedx/nopreview_map.tga
new file mode 100644 (file)
index 0000000..2fc5c5d
Binary files /dev/null and b/gfx/menu/wickedx/nopreview_map.tga differ
diff --git a/gfx/menu/wickedx/nopreview_menuskin.tga b/gfx/menu/wickedx/nopreview_menuskin.tga
new file mode 100644 (file)
index 0000000..2fc5c5d
Binary files /dev/null and b/gfx/menu/wickedx/nopreview_menuskin.tga differ
diff --git a/gfx/menu/wickedx/nopreview_player.tga b/gfx/menu/wickedx/nopreview_player.tga
new file mode 100644 (file)
index 0000000..2fc5c5d
Binary files /dev/null and b/gfx/menu/wickedx/nopreview_player.tga differ
diff --git a/gfx/menu/xaw/nopreview_map.tga b/gfx/menu/xaw/nopreview_map.tga
new file mode 100644 (file)
index 0000000..7b01510
Binary files /dev/null and b/gfx/menu/xaw/nopreview_map.tga differ
diff --git a/gfx/menu/xaw/nopreview_menuskin.tga b/gfx/menu/xaw/nopreview_menuskin.tga
new file mode 100644 (file)
index 0000000..7b01510
Binary files /dev/null and b/gfx/menu/xaw/nopreview_menuskin.tga differ
diff --git a/gfx/menu/xaw/nopreview_player.tga b/gfx/menu/xaw/nopreview_player.tga
new file mode 100644 (file)
index 0000000..7b01510
Binary files /dev/null and b/gfx/menu/xaw/nopreview_player.tga differ
index fd8afe117c49d2354e0768f3406eabd67b49fdf0..95ff68f52fb2455c1ba8f52d5c0157445207126f 100644 (file)
@@ -212,6 +212,8 @@ void CSQC_Init(void)
 
        hud_configure_prev = -1;
        tab_panel = -1;
+
+       draw_currentSkin = strzone(strcat("gfx/menu/", cvar_string("menu_skin")));
 }
 
 // CSQC_Shutdown : Called every time the CSQC code is shutdown (changing maps, quitting, etc)
index 0af74018eeb58406ed398d38033ce24773674cad..1eeb304c7c169e29d5cc92fd43fc428f8a5b54bc 100644 (file)
@@ -88,7 +88,10 @@ void MapVote_DrawMapItem(vector pos, float isize, float tsize, string map, strin
        }
        else
        {
-               drawpic(pos, pic, img_size, '1 1 1', theAlpha, DRAWFLAG_NORMAL);
+               if(precache_pic(pic) == "")
+                       drawpic(pos, draw_UseSkinFor("nopreview_map"), img_size, '1 1 1', theAlpha, DRAWFLAG_NORMAL);
+               else
+                       drawpic(pos, pic, img_size, '1 1 1', theAlpha, DRAWFLAG_NORMAL);
        }
 
        if(id == mv_ownvote)
index 5531cc483dd99c99dc1a3b44af8a9c5a6d339df2..e698a28bd8a4caff798f7767820924ffd8c9bd85 100644 (file)
@@ -39,6 +39,16 @@ void wordwrap_sprint(string s, float l)
 #endif
 #endif
 
+#ifndef SVQC
+string draw_UseSkinFor(string pic)
+{
+       if(substring(pic, 0, 1) == "/")
+               return substring(pic, 1, strlen(pic)-1);
+       else
+               return strcat(draw_currentSkin, "/", pic);
+}
+#endif
+
 string unescape(string in)
 {
        float i, len;
index 6d4eb61130b13fd26a75948fb28ff8b2c75d8721..78c9baa6edade795bd07237d3a4e56122c525265 100644 (file)
@@ -20,6 +20,11 @@ void wordwrap_sprint(string s, float l);
 #endif
 void wordwrap_cb(string s, float l, void(string) callback)
 
+#ifndef SVQC
+string draw_currentSkin;
+string draw_UseSkinFor(string pic);
+#endif
+
 float GameCommand_Generic(string cmd);
 // returns TRUE if handled, FALSE otherwise
 // tokenizes its input!
index 12b56d8dae8f2632ef8bbb84c847a2fde28863dd..7fe4aea3bdc38e57c99eb976b90326f8658198ca 100644 (file)
@@ -2,14 +2,6 @@ string draw_mousepointer;
 vector draw_mousepointer_offset;
 vector draw_mousepointer_size;
 
-string draw_UseSkinFor(string pic)
-{
-       if(substring(pic, 0, 1) == "/")
-               return substring(pic, 1, strlen(pic)-1);
-       else
-               return strcat(draw_currentSkin, "/", pic);
-}
-
 void draw_setMousePointer(string pic, vector theSize, vector theOffset)
 {
        draw_mousepointer = strzone(draw_UseSkinFor(pic));
@@ -61,10 +53,10 @@ vector boxToGlobalSize(vector v, vector theScale)
        return v;
 }
 
-void draw_PreloadPicture(string pic)
+string draw_PreloadPicture(string pic)
 {
        pic = draw_UseSkinFor(pic);
-       precache_pic(pic);
+       return precache_pic(pic);
 }
 
 void draw_Picture(vector theOrigin, string pic, vector theSize, vector theColor, float theAlpha)
index 63e22bd6357d85cea28f20cc99c825be20e7b795..0f5811713d6f3c1b66f3f38ae2742d3bb2b810ed 100644 (file)
@@ -14,7 +14,7 @@ void draw_reset(float cw, float ch, float ox, float oy);
 void draw_setMousePointer(string pic, vector theSize, vector theOffset);
 void draw_drawMousePointer(vector where);
 
-void draw_PreloadPicture(string pic);
+string draw_PreloadPicture(string pic);
 void draw_ButtonPicture(vector theOrigin, string pic, vector theSize, vector theColor, float theAlpha);
 void draw_VertButtonPicture(vector theOrigin, string pic, vector theSize, vector theColor, float theAlpha);
 void draw_BorderPicture(vector theOrigin, string pic, vector theSize, vector theColor, float theAlpha, vector theBorderSize);
@@ -38,7 +38,5 @@ vector globalToBoxSize(vector v, vector scale);
 
 float draw_NeedResizeNotify;
 
-string draw_currentSkin;
-
 float draw_TextWidth_WithColors(string s, vector size);
 float draw_TextWidth_WithoutColors(string s, vector size);
index 04f7a083c2d32a035ac9bb5d15e6c2e1c127b72e..72191ac51f5fb34ee2b739dad1b5ba7e8d9f6714 100644 (file)
@@ -275,7 +275,11 @@ void XonoticCampaignList_drawListBoxItem(entity me, float i, vector absSize, flo
                draw_Fill('0 0 0', '1 1 0', SKINCOLOR_LISTBOX_SELECTED, SKINALPHA_LISTBOX_SELECTED);
 
        s = ftos(p);
-       draw_Picture(me.columnPreviewOrigin * eX, strcat("/maps/", campaign_mapname[i]), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha);
+       if(draw_PreloadPicture(strcat("/maps/", campaign_mapname[i])) == "")
+               draw_Picture(me.columnPreviewOrigin * eX, "nopreview_map", me.columnPreviewSize * eX + eY, '1 1 1', theAlpha);
+       else
+               draw_Picture(me.columnPreviewOrigin * eX, strcat("/maps/", campaign_mapname[i]), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha);
+
        if(i < me.campaignIndex)
                draw_Picture(me.checkMarkOrigin, "checkmark", me.checkMarkSize, '1 1 1', 1);
        if(i <= me.campaignIndex)
index 31ea3e084bbe8f67623e7bd3f2c3bf1fa4922267..98395eab490a6cc348e5a1bb91f4568ae483ff87 100644 (file)
@@ -54,7 +54,10 @@ void XonoticMapInfoDialog_loadMapInfo(entity me, float i, entity mlb)
        me.authorLabel.setText(me.authorLabel, me.currentMapAuthor);
        me.descriptionLabel.setText(me.descriptionLabel, me.currentMapDescription);
        me.featuresLabel.setText(me.featuresLabel, me.currentMapFeaturesText);
-       me.previewImage.src = me.currentMapPreviewImage;
+       if(draw_PreloadPicture(me.currentMapPreviewImage) == "")
+               me.previewImage.src = "nopreview_map";
+       else
+               me.previewImage.src = me.currentMapPreviewImage;
 
        for(i = 0; i < GameType_GetCount(); ++i)
        {
index 650e343c6b29f6c07db10bd00b91983054a3247a..1b1255b7378d0acbdf1bc8dc2eb43f2a3e1f2917 100644 (file)
@@ -186,7 +186,11 @@ void XonoticMapList_drawListBoxItem(entity me, float i, vector absSize, float is
                draw_Fill('0 0 0', '1 1 0', SKINCOLOR_MAPLIST_INCLUDEDBG, SKINALPHA_MAPLIST_INCLUDEDBG);
 
        s = ftos(p);
-       draw_Picture(me.columnPreviewOrigin * eX, strcat("/maps/", MapInfo_Map_bspname), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha);
+       if(draw_PreloadPicture(strcat("/maps/", MapInfo_Map_bspname)) == "")
+               draw_Picture(me.columnPreviewOrigin * eX, "nopreview_map", me.columnPreviewSize * eX + eY, '1 1 1', theAlpha);
+       else
+               draw_Picture(me.columnPreviewOrigin * eX, strcat("/maps/", MapInfo_Map_bspname), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha);
+
        if(included)
                draw_Picture(me.checkMarkOrigin, "checkmark", me.checkMarkSize, '1 1 1', 1);
        s = draw_TextShortenToWidth(MapInfo_Map_titlestring, me.columnNameSize, 0, me.realFontSize);
index ef02224dfaf8bc332b45d4947b78f131fcb33e83..0548e1e8fad485d5e3b01c4e89dbf115a140a7cd 100644 (file)
@@ -137,7 +137,10 @@ void XonoticPlayerModelSelector_go(entity me, float d)
        me.currentModelDescription = strzone(bufstr_get(me.bufModels, BUFMODELS_COUNT*me.idxModels+BUFMODELS_DESC));
 
        // fix the image
-       me.src = me.currentModelImage;
+       if(draw_PreloadPicture(me.currentModelImage) == "")
+               me.src = "nopreview_player";
+       else
+               me.src = me.currentModelImage;
        me.updateAspect(me);
 }
 
index bb01f974cbf1d0c6312b57cd8ec40c1f0107edca..f2b2d8a241ca08441009a48f29a254e56962a6f3 100644 (file)
@@ -104,7 +104,10 @@ void XonoticSkinList_getSkins(entity me)
                bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_NAME, substring(s, 9, strlen(s) - 24)); // the * part
                bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_TITLE, _("<TITLE>"));
                bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_AUTHOR, _("<AUTHOR>"));
-               bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_PREVIEW, strcat("/gfx/menu/", substring(s, 9, strlen(s) - 24), "/skinpreview"));
+               if(draw_PreloadPicture(strcat("/gfx/menu/", substring(s, 9, strlen(s) - 24), "/skinpreview")) == "")
+                       bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_PREVIEW, "nopreview_menuskin");
+               else
+                       bufstr_set(buf, i * SKINPARM_COUNT + SKINPARM_PREVIEW, strcat("/gfx/menu/", substring(s, 9, strlen(s) - 24), "/skinpreview"));
                fh = fopen(language_filename(s), FILE_READ);
                if(fh < 0)
                {