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 )); }
public AddOrRemoveObject AddObject() { return(AddOrRemoveObject.AddObject(queue, CurrentScreen, StructInstance.GetNew() )); }
public AddOrRemoveObject AddObject(int index, byte palette) { return(AddOrRemoveObject.AddObject(queue, CurrentScreen, StructInstance.GetNew(index, palette) )); }
public EditroidAction RemoveSelection() { if (editor.GetSelectedItem() is DoorInstance) { return(new ChangeDoor(queue, CurrentScreen, ((DoorInstance)editor.GetSelectedItem()).Side, DoorType.Invalid)); } else { return(AddOrRemoveObject.RemoveObject(queue, CurrentScreen, editor.GetSelectedItem() )); } }