Exemple #1
0
        private void LoadScreen(ItemSeeker seeker, int mapY)
        {
            ItemEditorScreenControl control = new ItemEditorScreenControl();
            var data = control.Data;

            control.MapLocation = new Point(seeker.MapX, mapY);


            var item = LoadItem(seeker);

            if (item != null)
            {
                data.Items.Add(item);
            }

            while (seeker.MoreItemsPresent)
            {
                seeker.NextItem();
                item = LoadItem(seeker);
                if (item != null)
                {
                    data.Items.Add(item);
                }
            }

            AddScreenControl(control);
        }
Exemple #2
0
 public void SetHard(ItemSeeker s, bool hard)
 {
     if (hard)
     {
         s.Data[s.itemOffset + 1] = (byte)(s.Data[s.itemOffset + 1] | 0x80);
     }
     else
     {
         s.Data[s.itemOffset + 1] = (byte)(s.Data[s.itemOffset + 1] & 0x7F);
     }
 }
Exemple #3
0
        public override void SetIndex(ItemSeeker s, int i)
        {
            if (i == 9)
            {
                s.Data[s.itemOffset + 1] = (byte)(ElevatorDestination.EndOfGame);
            }
            else if (i > 4)
            {
                i = (i - 4) | 0x80;
            }

            s.Data[s.itemOffset + 1] = (byte)i;
        }
Exemple #4
0
        public override int GetIndex(ItemSeeker s)
        {
            ItemTypeIndex i = (ItemTypeIndex)(s.Data[s.itemOffset] & 0x0F);

            if (i == ItemTypeIndex.Mella)
            {
                return(0);
            }
            if (i == ItemTypeIndex.Rinkas)
            {
                return(1);
            }
            return(2);
        }
Exemple #5
0
        public override int GetIndex(ItemSeeker s)
        {
            int dest = s.Data[s.itemOffset + 1];

            if ((dest & 0xF) == 0xF)
            {
                dest -= 0xA;                     // Complete game
            }
            if ((dest & 0x80) == 0x80)
            {
                dest += 4;      // Exit
            }
            dest = dest & 0x7F; // I forget why
            return(dest);
        }
Exemple #6
0
        private ItemData LoadItem(ItemSeeker seeker)
        {
            ItemData result;

            switch (seeker.ItemType)
            {
            case ItemTypeIndex.Enemy:
                result = new ItemEnemyData();
                break;

            case ItemTypeIndex.PowerUp:
                result = new ItemPowerupData();
                break;

            case ItemTypeIndex.Mella:
            case ItemTypeIndex.Rinkas:
            case ItemTypeIndex.MotherBrain:
            case ItemTypeIndex.PalSwap:
            case ItemTypeIndex.Zebetite:
                result = new ItemSingleByteData();
                break;

            case ItemTypeIndex.Elevator:
                result = new ItemElevatorData();
                break;

            case ItemTypeIndex.Turret:
                result = new ItemTurretData();
                break;

            case ItemTypeIndex.Door:
                result = new ItemDoorData();
                break;

            case ItemTypeIndex.Nothing:
            case ItemTypeIndex.Unused_b:
            case ItemTypeIndex.Unused_c:
            case ItemTypeIndex.Unused_d:
            case ItemTypeIndex.Unused_e:
            case ItemTypeIndex.Unused_f:
            default:
                return(null);
            }

            result.LoadData(seeker);
            return(result);
        }
Exemple #7
0
        public override void SetIndex(ItemSeeker s, int i)
        {
            ItemTypeIndex type;

            if (i == 0)
            {
                type = ItemTypeIndex.Mella;
            }
            else if (i == 1)
            {
                type = ItemTypeIndex.Rinkas;
            }
            else
            {
                type = ItemTypeIndex.PalSwap;
            }

            s.Data[s.itemOffset] = (byte)(
                (s.Data[s.itemOffset] & 0xF0) |
                ((int)type & 0x0F));
        }
Exemple #8
0
 public void SetSlot(ItemSeeker s, int i)
 {
     s.Data[s.itemOffset] = (byte)(
         (s.Data[s.itemOffset] & 0x0F) |
         (i * 0x10));
 }
Exemple #9
0
 public bool GetHard(ItemSeeker s)
 {
     return(s.Data[s.itemOffset + 1] >= 0x80);
 }
Exemple #10
0
 public int GetSlot(ItemSeeker s)
 {
     return(s.Data[s.itemOffset] / 0x10);
 }
Exemple #11
0
 public override void SetIndex(ItemSeeker s, int i)
 {
     s.Data[s.itemOffset + 1] = (byte)(
         (s.Data[s.itemOffset + 1] & 0xF0) |
         (i & 0x0F));
 }
Exemple #12
0
 public override int GetIndex(ItemSeeker s)
 {
     return(s.Data[s.itemOffset + 1] & 0x0F);
 }
Exemple #13
0
 public override void SetIndex(ItemSeeker s, int i)
 {
 }
Exemple #14
0
 public override int GetIndex(ItemSeeker s)
 {
     return(0);
 }
Exemple #15
0
 public abstract int GetIndex(ItemSeeker s);
Exemple #16
0
 public bool GetRespawn(ItemSeeker s)
 {
     return((s.Data[s.itemOffset] & 0x07) == 0x07);
 }
Exemple #17
0
 public abstract void SetIndex(ItemSeeker s, int i);