X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmodels%2Fmodel.qh;h=c6a1c2199b62b1c5a6ec305cbf81a28bbe3803e0;hp=7f20dc00478d3474f3d0c6a84178db1c8535497a;hb=HEAD;hpb=af71335a8e418edc55126a63aa65afd9353f413c diff --git a/qcsrc/common/models/model.qh b/qcsrc/common/models/model.qh index 7f20dc0047..c6a1c2199b 100644 --- a/qcsrc/common/models/model.qh +++ b/qcsrc/common/models/model.qh @@ -1,10 +1,9 @@ #pragma once -#define setmodel(e, m) _setmodel((e), (m).model_str()) - CLASS(Model, Object) - ATTRIB(Model, m_id, int, 0) - ATTRIB(Model, model_str, string(), func_null) + ATTRIB(Model, m_id, int, 0); + ATTRIB(Model, model_str, string()); + ATTRIB(Model, model_str_, string); CONSTRUCTOR(Model, string() path) { CONSTRUCT(Model); @@ -18,7 +17,14 @@ CLASS(Model, Object) LOG_WARNF("Missing model: \"%s\"", s); return; } - profile(sprintf("precache_model(\"%s\")", s)); + //profile(sprintf("precache_model(\"%s\")", s)); precache_model(s); + strcpy(this.model_str_, s); } ENDCLASS(Model) + +#define setmodel(this, m) MACRO_BEGIN \ + Model _setmodel_model = (m); \ + string _setmodel_cached = _setmodel_model.model_str_; \ + _setmodel((this), _setmodel_cached ? _setmodel_cached : _setmodel_model.model_str()); \ +MACRO_END