Ejemplo n.º 1
0
//========================================================================================
// Object management - tools.


        private void DeleteData(Data data)
        {
            if (data is IReferenceable refdata)
            {
                refdata.DetachAllReferences();
            }
            switch (data)
            {
            case Room d:
                Rooms.Remove(d);
                break;

            case DoorSet d:
                DoorSets.Remove(d);
                break;

            case Door d:
                Doors.Remove(d);
                break;

            case ScrollSet d:
                ScrollSets.Remove(d);
                break;

            case PlmSet d:
                PlmSets.Remove(d);
                break;

            case ScrollPlmData d:
                ScrollPlmDatas.Remove(d);
                break;

            case Background d:
                Backgrounds.Remove(d);
                break;

            case Fx d:
                Fxs.Remove(d);
                break;

            case SaveStation d:
                SaveStations.Remove(d);
                break;

            case LevelData d:
                LevelDatas.Remove(d);
                break;

            case EnemySet d:
                EnemySets.Remove(d);
                break;

            case EnemyGfx d:
                EnemyGfxs.Remove(d);
                break;

            case ScrollAsm d:
                ScrollAsms.Remove(d);
                break;

            case Asm d:
                DoorAsms.Remove(d);
                SetupAsms.Remove(d);
                MainAsms.Remove(d);
                break;

            case TileSet d:
                TileSets.Remove(d);
                break;

            case TileTable d:
                TileTables.Remove(d);
                break;

            case TileSheet d:
                TileSheets.Remove(d);
                break;

            case Palette d:
                Palettes.Remove(d);
                break;

            case AreaMap d:
                AreaMaps.Remove(d);
                break;

            default:
                break;
            }
            ChangesMade = true;
        }