From 7607c249f610ca34dfc587d4b1855b1845052c7b Mon Sep 17 00:00:00 2001 From: CYBERDEViL Date: Wed, 5 Jan 2022 23:41:13 +0100 Subject: [PATCH] Fix bug where dropped items shouldn't be respawned. `spawn()` will cast it's params to floats, so when `m_iWasDropped: TRUE` was given it would set `m_iWasDropped` to `1065353216`; and conditions like `m_iWasDropped == TRUE` where never met. Which would cause `valve/src/server/items.qc:item_pickup::touch` to set `think` to `Respawn`. --- src/server/weapons.qc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/server/weapons.qc b/src/server/weapons.qc index c1c7b9f6..6c928811 100644 --- a/src/server/weapons.qc +++ b/src/server/weapons.qc @@ -263,7 +263,9 @@ Weapon_DropCurrentWeapon(base_player pl) if (g_weapons[pl.activeweapon].allow_drop != TRUE) return; - item_pickup drop = spawn(item_pickup, m_iWasDropped: TRUE, m_iClip: pl.a_ammo1); + item_pickup drop = spawn(item_pickup); + drop.m_iWasDropped = TRUE; + drop.m_iClip = pl.a_ammo1; drop.SetItem(pl.activeweapon); setorigin(drop, pl.origin); drop.solid = SOLID_NOT;