]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/t_items.qc
Fix wrong messages in the console (and in the weapons panel too) playing certain...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / t_items.qc
index ee56acc9ca696b95ede26343e20d08a80a98a955..caa7c2119272e1d766bea2f471e7e2b150761d89 100644 (file)
@@ -291,7 +291,7 @@ float Item_GiveTo(entity item, entity player)
                                //      AnnounceTo(player, "ammo");
 
                                if (item.weapons & WEPBIT_MINSTANEX)
-                                       W_GiveWeapon (player, WEP_MINSTANEX, "Nex");
+                                       W_GiveWeapon (player, WEP_MINSTANEX, item.netname);
                                if (item.ammo_cells)
                                        player.ammo_cells = min (player.ammo_cells + cvar("g_minstagib_ammo_drop"), 999);
                                player.health = 100;
@@ -326,7 +326,7 @@ float Item_GiveTo(entity item, entity player)
                        }
 
                        if (item.ammo_fuel)
-                       if (player.ammo_fuel < g_pickup_fuel_max)
+                       if (player.ammo_fuel < g_pickup_fuel_max) 
                        {
                                pickedup = TRUE;
                                player.ammo_fuel = min(player.ammo_fuel + item.ammo_fuel, g_pickup_fuel_max);
@@ -365,31 +365,31 @@ float Item_GiveTo(entity item, entity player)
                if(item.spawnshieldtime)
                {
                        if (item.ammo_shells)
-                       if (player.ammo_shells < g_pickup_shells_max)
+                       if ((player.ammo_shells < g_pickup_shells_max) || item.pickup_anyway)
                        {
                                pickedup = TRUE;
                                player.ammo_shells = min (player.ammo_shells + item.ammo_shells, g_pickup_shells_max);
                        }
                        if (item.ammo_nails)
-                       if (player.ammo_nails < g_pickup_nails_max)
+                       if ((player.ammo_nails < g_pickup_nails_max) || item.pickup_anyway)
                        {
                                pickedup = TRUE;
                                player.ammo_nails = min (player.ammo_nails + item.ammo_nails, g_pickup_nails_max);
                        }
                        if (item.ammo_rockets)
-                       if (player.ammo_rockets < g_pickup_rockets_max)
+                       if ((player.ammo_rockets < g_pickup_rockets_max) || item.pickup_anyway)
                        {
                                pickedup = TRUE;
                                player.ammo_rockets = min (player.ammo_rockets + item.ammo_rockets, g_pickup_rockets_max);
                        }
                        if (item.ammo_cells)
-                       if (player.ammo_cells < g_pickup_cells_max)
+                       if ((player.ammo_cells < g_pickup_cells_max) || item.pickup_anyway)
                        {
                                pickedup = TRUE;
                                player.ammo_cells = min (player.ammo_cells + item.ammo_cells, g_pickup_cells_max);
                        }
                        if (item.ammo_fuel)
-                       if (player.ammo_fuel < g_pickup_fuel_max)
+                       if ((player.ammo_fuel < g_pickup_fuel_max) || item.pickup_anyway)
                        {
                                pickedup = TRUE;
                                player.ammo_fuel = min(player.ammo_fuel + item.ammo_fuel, g_pickup_fuel_max);
@@ -398,7 +398,7 @@ float Item_GiveTo(entity item, entity player)
                }
 
                if (item.flags & FL_WEAPON)
-               if ((it = item.weapons - (item.weapons & player.weapons)))
+               if ((it = item.weapons - (item.weapons & player.weapons)) || g_pickup_weapons_anyway)
                {
                        pickedup = TRUE;
                        for(i = WEP_FIRST; i <= WEP_LAST; ++i)
@@ -713,9 +713,6 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime,
                        return;
                }
 
-               itemid = self.items;
-               weaponid = self.weapons;
-
                self.reset = Item_Reset;
                // it's a level item
                if(self.spawnflags & 1)
@@ -798,8 +795,6 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime,
                        self.is_item = TRUE;
                }
 
-               weaponsInMap |= weaponid;
-
                if(g_lms || g_ca)
                {
                        startitem_failed = TRUE;
@@ -829,6 +824,8 @@ void StartItem (string itemmodel, string pickupsound, float defaultrespawntime,
                        return;
                }
 
+               weaponsInMap |= weaponid;
+
                precache_model (itemmodel);
                precache_sound (pickupsound);
                precache_sound ("misc/itemrespawn.wav");
@@ -912,7 +909,7 @@ void minstagib_items (float itemid)
                self.ammo_cells = 1;
                StartItem ("models/items/a_cells.md3",
                        "misc/itempickup.wav", 45, 0,
-                       "Nex Ammo", IT_CELLS, 0, 0, generic_pickupevalfunc, 100);
+                       "MinstaNex Ammo", IT_CELLS, 0, 0, generic_pickupevalfunc, 100);
                return;
        }
 
