From a1687afb4cff7db363b56d03a4c43cfda0203e19 Mon Sep 17 00:00:00 2001 From: ac-stef Date: Mon, 1 May 2017 22:01:14 +0200 Subject: [PATCH] remove realtime model modding models can still be changed by mod packages --- source/src/entities.cpp | 11 +++----- source/src/hudgun.h | 5 ++-- source/src/rendermodel.cpp | 51 +++++++++++--------------------------- source/src/weapon.cpp | 14 +---------- 4 files changed, 21 insertions(+), 60 deletions(-) diff --git a/source/src/entities.cpp b/source/src/entities.cpp index b51fdfb0..90f67653 100644 --- a/source/src/entities.cpp +++ b/source/src/entities.cpp @@ -9,20 +9,15 @@ VARP(showplayerstarts, 0, 0, 1); vector ents; vector eh_ents; // edithide entities + const char *entmdlnames[] = { - "pistolclips", "ammobox", "nade", "health", "helmet", "kevlar", "akimbo", "nades" //FIXME + "pickups/nades", "pickups/pistolclips", "pickups/ammobox", "pickups/nade", "pickups/health", "pickups/helmet", "pickups/kevlar", "pickups/akimbo", "" // doublenades + I_CLIPS..I_AKIMBO }; void renderent(entity &e) { - /* FIXME: if the item list change, this hack will be messed */ - - defformatstring(widn)("modmdlpickup%d", e.type-3); - defformatstring(mdlname)("pickups/%s", identexists(widn)?getalias(widn): - - entmdlnames[e.type-I_CLIPS+(m_lss && e.type==I_GRENADE ? 5:0)]); - + const char *mdlname = entmdlnames[isitem(e.type) && !(m_lss && e.type == I_GRENADE) ? e.type - I_CLIPS + 1 : 0]; // render double nades in lss float z = (float)(1+sinf(lastmillis/100.0f+e.x+e.y)/20), yaw = lastmillis/10.0f; rendermodel(mdlname, ANIM_MAPMODEL|ANIM_LOOP|ANIM_DYNALLOC, 0, 0, vec(e.x, e.y, z+S(e.x, e.y)->floor + float(e.attr1) / ENTSCALE10), 0, yaw, 0); } diff --git a/source/src/hudgun.h b/source/src/hudgun.h index 3056b8b8..18fabcfc 100644 --- a/source/src/hudgun.h +++ b/source/src/hudgun.h @@ -115,9 +115,8 @@ void preload_hudguns() { loopi(NUMGUNS) { - if (i==GUN_CPISTOL) continue; //RR 18/12/12 - Remove when cpistol is added. - defformatstring(widn)("modmdlweap%d", i); - defformatstring(path)("weapons/%s", identexists(widn)?getalias(widn):guns[i].modelname); + if(i == GUN_CPISTOL) continue; + defformatstring(path)("weapons/%s", guns[i].modelname); loadmodel(path); } } diff --git a/source/src/rendermodel.cpp b/source/src/rendermodel.cpp index 5fa0dac5..79620275 100644 --- a/source/src/rendermodel.cpp +++ b/source/src/rendermodel.cpp @@ -905,9 +905,8 @@ void preload_playermodels() if(dynshadow && playermdl) playermdl->genshadows(8.0f, 4.0f); loopi(NUMGUNS) { - if (i==GUN_CPISTOL) continue; //RR 18/12/12 - Remove when cpistol is added. - defformatstring(widn)("modmdlvwep%d", i); - defformatstring(vwep)("weapons/%s/world", identexists(widn)?getalias(widn):guns[i].modelname); + if(i == GUN_CPISTOL) continue; + defformatstring(vwep)("weapons/%s/world", guns[i].modelname); model *vwepmdl = loadmodel(vwep); if(dynshadow && vwepmdl) vwepmdl->genshadows(8.0f, 4.0f); } @@ -915,37 +914,18 @@ void preload_playermodels() void preload_entmodels() { - string buf; - - extern const char *entmdlnames[]; - loopi(I_AKIMBO-I_CLIPS+1) - { - strcpy(buf, "pickups/"); - - defformatstring(widn)("modmdlpickup%d", i-3); - - if (identexists(widn)) - concatstring(buf, getalias(widn)); - else - concatstring(buf, entmdlnames[i]); - - model *mdl = loadmodel(buf); - - if(dynshadow && mdl) mdl->genshadows(8.0f, 2.0f); - } - static const char *bouncemdlnames[] = { "misc/gib01", "misc/gib02", "misc/gib03", "weapons/grenade/static" }; - loopi(sizeof(bouncemdlnames)/sizeof(bouncemdlnames[0])) - { - model *mdl = NULL; - defformatstring(widn)("modmdlbounce%d", i); - - if (identexists(widn)) - mdl = loadmodel(getalias(widn)); - else - mdl = loadmodel(bouncemdlnames[i]); - - if(dynshadow && mdl) mdl->genshadows(8.0f, 2.0f); - } + extern const char *entmdlnames[]; + for(int i = 0; entmdlnames[i][0]; i++) + { + model *mdl = loadmodel(entmdlnames[i]); + if(dynshadow && mdl) mdl->genshadows(8.0f, 2.0f); + } + static const char *bouncemdlnames[] = { "misc/gib01", "misc/gib02", "misc/gib03", "weapons/grenade/static" }; + loopi(sizeof(bouncemdlnames)/sizeof(bouncemdlnames[0])) + { + model *mdl = loadmodel(bouncemdlnames[i]); + if(dynshadow && mdl) mdl->genshadows(8.0f, 2.0f); + } } bool preload_mapmodels(bool trydl) @@ -1095,8 +1075,7 @@ void renderclient(playerent *d) } } string vwep; - defformatstring(widn)("modmdlvwep%d", d->weaponsel->type); - if(d->weaponsel) formatstring(vwep)("weapons/%s/world", identexists(widn)?getalias(widn):d->weaponsel->info.modelname); + if(d->weaponsel) formatstring(vwep)("weapons/%s/world", d->weaponsel->info.modelname); else vwep[0] = 0; renderclient(d, "playermodels", vwep[0] ? vwep : NULL, -(int)textureload(skin)->id); } diff --git a/source/src/weapon.cpp b/source/src/weapon.cpp index c56a02d5..d370ec5d 100644 --- a/source/src/weapon.cpp +++ b/source/src/weapon.cpp @@ -509,23 +509,13 @@ void renderbounceents() switch(p->bouncetype) { case BT_NADE: - if (identexists("modmdlbounce3")) - copystring(model, getalias("modmdlbounce3")); - else copystring(model, "weapons/grenade/static"); break; case BT_GIB: default: { uint n = (((4*(uint)(size_t)p)+(uint)p->timetolive)%3)+1; - - defformatstring(widn)("modmdlbounce%d", n-1); - - if (identexists(widn)) - copystring(model, getalias(widn)); - else formatstring(model)("misc/gib0%u", n); - int t = lastmillis-p->millis; if(t>p->timetolive-2000) { @@ -537,7 +527,6 @@ void renderbounceents() break; } } - path(model); rendermodel(model, anim|ANIM_LOOP|ANIM_DYNALLOC, 0, 1.1f, o, 0, p->yaw+90, p->pitch, 0, basetime); } } @@ -892,8 +881,7 @@ void weapon::renderhudmodel(int lastaction, int index) weaponmove wm; if(!intermission) wm.calcmove(unitv, lastaction, p); // if(!intermission) wm.calcmove(unitv, p->lastaction, p); - defformatstring(widn)("modmdlweap%d", type); - defformatstring(path)("weapons/%s", identexists(widn)?getalias(widn):info.modelname); + defformatstring(path)("weapons/%s", info.modelname); bool emit = (wm.anim&ANIM_INDEX)==ANIM_GUN_SHOOT && (lastmillis - lastaction) < flashtime(); // bool emit = (wm.anim&ANIM_INDEX)==ANIM_GUN_SHOOT && (lastmillis - p->lastaction) < flashtime(); rendermodel(path, wm.anim|ANIM_DYNALLOC|(righthanded==index ? ANIM_MIRROR : 0)|(emit ? ANIM_PARTICLE : 0), 0, -1, wm.pos, 0, p->yaw+90, p->pitch+wm.k_rot, 40.0f, wm.basetime, NULL, NULL, 1.28f);