Version 1.4.0
-------------

- Bug019: ShowBestTimesDlg: Ist Rekord versendungsfhig und wird der Show-Button
          angeklickt => was_send == true

- Imp014: ShowBestTimesDlg: Falls keine Zeit eingetragen ist, wird der
          Reset-Button disabled (Fr Show-Button leider nicht so leicht)

- Bug018: Undo macht vlligen Unsinn bei Zusatzboards

- Imp013: Boards '.' -> '.\boards'

- Imp012: Hintergrundfarbe fr NT und W2000 unterschiedlich

- Imp011: LogException nicht als unknown exception.

- Imp010: F2 -> ctrl-n

- Bug016: ShowMines auf on, new Game, irgendwas, undo all => Exception
          - Es wird kein start_timer gesetzt, beim play wird aber einer erwartet
          - Lsung: glob::show_mines -> Options::show_mines

- Imp009: mine32.ico wird nicht mehr zur Laufzeit bentigt (mine32.xpm)
          (mine32.ico wird fr mineperf.exe gebraucht)

- Bug015: Glob::log_on = false => auto.log wird trotzdem erzeugt

- Bug   : Abspeichern eines Verlorenen Spiels und Laden desselben, hat zur
          Folge, dass offene Felder nicht gemalt werden.
          (Tritt nicht mehr auf)

- Bug014: Rekord ohne Feldffnen

- Bug009: ASSERT beim Abspielen einer *.log-Datei mit 'hint'.
          (nichts getan, tritt aber nicht mehr auf)

- Bug013: Menpunkt Solve all: Hkchen bleiben stehen

- Bug012: Absturz bei 2x Best Times (Nur W2000 nicht bei W9x oder NT)
          Tritt bei V140 nicht mehr auf (keine Bearbeitung)

- Fea004: Show Mines

- Imp   : _VARIANT_ (in Projektfiles)

- Imp   : Selfdefined-Modus -> Time = 999

- Bug011: Flaggen knnen nicht mehr entfernt werden

- Fea003: Senden eines Bug-reports

- Imp008: smilie -> smiley

- Bug010: Verlorenes Spiel laden => Feld wird nicht aktualisiert.

- Imp007: throw Exception -> ASSERT

- Imp006: Im User-defined-Level laeuft die Uhr nicht mehr mit.

- Bug008: MainWin wird beim Programmstart nicht an letzter Stelle wieder angezeigt.

- Imp005: rand-Funktion selberschreiben
          - Bestimmung der Startsequenz zufaelliger (nicht mehr mit clock())

- Imp004: guestbook.php legt Daten tabellenfrmig ab.

- Fea002: Senden eines Hiscore-Eintrages
          - Sekunden -> Millisekunden
          - Neuer HiScore: Uservorschlag: Letzter global, nicht letzter des akt. Levels
            (Dafr Datum in Ini-Datei)
          - Username + Zusatzkennung (Dafr Userliste in Ini-Datei)

- Imp003: Quellen fuer Visual-C++ uebersetzbar gemacht

- Bug007: Falsche Flagge + oeffnen auf offenem Feld => Absturz

- Imp002: Ctrl-Klassen + verzoegertes Zeichnen

- Fea001: Gaestebuch auf Homepage eingerichtet

- Imp001: Verzoegertes zeichnen
          - Alle Controls zeichnen sich und ihre Kinder selber.
          - Loeschen eines Controls hat Loeschung aller Kinder zur Folge.
          - Basisklasse fuer alle Controls


Version 1.3.0:
--------------

- Src23:
  - Bug005: Murphy's Law wird nicht angewendet.
  - Bug004: Spiel zeigt Sackgasse an, obwohl es die inneren geschlossenen Zellen keine
            Mienen mehr enhalten koennen.
  - Bug003: Absturz
  - wxwin: Selfdefined-Dlg: keine Tiefe
  - wxwin: neuer Highscore, Cancle => Highscore wird ohne Namen eingetragen
  - Authentic(board) -> Logfile

