public AddOrRemoveObject AddEnemy() { var currentScreen = rom.Levels[editor.CurrentLevel].Screens[editor.CurrentScreenIndex]; int slotIndex = -1; bool slotAvailable = false; while (slotIndex < 6 && !slotAvailable) { slotIndex++; slotAvailable = true; for (int i = 0; i < currentScreen.Enemies.Count; i++) { if (currentScreen.Enemies[i].SpriteSlot == slotIndex) { slotAvailable = false; } } } slotIndex = slotIndex % 6; // If 6, set to 0 //int objTypeByte = (1 | slotIndex << 4) & 0xFF; var newEnemy = EnemyInstance.GetNew(); newEnemy.CompositeLocation = 0x22; newEnemy.EnemyType = CurrentLevel.GetDefaultEnemyType(); newEnemy.SpriteSlot = slotIndex; ////return new AddOrRemoveObject(queue, //// editor.CurrentLevel, editor.CurrentScreenIndex, MemoryFunction.AddEnemy, CurrentScreen.Enemies.Count, newEnemy); return(AddOrRemoveObject.AddObject(queue, CurrentScreen, newEnemy )); }