More immediately, but I'm too tired to continue for the night:

 * set_transient_for() on "new" dialog
 * get the transient working for the img/obj dialogs too actually
 * don't do a show_all() in constructor on "new" dialog?
 * docstrings for these new GUI classes
 * actually hook up "escape" functionality on there
 * Explicit option to "zero" the image lookup
 * Also, reformat that changelog
 * Book 2 Map Properties dialog needs a bit of widening

Packaging
---------
 * Should package this properly for all OSes.  Install into the
   Python library dir, have actual install scripts/programs, etc...

Data
----
 * Figure out the rest of our unknown values
 * Figure out details of the visual effects values (some of that is
   probably bit flags as well)
 * Decode "savename" file format (this is where current-map and actual
   position information is kept, and also quest status, I suspect)

Global GUI
----------
 * List of savegames as Eschalon would see them, on an "open" dialog,
   rather than having to browse

Character GUI
-------------
 * Implement the "Unknowns" screen
 * Highlight the Inventory Notebook labels when there's a change in one
   of them
 * Mouseover notification of previous values (for changed values)
 * "Enter" to close dialogs (item screens, etc) - applicable to Map GUI too

Map GUI
-------
 * Actually track changes, for confirmation-of-close?  (also could support
   confirmation on new loads if we did this).
 * Implement a 'question mark' or something for invalid tiles/entities
 * It turns out that technically we need to draw the map in multiple
   passes - first ground, then objects, etc (apparently including entities
   in with objects, not separately)  Tent graphics, for instance, get
   partially munged using our current method.
 * Change background color, like we do for selection in the square window
 * "Little" map, a la the Eschalon Map?  Showing currently-viewed-area?
 * Edits to map properties need to get hooked into the undo system
 * Optionally allow "smart" walls to connect between groups?
 * Erasing should re-smart-draw stuff around it, perhaps?
 * Smartdrawing should be a little less destructive when doing stuff.
   (overwriting non-grass/sand decals, etc)
 * Larger "brushes" to paint with?
 * The multiple-object warning in the square window doesn't go away
   if you close the window and then open up a different square which
   only has one object.

Internal
--------
 * The code is kind of a mess.  Sorry!
 * Use decimal module for floats, internally?
 * Using @staticmethod is kind of discouraged, and it would probably make
   sense to have those be functions instead.
