
Problems:
 . Look at speed
 . Check where the cfg file should be
 . Interaction between brush and variable layer pos/size/count Arg!
 . Should probably not call CHECK_POINTER everywhere ?
 . Fix this fucking list
 . Why are vincent's disabled buttons hidden ?

Help:
 . Re-read all doc to find errors
 . Index and cross reference
 . Document eme structure
 . Tutorial: Explain how to modify the map in a menu (i.e. create a Tiles object, fill it and paste it)
 . Doc: plugin reference

Later:
 . load_brush and save_brush in ieme
 . UserTools (give pixel position)
 . Palette editing in ieme
 . Resize before 0, 0 (i.e. resize+move) (Currently can't resize to top and left)
 . Command move layer, clipboard, [brush]
 . Use a layer for paste
 . Try to call TilesStack::update automatically in begini/j endi/j width height is_in
 . ieme outline is bogus (only on sparse layer?)
 . Swap layers in seme map format creation
 . Add a no-delete flag to layers (or a lock flag) (use noway.pcx)
 . Show/hide should be different from select layer (use eye.pcx)
 . Make menus inactive when no map
 . Diamond layers: draw border, gfx feedback for select circle and rect
 . Which insertion order is better ?
 . Clean text parser more and move it outside eme
 . text parser: try to find (and report) when there's an infinite loop
 . Move alxpm outside eme
 . Load tilesets from bitmap
 . Functions to save layers with various semantics (+be able to define them outside C++)
 . View all tiles on fullscreen (like tUME)
 . Clear a tile with only one click (left-click: set, right-click: clear, ctrl-click: get ?)
 . More 8bits support: PaletteProperty at least
 . Line help for menus
 . Re-write Wrapper OOO iterators so it's quicker (and remove the 65535 x 65535 tiles limit)
 . Create a generic Command where the client just say 'save this area' and s/he can edit it
 . Add doc generation in distro ?
 . List property from a text file in seme
 . Install libeme.a, emetool, seme [ieme]
 . Use Translation object instead of get_config_text in emepopup ?
 . Translation: current implementation cannot support language change on the fly
 . Wrapper for Brush (which could be used like wrapper for map)



**should have been done 6 months ago
* very important
+ important
- less important
  some day

  put m4 / doc in the distro ?
  put doc in text

  Check functions order (cant inline functions defined after their call) -- There's a gcc flag to test

  Crashes when not enough memory


**cvs


FTROU
-------
* Better help
  Plenty of gfx/maps
  Embed or not the add data in the map
  Callback for resizing the window (only when (if) Allegro support it)
+ Last map format does not seem to be saved in eme (is it saved in the wrong file (~/eme.cfg instead of ./eme.cfg)?)
  map scrollbar length should give a hint about the % of viewed map
  Display current brush
  Move command
  Can resize the various gui parts
  Zoom + center on a point (draw some tiles outside the visible part, to be able to see outside the map)


BRUSHES:
-------
+ Doc


REAL BUGS: (that gnaw this organic program class tree)
-------
  Display switch mode: may be one day I'll understand it
* Map rect+Tile diamond and Map diamond+Tile rect: computation of tile x/y from click is broken
* Rounding problems
+ Paste from a list layer to another.
- Cannot unexecute user menu (wrapper for commands and CommandGroup ?)
  Layer list pb when there is only one layer ?


GUI BUGS and problems
-------
+ Split map drawing in big tiles so it's quicker ? (don't always redraw all)
- How to handle names that are too long to be displayed ?
  Display tiles outside the visible part (+option)
  Paste tool should show the pasted area
  Scrollbar bug when changing active layer and one of the few last items is selected (what does this mean ?)


DOC:
-------
  Add a link from the tutorials to the relevant reference parts

  Tutorial: How to create a map format in seme,
  plgintut: Miscellanei (strings, commands);

  (if all game developpers are like V) Explain how to design the plugin
  User menus list should not have holes

  Difference between eme debug and user debug


PLUGIN:
-------
+ Wrapper: templates in the Pcompo + wrapper for accessing Pcompo internals?
- Easy way to create new type of properties -- Is TemplateProperty enough ?
  Wrapper: Abort when returning an error from the plugin
  Real plugins...
  DatafileManager: when loading a file try loading filename and /executable_path/filename ?


COMMANDS:
-------
- Alt: Intersect
  Act on one or more layers;
  Search&Select;
  Can select non-existing tiles? -- Ask users in the doc/index page ?
  Save selections (as masks)
  Apply should not apply to all tiles when no selection ? (remove line 42... and edit IsEmpty)
  Command auto-crop (for sparse layers)


CLEANING CODE:
--------
+ Split more clearly eme and the plugin
+ Separate seme map version and seme brush version
  Always print perror or allegro equivalent (ERROR_NOMEM, popup_quit -- used only in wrapper)
  Try not to crash/quit when out of memory -- this means that i must be able to do some cleaning
  Arbitrary limits : mapdlg (wrapper: hackstr[256], but this one is enough), file_select (/STRING_PATH_BASE_LENGTH)
+ All the malloc/calloc/realloc/new/strdup.... (i've put ERROR_NOMEM in all the seme files -- but i need something better)
+ Messages, some DBG_ASSERT should be replaced by messages


MISC:
-------
+ Enter = quit for the prop compo popup (don't know how to do that)
+ Graphical access to composite property like to list of layers
- Nested datafiles (in datafile.c and cdataf.c)
  map backup
  Don't loose the saved commands when changing max_undo_levels
  Specify (with command line? With config file) which layers are visible
  Templates for Creator base class (Does not seem to be possible)
  Script


DRAWING code:
-------
  Divide the map in several big tiles that are re-drawn one by one
  2 re-draw orders


IDEAS FROM OTHERS:
-------
From mappy:
  Horizontal *and* vertical offsets for iso (cf ODD_*)
  Anims
From MapMaker:
+ Step by step learning -- started: see tutorial


More Versatile:
------
  Allows drawing callback for all properties
+ 2 orders for drawing layers/tiles (need a better data struct for sparse layer)
    (also one order for some layers one order for others) 'coz, for now it
    doesn't work for overlapping tiles
  callback when modifying a tile value (to call a callback (C, for example) each
    time a tile changes (i.e. is added, removed, modified) with layer_index, i,
    j as params) -- or using a Command as callback ?
    Is it enough for V to have a Command (in the user menu ?)
    Anyway, the addition of menu items should be easier (eg register to the
    menu class)
  User defined tool and command (needs a user careful enough to to define
    correctly Execute and Unexecute) (easier for command than for tools)
  Load data from other files than Allegro datafiles

vim: lbr
