]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Fix g_warmup_allguns to work as its description says
authorDr. Jaska <drjaska83@gmail.com>
Mon, 27 May 2024 17:05:56 +0000 (17:05 +0000)
committerDr. Jaska <drjaska83@gmail.com>
Mon, 27 May 2024 17:05:56 +0000 (17:05 +0000)
qcsrc/server/mutators/events.qh
qcsrc/server/world.qc
qcsrc/server/world.qh

index f020ebad8f95a0ac9bf12312eb1a668b73c16f7e..6dff49f8b62cc9f8438330fbe0cd4b39a927f1e5 100644 (file)
@@ -995,8 +995,8 @@ MUTATOR_HOOKABLE(CheckRules_World, EV_CheckRules_World);
     /** weapon info entity */    i(entity, MUTATOR_ARGV_0_entity) \
     /** do want? */              i(float, MUTATOR_ARGV_1_float) \
     /**/                         o(float, MUTATOR_ARGV_1_float) \
-    /** want all guns */         i(bool, MUTATOR_ARGV_2_bool) \
-    /**/                         o(bool, MUTATOR_ARGV_2_bool) \
+    /** want all guns */         i(int, MUTATOR_ARGV_2_int) \
+    /**/                         o(int, MUTATOR_ARGV_2_int) \
     /** want mutator blocked */  i(bool, MUTATOR_ARGV_3_bool) \
     /**/                         o(bool, MUTATOR_ARGV_3_bool) \
     /**/
index cecef015a7838ae610b73bb94ef312c8d33221ce..8eae8685b5f3be22356c409daf0a4c28d3609c93 100644 (file)
@@ -1817,7 +1817,7 @@ void CheckRules_World()
        }
 }
 
-float want_weapon(entity weaponinfo, float allguns)
+int want_weapon(entity weaponinfo, int allguns)
 {
        int d = 0;
        bool allow_mutatorblocked = false;
@@ -1827,10 +1827,12 @@ float want_weapon(entity weaponinfo, float allguns)
 
        bool mutator_returnvalue = MUTATOR_CALLHOOK(WantWeapon, weaponinfo, d, allguns, allow_mutatorblocked);
        d = M_ARGV(1, float);
-       allguns = M_ARGV(2, bool);
+       allguns = M_ARGV(2, int);
        allow_mutatorblocked = M_ARGV(3, bool);
 
-       if(allguns)
+       if(allguns == 1)
+               d = boolean(!(weaponinfo.spawnflags & (WEP_FLAG_HIDDEN | WEP_FLAG_SPECIALATTACK)));
+       else if(allguns == 2)
                d = boolean((weaponinfo.spawnflags & WEP_FLAG_NORMAL) && !(weaponinfo.spawnflags & (WEP_FLAG_HIDDEN | WEP_FLAG_SPECIALATTACK)));
        else if(!mutator_returnvalue)
                d = !(!weaponinfo.weaponstart);
index 93626429b740b94c0839ee424ac630659d805c4d..024a36da92151959605eff839cd4687cd3b53db7 100644 (file)
@@ -7,7 +7,7 @@ bool autocvar__endmatch;
 bool autocvar_g_use_ammunition;
 bool autocvar_g_jetpack;
 int autocvar_g_warmup;
-bool autocvar_g_warmup_allguns;
+int autocvar_g_warmup_allguns;
 bool autocvar_g_warmup_allow_timeout;
 #define autocvar_g_weaponarena cvar_string("g_weaponarena")
 string autocvar_quit_and_redirect;
@@ -117,7 +117,7 @@ float warmup_start_health;
 float warmup_start_armorvalue;
 float g_weapon_stay;
 
-float want_weapon(entity weaponinfo, float allguns); // WEAPONTODO: what still needs done?
+int want_weapon(entity weaponinfo, int allguns); // WEAPONTODO: what still needs done?
 
 float g_grappling_hook;
 int warmup_stage;