From a9786d5741a2c4ecf55cdca9bbf8b25eb98a4122 Mon Sep 17 00:00:00 2001 From: Mario Date: Sat, 12 Nov 2022 13:38:23 +1000 Subject: [PATCH] Abort processing a monster's dropped item if it couldn't be placed, resolves the error produced by #2734 --- qcsrc/common/monsters/sv_monsters.qc | 2 ++ qcsrc/server/items/items.qc | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/qcsrc/common/monsters/sv_monsters.qc b/qcsrc/common/monsters/sv_monsters.qc index 1c8035380..0194d4451 100644 --- a/qcsrc/common/monsters/sv_monsters.qc +++ b/qcsrc/common/monsters/sv_monsters.qc @@ -55,6 +55,8 @@ void monster_dropitem(entity this, entity attacker) { e.noalign = true; StartItem(e, e.monster_loot); + if(startitem_failed || wasfreed(e)) + return; e.gravity = 1; setorigin(e, org); e.velocity = randomvec() * 175 + '0 0 325'; diff --git a/qcsrc/server/items/items.qc b/qcsrc/server/items/items.qc index 6a19a435f..7673d8bd3 100644 --- a/qcsrc/server/items/items.qc +++ b/qcsrc/server/items/items.qc @@ -1161,7 +1161,7 @@ void StartItem(entity this, GameItem def) if (def.spawnflags & ITEM_FLAG_MUTATORBLOCKED) { delete(this); - return; + return; // TODO does not set startitem_failed } this.classname = def.m_canonical_spawnfunc; -- 2.39.2