Ejemplo n.º 1
0
 public static void reloadLevelParamsData()
 {
     levelData.Clear();
     doorsData.Clear();
     for (int i = 0; i < LEVELS_COUNT; i++)
     {
         levelData.Add(LevelData.readFromFile(Globals.romdata, i));
     }
     for (int i = 0; i < DOORS_COUNT; i++)
     {
         doorsData.Add(DoorData.readFromFile(Globals.romdata, i));
     }
 }
Ejemplo n.º 2
0
 public static DoorData readFromFile(byte[] romdata, int no)
 {
     DoorData res = new DoorData();
     res.objId = romdata[DoorRecBaseOffset    + 72  + no];
     res.backId = romdata[DoorRecBaseOffset   + 96  + no];
     res.palId = romdata[DoorRecBaseOffset    + 120 + no];
     res.palId2 = romdata[DoorRecBaseOffset   + 144 + no];
     res.palBlink = romdata[DoorRecBaseOffset + 168 + no];
     res.startLoc = romdata[DoorRecBaseOffset + 0   + no];
     res.scrX = romdata[DoorRecBaseOffset     + 48  + no];
     res.scrY = romdata[DoorRecBaseOffset     + 24  + no];
     res.playerX = romdata[DoorRecBaseOffset  + 193 + no];
     res.playerY = romdata[DoorRecBaseOffset  + 217 + no];
     return res;
 }
Ejemplo n.º 3
0
        bool saveToFile()
        {
            var romFname = OpenFile.FileName;
            int no       = cbLevel.SelectedIndex;

            if (no == -1)
            {
                return(false);
            }
            bool isLevel = no < GlobalsCad.LEVELS_COUNT;

            if (isLevel)
            {
                LevelData ld = GlobalsCad.levelData[no];
                ld.backId   = indexToId89(cbBackGfx.SelectedIndex);
                ld.objId    = indexToId89(cbObjGfx.SelectedIndex);
                ld.palId    = cbPalleteNo.SelectedIndex;
                ld.palId2   = cbPallete2No.SelectedIndex;
                ld.palBlink = cbPalBlinkByte.SelectedIndex;
                ld.startLoc = cbStartLoc.SelectedIndex;

                ld.musicNo    = cbMusicNo.SelectedIndex;
                ld.bigBlockId = cbBigBlocks.SelectedIndex;
                ld.setWidth(cbLayoutWidth.SelectedIndex + 1);
                ld.setHeight(cbLayoutHeight.SelectedIndex + 1);
                ld.saveToFile(Globals.romdata, no);
            }
            else
            {
                no -= GlobalsCad.LEVELS_COUNT;
                DoorData ld = GlobalsCad.doorsData[no];
                ld.backId   = indexToId89(cbBackGfx.SelectedIndex);
                ld.objId    = indexToId89(cbObjGfx.SelectedIndex);
                ld.palId    = cbPalleteNo.SelectedIndex;
                ld.palId2   = cbPallete2No.SelectedIndex;
                ld.palBlink = cbPalBlinkByte.SelectedIndex;
                ld.startLoc = cbStartLoc.SelectedIndex;

                ld.scrX    = cbScrX.SelectedIndex;
                ld.scrY    = cbScrY.SelectedIndex;
                ld.playerX = cbPlayerX.SelectedIndex;
                ld.playerY = cbPlayerY.SelectedIndex;
                ld.saveToFile(Globals.romdata, no);
            }

            dirty = !Globals.flushToFile();
            return(!dirty);
        }
Ejemplo n.º 4
0
        static public DoorData readFromFile(byte[] romdata, int no)
        {
            DoorData res = new DoorData();

            res.objId    = romdata[DoorRecBaseOffset + 72 + no];
            res.backId   = romdata[DoorRecBaseOffset + 96 + no];
            res.palId    = romdata[DoorRecBaseOffset + 120 + no];
            res.palId2   = romdata[DoorRecBaseOffset + 144 + no];
            res.palBlink = romdata[DoorRecBaseOffset + 168 + no];
            res.startLoc = romdata[DoorRecBaseOffset + 0 + no];
            res.scrX     = romdata[DoorRecBaseOffset + 48 + no];
            res.scrY     = romdata[DoorRecBaseOffset + 24 + no];
            res.playerX  = romdata[DoorRecBaseOffset + 193 + no];
            res.playerY  = romdata[DoorRecBaseOffset + 217 + no];
            return(res);
        }
Ejemplo n.º 5
0
        public static void reloadLevelParamsData()
        {
            LevelData.LoadOffsetsFromConfig();
            DoorData.LoadOffsetsFromConfig();

            levelData.Clear();
            doorsData.Clear();
            for (int i = 0; i < levelsCount; i++)
            {
                levelData.Add(LevelData.readFromFile(Globals.romdata, i));
            }
            for (int i = 0; i < doorsCount; i++)
            {
                doorsData.Add(DoorData.readFromFile(Globals.romdata, i));
            }
        }
