2004-03-07  Jens Granseuer  <jensgr@gmx.net>

	* src/common/globals.h: bump FILE_VERSION
	* src/{cf,comet}/mission.cpp: add new internal_messages member
	which holds non-translatable strings such as passwords, next
	map names, and music track names

	* levels/ArmsRace.src
	* levels/BeachRaid.src
	* levels/Foxhole.src
	* levels/Uprising.src
	* doc/xml/cfed.xml
	* tools/cfed.cpp: "nextmap" and "password" are now in the
	internal catalog

	* src/common/lang.h: add Language::Size()
	* src/common/gamedefs.h: remove GI_PASSWORD

2004-03-07  Jens Granseuer  <jensgr@gmx.net>

	* src/cf/initwindow.cpp (CompleteFilesList): don't crash if we
	read an (invalid) mission without a name

	* src/common/fileio.cpp (get_music_dir): add
	* src/common/sound.cpp: rework and enable music code
	* src/common/globals.h: add CF_MUSIC_THEME definition
	* src/cf/initwindow.cpp (InitWindow, SoundOptionsWindow): play
	music and enable music settings

	* src/comet/mission.cpp (Validate): check for mission name
	* src/comet/extwindow2.cpp (EdMissionSetupWindow): add mission
	name widget

	* tools/cfed.cpp (parse)
	* doc/cfed.xml: add support for changing player colors

2004-03-02  Jens Granseuer  <jensgr@gmx.net>

	*** release Crimson Fields 0.4.1 ***

	* NEWS: update
	* configure.ac
	* src/common/globals.h: bump version

	* src/cf/game.cpp (CheckPassword): send the user back to the
	main menu when he doesn't know the password in PBeM games

	* src/cf/main.cpp (do_exit): plug a memory leak when leaving
	the program via the event_filter mechanism

	* src/cf/unitwindow.cpp (Draw): correct shop name box offset

2004-02-27  Jens Granseuer  <jensgr@gmx.net>

	* src/cf/game.cpp (SwitchMap): fix a silly mistake which caused
	a segfault when changing maps

	* src/cf/game.cpp (ShowDebriefing): add missing window init
	which would have caused a crash if the bug above hadn't stopped
	the user before this point

2004-02-26  Jens Granseuer  <jensgr@gmx.net>

	* src/cf/history.cpp (Replay): fix not being able to abort
	replay and progress bar not updating

	* src/cf/path.cpp (MoveShader::GetBestNode): iterate through
	the list of open nodes to find the best one. Don't always
	return the list head. In some cases this could abort the path
	finder too early because we don't update the open list if the
	node for current hex has already been closed, even if the
	active path is cheaper.

	* tools/cfed.cpp (load_tile_set, load_unit_set): check for both
	Unix and Windows path separator characters when extracting the
	set name. This otherwise breaks when building with MinGW.

2004-02-22  Jens Granseuer  <jensgr@gmx.net>

	*** release Crimson Fields 0.4.0 ***

	* NEWS: update
	* configure.ac
	* src/common/globals.h: bump version

	* levels/HeavyMetal.src
	* levels/Makefile.am: add new map
	* levels/BeachRaid.src: make HeavyMetal next map

	* doc/Makefile.am: rename html target to html-local as
	recommended for automake 1.8

	* autogen.sh: require automake 1.7.0 or later. Also check for
	automake-1.8 and automake-1.7 binaries (reported by Uwe Koch
	and Waclaw Schiller)

	* tools/cfed.cpp (main): add -o parameter to fix VPATH builds
	* levels/Makefile.am: use it
	* doc/cfed.xml: document it

	* crimson.spec.in: require SDL_ttf

2004-02-16  Jens Granseuer  <jensgr@gmx.net>

	* doc/crimson.xml: update for changes in InitWindow

	* levels/Foxhole.src: convert to use the new othermsg and
	othertitle properties for score events

	* src/cf/container.h (Transport::Transport): init crystals

	* src/comet/eventwindow.{cpp,h} (EdEventScoreWindow): add
	support for othermsg and othertitle properties

	* src/comet/mission.cpp (Export): export messages in new format
	and for all available languages

	* tools/bi2cf.c (uncompress): fix possibly undefined increment
	operation

	* tools/default_units.c: rebalance aircraft and long-range
	weapons

2004-02-10  Jens Granseuer  <jensgr@gmx.net>

	* src/cf/game.cpp (ResolveBattle): don't mix up casualties
	for attacker and defender in replays. Also don't try to
	access invalid members for destroyed units

	* src/cf/initwindow.cpp (InitWindow, TitleWindow)
	* src/cf/main.cpp (main): preload main window after showing
	the title image. This makes the main window seem to appear
	faster

	* src/cf/history.cpp (Replay, ReplayMoveEvent): speed up
	battle results-only replays

	* src/common/font.cpp (Load): SDL_ttf segfaults if the font
	file is not present so check before trying to open it

	* gfx/CFTiles.bmp: make the highlight cursor a bit thicker

