X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fmenu%2Fxonotic%2Fplayermodel.qc;h=3af8238ddd1812f7b56c28f87309eb9fdee24de5;hb=068324d293df795dbc41de75f38256b8c6c35607;hp=f498f8d2133cf01628bb8b4518bacc51e2588641;hpb=530e06120a7b41f6175b1144fedf6903da8c13b0;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/menu/xonotic/playermodel.qc b/qcsrc/menu/xonotic/playermodel.qc index f498f8d21..3af8238dd 100644 --- a/qcsrc/menu/xonotic/playermodel.qc +++ b/qcsrc/menu/xonotic/playermodel.qc @@ -1,18 +1,21 @@ -#ifdef INTERFACE -CLASS(XonoticPlayerModelSelector) EXTENDS(XonoticImage) - METHOD(XonoticPlayerModelSelector, configureXonoticPlayerModelSelector, void(entity)) - METHOD(XonoticPlayerModelSelector, loadCvars, void(entity)) - METHOD(XonoticPlayerModelSelector, saveCvars, void(entity)) - METHOD(XonoticPlayerModelSelector, draw, void(entity)) - METHOD(XonoticPlayerModelSelector, resizeNotify, void(entity, vector, vector, vector, vector)) - METHOD(XonoticPlayerModelSelector, showNotify, void(entity)) +#ifndef PLAYERMODEL_H +#define PLAYERMODEL_H +#include "image.qc" +CLASS(XonoticPlayerModelSelector, XonoticImage) + METHOD(XonoticPlayerModelSelector, configureXonoticPlayerModelSelector, void(entity)); + METHOD(XonoticPlayerModelSelector, loadModels, void(entity)); + METHOD(XonoticPlayerModelSelector, loadCvars, void(entity)); + 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) ATTRIB(XonoticPlayerModelSelector, currentModelTitle, string, string_null) ATTRIB(XonoticPlayerModelSelector, currentModelDescription, string, string_null) - METHOD(XonoticPlayerModelSelector, go, void(entity, float)) - METHOD(XonoticPlayerModelSelector, destroy, void(entity)) + METHOD(XonoticPlayerModelSelector, go, void(entity, float)); + METHOD(XonoticPlayerModelSelector, destroy, void(entity)); ATTRIB(XonoticPlayerModelSelector, origin, vector, '0 0 0') ATTRIB(XonoticPlayerModelSelector, size, vector, '0 0 0') ATTRIB(XonoticPlayerModelSelector, realFontSize, vector, '0 0 0') @@ -31,7 +34,7 @@ void PlayerModelSelector_Prev_Click(entity btn, entity me); entity makeXonoticPlayerModelSelector() { entity me; - me = spawnXonoticPlayerModelSelector(); + me = NEW(XonoticPlayerModelSelector); me.configureXonoticPlayerModelSelector(me); return me; } @@ -47,16 +50,19 @@ const float BUFMODELS_COUNT = 5; void XonoticPlayerModelSelector_configureXonoticPlayerModelSelector(entity me) { - float sortbuf, glob, i; + me.configureXonoticImage(me, string_null, -1); +} + +void XonoticPlayerModelSelector_loadModels(entity me) +{ + int i; string fn; - glob = search_begin(language_filename(get_model_datafilename(string_null, -1, "txt")), true, true); + float glob = search_begin(language_filename(get_model_datafilename(string_null, -1, "txt")), true, true); if (glob < 0) return; - me.configureXonoticImage(me, string_null, -1); - - sortbuf = buf_create(); + float sortbuf = buf_create(); for(i = 0; i < search_getsize(glob); ++i) { // select model #i! @@ -101,10 +107,14 @@ void XonoticPlayerModelSelector_configureXonoticPlayerModelSelector(entity me) me.loadCvars(me); // this will select the initial model, depending on the current cvars me.go(me, 0); // this will set the vars for the selected model } + void XonoticPlayerModelSelector_destroy(entity me) { - buf_del(me.bufModels); - me.bufModels = -1; + if(me.bufModels >= 0) + { + buf_del(me.bufModels); + me.bufModels = -1; + } } void XonoticPlayerModelSelector_loadCvars(entity me) @@ -218,6 +228,8 @@ void XonoticPlayerModelSelector_resizeNotify(entity me, vector relOrigin, vector void XonoticPlayerModelSelector_showNotify(entity me) { - me.configureXonoticPlayerModelSelector(me); + // Reinitialize self. + me.destroy(me); + me.loadModels(me); } #endif