Future
======

mode is not initialized in dinkvar.h.
It is, I think, first initialized in dink.cpp in doInit().
process_line() from dinkvar.h also set its value.


At a point, mode needs to be properly initialized somewhere, to avoid
"duplicating" the variable in each object file that uses it.


When sprites are disabled for N minutes with editor_type(), the 'N
minutes' are computed with the value SDL_GetTicks() the last time you
entered the screen. This can be a problem:

- Generally: the last_time per-screen value is reset each time the
  screen is loaded. This means that if you enter a screen once every 5
  minutes, the counter will always be reset, and you'll never see
  enemies reappearing. This is more complex to fix, as it probably
  requires altering the savegame format.

- SDL-specific: if you quit and restart the game, then SDL_GetTicks is
  reset. In the woe version, you needed to reboot the computer (not
  the game) to get the same effect. So maybe we can check if N minutes
  passed using a timestamp instead.


Warn if a savegame appears to be v1.08 while running in v1.07 mode.


Also check existing_bugs.txt.


i18n
====

[ ] Use a relocatable LOCALEDIR

[ ] Fall back to main Dink .mo if no translations are found

[ ] Try to open files from l10n/LOCALE/ in case the translation is
    providing a graphic or script replacement

[ ] Have DFArc look at l10n/LOCALE/dmod.diz if available
    => No, rather add dmod.diz to the .pot file, so translators have
    as much text as possible in their .po file.

[ ] Unbreakable spaces are displayed with a square. This breaks the
    use of unbreakable spaces in front of punctuation in translations
    (e.g. for French '!'). This is a problem in either Liberation-Sans
    or SDL_ttf. OOo can display correct unbreakable spaces with
    Liberation-Sans though.


SDL 2.0
=======

As of 2014-06, what was done - and hence what needs testing ;)

- New SDL2 dependencies

- Graphics processing currently entirely moved to software.  This
  doesn't change much from before, since hardware surfaces aren't well
  supported these days.  Performances are worse than with SDL1 still,
  due to emphasizing targetting a 3D card, but let's first find a
  platform where that's a problem.

  We need palette support on the final display to support dynamic
  palette change in "Lyna's Story" (semi-complete palette inversion)
  and "Cycles of Evil" (change of colours to match seasons, seems
  manual and more complex to reproduce than a simple color
  modulation).

  We also need palette processing (dithering/conversion, which I
  updated for SDL2) for color correctness in non-truecolor mode - but
  that can be done at graphics loading time, before a hardware upload.
  That could be necessary to get the same white pixels during
  fade_down() (which targets #FFFFFF precisely).

  Last fill_screen() relies on propoer palette loading with
  reproduction of DX bugs.

  Just recap'ing doc/palettes.txt...

- Replaced custom relative mouse motion handling with SDL's

- Replaced 'failsafe' SDL window with SDL_ShowSimpleMessageBox()

- Text input (DinkC Console and FreeDinkEdit) now uses SDL_TextInput
  events

- Updated full-screen toggling (FreeDink and FreeDinkedit)

- Updated joystick

- CD-ROM disabled

- Cleaned-up some 'abort_this_flip' due to not having
  SDL_SetPalette(PHYS) triggering a flip anymore (since we had to
  reimplement it..)


Bug reports
==================

- http://www.dinknetwork.com/forum.cgi?MID=189539#189539

  Seems related to keycodes

- http://www.dinknetwork.com/forum.cgi?MID=189334#189334
  http://www.dinknetwork.com/forum.cgi?MID=189024#189182

  GOKUSSJ6 reports 64-bit-specific incompatibility with MIDI
  soundfonts, but yeoldetoast seems to disagree.

- http://www.dinknetwork.com/forum.cgi?MID=191266#191266
  http://www.dinknetwork.com/forum.cgi?MID=189801#189801

  Reports of font aspect/load issues.

- The screen fade is too fast when compared to dink108.exe
  (tested with Wine)