- Src23 oder Src22
  - Beim Laden Logbook::clock0 korrigieren
  - Beim Laden wird anscheinend das akt. Verzeichnis verstellt
    -> mineperf.ini und auto.log im falschen Verzeichnis

- Src22:
  - Logbook: undo/redo:
    - ueberspringen von invalid logs
    - s+c+z ueber invalid log -> Fehler
    - Beim letztmoeglichem Redo invalid ueberspringen
  - chksum fuer boards (bisher nur dummy)
  - Start-Timer-Log
  - Certified-Boards: (Ini-Datei, Board, NewRecordDlg, BoardType)
  - Flackern entfernt: boardview: beim Zellenoeffnen
                       game: beim Aufbau (neuer Parameter: width_draw)
  - Deadend-Sound

- Src21:
  - Bug001: Stillstand beim Laden einer ungueltigen Log-Datei
            -> logbook.cpp/h, api.cpp/h, game.cpp

  - Absturz bei trace_level == 2
    -> eqs.cpp, board.cpp

  - Gruppen werden ev. nicht richtig gebildet (offen)
     EQS::findOneSolution/findMoves3

  - Log-Datei mit Version, GUI und Boardnr -> name,
  - Ini-Datei mit Version
  - namespace 'Glob' fuer globale Var. in game.cpp eingefuehrt

- Src20:
  - Checksum
  - Bug002: Murphys-Law funktioniert nicht richtig

- Src19: Sound
- Src18: Dialoge fertig, Board-Menu
- Src17: neues Timer-Konzept
- Src16: Anpassungen fuer Linux (lauffaehig, aber noch mit Fehlern)
- Src15: Abstrakte-Schnittstellenklasse fuer C++-Builder5
- Src14: Abstrakte-Schnittstellenklasse fuer Sound und Timer
- Src13: Bitmap: Abstrakte-Schnittstellenklasse fertig
- Src12: Bevel + Frame-Window gehen jetzt

- unzugeordnet:

  - timer mit uclock synchronisieren?
    - game sollte nicht Timer::setNum(n: 0 < n && n < 999) aufrufen
    - Timer::start und Timer::stop sollten verwendet werden

  - auto.log wurde nicht im Play-Modus geschrieben (OOT)

  - Exception beim laden von err100.log
    - BOARD::act(): max_stage wurde runtergesetzt (geht (noch) nicht im Play-Modus)
    - logbook_bck war unsinn (dadurch setNextLog wirkungslos)

  - Laden einer leeren (keine dyn. Daten) *.log-Datei -> Exception:
    'play-index zu gross'

  - Beide Maustasten gedrueckt -> Erst Feld markiert, dann Nachbarn angezeigt

  - Absturz bei Grid-3d 5x5x5 mit 99 Minen

  - Beim neuem Spiel werden keine neuen Wholes angezeigt,
    intern aber anscheinend berechnet, da das Laden und Speichern
    nicht dann nicht mehr klappt.

  - Falls Spiel von Autosolve geloest wurde, werden
    die verminten, aber nicht geflaggten Zellen nicht als geflaggt gezeichnet.

  - auto_solve_stage = 1
    manchmal werden verminte Zellen offen gezeichnet

  - api.h/.cpp

      MPOINT operator+ (const MPOINT& a, const MPOINT b);
      /*
      {
        MPOINT r = a;
        MPOINT r = a;
    -   return r += a;
    +   return r += b;
      }
      */

  - game.cpp:
    OPTIONS::OPTIONS() wird 3x aufgerufen ?! (keine *.ini-Datei)

  - triangle14: Rand der Zellen sieht komisch aus

  - Gross/Kleinschreibung im Boardnamen (Datei <-> *.ini) unterschiedlich
    -> ev. Absturz
    Gross/Kleinschreibung sollte aus Datei (aus welcher?) uebernommen werden.

