]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/weapons/weapons.qc
Use macro for WEP_NAME as well (get rid of W_Name)
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / weapons / weapons.qc
index 9ec3b7ec0bac0cda0ea2c850350f48440bd6ffaf..baf6adb617dbcac3c52cfa669d09d391bdd4c0a5 100644 (file)
@@ -74,7 +74,18 @@ WepSet ReadWepSet()
 }
 #endif
 
-void register_weapon(float id, WepSet bit, float(float) func, .float ammotype, float i, float weapontype, float pickupbasevalue, string modelname, string shortname, string wname)
+void register_weapon(
+       float id,
+       WepSet bit,
+       float(float) func,
+       .float ammotype,
+       float i,
+       float weapontype,
+       float pickupbasevalue,
+       vector clr,
+       string modelname,
+       string shortname,
+       string wname)
 {
        entity e;
        weapon_info[id - 1] = e = spawn();
@@ -83,15 +94,15 @@ void register_weapon(float id, WepSet bit, float(float) func, .float ammotype, f
        e.weapons = bit;
        e.netname = shortname;
        e.message = wname;
-       //e.items = ammotype;
        e.weapon_func = func;
+       e.wpcolor = clr;
        e.mdl = modelname;
        e.model = strzone(strcat("models/weapons/g_", modelname, ".md3"));
        e.spawnflags = weapontype;
-       e.model2 = strzone(strcat("wpn-", e.mdl));
+       e.model2 = strzone(strcat("wpn-", ftos(id)));
        e.impulse = i;
        e.bot_pickupbasevalue = pickupbasevalue;
-       e.current_ammo = ammotype;
+       e.ammo_field = ammotype;
 
        #ifndef MENUQC
        func(WR_INIT);
@@ -109,7 +120,6 @@ void register_weapons_done()
        dummy_weapon_info.weapons = '0 0 0';
        dummy_weapon_info.netname = "";
        dummy_weapon_info.message = "AOL CD Thrower";
-       //dummy_weapon_info.items = 0;
        dummy_weapon_info.weapon_func = w_null;
        dummy_weapon_info.mdl = "";
        dummy_weapon_info.model = "";
@@ -117,7 +127,7 @@ void register_weapons_done()
        dummy_weapon_info.model2 = "";
        dummy_weapon_info.impulse = -1;
        dummy_weapon_info.bot_pickupbasevalue = 0;
-       dummy_weapon_info.current_ammo = ammo_broken;
+       dummy_weapon_info.ammo_field = ammo_none;
 
        float i;
        weaponorder_byid = "";
@@ -239,12 +249,43 @@ void W_RandomWeapons(entity e, float n)
        e.weapons = result;
 }
 
-string W_Name(float weaponid)
+#ifdef CSQC
+.float GetAmmoFieldFromNum(float i)
 {
-       return (get_weaponinfo(weaponid)).message;
+       switch(i)
+       {
+               case 0: return ammo_shells;
+               case 1: return ammo_nails;
+               case 2: return ammo_rockets;
+               case 3: return ammo_cells;
+               case 4: return ammo_fuel;
+               default: return ammo_none;
+       }
 }
 
-float W_AmmoItemCode(float wpn)
+string GetAmmoPicture(.float ammotype)
 {
-       return (get_weaponinfo(wpn)).items & IT_AMMO; // WEAPONTODO
+       switch(ammotype)
+       {
+               case ammo_shells:  return "ammo_shells";
+               case ammo_nails:   return "ammo_nails";
+               case ammo_rockets: return "ammo_rockets";
+               case ammo_cells:   return "ammo_cells";
+               case ammo_fuel:    return "ammo_fuel";
+               default: return ""; // wtf, no ammo type?
+       }
 }
+
+float GetAmmoStat(.float ammotype)
+{
+       switch(ammotype)
+       {
+               case ammo_shells: return STAT_SHELLS;
+               case ammo_nails: return STAT_NAILS;
+               case ammo_rockets: return STAT_ROCKETS;
+               case ammo_cells: return STAT_CELLS;
+               case ammo_fuel: return STAT_FUEL;
+               default: return -1;
+       }
+}
+#endif