[Introduction]   [Screenshots]   [Manual]   [Download]   [Mailing lists]   [Links]   [Project page] 

ChangeLog for heroes 0.29c

2002-10-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump version to 0.29c.
	* tools/alpha.sh: Really make the distribution if it doesn't exist.
	* po/de.po: Add Plural-Forms header.
	* po/it.po: Add missing plural form for rounds.
	* po/fr.po: Update.
	* tests/Makefile.am (lvlsave_LDADD): Add INTLLIBS.

2002-10-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* libltdl/ltdl.c, m4/libtool.m4, m4/ltdl.m4: Update
	from Libtool 1.4.3.

2002-10-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* Makefile.am, src/Makfile.am: Don't EXTRA_DIST included Makefile
	fragments, Automake >= 1.7 does this for us.  Remove useless
	VAR = @VAR@ definitions for the same reason.
	* po/Makevars, po/LINGUAS: New files.
	* configure.ac: Require Automake 1.7.1.
	Don't define ALL_LINGUAS (replaced by po/LINGUAS).
	* HACKING: Adjust to mention po/LINGUAS.

2002-10-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Upgrade to Gettext 0.11.5 and CVS Libtool branch-1-4.

	* configure.ac: Call AM_GNU_GETTEXT_VERSION.
	* arch/mingw32/cross.sh: Disable shared libraries.
	* libltdl/ltdl.c: New upstream version.
	* m4/codeset.m4, m4/gettext.m4, m4/glibc21.m4, m4/iconv.m4,
	m4/isc-posix.m4, m4/lcmessage.m4, m4/progtest.m4: Delete,
	they are installed by autopoint.
	* m4/h-path.m4: Do not require AM_WITH_NLS, it doesn't
	exist anymore.
	* m4/libtool.m4, m4/ltdl.m4: New upstream versions.
	* misc/01-intl.patch, misc/05-po.patch, misc/ltdlaux.patch:
	Delete.
	* Makefile.am (EXTRA_DIST): Remove these three patches.
	* tools/autogen.sh, tools/upgettext.sh: Remove.
	* tools/Makefile.inc (EXTRA_DIST): Remove these two scripts.
	* tools/cvsboot.sh: Adjust to call autoreconf.

2002-08-22  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/menus.c (editor_entries): Add missing trailing { 0, 0 }.
	Reported by Nicolas Tisserand.  (Segfault on Debian/PPC)

2002-07-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac (ALL_LINGUAS): Add es_AR.
	* po/es_AR.po: New file.
	From Ariel Fermani <the_end@bbs.frc.utn.edu.ar>.

2002-07-15  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump version to 0.29b.
	* NEWS: Update.

2002-07-05  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/misc.c (strcat_alloc): Use stpcpy.

2002-07-05  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* lib/getline.c, lib/getline.h, lib/getstr.c, lib/getstr.h: New
	files, from fileutils-4.1.1.
	* tools/fetish-sync.sh (files): Add them.
	* lib/Makefile.am (libheroes_a_SOURCES): Add them.
	(pkginclude_HEADERS): Add getline.h.

2002-07-05  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* po/fr.po: Update.

2002-07-05  Ingo van Lil  <inguin@gmx.de>

	* po/de.po: Update.

2002-06-16  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (BUILT_SOURCES): Remove debughash.gperf,
	prefs.c, and rsc_files_hash.c.  They don't need to be BUILT_SOURCES.
	* src/const.c: Typo.

2002-06-16  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/const.c (kbjoy, kbjoyold): Redefine as static bool[].
	(key_or_joy_reset): New function.
	* src/const.h (kbjoy, kbjoyold): Don't export.
	(key_or_joy_reset): New function.
	* src/menus.c (quit_yes_no): Don't wait for joystick buttons to go up.
	(pause_menu, quit_yes_no): Call key_or_joy_reset.
	* src/heroes.c (play_demo, play_game): Likewise.

2002-05-25  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/heroes-api.texi (Explosions): New node.
	* src/rules/state.h: Remove fixed fixme.

2002-05-25  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/bonuses.h: New file.
	* src/rules/Makefile.inc (rules_libhrules_a_SOURCES): Add it.
	* src/plugins/Makefile.inc (PLUGIN_H_INPUTS): Add it.
	* src/rules/state.h: Include it.
	(a_level_state::bonus_tile): Declare as a_bonus8.
	* src/rules/bonuses.c (rem_bonus): Run "bonus-rem" before removing
	the bonus.
	(rem_bonus_idx): New function, extracted from rem_bonus.
	(update_bonuses): Use rem_bonus_idx.
	(bonus_density, bonus_proba, random_bonus, add_bonus, add_random_bonus,
	mark_unreachable_places, apply_bonuses): Use the new a_bonus enum
	from bonuses.h.
	* src/rules/update.c (update_player): Likewise.
	* src/rules/statepriv.h (apply_bonus): Adjust prototype.
	* doc/heroes-api.texi (core hooks): Document bonus-add and bonus-rem.
	(Bonuses): New node.

2002-04-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	First sketch of the plug-in documentation.

	* doc/heroes-api.texi: New file.
	* doc/Makefile.am (info_TEXINFOS): Add it.

	IA is the French for AI; get rid of that.

	* src/plugins/stdai.c (ia_max_depth, ia_cur_depth,
	ia_is_invincible, ia_player, ia_target_x, ia_target_y, ia_wrap_x,
	ia_wrap_y, ia_wrap_left, ia_wrap_right, ia_eval_dist,
	ia_eval_dir_target_inline, ia_eval_dir_bonus_inline,
	ia_eval_dir_lemming_inline, ia_eval_dir_cash_inline,
	ia_eval_dir_color_inline, ia_eval_neighb_pos, ia_eval_dir_target,
	ia_eval_dir_lemming, ia_eval_dir_color, ia_eval_dir_cash,
	ia_eval_dir_bonus, ia_goto_target_inline, ia_goto_bonus_inline,
	ia_goto_color_inline, ia_goto_lemming_inline, ia_goto_target,
	ia_goto_nearest_bonus, ia_goto_nearest_lemming,
	ia_goto_nearest_color, ia_goto_nearest_cash): Rename to ...
	(ai_max_depth, ai_cur_depth, ai_is_invincible, ai_player,
	ai_target_x, ai_target_y, ai_wrap_x, ai_wrap_y, ai_wrap_left,
	ai_wrap_right, ai_eval_dist, ai_eval_dir_target_inline,
	ai_eval_dir_bonus_inline, ai_eval_dir_lemming_inline,
	ai_eval_dir_cash_inline, ai_eval_dir_color_inline,
	ai_eval_neighb_pos, ai_eval_dir_target, ai_eval_dir_lemming,
	ai_eval_dir_color, ai_eval_dir_cash, ai_eval_dir_bonus,
	ai_goto_target_inline, ai_goto_bonus_inline, ai_goto_color_inline,
	ai_goto_lemming_inline, ai_goto_target, ai_goto_nearest_bonus,
	ai_goto_nearest_lemming, ai_goto_nearest_color,
	ai_goto_nearest_cash): ... these.
	* src/rules/player.h (a_player) <ia_max_depth>: Rename to
	ai_max_depth.
	* src/rules/player.c (state_reinit_player): Adjust to use
	ai_max_depth.

	Misc.

	* doc/heroes.texi, src/plugins/Makefile.inc: Adjust copyright dates.
	* src/hooks.h, src/opponents.h: Typos.

2002-04-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/state.c (state_init): Don't initialize an opponent
	if we found no AI driver for it.
	* src/plugins/stdai.c (ai_standard_tcash): Declare as an OT_TCASH
	opponent.
	Reported by Ingo.

2002-04-16  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* libltdl/Makefile.am (ACLOCAL_AMFLAGS): New.
	* libltdl/acinclude.m4: Remove.
	* m4/ltdl.m4: New file, from CVS Libtool branch-1-4.

2002-04-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/plugins.c (plugins_initialize): Register the preloaded symbols.

2002-04-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* tools/ltmain.sh, m4/libtool.m4: Downgrade to latest version
	from CVS libtool on branch-1-4.

2002-04-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/plugins/Makefile.inc (distclean-local): Remove.  Was a
	workaround to an Automake bug fixed in 1.6.1.

2002-04-07  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/media/sdl/joystick.c (get_joystick_state): Make sure we
	never use SDL's Joystick API if it wasn't initialized.
	Reported by William Black.

2002-04-01  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/player.h (a_player) <x, y, x2, y2, pos>: Rename as ...
	(a_player) <tx, ty, sx, sy, si>: ... these.
	Adjust all user functions.

