changelog for "tuxmath"

2006.Oct.31 (https://svn.tux4kids.net/tuxmath/ - revision 58)
  Version 1.0.1

  Game:
    * Two simple bugfixes for config file input not setting
      the correct parameter.
    * Minor updates to docs.

      David Bruce <dbruce@tampabay.rr.com>


2006.Oct.31 (https://svn.tux4kids.net/tuxmath/ - revision 54)
  Version 1.0

  Docs:
    * Updated changelog, README.txt, INSTALL.txt, TODO.txt.

2006.Oct.30 (https://svn.tux4kids.net/tuxmath/ - revision 53)
  Version 0.98

  Code:
    * Minor bug fix to prevent the game from asking questions
      with an indeterminate answer (i.e. 0 / ? = 0).
      David Bruce <dbruce@tampabay.rr.com>

2006.Oct.20

  Build:
    * More support for Windows crossbuild under linux added
      to svn, including cross-configure.sh and cross-make.sh 
      scripts and minor changes to configure.in and Makefile.am
      when building for Windows.
  Code:
    * game_options struct now has complete set of accessor
      functions with sanity checks to keep impossible values
      from getting read in from config files.  This is in
      options.c. This fixes several ways in which the program
      could previously be crashed, and also cleans up 
      read_config_file() as it no longer needs to do any
      sanity testing.

2006.Oct.07 (https://svn.tux4kids.net/tuxmath/ - revision 48)
  Version 0.97 final

  Build:
    * removed icon* from Makefile.am as its included in data

      Holger Levsen <debian@layer-acht.org>

2006.Oct.07 (https://svn.tux4kids.net/tuxmath/ - revision 47)

  Build:
    * Many files needed for build using autotools added to svn
      that I previously left out by accident.
    * autogen.sh added, now build and install under *nix using:
         ./autogen.h && ./configure && make && make install
    * make install no longer copies .svn files into data dir

2006.Sep.29 (https://svn.tux4kids.net/tuxmath/ - revision 28)
  Version 0.97

  Build:
    * Successful Windows XP build including all current features,
      config file handling, game summaries.
    * Build system changed to autoconf/automake. fileops.h/fileops.c
      changed to accomodate cross-platform build. Under Linux/Unix,
      now install with ./configure && make && make install.

      Yves Combe <yves@ycombe.net>

2006.Sep.22 (https://svn.tux4kids.net/tuxmath/ - revision 27)
  Version 0.96
  
  Game:
    * Tuxmath now saves summaries of the last ten games in
      the player's .tuxmath directory. They are rotated out,
      with the oldest discarded each time. The summaries
      include the starting question list, a list of all
      missed questions, and the numbers of correct and 
      incorrect answers with percent correct.
      David Bruce <dbruce@tampabay.rr.com>

2006.Sep.18 (https://svn.tux4kids.net/tuxmath/ - revision 26)
  Version 0.95

  Setup:
    * Config file output cleaned up with better organization
      and better comments.
  Game:
    * Feedback system implemented to dynamically adjust comet
      speed based on player performance.
      Tim Holy <holy@wustl.edu>
  Code:
    * Fixed bug causing crash if max_comets set too high.
      Tim Holy <holy@wustl.edu>
    * Fixed bug causing crash due to SDL_FreeSurface() being
      called twice on same pointer in certain code path.
      David Bruce <dbruce@tampabay.rr.com>
     

2006.Sep.03 (https://svn.tux4kids.net/tuxmath/ - revision 22)
  Version 0.94

  Setup:
    * Math question formats (answer last, answer first, etc.)
      are now set independently for each math operation, e.g.
      "format_add_answer_last", etc.
  Code:
    * Mathcards now prints questions in same format as what
      appears in game (e.g. "2 + 2 = ?").  So far this is 
      only used for debugging output, but soon tuxmath will
      save lists of questions asked and questions missed to 
      files for post-game review.
      David Bruce <dbruce@tampabay.rr.com>

2006.Sep.03 (https://svn.tux4kids.net/tuxmath/ - revision 21)
  Version 0.93

  Code:
    * config.h/c now called fileops.h/c and all code related to
      file operations contained here (config files as well as
      loading of image and sound data files). Both images.h and 
      sound.h have been incorporated into fileops.h. Idea is to
      have only one place for OS-specific code, if possible.
    * setup() split into several smaller functions.
    * If a sound file cannot be loaded, the program continues 
      without sound rather than exiting. Bug fixed that caused 
      this to turn off sound for subsequent games (thanks Tim Holy).
    * All global data now extern'd in same place in tuxmath.h.
  Setup:
    * Better handling of config files.  Program now creates 
      .tuxmath directory in user's home, config file is in this
      directory and is called "options".  Global config file
      located in new "missions" folder in program data (this 
      will change to something under /etc or /usr/local/etc when
      I have studied FHS and makefiles more).
    * Added "--optionfile filename" command-line arg (thanks Yves
      Combe for suggestion) - program will look for 'filename' in
      several locations including as absolute path.
  Docs:
    * Updates to changelog and TODO.txt; update to usage();
      David Bruce <dbruce@tampabay.rr.com>

2006.Aug.22 (https://svn.tux4kids.net/tuxmath/ - revision 20)
  Version 0.92

  Code:
    * Patch to allow program to exit more gracefully
      if unable to load data files - primarily, the screen 
      resolution goes back to normal instead of staying at
      640x480.
      David Yoder <hobie20dude@gmail.com>

2006.Aug.13 (https://svn.tux4kids.net/tuxmath/ - revision 19)
  Version 0.91

  Code:
    * Fixed embarrassing bug in revision 18/version 0.9 that 
      caused program to crash with segmentation fault if 
      TUXMATH_DEBUG disabled (which was how it was committed).
      :^(
      David Bruce <dbruce@tampabay.rr.com>

2006.Aug.11 (https://svn.tux4kids.net/tuxmath/ - revision 18)
  Version 0.9 

  Setup:
    * Tuxmath now reads and writes all settings to disc in human-
      readable form. The first time it is run by each user, it
      creates a config file (called .tuxmath for now) in the user's
      home directory  The settings are initially set to hard-coded
      defaults, then overridden as needed by a master config file
      (for now located in DATA_PREFIX i.e. /usr/local/share/tuxmath),
      then overridden if desired by the user's own config file.
      The settings are saved from game to game if the file is left
      unchanged.  Any text editor can be used to modify the settings.
      The config file contains extensive comments documenting
      all settings.  Complete control over program behavior is now
      available without recompiling.
    * tuxmath -h output updated with prominent notice that config
      file now being used.
  Game:
    * By default the game now plays through the question list and 
      ends with "Victory" when all questions correctly answered.
    * game.c now handles 'slow_after_wrong' and other comet and speed
      settings correctly.
    * title screen has shortcuts 'P' for Play, 'O' for Options, etc.
  Code:
    * names of some of settings in game_options and math_options
      structs changed to more intuitive/descriptive ones.
  Docs:
    * Updates to README.txt and TODO.txt
      David Bruce <dbruce@tampabay.rr.com>

2006.Jun.17 (https://svn.tux4kids.net/tuxmath/ - revision 10)
  Docs:
    * Updates to README.txt and TODO.txt.
    * Version designated as 0.8 in README.txt, tuxmath.h, and Makefile.

      David Bruce <dbruce@tampabay.rr.com>

2006.Jun.12 (https://svn.tux4kids.net/tuxmath/ - revision 9)
  Game:
    * Command-line argument added to allow ending the game with
      "victory" when all questions in the defined list have been
      successfully answered.
    * Counter of remaining questions added to upper center of screen
      when operating in "defined list" mode.
    * LED numbers now display in "monitor" added to Tux's console
      when "defined list" mode selected".
    * Drawing of math question formulas overhauled, with support
      for display of negatives (e.g. 2 x -3 = ?). The program supports
      negative numbers for limits of question ranges, but for now
      this must be selected at compile time.
    * Support for questions formatted like ? + 2 = 4 and 2 + ? = 4, 
      in addition to default format (2 + 2 = ?).
    * Command-line options to select from the three question formats.

      David Bruce <dbruce@tampabay.rr.com>

2006.May.16 (https://svn.tux4kids.net/tuxmath/ - revision 8)
  Code:
    * Major changes to internal workings of program. Everything 
      related to generation of math questions is now handled by
      a backend called MathCards, which generates question lists
      based on parameters in a struct called math_opts. MathCards
      is (obviously) contained in two new files, mathcards.h and
      mathcards.c.  For now, many options can only be set at 
      compile time by changing the defaults in mathcards.h. 
      MathCards allows fine-grained control of the questions to
      be asked, and allows the player to "win" if all of the
      questions in the list are answered while the cities are
      still alive.  By default, game behavior is unchanged from
      previously.
    * Main game() function in game.c has been split into several
      smaller functions; updated to use MathCards. 
    * Options() updated to use MathCards.
  Game:
    * demo mode now handles negative answers properly.

  Note: the code contains many FIXMEs and TODOs and should be
      tested more before being packaged for a distribution.
      I would describe revision 8 as a developer or alpha release.

      David Bruce <dbruce@tampabay.rr.com>

2006.Mar.8 (https://svn.tux4kids.net/tuxmath/ - revision 7)
  Setup:
    * updated usage() to include all command-line options
  Credits:
    * updated credits to include more recent contributions
  Code:
    * added tuxmath.h containing the global structs math_options
      and game_options as well as defaults for all values.
      Goal is to have one place to look for all global data.
      David Bruce <dbruce@tampabay.rr.com>

2006.Mar.1 (https://svn.tux4kids.net/tuxmath/ - revision 6)
  Game:
    * Added support for negative subtraction answers.
      Updated LED drawing to include negative sign.
      Updated on-screen keypad to include '+' and '-'. 
      David Bruce <dbruce@tampabay.rr.com>

2006.Feb.18 (https://svn.tux4kids.net/tuxmath/ - revision 5)
  Options:
    * Added mouse support to Options screen
      David Bruce <dbruce@tampabay.rr.com>

2006.Feb.14 (https://svn.tux4kids.net/tuxmath/ - revision 4)
  Options:
    * Added speed control to Options screen
      Yves Combe <yves@ycombe.net>

2006.Feb.7 (https://svn.tux4kids.net/tuxmath/ - revision 3)
  Options:
    * Fixed minor deadlock bug if all operations deselected
      David Bruce <dbruce@tampabay.rr.com>

2005.Mar.7
  Interface:
    * Added sound effects to Options screen.
    
    * Comets 'sizzle' when you shoot them.
      Glen Ditchfield <gjditchfield@acm.org>

    * Correct answer is displayed when a comet hits a city.
      Glen Ditchfield <gjditchfield@acm.org>

  Game:
    * Kept first value in division questions from being huge.
    
    * Spread out comets in 'slow' mode.
      Glen Ditchfield <gjditchfield@acm.org>

  Options:
    * Added basic "Maximum Answer" option.

  Documentation:
    * Updated Credits screen some.

  Build:
    * Makefile modifications ($OWNER).
      Donny Viszneki <smirk@thebuicksix.com>

    * Compile options ("-g" for debugging, then strip)
      Glen Ditchfield <gjditchfield@acm.org>

    * Tidier linkage (fewer multiply-included #define's)
      Glen Ditchfield <gjditchfield@acm.org>

    * Created "uninstall" Makefile target.

2004.Feb.18
  Game:
    * Speed now depends on a speed setting, multiplied by the current wave #.
      Michael Behrisch <behrisch at users.sourceforge.net>
      
  Options:
    * Added "--speed" option to set initial game speed.
      Michael Behrisch <behrisch at users.sourceforge.net>

2003.Apr.5
  Interface:
    * Removed "Alpha Version" stamp from title screen.

  Options:
    * Replaced info. screen with actual option-setting interface.

    * Alternative command-line options available for operators.
      ("addition", along with "add",
       "subtraction", along with "subtract",
       "multiplication", along with "multiply", and
       "division" along with "divide")

  Sound:
    * Increased audio buffer, so it's less choppy-sounding.

  Documentation:
    * Updated Credits screen.


2001.Sep.14:
  Documentation:
    * Added more testers, and a "." character, to the credits display.


2001.Sep.7:
  Code:
    * On-screen keypad control was enabled even if keypad wasn't.  Fixed.

  Game:
    * Slightly tweaked current equation-generation code to be more interesting.
      (Will eventually be based on options)


2001.Sep.6:
  Code:
    * Pause also pauses music
    * More attention is paid to "NOSOUND" compile-time define
      (you should now be able to build without SDL_mixer)

  Interface:
    * In lieu of an option screen, a message asking for help in that
      aspect of the game design has been added.
    * Added "SCORE" and "WAVE" displays

  Game:
    * Waves progress
    * Score accumulates
    * Game over at end of wave if all cities destroyed

  Documentation:
    * INSTALL.txt fleshed out quite a bit.

  Installation:
    * "install" target added to "makefile"


2001.Sep.4:
  Documentation:
    * Added copyright info. to the program ("--copyright")
    * Moved documentation into "docs/" subdirectory


2001.Sep.3:
  Code:
    * "#ifdef 0" in "src/game.c" replaced.


2001.Sep.2:
  Graphics:
    * Icon image ("icon.png") changed.

  Documentation:
    * More added to "README.txt"


2001.Aug.31
  Interface:
    * Operators used in the game can be overridden ("--operator")
    * Mouse controls added to title screen
    * Added keyclick sound effect
    * Added an on-screen keyboard (eg, for touchscreens?)  ("--keypad")

  Graphics:
    * Replaced spire with Tux at a console.
    * Added surface (land) to remaining background photos.
    * PNGs processed with "pngcrush" to make them smaller.
    * Comet explosion animation works right.  Also, numbers disappear.
    * Equations drawn after all comets drawn (to avoid covering them up)
    * LED digits spread apart
    * No-background mode draws faux-skyline (instead of black)
    * "DEMO" on title screen reduced

  Code:
    * Keyboard event handling and demo mode stuff split up
    * Demo mode plays more like a regular player
    * FPS slowed down to max 15fps


2001.Aug.30
  Interface:
    * Details added to "--help" display.

  Graphics:
    * Accidentally displayed "DEMO" on title screen even in normal mode. Fixed


2001.Aug.29  (Live, from LinuxWorld Expo!)
  Interface:
    * Added demo mode ("--demo" option)


2001.Aug.28
  Interface:
    * Command-line options added ("--help", "--version",
       "--nosound", "--fullscreen", "--usage", and "--nobackground")
    * Random backgrounds loaded (optional; use "--nobackground" to disable)
    * Replaced UFOs with comets
    * "Paused" text added to screen when game is paused
    * Laser shot added
    * Shields added to city

  Graphics:
    * Converted background PNGs to JPEGs
    * "Alpha Version" added to title screen
    * Title screen menu items redone to look nicer
    * Equations don't disappear off edges of screen

  Code:
    * References to "aliens" in source replaced with "comets"
    * Initial sound code added.
    * Initial music code added.
    * Sometimes cities would explode at level start. Fixed.


2001.Aug.27
  Interface:
    * Initial pause code added
    * KEYPAD numbers accepted in the game
    * Credits in nifty rainbow colors
    * Commands on title screen shrunk to fit and centered
    * Cities explode when crashed-into.
    * Spire added to game screen.
    * Extra padding removed from digits image ("nums.png")
    * Sound support now optional.
    * Added New Breed Software logo

  Gameplay:
    * Game loop slowed to max(20fps)
    * Aliens pick cities to crash into.
    * Changed equation-creation algorithm

  Code:
    * More comments added to "game.c"
    * Makefile fixed (was rebuilding objects due to "obj" _dir_ being newer)

  Documentation:
    * CHANGES.txt list categorized
    * TODO.txt list categorized
    * README.txt expanded some


2001.Aug.26
  * Initial build

