X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=tools%2Ftilemanager%2FApplication.cs;h=deaf73b967a864a1fe80c73df71c9d711c68fce0;hb=33b66711ec8c2f563a454f386a678eedd20a64a7;hp=22fbf8d8b816d5f1e14900366fbe9f17803f514f;hpb=812e983033b9bac58ab0089a48507c374719d1cd;p=supertux.git diff --git a/tools/tilemanager/Application.cs b/tools/tilemanager/Application.cs index 22fbf8d8b..deaf73b96 100644 --- a/tools/tilemanager/Application.cs +++ b/tools/tilemanager/Application.cs @@ -10,8 +10,11 @@ public class Application { [Glade.Widget] private Gtk.Window MainWindow; [Glade.Widget] + private Gtk.CheckMenuItem useNewSyntax; + [Glade.Widget] private Gtk.DrawingArea DrawingArea; [Glade.Widget] + //Flags CheckButtons private Gtk.CheckButton SolidCheckButton; [Glade.Widget] private Gtk.CheckButton UniSolidCheckButton; @@ -20,12 +23,25 @@ public class Application { [Glade.Widget] private Gtk.CheckButton WaterCheckButton; [Glade.Widget] + private Gtk.CheckButton HurtsCheckButton; + [Glade.Widget] + private Gtk.CheckButton FireCheckButton; + [Glade.Widget] + private Gtk.CheckButton BrickCheckButton; + [Glade.Widget] + private Gtk.CheckButton CoinCheckButton; + [Glade.Widget] + private Gtk.CheckButton FullBoxCheckButton; + [Glade.Widget] private Gtk.CheckButton SlopeCheckButton; [Glade.Widget] + private Gtk.CheckButton GoalCheckButton; + [Glade.Widget] private Gtk.CheckButton DontUseCheckButton; [Glade.Widget] private Gtk.CheckButton HiddenCheckButton; [Glade.Widget] + private Gtk.Entry DataEntry; [Glade.Widget] private Gtk.Entry AnimFpsEntry; @@ -133,6 +149,11 @@ public class Application { SelectionChanged(); FillTileGroupComboBox(); FillTileList(); + + useNewSyntax.Active = tileset.IsNew; + if (tileset.IsNew) + Console.WriteLine("Warning: new syntax of 0.3.x files \"More tiles in one image\" isn't currently supported for WRITING"); + } protected void OnImportImage(object o, EventArgs e) { @@ -237,11 +258,14 @@ public class Application { } protected void OnSave(object o, EventArgs e) { - if (tileset.TooNew) - Console.WriteLine( - "Sorry, the file you are editing is too new, there will be huge data loss if you save this."); - else + if (tileset.IsNew && useNewSyntax.Active) { + MessageDialog dialog = new MessageDialog(MainWindow, DialogFlags.Modal | DialogFlags.DestroyWithParent, MessageType.Error, ButtonsType.Ok, + "Sorry, the file you are editing is too new and 0.3.x syntax is not supported yet."); + dialog.Run(); + dialog.Destroy(); + } else { tileset.Write(tilesetfile); + } } protected void OnQuit(object o, EventArgs e) { @@ -404,8 +428,20 @@ public class Application { tile.SetAttribute(Attribute.ICE, IceCheckButton.Active); if(sender == WaterCheckButton) tile.SetAttribute(Attribute.WATER, WaterCheckButton.Active); + if(sender == HurtsCheckButton) + tile.SetAttribute(Attribute.HURTS, HurtsCheckButton.Active); + if(sender == FireCheckButton) + tile.SetAttribute(Attribute.FIRE, FireCheckButton.Active); + if(sender == BrickCheckButton) + tile.SetAttribute(Attribute.BRICK, BrickCheckButton.Active); + if(sender == CoinCheckButton) + tile.SetAttribute(Attribute.COIN, CoinCheckButton.Active); + if(sender == FullBoxCheckButton) + tile.SetAttribute(Attribute.FULLBOX, FullBoxCheckButton.Active); if(sender == SlopeCheckButton) tile.SetAttribute(Attribute.SLOPE, SlopeCheckButton.Active); + if(sender == GoalCheckButton) + tile.SetAttribute(Attribute.GOAL, GoalCheckButton.Active); if(sender == HiddenCheckButton) tile.Hidden = HiddenCheckButton.Active; if(sender == DontUseCheckButton) @@ -457,7 +493,13 @@ public class Application { UniSolidCheckButton.Active = tile.HasAttribute(Attribute.UNISOLID); IceCheckButton.Active = tile.HasAttribute(Attribute.ICE); WaterCheckButton.Active = tile.HasAttribute(Attribute.WATER); + HurtsCheckButton.Active = tile.HasAttribute(Attribute.HURTS); + FireCheckButton.Active = tile.HasAttribute(Attribute.FIRE); + BrickCheckButton.Active = tile.HasAttribute(Attribute.BRICK); + CoinCheckButton.Active = tile.HasAttribute(Attribute.COIN); + FullBoxCheckButton.Active = tile.HasAttribute(Attribute.FULLBOX); SlopeCheckButton.Active = tile.HasAttribute(Attribute.SLOPE); + GoalCheckButton.Active = tile.HasAttribute(Attribute.GOAL); HiddenCheckButton.Active = tile.Hidden; DontUseCheckButton.Active = tile.ID == -1; DataEntry.Text = tile.Data.ToString();