]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/weapons/throwing.qc
Merge branch 'master' into Juhu/strafehud
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / weapons / throwing.qc
index 7e8a061f049b1ebc552308c796219c1b716eedbd..1a92f39919f18a31d5754a53f1196df8a7007666 100644 (file)
@@ -2,10 +2,11 @@
 
 #include "weaponsystem.qh"
 #include "../resources.qh"
-#include "../items.qh"
+#include <server/items/spawning.qh>
 #include <server/mutators/_mod.qh>
-#include <common/t_items.qh>
-#include "../g_damage.qh"
+#include <server/items/items.qh>
+#include "../damage.qh"
+#include <server/world.qh>
 #include <common/items/item.qh>
 #include <common/mapinfo.qh>
 #include <common/notifications/all.qh>
@@ -36,7 +37,7 @@ void thrown_wep_think(entity this)
 // returns amount of ammo used, or -1 for failure, or 0 for no ammo count
 float W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vector velo, .entity weaponentity)
 {
-       Weapon info = Weapons_from(wpn);
+       Weapon info = REGISTRY_GET(Weapons, wpn);
        int ammotype = info.ammo_type;
 
        entity wep = spawn();
@@ -51,7 +52,7 @@ float W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vector
 
        W_DropEvent(wr_drop,own,wpn,wep,weaponentity);
 
-       if(WepSet_FromWeapon(Weapons_from(wpn)) & WEPSET_SUPERWEAPONS)
+       if(WepSet_FromWeapon(REGISTRY_GET(Weapons, wpn)) & WEPSET_SUPERWEAPONS)
        {
                Item_SetExpiring(wep, true);
                if(own.items & IT_UNLIMITED_SUPERWEAPONS)
@@ -67,15 +68,15 @@ float W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vector
                        });
                        if(superweapons <= 1)
                        {
-                               wep.superweapons_finished = own.superweapons_finished;
-                               own.superweapons_finished = 0;
+                               wep.superweapons_finished = STAT(SUPERWEAPONS_FINISHED, own);
+                               STAT(SUPERWEAPONS_FINISHED, own) = 0;
                        }
                        else
                        {
-                               float timeleft = own.superweapons_finished - time;
+                               float timeleft = STAT(SUPERWEAPONS_FINISHED, own) - time;
                                float weptimeleft = timeleft / superweapons;
                                wep.superweapons_finished = time + weptimeleft;
-                               own.superweapons_finished -= weptimeleft;
+                               STAT(SUPERWEAPONS_FINISHED, own) -= weptimeleft;
                        }
                }
        }
@@ -138,7 +139,7 @@ bool W_IsWeaponThrowable(entity this, int w)
        if (w == WEP_Null.m_id)
                return false;
 
-       return (Weapons_from(w)).weaponthrowable;
+       return (REGISTRY_GET(Weapons, w)).weaponthrowable;
 }
 
 // toss current weapon