2002-04-01  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/statepriv.h (a_level_state_bits) <player, iplayer>: New.
	* src/rules/state.h (a_level_state) <player>: Make this an array of
	pointers to the player entries in a_level_state_bits.
	* src/rules/player.h (a_player_internal): New struct.
	(a_player) <v, vi, viit, old_old_way>: Move to a_player_internal.

	* src/camera.c (position_camera, init_camera): Adjust player lookup.
	* src/heroes.c (play_menu, output_screen,
	get_input_directions, play_game): Likewise.
	* src/menus.c (draw_end_level_info, draw_round_info): Likewise.
	* src/render.c (draw_trail_real, draw_vehicle_tail, draw_vehicle_head,
	draw_level, draw_score, draw_logo_info): Likewise.
	* src/visuals.c (rotozoom_buffer, rotozoom_half_buffer,
	(wave_buffer, wave_half_buffer): Likewise.
	* src/plugins/stdai.c (ai_throttle, ia_goto_target,
	ia_goto_nearest_bonus, ia_goto_nearest_lemming,
	ia_goto_nearest_color, ia_goto_nearest_cash): Likewise.
	* src/rules/bonuses.c (apply_bonus): Likewise.
	* src/rules/lemmings.c (state_init_lemmings): Likewise.
	* src/rules/player.c (state_erase_player, state_position_player,
	state_reinit_player): Likewise.
	* src/rules/state.c (state_init): Likewise.
	* src/rules/trail.c (grow_trail): Likewise.
	* src/rules/update.c (find_free_way, opponent_action_prepare,
	opponent_action_honor, update_player): Likewise.

	* src/heroes.c (load_level): Don't configure CPU players
	here ...
	* src/rules/state.c (state_init): ... but do it here.

2002-04-01  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/update.c (update_player): Typo in speed adjustment.

2002-03-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* NEWS, ANNOUNCE: Update from 0.21.

2002-03-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/heroes.texi (Getting Heroes): Mention heroes-hq-sound-tracks.

2002-03-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/musicfiles.c (st_uninit, st_init): New functions.
	(st_free, st_cons): Use them.
	(add_sound_track_cons): If the alias already exist, override it.
	This used to be done by hash_insert.

2002-03-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/heroes.texi (heroesrc): Don't use : in index entry names.

2002-03-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/etc/heroesrc: Try to read soundfiles from
	$(data-dir)/hqmod/sound.conf too.

2002-03-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/lvl/en_head.c (encode_level_header): Clear unused bytes
	before saving.
	* src/lvl/en_body.c (encode_level_body): Zero initialize the
	square_walls_in array.

2002-03-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/state.c (state_init): Clear state->square_lemmings_list,
	and state->square_dead_lemmings_list.

2002-03-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/lvl/de_body.c (decode_level_body): Initialize
	lvl->square_direction for all square, even when it doesn't matter.
	Otherwise heroeslvl will display some uninitialized directions.

2002-03-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* m4/debug.m4: Never use -ggdb3, simply use -g instead.
	* tools/alpha.sh: Use perl to run exnews.pl.

2002-03-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/sprunish.c (compile_sprunish): Check for src<eol before
	dereferencing *src, not after.
	* src/userconf.c (read_userconf): Don't free strings installed
	in the environment using putenv.

2002-03-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump version to 0.29a.  Use the new
	AM_INIT_AUTOMAKE form.  Require Automake 1.6 (needed to support
	LTLIBRARIES in subdirectories).
	* NEWS: Update for 0.29a.
	* Makefile.am (AUTOMAKE_OPTIONS): Remove.
	(my-distcheck-ggi, my-distcheck-allegro, my-distcheck-nodisplay,
	my-distcheck-sdl): Don't run make if GGI_OK, ALLEGRO_OK, NODISPLAY_OK
	or SDL_OK are set.
	* tools/alpha.sh: Don't run make dist-bzip2 (distcheck will do it).
	Don't run make distcheck if the tarballs already exist.
	* src/plugins/Makefile.inc (plugins_stdai_la_LDFLAGS): Remove the
	useless -release $(VERSION) option.
	(plugins_stdai_la_CFLAGS): New variable.
	(DISTCLEANFILES): Add pconf and extrconf.sh.
	(distclean-local): Delete plugins/.libs and plugins/_libs.
	* src/plugins/stdai.c (ia_eval_dir_cash): Typo.

2002-03-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* tools/scandefs.pl: New file.
	* tools/Makefile.in (EXTRA_DIST): Add it.
	* lib/Makefile.am (pkginclude_HEADERS): Add xalloc.h.
	* src/system.h: Add PUBLIC markers.
	* src/plugins/Makefile.inc (BUILT_SOURCES): Add pconf.h.
	(PLUGIN_H_INPUTS): Add system.h.
	(EXTRA_SCRIPTS, PERL, SCANDEFS_PL): New variables.
	(plugins/extraconf.sh, plugins/pcong.h): New rules
	* src/plugins/stdai.c: Include plugin.h.
	* tools/pubhex.awk: Include pconf.h.

2002-03-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Use a local array to mark inspected squares.  This way this
	plug-in does not have to *write* in the level state any longer.

	* src/plugins/stdai.c (square_marks): New array.
	(ai_level_initialize, ai_level_finalize): Allocate/free it.
	(ia_eval_neighb_pos, ia_eval_dir_target, ia_eval_dir_lemming,
	ia_eval_dir_color, ia_eval_dir_cash): Use it.

2002-03-17  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Extract src/plugins/plugin.h from various source files.

	* tools/pubhex.awk: New file.
	* tools/Makefile.inc (EXTRA_DIST): Add it.
	* src/hooks.h, src/opponents.h, src/lvl/lvl.h, src/rules/player.h,
	src/rules/state.h: Add PUBLIC markers.
	* src/plugins/Makefile.inc (plugins/plugins.h): New rule.
	(pkginclude_HEADER, BUILT_SOURCES, PLUGIN_H_INPUTS,
	PUBHEX_AWK): New variables.

2002-03-13  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Show the plug-ins install path.

2002-03-13  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* tools/ltmain.sh: Add.  Missing from a previous commit.

2002-03-13  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Document the AC_PROVIDE_AC_LIBOOL_DL_OPEN definition
	better.
	* src/Makefile.am (heroes_DEPENDENCIES): Add $(LIBLTDL).

2002-03-11  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/media/ggi/video.c: s/negociate/negotiate/.
	(setup_WWWxHHHxB_display): Don't call ggiSetMode unless
	ggiCheckMode succeeded.
	From Brian S. Julin <bri@tull.umassp.edu>.

2002-03-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/state.c: Don't include ai.h.
	* src/rules/update.c: Likewise.

2002-03-05  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Define AC_PROVIDE_AC_LIBTOOL_DLOPEN (kludge).
	* m4/h-paths.m4: Compute FORWARD_RELATIVE_PLUGINDIR.
	* src/plugins.c, src/plugins.c: New files.
	* src/Makefile.am: Include plugins/Makefile.inc.
	(AM_CPPFLAGS): Add $(LTDLINC).
	(heroes_LDFLAGS): Add libltdl, and -dlopen stdai.la.
	(heroes_SOURCES): Add plugins.c and plugins.h.
	* src/argv.c (print_help): Document -p and --plug-in.
	(long_options): Add --plug-in.
	(parse_argv): Handle them.
	* src/heroes.c (heroes_main): Call plugins_initialize and
	plugins_finalize.
	* src/relocate.c (check_plugindir_env): New function.
	(relocate_data): Call it.
	* src/rsc_files.gperf (plug-in-dir): New.
	* src/etc/heroesrc: Load the stdai module.
	* src/plugins/Makefile.inc: New file.
	* src/rules/ai.c: Move ...
	* src/plugins/stdai.c: ... here.
	* src/rules/ai.h: Delete.
	* src/rules/Makefile.inc (rules_libhrules_a_SOURCES): Remove ai.c
	and ai.h.

2002-03-04  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/opponents.c: New file.
	* src/Makefile.am (heroes_SOURCES): Add it
	* src/opponents.h (opponent_register, opponent_unregister,
	opponent_get_random): New functions.
	* src/heroes.c (heroes_main): Call standard_ai_initialize, and
	standard_ai_finalize.
	* src/hooks.c: Don't include unneeded generic_list.h.
	* src/rules/ai.c (standard_ai_finalize, standard_ai_initialize):
	New functions.
	* src/rules/ai.h: Likewise.
	* src/rules/state.c (state_init): Use opponent_get_random.

2002-03-04  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/opponents.h: New file.
	* src/Makefile.am (heroes_SOURCES): Add it.
	* src/rules/ai.c, src/rules/ai.h: Reorganize to present the AI in ...
	(ai_standard_quest, ai_standard_deathm, ai_standard_killem,
	ai_standard_color, ai_standard_tcash): ... these instances of the
	an_opponent_sig struct defined in src/opponents.h.
	* src/rules/player.c (state_erase_player, state_reinit_player):
	Adjust to use the an_opponent_sig interface.
	* src/rules/state.c (state_init, state_free): Likewise.
	* src/rules/player.h (player.behaviour): Remove.
	* src/rules/statepriv.h (a_level_state_bits.opponent,
	a_level_state_bits.opponent_data): New attributes.
	* src/rules/update.c (opponent_action_prepare, opponent_action_honor):
	New functions.
	(update_player): Adjust to use the an_opponent_sig interface.

2002-03-02  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (heroes_SOURCES): Add hookscore.c and hookscore.h.
	* src/debugchn.def (hooks): New.
	* src/heroes.c (heroes_main): Call hooks_core_initialize, and
	hooks_core_uninitialize.
	* src/hooks.c: Rewrite using a hand-written singly-linked list to
	keep track of functions for each hook.
	(hook_define, hook_run, hook_add_fun, hook_rem_fun_if): Adjust.
	Call dmsg.
	(a_hook_fun_list_item): Remove.
	(a_hook_fun_list): New struct.
	(hook_define_many, hook_undefine, hook_undefine_many): New functions.
	(hook_find): Ahem, iterate over the list.
	* src/hooks.h (a_hook_fun_list): New.
	(a_hook): Use it.
	(HOOK_DEF): Remove stray ;.
	(hook_define_many, hook_undefine, hook_undefine_many): Declare.
	* src/hookscore.c, src/hookscore.h: New files.

	* src/rules/ai.c (ia_targer_y): Rename as ...
	(ia_target_y): ... this.
	(ai_level_initialize, ai_level_finalize): New functions.
	* src/rules/ai.h (ai_level_initialize, ai_level_finalize): Declare.
	* src/rules/bonus (bonus_points): Move ...
	* src/rules/ai.c (bonus_points): ... here.
	* src/rules/bonus (add_bonus, rem_bonus): Run BONUS_ADD_HOOK and
	BONUS_REM_HOOK.
	* src/rules/bonuses.c (init_bonuses_level,
	uninit_bonuses_level): Don't alloc and free the tile_bonus
	array.
	* src/rules/state.c (state_init, state_free): Call
	ai_level_initialize and ai_level_finalize;
	* src/rules/statepriv.h (a_level_state_bits.tile_bonus_cpu) Move ..
	* src/rules/ai.c (tile_bonus_cpu): ... here.

2002-02-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Add functions to handle hooks (to be used by modules to hook
	themselves in some obscure part of the game).  Untested.

	* src/generic_list.h (MEMCMP_EQUAL): New macro.
	* src/hooks.c, src/hooks.h: New files.
	* src/Makefile.am (HEROES_SOURCES): Add them.

2002-02-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (INCLUDES): Rename as ...
	(AM_CPPFLAGS): ... this.
	* lib/Makefile.am: Likewise.

2002-02-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* Makefile.am (EXTRA_DIST): Add misc/ltdlaux.patch.
	(SUBDIRS): Prepend libltdl.
	* configure.ac: Call libtools/libltdl configury macros.
	* libltdl/COPYING.LIB, libltdl/Makefile.am, libltdl/README,
	libltdl/acinlude.m4, libltdl/configure.ac, libltdl/ltdc.c,
	libltdl/ltdc.h, m4/libtool.m4: New files, from CVS libtool.
	* tools/autogen.sh: Recognize AM_CONFIG_HEADER.
	* tools/uplibtool.sh: New file.
	* tools/cvsboot.sh: Add the tools/uplibtool.sh invokation, but
	as a comment (because we keep the result in CVS for now).

2002-02-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/bonuses.c (bonus_time, bonus_list, bonus_total_nbr,
	bonus_real_nbr, next_bonus_to_update): Move these variables ....
	* src/rules/statepriv.h (bonus_time, bonus_list): ... and these ...
	(a_level_state): ... in this struct.
	* src/rules/bonuses.c (add_bonus, rem_bonus, init_bonuses_leel,
	uninit_bonuses_level, spread_bonus, add_end_level_bonuses,
	update_bonuses): Adjust.

2002-02-12  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Move the main "update" function into rules/, allows to remove
	many minor "update" functions from the public state.h interface.

	* src/heroes.h (update_htimer): Delete.
	* src/heroes.c (update_htimer): Delete.
	(update_all): Call state_update().
	(play_game, play_demo): Call state_start_game(),
	state_start_players().
	* src/menus.c (quit_yes_no, pause_menu): Call state_pause().
	* src/rules/state.c (state_init, state_free): Handle
	a_level_bits.players_started and a_level_bits.update_timer.
	* src/rules/state.h (state_start_game, state_update,
	state_start_players, state_pause): New functions.
	(update_lemmings, update_player, trigger_explosion,
	trigger_possible_explosion, update_explosions,
	update_bonuses): Move ...
	* src/rules/statepriv.h (update_lemmings, update_player,
	trigger_explosion, trigger_possible_explosion, update_explosions,
	update_bonuses): ... here.
	(a_level_bits) <update_timer, players_started>: New attributes.
	* src/rules/updates.c (state_update, state_start_game,
	state_start_players, state_pause): New functions.

2002-02-12  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (play_game): Make sure exit_code is always
	initialized.

2002-02-11  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Make lvl a field of state.  This simplify all functions.

	* src/state.h (a_level_state) <level>: New attribute.
	(state_erase_player, state_reinit_player, state_init_lemmings,
	update_lemmings, update_player, trigger_explosion,
	trigger_possible_explosion, update_explosions,
	update_bonuses): Remove the lvl argument.
	Adjust all callers.
	* src/state.c (state_init): Setup state->level.

2002-02-11  Ingo van Lil  <inguin@gmx.de>

	* src/lvl/en_body.c (en_reverse_walls): Set DM_ALL on T_OUTWAY squares.
	(encode_level_body): Make sure tunnel outputs are T_TUNNEL.
	* src/lvl/loadpie.c (lvl_load_tileset): Reset walls of T_OUTWAY
	squares.
	* src/lvl/lvl.h (lvl_assign_tile, lvl_set_start, lvl_setup_tunnel):
	Return void.
	* src/lvl/lvl_priv.h (rebuild_walls,
	sprite_offset_to_tileset_index): Declare.
	* src/lvl/mapedit.c (sprite_offset_to_tileset_index): Simplify.
	(lvl_assign_tile, lvl_set_start, lvl_setup_tunnel): Add
	assertions for bad conditions.

2002-02-08  Ingo van Lil  <inguin@gmx.de>

	* src/lvl/mapedit.c (mark_outway): New function.
	(lvl_set_start, lvl_setup_tunnel): Call it.
	(rebuild_walls): Likewise.  Simplify using
	sprite_offset_to_tileset_index().

2002-02-07  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/state.h: More comments.
	(a_lemming) <min, next_dead, couleur>: Rename as ...
	(a_lemming) <puddle_offset, next_puddle, color>: ... these.
	(lemmings_per_player): Rename as ...
	(LEMMINGS_PER_PLAYER): ... this.
	* src/rultes/statepriv.h (lemmings_total): Rename as ...
	(LEMMINGS_TOTAL): ... this.
	* src/render.c, src/rules/lemmings.c, src/rules/update.c,
	src/rules/ai.c, src/rules/state.c: Adjust for renamings.

2002-02-07  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* NEWS, ANNOUNCE, configure.ac: Update with the files from
	version 0.20.

2002-02-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (play_game): Process input directions right before
	updating the game state, not after the next display.  This was
	reported to improve responsiveness significantly.
	Reported by Tomas Pospisek.

2002-02-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/levellst.c (cmp_levels): Fix the sorting order of levels,
	broken since 0.12d.
	Reported by Raphaël Poss.

2002-02-06  Ingo van Lil  <inguin@gmx.de>

	Add support for loading *.pie files and editing levels in libhlvl.

	* src/lvl/loadpie.c, src/lvl/mapedit.c: New files.
	* src/lvl/Makefile.inc (lvl_libhlvl_a_SOURCES): Add them.
	* src/lvl/de_body.c (dir_mask_to_dir, tunnel_square_io): Move them ...
	* src/lvl/privacc.c (dir_mask_to_dir, tunnel_square_io): ... here.
	* src/lvl/format.c (PIE_GET_TILE_WALLS, PIE_GET_TILE_TYPE,
	PIE_GET_TUNNEL_DIR, PIE_GET_ANIM_FRAME_COUNT,
	PIE_GET_ANIM_FRAME_DELAY, PIE_GET_EFFECT_SET,
	PIE_GET_SANIM_FRAME_COUNT, PIE_GET_SANIM_FRAME_DELAY,
	PIE_GET_SPEED_DIR, PIE_PCX_PIXELS_X, PIE_PCX_PIXELS_Y,
	PIE_TILE_PIXELS_X, PIE_TILE_PIXELS_Y): New macros.
	* src/lvl/free.c (lvl_free): Free lvl->tileset.
	(lvl_free_tileset): New function.
	* src/lvl/load.c (lvl_load_file): Initialize lvl->tileset.
	* src/lvl/lvl.h (a_tileset_tile, a_tileset_square, a_tileset,
	lvl_create, lvl_load_tileset, lvl_assign_tile, lvl_free_tileset,
	lvl_set_start, lvl_setup_tunnel, lvl_set_anim_delay): New declarations.
	* src/lvl/lvl_priv.h (PIE_RECORD_SIZE, dirmask_to_dir,
	tunnel_square_io): New declarations.

2002-02-04  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Now the src/* code does not access the private parts
	of src/rules/* anymore.

	* src/rules/state.h: Do not include statepriv.h.
	* src/rules/bonuses.c (txt_bonus, txt_bonus_tempo, set_txt_bonus,
	update_player_bonus_var): Move ...
	* src/bonus.c: ... back here.  Reverting part of 2002-01-30.
	(renader_init_bonus_level): New function.
	* src/rules/statepriv.h (set_txt_bonus,
	update_player_bonus_vars): Move ...
	* src/bonus.h: ... here.
	(render_init_bonus_level): New function.
	(tile_bonus, tile_bonus_cpu): Move ...
	* src/rules/state.h (a_level_state.tile_bonus): ... here, and ...
	* src/riles/statepriv.h (a_level_state_bits.tile_bonus_cpu): ... here.
	* src/rules/bonuses.c (add_bonus, mark_unreachable_place,
	uninit_bonus_level, update_bonuses): Adjust access to tile_bonus.
	(init_bonus_level): Likewise.  Call render_init_bonus_level.
	* src/heroes.c (load_level): Don't call allocate_explosions(),
	init_bonus_level(), and spread_bonuses().
	(unload_level): Don't call unit_bonuses_level(), and
	relese_explosions().
	* src/render.c (draw_trail_tail): Adjust to use
	state_trail_expending().
	(draw_level): Adjust the access to lemmings structures and trails.
	* src/rules/ai.c: Likewise.
	* src/rules/update.c: Likewise.
	* src/rules/lemmings.c (find_lemming_direction, state_init_lemmings,
	update_lemmings): Update access to lemmings structures.
	* src/rules/state.c (state_init): Update access to lemmings
	structures. Call allocate_explosions(), init_bonuses_level(),
	and spread_bonuses().
	(state_free): Update access to lemmings structures.  Call
	uninit_bonus_level() and relese_explosions()
	* src/rules/statepriv.h (a_lemming,
	a_level_state_bits.square_lemmings_list,
	a_level_state_bits.square_dead_lemmings_list,
	update_bonuses): Move ...
	* src/rules/state.h (a_lemming, a_level_state.square_lemmings_list,
	a_level_state.square_dead_lemmings_list, update_bonuses): ... here.
	(state_trail_expending): New function.
	(allocate_explosions, release_explosions): Move ...
	* src/rules/statepriv.h (allocate_explosions,
	release_explosions): ... here.
	* src/rules/trail.c (state_trail_expending): New function.

2002-02-03  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/hedlite.c (gestclav) <HK_i>: Don't ignore tile #0 when
	propagating walls to neighbors.
	Reported by Ingo.

2002-02-02  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/update.c (update_player): s/t_ice/T_ICE/,
	s/t_tunnel/T_TUNNEL/.

2002-02-01  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/state.c (state_init): Take the two_plauers, and in_menu
	arguments.  Clear state->private.  Clear state->square_objects.
	(state_free): Simplify.
	* src/rules/state.h (state_init): Adjust prototype.

2002-02-01  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rules/player.c (state_reinit_player): Determine the possible
	players to attch to without using the two_players variable,
	i.e., actually counting the number of human player.

2002-02-01  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/const.c (lemmings_anim_offset, lemmings_move_offset): Move ...
	* src/render.c (lemmings_anim_offset, lemmings_move_offset): ... here.
	(draw_level): Update lemmings_move_offset by calling
	state_lemmings_move_offset.
	* src/const.h (lemmings_anim_offset, lemmings_move_offset): Delete.
	* src/heroes.c (update_all): Simplify the call to update_lemmings,
	move all the guarding code ...
	* src/rules/lemmings (update_lemmings): ... here.
	(state_lemmings_move_offset): New function.
	* src/rules/statepriv (a_level_state_bits): Add the
	lemmings_move_offset member.
	* src/rules/update.c (update_player): Call state_lemmings_move_offset
	when lemmings_move_offset is needed.

2002-02-01  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* m4/h-mikmod.m4 (heroes_CHECK_MIKMOD): Complete LIBMIKMOD_LIBS
	with the output of libmikmod-config --ldadd, required to build
	Heroes since libmikmod 3.1.10.

2002-02-01  Ingo van Lil  <inguin@gmx.de>

	* src/lvl/lvl.h (lvl_tile_type): Fix the type of the tile argument.
	* src/lvl/privacc.c (lvl_tile_type): Likewise.
	* src/lvl/access.h (READ_U16): Typo.

2002-01-31  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Move the non-rendering parts of src/explosions.c to
	src/rules/explosions.c.

	* src/explosions.c (square_explo_state, square_explo_type): Move ...
	* src/rules/state.h (a_level_state.square_explo_state,
	a_level_state.square_explo_type): ... here.
	* src/explosions.c (an_explosion_info, explo_list, explo_list_max,
	explo_list_first_unused, explo_timer, explo_time): Move ...
	* src/rules/statepriv.h (an_explosion_info,
	a_level_state_bits.explo_list, 	a_level_state_bits.explo_list_max,
	a_level_state_bits.explo_list_first_unused,
	a_level_state_bits.explo_timer,
	a_level_state_bits.explo_time): ... here.
	* src/explosions.c (allocate_explosions, release_explosions,
	trigger_explosion_at_time, compute_explosion_state,
	propagate_to_neighbors_maybe, trigger_explosion_at_time,
	trigger_explosion, trigger_possible_explosion,
	update_explosions): Move ...
	* src/rules/explosions.c: ... here.
	* src/explosions.h (NBR_EXPLOSION_FRAMES, NBR_EXPLOSION_KINDS,
	EXPLOSION_SLICES_PER_FRAMES, EXPLOSION_DELAY, EXPLOSION_IMMEDIATE,
	EXPLOSION_TRIGGERED, EXPLOSION_TRIGGER_NEIGHBORS,
	EXPLOSION_UNTRIGGERED, an_explosion, EXPLOSION_SQUARE_TRIGGERED_P,
	EXPLOSION_SQUARE_TRIGGERABLE_P, square_explo_type,
	allocate_explosions, release_explosions, trigger_explosion,
	trigger_possible_explosion, update_explosions): Move ...
	* src/rules/state.h: ... here.
	* src/heroes.c (load_level, unload_level, update_all): Adjust calls
	to allocate_explosions, release_explosions, and update_explosions.
	* src/render.c (draw_level): Adjust usage of square_explo_type.
	* src/rules/ai.c: Adjust usage of square_explo_state
	* src/rules/trail.c (erase_trail): Adjust call to trigger_exposion.
	* src/rules/update.c (update_player): Likewise.

	* src/rules/lemmings.c (find_lemming_direction) <bits>: Initialize.

2002-01-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Move parts of src/bonus.c to src/rules/bonuses.c.  The remaining
	of the file is related to the level rendering.  (A small part of
	the things moved are related to rendering too, but they are
	difficult to split.)

	* src/rules/bonuses.c: New file.
	* src/rules/Makefile.inc (rules_libhrules_a_SOURCES): Add it.
	* src/bonus.c (bonus_density, bonus_points, bonus_proba,
	bonus_proba_sum, bonus_time, bonus_list, bonus_total_nbr,
	bonus_real_nbr, next_bonus_to_update, txt_bonus, txt_bonus_tempo,
	random_bonus, add_bonus, add_random_bonus, rem_bonus,
	reset_bonus_mode, mark_unreachable_places, init_bonuses_level,
	uninit_bonuses_level, spread_bonuses, set_txt_bonus,
	add_end_level_bonuses,apply_bonus, update_player_bonus_vars,
	update_bonuses): Move ...
	* src/rules/bonuses.c: ... here.
	* src/bonus.h (N_BONUSES, N_BONUS_FRAMES, bonus_rle): Export.
	(bonus_points, bonus_time, bonus_list, txt_bonus_tempo,
	add_bonus, add_random_bonus, rem_bonus, init_bonuses_level,
	uninit_bonuses_level, spread_bonuses, set_txt_bonus,
	add_end_level_bonuses, apply_bonus, update_player_bonus_vars,
	update_bonuses): Move ...
	* src/rules/statepriv.h: ... here.
	* src/heroes.c (update_all, load_level): Adjust calls to
	init_bonuses_level(), spead_bonuses(), and update_bonuses().
	* src/rules/update.c (update_player): Adjust calls to apply_bonus(),
	and rem_bonus().
	* src/rules/trail.c (grow_trail): Add the lvl argument.

2002-01-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Extract the update_player() and ai functions from heroes.c, and
	move them to libhrules.a.  Note that the rules/ai.c and rules/ai.h
	files are temporary.  When programmable vehicles are available,
	they should move in the relevant directory.

	* src/rules/ai.c, src/rules/ai.h, src/rules/update.c: New files.
	* src/rules/Makefile.inc (rules_libhrules_a_SOURCES): Add them.
	* src/rules/state.c (state_level_exit_code,
	state_level_set_exit_code): New functions.
	* src/rules/state.h (state_level_exit_code,
	state_level_set_exit_code, update_player): New functions.
	* src/bonus.c (apply_bonus): Use state_level_set_exit_code().
	* src/menus.c (draw_end_level_info): Use state_level_exit_code().
	* src/heroes.c (output_screen, play_menu, play_demo,
	play_game): Likewise.
	(update_all): Adjust call to update_player.
	(level_is_finished): Move ...
	* src/rules/statepriv.h (a_level_bits.level_is_finished): ... here.
	* src/heroes.h (level_is_finished): Delete.
	* src/heroes.c (ia_max_depth, ia_cur_depth, ia_is_invincible,
	ia_player, ia_target_x, ia_targer_y, ia_wrap_x, ia_wrap_y,
	ia_wrap_left, ia_wrap_right, ai_throttle, ia_eval_dist,
	ia_eval_dir_target_inline, ia_eval_dir_bonus_inline,
	ia_eval_dir_lemming_inline, ia_eval_dir_cash_inline,
	ia_eval_dir_color_inline, ia_eval_neighb_pos, ia_eval_dir_target,
	ia_eval_dir_lemming, ia_eval_dir_color, ia_eval_dir_bonus,
	ia_goto_target_inline, ia_goto_bonus_inline,
	ia_goto_lemming_inline, ia_goto_color_inline, ia_goto_cash_inline,
	ia_goto_target, ia_goto_nearest_bonus, ia_goto_nearest_lemming,
	ia_goto_nearest_color, ia_goto_nearest_cash): Move ...
	* src/ia.c: ... here.
	* src/heroes.c (find_free_way, update_player): Move ...
	* src/update.c: ... here.

2002-01-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	This is the first step towards grouping all the level state
	variables in the same struct (named a_level_state).  This also
	moves many related definitions and handling functions into the
	rules directory.  Intuitively, this directory should hold all
	the functions and data related to updating the state of a game.

	The work is not complete yet.  Other tasks remaining are the
	migration of update_player(), ai functions, and the move of the
	code for bonus and explosions.

	* src/rules/Makefile.inc, src/rules/lemmings.c,
	src/rules/objects.c, src/rules/players.c, src/rules/players.h,
	src/rules/state.c, src/rules/state.h, src/rules/statepriv.h,
	src/rules/trail.c: New file.
	* src/Makefile.am: Include rules/Makefile.inc.
	(INCLUDES): Add -I$(srcdir)/rules.
	(heroes_LDADD, heroes_DEPENDENCIES): add rules/libhrules.a.
	* src/const.h (player, trail_pos, trail_way, trail_offset,
	trail_size, square_lemmings_list, square_dead_lemmings_list,
	lemmings_support, object_nbr, lemmings_per_players,
	lemmings_total, maxq): Move ...
	* src/rules/statepriv.h (a_level_state_bits): ... here.
	* src/const.h (col2plr, plr2col, square_occupied, square_way,
	square_tile, square_coord, square_object, game_mode): Move ...
	* src/rules/state.h (a_level_state): ... here.
	* src/const.h (state): New variable.
	* src/const.c: Reflect changes of const.h.
	* src/heroes.c (ia_skip_firsts_moves, erase_player,
	reinit_player): Move ...
	* src/rules/player.c (ia_skip_firsts_moves, state_erase_player,
	state_reinit_player): ... here.
	* src/heroes.c (add_color, add_cacsh): Move ...
	* src/rules/objects.c: ... here.
	* src/heroes.c (find_lemming_direction): Move ...
	* src/rules/lemmings.c: ... here.
	* src/heroes.c (load_level, unload_level): Move most code ...
	* src/rules/state.c (state_init, state_free): ... here.
	* src/heroes.c (grow_trail, shrink_trail, erase_trail): Move ...
	* src/rules/trails.c (grow_trail, shrink_trail, erase_trail): ... here.
	* src/heroes.h (grow_trail, shrink_trail): Remove.
	* src/structs.h (hl, ehl, a_player, M_QUEST, M_DEATHM, M_KILLEM,
	M_TCASH, M_COLOR): Move ...
	* src/player.h: ... here.
	* src/structs.h (a_lemming): Move ...
	* src/statepriv.h: ... here.
	* src/bonus.c, src/camera.c, src/heroes.c, src/menus.c,
	src/render.c, src/visual.c: Adjust to use state.
	* src/explosions.c: s/state/explo_state/ to avoid conflicts.

2002-01-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/const.c, src/heroes.c, src/heroeslvl.c, src/lvl/privacc.c,
	src/const.h, src/lvl/lvl.h, src/lvl/lvl_priv.h: Typo
	s/a_square_corrd_paur/a_square_coord_pair/.

2002-01-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* arch/mingw32/cross.sh (cross_install): Add ChangeLog.01.

2002-01-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump version to 0.19.
	* ANNOUNCE, NEWS, arch/mingw32/dest-readme-lib: Update for 0.19.

2002-01-25  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/lvl/en_head.c: Do not include xstrduplwr.h.

2002-01-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* arch/mingw32/cross.sh (cross_install): Use make install-strip.
	(STRIPPROG): Remove.

2002-01-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* misc/copytile.c (copy_tile4): New function.
	(main): Call it.
	* src/sprshade.c (draw_sprshade): Remove FIXME about memcpy being
	possibly faster.
	* src/sprrle.c (draw_sprrle): Likewise.

	* src/lvl/README: Update.

2002-01-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* TODO: Add some items I posted to heroes-discuss a
	couple of week ago.

2002-01-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/system.h (getopt.h): Disable MinGW's definition of __argc
	and __argv during the inclusion of getopt.h.

2002-01-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* lib/filelock.c (file_unlock): Use _LK_UNLCK instead
	of _LK_UNLOCK (it seems this has changed in MinGW32), but
	still support _LK_UNLOCK just in case.

2002-01-23  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump version to 0.18b.
	* NEWS: Update.

	* tests/Makefile.am (EXTRA_PROGRAMS): Replace by ...
	(check_PROGRAMS): ... this.

2002-01-22  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* misc/copytile.c: New file.
	* Makefile.am (EXTRA_DIST): Add it.
	* src/render.c (copy_tile): Point people to misc/copytile.c.

2002-01-22  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/lvl/lvl.h (SQR_COORD_X_HOLD, SQR_COORD_Y_HOLD): Rename as ...
	(SQR_COORD_X_VALID, SQR_COORD_Y_VALID): ... these.
	(SQR_COORD_VALIDE): New macro.
	* src/lvl/en_body.c (en_reverse_walls): Adjust.

2002-01-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/lvl/lvl.h (SQR_COORD_X_HOLD, SQR_COORD_Y_HOLD): New macros.
	* src/lvl/en_body.c (en_reverse_walls): Simplify, don't add
	wall to border squares (this is already done on loading),
	don't compute dest before it is needed.

2002-01-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/lvl/loadmac.h, src/lvl/savemac.h: Delete and merge into ...
	* src/lvl/access.h: ... this file.
	* src/lvl/de_body.c, src/lvl/en_body.c: Extract format-related
	macros into ...
	* src/lvl/format.h: ... this new file.  Macros from de_body.c are
	all prefixed with GET_; macros for en_body are rewritten
	using a SET_ prefix, take a new 'val' argument, and use the
	endian-safe macros from access.h.  Adjust all user functions.
	* src/lvl/Makefile.inc (lvl_libhlvl_a_SOURCES): Remove
	lvl/savemac.h, and lvl/loadmac.h.  Add lvl/format.h and
	lvl/access.h.

2002-01-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/system.h (S_IRUSR, S_IRGRP, S_IROTH, S_IWUSR, S_IWGRP,
	S_IWOTH, S_IXUSR, S_IXGRP, S_IXOTH, S_IRWXU, S_IRWXG, S_IRWXO,
	S_IXUGO, S_IRWXUGO, S_IRUGO, S_IWUGO, S_IRWUGO): New macros.
	* src/lvl/save.c (lvl_save_file): Create the file in S_IRWUGO mode.

	* tests/lvlsave.c: Include error.h.

2002-01-21  Ingo van Lil  <inguin@gmx.de>

	* src/lvl/en_body.c (en_reverse_walls): Fix warnings.
	* src/lvl/en_head.c (encode_level_header): Likewise.
	* src/lvl/save.c (lvl_save_header_file, lvl_save_file): Likewise.

2002-01-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/heroes.texi (configure options): Document
	--enable-optimizations' argument.
	* m4/devel.m4 (adl_ENABLE_DEVEL): Set enable_optimizations to -O.
	* m4/gccoptim.m4 (ad_GCC_OPTIM): Handle $enable_optimizations.

2002-01-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Test that saved levels are identical to loaded levels.

	* tests/Makefile.am (lvlsave_LDADD, lvlsave_SOURCES,
	EXTRA_PROGRAMS, INCLUDES, AM_CFLAGS): New variables.
	(TESTS): Add lvlsave.test.
	* tests/lvlsave.test, tests/lvlsave.c: New files.
	* tests/defs: Set HEROESLVL.  Handle VERBOSE=x.

2002-01-20  Ingo van Lil  <inguin@gmx.de>

	Teach liblvl how to save a level.

	* src/lvl/en_body.c, src/lvl/en_head.c, src/lvl/save.c,
	src/lvl/savemac.h: New files.
	* src/lvl/Makefile.inc (lvl_libhlvl_a_SOURCES): Add them.
	* src/lvl/lvl.h (lvl_save_file): New function.
	* src/lvl/lvl_priv.h (encode_level_header, encode_level_body):
	New function.

2002-01-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroeslvl.c (version): Bump copyright year to 2002.

2002-01-17  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/pendulum.c, src/pendulum.h: New files.
	* src/Makefile.am (HEROES_SOURCES): Add them.
	* src/heroes (pendulum_create, pandulum_one_step,
	pendulum_update): Move these functions ...
	* src/pendulum.c (pendulum_create, pendulum_one_step,
	pendulum_update): ... here.  And adjust them to
	work with...
	(a_pendulum): This new struct.
	* src/heroes.c (play_game, play_demo): Adjust to use
	the new interface.

2002-01-17  Ingo van Lil  <inguin@gmx.de>

	Alt+Enter toggles full screen mode.

	* src/media/sdl/video.c (Handle_AltEnter): New function.
	(init_SDL): Setup Handle_AltEnter as an event filter.

2002-01-17  Ingo van Lil  <inguin@gmx.de>

	* src/readmake.c (a_margin_list_item, a_margin_list): New structs.
	(init_margins, add_margin, free_margins): New functions.
	(compute_width, compile_reader_data): Use the new structs and
	functions to allocate memory for margins dynamically, instead of
	using and static array.

2002-01-14  Ingo van Lil  <inguin@gmx.de>

	* src/heroes.c (find_free_way): Ignore explicit turn back.

2002-01-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/menus.c (editor_selector, extra_menu): Fix gcc-3.0 warnings.

2002-01-09  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump version to 0.18a.
	* NEWS: Update.
	* src/argv.c (version): Bump copyright year to 2002.

	* m4/libalt.m4 (LIBALT_LDFLAGS, LIBALT_LDADD, LIBALT_LOCAL_LDADD):
	Rename as ...
	(LIBALT_XLDFLAGS, LIBALT_XLDADD, LIBALT_LOCAL_XLDADD): ... these.
	* src/Makefile.am: Adjust.

2002-01-07  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (ai_throttle): Use player[c].invincible instead of
	ia_is_invincible.

2002-01-07  Ingo van Lil  <inguin@gmx.de>
	    Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (ai_throttle): New function.
	(update_player): Call it.
	(reinit_player): Initialize player[p].pos.

2002-01-01  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (heroes_SOURCES): Remove font_help.hh
	* src/font_help.hh: Delete.

2001-12-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/media/ggi/video.c (dont_request_8bit_mode): New flag.
	(set_display_params): Set dont_request_8bit_mode if -G not8.
	(setup_320x200x8_display): Do nothing if dont_request_8bit_mode.
	* doc/heroes.texi (Invoking heroes, Troubleshooting): Document this.

2001-12-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (parafmt_check_LDADD): New.

2001-12-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac (ALL_LINGUAS): Add pt_BR.
	* po/pt_BR.po: New file.
	From Luzemario Dantas Rocha <luza.solucao@uol.com.br>.

2001-12-15  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump version to 0.18.
	* ANNOUNCE, NEWS: Update.

2001-12-15  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* po/de.po: Update copying/warranty message.
	From Ingo van Lil <inguin@gmx.de>.

2001-12-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* po/fr.po: Update (use new latin-1 characters).

2001-12-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/camera.c (compute_corner): Don't take two_player into
	account while we are in_menu.  (Fix a bug introduced in 0.12c.)
	Reported by Ingo van Lil <inguin@gmx.de>.

2001-12-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/fontdata.c (initialize_deck_font): Revert change from
	2001-12-12.
	Reported by Ingo van Lil <inguin@gmx.de>.

2001-12-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* po/de.po: Update (use new latin-1 characters).
	From Ingo van Lil <inguin@gmx.de>.

2001-12-13  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump version to 0.17a.
	* NEWS, HACKING: Update.

2001-12-12  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* tests/defs: Don't assume heroes has been built in $srcdir.

	* Makefile.am (my-distcheck-nodisplay, my-distcheck-ggi):
	Run make check.
	(my-distcheck-allegro): New target.
	(distcheck-hook): Depend upon my-distcheck-allegro.

	* doc/heroes.texi (Libraries): Add an entry for Allegro.
	(configure options): Document --with-allegro.
	(Machines): Pretend that Heroes-Allegro works on Linux/i386.
	* m4/h-allegro.m4: "unhide" the check for Allegro.

2001-12-12  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Support Latin-1 characters in help reader and big fonts.

	* src/rsc_files.gperf: Add big-font.
	* src/fontdata.c (big_font_img): New variable.
	(uninit_fonts): Free big_font_img.
	(initialize_menu_font): Use big_font_img.
	(initialize_deck_font): Don't convert lowercase	letters to
	upper case letters in DEBUG mode.
	(compute_text_width): Use UCHAR.
	* src/sprtext.c (compile_sprtext, compile_sprtext_color):
	Test whether width[ch]!=0 to make sure character ch is supported,
	not upper_left[ch]!=0.
	(compile_sprtext_color): Use UCHAR.

2001-12-12  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/media/allegro/joystick.c (get_joystick_state): Reset
	joystick axes when needed.

2001-12-11  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* po/de.po: Update.
	From Ingo van Lil <inguin@gmx.de>.

2001-12-10  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Joystick support for Allegro.  (Untested yet, I have no joystick
	on this host...)

	* m4/h-joystick.m4: Add LIBALT support for the Allegro joystick
	driver (allj).
	* m4/h-allegro.m4: Don't handle allj here.
	* m4/h-media.m4: Consider allk for selection.

	* src/media/allegro/joystick.c: New file.
	* src/media/allegro/video.c (heroes_init_allegro): New function.
	(init_video_low): Call heroes_init_allegro() instead of init_allegro().
	* src/media/Makefile.inc (EXTRA_LIBRARIES): Add media/libhallj.a.
	(media_libhallj_a_CFLAGS, media_libhallj_a_SOURCES): New variables.

2001-12-10  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/media/allegro/keyb.c (process_input_events): Call	clear_keybuf().
	* src/heroes.c (play_game): Call keycode_to_ascii().

2001-12-09  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/media/allegro/video.c (init_allegro): Call install_mouse ().
	* src/media/allegro/keyb.c (enable_mouse): Remove.

2001-12-09  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/media/keyb.h (keycode_to_ascii): Declare.
	* src/media/dummy/keyb.c (keycode_to_ascii): Define.
	* src/media/sdl/keyb.c (keycode_to_ascii): Define.
	* src/media/ggi/keyb.c (keycode_to_ascii): Define.
	* src/media/allegro/keyb.c (keycode_to_ascii): Define.
	* src/menus.c (editor_menu, enter_your_name): Use it.

2001-12-09  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (get_input_directions): Don't assume keyboard_map
	contains 0 or 1 (that's not true with Allegro).
	* src/media/Makefile.inc (media_libhallvkm_a_CFLAGS): Don't use
	$(MORE_WARNINGS_CFLAGS).
	* src/sys/Makefile.inc (sys_libhallm_a_CFLAGS): Likewise.

2001-12-07  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (GGI_CFLAGS, GII_CFLAGS, LIBMIKMOD_CFLAGS,
	SDL_CFLAGS, SDL_MIXER_CFLAGS, ALLEGRO_CFLAGS): Define.

	* m4/gccwarn.m4 (CF_GCC_MORE_WARNINGS): Add -Werror.

	* lib/cast.h, lib/cast.c: New files.
	* lib/Makefile.am (libheroes_a_SOURCES): Add them.
	* src/vars.c (var_get_value): Call const_cast_string ().
	* src/musicfiles.c (get_sound_track_from_alias): Likewise.
	* src/media/mikmod/strack.c (init_sound_engine): Likewise.
	* src/media/sdl/video.c (uninit_video_low): Likewise.
	(init_video_low): Cast SDL_ALLEVENTS to Uint8.

2001-12-02  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Check for declaration of strerror.

	* lib/error.c, lib/hash.c, lib/hash.h, lib/xstrdup.c: Update from
	textutils-2.0.18.

	* lib/unlocked-io.h: New (empty) file.  Needed by lib/error.c.
	* lib/Makefile.am (libheroes_a_SOURCES): Add it.

	* src/musicfiles.c (get_sound_track_from_alias): Use hash_lookup.
	* src/vars.c (var_get_value): Likewise.

2001-11-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/media/Makefile.inc (media/ggi/keysdef.c, media/sdl/keysdef.c,
	media/allegro/keysdef.c): Allow these file to be built even if their
	source file do not exists.  This is needed by target such as TAGS.

2001-11-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am, src/media/Makefile.inc, src/sys/Makefile.inc:
	Use $(MUMBLE) instead of @MUMBLE@ for
	AC_SUBST'ed variables.
	* arch/Makefile.inc, tools/Makefile.inc, src/etc/Makefile.inc: Add
	emacs hint for Makefile mode.

	* m4/gccwarn.m4 (CF_GCC_MORE_WARNINGS): Don't include $(CFLAGS) in
	MORE_WARNINGS_CFLAGS.

2001-11-25  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/media/Makefile.inc (DISTCLEANFILES): Add media/allegro/keydef.c.
	(media/ggi/keysdef.c, media/sdl/keysdef.c,
	media/allegro/keysdef.c): Depend upon .dirstamp in each directory.

2001-11-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump version to 0.17.
	* tests/Makefile.am (EXTRA_DIST): Add $(TESTS).

2001-11-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (heroes_main): Set system-conf from the
	HEROES_SYSTEM_CONF envvar.
	* tests/Makefile.am (EXTRA_DIST): Add defs.
	* tests/defs: Set HEROES_SYSTEM_CONF to $srcdir/../src/etc/heroesrc,
	otherwise the testsuite would use the (maybe not installed)
	system configuration.

2001-11-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* ANNOUNCE, NEWS: Update for 0.17.

2001-11-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* tests/demo.test, tests/intro.test, tests/defs,
	tests/Makefile.am: New file.
	* Makefile.am (SUBDIRS): Add tests.
	* configure.ac: Output tests/Makefile.

2001-11-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/argv.h (a_check, check_what): New.
	* src/argv.c (check): New function.
	(long_options): Add --check.
	(parse_argv): Call check().
	* src/heroes.c (heroes_main): Handle check_intro.
	(main_menu): Handle check_demo.
	* src/const.c (key_or_joy_ready): Handle check_demo.

2001-11-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/sprglenz.c (compile_sprglenz): Check for src<eol before
	dereferencing *src, not after.
	* src/sprrle.c (compile_sprrle): Likewise.
	* src/sprshade.c (compile_sprshade): Likewise.
	* src/sprunish.c (compile_sprunish): Likewise.
	Suggested by Daniel.

2001-11-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/render.c (draw_vehicle_tail): Thinko, resulting in a SEGV :(
	Reported by Daniel.

2001-11-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump version to 0.16.
	* NEWS, ANNOUNCE: Update for 0.16.

2001-11-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Don't AC_SUBST(LIBOBJS), it's already done.

2001-11-17  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/heroes.texi (Machines): Add a notice for Suse 7.1 users.
	* BUGS: Update.

2001-11-17  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/doc.scm: New file (define import-head and import-tail).
	* doc/Makefile.am (EXTRA_DIST): Add doc.scm.
	(heroes_TEXINFOS, CLEANFILES, debugchn.texi, people.texi): Remove.
	(heroes.texi): Build from debugchn.tpl, people.tpl, and heroes.texi
	itself.
	* doc/heroes.texi: Merge vr and cp at the beginning (it has no effect
	on dvi output otherwise).  Add START and END markers for
	debugchn.texi and people.texi output.
	* src/debugchn.tpl, src/people.tpl: Call import-head and import-tail
	for texi output.

2001-11-16  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* lib/error.c, lib/getopt.c, lib/hash.c, m4/strerror_r.m4: Update
	from fileutils-4.1.1.

2001-11-11  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* BUGS: Suppress Benjamin Preidecker's report about Heroes 0.5
	frozen with KGI error messages.
	Christoph Egger <Christoph_Egger@t-online.de> (GGI devel)
	says it's obsolete.

2001-11-09  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* ChangeLog.01: New file.
	* Makefile.am (EXTRA_DIST): Add it.

2001-11-08  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/const.c (trail_way, square_way): Define as an array
	of a_dir8_pair.
	* src/const.h (trail_way, square_way): Likewise.
	* src/heroes.c (reinit_player, update_player): Use DIR8_PAIR.
	(grow_trail): Beautify.
	* src/lvl/lvl.h (DIR8_TAIL, DIR8_HEAD, DIR8_PAIR): New macros.
	* src/render.c (draw_trail_real, draw_vehicle_tail,
	draw_vehicle_head, draw_trail_tail): Use a_dir8_pair, REVERSE_DIR,
	and DIR8_PAIR.

	* src/heroes.c (shrink_trail): Don't redraw the trail tail
	if the trail has been erased.  This completes the fix from
	2001-10-28.

2001-10-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (update_player): Call erase_trail() before
	shrink_trail() when a player is destroyed.
	Reported by Daniel Burrows.

2001-10-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: AC_CHECK_DECLS for strnlen.

2001-10-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump version to 0.15.
	* NEWS, ANNOUNCE: Update for 0.15.

	Modernize lib/Makefile.am.

	* lib/Makefile.am (CFLAGS): Remove (useless).
	(EXTRA_DIST, libheroes_a_DEPENDENCIES): Remove (automatically
	filled by Automake).
	(noinst_HEADERS): Merge with libheroes_a_SOURCES.
	* configure.ac: AC_REPLACE_FUNC strndup.

	Avoid duplication of CFLAGS on targets using per-target CFLAGS.

	* src/Makefile.am (CFLAGS): Don't define this variable, but ...
	(AM_CFLAGS): ... define this one instead.
	(parafmt_check_CFLAGS): Remove @CFLAGS@.
	* src/media/Makefile.am (media_libhggivkm_a_CFLAGS,
	media_libhgiij_a_CFLAGS, media_libhmiks_a_CFLAGS,
	media_libhsdlvkm_a_CFLAGS, media_libhsdlj_a_CFLAGS,
	media_libhsdls_a_CFLAGS, media_libhallvkm_a_CFLAGS): Likewise.
	* src/sys/Makefile.inc (sys_libhsdlm_a_CFLAGS,
	sys_libhallm_a_CFLAGS): Likewise.

2001-10-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* BUGS: Update with input from Eero Tamminen <oak@welho.fi>.

2001-10-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* tools/autogen.sh (moreverb): Use automake --force-missing.
	Don't run autoheader if AC_CONFIG_HEADER is not called.
	Call autoconf before autoheader, so the latter can use
	the traces cached during the run of the former.

2001-10-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Rewrite the explosion code (again).  This fix some issues present
	in the old explosion handling: 1- the explosions could propagate
	to the neighboring square already activated (leading to an
	exponential growth of the number of explosions, hindering
	game-play as reported by Daniel); 2- the propagation did not occur
	at a precise time after activation (see comment in the code); 3-
	vanished explosions were not immediately removed from explo_list.

	* src/explosions.c (an_explosion_info): Remove frame_start.
	(allocate_explosions): Reset explo_time.
	(compute_explosion_state, propagate_to_neighbors_maybe,
	trigger_eplosion_at_time): New functions.
	(trigger_explosion, trigger_possible_explosion,
	update_explosions): Rewrite functions.
	* src/explosions.h (square_explo_type, trigger_explosion): Fix type.
	(EXPLOSION_SQUARE_TRIGGERED_P,
	EXPLOSION_SQUARE_TRIGGERABLE_P): New macros.

2001-10-05  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* m4/checkpkg.m4 (AC_caolan_CHECK_PACKAGE): Quote strings.
	* m4/pkgeneric.m4 (AC_adl_PKG_GENERIC): Likewise.
	* m4/w_dirent.m4 (adl_FUNC_READIR): Add missing comma.  I wonder
	how this macro could ever work.
	* m4/h-sdlmixer.m4 (heroes_CHECK_SDL_MIXER): Use $SDL_LIBS.

2001-09-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* lib/alloca.c, lib/basename.c, lib/dirname.c, lib/dirname.h,
	lib/error.c, lib/error.h, lib/getopt.c, lib/getopt1.c,
	lib/gnugetopt.h, lib/hash.c, lib/stripslash.c, m4/dos.m4,
	m4/ftruncate.m4, m4/gnu-source.m4, m4/lcmessage.m4, m4/malloc.m4,
	m4/progtest.m4, m4/realloc.m4, m4/strerror_r.m4: Update from
	textutils-2.0.15.
	* HACKING, tools/fetish-sync.sh: Add lib/dirname.c and
	lib/dirname.h.
	* lib/stripslash.h: Delete.
	* lib/Makefile.am (noinst_HEADERS): Remove lib/stripslash.h.
	* src/hedlite.c, src/relocate.c, src/userdir.c: Include
	"dirname.h" instead of "stripslash.h".

2001-09-22  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Bump to version 0.14.
	* po/fr.po: Update.

2001-09-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* ANNOUNCE: Update for 0.14
	* NEWS: Likewise.

2001-09-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* HACKING: Update help2man URL.

2001-09-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/people.def (Romuald Genevois): Update www.

2001-09-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* tools/readme.sed: Update License.
	* doc/heroes.texi (Getting Heroes): Update Metalab link, now Ibiblio.
	(Libraries): Update the LibMikMod home page.

2001-09-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Change the license from 'GPL version 2 or any later version'
	to 'GPL version 2'.

	* Makefile.am, configure.ac, arch/Makefile.inc, doc/Makefile.am,
	lib/Makefile.am, man/Makefile.am, src/Makefile.am, src/argv.c,
	src/argv.h, src/bonus.c, src/bonus.h, src/bytesex.h, src/camera.c,
	src/camera.h, src/const.c, src/const.h, src/debughash.h,
	src/debugmsg.c, src/debugmsg.h, src/endscroll.c, src/endscroll.h,
	src/errors.c, src/errors.h, src/explosions.c, src/explosions.h,
	src/extras.c, src/extras.h, src/fader.c, src/fader.h,
	src/fastmem.h, src/font.h, src/font_help.h, src/fontdata.c,
	src/fontdata.h, src/gameid.c, src/gameid.h, src/generic_list.h,
	src/hedlite.c, src/hedlite.h, src/helptext.c, src/helptext.h,
	src/hendian.c, src/hendian.h, src/heroes.c, src/heroes.h,
	src/heroeslvl.c, src/intro.c, src/intro.h, src/items.c,
	src/items.h, src/levellst.c, src/levellst.h, src/locales.c,
	src/locales.h, src/menus.c, src/menus.h, src/misc.c, src/misc.h,
	src/musicfiles.c, src/musicfiles.h, src/parafmt.c, src/parafmt.h,
	src/pcx.c, src/pcx.h, src/people.h, src/persona.c, src/persona.h,
	src/pixelize.c, src/pixelize.h, src/readmake.c, src/readmake.h,
	src/relocate.c, src/relocate.h, src/render.c, src/render.h,
	src/renderdata.c, src/renderdata.h, src/rsc_files.c,
	src/rsc_files.h, src/rsc_files_hash.h, src/savegame.c,
	src/savegame.h, src/scores.c, src/scores.h, src/scrtools.c,
	src/scrtools.h, src/sprglauto.c, src/sprglauto.h, src/sprglenz.c,
	src/sprglenz.h, src/sprite.c, src/sprite.h, src/spropaque.c,
	src/spropaque.h, src/sprprog.c, src/sprprog.h, src/sprprogwav.c,
	src/sprprogwav.h, src/sprrle.c, src/sprrle.h, src/sprshade.c,
	src/sprshade.h, src/sprtext.c, src/sprtext.h, src/sprunish.c,
	src/sprunish.h, src/sprzcol.c, src/sprzcol.h, src/structs.h,
	src/system.h, src/timer.c, src/timer.h, src/userconf.c,
	src/userconf.h, src/userdir.c, src/userdir.h, src/vars.c,
	src/vars.h, src/visuals.c, src/visuals.h, src/etc/Makefile.inc,
	src/lvl/Makefile.inc, src/lvl/de_body.c, src/lvl/de_head.c,
	src/lvl/free.c, src/lvl/in_body.c, src/lvl/load.c,
	src/lvl/loadmac.h, src/lvl/lvl.h, src/lvl/lvl_priv.h,
	src/lvl/privacc.c, src/media/Makefile.inc, src/media/joystick.h,
	src/media/keyb.c, src/media/keyb.h, src/media/keyb_low.h,
	src/media/keysdef.h, src/media/keyvalues.h, src/media/sfx.c,
	src/media/sfx.h, src/media/strack.c, src/media/strack.h,
	src/media/video.c, src/media/video.h, src/media/video_low.h,
	src/media/allegro/keyb.c, src/media/allegro/keyvalues.c
	src/media/allegro/video.c, src/media/dummy/joystick.c,
	src/media/dummy/keyb.c, src/media/dummy/keysdef.c,
	src/media/dummy/keyvalues.c, src/media/dummy/sfx.c,
	src/media/dummy/strack.c, src/media/dummy/video.c,
	src/media/ggi/keyvalues.c, src/media/ggi/video.c,
	src/media/gii/joystick.c, src/media/mikmod/sfx.c,
	src/media/mikmod/strack.c, src/media/sdl/joystick.c,
	src/media/sdl/keyb.c, src/media/sdl/keyvalues.c,
	src/media/sdl/video.c, src/media/sdl_mixer/sfx.c,
	src/media/sdl_mixer/strack.c, src/sys/Makefile.inc,
	src/sys/main.h, src/sys/allegro/main.c, src/sys/std/main.c,
	tools/Makefile.inc: Change license.
	* README: Update the license section.

2001-09-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/levellst.c (print_level_list): New function.
	* src/levellst.h (print_level_list): New function.
	* src/heroes.c (heroes_main): Call print_level_list().
	* src/argv.h (showlevels): New variable.
	* src/argv.c (showlevels): New variable.
	(list): Handle --list=levels.
	* doc/heroes.texi (Invoking heroes): Document --list=levels.

2001-09-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/argv.c (print_help): Take a 'status' argument and use it as
	exit value.
	(parse_argv): Return -1 instead of 1 when the game must quit but not
	with a non-null exit status.
	(heroes_main): Handle return values of parse_argv().

2001-09-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.ac: Rewrite the configuration report.

2001-09-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* m4/h-display.m4 (heroes_CHECK_DISPLAY_LIB): Typo preventing
	SDL_mixer to be checked for when Allegro is not used.
	Reported by Daniel Burrows <dburrows@brown.edu>.

	* m4/h-sdl.m4 (heroes_CHECK_SDL): Don't force-append sdlj and sdls
	in the user selections (so that for instance --with-sdl does still
	allow giij or miks to be used without user hints)
	* m4/h-sdlmixer.m4 (heroes_CHECK_SDL_MIXER): Don't append sdlvkm
	and sdlj for similar reason.
	* m4/h-joystick.m4 (heroes_CHECK_JOYSTICK_LIB) <with_sdl>: Add
	sdlj to the user selection.

2001-XX-XX

	Older entries belong to ChangeLog.01.

 Location: / sourceforge / heroes / download / ChangeLog (heroes 0.29c)
Hosted by SourceForge. Please, send suggestions and bug reports about Heroes or these web pages to heroes-bugs@nongnu.org. 2002-11-20 12:51 GMT