2004-02-03  Jens Granseuer  <jensgr@gmx.net>

	* INSTALL: include links to all external library locations

	* levels/Anthill.src
	* levels/ArmsRace.src
	* levels/GreatBattle.src
	* levels/IslandHoppers.src
	* levels/LankhValley.src
	* levels/LostFactories.src
	* levels/MoutainDefense.src
	* levels/Revelation.src: add german translation

	* src/cf/game.cpp
	* src/cf/main.cpp
	* src/cf/mission.cpp
	* src/comet/main.cpp
	* src/comet/mission.cpp
	* tools/cfed.cpp: add missing <iostream> include
	* tools/mklocale.cpp: fix compile errors with gcc 3.x

	* src/common/mapwidget.cpp (MouseDown): ignore events if no
	map has been assigned

2004-01-25  Jens Granseuer  <jensgr@gmx.net>

	* levels/ArmsRace.src: fix player and shop names

	* levels/BeachRaid.src
	* levels/Foxhole.src: add german translation

	* src/common/font.{cpp,h}: use SDL_ttf
	* gfx/Vera.ttf: add default font
	* gfx/CF*Font.bmp: remove obsolete font images
	* configure.ac: require SDL_ttf

	* src/cf/event.cpp
	* src/comet/mission.cpp
	* tools/cfed.cpp
	* doc/cfed.xml: add 'othermsg' and 'othertitle' parameters for
	'score' event to show a message for the "loser"

	* src/cf/game.cpp (HandleLMB): use single-click selection only
	if no active unit

2004-01-23  Jens Granseuer  <jensgr@gmx.net>

	* src/cf/game.cpp (Load): separate out window setup

	* src/cf/initwindow.cpp: use mission title in display, not
	file name. Display small map when selecting a mission

	* src/common/mapwidget.cpp: we need the map object itself only
	for initializing

	* src/common/textbox.cpp (TLWList::Sort): add

