public void RemoveMobj(Mobj mobj) { var tm = world.ThingMovement; if ((mobj.Flags & MobjFlags.Special) != 0 && (mobj.Flags & MobjFlags.Dropped) == 0 && (mobj.Type != MobjType.Inv) && (mobj.Type != MobjType.Ins)) { //itemrespawnque[iquehead] = mobj->spawnpoint; //itemrespawntime[iquehead] = leveltime; //iquehead = (iquehead + 1) & (ITEMQUESIZE - 1); // lose one off the end? //if (iquehead == iquetail) // iquetail = (iquetail + 1) & (ITEMQUESIZE - 1); } // Unlink from sector and block lists. tm.UnsetThingPosition(mobj); // Stop any playing sound. world.StopSound(mobj); // Free block. world.Thinkers.Remove(mobj); }
/// <summary> /// Remove the mobj from the level. /// </summary> public void RemoveMobj(Mobj mobj) { var tm = world.ThingMovement; if ((mobj.Flags & MobjFlags.Special) != 0 && (mobj.Flags & MobjFlags.Dropped) == 0 && (mobj.Type != MobjType.Inv) && (mobj.Type != MobjType.Ins)) { itemRespawnQue[itemQueHead] = mobj.SpawnPoint; itemRespawnTime[itemQueHead] = world.LevelTime; itemQueHead = (itemQueHead + 1) & (itemQueSize - 1); // Lose one off the end? if (itemQueHead == itemQueTail) { itemQueTail = (itemQueTail + 1) & (itemQueSize - 1); } } // Unlink from sector and block lists. tm.UnsetThingPosition(mobj); // Stop any playing sound. world.StopSound(mobj); // Free block. world.Thinkers.Remove(mobj); }