X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fall.qc;h=65168e13a331c2cebf305e667e7542328571b4ff;hb=eac60648c4017e495060dd3ba9e50ac4bad5000a;hp=5149c8d4255087304ea127e31bfd47c45edfea45;hpb=f8c376b36c5dfbf2cf089c9307fa92a6341c8c67;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/weapons/all.qc b/qcsrc/common/weapons/all.qc index 5149c8d42..65168e13a 100644 --- a/qcsrc/common/weapons/all.qc +++ b/qcsrc/common/weapons/all.qc @@ -4,45 +4,45 @@ #include "all.qh" #if defined(CSQC) - #include "../../client/defs.qh" + #include #include "../constants.qh" #include "../stats.qh" - #include "../../lib/warpzone/anglestransform.qh" - #include "../../lib/warpzone/common.qh" - #include "../../lib/warpzone/client.qh" + #include + #include + #include #include "../util.qh" - #include "../../client/autocvars.qh" + #include #include "../deathtypes/all.qh" - #include "../../lib/csqcmodel/interpolate.qh" + #include #include "../physics/movetypes/movetypes.qh" - #include "../../client/main.qh" - #include "../../lib/csqcmodel/cl_model.qh" + #include + #include #elif defined(MENUQC) #elif defined(SVQC) - #include "../../lib/warpzone/anglestransform.qh" - #include "../../lib/warpzone/common.qh" - #include "../../lib/warpzone/util_server.qh" - #include "../../lib/warpzone/server.qh" + #include + #include + #include + #include #include "../constants.qh" #include "../stats.qh" #include "../teams.qh" #include "../util.qh" #include "../monsters/all.qh" #include "config.qh" - #include "../../server/weapons/csqcprojectile.qh" - #include "../../server/weapons/tracing.qh" - #include "../../server/t_items.qh" - #include "../../server/autocvars.qh" - #include "../../server/constants.qh" - #include "../../server/defs.qh" - #include "../notifications.qh" + #include + #include + #include "../t_items.qh" + #include + #include + #include + #include "../notifications/all.qh" #include "../deathtypes/all.qh" - #include "../../server/mutators/all.qh" + #include #include "../mapinfo.qh" - #include "../../server/command/common.qh" - #include "../../lib/csqcmodel/sv_model.qh" - #include "../../server/portals.qh" - #include "../../server/g_hook.qh" + #include + #include + #include + #include #endif #ifndef MENUQC #include "calculations.qc" @@ -134,7 +134,7 @@ string W_NumberWeaponOrder_MapFunc(string s) { if (s == "0" || stof(s)) return s; s = W_UndeprecateName(s); - FOREACH(Weapons, it != WEP_Null && it.netname == s, LAMBDA(return ftos(i))); + FOREACH(Weapons, it != WEP_Null && it.netname == s, return ftos(i)); return s; } string W_NumberWeaponOrder(string order) @@ -181,7 +181,7 @@ string W_FixWeaponOrder_BuildImpulseList(string o) return substring(o, 1, -1); } -string W_FixWeaponOrder_AllowIncomplete(string order) +string W_FixWeaponOrder_AllowIncomplete(entity this, string order) { return W_FixWeaponOrder(order, 0); } @@ -202,10 +202,10 @@ void W_RandomWeapons(entity e, float n) for (i = 0; i < n; ++i) { RandomSelection_Init(); - FOREACH(Weapons, it != WEP_Null, LAMBDA( + FOREACH(Weapons, it != WEP_Null, { if (remaining & (it.m_wepset)) RandomSelection_Add(it, 0, string_null, 1, 1); - )); + }); Weapon w = RandomSelection_chosen_ent; result |= WepSet_FromWeapon(w); remaining &= ~WepSet_FromWeapon(w); @@ -262,7 +262,7 @@ string W_Sound(string w_snd) string output = strcat("weapons/", w_snd); #ifdef SVQC MUTATOR_CALLHOOK(WeaponSound, w_snd, output); - return weapon_sound_output; + return M_ARGV(1, string); #else return output; #endif @@ -272,7 +272,7 @@ string W_Model(string w_mdl) { string output = strcat("models/weapons/", w_mdl); MUTATOR_CALLHOOK(WeaponModel, w_mdl, output); - return weapon_model_output; + return M_ARGV(1, string); } #ifndef MENUQC @@ -387,7 +387,7 @@ vector shotorg_adjust_values(vector vecs, bool y_is_right, bool visual, int algn * call again with "" * remove the ent */ -void CL_WeaponEntity_SetModel(entity this, string name) +void CL_WeaponEntity_SetModel(entity this, string name, bool _anim) { if (name == "") { @@ -425,13 +425,13 @@ void CL_WeaponEntity_SetModel(entity this, string name) if (!this.weaponchild) { this.weaponchild = new(weaponchild); - make_pure(this.weaponchild); #ifdef CSQC this.weaponchild.drawmask = MASK_NORMAL; this.weaponchild.renderflags |= RF_VIEWMODEL; #endif } _setmodel(this.weaponchild, W_Model(strcat("v_", name, ".md3"))); + setsize(this.weaponchild, '0 0 0', '0 0 0'); setattachment(this.weaponchild, this, t); } else @@ -440,6 +440,7 @@ void CL_WeaponEntity_SetModel(entity this, string name) this.weaponchild = NULL; } + setsize(this, '0 0 0', '0 0 0'); setorigin(this, '0 0 0'); this.angles = '0 0 0'; this.frame = 0; @@ -539,6 +540,7 @@ void CL_WeaponEntity_SetModel(entity this, string name) // check if an instant weapon switch occurred setorigin(this, this.view_ofs); + if (!_anim) return; // reset animstate now this.wframe = WFRAME_IDLE; setanim(this, this.anim_idle, true, false, true);