X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fmenu%2Fxonotic%2Fplayermodel.c;h=652c581c00f6110e3cc66785d009adcb6cb89319;hp=ef02224dfaf8bc332b45d4947b78f131fcb33e83;hb=71e6c75bc408ae5a116f296797c49c0cef7be113;hpb=5a682c6eb030594b9cc2cf652dd5ab98475095db diff --git a/qcsrc/menu/xonotic/playermodel.c b/qcsrc/menu/xonotic/playermodel.c index ef02224dfa..652c581c00 100644 --- a/qcsrc/menu/xonotic/playermodel.c +++ b/qcsrc/menu/xonotic/playermodel.c @@ -5,6 +5,7 @@ CLASS(XonoticPlayerModelSelector) EXTENDS(XonoticImage) METHOD(XonoticPlayerModelSelector, saveCvars, void(entity)) METHOD(XonoticPlayerModelSelector, draw, void(entity)) METHOD(XonoticPlayerModelSelector, resizeNotify, void(entity, vector, vector, vector, vector)) + METHOD(XonoticPlayerModelSelector, showNotify, void(entity)) ATTRIB(XonoticPlayerModelSelector, currentModel, string, string_null) ATTRIB(XonoticPlayerModelSelector, currentSkin, float, 0) ATTRIB(XonoticPlayerModelSelector, currentModelImage, string, string_null) @@ -42,6 +43,8 @@ entity makeXonoticPlayerModelSelector() #define BUFMODELS_DESC 4 #define BUFMODELS_COUNT 5 +#define XONVOTE186 1 // (nyov) removal of model text description + void XonoticPlayerModelSelector_configureXonoticPlayerModelSelector(entity me) { float sortbuf, glob, i; @@ -76,12 +79,19 @@ void XonoticPlayerModelSelector_configureXonoticPlayerModelSelector(entity me) bufstr_set(me.bufModels, BUFMODELS_COUNT*i+BUFMODELS_MODEL, get_model_parameters_modelname); bufstr_set(me.bufModels, BUFMODELS_COUNT*i+BUFMODELS_SKIN, ftos(get_model_parameters_modelskin)); get_model_parameters_desc = strcat(get_model_parameters_desc, "\n"); +#if XONVOTE186 + if(get_model_parameters_sex) + get_model_parameters_desc = strcat(get_model_parameters_desc, sprintf("\n%s", get_model_parameters_sex)); +#else + if(get_model_parameters_description) + get_model_parameters_desc = strcat(get_model_parameters_desc, sprintf("\n%s\n", get_model_parameters_description)); if(get_model_parameters_sex) get_model_parameters_desc = strcat(get_model_parameters_desc, sprintf("\nSex: %s", get_model_parameters_sex)); if(get_model_parameters_weight) get_model_parameters_desc = strcat(get_model_parameters_desc, sprintf("\nWeight: %g kg", get_model_parameters_weight)); if(get_model_parameters_age) get_model_parameters_desc = strcat(get_model_parameters_desc, sprintf("\nAge: %g", get_model_parameters_age)); +#endif while(substring(get_model_parameters_desc, -1, 1) == "\n") get_model_parameters_desc = substring(get_model_parameters_desc, 0, -2); bufstr_set(me.bufModels, BUFMODELS_COUNT*i+BUFMODELS_DESC, get_model_parameters_desc); @@ -137,7 +147,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_PictureSize(me.currentModelImage) == '0 0 0') + me.src = "nopreview_player"; + else + me.src = me.currentModelImage; me.updateAspect(me); } @@ -171,18 +184,27 @@ void XonoticPlayerModelSelector_draw(entity me) if (me.numModels <= 0) { - draw_CenterText('0.5 0.5 0', _(""), me.realFontSize, '1 1 1', 0.6, FALSE); + draw_CenterText('0.5 0.5 0', _(""), me.realFontSize, SKINCOLOR_TEXT, 0.6, FALSE); return; } SUPER(XonoticPlayerModelSelector).draw(me); // draw text on the image, handle \n in the description + + draw_beginBoldFont(); + +#if XONVOTE186 // (nyov) lower name display looks better when there is no description text + draw_CenterText('0.5 0.8 0', me.currentModelTitle, me.realFontSize * (me.titleFontSize / me.fontSize), SKINCOLOR_MODELTITLE, SKINALPHA_MODELTITLE, FALSE); +#else draw_CenterText('0.5 0 0', me.currentModelTitle, me.realFontSize * (me.titleFontSize / me.fontSize), SKINCOLOR_MODELTITLE, SKINALPHA_MODELTITLE, FALSE); +#endif + + draw_endBoldFont(); o = '0.5 1 0' - eY * me.realFontSize_y * ((n = tokenizebyseparator(me.currentModelDescription, "\n")) + 0.5); for(i = 0; i < n; ++i) { - draw_CenterText(o, argv(i), me.realFontSize, '1 1 1', 1, FALSE); + draw_CenterText(o, argv(i), me.realFontSize, SKINCOLOR_TEXT, 1, FALSE); o += eY * me.realFontSize_y; } } @@ -193,4 +215,9 @@ void XonoticPlayerModelSelector_resizeNotify(entity me, vector relOrigin, vector me.realFontSize_y = me.fontSize / absSize_y; me.realFontSize_x = me.fontSize / absSize_x; } + +void XonoticPlayerModelSelector_showNotify(entity me) +{ + me.configureXonoticPlayerModelSelector(me); +} #endif