@@ -940,7 +937,6 @@ void minstagib_items (float itemid)
                StartItem ("models/items/g_h100.md3",
                        "misc/megahealth.wav", g_pickup_respawntime_powerup, g_pickup_respawntimejitter_powerup,
                        "Extralife", IT_NAILS, 0, FL_POWERUP, generic_pickupevalfunc, BOT_PICKUP_RATING_HIGH);
-
        }
        // replace with speed
        if (itemid == IT_INVINCIBLE)
@@ -950,7 +946,6 @@ void minstagib_items (float itemid)
                        "misc/powerup_shield.wav", g_pickup_respawntime_powerup, g_pickup_respawntimejitter_powerup,
                        "Speed", IT_INVINCIBLE, 0, FL_POWERUP, generic_pickupevalfunc, BOT_PICKUP_RATING_MID);
        }
-
 }
 
 float minst_no_auto_cells;
@@ -1149,6 +1144,8 @@ void spawnfunc_weapon_rocketlauncher (void)
 void spawnfunc_item_rockets (void) {
        if(!self.ammo_rockets)
                self.ammo_rockets = g_pickup_rockets;
+       if(!self.pickup_anyway)
+               self.pickup_anyway = g_pickup_ammo_anyway;
        StartItem ("models/items/a_rockets.md3", "misc/itempickup.wav", g_pickup_respawntime_ammo, g_pickup_respawntimejitter_ammo, "rockets", IT_ROCKETS, 0, 0, commodity_pickupevalfunc, 3000);
 }
 
@@ -1166,12 +1163,16 @@ void spawnfunc_item_bullets (void) {
 
        if(!self.ammo_nails)
                self.ammo_nails = g_pickup_nails;
+       if(!self.pickup_anyway)
+               self.pickup_anyway = g_pickup_ammo_anyway;
        StartItem ("models/items/a_bullets.mdl", "misc/itempickup.wav", g_pickup_respawntime_ammo, g_pickup_respawntimejitter_ammo, "bullets", IT_NAILS, 0, 0, commodity_pickupevalfunc, 2000);
 }
 
 void spawnfunc_item_cells (void) {
        if(!self.ammo_cells)
                self.ammo_cells = g_pickup_cells;
+       if(!self.pickup_anyway)
+               self.pickup_anyway = g_pickup_ammo_anyway;
        StartItem ("models/items/a_cells.md3", "misc/itempickup.wav", g_pickup_respawntime_ammo, g_pickup_respawntimejitter_ammo, "cells", IT_CELLS, 0, 0, commodity_pickupevalfunc, 2000);
 }
 
@@ -1188,6 +1189,8 @@ void spawnfunc_item_shells (void) {
 
        if(!self.ammo_shells)
                self.ammo_shells = g_pickup_shells;
+       if(!self.pickup_anyway)
+               self.pickup_anyway = g_pickup_ammo_anyway;
        StartItem ("models/items/a_shells.md3", "misc/itempickup.wav", g_pickup_respawntime_ammo, g_pickup_respawntimejitter_ammo, "shells", IT_SHELLS, 0, 0, commodity_pickupevalfunc, 500);
 }
 
@@ -1368,9 +1371,6 @@ void spawnfunc_target_items (void)
        if(!self.invincible_finished)
                self.invincible_finished = cvar("g_balance_powerup_invincible_time");
 
-       precache_sound("misc/itempickup.wav");
-       precache_sound("misc/itempickup.wav");
-       precache_sound("misc/itempickup.wav");
        precache_sound("misc/itempickup.wav");
        precache_sound("misc/megahealth.wav");
        precache_sound("misc/armor25.wav");
@@ -1477,6 +1477,8 @@ void spawnfunc_item_fuel(void)
 {
        if(!self.ammo_fuel)
                self.ammo_fuel = g_pickup_fuel;
+       if(!self.pickup_anyway)
+               self.pickup_anyway = g_pickup_ammo_anyway;
        StartItem ("models/items/g_fuel.md3", "misc/itempickup.wav", g_pickup_respawntime_ammo, g_pickup_respawntimejitter_ammo, "Fuel", IT_FUEL, 0, 0, commodity_pickupevalfunc, BOT_PICKUP_RATING_LOW);
 }