# ChangeLog -- changelog file for galois.
# Copyright (C) 2011-2012 Gerardo Ballabio
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

25 Nov 2011
* started today, plus or minus one day (writing 29 Nov)
* single source file: galois.cc

* set up class grid
* generate blocks made of a specified number of square bricks

27 Nov 2011
* move functions to methods of group

28 Nov 2011
* add hexagonal group

29 Nov 2011
* move to own directory
* start keeping changelog
* add GPL3 notice

* make rotation group elements

30 Nov 2011
* simplify transform method

1 Dec 2011
* add groups with reflections

3 Dec 2011
* use faster algorithm for building blockset
* build sets of equivalent shapes

4 Dec 2011
* compute rotation and reflection groups for blocks

* add (blank) gtkmm window
* new file: makefile

5 Dec 2011
* draw square blocks on gtkmm window

6 Dec 2011
* draw also hexagonal blocks

8 Dec 2011
* add triangular group with and without mirror

9 Dec 2011
* make class grid a template

* split galois.cc into multiple files:
  board.h board.cc grid.h group.h group.cc hexagon.h hexagon.cc
  main.h main.cc square.h square.cc triangle.h triangle.cc

* make some group methods private

* add block motion

* drop blocks onto board

10 Dec 2011
* new file blocks.cc: build block sets

* draw board contours

* remove filled rows

11 Dec 2011
* add timely descent of blocks

* add New menu entry and toolbar

* new files preferences.h, preferences.cc: preferences dialog
* preferences setting: choose game geometry
* preferences setting: choose number of bricks per block

12 Dec 2011
* play with blocks of different sizes

13 Dec 2011
* draw better board contours

14 Dec 2011
* add speed levels
* add level change modes

15 Dec 2011
* make preferences dialog modal
* turn off New and Preferences menu entries while game is running

17 Dec 2011
* adjust minimum bricks range to follow maximum number
* minimum bricks number can increase, decrease or stay fixed

* add changeable board width

18 Dec 2011
* change sequence of block sizes

* set minimum size of board widget

* split BoardArea from board: isolate logic from rendering

19 Dec 2011
* new files area.h, area.cc: split off BoardArea

* show next block
* display level and lines

20 Dec 2011
* add third dimension
* new classes: group_2d, group_3d
* add new moves: front, back

21 Dec 2011
* new files cube.h, cube.cc: add cubic group with and without mirror

22 Dec 2011
* read and write block sets from/to xml files

23 Dec 2011
* try vectors of coords instead of grids: it's slower, throw it away

* read and write all blocksets for a group in a single xml file
* fix badly formed xml files

24 Dec 2011
* speed up blockset generation by reducing the input set
* generate more blocksets during the game

25 Dec 2011
* set maximum blockset size per group

26 Dec 2011
* reduce size of triangular bricks

* add colors

28 Dec 2011
* adjust colors

29 Dec 2011
* check and remove filled lines separately

30 Dec 2011
* draw 3d board with colored layers

* split landing blocks out of down method

31 Dec 2011
* animate removal of filled lines

1 Jan 2012
* draw board for cubic bricks

2 Jan 2012
* move block if rotate or reflect hits a wall

5 Jan 2012
* use coords in place of x, y, z in group and board

6 Jan 2012
* use coords in place of x, y, z in grid

7 Jan 2012
* draw board without outer frame

* limit linear block size to fit within board

* use smaller width range for cubic board

8 Jan 2012
* rescale brick size on board widget dimensions

9 Jan 2012
* rescale brick size, another way

10 Jan 2012
* add score

11 Jan 2012
* draft top view for cubic board

12 Jan 2012
* color by planes in top view

15 Jan 2012
* show where block will land

16 Jan 2012
* add preference option for show land

17 Jan 2012
* forbid blocks to cross filled cells

18 Jan 2012
* increase alpha for cubic board

19 Jan 2012
* use larger vertical offset for cubic board
* improve board size and positioning

20 Jan 2012
* draw plane framing block in cubic board

21 Jan 2012
* draw cubic bricks with thickness

22 Jan 2012
* cleanup of board drawing code
* color next block by layers in cubic board

23 Jan 2012
* draw cubic board open upwards

24 Jan 2012
* discard side view for cubic board
* remove style parameter

25 Jan 2012
* adjust offsets for cubic board

26 Jan 2012
* draw front edge of cubic board above blocks

27 Jan 2012
* adjust offsets for cubic board

28 Jan 2012
* add About dialog

