From: Freddy Date: Sat, 20 Aug 2016 20:50:51 +0000 (+0200) Subject: Gametype Votescreen: Fix icons for custom gamemodes and add option for custom icons X-Git-Tag: xonotic-v0.8.2~629^2~1 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=24f758c7d26747e7181317cc9c8cb77f5348c421;p=xonotic%2Fxonotic-data.pk3dir.git Gametype Votescreen: Fix icons for custom gamemodes and add option for custom icons --- diff --git a/qcsrc/client/mapvoting.qc b/qcsrc/client/mapvoting.qc index 19c128a7d..e1b33158e 100644 --- a/qcsrc/client/mapvoting.qc +++ b/qcsrc/client/mapvoting.qc @@ -610,12 +610,7 @@ void GameTypeVote_ReadOption(int i) mv_maps[i] = gt; mv_flags[i] = ReadByte(); - string mv_picpath = sprintf("gfx/menu/%s/gametype_%s", autocvar_menu_skin, gt); - if(precache_pic(mv_picpath) == "") - mv_picpath = strcat("gfx/menu/default/gametype_", gt); - string pic = strzone(mv_picpath); - mv_pics[i] = pic; - mv_preview[i] = PreviewExists(pic); + string mv_picpath = string_null; if ( mv_flags[i] & GTV_CUSTOM ) { @@ -624,6 +619,13 @@ void GameTypeVote_ReadOption(int i) name = gt; mv_pk3[i] = strzone(name); mv_desc[i] = strzone(ReadString()); + gt = strzone(ReadString()); + mv_picpath = strzone(ReadString()); + // "" or " " makes precache_pic crash, string_null doesn't + if (strreplace(" ", "", mv_picpath) == "") + { + mv_picpath = string_null; + } } else { @@ -631,6 +633,18 @@ void GameTypeVote_ReadOption(int i) mv_pk3[i] = strzone(MapInfo_Type_ToText(type)); mv_desc[i] = MapInfo_Type_Description(type); } + + if(!mv_picpath || precache_pic(mv_picpath) == "") + { + mv_picpath = sprintf("gfx/menu/%s/gametype_%s", autocvar_menu_skin, gt); + if(precache_pic(mv_picpath) == "") + { + mv_picpath = strcat("gfx/menu/default/gametype_", gt); + } + } + string pic = strzone(mv_picpath); + mv_pics[i] = pic; + mv_preview[i] = PreviewExists(pic); } void MapVote_Init() diff --git a/qcsrc/server/mapvoting.qc b/qcsrc/server/mapvoting.qc index 7ffe4b934..b21186b57 100644 --- a/qcsrc/server/mapvoting.qc +++ b/qcsrc/server/mapvoting.qc @@ -336,6 +336,10 @@ void GameTypeVote_SendOption(int i) strcat("sv_vote_gametype_",type_name,"_name"))); WriteString(MSG_ENTITY, cvar_string( strcat("sv_vote_gametype_",type_name,"_description"))); + WriteString(MSG_ENTITY, cvar_string( + strcat("sv_vote_gametype_",type_name,"_type"))); + WriteString(MSG_ENTITY, cvar_string( + strcat("sv_vote_gametype_",type_name,"_icon"))); } } }