From 2b84b4c6515479ed4bd1134b119ea974f7813a57 Mon Sep 17 00:00:00 2001 From: Mircea Kitsune Date: Fri, 25 Nov 2011 17:26:31 +0200 Subject: [PATCH] Attempt to make "no preview" images skin dependent. Works for the client part, but the menu does not see it yet --- gfx/{ => menu/luminos}/nopreview_map.tga | Bin gfx/{ => menu/luminos}/nopreview_player.tga | Bin qcsrc/client/Main.qc | 2 ++ qcsrc/client/mapvoting.qc | 2 +- qcsrc/common/util.qc | 10 ++++++++++ qcsrc/common/util.qh | 5 +++++ qcsrc/menu/draw.qc | 8 -------- qcsrc/menu/draw.qh | 2 -- qcsrc/menu/xonotic/campaign.c | 2 +- .../xonotic/dialog_multiplayer_create_mapinfo.c | 2 +- qcsrc/menu/xonotic/maplist.c | 2 +- qcsrc/menu/xonotic/playermodel.c | 2 +- 12 files changed, 22 insertions(+), 15 deletions(-) rename gfx/{ => menu/luminos}/nopreview_map.tga (100%) rename gfx/{ => menu/luminos}/nopreview_player.tga (100%) diff --git a/gfx/nopreview_map.tga b/gfx/menu/luminos/nopreview_map.tga similarity index 100% rename from gfx/nopreview_map.tga rename to gfx/menu/luminos/nopreview_map.tga diff --git a/gfx/nopreview_player.tga b/gfx/menu/luminos/nopreview_player.tga similarity index 100% rename from gfx/nopreview_player.tga rename to gfx/menu/luminos/nopreview_player.tga diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc index 326bae22b..d9f56199b 100644 --- a/qcsrc/client/Main.qc +++ b/qcsrc/client/Main.qc @@ -167,6 +167,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) diff --git a/qcsrc/client/mapvoting.qc b/qcsrc/client/mapvoting.qc index 901a3e271..7871f09ce 100644 --- a/qcsrc/client/mapvoting.qc +++ b/qcsrc/client/mapvoting.qc @@ -91,7 +91,7 @@ void MapVote_DrawMapItem(vector pos, float isize, float tsize, string map, strin if(fexists(strcat(pic, ".jpg")) || fexists(strcat(pic, ".png")) || fexists(strcat(pic, ".tga"))) drawpic(pos, pic, img_size, '1 1 1', alpha, DRAWFLAG_NORMAL); else - drawpic(pos, "gfx/nopreview_map", img_size, '1 1 1', alpha, DRAWFLAG_NORMAL); + drawpic(pos, draw_UseSkinFor("nopreview_player"), img_size, '1 1 1', alpha, DRAWFLAG_NORMAL); } if(id == mv_ownvote) diff --git a/qcsrc/common/util.qc b/qcsrc/common/util.qc index 5ffef8f09..aed228455 100644 --- a/qcsrc/common/util.qc +++ b/qcsrc/common/util.qc @@ -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; diff --git a/qcsrc/common/util.qh b/qcsrc/common/util.qh index b2e77484e..96ae0040e 100644 --- a/qcsrc/common/util.qh +++ b/qcsrc/common/util.qh @@ -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! diff --git a/qcsrc/menu/draw.qc b/qcsrc/menu/draw.qc index 12b56d8da..0a041940e 100644 --- a/qcsrc/menu/draw.qc +++ b/qcsrc/menu/draw.qc @@ -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)); diff --git a/qcsrc/menu/draw.qh b/qcsrc/menu/draw.qh index 63e22bd63..579f84f28 100644 --- a/qcsrc/menu/draw.qh +++ b/qcsrc/menu/draw.qh @@ -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); diff --git a/qcsrc/menu/xonotic/campaign.c b/qcsrc/menu/xonotic/campaign.c index 75df2abe9..83b93ffef 100644 --- a/qcsrc/menu/xonotic/campaign.c +++ b/qcsrc/menu/xonotic/campaign.c @@ -278,7 +278,7 @@ void XonoticCampaignList_drawListBoxItem(entity me, float i, vector absSize, flo if(fexists(strcat("maps/", campaign_mapname[i], ".jpg")) || fexists(strcat("maps/", campaign_mapname[i], ".png")) || fexists(strcat("maps/", campaign_mapname[i], ".tga"))) draw_Picture(me.columnPreviewOrigin * eX, strcat("/maps/", campaign_mapname[i]), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha); else - draw_Picture(me.columnPreviewOrigin * eX, "/gfx/nopreview_map", me.columnPreviewSize * eX + eY, '1 1 1', theAlpha); + draw_Picture(me.columnPreviewOrigin * eX, draw_UseSkinFor("nopreview_map"), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha); if(i < me.campaignIndex) draw_Picture(me.checkMarkOrigin, "checkmark", me.checkMarkSize, '1 1 1', 1); diff --git a/qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c b/qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c index ec1e61520..10eb23f11 100644 --- a/qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c +++ b/qcsrc/menu/xonotic/dialog_multiplayer_create_mapinfo.c @@ -57,7 +57,7 @@ void XonoticMapInfoDialog_loadMapInfo(entity me, float i, entity mlb) if(fexists(strcat("maps/", me.currentMapPreviewImage, ".jpg")) || fexists(strcat("maps/", me.currentMapPreviewImage, ".png")) || fexists(strcat("maps/", me.currentMapPreviewImage, ".tga"))) me.previewImage.src = me.currentMapPreviewImage; else - me.previewImage.src = "/gfx/nopreview_map"; + me.previewImage.src = draw_UseSkinFor("nopreview_player"); for(i = 0; i < GameType_GetCount(); ++i) { diff --git a/qcsrc/menu/xonotic/maplist.c b/qcsrc/menu/xonotic/maplist.c index f55a20000..b6772e43e 100644 --- a/qcsrc/menu/xonotic/maplist.c +++ b/qcsrc/menu/xonotic/maplist.c @@ -189,7 +189,7 @@ void XonoticMapList_drawListBoxItem(entity me, float i, vector absSize, float is if(fexists(strcat("maps/", MapInfo_Map_bspname, ".jpg")) || fexists(strcat("maps/", MapInfo_Map_bspname, ".png")) || fexists(strcat("maps/", MapInfo_Map_bspname, ".tga"))) draw_Picture(me.columnPreviewOrigin * eX, strcat("/maps/", MapInfo_Map_bspname), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha); else - draw_Picture(me.columnPreviewOrigin * eX, "/gfx/nopreview_map", me.columnPreviewSize * eX + eY, '1 1 1', theAlpha); + draw_Picture(me.columnPreviewOrigin * eX, draw_UseSkinFor("nopreview_map"), me.columnPreviewSize * eX + eY, '1 1 1', theAlpha); if(included) draw_Picture(me.checkMarkOrigin, "checkmark", me.checkMarkSize, '1 1 1', 1); diff --git a/qcsrc/menu/xonotic/playermodel.c b/qcsrc/menu/xonotic/playermodel.c index 9fc836cc5..a29698668 100644 --- a/qcsrc/menu/xonotic/playermodel.c +++ b/qcsrc/menu/xonotic/playermodel.c @@ -140,7 +140,7 @@ void XonoticPlayerModelSelector_go(entity me, float d) if(fexists(strcat(me.currentModel, "_", ftos(me.currentSkin), ".jpg")) || fexists(strcat(me.currentModel, "_", ftos(me.currentSkin), ".png")) || fexists(strcat(me.currentModel, "_", ftos(me.currentSkin), ".tga"))) me.src = me.currentModelImage; else - me.src = "/gfx/nopreview_player"; + me.src = draw_UseSkinFor("nopreview_player"); me.updateAspect(me); } -- 2.39.2