From: Lyberta <lyberta@lyberta.net>
Date: Sat, 13 Jan 2018 03:38:37 +0000 (+0300)
Subject: Fixed RPC not spawning in Overkill.
X-Git-Tag: xonotic-v0.8.5~2380^2
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=19276004fe2dbff92cc9c95c2038fb8c5867d7ae;p=xonotic%2Fxonotic-data.pk3dir.git

Fixed RPC not spawning in Overkill.
---

diff --git a/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc b/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc
index 5eef8f2e37..2b9dcd5507 100644
--- a/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc
+++ b/qcsrc/common/mutators/mutator/overkill/sv_overkill.qc
@@ -189,51 +189,6 @@ MUTATOR_HOOKFUNCTION(ok, PlayerWeaponSelect)
 	}
 }
 
-void self_spawnfunc_weapon_hmg(entity this) { spawnfunc_weapon_hmg(this); }
-void self_spawnfunc_weapon_rpc(entity this) { spawnfunc_weapon_rpc(this); }
-
-MUTATOR_HOOKFUNCTION(ok, OnEntityPreSpawn)
-{
-	entity ent = M_ARGV(0, entity);
-
-	if(autocvar_g_powerups)
-	if(autocvar_g_overkill_powerups_replace)
-	{
-		if(ent.classname == "item_strength")
-		{
-			entity wep = new(weapon_hmg);
-			setorigin(wep, ent.origin);
-			setmodel(wep, MDL_OK_HMG);
-			wep.ok_item = true;
-			wep.noalign = Item_ShouldKeepPosition(ent);
-			wep.cnt = ent.cnt;
-			wep.team = ent.team;
-			wep.respawntime = g_pickup_respawntime_superweapon;
-			wep.pickup_anyway = true;
-			wep.spawnfunc_checked = true;
-			setthink(wep, self_spawnfunc_weapon_hmg);
-			wep.nextthink = time + 0.1;
-			return true;
-		}
-		else if(ent.classname == "item_shield")
-		{
-			entity wep = new(weapon_rpc);
-			setorigin(wep, ent.origin);
-			setmodel(wep, MDL_OK_RPC);
-			wep.ok_item = true;
-			wep.noalign = Item_ShouldKeepPosition(ent);
-			wep.cnt = ent.cnt;
-			wep.team = ent.team;
-			wep.respawntime = g_pickup_respawntime_superweapon;
-			wep.pickup_anyway = true;
-			wep.spawnfunc_checked = true;
-			setthink(wep, self_spawnfunc_weapon_rpc);
-			wep.nextthink = time + 0.1;
-			return true;
-		}
-	}
-}
-
 bool ok_HandleItemWaypoints(entity e)
 {
 	if(!autocvar_g_overkill_itemwaypoints)
@@ -266,9 +221,42 @@ MUTATOR_HOOKFUNCTION(ok, FilterItem)
 {
 	entity item = M_ARGV(0, entity);
 
-	if(item.ok_item)
+	if (item.ok_item)
+	{
 		return false;
-
+	}
+	if (!autocvar_g_powerups || !autocvar_g_overkill_powerups_replace)
+	{
+		return true;
+	}
+	if (item.classname == "item_strength")
+	{
+		entity wep = new(weapon_hmg);
+		setorigin(wep, item.origin);
+		wep.ok_item = true;
+		wep.noalign = Item_ShouldKeepPosition(item);
+		wep.cnt = item.cnt;
+		wep.team = item.team;
+		wep.respawntime = g_pickup_respawntime_superweapon;
+		wep.pickup_anyway = true;
+		wep.spawnfunc_checked = true;
+		Item_Initialize(wep, "weapon_hmg");
+		return true;
+	}
+	else if (item.classname == "item_shield")
+	{
+		entity wep = new(weapon_rpc);
+		setorigin(wep, item.origin);
+		wep.ok_item = true;
+		wep.noalign = Item_ShouldKeepPosition(item);
+		wep.cnt = item.cnt;
+		wep.team = item.team;
+		wep.respawntime = g_pickup_respawntime_superweapon;
+		wep.pickup_anyway = true;
+		wep.spawnfunc_checked = true;
+		Item_Initialize(wep, "weapon_rpc");
+		return true;
+	}
 	return true;
 }