Ejemplo n.º 6
0
        private void cbLevel_SelectedIndexChanged(object sender, EventArgs e)
        {
            //TODO: refactor this block to separate method
            if (dirty)
            {
                DialogResult dr = MessageBox.Show("Level was changed. Do you want to save current level?", "Save", MessageBoxButtons.YesNoCancel);
                if (dr == DialogResult.Cancel)
                {
                    returnCbLevelIndex();
                    return;
                }
                else if (dr == DialogResult.Yes)
                {
                    if (!saveToFile())
                    {
                        returnCbLevelIndex();
                        return;
                    }
                }
                else
                {
                    dirty = false;
                }
            }
            int no = cbLevel.SelectedIndex;

            curActiveLevel = no;
            if (no == -1)
            {
                return;
            }
            bool isLevel = no < GlobalsCad.LEVELS_COUNT;

            if (isLevel)
            {
                LevelData ld = GlobalsCad.levelData[no];
                cbBackGfx.SelectedIndex      = id89toIndex(ld.backId);
                cbObjGfx.SelectedIndex       = id89toIndex(ld.objId);
                cbPalleteNo.SelectedIndex    = ld.palId;
                cbPallete2No.SelectedIndex   = ld.palId2;
                cbPalBlinkByte.SelectedIndex = ld.palBlink;

                cbStartLoc.SelectedIndex     = ld.startLoc;
                cbLayoutWidth.SelectedIndex  = ld.getWidth() - 1;
                cbLayoutHeight.SelectedIndex = ld.getHeight() - 1;
                cbLayoutAddr.Text            = String.Format("{0:X}", ld.layoutAddr);
                cbScrollAddr.Text            = String.Format("{0:X}", ld.scrollAddr);
                cbDirsAddr.Text      = String.Format("{0:X}", ld.dirsAddr);
                lbLayoutAddress.Text = String.Format("{0:X}", ld.getActualLayoutAddr());
                lbScrollAddr.Text    = String.Format("{0:X}", ld.getActualScrollAddr());
                lbDirsAddr.Text      = String.Format("{0:X}", ld.getActualDirsAddr());

                cbBigBlocks.SelectedIndex = ld.bigBlockId;
                cbMusicNo.SelectedIndex   = ld.musicNo;

                cbScrX.Enabled         = false;
                cbScrY.Enabled         = false;
                cbPlayerX.Enabled      = false;
                cbPlayerY.Enabled      = false;
                cbLayoutWidth.Enabled  = true;
                cbLayoutHeight.Enabled = true;
                //cbScrollAddr.Enabled = true;
                //cbLayoutAddr.Enabled = true;
                //cbDirsAddr.Enabled = true;
                cbBigBlocks.Enabled = true;
                cbMusicNo.Enabled   = true;
            }
            else
            {
                no -= GlobalsCad.LEVELS_COUNT;
                DoorData ld = GlobalsCad.doorsData[no];
                cbBackGfx.SelectedIndex      = id89toIndex(ld.backId);
                cbObjGfx.SelectedIndex       = id89toIndex(ld.objId);
                cbPalleteNo.SelectedIndex    = ld.palId;
                cbPallete2No.SelectedIndex   = ld.palId2;
                cbPalBlinkByte.SelectedIndex = ld.palBlink;

                cbStartLoc.SelectedIndex = ld.startLoc;
                cbScrX.SelectedIndex     = ld.scrX;
                cbScrY.SelectedIndex     = ld.scrY;
                cbPlayerX.SelectedIndex  = ld.playerX;
                cbPlayerY.SelectedIndex  = ld.playerY;

                cbScrX.Enabled         = true;
                cbScrY.Enabled         = true;
                cbPlayerX.Enabled      = true;
                cbPlayerY.Enabled      = true;
                cbLayoutWidth.Enabled  = false;
                cbLayoutHeight.Enabled = false;
                //cbScrollAddr.Enabled = false;
                //cbLayoutAddr.Enabled = false;
                //cbDirsAddr.Enabled = false;
                cbBigBlocks.Enabled = false;
                cbMusicNo.Enabled   = false;
            }
            lbl1.Enabled = isLevel;
            lbl2.Enabled = isLevel;
            lbl3.Enabled = isLevel;
            lbl4.Enabled = isLevel;
            lbl5.Enabled = isLevel;
            lbl6.Enabled = isLevel;
            lbl7.Enabled = isLevel;
            lbd1.Enabled = !isLevel;
            lbd2.Enabled = !isLevel;
            lbd3.Enabled = !isLevel;
            lbd4.Enabled = !isLevel;
            dirty        = false;
        }
Ejemplo n.º 7
0
 private void loadLevelData()
 {
     LevelData.LoadOffsetsFromConfig();
     DoorData.LoadOffsetsFromConfig();
     GlobalsCad.reloadLevelParamsData();
 }