예제 #1
0
        void Core_WriteBattleScreenTSA(TSA_Array tsa)
        {
            bool[,] selection = Screen_GridBox.Selection;

            Core.WriteData(this,
                           Core.GetPointer("Battle Screen TSA"),
                           BattleScreen.GetInsertableTSA(CurrentScreen.Tiling).ToBytes(false, false),
                           BattleScreenEntry + "TSA changed");

            Screen_GridBox.Selection = selection;
        }
예제 #2
0
        void Core_Insert(BattleScreen insert)
        {
            Core.SuspendUpdate();
            Tileset tileset = new Tileset(insert.Graphics.Count);

            for (int i = 0; i < insert.Graphics.Count; i++)
            {
                if (i >= BattleScreen.TILE_LIMIT && i < BattleScreen.TILE_LIMIT_END)
                {
                    tileset.Add(Tile.Empty);
                }
                else
                {
                    tileset.Add(insert.Graphics[i]);
                }
            }
            byte[] data_tileset  = tileset.ToBytes(true);
            byte[] data_palette  = Palette.Merge(insert.Palettes).ToBytes(false);
            byte[] data_tsa      = BattleScreen.GetInsertableTSA(insert.Tiling).ToBytes(false, false);
            byte[] data_L_name   = insert.L_Name.ToBytes(true);
            byte[] data_L_weapon = insert.L_Weapon.ToBytes(true);
            byte[] data_R_name   = insert.R_Name.ToBytes(true);
            byte[] data_R_weapon = insert.R_Weapon.ToBytes(true);
            try
            {
                bool cancel = Prompt.ShowRepointDialog(this, "Repoint Battle Screen",
                                                       "The battle screen to insert might need some of its parts to be repointed.",
                                                       BattleScreenEntry, new Tuple <string, Pointer, int>[] {
                    Tuple.Create("Tileset", Core.GetPointer("Battle Screen Tileset"), data_tileset.Length),
                    Tuple.Create("Palette", Core.GetPointer("Battle Screen Palettes"), data_palette.Length),
                    // Tuple.Create("TSA", Core.GetPointer("Battle Screen TSA"), data_tsa.Length),
                    // repointing this TSA f***s everything up, shouldn't be too accessible
                    Tuple.Create("L Name", Core.GetPointer("Battle Screen L Name"), data_L_name.Length),
                    Tuple.Create("L Weapon", Core.GetPointer("Battle Screen L Weapon"), data_L_weapon.Length),
                    Tuple.Create("R Name", Core.GetPointer("Battle Screen R Name"), data_R_name.Length),
                    Tuple.Create("R Weapon", Core.GetPointer("Battle Screen R Weapon"), data_R_weapon.Length)
                });
                if (cancel)
                {
                    return;
                }

                Core.WriteData(this,
                               Core.GetPointer("Battle Screen Tileset"),
                               data_tileset,
                               CurrentEntry + "Tileset changed");

                Core.WriteData(this,
                               Core.GetPointer("Battle Screen Palettes"),
                               data_palette,
                               CurrentEntry + "Palettes changed");

                Core.WriteData(this,
                               Core.GetPointer("Battle Screen TSA"),
                               data_tsa,
                               CurrentEntry + "TSA changed");

                Core.WriteData(this,
                               Core.GetPointer("Battle Screen L Name"),
                               data_L_name, CurrentEntry + "L Name changed");
                Core.WriteData(this,
                               Core.GetPointer("Battle Screen L Weapon"),
                               data_L_weapon, CurrentEntry + "L Weapon changed");
                Core.WriteData(this,
                               Core.GetPointer("Battle Screen R Name"),
                               data_R_name, CurrentEntry + "R Name changed");
                Core.WriteData(this,
                               Core.GetPointer("Battle Screen R Weapon"),
                               data_R_weapon, CurrentEntry + "R Weapon changed");
            }
            catch (Exception ex)
            {
                Program.ShowError("Could not insert the Battle Screen Frame.", ex);
                Core_Update();
            }
            Core.ResumeUpdate();
            Core.PerformUpdate();
        }