#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"
#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"
}
#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);
}
#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