- Umstellung auf wxWindows

- noch fuer Borland
  - Startup-Modus bei Triangle manchmal etwas langsam
    (BOARD::getRandCell Bevorzugung von Randzellen mit wenigen
     'clean'-Nachbarzellen)

  - Fehler: Bis die Zeit von 0 auf 1 umspringt vergehen 0 - 999 ms.
  - neu: Undo/Redo
  - neu: Laden/Speichern


Version 1.2.1:
--------------

- Fehler behoben: Voraus.: murphys_law = on
                  Wurde eine Zelle geflaggt die nicht vermint war
                  -> Exception: BOARD::chkMines(): open Cell is mined
                  (log_squ4.txt - log_squ5.txt)

Version 1.2.0:
--------------

- neu: mit Sounduntersttzung

- neu: Lckenlose Kontrolle beim Minenumlegen

- gendert: Default-Modus ist Lucky (nicht mehr Original)

- Fehler behoben: - - -  ->  wird '?'-Zelle geffnet, dann wird die Mine auf diese
                  - 1 ?      Zelle gelegt (richtig) -> Spiel verloren (richtig), aber
                  - 1 !*     kein Kreuz bei '!*'-Zelle
                  - 2 -

- Fehler behoben: Exception: EQS::findOneSolution: mines_diff != 0

- Fehler behoben: Die log.txt-Datei wird zu spt geschrieben und so fehlt
                  im Falle einer Ausnahme u.U. der letzte Schritt.

Version 1.1.2:
--------------

- Fehler behoben: 8 x 8 x 30, Start-Up, seq=938(939?),
                  -> Endlosschleife vor dem 1. Klick.
                  getRandHint(): liefert verminte Zelle mit num_mines==0

Version 1.1.1:
--------------

- Fehler behoben: Moduswechsel (Original->Startup, Status==BEFORE)
                  -> Zeit startet nicht

Version 1.1.0:
--------------

- neu: Lucky-Modus, Murphy's Law, log.txt-Datei, randomize

- Fehler behoben: Aenderung der Windowsschriften fuer Titel und Menu
                  -> Groesse des Fensters stimmte nicht mehr.

Version 1.0.2:
--------------

- Intern: BOARD Unterscheidung nach EQS-real und EQS-visible

- Modus kann waehrend eines Spiels gewechselt werden

- Tasten umbelegt: F2 -> F5, Ctrl + F1-3 -> F1-3

- Smili wird nicht neu gezeichnet, wenn er sich nicht geaendert hat
  (z.B. rechte Maustaste und gleiche Stufe)

- Fehler behoben:
  Autosolve, Spiel gleich zu Beginn geloest
  -> Es blieben manchmal unmarkierte, geschlossene Zellen zurck

- Fehler behoben: Autosolve (Hints), Spiel gewonnen
                  -> Anzahl Restminen war manchmal falsch

- BOARD::getRandCell verbessert (korrigiert?)

- Keine Bitmap-Dateien mehr noetig

- Selfdefined-Dialog: Abbrechen -> kein neues Spiel


Version 1.0.1:
--------------

- Neues Loesungsverfahren (EQS statt LEQS und GEQS) integriert.
  Findet nun auch Zuege, die nur mit Hilfe der Gesamtminenzahl gefunden werden
  koennen.

- Fehler behoben:
  Spiel gewonnen, nicht alle Zellen markiert -> restlichen Zellen werden zwar
  markiert, aber Anzahl der Minen wird nicht auf 0 gesetzt.

- Berechnung der Stagenr. geaendert. (Es bleich immer noch ein Konzeptfehler)


Version 1.0.0:
--------------

- Mit eingeschraenkten Optionen erstellt (kein Murphy's Law, kein Lucky-Modus,
  Stagenummerberechnung bei falschgesetzten Flaggen verbesserungsfaehig).
