]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/weapons/all.qc
Weapons: split registration and base weapon definitions
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / weapons / all.qc
index 4dcb2d6e7c2446b006a960c862c7cfaa52421c9d..0b441022c4ebf5900a8896a8dba5c5cb9dfb8bf6 100644 (file)
@@ -9,7 +9,6 @@
        #include "../constants.qh"
        #include "../stats.qh"
        #include "../../warpzonelib/anglestransform.qh"
-       #include "../../warpzonelib/mathlib.qh"
        #include "../../warpzonelib/common.qh"
        #include "../../warpzonelib/client.qh"
        #include "../util.qh"
@@ -25,7 +24,6 @@
        #include "../../dpdefs/progsdefs.qh"
     #include "../../dpdefs/dpextensions.qh"
     #include "../../warpzonelib/anglestransform.qh"
-    #include "../../warpzonelib/mathlib.qh"
     #include "../../warpzonelib/common.qh"
     #include "../../warpzonelib/util_server.qh"
     #include "../../warpzonelib/server.qh"
@@ -149,26 +147,6 @@ WepSet ReadWepSet()
 }
 #endif
 
-void register_weapons_done()
-{
-       dummy_weapon_info = NEW(Weapon);
-
-       weaponorder_byid = "";
-       for (int i = WEP_MAXCOUNT - 1; i >= 0; --i)
-               if (weapon_info[i])
-                       weaponorder_byid = strcat(weaponorder_byid, " ", ftos(i));
-       weaponorder_byid = strzone(substring(weaponorder_byid, 1, strlen(weaponorder_byid) - 1));
-}
-entity get_weaponinfo(int id)
-{
-       entity w;
-       if(id < WEP_FIRST || id > WEP_LAST)
-               return dummy_weapon_info;
-       w = weapon_info[id - 1];
-       if(w)
-               return w;
-       return dummy_weapon_info;
-}
 string W_FixWeaponOrder(string order, float complete)
 {
        return fixPriorityList(order, WEP_FIRST, WEP_LAST, 230 - WEP_FIRST, complete);
@@ -331,20 +309,35 @@ int GetAmmoStat(.int ammotype)
 }
 #endif
 
-#ifdef SVQC
 string W_Sound(string w_snd)
 {
-       string output = strcat("weapons/", w_snd, ".wav");
+       #define extensions(X) X(wav) X(ogg)
+       #define tryext(ext) { if (fexists(strcat("sound/", output = strcat("weapons/", w_snd, "."#ext)))) break; }
+       string output;
+       do {
+               extensions(tryext);
+               #undef tryext
+               #undef extensions
+               output = strcat("weapons/", w_snd);
+       } while (0);
+
+#ifdef SVQC
        MUTATOR_CALLHOOK(WeaponSound, w_snd, output);
+       return weapon_sound_output;
+#else
        return output;
+#endif
 }
 
 string W_Model(string w_mdl)
 {
        string output = strcat("models/weapons/", w_mdl);
+#ifdef SVQC
        MUTATOR_CALLHOOK(WeaponModel, w_mdl, output);
+       return weapon_model_output;
+#else
        return output;
-}
 #endif
+}
 
 #endif