2004-01-22  Jens Granseuer  <jensgr@gmx.net>

	* src/cf/game.cpp (ResolveBattle): don't free the Combat here;
	it may not have been dynamically allocated
	* src/cf/game.cpp (EndTurn): do it here instead

	* src/comet/edwidget.{cpp,h}: remove CycleWidget...
	* src/common/button.{cpp,h}: ...and add it here

	* src/cf/initwindow.{cpp,h}: revamp InitWindow
	* src/cf/options.h: make game type a single setting
	* src/cf/msgs.h
	* locale/*.tmpl: update
	* gfx/CFIcons.bmp: remove quit icon


2004-01-20  Jens Granseuer  <jensgr@gmx.net>

	* doc/cfed.xml: note that messages need to be UTF-8

	* levels/GreatBattle.src
	* levels/IslandHoppers.src: update maps with some new tiles

	* levels/Uprising.src: add german messages

	* src/cf/initwindow.{cpp,h} (LocaleOptionsWindow): add
	* src/cf/game.cpp (GameMenu, HandleEvent): use it

2004-01-18  Jens Granseuer  <jensgr@gmx.net>

	* configure.ac
	* Makefile.am: add locale subdirectory
	* locale/*: add English and German language files

	* src/cf/player.{cpp,h}
	* src/comet/mission.{cpp,h}
	* tools/cfed.cpp: include mission name, player names, and
	shop names in the messages section to allow for translations

	* src/cf/mission.cpp (Load, Save)
	* src/comet/mission.cpp (Load, Save)
	* tools/cfed.cpp: support multiple messages sections (for
	different languages)
	* src/common/lang.h (Locale::GetLanguage): publicize

	* doc/cfed.xml
	* levels/*.src
	* tools/bi2cf.c: update accordingly

2004-01-16  Jens Granseuer  <jensgr@gmx.net>

	* README: add a section about translations

	* src/cf/player.{cpp,h}
	* src/comet/mission.{cpp,h}
	* src/common/gamedefs.h: remove player difficulty setting.
	Add player colours instead. Make password variable length
	* src/common/globals.h (FILE_VERSION): bump

	* tools/cfed.cpp (satoi): complain if trying to convert
	non-numeric characters (may indicate mapping errors)

2004-01-15  Jens Granseuer  <jensgr@gmx.net>

	* editor/*: move cfed over to tools/. Also convert it to C++
	in order to more easily reuse code from crimson and comet

	* src/cf/*: major restructuring in preparation for i18n

	* src/comet/extwindow2.cpp (NewMissionWindow): selecting a
	different unit set always changed the tile set name instead

	* levels/GreatBattle.src: remove bogus newlines

2004-01-10  Jens Granseuer  <jensgr@gmx.net>

	* src/cf/game.cpp (HandleLMB): allow pointing the cursor to
	enemy units even if there is an active unit. This was a bug
	in the single-click selection implemenation

2004-01-10  Jens Granseuer  <jensgr@gmx.net>

	* src/common/widget.cpp (PrintTitle): when calculating the
	shortcut position, don't count individual character widths
	but use the entire substring

	* src/common/lset.{cpp,h}: support unit names in different
	languages
	* tools/mkunitset.cpp: renamed mkunitset.c. Now supports
	multiple languages as well
	* tools/default_units.c: added german unit names

	* src/cf/game.{cpp,h}: don't use hardcoded keys for actions
        accessible from the game menu. Extract them from the button
	labels instead. Use F1 for the game menu itself and F2 for
	Next Unit (should be customizable, too, really)
	* doc/crimson.xml: update the manual accordingly

2004-01-09  Jens Granseuer  <jensgr@gmx.net>

	* src/common/lang.{cpp,h}: add localisation infrastructure
	* tools/mklocale.cpp: add tool to create language catalogs
	* src/cf/msgs.h
	* src/comet/msgs.h: add headers with string ids

	* src/cf/options.h: add a language option
	* src/cf/main.cpp (init, init_locale, load_settings,
	save_settings): add support for loading strings from an
	external file

	* src/common/fileio.cpp (get_locale_dir): new function

	* src/{cf,common}/*.{cpp,h}: use MSG() macro to obtain GUI
	strings

2004-01-08  Jens Granseuer  <jensgr@gmx.net>

	* src/common/fileio.{cpp,h}: add a new file abstraction, and
	use it everywhere
	* src/common/strutil.{cpp,h}: create string utilities

	* src/common/fileio.{cpp,h} (create_files_list)
	* src/common/filewindow.{cpp,h}: move function over to
	static FileWindow::CreateFilesList()
	* src/cf/initwindow.cpp (constructor): update user

2004-01-07  Jens Granseuer  <jensgr@gmx.net>

	*** release Crimson Fields 0.3.8 ***

	* NEWS: update
	* configure.ac
	* src/common/globals.h: bump version

	* editor/editor.c (check_events): for 'haveunit' and
	'havebuilding' triggers only complain that trigger
	conditions are already met if there is no dependency on
	another event

	* src/cf/game.cpp (SelectCommand): add hex parameter
	* src/cf/game.cpp (HandleLMB): new method. Unit selection
	(with a few exceptions) now requires only a single click
	* doc/crimson.xml: update manual accordingly

2004-01-05  Jens Granseuer  <jensgr@gmx.net>

	* editor/editor.c (parse)
	* src/cf/player.cpp (Player, Save)
	* src/comet/mission.cpp (Player::Load, Player::Save): fix an
	ancient (and obviously reproductive) bug in player persistency

	* levels/BeachRaid.src: don't use obsolete shop type 'mine'

	* src/common/widget.cpp: include an activation key designator
        in the widget title. This should make translations a bit
        easier.

2004-01-04  Jonathan Phnix  <greaterd@step.polymtl.ca>

	* src/cf/initwindow.cpp
	* src/common/sound.cpp (PlayMusic): properly #ifdef sound bits
	so that building without SDL_mixer is again possible

2004-01-04  Jens Granseuer  <jensgr@gmx.net>

	* src/comet/mission.cpp (Save, SetPassword): don't forget to
	save the password and set the proper flag

2003-12-09  Jens Granseuer  <jensgr@gmx.net>

	* src/cf/history.cpp (Replay)
	* src/cf/initwindow.{cpp,h} (GeneralOptionsWindow)
	* src/cf/main.cpp ({load,save}_settings)
	* src/cf/options.h: add quick replay option, showing combat
	results only

2003-12-01  Jens Granseuer  <jensgr@gmx.net>

	* levels/Anthill.src
	* levels/Makefile.am (EXTRA_DIST, levels_DATA): add new map
	"Operation: Anthill" by Chang Tang Yen, use variable
	substitution to generate the EXTRA_DIST listing

	* src/cf/history.{cpp,h}: clean up

	* src/comet/eventwindow.cpp (EdTrigHaveShopWindow): don't
	ignore events from the player widget

	* src/comet/mission.h (Player::SetName): fix length and
	terminate with NUL character

	* THANKS: update

2003-11-22  Jens Granseuer  <jensgr@gmx.net>

	* src/comet/extwindow2.{cpp,h}: add widget for setting crystal
	output in shops

	* src/common/gamedefs.h (BLD_MINE): remove
	* doc/cfed.xml
	* editor/editor.c
	* src/cf/building.{cpp,h}
	* src/comet/building.{cpp,h}
	* tools/bi2cf.c: stop using it

2003-10-07  Jens Granseuer  <jensgr@gmx.net>

	*** release Crimson Fields 0.3.7 ***

	* NEWS: update
	* configure.ac
	* src/common/globals.h: bump version

	* src/comet/mission.cpp (Validate*): eliminate use of
	deprecated ostrstream class

2003-10-03  Jens Granseuer  <jensgr@gmx.net>

	* src/comet/edwindow.{cpp,h}
	* src/comet/eventwindow.{cpp,h}
	* src/comet/extwindow2.{cpp,h}: do not initialize static class
	variables in header files for improved portability

2003-10-02  Jens Granseuer  <jensgr@gmx.net>

	* src/comet/extwindow2.{cpp,h} (EdMissionSetupWindow): add new
	window for general mission settings
	* src/comet/edwindow.cpp (ShowContextMenu): use it

2003-09-30  Jens Granseuer  <jensgr@gmx.net>

	* src/comet/eventwindow.{cpp,h}
	* src/comet/extwindow2.cpp (SelectEventWindow): support event
	creation and editing for all event types

	* src/comet/mission.{cpp,h} (Validate, ValidateEvent,
	ValidateMap): add new methods to verify mission integrity
	* src/comet/edwindow.{cpp,h} (ShowContextMenu,
	ValidateMission, WidgetActivated): use them

2003-09-27  Jens Granseuer  <jensgr@gmx.net>

	* src/common/button.{cpp,h} (MenuButtonWidget)
	* src/common/extwindow.{cpp,h} (MenuWindow): add keyboard
	navigation support

	* src/common/textbox.cpp (TextScrollWidget::SetText): fix for
	NULL string

	* src/common/textbox.cpp (StringWidget): if the widget gets
	deselected, always show the beginning. If the widget is
	selected via key, jump to the end

	* src/common/window.cpp (DrawBack): remove clip rect handling
	as it's already done in Surface::FillPattern

	* src/comet/edwidget.{cpp,h} (CycleWidget::SetValue): add

	* src/comet/Makefile.am (comet_SOURCES)
	* src/comet/eventwindow.{cpp,h}
	* src/comet/extwindow2.{cpp,h}
	* src/comet/mission.{cpp,h}
	* src/comet/uiaux.{cpp,h}: add initial (partial) support for
	event editing

2003-09-25  Jens Granseuer  <jensgr@gmx.net>

	* doc/comet.xml
	* doc/Makefile.am: added basic CoMET manpage

	* src/cf/initwindow.cpp (InitWindow): correctly disable the
	AI and PBEM widgets if the other mode is set

2003-09-21  Jens Granseuer  <jensgr@gmx.net>

	* crimson.spec.in
	* gfx/Makefile.am: install application icon

	* gfx/CFIcons.bmp: update unit info icons

	* src/cf/game.h
	* src/cf/main.cpp: remove some global icons
	* src/cf/mapwindow.{cpp,h} (Draw, DrawUnitInfo, MapWindow,
        Panel)
	* src/cf/unitwindow.{cpp,h} (ContainerWindow, Draw,
        SwitchMode, UnitListWidget): make them local here

	* editor/editor.h (MAX_MAP_{WIDTH,HEIGHT})
	* src/comet/extwindow2.cpp (NewMissionWindow): increase
	maximum map size to 250 x 250

2003-09-13  Jens Granseuer  <jensgr@gmx.net>

	* src/common/listselect.cpp (Select): fix item offset when
	scrolling

2003-09-12  Jens Granseuer  <jensgr@gmx.net>

	* src/cf/ai.{cpp,h} (SameDirection): add
	* src/cf/ai.cpp (CommandUnitDefend): be a bit more
	aggressive and always try to get between the enemy and the
	objective to defend

	* src/cf/main.cpp (init): set icon caption to "Crimson
	Fields"

	* tools/default_tiles.c: make warehouse block movement

2003-09-08  Jens Granseuer  <jensgr@gmx.net>

	* gfx/CFIcons.bmp
	* gfx/crimson.png
	* gfx/Makefile.am (EXTRA_DIST): add application icon

	* src/cf/main.cpp (main, init, set_icon): use
	application icon

	* src/common/surface.cpp (GetColorKey): return a Color
	instead of an Uint32 to make it work across different
	surface formats

2003-09-04  Jens Granseuer  <jensgr@gmx.net>

	* src/cf/main.cpp (main): fix potential mem leak when the
	--level parameter was used and loading the map failed

	* src/cf/main.cpp (init_data): set default pen colors
	for pre-menu dialogs

	* src/common/view.cpp (Refresh): use white color for
	partial background fills. Fixes black border on title
	screen (reported by Tero Pelander).

