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)
}
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)
#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;
#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!
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));
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)
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);
float draw_NeedResizeNotify;
-string draw_currentSkin;
-
float draw_TextWidth_WithColors(string s, vector size);
float draw_TextWidth_WithoutColors(string s, vector size);
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)
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)
{
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);
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);
}
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)
{