X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmiscfunctions.qc;h=3a4680ebb94366867b11d1c9c11829e055302eec;hb=5bbfb59ff40eca7824c231d687c2bf587a01749d;hp=cbf296f84bc72bb5fec71a8657d2bab8e112a206;hpb=b3260e6459878fa018739f93d6aee412b64472d5;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index cbf296f84..3a4680ebb 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -4,7 +4,7 @@ #include "constants.qh" #include "g_hook.qh" #include "ipban.qh" -#include "mutators/mutators_include.qh" +#include "mutators/all.qh" #include "t_items.qh" #include "weapons/accuracy.qh" #include "weapons/csqcprojectile.qh" @@ -485,25 +485,27 @@ float want_weapon(entity weaponinfo, float allguns) // WEAPONTODO: what still ne { int i = weaponinfo.weapon; int d = 0; + bool allow_mutatorblocked = false; - if (!i) + if(!i) return 0; - if (g_lms || g_ca || allguns) + bool mutator_returnvalue = MUTATOR_CALLHOOK(WantWeapon, weaponinfo, d, allguns, allow_mutatorblocked); + d = ret_float; + allguns = want_allguns; + allow_mutatorblocked = false; + + if(allguns) { if(weaponinfo.spawnflags & WEP_FLAG_NORMAL) d = true; else d = false; } - else if (g_cts) - d = (i == WEP_SHOTGUN.m_id); - else if (g_nexball) - d = 0; // weapon is set a few lines later - else + else if(!mutator_returnvalue) d = !(!weaponinfo.weaponstart); - if(!g_cts && (weaponinfo.spawnflags & WEP_FLAG_MUTATORBLOCKED)) // never default mutator blocked guns + if(!allow_mutatorblocked && (weaponinfo.spawnflags & WEP_FLAG_MUTATORBLOCKED)) // never default mutator blocked guns d = 0; float t = weaponinfo.weaponstartoverride; @@ -545,11 +547,9 @@ void readplayerstartcvars() g_weaponarena_weapons = '0 0 0'; s = cvar_string("g_weaponarena"); - if (s == "0" || s == "") - { - if(g_ca || g_freezetag) - s = "most"; - } + + MUTATOR_CALLHOOK(SetWeaponArena, s); + s = ret_string; if (s == "0" || s == "") {