29 Jan 2012
* new files scores.h, scores.cc: (empty) scores dialog

30 Jan 2012
* show something in scores dialog

3 Feb 2012
* set minimum size for scores dialog

4 Feb 2012
* show actual game scores in scores dialog

8 Feb 2012
* adjust score

12 Feb 2012
* add filters to scores dialog

24 Feb 2012
* make player name editable

3 Mar 2012
* add bmax, bmin columns to scores board

4 Mar 2012
* add (non editable) controls tab to preferences window

5 Mar 2012
* make player name editable on a single row

6 Mar 2012
* show scores dialog with player name already selected

9 Mar 2012
* make the right row editable

10 Mar 2012
* make row editable only until dialog is closed or changed

11 Mar 2012
* make edited rows persistent

13 Mar 2012
* make control keys configurable in preferences window

14 Mar 2012
* add pause control

15 Mar 2012
* write pause message on board

16 Mar 2012
* improve pause message, show it conditionally

17 Mar 2012
* save and reload (partially) configuration file

19 Mar 2012
* save configuration file for any preferences changed

20 Mar 2012
* load also control keys from configuration file

21 Mar 2012
* fix loading of configuration file
* save configuration file when dialog is closed

23 Mar 2012
* adjust offsets for cubic board

24 Mar 2012
* add three more colors

* increase rows of cubic board

25 Mar 2012
* adjust some colors

30 Mar 2012
* merge two identical ColumnsModel classes into one

2 Apr 2012
* delete file blocks.cc

* new file manual.xml: documentation file
* new files gpl.dbk, fdl-1.3.xml: GPL and GFDL in DocBook format

3 Apr 2012
* add Contents entry to Help menu
* add html and pdf targets to makefile

7 Apr 2012
* adjust some colors

14 Apr 2012
* new file figure1.png: shows game geometries and brick shapes

17 Apr 2012
* new file figure2.png: shows how to play
* new file figure3.png: annotated screenshot of game window

29 Apr 2012
* new file aclocal.m4: autoconf macros for pkg-config (copy from
  /usr/share/aclocal/pkg.m4 in Debian's pkg-config package)
* new files configure.ac, configure, makefile.in: check requisite
  libraries and create makefile with autoconf
* have "make distclean" remove makefile

1 May 2012
* set help file path at makefile level

2 May 2012
* new file config.h.in: define help file path here

3 May 2012
* add install and uninstall targets to makefile

7 May 2012
* new directory: doc
* move manual.xml, figure1.png, figure2.png, figure3.png, gpl.dbk,
  fdl-1.3.xml to directory doc
* new file: doc/makefile.in

* don't remove manual.html, manual.pdf on make clean; install them

* new directory: src
* mv all source files (*.cc, *.h, config.h.in) to directory src
* new file: src/makefile.in

8 May 2012
* add Stop entry to menubar

18 May 2012
* add GPL notices to configure.ac, ChangeLog

* add autoconf notice to autogenerated files

19 May 2012
* new file: TODO

* set minimum brick size always to 2

28 Jun 2012
* set back maximum min brick size equal to max size

1 Sep 2012
* fix animation for 3d geometries

* add option to remove lines with one or two empty bricks

2 Sep 2012
* save new preference setting

6 Sep 2012
* save current time in scores file

7 Sep 2012
* refine preferences dialog

8 Sep 2012
* save all preferences in scores file

9 Sep 2012
* add option to (not) preview next block

11 Sep 2012
* show current score even if it isn't in the top 10

13 Sep 2012
* reduce board height from 24 to 20, triangular from 20 to 16

14 Sep 2012
* centralize score calculation

15 Sep 2012
* increase game speed

17 Sep 2012
* add filters to scores dialog

18 Sep 2012
* show/hide extra filters in scores dialog

19 Sep 2012
* resize scores dialog when filters box is hidden

20 Sep 2012
* change scores calculation

* add one more filter in scores dialog

23 Sep 2012
* add one more filter in scores dialog

26 Sep 2012
* improve filters layout in scores dialog

* change "clear filters" button to "check/uncheck"

5 Oct 2012
* show also initial speed in scores dialog

* set filters when scores dialog is first shown

6 Oct 2012
* hide check/uncheck button together with filters box

30 Oct 2012
* add copyright and license to figure1.png, figure2.png, figure3.png

5 Nov 2012
* add home page URL and mailing list address to manual.xml

* new file: NEWS

* update version number to 0.1 -- ready for initial release!

9 Nov 2012
* release Galois 0.1
