X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fitems.qc;h=1282d428af96e139049298a6bd2630cf9437d5e8;hb=d957e789b57a046f8456b5e88ed4abfa5a34f6f1;hp=3ddf8099f51c0736471859939a61b79b97e21df6;hpb=8ce7173ad6e67489f927722de3f58ca41bdb099d;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/items.qc b/qcsrc/common/items.qc index 3ddf8099f..1282d428a 100644 --- a/qcsrc/common/items.qc +++ b/qcsrc/common/items.qc @@ -8,7 +8,7 @@ void register_weapon(float id, float(float) func, float ammotype, float i, float weapon_info[id - 1] = e = spawn(); e.classname = "weapon_info"; e.weapon = id; - e.weapons = power2of(id - WEP_FIRST); + WEPSET_COPY_EW(e, id); e.netname = shortname; e.message = wname; e.items = ammotype; @@ -41,7 +41,7 @@ void register_weapons_done() dummy_weapon_info = spawn(); dummy_weapon_info.classname = "weapon_info"; dummy_weapon_info.weapon = 0; // you can recognize dummies by this - dummy_weapon_info.weapons = 0; // you can recognize dummies by this too + WEPSET_CLEAR_E(dummy_weapon_info); dummy_weapon_info.netname = ""; dummy_weapon_info.message = "@!#%'n Tuba"; dummy_weapon_info.items = 0; @@ -154,3 +154,21 @@ string W_FixWeaponOrder_ForceComplete(string order) return W_FixWeaponOrder(order, 1); } +void W_RandomWeapons(entity e, float n) +{ + float i, j; + WEPSET_DECLARE_A(remaining); + WEPSET_DECLARE_A(result); + WEPSET_COPY_AE(remaining, e); + WEPSET_CLEAR_A(result); + for(i = 0; i < n; ++i) + { + RandomSelection_Init(); + for(j = WEP_FIRST; j <= WEP_LAST; ++j) + if(WEPSET_CONTAINS_AW(remaining, j)) + RandomSelection_Add(world, j, string_null, 1, 1); + WEPSET_OR_AW(result, RandomSelection_chosen_float); + WEPSET_ANDNOT_AW(remaining, RandomSelection_chosen_float); + } + WEPSET_COPY_EA(e, result); +}