X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fweapons%2Fall.qc;h=dfdbd765665a1b09322afd0b28b62f4d6dcd8998;hb=29fae4d9d59e5ec8afbdd6ef0ebcc5dcdc1bfa3f;hp=d531b8c3f29759f1c8a9c77e922c0199dc96c26c;hpb=6ba37d06b4afe2b08882f5cc5b211441227586b2;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/weapons/all.qc b/qcsrc/common/weapons/all.qc index d531b8c3f..dfdbd7656 100644 --- a/qcsrc/common/weapons/all.qc +++ b/qcsrc/common/weapons/all.qc @@ -1,8 +1,7 @@ +#include "all.qh" #ifndef WEAPONS_ALL_C #define WEAPONS_ALL_C -#include "all.qh" - #if defined(CSQC) #include #include "../constants.qh" @@ -19,6 +18,7 @@ #include #elif defined(MENUQC) #elif defined(SVQC) + #include #include #include #include @@ -35,16 +35,16 @@ #include #include #include - #include "../notifications.qh" + #include "../notifications/all.qh" #include "../deathtypes/all.qh" - #include + #include #include "../mapinfo.qh" - #include + #include #include #include #include #endif -#ifndef MENUQC +#ifdef GAMEQC #include "calculations.qc" #endif #ifdef SVQC @@ -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) @@ -173,7 +173,7 @@ string W_FixWeaponOrder_BuildImpulseList(string o) for (i = WEP_FIRST; i <= WEP_LAST; ++i) W_FixWeaponOrder_BuildImpulseList_buf[i - WEP_FIRST] = i; heapsort(WEP_LAST - WEP_FIRST + 1, W_FixWeaponOrder_BuildImpulseList_swap, W_FixWeaponOrder_BuildImpulseList_cmp, - world); + NULL); o = ""; for (i = WEP_FIRST; i <= WEP_LAST; ++i) o = strcat(o, " ", ftos(W_FixWeaponOrder_BuildImpulseList_buf[i - WEP_FIRST])); @@ -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,10 +272,10 @@ 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 +#ifdef GAMEQC vector shotorg_adjustfromclient(vector vecs, float y_is_right, float algn) { switch (algn) @@ -387,12 +387,12 @@ 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 == "") { this.model = ""; - if (this.weaponchild) remove(this.weaponchild); + if (this.weaponchild) delete(this.weaponchild); this.weaponchild = NULL; this.movedir = '0 0 0'; this.spawnorigin = '0 0 0'; @@ -425,21 +425,22 @@ 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 { - if (this.weaponchild) remove(this.weaponchild); + if (this.weaponchild) delete(this.weaponchild); this.weaponchild = NULL; } + setsize(this, '0 0 0', '0 0 0'); setorigin(this, '0 0 0'); this.angles = '0 0 0'; this.frame = 0; @@ -461,7 +462,7 @@ void CL_WeaponEntity_SetModel(entity this, string name) } else { - LOG_WARNINGF("weapon model %s does not support the 'shot' tag, will display shots TOTALLY wrong\n", + LOG_WARNF("weapon model %s does not support the 'shot' tag, will display shots TOTALLY wrong", this.model); this.movedir = '0 0 0'; } @@ -480,7 +481,7 @@ void CL_WeaponEntity_SetModel(entity this, string name) } else { - LOG_WARNINGF("weapon model %s does not support the 'shell' tag, will display casings wrong\n", + LOG_WARNF("weapon model %s does not support the 'shell' tag, will display casings wrong", this.model); this.spawnorigin = this.movedir; } @@ -502,7 +503,7 @@ void CL_WeaponEntity_SetModel(entity this, string name) } else { - LOG_WARNINGF( + LOG_WARNF( "weapon model %s does not support the 'handle' tag " "and neither does the v_ model support the 'shot' tag, " "will display muzzle flashes TOTALLY wrong\n", @@ -539,13 +540,14 @@ 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); } #endif -#ifndef MENUQC +#ifdef GAMEQC REGISTER_NET_TEMP(wframe) #ifdef CSQC