]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/monsters/sv_monsters.qc
Merge branch 'master' into z411/bai-server
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / monsters / sv_monsters.qc
index 0fa01b815f830af9c64c9957998d72c741c317b7..5a3fa66684c22cb3dea31773c19032ec3cc80cb3 100644 (file)
@@ -42,28 +42,17 @@ void monster_dropitem(entity this, entity attacker)
        if(!this.candrop || !this.monster_loot || !autocvar_g_monsters_drop)
                return;
 
-       vector org = CENTER_OR_VIEWOFS(this);
        entity e = spawn();
-       Item_SetLoot(e, true);
-       e.spawnfunc_checked = true;
-
-       e.monster_loot = this.monster_loot;
+       e.itemdef = this.monster_loot;
+       e.origin = CENTER_OR_VIEWOFS(this);
+       e.velocity = randomvec() * 175 + '0 0 325';
+       e.lifetime = max(0, autocvar_g_monsters_drop_time);
 
        MUTATOR_CALLHOOK(MonsterDropItem, this, e, attacker);
        e = M_ARGV(1, entity);
 
-       if(e && e.monster_loot)
-       {
-               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';
-               e.item_spawnshieldtime = time + 0.7;
-               SUB_SetFade(e, time + autocvar_g_monsters_drop_time, 1);
-       }
+       if(e && e.itemdef)
+               Item_Initialise(e);
 }
 
 bool monster_facing(entity this, entity targ)