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); }
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); } }
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; }
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); }
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); }
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); }
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)); }
public void SetSlot(ItemSeeker s, int i) { s.Data[s.itemOffset] = (byte)( (s.Data[s.itemOffset] & 0x0F) | (i * 0x10)); }
public bool GetHard(ItemSeeker s) { return(s.Data[s.itemOffset + 1] >= 0x80); }
public int GetSlot(ItemSeeker s) { return(s.Data[s.itemOffset] / 0x10); }
public override void SetIndex(ItemSeeker s, int i) { s.Data[s.itemOffset + 1] = (byte)( (s.Data[s.itemOffset + 1] & 0xF0) | (i & 0x0F)); }
public override int GetIndex(ItemSeeker s) { return(s.Data[s.itemOffset + 1] & 0x0F); }
public override void SetIndex(ItemSeeker s, int i) { }
public override int GetIndex(ItemSeeker s) { return(0); }
public abstract int GetIndex(ItemSeeker s);
public bool GetRespawn(ItemSeeker s) { return((s.Data[s.itemOffset] & 0x07) == 0x07); }
public abstract void SetIndex(ItemSeeker s, int i);