public eCoinEditor() { InitializeComponent(); header = LevelCard.level_header; eCoinData = LevelCard.level_eCoin; if (LevelCard.level_eCoin.gfx != null) { //Init eCoinGFX = new byte[24, 24]; eCoinGFXI = new Bitmap(192, 192); eCoinPALI = new Bitmap(192, 48); eCoinPAL = new Color[16]; //Get Palette loadPalette(); updateSelected(); //Get GFX to Bitmap loadGraphics(); //Get numbers int position = header.eCoin; int floor = (int)Math.Ceiling((double)(position / 8)); int pos = position - (floor * 8); numericUpDownFloor.Value = floor; numericUpDownPos.Value = pos; } }
public static void InitLevel(Form1 _MainForm) { //TODO LevelCard.header header = new LevelCard.header(); header.eCoin = 0; header.acecoins = 0; header.lvl_class = 0; header.lvl_icon = 0; header.lvl_num = 0; header.lvl_name = "New Level Card"; LevelCard.level_header = header; }
public static void LoadLevel(Form1 _MainForm, string filename, Stream file) { //TODO //Load File (*.level) InitLevel(_MainForm); InitTreeView(_MainForm); LevelCard.loaded_file = filename; file.Seek(0, SeekOrigin.Begin); LevelCard.header header = new LevelCard.header(); //Load Header header.eCoin = (byte)file.ReadByte(); header.acecoins = (byte)file.ReadByte(); header.lvl_class = (byte)file.ReadByte(); header.lvl_num = (byte)file.ReadByte(); header.lvl_icon = (byte)file.ReadByte(); for (int numBytes = 0x5; numBytes < 0x40; numBytes++) {//0x4-0x40 is where data stops header.delicious.Add((byte)file.ReadByte()); } //file.Seek(0x40, SeekOrigin.Begin); if (header.eCoin != 0) { //Load eCoin LevelCard.eCoin eCoin; ushort[] pal = new ushort[16]; byte[] gfx = new byte[0x120]; for (int i = 0; i < pal.Length; i++) { pal[i] = (ushort)(file.ReadByte() | (file.ReadByte() << 8)); } for (int i = 0; i < gfx.Length; i++) { gfx[i] = (byte)file.ReadByte(); } eCoin.pal = pal; eCoin.gfx = gfx; //file.Seek(0x180, SeekOrigin.Begin); LevelCard.level_eCoin = eCoin; //for (int numBytes = 0x17F; numBytes < 0x4D4; numBytes++) while (file.Position < file.Length)//nothing past 17F in saved level, 4D4 is EoF { header.dessert.Add((byte)file.ReadByte()); } } //Level Name byte[] name = new byte[21]; for (int i = 0; i < 21; i++) { name[i] = (byte)file.ReadByte(); if (name[i] == 0xFF) { break; } } header.lvl_name = LevelCard.getLevelName(name); LevelCard.level_header = header; //Load Objects (Are they actually loaded? Is this the problem?) //Update TreeView UpdateTreeView(_MainForm); }