It also still does not work on layers.
Undo still does not work in layers
Ugh... I take it your layers are on a different map?
Right now undo/redo is implemented very naively, by simply copying the entire map into a temporary buffer after every edit. Changes to different maps are thus not preserved. I'm not particularly happy about keeping a copy of the entire set of quest maps in memory... DN, what do you think?
A couple of ways of fixing it that I can think of.
- Back up the entire map set in memory every time a change is made.
[list] - Pros:
[list] - Easy to implement
[/list]
- Cons:
[list] - Doubles map memory usage
[/list]
[*]Back up the entire map set to disk every time a change is made.
- Pros:
[list] - Easy to implement
[/list]
- Cons:
[list] - Slow
[/list]
[*]Back up affected screens (with originating map and screen references) to memory every time a change is made.
- Pros:
[list] - Least memory usage
[/list]
- Cons:
[list] - More complex/greater chance for bugs/corruption
[/list]
[/list]
Hrm, ideally Undo would be handled as in most advanced editors, ie, as a stack of deltas that you traverse using undo/redo, with each delta consisting not just of a tile change, but of any change to the quest, such as "Undo Change Palette," "Undo Grab Tiles," etc.
Obviously a massive amount of work if done now, much more reasonable if done bit by bit in ZC 3.0.
You know what?
It's always been that way and there is an easy way to "undo" what you've messed up.
You simply right click on a blank tile on the same screen/layer and hit select combo and replace the one you put there in error with one of the ones that were there originally.
Takes two seconds.
I know it never did.
*Bumped*
Would it be possible to back up all of the maps used on that screen's layers only (as opposed to all the maps or individually affected screens)?
I personally don't think this is large enough of an inconvience to fix. If it were a quick, simple, and bugless fix, then I'd say go ahead, but none of the options given by DN sound worth it. So perhaps let's save this for a new version of ZC?
Fixed by DN in the next build.