Exemplo n.º 1
0
        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
                                               ));
        }
Exemplo n.º 2
0
 public AddOrRemoveObject AddObject()
 {
     return(AddOrRemoveObject.AddObject(queue,
                                        CurrentScreen,
                                        StructInstance.GetNew()
                                        ));
 }
Exemplo n.º 3
0
 public AddOrRemoveObject AddObject(int index, byte palette)
 {
     return(AddOrRemoveObject.AddObject(queue,
                                        CurrentScreen,
                                        StructInstance.GetNew(index, palette)
                                        ));
 }
Exemplo n.º 4
0
 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()
                                               ));
     }
 }