I'll update the list when you guys post your ideas here. I'll start with my suggestions (only "general" features please).
Note that this is a list with stuff that would be nice if they're added, not all of them need to be added.
General
- All lists (maps, items, npcs, textures, ...) should be searchable, some kind of "Universal Search"
- Undo/Redo
Map Editor
- Auto-wall editor with grid support, same wall drawing features the regular map has
- Walls can be drawn from top to bottom, left to right, right to left and bottom to top and diagonal
- TOPDOWN: multiple layers support (basic support is OK, aka being able to select the layer you want to edit so it sets all grh's you'll put on the map to that layer)
- TOPDOWN: ability to turn on/off visibility of each layer
- Replace Open Map Dialog with a custom made one that shows MapID and MapName
- Larger preview thumbnails for textures
- Have a window where you can "pin" texture thumbnails (e.g. when you're working on a forest you might want to have trees, rocks, grass, etc in there)
- Ambient Light (same for effects) should have a color pick dialog window
Shop Editor
- In 'Items' list, you should be able to select items and have a price modifier for each selected item (and a 'result' for the modified price should be shown).
- You should be able to have the shop be able to buy all kind of items from a player, but also just a selection if specific items are selected (also a price modifier here).
- Even better would be you can either define the price and it'll adjust the modifier for you or vice versa
I don't think any work has been done to the editor so far so it'd be great if you could ![]()
Undo/redo support would be nice, though it'd probably be quite difficult to do globally. It will probably have to be done for individual parts, or just for the mapping. Though that should be no problem since other things, like the database editing, shouldn't need undo/redo too much. Worst you do is delete something, don't know how to restore it, and just have to re-load instead of saving.
Yeah, having undo/redo is especially useful for the mapeditor, if the other parts don't have it it's not such a big deal.
Undo/redo would be nice. Probably every action would have to encapsulated as a object that knows how to undo/redo itself. I think that's how Microsoft does it...
Yeah, that would be the way to go. But the difficulty is usually managing all of that stuff in a way intuitive for the user, deciding WHAT to undo/redo, and making everything be able to support undo/redo operations.
I guess if you guys can decide what exactly you want undo/redo support on, and how it will behave, then I can probably do it. For instance, should it be global or based on what has focus? That is, if you edit the map, then select the particle editor and press undo, what gets un-done? The map, or the last change in the particle editor?
Global is fine, as long as it says what it'll undo/redo
undo "list last action in a manner that the user will understand".
Whatever editor they are in gets it's own list of undo/redos. (actions if you will)
When you hit one of these keys, it uses the list of the current editor. If you aren't in an editor, there is a separate list for that. (or not, that last part doesn't really matter)
I think that's the best because undo/redo is in the mind set of the current editor. (at least in my opinion)
Well if its all encapsulated form eachother?
How about the UNDO command brings up a popup,
where the user has the choice of WHAT he will undo (the last step from every editor)
If you are saving a sort of history for multiple undos, offer these steps in the history to the user maybe.
I don't frequently use Redo, so I personally dont have many needs there...
A simple Redo (Undo that Undo action) would do for my needs.
It would be kind of irritating to have to answer a dialog every time you undo. There should just be a list (in every individual editor) filled with IAction objects. IAction should have a Undo and a Redo method. The action can bring up a dialog if it thinks undoing it might be dangerous to prompt the user. (MessageBox for WinForms)
That way before you actually do something in the editor you -> create action object -> call Redo() to actually do the action -> put it in the list.
I think that's the best way to do it. (there would also be a global list for when your not in an editor)
The Undo button could also have a drop down history if you wanted to be able to undo a multitude of actions at one time. That would be the way I would try to do it, but I don't really know all the different things the editors do and how they work...
You could always have local and global undo/redo. Like you press Ctrl+Z to undo the last action globally, Ctrl+Alt+Z to undo the last action in the editor you're currently in.
I did some work on Undo/Redo a while back in the map editor. I'm not sure if I still have it, but if nobody has done it already I could see if I can dig it up for you.