http://heroes.sourceforge.net/auto/heroes.0_7.ChangeLog.html ( Thu Dec 7 05:09:03 PST 2000 )
> sourceforge > heroes > download > ChangeLog (heroes 0.7)
 
ChangeLog for heroes 0.7
2000-11-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Bump to version 0.7.
	* NEWS: Update for 0.7.

	* man/Makefile.am (heroes.6): Depends upon configure.in to force
	a rebuild when VERSION change.

	* src/sound.h (get_decode_sound_options): Fix constness of argv0.
	* src/sound.c (get_int, decode_sound_options): Likewise.

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

	* src/heroes.c (update_player): When going out frmo a tunnel,
	set old_way to the way of the tunnel (as way is also set to).
	This avoid in try to draw oddities such as {old_way=up, way=down},
	which would otherwise result in a segfault (easy to repoduce
	by playing level 032).

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

	* src/heroes.c (play_game): Continue to update event_time
	once the game is finished so that explosions from dead players
	are updated.

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

	* src/heroes.c (update_player): In TCASH or COLORS, when the level
	is finished, mark all players whose time is null as dead.
	Otherwise only the first player would be.  Reported by Jean Delvare.

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

	* src/sfx.c (std_sfx_set): Mark sfx #1 for loading, it is needed
	by move_updown(), now called by quit_yes_no() which can be used in
	any modes. This fix the "Assertion sfx_loaded[event_handle[event]]
	failed"	bug reported by Jean Delvare.

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

	* src/menus.c (main_entries): Display "QUIT" for the exit entry.

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

	* NEWS: Update for version 0.6f.

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

	* src/menus.c (free_menu): Free title and funcs.
	(uninit_menus_sprites): Typo (resulting in unfree memory).

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

	* src/sprprog.c (free_sprprog): Also free the sprite.

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

	* src/system.h [HAVE_DMALLOC]: Define DMALLOC_FUNC_CHECK.

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

	Modified resources have been strduped: free them on exit.

	* src/rsc_files.gperf (free_modified_rsc): New.
	* src/rsc_files_hash.h (free_modified_rsc): New.
	* src/heroes.c (main): Call free_modified_rsc.

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

	* src/gfx_reader.h (graphic_reader): Fix a fence-post read.

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

	* ANNOUNCE: New file.
	* Makefile.am (EXTRA_DIST): Add ANNOUNCE.

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

	* src/render.c (draw_vehicle_head): The head of the vehicle should
	be drawn using the way of the output of a tunnel, not the input.

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

	* src/visuals.c (horizontal_zoom_wave): handle the case where
	newsize is not a multiple of four and additionnal pixels needs to
	be drawn.  This suppress an ungly vertical wave that appeared at
	the bottom right of the screen with the waving effect.

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

	* src/render.c (draw_vehicle_tail, draw_vehicle_tail): Adjust
	divisor so that d can never be 12.  This fix a bug reported by
	Jean Delvare (the patch two entries below also tried to address
	the same bug).

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

	* src/menus.c (draw_end_level_info): Also shift winner_txt.

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

	* src/render.c (draw_trail_real, draw_vehicle_tail): Use only the
	lower part of the players' positions to make sure d is never
	greater than 12 (or 10).
	* src/structs.h (hl, ehl): Use u16_t and u32_t to make bit width of
	members explicit.

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

	* src/menus.c (init_menus_sprites): Typo.

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

	* arch/VisualC/heroes.dsp: New version from Stéphane Denis
	<S.Denis@darkworks.com>.
	* src/gfx_reader.h (show_help): Do a break in the default case to
	satisfy VisualC.

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

	* src/sound.c: Remove trailing '\n' in all warning or debug messages.
	* src/scrtools.c (set_pal_with_luminance): Fix computation.

	Fix warning messages output on wrong sound options (for
	SDL_mixer).  Also use program_name whenever possible.

	* src/argv.c (print_help): Don't take argv0 as argument, use
	program_name instead.
	(parse_argv): Take from_file and from_line arguments, build
	argv[0] from them.  Use from_file when calling
	decode_sound_options.
	* src/argv.h (parse_argv): Adjust accordingly.
	* src/debugmsg.h (program_name): Export.
	* src/heroes.c (main): Adapt calls to read_userconf and
	parse_argv.
	* src/userconf.c (read_userconf): Don't take argv0 as argument
	and don't pass it to parse_argv.
	* src/userconf.h (read_userconf): Adjust accordingly.

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

	* configure.in: Bump version to 0.6f.

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

	* NEWS: Mention the new icons.

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

	New icons from Jean Delvare <delvare@ensicaen.ismra.fr>.

	* misc/heroes.xpm: Delete.
	* misc/heroes-1.xpm: New file.
	* misc/heroes-2.xpm: New file.
	* misc/heroes-3.xpm: New file.
	* misc/heroes-4.xpm: New file.
	* misc/heroes-5.xpm: New file.
	* misc/heroes-6.xpm: New file.
	* misc/heroes-7.xpm: New file.
	* misc/heroes-8.xpm: New file.
	* Makefile.am (EXTRA_DIST): Adjust accordingly.

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

	* src/sound.c (sound_initialized, sound_track_loaded,
	sound_track_playing): Declare only if (HAVE_LIBSDL_MIXER ||
	HAVE_LIBMIKMOD).

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

	* NEWS: Update.
	* arch/VisualC/heroes.dsp: Remove font_deck.h and font_menu.h.

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

	* arch/VisualC/config.h: Blind update.
	* arch/VisualC/heroes.dsp: Likewise.

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

	* doc/heroes.texi (Machines): New section.
	* tools/readme.sed: List the Machines section in the summary.
	* TODO: Update.

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

	New sprite kind, used to draw the "Get this bonus" arrows.

	* src/sprunish.c: New.
	* src/sprunish.h: New.
	* src/sprite.h (sprite_kind): Add S_RLE_UNIC_SHARE.
	(sprite_rle_unic_shade): New.
	(sprite_s): Add the unish member.
	* src/sprite.c (free_sprite): Handle the S_RLE_UNIC_SHARE case.
	* src/Makefile.am (heroes_SOURCES): Add sprunish.c, and sprunish.h.
	* src/render.c (draw_level): Call draw_sprunish_custom.
	* src/items (init_items): Build catch_this using compile_sprunish.

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

	* src/sprprog.c (draw_sprprog_clipped_left,
	draw_sprprog_clipped_right): New.
	* src/sprprog.h (draw_sprprog_clipped_left,
	draw_sprprog_clipped_right): New.
	* src/menus.c (scores_menu): Use draw_sprprog_clipped_left and
	draw_sprprog_clipped_right.

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

	* src/const.h (xbuf): Set to 512.
	* src/const.c (xbuf, ybuf, sbuf, NOGLENZPLR, NOGLENZRED, maxq,
	lemmings_per_players, lemmings_total): Remove, since they are
	defined in const.h.
	* src/visuals.c (vertical_zoom_wave): Use xbuf.
	* src/render.c (copy_square_transp): Use xbuf.

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

	* src/menus.c (jukebox_menu): Rename sinl as sh to suppress a
	warning.
	* src/render.c (draw_level): Adapt to remove the sinl local variable.

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

	* src/const.c (temppal, pal): Remove.
	* src/const.h (temppal, pal): Remove.
	* src/heroes.c (play_demo): Don't set pal.global.
	* src/intro.c (play_intro): Declare pal as local.

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

	* src/sprtext.c (compile_sprtext): Qualify maxwidth as unused to
	suppress a warning.

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

	* src/sprglenz.c (draw_sprglenz_custom): Rename the glenz argument
	as glenz_line to suppress a warning.
	* src/sprglenz.h (draw_sprglenz_custom): Likewise.

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

	* src/const.c (icons_img, jukebox_img): Remove.
	* src/const.h (icons_img, jukebox_img): Remove.
	* src/heroes.c (main): Don't handle icons_img and jukebox_img here ...
	* src/menus.c (init_menus_sprites): ... but do it there.

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

	* src/const.c (trailimg): Remove.
	* src/const.h (trailimg): Remove.
	* src/heroes.c (main): Don't handle trailimg here ...
	* src/itemc.c (init_items): ... but do it there.

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

	* src/bonus.c (init_bonuses): Free bonus_b_img and bonus_a_img
	once the sprite have been generated.
	(uninit_bonuses): Don't free bonus_b_img and bonus_a_img anymore.

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

	* m4/ac_adl_gcc_optim.m4: Don't erase CFLAGS, append to it.

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

	* src/gfx_reader.h (show_help, graphic_reader): Don't cast a
	pointer to an int.  Heroes seems to run fine on
	alphaev56-dec-osf4.0d, now.  Great!

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

	* src/visuals.c (horizontal_zoom_wave, horizontal_zoom_flip):
	Simplify.  Supress GETWORD calls.  As a side effect, suppress
	run-time alignment warnings on alphaev56-dec-osf4.0d.

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

	* src/bonus.c (show_txt_bonus): Bug fix, display the text
	for the given player, not always the first player.

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

	Get rid of draw.c and draw.h, hurrah!

	* src/draw.c (aff_buffer): Move to ...
	* src/scrtools.c (aff_buffer): ... here.
	* src/draw.h (aff_buffer): Move to ...
	* src/scrtools.h (aff_buffer): ... here.

	* src/draw.c: Delete.
	* src/draw.h: Delete.
	* src/Makefile.am (heroes_SOURCES): Remove draw.c and draw.h.
	* src/bonus.c: Don't include draw.h.
	* src/heroes.c: Likewise.
	* src/menus.c: Likewise.
	* src/render.c: Likewise.
	* src/sprprogwav.h: Likewise.

	* src/menus.c (player_logo): Don't keep it static.
	* src/menus.h (player_logo): Export.
	* src/render.c (draw_logo_info): Use player_logo.

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

	Don't support the use_glenz option any longer.

	* src/menus.c (init_menus_sprites): Remove the "GLENZ" options
	from screen_menu_txt, and recenter the other lines on the screen.
	(screen_menu): Remove handling of use_glenz, relayout every thing.
	* src/options.c (reinit_options): Don't initialize opt.use_glenz.
	* src/options.h (options_t): Rename use_glenz as _obsolete.
	* src/render,c (copy_lemming_transp, copy_dead_lemming_transp):
	Remove use_glenz handling.

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

	* src/menus.c (deck_digits): New.
	(init_menus_sprites, uninit_menus_sprites): (Un)initialize it.
	(jukebox_draw): Adapt to use it.

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

	Add a new sprite type: S_OPAQUE.

	* src/spropaque.c: New file.
	* src/spropaque.h: New file.
	* src/Makefile.am (heroes_SOURCES): Add spropaque.c and spropaque.h.
	* src/sprite.h (sprite_kind): Add S_OPAQUE.
	(sprite_opaque_s): New.
	(sprite_s): Add member opaq.
	* src/sprite.c (free_sprite): Handle the S_OPAQUE case.

	Use this new kind of sprite to replace copy_rect_transp_* calls.

	* src/menus.c (ctrl_ico, autopilot_ico, music_ico, sfx_ico,
	radar_ico, infos_ico, inertia_ico, luminance_ico, player_logo,
	player_ico, speed_ico): New.
	(init_menus_sprites, uninit_menus_sprites): (Un)initialize them.
	(control_menu, sound_menu, screen_menu, game_menu,
	draw_end_level_info, draw_round_info): Adapt to use them.

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

	* src/render.c (draw_logo_info): Adapt to use red_cross.
	* src/draw.c (copy_rect_transp_red): Remove.
	* src/draw.h (copy_rect_transp_red): Remove.
	* src/items.c (red_cross): New.
	(init_items, uninit_items): Handle red_cross.
	* src/items.h (red_cross): New.

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

	* src/system.h (INT_TO_PTR): Fix.
	* src/render.c (copy_tile): Fix constness.
	(draw_trail_real): Remove useless local variable.

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

	* src/const.c (camera_x, camera_y, corner_x, corner_y, corner_dx,
	corner_dy, inert_x, inert_y): Declare as int (not long). Change
	signedness.
	* src/const.h: Likewise.
	* src/heroes.c (compute_corner): Suppress useless casts.  Disable
	inertia when the framerate does not allow it.

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

	Add a new kind of sprite (S_RLE_GLENZ) and use it to draw the
	trails.

	* src/sprglenz.c: New file.
	* src/sprglenz.h: New file.
	* src/Makefile.am (heroes_SOURCES): Add sprglenz.c and sprglenz.h.
	* src/sprite.h (sprite_kind): Add S_RLE_GLENZ.
	(sprite_rle_glenz_s): New.
	(sprite_s): Add member glenz.
	* src/sprite.c (free_sprite): Add the S_RLE_GLENZ case.
	* src/const.c (trail): Remove.
	* src/const.h (trail): Remove.
	* src/heroes.c (main): Do not initialize trail any more.
	* src/items.c (trails, trail_row): New.
	(init_items, uninit_items): (Un)initialize trails.
	* src/items.h (trails): New.
	* src/render.c (draw_trail_real, draw_vehicle_tail): Adapt to
	use trails.

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

	* src/visuals.c (horizontal_zoom_flip): Use PTR_TO_INT.

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

	* src/system.h (PTR_TO_INT, INT_TO_PTR): New.
	* src/visuals.c (horizontal_zoom_wave): Use PTR_TO_INT.

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

	* src/render.c (copy_tile): Don't cast pointer to int.
	Use u32_t where relevant.

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

	* src/sound.h [!HAVE_LIBSDL_MIXER && !HAVE_LIBMIKMOD]
	(set_volume, halve_volume, init_sound_engine,
	uninit_sound_engine, unload_soundtrack, play_soundtrack,
	decode_sound_options, load_soundtrack_from_alias,
	load_next_soundtrack, load_prev_soundtrack): Define as empty
	macros.
	* src/sound.c [!HAVE_LIBSDL_MIXER && !HAVE_LIBMIKMOD]
	(set_volume, halve_volume, init_sound_engine,
	uninit_sound_engine, unload_soundtrack, play_soundtrack,
	decode_sound_options, load_soundtrack_from_alias,
	load_next_soundtrack, load_prev_soundtrack): Don't define.

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

	* configure.in: Work around a bug in the realloc test on Alpha.

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

	Draw "Take this bonus" using a S_RLE_SHADE sprite.  This has
	two side effects: the yellow color is not blinking any more,
	a text printed on the rightmost tile can wrap on the left of
	the screen (this will disappear when xbuf is widened).

	* src/items.c (catch_this): New.
	(init_items, uninit_items): Use catch_this.
	* src/items.h (catch_this): New.
	* src/render.c (draw_level): Use catch_this and simplify the loops.

	Remove useless functions.

	* src/draw.c (copy_rect_transp_8, draw_demo_stick): Remove.
	(aff_buffer): Don't call draw_demo_stick.
	* src/draw.h (copy_rect_transp_8, draw_demo_stick): Remove.
	* src/render.c (display_buffer_tmp1, display_buffer_moving,
	display_two_buffers_moving, display_two_buffers_moving_and_clear):
	Remove.

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

	* src/draw.c (copy_rect_transp): Remove.
	* src/draw.h (copy_rect_transp): Remove.
	* src/menus.c (lemming): New.
	(init_menus_sprites, uninit_menus_sprites): Handle lemming.
	(jukebox_draw): Use lemming.

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

	* src/menus.c (vehicles_spr): New.
	(init_menus_sprites, uninit_menus_sprites): Handle vehicles_spr.
	(draw_end_level_info, draw_round_info): Use it.

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

	* src/bonus.c (txt_bonus): Use sprite_t and qualify as static.
	(set_txt_bonus): Compile the bonus text as a sprite.
	(show_txt_bonus): Use DRAW_SPRITE.  Change prototype and take
	a destination argument.
	* src/bonus.h (txt_bonus): Remove.
	(show_txt_bonus): Change prototype and take a destination argument.
	* src/fontdata.c (bonus_font, initialize_bonus_font): New.
	(init_fonts): Call initialize_bonus_font.
	(uninit_fonts): Free bonus_font.
	* src/fontdata.h (bonus_font): New.
	* src/heroes.c (output_screen): Adapt call to show_txt_bonus.
	* src/sprtext.c (compile_bonus_text): New.
	* src/sprtext.h (compile_bonus_text): New.
	* src/draw.c (draw_text_bonus): Remove.
	* src/draw.h (draw_text_bonus): Remove.

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

	* src/draw.c (text_waving_step, text_waving_htimer,
	init_text_waving_step, uninit_text_waving_step,
	update_text_waving_step): Move to ...
	* src/sprprogwav.c (text_waving_step, text_waving_htimer,
	init_text_waving_step, uninit_text_waving_step,
	update_text_waving_step): ... here.
	* src/draw.h (text_waving_step,	init_text_waving_step,
	uninit_text_waving_step, update_text_waving_step): Move to ...
	* src/sprprogwav.h (text_waving_step, init_text_waving_step,
	uninit_text_waving_step, update_text_waving_step): ... here.
	* src/heroes.c: Include sprprogwav.h.

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

	* src/font_deck.h: Delete.
	* src/font_menu.h: Delete.
	* src/Makefile.am (heroes_SOURCES): Remove font_deck.h and
	font_menu.h.
	* src/draw.c: Don't include them anymore.

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

	Ensure that the lemming is draw on top of the deck (not behind),
	by moving the drawing code into jukebox_draw.  As a side effect
	this also draws the lemmings in the pause screen.

	* src/draw.c (jukebox_menu): Move the lemming_htimer definition ...
	(lemming_htimer): ... here (global).
	(jukebox_menu): Move the lemming drawing code to ...
	(jukebox_draw): ... here.
	(init_menu_sprites,uninit_menus_sprites): Take care of lemming_htimer.

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

	Adapt the deck_text font to the new sprtext functions.

	* src/draw.c (deck_text_conv, draw_deck_text): Remove.
	* src/draw.h (draw_deck_text): Remove.
	* src/fontdata.c (initialize_deck_font): New.
	(init_font): Call initialize_deck_font.
	* src/menus.c (jukebox_draw): Adapt to use the new sprite drawing
	functions instead of draw_deck_text.
	* src/sound.c (soundtrack_author, soundtrack_title,
	soundtrack_author_sprite, soundtrack_title_sprite): New.
	(sound_initialized, sound_track_loaded, sound_track_playing): Qualify
	as static.
	(unload_soundtrack, load-and_setup_sound_track): Free
	soundtrack_title_sprite and soundtrack_author_sprite.
	* src/sound.h (soundtrack_author, soundtrack_title): Qualify as extern.
	(soundtrack_title_sprite, soundtrack_author_sprite): New.
	* src/sprtext.c (compile_deck_text): New.
	* src/sprtext.h (compile_deck_text): New.

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

	* configure.in: Set version to 0.6e.

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

	* NEWS: Update.
	* tools/Makefile.am (EXTRA_DIST): Rename readme.sh as readme.sed.
	* src/Makefile.am (EXTRA_DIST): Add debughash.gperf.
	* arch/VisualC/heroes.dsp: Blind update.

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

	* src/const.c (clock_anim_offset): Remove.
	* src/const.h (clock_anim_offset): Remove.
	* src/items.c (small_dollar, clocks, pyramids): New.
	(init_items, uninit_items): Initialize them.
	* src/items.h (small_dollar, clocks, pyramids,
	NBR_CLOCK_FRAMES, NBR_PYRAMIDS): New.
	* src/render.c (draw_color): Rewrite using the above sprite,
	but the red cross is still drawn manually.
	(draw_cash): Remove.
	(draw_level): Adapt to draw clocks and dollars using DRAW_SPRITE.

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

	* src/heroes.c (play_menu): Reverse M_DEATHM and M_KILLEM selection
	since their name are swaped in draw_play_menu.

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

	* src/items.c: New file.
	* src/items.h: New file.
	* src/Makefile.am: Add them.
	* src/heroes.c (main): Call init_items and uninit_item.
	* src/render.c (draw_dollar): Remove.
	(draw_level): Use the big_dollar sprite (compiled by items.c)
	instead of calling draw_dollar.

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

	Generalize copy_rect_transp_shadow as a new kind of sprite.
	Use it to draw the martians.

	* src/sprshade.c: New file.
	* src/sprshade.h: New file.
	* src/Makefile.am (heroes_SOURCES): Add them.
	* src/draw.c (copy_rect_transp_shadow): Remove.
	* src/draw.h (copy_rect_transp_shadow, copy_32x32_transp_z): Remove.
	* src/sprite.c (free_sprite): Handle S_RLE_SHADE.
	* src/sprite.h (sprite_kind): Add S_RLE_SHADE.
	(sprite_rle_s): Define members in ...
	(SPRITE_RLE_MEMBERS): ... this macro.
	(sprite_rle_shade_s): New.
	(sprite_s): Add shade member.

	* src/menu.c (info_martian): New.
	(init_menus_sprites, uninit_explosions): Handle it.
	(draw_end_level_info): Use it.

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

	Declare explosion sprites to explosion.{c,h} using new sprite
	functions.  Rename nbrexplo1 as NBR_EXPLOSION_FRAMES, and
	fst_explo_list and snd_explo_list are now compiled as sprite_t*
	into explosions[0] and explosions[1].

	* src/explosions.c: New file.
	* src/explosions.h: New file.
	* src/sprzcol.c: New file.
	* src/sprzcol.h: New file.
	* src/Makefile.am (heroes_SOURCES): Add these four files.
	* src/sprite.h (sprite_kind): Add S_RLE_ZCOL.
	* src/sprite.c (free_sprite): Handle S_RLE_ZCOL.
	* src/draw.c (copy_32x32_transp_z): Remove (now obsoleted by sprzcol).

	* src/const.c (nfrexplo1,fst_explo_list,snd_explo_list): Remove.
	* src/const.h (nfrexplo1,fst_explo_list,snd_explo_list): Remove.
	* src/heroes.c (load_level, 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_goto_target_inline, ia_goto_bonus_inline, ia_goto_lemming_inline,
	ia_goto_color_inline, ia_goto_cash_inline, update_player): Adapt
	to new explosion definitions.
	(main): Call init_explosions and uninit_explosions.
	* src/render.c (draw_level): Adapt to new explosions.

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

	* src/draw.c (JUSTIF_CALC, Id, draw_text, draw_text_clipped_left,
	draw_text_clipped_right, draw_text_waving, draw_text_array): Remove.
	* src/draw.h (draw_text, draw_text_clipped_left,
	draw_text_clipped_right, draw_text_waving, draw_text_array): Remove.

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

	* src/heroes.c (scores_menu): Move to ...
	* src/menus.c (scores_menu): ... here.

	* src/menus.c (higher_scores_txt): New.
	(init_menus_sprites, uninit_menus_sprites): Handle higher_scores_txt.
	(scores_menu): Adapt to use the new drawing functions. This needs
	additional work, either to clip the text or enlarge xbuf.
	* src/menus.h (scores_menu): Export.

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

	* src/heroes.c (draw_end_level_info, draw_round_info): Move to ...
	* src/menus.c (draw_end_level_info, draw_round_info): ... here.

	* src/heroes.c (play_game): Call update_text_wavinf_step
	when drawing end level and round info.
	* src/heroes.h (rounds): Export.
	* src/menus.c (info_mode_quest_txt, info_mode_deathm_txt,
	info_mode_killem_txt, info_mode_tcash_txt, info_mode_color_txt,
	info_mode_next_txt, info_mode_save_txt, info_mode_return_txt,
	info_round_txt): New sprites.
	(init_menus_sprites, uninit_menus_sprites): Handle them.
	(game_menu): Rename local variable rounds as rounds_txt to suppress
	a warning.
	(draw_end_level_info, draw_round_info): Adapt to use new
	text drawing functions.
	* src/menus.h (draw_round_info, draw_end_level_info): Export.

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

	* src/menu.c (display_menu): Blit conditionally (add a 3rd arg)
	(exec_menu, draw_main_menu): Call display_menu with the right
	blitting option.

	* src/heroes.c (main_menu): Cosmetic change.
	* src/visual.c (corner_buffer_end, corner_buffer): Strip trailing
	spaces.

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

	* src/heroes.c (enter_your_name): Move ...
	* src/menus.c (enter_your_name): ... here.  Adapt to use the new
	text drawing functions.
	(enter_your_name_txt): New.
	(init_menus_sprites, uninit_menus_sprites): Handle enter_your_name_txt.
	* src/menus.h (enter_your_name_txt): Export.

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

	Kludgy bug fix: for some unknown reason, read_timer
	can return negative values.  This is not expected and
	leads to very large (MAX_INT wide) loops in the code.

	* src/timer.c (read_htimer): Ensure that res cannot be negative
	(simply return 0 if this happens).

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

	* src/menus.c (load_select_txt, save_select_txt, savrec_name): New.
	(init_menus_sprites, uninit_menus_sprites): handle the above sprites.
	(draw_saved_games_info): Use them. Rename and retype 3rd arg.
	* src/menus.h (draw_saved_games_info): Change 3rd arg.
	(saverec_name): Export.
	* src/heroes.c (play_menu, play_game): Adapt calls to
	draw_saved_games_info.
	(play_game): Clear saverec_name[l] when needed.

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

	* src/const.h (two_players): Declare as boolean.
	* src/const.c (two_players): Likewise.
	* src/heroes.c: Adapt all most refences to two_players.

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

	* src/menu.c (edit_first_menu_txt, edit_first_new_txt,
	edit_first_load_txt): New.
	(init_menus_sprites, uninit_menus_sprites): Handle the above new
	sprites.
	(editor_first_menu): Use them.  Simplify keys handling.

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

	* src/argv.h (nosfx, joyoff, loadulevel, directmenu, swapside,
	mono, bits8, hqmix, nosound, even_lines): Define as booleans.
	* src.argv.c (nosfx, joyoff, loadulevel, directmenu, swapside,
	mono, bits8, hqmix, nosound, even_lines): Likewise.
	(long_options): Fix no-joystick lines (useless 3rd arg).
	(parse_argv): Use true and false for boolean variables.

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

	* src/menu.c (playmenu_title_txt, playmenu_players_txt,
	playmenu_goback_txt, playmenu_load_txt, gamemode_txt): New.
	(init_menus_sprites, uninit_menus_sprites): Handle the above new
	sprites.
	(draw_play_menu): Use them.

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

	* src/menu.c (quitgame_yes_txt, quitgame_no_txt): Rename as ...
	(quit_yes_txt, quit_no_txt): ... this.
	(quitheroes_menu_txt): New.
	(init_menus_sprites, uninit_menus_sprites): Handle the above new
	sprites.
	(draw_quit_menu): Use them.
	(quit_yes_no): Exchange yes and no.  Use move_updown.

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

	* src/menus.c (edit_sel_txt): New.
	(init_menus_sprites): Create edit_sel_txt.
	(uninit_menus_sprites): Free it.
	(editor_selector): Adapt to use edit_sel_txt and the new sprite
	drawing functions.  Remove lname.

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

	* src/menu.c (entry_func_t, menu_entry_t, menu_t, options_entries,
	main_entries, main_menu_data, option_menu_data, compile_menu,
	display_menu, exec_menu, free_menu): New.
	(game_menu, screen_menu, sound_menu, control_menu,
	keyboard_menu, extra_menu): Forward declare.
	(init_menus_sprites): Initialize option_menu_data and main_menu_data.
	(uninit_menus_sprites): Free them.
	(extra_menu): Return if no extra levels are available (this
	used ot be checked in options_menu).
	(options_menu): Rewrite using exec_menu.
	(draw_main_menu): Rewrite using display_menu.

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

	* src/draw.h (draw_text_320, draw_text_waving_320,
	draw_text_array_320,copy_rect_2_320, copy_rect_4_320): Remove (now
	useless).
	* src/draw.c (draw_text_320, draw_text_waving_320,
	draw_text_array_320,copy_rect_2_320, copy_rect_4_320): Remove (now
	useless): Likewise.

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

	Install files in right directories.

	* src/etc/Makefile.am (xdir): Install in $(pkgdatadir).
	* src/txt_cfg/Makefile.am (zdir): Likewise.

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

	* src/hedlite.c (hmain): convert tile_set_name to lowercase (this
	allow to load existing levels).

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

	Adapt editor_menu to xbuf-wide buffer and new sprite functions.

	* src/menus.c (bigarr_cursor, sqr_cursor, small_arrows,
	ed_new_level_txt, ed_existing_level_txt, ed_name_txt,
	ed_x_wrap_txt, ed_y_wrap_txt, ed_x_size_txt, ed_y_size_txt,
	ed_edit_txt): New.
	(init_menus_sprites): Compile the above sprites.
	(uninit_menus_sprites): Free them.
	(editor_menu): Adapt to use a xbuf wide buffers, and the new
	sprite routines.  Also change the color palette when the
	tileset preview change (a bug introduced with fader on
	2000-09-27).
	* src/scrtools.c (copy_image_to_scr_area): New.
	* src/scrtools.h (copy_image_to_scr_area): New.

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

	* src/heroes.c (play_game): Do not call draw_text_320 to
	display the level name, use the sprtext routines instead.
	Bugfix: reset update_htimer after the sleep, the we see the
	moving buffers.
	* src/scrtools.c (clear_src_area): New.
	* src/scrtools.h (clear_src_area): New.

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

	Cleanup quit_yes_no.

	* src/heroes.c (quit_yes_no): Move to ...
	* src/menus.c (quit_yes_no): ... here.  Rewrite using the new sprite
	routines, and using xbuf wide buffers.
	(quitgame_menu_txt, quitgame_yes_txt, quitgame_no_txt): New.
	(init_menus_sprites): Initialize the three above variables.
	(uninit_menus_sprites): Free them.
	* src/menus.h (quit_yes_no): Export.

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

	Cleanup pause_menu.

	* src/heroes.h (event_htimer, update_htimer, enable_blit): Export.
	* src/heroes.c (pause_menu): Move to ...
	* src/menus.c (pause_menu): ... here. Rewrite using the new sprite
	routines, and using xbuf wide buffers.
	(pause_menu_txt): New.
	(init_menus_sprites): Initialize pause_menu_txt.
	(uninit_menus_sprites): Free it.
	(jukebox_draw, jukebox_keys): Tag static.
	* src/menus.h (jukebox_draw, jukebox_keys): Remove.
	(pause_menu): New.
	* src/scrtools.c (backup_screen, shade_scr_area, copy_scr_area): New.
	* src/scrtools.h (backup_screen, shade_scr_area, copy_scr_area): New.

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

	Fix A_LOOP tiles (which were not animated anymore...)

	* src/render.c (draw_level): Parenthesize tile source computation.

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

	Rewrite parts of jukebox_menu so that it use the new sprites
	drawing routines.  Factor code for pause_menu.

	* src/menus.c (credit_menu_txt, jukebox_frame, jukebox_back,
	jukebox_forw, jukebox_quit): New sprites.
	(init_menus_sprites): Create them.
	(uninit_menus_sprites): Free them.
	(jukebox_draw): New.
	(jukebox_keys): New.
	(jukebox_menu): Use the above sprites.  Move some code to
	jukebox_keys and jukebox_draw so that pause_menu can reuse it.
	* src/heroes.c (pause_menu): Adapt to call jukebox_draw and
	jukebox_keys.
	* src/menus.h (jukebox_draw, jukebox_keys): Declare.

	Fixes.

	* src/sprprogwav.c (end_sprprogwav): Overwrite the drawing function.
	* src/sprrle.c (compile_sprrle): Ensure to not overflow to
	tranparant and opaque pixel counters.
	* src/gfx_reader.h (show_help): Don't zero keys not handled in the
	switch.

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

	Use get_sound_track_from_rank to cycle into the sound track list.
	The jukebox menu do not require a hardcoded list of sound track
	aliases anymore.  Move the jukebox_menu to menu.c.

	* doc/heroes.texi (heroesrc): Say it is allowed to define new
	sound track aliases.
	* src/heroes.h (sound_track_htimer): Export.
	* src/heroes.c (soundtrack_list, soundtrack_current_nbr): Remove.
	(load_level): Don't setup soundtrack_list and soundtrack_current_nbr
	anymore.
	(jukebox_menu): Move to ...
	* src/menu.c (jukebox_menu): ... here.  Adapt to use
	load_next_soundtrack and load_prev_soundtrack.
	* src/heroes.c (pause_menu): Adapt likewise.
	* src/musicfiles.c (get_sound_track_from_rank): Wrap to rank
	to fit in the number of sound tracks.
	* src/sound.c [HAVE_LIBMIKMOD, HAVE_LIBSDL_MIXER]
	(load_soundtrack_from_alias): Move ...
	[HAVE_LIBMIKMOD||HAVE_LIBSDL_MIXER]
	(load_soundtrack_from_alias): ... here (i.e. define only once).
	[HAVE_LIBMIKMOD, HAVE_LIBSDL_MIXER] (load_soundtrack): Tag static.
	[HAVE_LIBSDL_MIXER] (music): Rename as ...
	[HAVE_LIBSDL_MIXER] (module): ... this.  Adjust all references.
	[HAVE_LIBMIKMOD||HAVE_LIBSDL_MIXER] (last_rank,
	load_and_setup_sound_track, load_next_soundtrack,
	load_prev_soundtrack): New.
	[HAVE_LIBMIKMOD||HAVE_LIBSDL_MIXER] (load_soundtrack_from_alias): Use
	(load_and_setup_sound_track).
	* src/sound.h (load_soundtrack): Remove.
	(load_next_soundtrack, load_prev_soundtrack): New.

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

	Keep the sound tracks in a sorted array, in addition
	to the hash (needed for the jukebox menu, see next patch).

	* src/musicfiles.h (sound_track_t): Add the rank member.
	(get_sound_track_from_rank): New.
	(freeze_sound_track_list): New.
	* src/musicfiles.c (st_array, n_st): New.
	(st_cmp): Rename as ...
	(st_equ): ... this.
	(st_cmp): New.
	(st_cons): Initialize rank.
	(init_sound_track_list): Adapt to use st_equ.
	(print_sound_track_list): Adapt to use st_array.
	(freeze_sound_track_list): New.
	(get_sound_track_from_rank): New.
	* src/heroes.c (main): Call freeze_sound_track_list.

	* HASKING: README is no longer updated manually.

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

	* tools/Makefile.am (EXTRA_DIST): Add readme.sh.

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

	* doc/heroes.texi: Ispell it.

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

	Generate README automatically from the Texinfo manual.

	* tools/readme.sed: New file.
	* Makefile.am (README): New.
	* HACKING: Update.

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

	* TODO: Update.
	* BUGS: Update.

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

	* m4/gccwarn.m4: New file (adapted from a2ps).
	* m4/Makefile.am (EXTRA_DIST): Add gccwarn.m4.
	* configure.in: Use ad_GCC_WARNINGS.
	* doc/heroes.texi (configure options): Document --enable-warnings.
	* m4/ac_adl_gcc_optim.m4 (ADL_GCC_WARNINGS): Rename as...
	(ADL_GCC_OPTIM): ... this (of course).

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

	Fix some more warnings.

	* src/heroes.c (draw_end_level_info): Remove j.
	* src/gfx_reader.h (show_help): Add default case to switch.

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

	* configure.in: Add check that ought to be in since 2000-10-31.

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

	* lib/hash.c (hash_delete): Merge fix found in textutil 2.0g.

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

	Rewrite musicfile.c: use a hash instead of a list to hold the
	sound-track aliases.  Dump the hash content on --list=sound-tracks.

	* configure.in: Check for stdlib.h and stdbool.h.  Check
	for malloc, calloc, realloc, and free definitions.
	* doc/heroes.texi: (Options): Document --list=sound-tracks.
	(heroesrc): Mention --list=sound-tracks.
	* lib/hash.c: New file (from textutils, with fix).
	* lib/hash.h: New file.
	* lib/Makefile.am (noinst_HEADERS): Add hash.h.
	(libheroes_a_SOURCES): Add hash.c.
	* src/argv.c (list): Handle sound-tracks.
	(print_help): Mention sound-tracks.
	* src/musicfiles.c (sound_track_list, sound_track_cons,
	sound_track_delete, add_sound_track): Remove.
	(st_hash, st_cmp, st_hasher, st_free, st_cons,
	print_sound_track_list, print_sound_track_list_stat) New.
	(add_sound_track_cons, get_sound_track_from_alias,
	init_sound_track_list): Rewrite to use the hash.
	(init_sound_track_list): Return void.
	* src/musicfiles.h (sound_track_cons, sound_track_delete,
	add_sound_track): Remove.
	(init_sound_track_list): Return void.
	(print_sound_track_list, print_sound_track_list): New
	* src/system.h: Define bool or include stdbool.h.

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

	Rewrite the sprite interface, cleaner and clever.
	Remove the RLE-program stuff, install the brand new system.

	* src/rleprog.c: Delete file.
	* src/rleprog.h: Delete file.
	* src/rletext.c: Delete file.
	* src/rletext.h: Delete file.
	* src/sprite.c: New file.
	* src/sprite.h: New file.
	* src/sprrle.c: New file (bits from src/rleprog.c)
	* src/sprrle.h: New file.
	* src/sprprog.c: New file.
	* src/sprprog.h: New file.
	* src/sprprogwav.c: New file.
	* src/sprprogwav.h: New file.
	* src/sprtext.c: New file (mostly from src/rletext.c)
	* src/sprtext.h: New file (mostly from src/rletext.h)
	* src/Makefile.in (source_HEROES): Report the above changes.
	* src/bonus.c (bonus_rle,init_bonuses,uninit_bonuses): Adapt
	to use the new sprite interface.
	* src/heroes.c (draw_end_level_info): Use waving_arrows.
	* src/menus.c (left_arrow, right_arrow, checked_box, cursor_bg,
	cursor_fg, horizontal_rule, control_menu_txt, sound_menu_txt,
	music_vol_txt, sfx_vol_txt, screen_menu_txt, game_menu_txt,
	game_rounds_txt, keyboard_menu_txt, keyboard_keys_txt,
	extra_menu_txt, extra_modes_txt, extra_combine_txt): Use sprite_t,
	declare them all static.
	(init_menus_sprites): Adapt to use compile_sprrle, and the
	*sprprog functions.
	(uninit_menus_sprites): Adapt to use FREE_SPRITE0.
	(arrows, waving_arrows, chkbox, cursor, hrule, control_menu,
	keyboard_menu, sound_menu, screen_menu, game_menu, extra_menu,
	draw_saved_games_info): Use DRAW_SPRITE.
	(waving_arrows): Export.
	* src/menus.h (left_arrow,right_arrow): Remove.
	(waving_arrows): Declare.
	* src/render.c (draw_level): Use DRAW_SPRITE.
	* src/renderdata.c (tile_sprites): Rename as ...
	(tile_transp): ... this.  Use sprite_t.  Adjust all references.
	(get_tile_sprite): Use compile_sprrle.
	* src/renderdata.h (fg_data_t): Use sprite_t for members.

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

	Draw superposed sprites using RLE-programs.

	* src/renderdata.c (init_tile_sprites,uninit_tile_sprites,
	get_tile_sprite,tile_set_size,tile_sprites): New.
	(uninit_render_data): Call uninit_tile_sprites.  Use XFREE0.
	(init_render_data): Call init_tile_sprites.
	(init_render_data): Adapt to use get_tile_sprite.
	* src/renderdata.h (fg_data_t): Store sprite as a rleprog_t.
	* src/render.c (copy_tile_transp): Remove.
	(draw_level): Adapt to display sprite as rleprog_t.

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

	* configure.in: Adapt AC_INIT to autoconf 2.49a.

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

	Draw bonuses using RLE-programs.

	* src/bonus.c (bonus_a_img, bonus_b_img): Make them static.
	(bonus_rle): New.
	(init_bonuses, uninit_bonus): Take care of bonus_rle.
	(add_bonus): Adapt to put a rleprog_t in fg_data[pos].bonus.
	* src/bonus.h (bonus_a_img, bonus_b_img): Remove.
	* src/render.c (draw_level): Adapt to display bonuses as rleprog.
	* src/renderdata.h (fg_data_t): Use rleprog_t for bonus.

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

	* doc/heroes.texi (Options): Describe --list=debug.
	(Environment): Mention --list=debug.
	* src/Makefile.am (heroes_SOURCES): Add debughash.c and debughash.h.
	(debughash.c): New.
	* src/argv.c (list): Recognize debug.
	(print_help): Update --list description.  Mention --list in
	--verbose and --driver description.
	* src/debughash.gperf: New file.
	* src/debughash.h: New file.
	* src/debugmsg.c (dmsg_parse_string): Adapt to use
	get_channel_number.  Rename opt to option to avoid a warning.
	* src/debugmsg.h (dmsg_parse_string): Rename opt to option.
	(debug_level): Revamp.
	* src/rsc_files.gperf: Add missing license header.

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

	* src/argv.c (print_help): Rewrite more cleanly.

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

	Use xmalloc-based macros or functions.  As a consequence
	do not perform error checking on malloc return anymore.

	* lib/xstrdup.c: New file.
	* lib/Makefile.am (linheroes_a_SOURCES): Add xstrdup.c.
	* src/system.h (XFREE0, XCALLOC_ARRAY, XMALLOC_ARRAY,
	XSALLOC_ARRAY, XREALLOC_ARRAY, XMALLOC_VAR): New.
	* src/bonus.c (init_bonuses_level, uninit_bonuses_level):
	Use xmalloc-based macros.
	* src/argv.c (parse_argv): Likewise.
	* src/debugmsg.c (dmsg_parse_string): Likewise.
	* src/display.c [HAVE_PKG_GGI] (set_display_params): Likewise.
	[HAVE_PKG_GGI,HAVE_SDL] (init_video): Likewise.
	* src/extras.c (browse_extra_directory, browse_extra_directories
	add_extra_directory, add_extra_in_user_directory, free_extra_list):
	Likewise.
	* src/fontdata.c (initialize_menu_font, uninit_fonts): Likewise.
	* src/hedlite.c (save_pcx, outwayinit, free_levels_output_dir, hmain):
	Likewise.
	* src/heroes.c (init_buffers, load_level, compute_level_full_list,
	read_level_list): Likewise.
	* src/intro.c (show_intro): Likewise.
	* src/menus.c (editor_menu): Likewise.
	* src/misc.c (strcat_alloc, strappend): Likewise.
	* src/musicfiles.c (sound_track_cons, dir_name): Likewise.
	* src/pcx.c (img_init): Likewise.
	* src/renderdata.c (init_render_data): Likewise.
	* src/rleprog.c (compile_rleprog): Likewise.
	* src/rsc_files.c (set_rsc_file, rsc_expand, get_rsc_file): Likewise.
	* src/sfx.c (_load_sfx, close_sfx_handle): Likewise.
	* src/source.c [HAVE_LIBMIKMOD] (decode_sound_options): Likewise.
	* src/timer.c (new_htimer, free_htimer): Likewise.
	* src/userconf.c (read_userconf): Likewise.

	Misc fixes.

	* src/heroes.c (free_level_full_list, load_random_level): Enhance
	error message.
	* src/pcx.c (pcx_load_from_rsc): Use get_non_null_rsc_file.
	* src/rsc_files.c (get_non_null_rsc_file): Also ensure that the
	resulting string is not empty.

2000-10-31  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Rename common.h into system.h for consistency with
	other existing packages.

	* src/common.h: Move to ...
	* src/system.h: ... here.  ADAPT ALL REFERENCES.
	* HACKING: Reflect change.
	* src/Makefile.am (heroes_SOURCES): Remove common.h, add system.h.

	Add new files to the 'stolen-code' repository.

	* configure.in: Check for malloc, realloc, strerror, and strerror_r.
	* lib/Makefile.am (EXTRA_DIST): Add malloc.c, realloc.c, strndup.c.
	(noinst_HEADERS): Add error.h, fstrcmp.h, and xalloc.h.
	(INCLUDES): Add -I$(top_srcdir)/src.
	(libheroes_a_SOURCES): Add error.c, fstrcmp.c and, xmalloc.c.
	* lib/error.c: New file.
	* lib/error.h: New file.
	* lib/fstrcmp.c: New file.
	* lib/fstrcmp.h: New file.
	* lib/malloc.c: New file.
	* lib/realloc.c: New file.
	* lib/strcasecmp.c: New file (overwrite existing file).
	* lib/strndup.c: New file.
	* lib/xalloc.h: New file.
	* lib/xmalloc.c: New file.
	* m4/Makefile.am (EXTRA_DIST): Add malloc.m4 and realloc.m4.
	* m4/malloc.m4: New file.
	* m4/realloc.m4: New file.
	* src/debugmsg.c (progname): Rename into ...
	(program_name): ... this.  To please error.c.
	(dmsg, dperror): Adapt to use program_name.
	* src/errors.c (emsg, wmsg): Likewise.

	Give better error message, by detecting possible misspelling
	of resource names.

	* src/rsc_files.c (check_rsc_spelling_error): New.
	(set_rsc_file, get_rsc_file): Use it.
	* src/rsc_files.gperf (get_rsc_approx): New.
	* src/rsc_files_hash.h (get_rsc_approx): New.

2000-10-31  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Remove auto-installed files from CVS. Arrange so most of
	auto-installed file go in tools/, not in the base directory.

	* COPYING: Delete.
	* INSTALL: Delete.
	* depcomp: Delete.
	* config.guess: Delete.
	* config.sub: Delete.
	* install-sh: Delete.
	* missing: Delete.
	* mkinstalldirs: Delete.
	* doc/texinfo.tex: Delete.
	* doc/mdate-sh: Delete.
	* tools/autogen.sh: New.
	* tools/Makefile.am: New.
	* HACKING: Reflect changes.
	* Makefile.am (SUBDIRS): Add tools.

	* acconfig.h: Delete.
	* configure.in: Use AH_TEMPLATE to describe the DEFINEs originaly
	described in acconfig.h

2000-10-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/render.c (draw_level): Use correct source buffer width
	when drawing sprites.

2000-10-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Move bonuses handling in separate files.

	* src/bonus.c: New file.
	* src/bonus.h: New file.
	* src/Makefile.am (heroes_SOURCES): Add bonus.c and bonus.h.
	* src/const.c (bonus_proba_array, bonus_points, bonus_a_img,
	bonus_b_img, tile_bonus, tile_bonus_cpu, bonus_time, bonus_list,
	bonus_total_nbr, bonus_real_nbr, next_bonus_to_update,
	bonus_anim_offset): Move to bonus.c and bonus.h.
	* src/const.h: Likewise.
	* src/heroes.c (bonus_proba, bonus_proba_sum, txt_bonus,
	txt_bonus_tempo, bonus_anim_htimer, random_bonus, add_bonus,
	add_random_bonus, rem_bonus, _bonus, update_bonus): Move to
	bonus.c and bonus.h.
	(load_level): Adapt to call init_bonuses_level.
	(unload_level): Adapt to call uninit_bonuses_level.
	(grow_trail, shrink_trail): Remove static.
	(update_player): Call apply_bonus instead of _bonus,
	set_txt_bonus intead of draw_txt_bonus.  Adapt to
	call update_player_bonus_vars.
	(update_all): Call update_bonuses instead of update_bonus.
	(main): Adapt to call init_bonus and uninit_bonus.
	* src/heroes.h (level_is_finished,grow_trail,shrink_trail): Export.
	* src/render.c: Include bonus.h.

	Create a debuging channel for bonuses.

	* doc/heroes.texi (Environment): Document BONUS.
	* src/debugmsg.c (dmsg_parse_string): Recognize "bonus".
	* src/debugmsg.h (debug_lvl): Add D_BONUS.

2000-10-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* ChangeLog: Cleanups.

2000-10-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Use a separate struct to hold the information needed to
	render the foreground sprites and bonuses.

	* src/renderdata.h (fg_data_t, fg_data): New.
	* src/renderdata.c (fg_data): New.
	(init_render_data, uninit_render_data): Handle fg_data.
	* src/const.h (bonus_ptr): Remove.
	(bonus_list): New.
	* src/const.c: Likewise.
	* src/heroes.c (add_bonus): Adapt to use bonus_list and update
	fg_data.
	(rem_bonus, update_bonus): Likewise.
	(add_random_bonus): Call add_bonus.
	(load_level, unload_level): Use bonus_list instead of bonus_ptr.
	* src/render.c (copy_tile_transp): Rewrite to take a source pointer
	and the source image width as argument.
	(draw_bonus): Remove (use copy_tile_transp instead), but move
	the dollar drawing part into ...
	(draw_dollar): ... this new function.
	(draw_level): Use fg_data.

2000-10-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Use a separate struct to hold the information needed to
	render the background tiles.

	* src/renderdata.c: New file.
	* src/renderdata.h: New file.
	* src/Makefile.in (heroes_SOURCES): Add renderdata.h and renderdata.c.
	* src/heroes.c (load_level): Call init_render_data.
	* src/heroes.h (unload_level): Call uninit_render_data.
	* src/render.c (draw_level): Draw background tiles using bg_data.

2000-10-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Old GCCs do not recognize -fstrict-aliasing, test this
	at configure-time.

	* m4/ac_adl_gcc_optim.m4: New file.
	* m4/Makefile.am (EXTRA_DIST): Add it.
	* configure.in: Used it.

	Misc errors.

	* m4/ac_adl_find_header.m4: Redirect possible complain
	of the compiler to /dev/null.
	* configure.in: Don't overwrite LDFLAGS with -g or -s, just append
	the option.
	* src/common.h: Use __attribute__ for gcc 2.7.x too.

2000-10-25  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Fix problems observed on Solaris.

	* src/visuals.c (corner_buffer_end): Use memset instead of
	a loop over a cast int* (caused BUS error).
	* m4/ac_adl_find_header.m4: Remove buggy redirection (caused
	configure to abort).

2000-10-22  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/errors.c (emsg): Thinko.

2000-10-22  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Error introduced by the renaming of getopt.h into gnugetopt.h.

	* lib/getopt.c: Include gnugetopt.h.
	* lib/getopt1.c: Likewise.

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

	* configure.in: Add --enable-gprof.
	* doc/heroes.texi (configure options): Document --enable-gprof.

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

	Copyright pedantry, follow the FSF guidelines.

	* Makefile.am: Remove the (C) glyph which has no legal meaning.
	* configure.in: Likewise.
	* arch/Makefile.am: Likewise.
	* doc/Makefile.am: Likewise.
	* doc/heroes.texi: Likewise.
	* lib/Makefile.am: Likewise.
	* lib/strcasecmp.c: Likewise.
	* m4/Makefile.am: Likewise.
	* man/Makefile.am: Likewise.
	* src/Makefile.am: Likewise.
	* src/argv.c: Likewise.
	* src/argv.h: Likewise.
	* src/common.h: Likewise.
	* src/const.c: Likewise.
	* src/const.h: Likewise.
	* src/debugmsg.c: Likewise.
	* src/debugmsg.h: Likewise.
	* src/display.c: Likewise.
	* src/display.h: Likewise.
	* src/draw.c: Likewise.
	* src/draw.h: Likewise.
	* src/endian.h: Likewise.
	* src/endscroll.c: Likewise.
	* src/endscroll.h: Likewise.
	* src/errors.c: Likewise.
	* src/errors.h: Likewise.
	* src/extras.c: Likewise.
	* src/extras.h: Likewise.
	* src/fader.c: Likewise.
	* src/fader.h: Likewise.
	* src/fastmem.h: Likewise.
	* src/font.h: Likewise.
	* src/font_deck.h: Likewise.
	* src/font_help.h: Likewise.
	* src/font_menu.h: Likewise.
	* src/fontdata.c: Likewise.
	* src/fontdata.h: Likewise.
	* src/generic_list.h: Likewise.
	* src/gfx_reader.h: Likewise.
	* src/hedlite.c: Likewise.
	* src/hedlite.h: Likewise.
	* src/hendian.c: Likewise.
	* src/hendian.h: Likewise.
	* src/heroes.c: Likewise.
	* src/heroes.h: Likewise.
	* src/intro.c: Likewise.
	* src/intro.h: Likewise.
	* src/joystick.c: Likewise.
	* src/joystick.h: Likewise.
	* src/keyb.c: Likewise.
	* src/keyb.h: Likewise.
	* src/keys_heroes.h: Likewise.
	* src/keysdef.c: Likewise.
	* src/keysdef.h: Likewise.
	* src/menus.c: Likewise.
	* src/menus.h: Likewise.
	* src/misc.c: Likewise.
	* src/misc.h: Likewise.
	* src/musicfiles.c: Likewise.
	* src/musicfiles.h: Likewise.
	* src/options.c: Likewise.
	* src/options.h: Likewise.
	* src/pcx.c: Likewise.
	* src/pcx.h: Likewise.
	* src/pixelize.c: Likewise.
	* src/pixelize.h: Likewise.
	* src/render.c: Likewise.
	* src/render.h: Likewise.
	* src/rleprog.c: Likewise.
	* src/rleprog.h: Likewise.
	* src/rletext.c: Likewise.
	* src/rletext.h: Likewise.
	* src/rsc_files.c: Likewise.
	* src/rsc_files.h: Likewise.
	* src/rsc_files_hash.h: Likewise.
	* src/savegame.c: Likewise.
	* src/savegame.h: Likewise.
	* src/scores.c: Likewise.
	* src/scores.h: Likewise.
	* src/scrtools.c: Likewise.
	* src/scrtools.h: Likewise.
	* src/sfx.c: Likewise.
	* src/sfx.h: Likewise.
	* src/sound.c: Likewise.
	* src/sound.h: Likewise.
	* src/structs.h: Likewise.
	* src/timer.c: Likewise.
	* src/timer.h: Likewise.
	* src/txts.c: Likewise.
	* src/txts.h: Likewise.
	* src/userconf.c: Likewise.
	* src/userconf.h: Likewise.
	* src/userdir.c: Likewise.
	* src/userdir.h: Likewise.
	* src/visuals.c: Likewise.
	* src/visuals.h: Likewise.
	* src/etc/Makefile.am: Likewise.
	* src/txt_cfg/Makefile.am: Likewise.

	* m4/ac_adl_find_header.m4: Fix email address.

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

	* configure.in: Set version to 0.6d.

2000-10-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* NEWS: Update for snapshot 0.6c.

2000-10-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Handle --list to list various internal information such
	as resources or sound drivers (this supercede --drivers-info).

	* doc/heroes.texi: Document -l.  Remove -n.  Say the $HOME is used.
	Adapt the description of setrsc to point the user to
	--list=resources.
	* src/Makefile.am (rsc_files_hash.c): Generate ANSI-C, and a
	global hash table.
	* src/argv.c (list): New.
	(print_help): Add -l, remove -n.
	(long_options): Add --list.  Sort all entries.  --load is now -L.
	(parse_argv): Rename -l as -L, add -l.
	* src/rsc_files.gperf (data-dir, home-dir): Provide default nice
	to print with --list=resources.
	(print_rsc_files): New.
	* src/rsc_files_hash.h (print_rsc_files): New.

2000-10-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Store the user config filename in a resource.

	* src/rsc_files.gperf (heroesrc-txt): Rename to ...
	(system-conf): ... this.
	(user-conf): New.
	* src/heroes.c (main): Adapt to use new resources.
	* src/userconf.c (read_userconf): Don't try to build the
	user config filename, always use the supplied file.

2000-10-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/const.c (radar_trail_color,
	radar_wall_color, draw_glenz_box): Fix signedness.
	(glenz): Use pixel_t.
	* src/const.h: Likewise.

2000-10-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Remove most warnings from src/hedlite.c.

	* src/hedlite.c (partiel4,cadre,cadrept): Fix prototype.
	(dalletranspc): Rename to ...
	(copy_tile_transp_pcx): ... this, adjust callers.
	(sousdalletranspc): Rename to ...
	(copy_square_transp_pcx): ... this, adjust callers.
	(cadre,cadrept): Rename to ...
	(frame,framept): ... these, adjust callers.
	(partiel4,copy_tile,partiel4c,copy_tile_transp,
	copy_square_transp,copy_tile_transp_pcx,partiel2,frame,
	framept,draw_text,transpa,transpac,carre,affgt,majd,
	write_rle,save_pcx,planfull,joueanim): Fix signedness issues.
	(hmain): Fix an error introduced in recent prototype change (on
	2000-10-10).

2000-10-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Factor the handling of vertical movements in menus.
	Reverse responses in the quit menu.

	* src/menus.c (move_updown): New.
	(control_menu, keyboard_menu, sound_menu, screen_menu, game_menu,
	option_menu, quit_menu): Adapt to use move_updown.
	(screen_menu): Reorganize key handling.
	(draw_quit_menu): Reverse the proposition order.
	(background_menu, sound_menu, screen_menu, game_menu, extra_menu,
	option_menu, draw_quit_menu, quit_menu, draw_play_menu, draw_main_menu,
	editor_first_menu, draw_saved_games_info): Change type of l from
	char to int.
	(init_menus_sprites): Typo.
	* src/menus.h (draw_play_menu,draw_quit_menu,
	draw_saved_games_info): Likewise.
	* src/heroes.c (main_menu): Adapt to new order of draw_quit_menu.

2000-10-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Regroup waving arrows logic into one function.

	* src/menus.c (waving_arrows): New.
	(option_menu, quit_menu, draw_play_menu, draw_main_menu,
	editor_selector, editor_first_menu): Use waving_arrows.

2000-10-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Draw horiwontal rules using hrule.

	* src/menus.c (horizontal_rule): New.
	(init_menus_sprites): Initialize horizontal_rule.
	(uninit_menus_sprites): Uninitialize it.
	(hrule): New.
	(background_menu,extra_menu,option_menu,draw_play_menu,
	draw_main_menu,editor_selector): Use hrule.

2000-10-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	rletextize the extra menu.

	* src/menus.c (extra_menu_txt,extra_modes_txt,extra_combine_txt): New.
	(init_menus_sprites): Initialize the above variables.
	(uninit_menus_sprites): Free them.
	(extra_menu): Use them.  Use a local array of rleprogs for the
	filenames.  Make 7 levels jumps on pugeup/pagedown (was 10).

2000-10-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Use a rleprog_t to display the rounds number too.

	* src/menus.c (game_rounds_txt): New.
	(uninit_menus_sprites): Free game_rounds_txt.
	(game_menu): Handle game_rounds_txt.

2000-10-17  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Use keycode_t when handling key codes.

	* src/common.h (keycode_t): New.
	* src/const.h (get_key_or_joy): Return keycode_t.
	* src/const.c (get_key_or_joy): Likewise.
	* src/keyb.h (get_key): Likewise.
	* src/keyb.c [HAVE_PKG_GGI,HAVE_SDL] (get_key): Likewise.
	* src/gfx_reader.h (show_help): Use keycode_t.
	* src/heroes.c (jukebox_menu, enter_your_name, play_menu, load_demo,
	main_menu, pause_menu): Likewise.
	* src/keysdef.h (keynames_s): Likewise.
	* src/menus.c (control_menu, keyboard_menu, sound_menu, screen_menu,
	quit_menu): Likewise.
	* src/options.h (options_t): Document that player_key should be
	keycode_t.

	Less warnings.

	* src/menus.c (extra_menu,editor_selector): Fix comparisons
	between signed and unsigned.

2000-10-17  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Miscellaneous warning fixes

	* src/fontdata.c (compute_text_width): Cast *text indice to int.
	* src/rsc_files_hash.h (rsc_file): Replace the modified flag by
	a modified_value string.  The initial value will never be modified.
	* src/rsc_files.c (set_rsc_file,get_rsc_file): Use modified_value.
	* src/rsc_files.gperf: Prototype hash.
	* src/timer.c (new_htimer): Fix dmsg format.

2000-10-17  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Adapt keyboard_menu to use rleprogs.

	* src/menus.c (keyboard_menu_txt, keyboard_keys_txt): New.
	(init_menus_sprites): Initialize keyboard_menu_txt.
	(uninit_menus_sprites): Free keyboard_menu_txt and keyboard_keys_txt.
	(draw_key): Remove (insert in next function).
	(keyboard_menu): Adapt to use keyboard_menu_txt and keyboard_keys_txt.

2000-10-16  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/menus.c (cursor_bg,cursor_fg,control_menu_txt,sound_menu_txt,
	music_vol_txt, sfx_vol_txt, screen_menu_txt, game_menu_txt): New.
	(init_menus_sprites): Initialize the above RLE-programs.
	(uninit_menus_sprites): Free them.
	(cursor): New.
	(sound_menu, screen_menu, game_menu): Adapt to use cursor,
	and the new _txt RLE-programs.

2000-10-16  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Support for waving strings in rletext.  Try it in control menu.

	* src/draw.c (text_waving_htimer): Declare static.
	* src/draw.h (text_waving_step): Declare extern.
	* src/menus.c (control_menu_text): Rename into ...
	(control_menu_txt): ... this.
	(init_menus_sprites): Generate waving control_menu text.
	(control_menu): Don't draw waving text (already done).
	* src/rleprog.h (rleprog_s): Add line_size, func_offset, func_data.
	Change signedness of dest_offset (now signed).
	* src/rleprog.c (unclipped_run): Handle func_offset.
	(compile_rleprog): Reset line_size, func_offset, and func_data.
	* src/rletext.c (waving_offset): New.
	(compile_rletext): Handle T_WAVING.

2000-10-16  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Support for generating RLE-programs from strings to display.
	Try it in control menu.

	* src/fontdata.h: New file.
	* src/fontdata.c: New file.
	* src/rletext.h: New file.
	* src/rletext.c: New file.
	* src/Makefile.am (heroes_SOURCES): Add fontdata.h, fontdata.c,
	rletext.c, and rletext.h.
	* arch/VisualC/heroes.dsp: Likewise. Fix to use getshline.c from
	../lib/.  Use gnugetopt.h instead of getopt.h.
	* src/heroes.c (main): Call init_fonts and uninit_fonts.
	* src/menus.c (init_menus_sprites): Generate a RLE-program for the
	control menu text.
	(uninit_menus_sprites): Free it.
	(control_menu): Use it.
	* src/rleprog.h (rleprog_s): Add attribute latest_known.
	(concat_rleprog): New.
	* src/rleprog.c (compile_rleprog): Zero latest_known.
	(free_rleprog): Cosmetic.
	(concat_rleprog): New.

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

	Remove most warning from src/intro.c.

	* src/intro.c (erase_data,erase_data_cur,erase_color_ptr): Use pixel_t.
	(i): Remove.
	(compute_erase_data,erase,antialias): Use pixel_t.
	(show_intro): Declare i.  Rewrite the set_pal calls.
	(play_intro): Remove i.  Rewrite the set_pal calls.

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

	Use named values instead of 0xffffffff.

	* configure.in (FLAGS): Remove -Wtraditional.
	* src/common.h (U32_MAX): New.
	* src/structs.h (DONT_WRAP): New.
	* src/hedlite.c (tempd, tunnel_mod, curdallepg, curdalleph,
	curdallepd, curdallepb, planfull, outwayflag, gestclav, hmain):
	Use DONT_WRAP.
	* src/render.c (draw_level): Likewise.
	* src/heroes.c (load_level, compute_corner) Likewise.
	(ia_eval_neighb_pos, ia_goto_target, update_lemmings): Use U32_MAX.

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

	Remove more warnings.

	* src/draw.h (draw_text, draw_text_clipped_left,
	draw_text_clipped_right, draw_text_waving, draw_text_320,
	draw_text_waving_320, draw_text_array, draw_text_array_320,
	draw_text_bonus, draw_deck_text): Fix signedness and use text
	instead of texte.
	* src/draw.c (draw_text, draw_text_clipped_left,
	draw_text_clipped_right, draw_text_waving, draw_text_320,
	draw_text_waving_320, draw_text_array, draw_text_array_320,
	draw_text_bonus, draw_deck_text): Likewise.
	* src/heroes.c (add_random_bonus,add_bonus,
	compute_level_full_list,output_screen): Fix signedness.
	(load_level): Fix dmsg format.
	(draw_round_info,play_game): Use temporary variables with a
	correct type to avoid casts.
	* src/pixelize.c (pixelize_1, pixelize_2_inline, pixelize_2,
	pixelize_4_inline, pixelize_4, pixelize_8_inline, pixelize_8,
	pixelize_16_inline, pixelize_16_inline_2, pixelize_16,
	pixelize_32_inline, pixelize_32_inline_2, pixelize_64_inline,
	pixel_64_inline_2, pixelize_64, pixelize): Fix constness,
	signedness, use pixel_t.

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

	Fix warnings from gfx_reader.h.

	* src/endscroll.c (scroll_buffer,page): Use pixel_t*.
	(colors): Remove.
	(copy_background,draw_background): Adapt signedness and constness.
	(end_scroll): Don't free colors.
	* src/gfx_reader.h: Include scrtools (declare vsynch).
	(txtptr,strptr): Use u8_t.
	(copy_rect_transp_help,copy_rect_transp_help_with_glenz,
	copy_rect_transp_help_full_glenz,draw_text_help): Adapt
	signedness and constness.
	(show_help): Rename glenz into glenz_color.  Fix signedness.

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

	Remove the tmp1 and tmp2 global variables.  Change the hmain
	prototype.

	* src/const.h (tmp1,tmp2): Remove.
	* src/const.c (tmp1,tmp2): Remove.
	* src/hedlite.c (hmain): Change prototype, and adapt body.
	* src/hedlite.h (hmain): Change prototype.
	* src/heroes.c (enter_your_name): Take the buffer to write to
	as argument. Use memset.
	(play_menu): Adapt call to enter_your_name.
	(scores_menu, draw_end_level_info, draw_text_waving,
	draw_end_level_info, draw_round_info): Use local buffers.
	* src/render.c (draw_score): Likewise.
	* src/menus.c (draw_key, game_menu, extra_menu,
	editor_selector,editor_menu): Likewise.
	(editor_selector,editor_menu): Adapt call to hmain.
	* src/structs.h (FILENAME_SIZE,PLAYER_NAME_SIZE): New.
	(level_header_t): Use FILENAME_SIZE.
	(top_score): Use PLAYER_NAME_SIZE.

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

	Fix most warnings of src/render.h.

	* src/const.h (clock_anim_offset): Declare as pixel_t*.
	* src/const.c (clock_anim_offset): Likewise.
	* src/draw.h (draw_demo_stick): Fix argument constness.
	* src/draw.c (draw_demo_stick): Likewise.
	* src/render.c (copy_tile, copy_tile_transp, draw_bonus,
	copy_square_transp, draw_trail_real, draw_vehicle_tail,
	draw_vehicle_head, draw_trail, copy_lemming_transp, draw_color,
	draw_cash, draw_lemming, copy_dead_lemming_transp,
	draw_dead_lemming, draw_level, draw_radar_map, draw_score,
	draw_logo_info, display_buffer_tmp1, display_buffer_moving,
	display_two_buffers, display_two_buffers_moving,
	display_two_buffers_moving_and_clear): Fix constness and
	signedness.
	* src/render.h (draw_score,draw_logo_info): Use pixel_t*.

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

	* HACKING: New file.
	* Makefile.am (EXTRA_DIST): Add HACKING.

2000-10-08  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Fix signedness warnings in visuals.[hc].

	* src/visuals.h (srcroto): Declare as pixel_t*.
	* src/visuals.c (srcroto): Likewise.
	(rotozoom_buffer, rotozoom_half_buffer,	horizontal_zoom_wave,
	horizontal_zoom_flip, vertical_zoom_wave, wave_buffer,
	wave_half_buffer, corner_buffer_begin, corner_buffer_middle,
	corner_buffer_end): Adapt to use pixel_t, u8_t and u32_t.

2000-10-08  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/keysdef.h (keyname_s): Fix constness.
	* src/structs.h (type_name): Likewise.
	* src/hedlite.c (draw_text,fatalog): Likewise.
	* src/sound.h (load_soundtrack_from_alias): Likewise.
	* src/sound.c [*] (load_soundtrack_from_alias): Likewise.
	* src/hedlite.h (free_levels_output_dir): Likewise.
	* src/hedlite.c (free_levels_output_dir): Likewise.
	* src/rsc_files_hash.h (rsc_file): Likewise.
	* src/scores.c (cmp_scores): Likewise.

2000-10-08  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Add support for RLEncoded sprites.

	* src/rleprog.h: New file.
	* src/rleprog.c: New file.
	* src/Makefile.am (heroes_SOURCES): Add src/rleprog.h and
	src/rleprog.c.
	* arch/VisualC/heroes.dsp: Likewise.

	Use this new feature to draw the arrows and checked boxes.

	* src/menus.h (left_arrow,right_arrow): New.
	(init_menus_sprites,uninit_menus_sprites): New.
	* src/menus.c (left_arrow,right_arrow,checked_box): New.
	(init_menus_sprites,uninit_menus_sprites,arrows,chkbox): New.
	(control_menu,keyboard_menu,sound_menu,screen_menu,game_menu,
	extra_menu,option_menu,draw_quit_menu,draw_play_menu,draw_main_menu,
	editor_selector,editor_first_menu): Adapt to use arrows and chkbox.
	(draw_saved_games_info): Adapt to use left_arrow
	and right_arrow.
	* src/heroes.c (draw_end_level_info): Likewise.
	(main): Call init_menus_sprites and uninit_menus_sprites.

	Misc.

	* src/sound.c (decode_sound_options): Typo.
	* src/pcx.h (IMGPOS): New macro.
	(pcx_header_t,color_rvb_t,palette_t,pcx_image_t): Use u8_t and u16_t.
	* src/pcx.c (delta,pcx_load): Adapt to use pixel_t and u8_t.
	* src/const.h (corner,render_buffer): Use type pixel_t.
	* src/const.c (corner,render_buffer): Likewise.
	* configure.in: Remove -Wconversion and explain why.

2000-10-07  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/scrtools.c: New file.
	* src/scrtools.h: New file.
	* src/Makefile.am (heroes_SOURCES): Add scrtools.c and scrtools.h.
	Remove mikmod.h.
	* arch/VisualC/heroes.dsp: Likewise.
	* src/const.h (vsynch,set_pal_with_luminance) Move to src/scrtools.h.
	* src/const.c (vsynch,set_pal_with_luminance) Move to src/scrtools.c,
	and fix constness and signedness issues.

	* src/pcx.h (palette_rvb): Remove.
	(color_): Rename to ...
	(color_rvb_t): ... this.
	* src/pcx.c (pcx_load): Typo.
	* src/display.h (pixel_t): New.
	(screen): Use pixel_t* as type.
	(set_pal): Set constness of the first argument.
	* src/display.c (screen_rv, screen, stretch_twofold,
	stretch_twofold_even, stretch_threefold, stretch_threefold_even,
	erase_odd_lines, copy_screen): Adapt to use pixel_t.
	[HAVE_PKG_GII,HAVE_SDL] (set_pal): Set constness of the first arg.

	* src/hedlite.c: Replace header_ by pcx_header_t,
	image_ by pcx_image_t, palette_ by palette_t.
	* src/heroes.c: Likewise.
	* src/pcx.c: Likewise.
	* src/pcx.h: Likewise.
	* src/const.c: Likewise.
	* src/const.h: Likewise.
	* src/endscroll.c: Likewise.
	* src/gfx_reader.h: Likewise.
	* src/intro.c: Likewise.
	* src/menus.c: Likewise.
	* src/fader.c: Likewise.
	* src/fader.h: Likewise.

2000-10-07  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* lib/getshline.c (getshstr): Change terminator type to suppress
	warnings.

2000-10-07  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/errors.c (emsg): Bug fix: exit the game even if
	error messages are disabled.

2000-10-07  Alexandre Duret-Lutz  <duret_g@epita.fr>

	FreeBSD has getopt_long in the gnugetopt library.  Moreover we
	don't want to use our own getopt.h header when getopt_long is
	already available on the build system.  The FreeBSD part is
	untested.

	* configure.in: Check for getopt.h.  Check for getopt_long, which
	might be available in the gnugetopt library.  AC_LIBOBJ the
	replacements when needed.
	* lib/getopt.h: Move ...
	* lib/gnugetopt.h: ... here to avoid conflict with existing
	getopt.h.
	* lib/Makefile.am (EXTRA_DIST): Add getopt.c and getopt1.c.
	(HEADERS): Rename getopt.h into gnugetopt.h.
	(libheroes_a_SOURCES): Remove getopt.c and getopt1.c.
	* arch/VisualC/heroes.dsp: Rename getopt.h into gnugetopt.h.
	* src/argv.c: Do not include getopt.h.
	* src/common.h: Include getopt.h or gnugetopt.h.

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

	* src/VisualC/config.h (HAVE_READDIR): Comment out.
	* src/VisualC/heroes.dsp: Define HAVE_CONFIG_H, and remove
	mikmod.h.

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

	Fix VPATH build failure (caused make distcheck to fail).

	* arch/Makefile.am (Vzip): New.
	(EXTRA_DIST,distclean-local): Use $(Vzip).
	(VisualC/VisualC.zip): Rename to ...
	($(Vzip)): ... this. Build in $(srcdir).
	(VisualC/config.cp): Build $(VSIP) in $(srcdir).
	(VisualC/config.h): Depend upon configure which is distributed,
	not Makefile which is generated.  Ensure that configure is newer
	than the target, because the creation of config.cp can trigger
	the rule anyway.

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

	* configure.in: Set version to 0.6c.

2000-10-04  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* README: Update from Texinfo documentation.
	* NEWS: Update from
	* configure.in (GGI_KEYBOARD_H): Typo.
	* m4/Makefile.am (EXTRA_DIST): Typo.

2000-10-04  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Include VicualC project files, from Stéphane Denis.

	* arch/Makefile.am: New.
	* arch/VisualC/config.h: New file.
	* arch/VisualC/keysdef-inc.h: New file.
	* arch/VisualC/heroes.dsp: New file, from Stéphane Denis.
	* arch/VisualC/heroes.dsw: New file, from Stéphane Denis.
	* arch/VisualC/README.html: New file, from Stéphane Denis.
	* arch/VisualC/README.txt: New file.
	* configure.in: Check for zip and unzip. Generate arch/Makefile.
	* Makefile.am (SUBDIRS): Add arch.

2000-10-04  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Define and use macros for common __attribute__ stuffs.

	* src/common.h (__attribute__,ATTRIBUTE_NORETURN,ATTRIBUTE_UNUSED,
	ATTRIBUTE_PRINTF): New.
	* src/debugmsg.h (dmsg): Use the above macro(s).
	* src/errors.h (wmsg,emsg,exit_heroes): Likewise.
	* src/hedlite.c (fn0,tunnel_mod,hmain): Likewise.
	* src/options.h (options_t): Likewise.
	* src/pcx.h (header_): Likewise.
	* src/sfx.c [!HAVE_LIBMIKMOD] [!HAVE_LIBSDL_MIXER]
	(load_sfx_mode,event_sfx): Likewise.
	* src/sound.c [HAVE_LIBMIKMOD] (update_thread): Likewise.
	[!HAVE_LIBSDL_MIXER] [!HAVE_LIBMIKMOD] (load_soundtrack,
	decode_sound_options,load_soundtrack_from_alias): Likewise.
	* src/structs.h (tunnel_t,anim_t,param_t,tile_t,
	tile_info_t,level_header_t,top_score,saved_game): Likewise.

2000-10-03  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Extract autoconf macro definitions from acinclude.m4
	and configure.in and move them to the new m4/ directory.
	Some macro coming from the autoconf archive have
	been patched to use AC_STRING_HELP, the macro marked
	"bug fix" were bugged in their original version (patches
	sent to authors).

	* acinclude.m4: Delete (contents moved to m4/).
	* m4/ac_adl_find_header.m4: New file.
	* m4/ac_adl_pkg_generic.m4: New file.
	* m4/ac_c_bigendian_cross.m4: New file (bug fix).
	* m4/ac_caolan_check_package.m4: New file (bug fix).
	* m4/ac_define_dir.m4: New file.
	* m4/ac_func_mkdir.m4: New file.
	* m4/generic-config.m4: New file.
	* m4/Makefile.am: New file.
	* configure.in: Don't test for perl (unused).  Adapt to use
	AC_adl_FIND_HEADER to check for ggi/keyboard.h and SDL_keysyms.h.
	Check endianess using AC_C_BIGENDIAN_CROSS.  Check for mkdir using
	AC_FUNC_MKDIR.  Generate m4/Makefile.
	* src/common.h: Use HAVE__MKDIR.
	* Makefile.am (ACLOCAL_AMFLAGS): New.
	(SUBDIRS): Add m4.

2000-09-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Revise handling of file saved by the game (options, games,
	scores).  Use resources instead of configure-time option.

	* configure.in: Remove handling of --disable-user-config,
	--disable-user-scores and --disable-user-saves.  Remove
	handling of obsolete directories.  Fix help string for
	heroes-debug and mem-debug.
	* doc/heroes.texi (Options): Remove documentation of
	--disable-user-config,--disable-user-scores and --disable-user-saves.
	(Global score file): New section.
	* src/hedlite.c (create_levels_output_dir): Use $(hedlite-output-dir).
	(free_levels_output_dir): Reset freed pointer.
	* src/hedlite.h (hedlit_output_dir): Remove.
	* src/heroes.c (main): Set $(home-dir).
	* src/options.c (options_file): Use $(options-file).
	(free_options): Reset freed pointer.
	* src/rsc_files.gperf (games-file,hedlite-output-dir,home-dir,
	options-file,scores-file,user-dir): New.
	* src/savegame.c (saves_file): Use $(games-file).
	(free_save_records): Reset freed pointer.
	* src/scores.c (scores_file): Use $(scores-file).
	(free_scores): Reset freed pointer.
	* src/userdir.c (DIR_NAME): Remove.
	(exists_dir): Use dperror instead of perror.
	(setup_userdir): Use $(user-dir).
	(free_userdir): Reset freed pointer.
	* src/etc/Makefile.am (xdir): Don't use etcdir.
	* src/etc/heroesrc: Give example of redefinition of $(options-file),
	$(scores-file) and $(games-file).
	* src/txt_cfg/Makefile.am (xdir,ydir): Remove.
	(zdir): Don't use textdir.

2000-09-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Add option --verbose (same purpose as HEROES_DEBUG).

	* doc/heroes.texi (Options): Document.
	* src/argv.c (print_help): Add --verbose.
	(long_options): Likewise.
	(parse_argv): Handle it.
	* src/debugmsg.c (dmsg_init): Split into ...
	(dmsg_init,dmsg_parse_string): ... this two functions.  Adapt
	to use wmsg.
	* src/debugmsg.h (dmsg_parse_string): New.

2000-09-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Rename -q into -i, and add -q and -Q to disable warning
	and error messages.

	* doc/heroes.texi (Options): Document new options.
	* src/errors.h (disable_emsg,disable_wmsg): New.
	* src/errors.h (disable_emsg,disable_wmsg): New.
	(emsg,wmsg): Use disable_emsg and disable_wmsg.
	* src/argv.c (print_help): Rename -i into -q, add -q and -Q.
	(long_options): Add quiet and really-quiet.  Fix some buggy
	options (driver, full-screen).
	(parse_argv): Handle new options.

2000-09-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Add wmsg and emsg, for warning and error messages.  Use them.

	* src/errors.c (fatal_error): Delete.
	(wmsg,emsg): New.
	* src/errors.h: Likewise.
	* src/heroes.c (load_level_from_number, init_buffers,
	load_random_wrapped_level, load_random_level, play_game,
	read_level_list, main): Use emsg instead of fatal_error.
	* src/pcx.c (img_init,pcx_load,pcx_load_from_rsc): Likewise.
	* src/hedlite.c (fatalog): Likewise.
	* src/sfx.c (load_sfx_mode): Likewise.
	* src/txts.c (read_txti_cfg): Likewise.
	* src/display.c (init_video): Use emsg instead of *printf.
	(init_video): Likewise.
	* src/joystick.c [HAVE_PKG_GII] (_get_joystick_state): Use wmsg
	instead of fprintf.
	* src/joystick.c (joyinit): Use wmsg instead of puts.
	* src/musicfiles.c (read_sound_config_file): Use wmsg instead of
	fprintf.
	* src/rsc_files.c (set_rsc_file,get_rsc_file): Likewise.
	* src/sfx.c (read_sfx_conf): Likewise.
	* src/sound.c [HAVE_LIBMIKMOD] (init_sound_engine,
	load_soundtrack, get_int): Likewise.
	[HAVE_LIBSDL_MIXER] (init_sound_engine, load_soundtrack,
	print_drivers_list, decode_sound_options): Likewise.
	[] (print_drivers_list): Likewise.
	* src/userconf.c (read_userconf): Likewise.
	* src/userdir.c (exists_dir): Likewise.
	(setup_userdir): Likewise.

2000-09-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Introduce fader to handle palette fadings automatically.

	* src/fader.h: New.
	* src/fader.c: New.
	* src/Makefile.am (heroes_SOURCES): Add fader.h and fader.c.
	* src/debugmsg.h (debug_lvl): Add D_FADER.
	* src/debugmsg.c (dmsg_init): Handle FADER.
	* doc/heroes.texi (Environment): Documents FADER.
	* src/heroes.h (fading_timer): Remove (now useless).
	* src/heroes.c (fading_timer): Likewise.
	(quit_yes_no): Don't reset fading_timer.
	(main): Call (un)init_fader instead of (un)initializing fading_timer.
	Call update_htimers() before runing main_menu.
	* src/const.c (p,p2,pal2pal): Delete.
	* src/const.h (p,p2,pal2pal): Likewise.
	* src/endscroll.c (set_pal_fade): Remove (useless).
	(end_scroll): Don't reset p.
	* src/gfx_reader.h (show_help): Adapt to use fader.
	* src/intro.c (play_intro,show_intro): Likewise.
	* src/heroes.c (jukebox_menu): Likewise.
	(enter_your_name,main_menu): Likewise.  Use a timer for the
	pixelize effect.
	(play_menu): Adapt likewise.  Use a timer for the flipping effect.
	(play_demo,play_game): Use local variables instead of p2.
	* src/menus.c (background_menu): Don't handle fading anymore.
	(control_menu, keyboard_menu, sound_menu, screen_menu, game_menu,
	extra_menu, quit_menu, option_menu, draw_play_menu,
	draw_main_menu, editor_selector, editor_menu,
	draw_saved_games_info): Adapt to use fader.

	Rename argument to remove a warning.

	* src/sound.c (decode_sound_options): Rename optarg to options_string.
	* src/sound.h (decode_sound_options): Likewise.

	Misc.

	* src/menus.c (demo_info): Remove (obsolete).
	* src/menus.h (demo_info): Likewise.

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

	Suppress some warnings.

	* src/debugmsg.c (dmsg): Take a constant message.
	* src/debugmsg.h (dmsg): Likewise.
	* configure.in (CFLAGS): Remove -ansi, for it is harmful.
	* src/extras.h (extra_nbr,extra_user_nbr): Declare unsigned.
	* src/extras.c (extra_nbr,extra_user_nbr): Likewise.
	(browse_extra_directory): Take an extradir_info_t struct instead
	of the first two arguments.
	(browse_extra_directories): Adapt call to browse_extra_directory.
	Declare i as unsigned.
	(free_extra_list): Declare i as unsigned.
	* src/generic_list.h (NEW_LIST_SPEC): Remove trailing semicolon.
	(NEW_LIST_BODY): Ada a dummy function declaration to eat a trailing
	semicolon.

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

	Fix memory handling in src/extras.c (was leaking, and reallocating
	0 sized buffers).

	* src/extras.c (browse_extra_directories): Don't reallocate
	extra_list and extra_selected_list of no extra level was found.
	(NEW_LIST(level)): Use free as destructor.

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

	* src/timer.c (shift_htimer) [!HAVE_GETTIMEOFDAY]: Remove unused
	variable.

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

	* configure.in: Check for direct.h and io.h.
	* lib/w_dirent.c: Don't include system headers,
	include common.h instead.
	* lib/w_dirent.h: Don't include io.h
	* src/common.h: Include io.h and direct.h.

	* lib/strcasecmp.c (strcasecmp): Return 0 if the two pointers
	are equal.

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

	* configure.in: Check for mkdir.  Check whether it takes only
	one argument instead of testing whether it takes two arguments.
	* src/common.h (mkdir): Define as a macro mkdir when needed.
	* src/hedlite.c (create_levels_output_dir): Remove TWO_ARGS_MKDIR
	conditional.
	* src/userdir.c (setup_userdir): Likewise.

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

	* TODO (Before 0.7): Add new items, consequence of reports
	from Stéphane Denis <S.Denis@darkworks.com>.
	(Before 1.0.0): Add heroeslvl.
	* THANKS: Add cts.
	* BUGS: Update.

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

	* doc/heroes.texi: Reword some passages, add comments,
	update URLs, mark the beginning of each node.
	* README-alpha: Revise.

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

	Fix the tunnel bug noticed on Solaris
	by Mattias Engdegård <f91-men@nada.kth.se>.

	* src/structs.h [WORDS_BIGENDIAN] (tunnel_t): Reverse the
	bitfields.
	* BUGS: Remove the report.

2000-09-19  Uwe Hermann  <uh1763@bingo-ev.de>

	* configure.in [$GCC]: Add lots of gcc warning options.
	* src/options.c: Change C++-style comments to C-style comments.
	Translate a comment into english language.
	* src/const.c: Change C++-style comments to C-style comments.
	* src/const.h: Likewise.
	* src/endscroll.c: Likewise.
	* src/hedlite.c: Likewise.
	* src/heroes.c: Likewise.
	* src/menus.c: Likewise.
	* src/pcx.c: Likewise.
	* src/render.c: Likewise.
	* src/sound.c: Likewise.
	* src/txts.c: Likewise.
	* src/visuals.c: Likewise.

2000-09-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Set version to 0.6b.

	Prune useless files from the CVS tree.

	* aclocal.m4: Delete (autogenerated).
	* edit.pcx: Delete (useless).
	* file_id_.diz: Likewise.
	* finfo.pcx: Likewise.
	* fontem.pcx: Likewise.
	* hedlite_.doc: Likewise.
	* helpics.pcx: Likewise.
	* heroes.end: Likewise.
	* heroes.ord: Likewise.
	* heroes.sw: Likewise.
	* heroes_.doc: Likewise.
	* options.dat: Likewise.
	* run.dat: Likewise.
	* savegame.dat: Likewise.
	* scores.dat: Likewise.
	* starttxt.pcx: Likewise.

2000-09-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Set version to 0.6a.
	* README-alpha: New.
	* THANKS: Add Stéphane and Uwe.
	* doc/heroes.texi (Contributors): Likewise.
	(Bug Reporting): Typo.
	(History): Fix spelling.
	(configure options): Mark --with-sdl as @samp. Fix spelling.
	* README: Update from Texinfo documentation.
	* NEWS: Update.

	There is something strange with automake 1.4a.

	* doc/Makefile.am (htmldir): Rename to ...
	(hdir): ... this.  And include back in the MAKE_HTML conditional.

2000-09-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Temporaly kluge	hopping to work around MSVC (untested).

	* src/draw.c (Id): New.
	(draw_text,draw_text_clipped_left,draw_text_waving,
	draw_text_clipped_right): Use Id.

2000-09-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Check for sleep.
	* src/common.h [HAVE_WINDOWS] [!HAVE_SLEEP]: Use Sleep as a
	replacement for sleep (untested).

2000-09-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Use $host, not $target, when cross-compiling.

2000-09-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Provide opendir/readdir/closedir substitutes
	for plain Win32 (untested).

	* configure.in: Check for readdir.
	* lib/w_dirent.h: New file.
	* lib/w_dirent.c: New file.
	* lib/Makefile.am (EXTRA_DIST): Add w_dirent.c.
	(noinst_HEADERS): Add w_dirent.h.
	* src/common.h [HAVE_WINDOWS_H] [!HAVE_READDIR]: Include w_dirent.h.

2000-09-17  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Define common integer types, and use them in the structs
	which are written to disk.

	* configure.in: Check for stdint.h.
	* src/common.h: Include stdint.h and defines common integer types.
	* src/options.h (options_t): Use the above defined integer types.
	* src/structs.h (tunnel_t, anim_t, param_u, tile_t, tile_info_t,
	level_header_t, top_score, saved_game): Likewise.
	(param_u): Rename to ...
	(param_t): ... this.
	* src/hedlite.c (affgt,majg,planfull,hmain): Don't print using long
	format.
	* src/heroes.c (scores_menu): Print using unsigned format.
	* TODO: Update.

2000-09-15  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Use opendir/readdir/closedir instead of scandir.

	* configure.in: Remove checks for scandir and alphadir.
	Remove the test about the type of d_name.
	* lib/scandir.c: Delete.
	* lib/alphadir.c: Delete.
	* lib/Makefile.am (EXTRA_DIST): Remove scandir and alphadir.
	* src/extras.c (NEW_LIST(level)): New.
	(alphasort,scandir): Remove declaration.
	(browse_extra_directory): Rewrite using opendir/readdir/closedir,
	add the files to a list given as a new argument.
	(browse_extra_directories): Convert the list filled by
	browse_extra_directory to an array, and allocate
	extra_selected_list (these two operations used to be done by
	browse_extra_directory).
	* src/common.h [!HAVE_DIRENT_H]: Include other possible headers.

2000-09-15  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Improve the generic list by handling comparator and
	destructor for the cells' type.

	* src/generic_list.h (NEW_LIST): Split into NEW_LIST_SPEC and
	NEW_LIST_BODY.  Let NEW_LIST be a call to both.  Handle two new
	parameters to NEW_LIST_BODY (and hence NEW_LIST) for equality
	test and destruction of cells.
	(NULL_DESTRUCTOR,STD_EQUAL): New.
	* src/extras.c: Adapt the call to NEW_LIST.
	(free_extradir_info): New.
	(free_extra_directories): Rewrite using extradir_clear.
	* src/musicfiles.c: Adapt the call to NEW_LIST.
	(uninit_sound_track_list): Rewrite using st_clear.

2000-09-15  Uwe Hermann  <uh1763@bingo-ev.de>

	* ChangeLog: Fix old ChangeLog-entries to use imperative mode (again).
	* TODO: Add new item.
	* src/endscroll.c, src/heroes.c, src/misc.c, src/pcx.c, src/txts.c:
	Remove all casts of malloc/realloc. Such casts are not necessary as
	malloc/realloc return 'void *', but they can hide the fact that
	the '#include <stdlib.h>' is missing...

2000-09-15  Uwe Hermann  <uh1763@bingo-ev.de>

	* ChangeLog: Fix old ChangeLog-entries to use imperative mode.
	* src/argv.c (version): Add a missing 'void' in the definition.
	Change the 'const struct option long_options[]' to use
	no_argument, required_argument and NULL instead of 0, 1 and 0. This
	increases readability (IMHO).
	* src/const.c, src/endscroll.c, src/intro.c: Translate some french
	comments into english language.
	* src/debugmsg.h, src/draw.c, src/extras.c, src/fastmem.h: Typo.
	* src/endscroll.c, src/font.h, src/font_help.h, src/font_menu.h,
	src/gfx_reader.h, src/hedlite.c, src/heroes.c, src/joystick.c,
	src/menus.c, src/options.h: Change some C++-style comments (//foo) into
	C-style comments (/* foo */).
	* src/font.h, src/font_help.h, src/font_menu.h: Cosmetic changes.
	* src/debugmsg.h, src/gfx_reader.h, src/heroes.c, : Add a
	missing 'void'.

2000-09-15  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Use timeGetTime instead of clock on Win32 targets,
	as suggested by	Stéphane Denis <S.Denis@darkworks.com>.

	* configure.in: Check for windows.h.
	* src/common.h [HAVE_WINDOWS_H]: Include it.
	* src/timer.h (time_type): Define to struct timeval, DWORD or
	clock_t according to the function used to read time.
	[!HAVE_GETTIMEOFDAY]: Define get_current_time to the function
	used to read time.  Add definition of SECOND for Win32 systems.
	(htimer_s.orig_type): Use time_type.
	* src/timer.c (current_time): Use time_type.
	(update_htimers) [!HAVE_GETTIMEOFDAY]: Use get_current_time.
	(read_htimer) [!HAVE_GETTIMEOFDAY]: Store c, d and res as unsigned
	variables.  Use get_current_time.

2000-09-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* Makefile.am (AUTOMAKE_OPTIONS): New, set gnits option.
	(EXTRA_DIST): Remove TODO, ChangeLog and THANKS since they are
	handled implicitly by automake.

2000-09-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	automake 1.4a compatibility.

	* doc/Makefile.am (htmldir): Move out of MAKE_HTML conditional.
	* src/Makefile.am (keysdef.c): New (explicit dependency).
	* depcomp: New.

2000-09-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/keyb.c (get_key): Typo.

2000-09-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* TODO: Add new items.

2000-09-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* BUGS: Add reports about bugs on m68k and Solaris.

2000-09-14  Uwe Hermann  <uh1763@bingo-ev.de>

	* configure.in: Add AC_HEADER_STAT which defines STAT_MACROS_BROKEN
	if S_ISDIR etc. are broken.
	* TODO: Remove item about absent S_ISDIR.
	* src/common.h: Define/re-define S_ISDIR in the native
	implementation is broken or not existing.

2000-09-13  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/display.c (init_video): Enable SDL_QUIT events.
	* src/keyb.c (process_input_events): Handle SDL_QUIT events.
	(get_key): Likewise.
	(key_ready): Return true if there is a pending SDL_QUIT event.

2000-09-13  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Record the state of libraries (initialized or not) and
	sound tracks (loaded, playing, none).  This allow to exit
	the game anywhere, because we know what to uninitialize.

	* src/display.c (scr_w,scr_h,scr_pitch): Remove static tag.
	(video_initialized): New.
	[HAVE_PKG_GGI] (visu,render_visu): Initialize to 0.
	[HAVE_PKG_GGI,HAVE_SDL] (init_video): Set video_initialized.
	[HAVE_PKG_GGI] (uninit_video): Clear display_param.  Close
	visu, render_visu, if needed.  Exit GGI if initialized.
	[HAVE_SDL] (visu): Initialize to 0.
	[HAVE_SDL] (screen): Remove (useless declaration).
	[HAVE_SDL] (SDL_initialized): New.
	[HAVE_SDL] (init_SDL): Use SDL_initialized instead of the
	static variable done
	[HAVE_SDL] (uninit_video): Use screen_allocated and
	SDL_initialized to know what to uninitialize.
	* src/errors.h (exit_heroes): New.
	* src/errors.c (exit_heroes): New.
	(fatal_error): Call exit_heroes.
	* src/sound.c (sound_initialized,sound_track_loaded,
	sound_track_playing): New.
	[HAVE_LIBMIKMOD,HAVE_PKG_sdl_mixer] (init_sound_engine): Set
	sound_initialized.
	[HAVE_LIBMIKMOD,HAVE_PKG_sdl_mixer] (uninit_sound_engine): Use
	sound_initialized.
	[HAVE_LIBMIKMOD,HAVE_PKG_sdl_mixer] (load_soundtrack): Set
	sound_track_loaded.
	[HAVE_LIBMIKMOD,HAVE_PKG_sdl_mixer] (unload_soundtrack): Use
	sound_track_playing and sound_track_loaded.
	[HAVE_LIBMIKMOD,HAVE_PKG_sdl_mixer] (play_soundtrack): Use
	sound_track_loaded.  Set sound_track_playing.

2000-09-13  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/display.c (init_video): Typo.

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

	Handle video pitch (SDL windx5 driver is now usable).

	* src/display.c (scr_pitch): New.
	(stretch_twofold,stretch_twofold_even,
	stretch_threefold,stretch_threefold_even): Use scr_pitch.
	(copy_screen): New.
	(copy_display): Call copy_screen.
	[HAVE_PKG_GGI,HAVE_SDL] (uninit_video): Set scr_pitch.

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

	* src/hedlite.c: Include endian.h.
	* src/hendian.c: Likewise.

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

	Lock visual when needed (SDL only).

	* src/display.c (screen_allocated): New.
	(stretch_display): Rename to ...
	(copy_display): ... this.  Copy the screen if needed.
	[HAVE_PKG_GGI] (init_video): Set screen_allocated.
	[HAVE_PKG_GGI,HAVE_SDL] (uninit_video): Use screen_allocated.
	[HAVE_PKG_GGI] (vsynchro): Adapt to call copy_display.
	[HAVE_SDL] (init_video): Set screen_allocated.  Don't set screen_rv
	if the visual require locking, allocate screen instead.
	[HAVE_SDL] (vsynchro): Adapt to call copy_display.  Lock the
	surface	if needed and set screen_rv.

2000-09-11  Uwe Hermann  <uh1763@bingo-ev.de>

	* AUTHORS, TODO, doc/heroes.texi: Fix several typos and some other
          minor stuff.

2000-09-10  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* lib/strcasecmp.c: New file.
	* lib/Makefile.am (EXTRA_DIST): Add strcasecmp.
	* configure.in: Check for strcasecmp.
	* src/common.h [!HAVE_STRCASECMP]: Declare strcasecmp.

2000-09-10  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Document undocumented AC_DEFINEs.
	* acconfig.h: Likewise.

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

	Delete src/optionss.h.

	* src/optionss.h (options_t): Move to...
	* src/options.h (options_t): ...here.
	* src/optionss.h: Delete.
	* src/Makefile.am (heroes_SOURCES): Remove src/optionss.h.

	Add a common.h file for all system headers inclusions; ensure that
	all .c files include common.h instead of config.h (and before
	anything else).

	* src/common.h: New file.
	* src/Makefile.am (heroes_SOURCES): Add common.h.
	[GGI,SDL] (keysdef-inc.h): Do not generate #include in output file.
	* argv.c: Adapt to include common.h.
	* const.c: Likewise.
	* debugmsg.c: Likewise.
	* display.c: Likewise.
	* draw.c: Likewise.
	* endscroll.c: Likewise.
	* errors.c: Likewise.
	* extras.c: Likewise.
	* hedlite.c: Likewise.
	* hendian.c: Likewise.
	* heroes.c: Likewise.
	* intro.c: Likewise.
	* joystick.c: Likewise.
	* keyb.c: Likewise.
	* keysdef.c: Likewise.
	* menus.c: Likewise.
	* misc.c: Likewise.
	* musicfiles.c: Likewise.
	* options.c: Likewise.
	* pcx.c: Likewise.
	* pixelize.c: Likewise.
	* render.c: Likewise.
	* rsc_files.c: Likewise.
	* rsc_files.gperf: Likewise.
	* savegame.c: Likewise.
	* scores.c: Likewise.
	* sfx.c: Likewise.
	* sound.c: Likewise.
	* timer.c: Likewise.
	* txts.c: Likewise.
	* userconf.c: Likewise.
	* userdir.c: Likewise.
	* visuals.c: Likewise.

	Adapt the .h files, because they can now assume
	that common.h was already included.  Also, rename
	the inclusion guards, using names like HEROES__FILE__H.

	* argv.h: Rename guard.
	* const.h: Rename guard.
	* debugmsg.h: Adapt includes and rename guard.
	* display.h: Rename guard.
	* draw.h: Rename guard.
	* endian.h: Adapt includes and rename guard.
	* endscroll.h: Rename guard.
	* errors.h: Rename guard.
	* extras.h: Rename guard.
	* fastmem.h: Adapt includes and rename guard.
	* generic_list.h: Adapt includes.
	* gfx_reader.h: Adapt includes.
	* hedlite.h: Rename guard.
	* hendian.h: Adapt includes and rename guard.
	* heroes.h: Rename guard.
	* intro.h: Rename guard.
	* joystick.h: Rename guard.
	* keyb.h: Rename guard.
	* keys_heroes.h: Adapt includes and rename guard.
	* keysdef.h: Rename guard.
	* menus.h: Rename guard.
	* misc.h: Rename guard.
	* musicfiles.h: Rename guard.
	* options.h: Rename guard.
	* pcx.h: Rename guard.
	* pixelize.h: Rename guard.
	* render.h: Rename guard.
	* rsc_files.h: Rename guard.
	* rsc_files_hash.h: Rename guard.
	* savegame.h: Rename guard.
	* scores.h: Rename guard.
	* sfx.h: Rename guard.
	* sound.h: Rename guard.
	* structs.h: Adapt includes and rename guard.
	* timer.h: Adapt includes and rename guard.
	* txts.h: Rename guard.
	* userconf.h: Rename guard.
	* userdir.h: Rename guard.
	* visuals.h: Rename guard.

	Add a few tests to configure.

	* configure.in: Check for memory.h, strings.h, unistd.h. Call
	AC_HEADER_TIME.  Check for memcpy.

2000-09-08  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* BUGS: Add warning messages from windows.
	* TODO: Complete, rewrite, reorder.

2000-09-07  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Add support for arcade-style scanlined display (Adapted from
	Stéphane Denis <S.Denis@darkworks.com>).  And fix
	a bug in handling of --double and --triple options.

	* src/argv.h (even_lines): New.
	* src/argv.c (even_lines): New.
	(print_help): Add -e.
	(long_options): Add --even-lines.  Fix argument number
	of --double and --triple (they don't accept any).
	(parse_argv): Handle -e.
	* doc/heroes.texi (Options): Document -e.
	* src/display.c (stretch_twofold_even): New.
	(stretch_threefold_even): New.
	(erase_odd_lines): New.
	(stretch_display): New.
	[HAVE_PKG_GGI,HAVE_SDL] (vsynchro): Move stretching calls to
	stretch_display and call stretch_display instead.

2000-09-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* man/Makefile.am (heroes.6): Do not build heroes.6
	conditionnaly, missing will warn the user if help2man
	is needed.
	* configure.in: Be paranoiac, quote everything.  Use
	AC_MISSING_PROG to check for help2man.

2000-09-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Free even more memory.

	* src/hedlite.h (free_levels_output_dir): New.
	* src/hedlite.c (free_levels_output_dir): New.
	* src/options.c (free_options): New.
	* src/options.h (free_options): New.
	* src/savegame.c (free_save_records): New.
	* src/savegame.h (free_save_records): New.
	* src/scores.c (free_scores): New.
	* src/scores.h (free_scores): New.
	* src/display.c [HAVE_SDL] (uninit_video): Free screen.
	[HAVE_PKG_GGI] (uninit_video): Free screen and display_params.
	* src/txts.c (close_txti): New.
	* src/txts.h (close_txti): New.
	* src/musicfiles.c (uninit_sound_track_list): Don't use the
	list temporaly variable.
	* src/extras.c (free_extra_directories): Also free the cells,
	and call free_levels_output_dir.
	* src/heroes.c (main): Call close_txti, free_scores,
	free_save_records, free_options.

2000-09-05  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Free some more memory.

	* src/extras.h (free_extra_directories): New.
	* src/extras.c (free_extra_directories): New.
	(free_extra_list): Do not free anything if extra_nbr == 0.
	(browse_extra_directory): Exit early when no file are found.
	* src/userdir.h (free_userdir): New.
	* src/userdir.c (free_userdir): New.
	(setup_userdir): Allocate one byte more for userdir, and free
	userdir if already allocated.
	* src/musicfiles.h (uninit_sound_track_list): New.
	* src/musicfiles.c (uninit_sound_track_list): New.
	* src/heroes.c (main): Call uninit_sound_track_list,
	free_extras_directories, and free_userdir.  Do not free extra_list
	and extra_selected_list directly, call free_extras_list instead.
	* src/userconf.c (read_userconf): Free pname.
	* src/display.c (init_video): Do not ask for a ColorfulPalette
	when the display don't use a palette, because GGI would be
	mallocing a big palette in such case.

2000-09-04  Alexandre Duret-Lutz  <duret_g@epita.fr>

	AC_PATH_GENERIC is not enough to test for a library, we
	need to check wether the library link or not.

	* acinclude.m4: Add AC_adl_PKG_GENERIC.
	* configure.in: Use it to check for libMikMod and SDL.

2000-09-04  Alexandre Duret-Lutz  <duret_g@epita.fr>

	On some machines, quit_yes_no used to be called
	in a loop because the release of the <Esc> key
	was not recorded.

	* src/heroes.c (quit_yes_no): Enclose the function by calls
	to (un)init_keyboard_map so that the keyboard map get
	cleared on exit.
	(pause_menu): Remove superfluous instruction.

2000-09-04  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Synchronize with my own CVS repository.

	* ChangeLog: Add one missing entry.
	* src/etc/heroesrc: The file was doubled, remove the
	bottom half.

2000-09-04  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Add copyright line.

2000-09-03  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (load_level): Cleanup the tunnels
 	initialization loop.

2000-09-03  Alexandre Duret-Lutz  <duret_g@epita.fr>

	From Mattias Engdegård.

	* configure.in: Always define the MAKE_HTML conditional.

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

	* configure.in: Set version to 0.6.  Port to Autoconf 2.49a.
	* acinclude.m4: Port to Autoconf 2.49a (use AC_HELP_STRING).
	* install-sh: Update from Autoconf 2.49a.
	* missing: Likewise.
	* mkinstalldirs: Likewise.
	* INSTALL: Likewise.

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

	Solaris already defines SEC.

	* src/timer.c (SEC): Rename to ...
	(SECOND): ... this.
	* src/timer.c (reset_htimer_with_offset,read_htimer,
	shift_htimer): Addapt to use SECOND.

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

	* src/intro.c (show_intro): Addapt constants for better
	synchronisation with the sound track.
	* src/heroes.c (play_demo): Reset the fading_timer once,
	and set fade to 0 only if it was equal to -1 before.

2000-08-31  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* NEWS: Update.
	* doc/heroes.texi (Contributors): Add Mattias and Maxim.

2000-08-31  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Mingw32 defines dirent.d_name as a pointer, so copying
	a struct dirent needs some additional massaging.

	* configure.in: Check wether dirent.d_name is a pointer, define
	D_NAME_IS_POINTER if so.  Also replace the AC_TRY_LINK for
	the mkdir check by AC_TRY_COMPILE.
	* lib/scandir.c (scandir): Handle the D_NAME_IS_POINTER case (will
	strdup d_name).
	* src/extras.c (browse_extra_directory): If D_NAME_IS_POINTER,
	d_name has already been strduped there is no need to do it again.

2000-08-31  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in (data_dir): Support --enable-html-doc option.
	* doc/heroes.texi (configure options): Document it.
	* doc/Makefile.am (htmldir): Add rules to build and install
	html documentation.

2000-08-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	One bigendian fix more.

	* src/structs.h: Translate comments to english.
	(hl): Reverse order of attributes when WORDS_BIGENDIAN.

2000-08-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Add --enable-heroes-debug option to compile HEROES_DEBUG
	support or not.

	* configure.in: Add --enable-heroes-debug option.
	Move the definition of DEBUG in another place, it was wrong.
	* src/debugmsg.h (DEBUG): Rename to ...
	(USE_HEROES_DEBUG): ... this.
	* src/debugmsg.c: Likewise.
	* src/userconf.c (read_userconf): Transform a fprintf in a call
	to dmsg.
	* doc/heroes.texi (Bug Reporting): Ask for HEROES_DEBUG trace.
	(configure options): Describe --disable-heroes-debug.
	* README: Adjust accordingly.

2000-08-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/heroes.texi (Getting Heroes): Missing word.

2000-08-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/menus.c (editor_menu): Call update_text_waving_step in
	main loop.

2000-08-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/timer.c (read_htimer): Thinko, slice rest must not be
	accounted if we are blocking.

2000-08-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/menus.c (load_tile_set_preview): Fix incorrect usage
	of strappend.

2000-08-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (main): Perhabs calling uninit_sound_engine
	makes sense... :)

2000-08-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/sound.c (decode_sound_options): Implement.
	* doc/heroes.texi (Options): Document.

2000-08-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rsc_files.gperf (end-scroller-txt): Typo.

2000-08-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/debugmsg.c (dperror): Print an error message only
	if debug_level is non null.
	* src/extras.c (browse_extra_directory): Print an error
	message if an extra user directory does not exists.

2000-08-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	From Mattias Engdegård <f91-men@nada.kth.se>.

	Cure the bus errors on sparc (results from unaligned memory
	access).

	* src/endian.h [WORDS_BIGENDIAN,!WORDS_BIGENDIAN]
	(SETWORD,GETWORD,SETHALFWORD,GETHALFWORD): New macro.
	* src/gfx_reader.h (show_help): Use these macros.
	* src/savegame.c (check_save_records): Likewise.
	* src/scores.c (check_scores): Likewise.
	* src/visuals.c (horizontal_zoom_wave, horizontal_zoom_flip,
	vertical_zoom_wave): Likewise.

	Support larger file names.

	* src/heroes.c (load_level_from_number,loadlvlpasrandq2,
	load_random_wrapped_level,load_random_level): Widen the filename
	temporaly buffer.

2000-08-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/intro.c (play_intro): Set a black palette in ONE call,
	not 768!

2000-08-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (load_level): Add missing parameter to dmsg call.

2000-08-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Add a dperror, a wrapper to perror.

	* src/debugmsg.c [DEBUG] (dmsg): Use progname.
	[DEBUG] (dperror): New.
	* src/debugmsg.h [!DEBUG,DEBUG] (dperror): Define.
	* src/extras.c (browse_extra_directory): Use dperror.
	* src/heroes.c (load_level, save_pcx, read_level_list): Likewise.
	* src/musicfiles.c (read_sound_config_file): Likewise.
	* src/options.c (load_options): Likewise.
	* src/savegame.c (load_save_records): Likewise.
	* src/scores.c (load_scores): Likewise.
	* src/sfx.c (read_sfx_conf): Likewise.
	* userconf.c (read_userconf): Likewise.

2000-08-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* NEWS: Describe HEROES_DEBUG and HEROES_DATA_DIR.

2000-08-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* Makefile.am (EXTRA_DIST): Add misc/heroes.xpm.

2000-08-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Ellipsis in macro argument list is non-standard.

	* src/debugmsg.h [!DEBUG] (dmsg): Don't use ellipsis, rely
	on the use of comma operator in while argument instead.

2000-08-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Typo

	* src/Makefile.am (EXTRADIST): Rename to ...
	(EXTRA_DIST): ... this.

2000-08-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (EXTRADIST): Add rsc_files.gperf.

2000-08-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/musicfiles.c (read_sound_config_file): Print the expanded
	filename.

2000-08-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Setup facility for printing debug messages.

	* src/debugmsg.h: New file.
	* src/debugmsg.c: New file.
	* src/Makefile.am (heroes_SOURCES): Add debugmsg.h and debugmsg.c.
	* doc/heroes.texi (Environment): Move the existing paragraphe in
	subsection HEROES_DATA_DIR.  Add a subsection for HEROES_DEBUG and
	fill it.

	Output debug messages from various places.

	* src/display.c [HAVE_PKG_GGI] (init_video, uninit_video,
	set_color, set_pal): Call dmsg.
	[HAVE_SDL] (set_display_params, init_SDL, init_video, set_color,
	set_pal): Likewise.
	* src/extras.c (browse_extra_directory,
	add_extra_in_user_directory): Likewise.
	* src/gfx_reader.h (graphic_reader): Likewise.
	* src/heroes.c (erase_player, reinit_player, load_level, save_pcx,
	load_level_from_number, compute_level_full_list,
	load_random_wrapped_level, load_random_level, play_menu, play_demo,
	load_demo, main_menu, pause_menu, quit_yes_no, play_game,
	read_level_list, main): Likewise.
	* src/intro.c (play_intro): Likewise.
	* src/joystick.c (joyinit): Likewise.
	* src/musicfiles.c (read_sound_config_file): Likewise.
	* src/options.c (write_options,load_options): Likewise.
	* src/pcx.c (pcx_load): Likewise.
	* src/rsc_files.c (set_rsc_file,get_rsc_file): Likewise.
	* src/savegame.c (write_save_records,load_save_records: Likewise.
	* src/scores.c (write_scores, load_scores): Likewise.
	* src/sfx.c (read_sfx_conf, free_all_sfx, load_sfx_mode,
	event_sfx): Likewise.
	* src/sound.c [HAVE_LIBMIKMOD,HAVE_LIBSDL_MIXER] (set_volume,
	halve_volume, init_sound_engine, uninit_sound_engine,
	load_soundtrack, play_soundtrack): Likewise.
	* src/timer.c (new_htimer, free_htimer, read_htimer, shift_htimer):
	Likewise.
	* src/txts.c (read_txti_cfg): Likewise.
	* src/userconf.c (read_userconf): Likewise.
	* src/userdir.c (setup_userdir): Likewise.

2000-08-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	OSF already defines dirname

	* src/musicfiles.c (dirname): Rename to...
	(dir_name): ... this.
	(read_sound_config_file): Adapt call ro dir_name.

2000-08-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Remove src/extradir from the distribution.

	* src/Makefile.am (SUBDIRS): Supress extradir.
	* configure.in: Do not generate src/extradir/Makefile.

2000-08-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (read_level_list): Improve error message.

2000-08-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (heroes_SOURCES): Add missing rsc_file_hash.h.

2000-08-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	timer_t is already declared in <sys/time.h> on NetBSD.

	* draw.c: Replace all occurences of timer_ by htimer_,
	and _timer by _htimer.
	* gfx_reader.h: Likewise.
	* heroes.c: Likewise.
	* heroes.h: Likewise.
	* intro.c: Likewise.
	* timer.c: Likewise.
	* timer.h: Likewise.

2000-08-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (heroes_SOURCES): Remove start.h.
	* src/heroes.c: Do not include start.h.
	* src/start.h: Delete.

2000-08-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Remove the warning messages output by the failing
	check for GGI or SDL are not found.  Complete the error message
	output when both check failed.

2000-08-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Move Mattias' alphasort and scandir functions to the lib/
	directory and compile only when needed.

	* configure.in: Check for alphasort and scandir, and substitute
	LIBOBJS.
	* lib/Makefile.am (EXTRADIST): Add alphasort.c and scandir.c.
	(libheroes_a_LIBADD): New.
	(libheroes_a_DEPENDENCIES): New.
	* src/extras.c [!HAVE_ALPHASORT] (alphasort): Declare.
	(asort): Move to ...
	* lib/alphasort.c (alphasort): ... here.
	* src/extras.c [!HAVE_SCANDIR] (scandir): Declare.
	(myscandir): Move to ...
	* lib/scandir.c (scandir): ... here.
	* src/extras.c (browse_extra_directory): Use scandir and alphadir.

2000-08-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* NEWS: Update for next release.
	* THANKS: Likewise.

	* doc/heroes.texi (Libraries): "an alterate" -> "an alternative".
	* Readme: Likewise.

2000-08-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/heroes.texi (Libraries): Describe SDL_mixer.
	(configure options): Describe new configure options.
	(Troubleshooting): Rename the subsection about Alsa and
	MikMod.
	(History): Flush left.
	* README: Update accordingly.  Add a Summary section.

2000-08-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/sfx.c (_play_sfx): Use MIX_MAX_VOLUME.
	* src/sound.c (set_volume,halve_volume): Implement.
	* src/etc/heroesrc: New in CVS. Read $(datadir)/mod/sound.conf, not
	/sound.conf.
	* src/etc/heroesrc.in: Delete.
	* src/etc/Makefile (EXTRA_DIST): Set to x_DATA.
	(CLEANFILE,heroesrc): Remove.

2000-08-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Add -S/--no-sound option, and switch to no-sound automaticaly if the
	sound-engine can't initialize.

	* doc/heroes.texi: Document --no-sound and --no-sfx (was missing),
	and reoder the option list.
	* src/argv.h (nosound): New.
	* src/argv.c (nosound): New.
	(print_help): Add -S and --no-sound, reorder option list.
	(long_options): Add --no-sound.
	(parse_argv): Handle -S.
	* src/sound.c [HAVE_LIBMIKMOD,HAVE_LIBSDL_MIXER]
	(init_sound_engine, uninit_sound_engine, load_soundtrack,
	unload_soundtrack, play_soundtrack, load_soundtrack_from_alias):
	Handle nosound.

	* src/sfx.c [HAVE_MIKMOD] (_load_sfx): Fix return type.
	(load_sfx_mode): Cosmetic change of the error message.

2000-08-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	SFX support for SDL_mixer

	* src/sfx.c: Move functions around, and setup support
	for both MikMod and SDL_mixer.
	[HAVE_LIBMIKMOD] (_load_sfx,_free_sfx,_play_sfx): New.
	[HAVE_LIBSDL_MIXER] (sfx_handles,_load_sfx,_free_sfx,
	_play_sfx): New.
	(free_all_sfx,event_sfx,load_sfx_mode): Adapt to
	use _free_sfx, _play_sfx and _load_sfx respectively.

	Misc. sound-related fixes.

	* src/sound.c [HAVE_LIBSDL_MIXER] (init_sound_engine):
	Fix audio rate selection.  Reduce the audio buffer value.
	* src/argv.c (parse_argv): Add missing 'q' case.

2000-08-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Update to latest versions from subversion.gnu.org.

	* lib/getopt.c: Fresh version from glibc CVS.
	* lib/getopt1.c: Fresh version from glibc CVS.
	* lib/getopt.h: Fresh version from glibc CVS.
	* config.sub:  Fresh version from config CVS.
	* config.guess:  Fresh version from config CVS.

2000-08-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Preliminary support for SDL_mixer.

	* acconfig.h: Add HAVE_PKG_sdl_mixer.
	* aclocal.m4: Fix AC_caolan_CHECK_PACKAGE so that LIBS
	get backuped.
	* configure.in: Add --with-mikmod option, for consistancy.
	Handles choice between libMikMod and SDL_mixer.  Check for
	SDL_mixer.
	* src/display.c (init_SDL) [HAVE_LIBSDL_MIXER]: Call SDL_Init with
	flag SDL_INIT_AUDIO.
	* src/sound.c [HAVE_LIBSDL_MIXER] (music,audio_rate,audio_format,
	audio_channels,audio_buffers): New.
	[HAVE_LIBSDL_MIXER] (set_volume, halve_volume, init_sound_engine,
	uninit_sound_engine, load_soundtrack, unload_soundtrack,
	play_soundtrack, print_drivers_list, decode_sound_options,
	load_soundtrack_from_alias): New.

	* src/timer.c (update_timers): Check HAVE_GETTIMEOFDAY, not
	GETTIMEOFDAY.

2000-08-26  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Under DOS, mkdir doesn't take a second argument.

	* configure.in: Check whether mkdir takes two arguments and define
	TWO_ARGS_MKDIR.
	* src/hedlite.c (create_levels_output_dir): Do not use
	the second mkdir argument if !TWO_ARGS_MKDIR.
	* src/userdir.c (setup_userdir): Likewise.

	* fastmem.h: Add missing "config.h" include.

2000-08-25  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Use clock when gettimeofday isn't available.

	* configure.in: Check for gettimeofday.
	* src/timer.h: Adapt to use struct timeval or clock_t
	whether GETTIMEOFDAY is	defined or not.
	(reset_timer_with_offset): Remove the usec argument.
	* src/timer.c: Likewise.
	(reset_timer_with_offset,update_timers,read_timer,shift_timer):
	Write the !GETTIMEOFDAY version.
	* src/heroes.c (play_demo,play_game,main_menu): Adapt call to
	reset_timer_with_offset.

2000-08-25  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Create a lib/ directory for compatibility and utility functions.

	* src/getshline.c, src/getshline.h: Move to ...
	* lib/getshline.c, lib/getshline.h: ... here.
	* src/Makefile.am (heroes_SOURCES): Remove getshline.h and
	getshline.c.
	(,LD_ADD): New.
	* lib/Makefile.am: New file.
	* lib/getopt.c: New file.
	* lib/getopt.h: New file.
	* lib/getopt1.c: New file.
	* Makefile.am (SUBDIRS): Add lib.
	* configure.in: Test for randir.  Remove check for strstr, strdup,
	and mkdir because their result is not used.  Remove check for
	getopt_long and getopt.h because lib/getopt* are automatic
	replacements.  When checking the build host is the same as the
	target host, look $build variable, not $hots.  Output lib/Makefile.
	* argv.c [!HAVE_GETOPT_H]: Suppress this case, since lib/ has
	a replacement for getopt.
	[!HAVE_GETOPT_LONG]: Likewise.

	* src/argv.c, src/endscroll.c, src/extras.c,
	src/hedlite.c, src/heroes.c, src/intro.c, src/joystick.c,
	src/menus.c, src/misc.c, src/musicfiles.c, src/options.c,
	src/pixelize.c, src/rsc_files.c, src/savegame.c, src/scores.c,
	src/sfx.c, src/sound.c, src/start.c, src/txts.c, src/userconf.c,
	src/visuals.c: Move "config.h" at the top of the include list.

2000-08-25  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* autoconf.in: Test for the "string.h" header.
	* src/config.h, src/fastmem.h, src/gfx_reader.h, src/argv.c,
	src/display.c, src/extras.c, src/hedlite.c, src/heroes.c,
	src/intro.c, src/menus.c, src/misc.c, src/musicfiles.c,
	src/pixelize.c, src/rsc_files.c, src/savegame.c, src/scores.c,
	src/sfx.c, src/sound.c, src/txts.c, src/userconf.c, src/visuals.c:
	Include "string.h" or "strings.h" conditionaly.

2000-08-25  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Change the definition of GGI and SDL conditional
	so they also works when $with_GGI and $with_sdl are directory
	names.

2000-08-25  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Do not run AC_C_BIGENDIAN when doing a cross build
	but rely on explit knoledge of byte ordering of the target host
	instead.

2000-08-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Documents new features (file resources, HEROES_DATA_DIR), the
	four packages and the mailing lists.

	* doc/heroes.texi (Getting Heroes): Describe the four packages.
	Fix urls.
	(Mailing list): Rename to ...
	(Mailing lists): ... this.  Describe the three public mailing lists.
	(Bug Reporting): Do not suggest shar.  Remove the statement about
	the size of sound tracks, this is as true in the current packaging
	scheme.
	(Libraries): Move the note about memory debugger at the
	end of the section.
	(Environment): Describes the HEROES_DATA_DIR variable.
	(heroesrc): Describes the setrsc command.
	(Troubleshooting): Fix the way the user is tell how to
	run libmikmod in OSS-emulation.
	* README: Update, from the texinfo manual.
	* src/argv.c (print_help): Change bug reports address to
	<heroes-bugs@lists.sourceforge.net>

2000-08-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in (confdir): Remove declaration of heddir, introdir,
	nivdir, rscdir and spritedir directories.

2000-08-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/timer.c (reset_timer_with_offset,read_timer): Fix
	computation formula.
	(shift_timer): New.
	* src/timer.h (shift_timer): New.
	* src/heroes (pause_menu,quit_yes_no): Use a pause_timer to
	account the time used in the pause, and shift update_timer and
	event_timer on exit.

2000-08-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (play_demo,play_game): Call update_timers
	before reseting them.

2000-08-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Introduce new timer code in order to handle multiple (and non
	proportionnal) speeds, and to not depends on the display refresh
	rate.  This is a rather important change that will probably
	introduce bugs.

	* src/timer.c: New timer code.
	* src/timer.h: New timer code.
	* src/const.h (frame_cur,frame_old,demo_done): Remove.
	* src/const.c (frame_cur,frame_old,demo_done): Remove.
	(vsynch): Call update_timers.
	(key_or_joy_ready): Use demo_trigger_timer.
	* src/draw.c (text_waving_step,text_waving_timer): New.
	(init_text_waving_step,uninit_text_waving_step,
	update_text_waving_step): New.
	(draw_text_waving,draw_text_bonus): Use text_waving_step (fix
	endian bug).
	(affvga320sin): Rename to ...
	(draw_text_waving_320): ... this.  Use text_waving_step (fix
	endian bug).
	(draw_text_array_320): Adapt to use draw_text_waving_320.
	* src/draw.h (init_text_waving_step,uninit_text_waving_step,
	update_text_waving_step): New.
	(affvga320sin): Rename to ...
	(draw_text_waving_320): ... this.
	* gfx_reader.h [!__HEROES__]: Remove all that unused code.
	(draw_text_help) [SDF]: Define and use read_timer.
	* src/heroes.c (soundtrack_time): Remove (replaced by
	sound_track_timer).
	(DEMO_DURATION): Set to 90 secs.
	(blink_timer,clock_timer,bonus_anim_timer,
	tiles_anim_timer,corner_timer,event_timer,
	event_time,fading_timer,update_timer,
	waving_timer,background_timer,sound_track_timer,
	demo_trigger_timer): New.
	(add_random_bonus,add_bonus,erase_trail,
	update_bonus): Adapt to use even_time.
	(load_level): Comment out timer code (what's the purpose?).
	(jukebox_menu): Setup and use lemming_timer.  Use waving_timer,
	and sound_track_timer.
	(play_menu): Reset sound_track_timer.
	(update_all): Use update_timer.
	(play_demo): Setup and use demo_timer.  Reset clock_timer,
	bonus_anim_timer, tiles_anim_timer, blink_timer, and update_timer
	before running the game.  Update event_time from event_timer.
	Reset background_timer and fading_timer on exit.
	(load_demo): Reset sound_track_timer and demo_trigger_timer on exit.
	(main_menu): Reset sound_track_timer, background_timer, fading_timer,
	demo_trigger_timer and event_timer.  Update event_time.	 Adapt to
	use the above timers.  Adapt to new calling convention of
	corner_buffer.
	(pause): Rename to ...
	(pause_menu): ... this because of name conflict from unistd.h.
	Adapt to use sound_track_timer.  Call update_text_waving_step.
	(quit_yes_no): Adapt to use waving_timer.  Call
	update_text_waving_step.  Reset background_timer and fading_timer.
	(get_input_directions):  Adapt to call pause_menu instead of pause.
	(draw_end_level_info):  Adapt to use waving_timer.
	(play_game):  Reset sound_track_timer, event_timer,
	clock_timer, bonus_anim_timer, tiles_anim_timer,
	blink_timer and update_timer.  Make an explicit call to sleep
	rather than a loop over vsynch.  Update event_time from event_timer
	and call update_text_waving_step on each iteration of the game loop.
	(main): Initialize and free clock_timer, blink_timer, event_timer,
	waving_timer, corner_timer, fading_timer, update_timer,
	background_timer, sound_track_timer, bonus_anim_timer,
	tiles_anim_timer and demo_trigger_timer.  Call
	init_text_waving_step and uninit_text_waving_step.
	* src/heroes.h (clock_timer,blink_timer,bonus_anim_timer,
	tiles_anim_timer,corner_timer,fading_timer,waving_timer,
	background_timer): New.
	* src/intro.c (intro_frame_timer, intro_global_timer): New.
	(show_intro,play_intro): Adapt to use the above two timers.
	* src/menus.c (background_menu): Adapt to use background_timer
	and fading_timer.  Fix the way how camera_x and camera_y are
	wrapped (fix endian bug).  Call update_text_waving_step.
	(demo_info,option_menu,draw_quit_menu,draw_play_menu,
	draw_main_menu,editor_selector,editor_menu,
	editor_first_menu): Use waving_timer.  Rename calls to
	affvga320sin as calls to draw_text_waving_320.
	(editor_menu): Reset background_timer and fading_timer on exit.
	* src/render.c (draw_level): Adapt to use clock_timer,
	blink_timer, bonus_anim_timer, tiles_anim_timer, waving_timer and
	event_time.
	* src/visuals.c (corner_buffer): Adapt to use corner_timer.  Return
	1 if the effect is finished.
	* src/visuals.h (corner_buffer): Return int.

2000-08-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	From Maxim Sobolev <sobomax@FreeBSD.org>.

	* src/Makefile.am (keysdef-inc.h): Include SDL_keysyms.h,
	not SDL/SDL_keysyms.h.

2000-08-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rsc_files.h (rsc_expand): Export this function.
	* src/rsc_files.c (rsc_expand): Likewise.
	* src/musicfiles.h (read_sound_config_file): The argument is no
	more const.
	* src/musicfiles.c (read_sound_config_file): rsc_expand the filename.
	* src/etc/heroesrc (soundconf): Read $(datadir)/mod/sound.conf, not
	/sound.conf.

2000-08-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Support option -2 and -3 and stretch the display accordingly.

	* src/argv.h (stretch): New.
	* src/argv.c (stretch): New.
	(print_help): Describe -2 and -3.
	(long_options): Add --double and --triple.
	(parse_argv): Handle -2 and -3.
	* src/display.c (screen_rv,src_w,src_h): New.
	(stretch_twofold,stretch_threefold): New.
	[HAVE_PKG_GGI] (init_video): Use the value of stretch to setup
	src_w, src_h, screen and screen_rw.  Use src_w and src_h to
	initialize the visuals.
	[HAVE_PKG_GGI] (vsynchro): Call stretch_threefold or stretch_twofold
	if needed.
	[HAVE_SDL] (init_video): Use the value of stretch to setup
	src_w, src_h, screen and screen_rw.  Use src_w and src_h to
	initialize the visual.
	[HAVE_SDL] (vsynchro): Call stretch_threefold or stretch_twofold
	if needed.
	* src/keyb.h (mouse_x,mouse_y): Divide the position by the
	stretch factor.
	* doc/heroes.texi (Options): Document -2 and -3.  Document the
	utility of -F with GGI's DGA driver.

2000-08-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* BUGS: New file.
	* Makefile.am (EXTRA_DIST): Add BUGS.

2000-08-19  Alexandre Duret-Lutz  <duret_g@epita.fr>
	Save files as soon as possible to prevent data loss if the game
	freezes or crashes.

	* src/heroes.c (main_menu): Save the options on disk on return
	from the options menu.
	(play_game): Save the gamerecords on disk whenever a game is
	saved.
	(play_menu): Save the scores on disk whenever a new score is
	added.

2000-08-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Fix typos reported by Benjamin Preidecker <bpreidecker@gmx.de>.

	* src/txt_cfg/heroes.hlp: Typo.
	* src/txt_cfg/txti.cfg: Typo.

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

	Allow overwriting a resource from a config.file.

	* src/userconf.c (read_userconf): Handle "setrsc:".

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

	From Mattias Engdegård <f91-men@nada.kth.se>.
	First fixes needed to compile on Solaris.

	* configure.in: Check for getopt.h and getopt_long.
	* src/argv.c: Include getopt.h conditionnaly, hand-define
	[!HAVE_GETOPT_LONG] (struct option,getopt_long): Define.
	* src/display.c (set_display_params): Use putenv, not setenv.
	* src/extras.c (asort,myscandir): New.
	(browse_extra_directory): Use myscandir and asort instead of
	scandir and alphasort.
	* src/menus.c: Include endian.h.
	* src/pcx.c: Likewise.
	* src/scores.c: Swap the points, not the whole struct.
	* src/userconf.c (read_userconf): Use putenv, not setenv.
	* src/extralvl/Makefile.am (x_DATA): Use $(shell echo) instead
	of broken $(wildcard).

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

	Move data to a separate package heroes-data.

	* src/hedit/: Remove recursively (moved to heroes-data/pics)
	* src/sprites/: Remove recursively (moved to heroes-data/pics)
	* src/intro/: Remove recursively (moved to heroes-data/pics)
	* src/rsc/: Remove recursively (moved to heroes-data/tilesets)
	* src/level/: Remove recursively (moved to heroes-data/levels)
	* src/rsc_files.gperf: Adapt to new locations.
	* src/Makefile.am (SUBDIRS): Remove hedit, sprites, intro, rsc
	and level directories.
	* configure.in: Do not generate Makfile for the above directories.

2000-07-31  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/argv.c (print_help): Document -X option.
	* src/sfx.c (read_sfx_conf): Switch to nosfx mode when the
	configuration file can't be read.

2000-07-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/rsc_files.gperf (sfx-conf-txt): Change value from "...sfx.cfg"
	to "...sfx.conf".

2000-07-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/sfx/: Delete recursively (files are going to
	the heroes-sound-effects package).
	* src/mod/: Delete recursively (heroes-sound-tracks package).
	* src/Makefile.am: Remove sfx and mod directory handling.
	* configure.in: Likewise.

2000-07-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/heroes.texi: Write Nibbles with an s in more places.
	Allow heroes.texi to produce dvi files.  Insert line breaks
	in some places. Markup all keys with @keys{}.

2000-07-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/musicfiles.c (dirname): New.
	(read_sound_config_file): Allow files that does not begin by /
	to be loaded relatively to the config file directory.
	* src/mod/Makefile.am: sound.conf does not need to be built from
	sound.conf.in anymore.
	(CLEANFILES,sound.conf): Remove.
	(EXTRA_DIST): Keep sound.conf instead of sound.conf.in.
	* src/mod/sound.conf: New file.
	* src/mod/sound.conf.in: Delete.

	* src/rsc_files.gperf (sfx-dir): New.
	* src/sfx.c (read_sfx_conf): Adapt to get the sfx directory and
	sfx.cfg file from resources.

2000-07-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (main): Search the environment for HEROES_DATA_DIR
	or HEROES_DATADIR to set the value of the data-dir resource, or
	fail back to the default value if no variable is found.

2000-07-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Check for gperf.
	* src/Makefile.am: Don't define a rule for rsc_files_hash.c if
	gperf is not available.

2000-07-28  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Setup the base structure for resources handling.  rsc_files*
	are used to map a symbolic name to a true filename, handling
	variable substitutions (e.g. $(data-dir)).

	* rsc_files.c: New file.
	* rsc_files.h: New file.
	* rsc_files.gperf: New file.
	* rsc_files_hash.h: New file.
	* src/pcx.c (pcx_load_from_rsc): New.
	* src/pcx.h (pcx_load_from_rsc): New.
	* configure.in: Remove all directory #definitions and define
	only datadir.
	* src/Makefile.am (heroes_SOURCES): Add rsc_files.c, rsc_files.h
	and rsc_files_hash.c.
	(BUILT_SOURCES): Add rsc_files_hash.c.
	(rsc_files_hash.c): New.
	* src/argv.h (level_name): Rewrite as a dynamic array.
	* argv.c (level_name): Likewise.
	(parse_argv): Adapt to fill level_name, with the basename only.
	* src/endscroll.c (end_scroll): Adapt to call pcx_load_from_rsc.
	* src/extras.c (add_extra_in_user_directory): Adapt to get the
	extra directory from resource.
	* src/gfx_reader.h (graphic_reader): Adapt to get filenames from
	resources.
	* src/hedlite.c (tile_set_name,dallepie): Rewrite as dynamic arrays.
	(hmain): Adapt to fill those arrays, and read images from resources.
	* src/heroes.c (load_level,load_level_from_number,
	load_random_level,load_random_wrapped_level,
	play_menu,read_level_list): Adapt to read filenames and
	dirnames from resources.
	(play_game): Append the directory name to level_name, taken from
	resources.
	(main): Setup the data-dir resource. Adapt to read filenames for
	heroesrc and pictures from resources.
	* src/intro.c (show_intro): Read all pictures using resources.
	* src/menus.c (load_tile_set_preview,editor_menu): Adapt to read
	files from resources.
	* src/txts.c (read_txti_cfg): Likewise.

	* src/misc.c (strappend): New.
	* src/misc.h (strappend): New.

2000-07-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/intro.c (show_intro): At stratup, fill the black side of the
	screen.  Do not display the buffer until the palette is set, or
	the buffer updated.

2000-07-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Use # for comments, not dnl, so they can
	be read in the configure script.

2000-07-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Ensure that -DNDEBUG gets added to CFLAGS even
	when the user has specified its own CFLAGS (unless
	--enable-debug).

2000-07-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/heroes.texi (Overview): Rewords the description of the game
	using Daniel Burrow's input.
	* README: Likewise.
	* doc/heroes.texi (Contributors): Update.
	* THANKS: Update.

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

	Add mouse support with SDL 1.0.x.

	* src/keyb.c [HAVE_SDL] (SDL_BUTTON_LEFT,SDL_BUTTON_MIDDLE,
	SDL_BUTTON_RIGHT): Define these macros if missing.
	[HAVE_SDL] (process_input_events): Don't use SDL_MOUSEEVENTMASK
	since SDL 1.0.x does not define this, use SDL_MOUSEMOTIONMASK,
	SDL_MOUSEBUTTONDOWNMASK and SDL_MOUSEBUTTONUPMASK instead.

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

	* configure.in: Quote variable substitutions in calls to test.

2000-07-22  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Change version to 0.5.

2000-07-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Support for VPATH builds.

	* src/etc/Makefile.am (heroesrc): Don't use broken $< variable,
	adapt for VPATH builds.
	* man/Makefile.am (heroes.6): Depends on argv.c rather than argv.o.
	* src/extralvl/Makefile.am (x_DATA): Adapt for VPATH builds.
	* src/hedit/Makefile.am (x_DATA): Likewise.
	* src/level/Makefile.am (x_DATA): Likewise.
	* src/rsc/Makefile.am (x_DATA): Likewise.
	* src/sfx/Makefile.am (x_DATA): Likewise.
	* src/sprites/Makefile.am (x_DATA): Likewise.
	* src/mod/Makefile.am (x_DATA,EXTRA_DIST): Likewise.
	(sound.conf): Don't use broken $< variable, adapt for VPATH builds.
	* NEWS: Update.

	Fix a bug introduced by a previous patch (make distclean
	produced an error when configured with sound support).

	* configure.in: Define the NOSOUND consitional.
	* src/Makefile.am (DIST_SUBDIRS): New.
	(DISTCLEANFILES): Define only if NOSOUND (otherwise mod/Makefile
	and sfx/Makefile would be removed before being called).

2000-07-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* NEWS: Update.
	* TODO: Update.
	* README: Update.
	* doc/heroes.texi: Update.
	* misc/heroes.xpm: New file.

2000-07-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Use authors and titles from the config file in the CD deck.

	* src/const.c (font_deck_img): New.
	* src/const.h (font_deck_img): New.
	* src/draw.c (deck_text_conv,draw_deck_text): New.
	* src/draw.h (draw_deck_text): New.
	* src/heroes.c (soundtrack_author_list): Remove.
	(jukebox_menu,pause): Display title and author using draw_deck_text.
	(main): Load and unload font_deck_img.
	* src/sound.c (soundtrack_author,soundtrack_title): New.
	(unload_soundtrack,load_soundtrack_from_alias): Update
	soundtrack_author and soundtrack_title.
	* src/sound.h (soundtrack_author,soundtrack_title): New.
	* src/font_deck.h: New file.
	* src/Makefile.am (heroes_SOURCES): Add font_deck.h.
	* src/sprites/fontdeck.pcx: New file (binary).

2000-07-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (DISTCLEANFILES): Remove mod/Makefile,
	sfx/Makefile and sfx/sound.conf.

2000-07-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/etc/Makefile.am (EXTRA_DIST): Distribute heroesrc.in,
	not heroesrc.
	* src/mod/Makefile.am (EXTRA_DIST): Distribute sound.conf.in,
	not sound.conf.

2000-07-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Install a system-wide configuration file, and use it to define
	soundtrack filenames.

	* configure.in: Define $etcdir as ${datadir}/heroes/etc/ and
	enable substitution in *.in files.  Generate src/etc/Makefile
	* src/Makefile.am (SUBDIRS): Add etc.
	* src/heroes.c (main): Read the system-wide config file.
	* src/musicfiles.c (get_sound_track_from_alias): Test the end
	of the right list when looking for the alias.
	(init_sound_track_list): Make the function empty (all the work
	is done from the config file).
	* src/userconf.c (read_userconf): Use the file argument, when
	not 0.
	* src/etc/Makefile.am: New file.
	* src/etc/heroesrc.in: New file.
	* src/mod/Makefile.am (x_DATA): Install sound.conf.
	(CLEANFILES): Delete sound.conf.
	(sound.conf): New.
	* src/mod/sound.conf.in: New file.

2000-07-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Display only user's levels in editor menus.

	* src/extras.c (extra_user_nbr): New.
	(cmp_filenames): Rename to ...
	(cmp_extralevels): ... this.  Sort the user-levels first.
	(browse_extra_directory): Update extra_user_nbr.  Adapt to
	call cmp_extralevels.
	(free_extra_list): Reset extra_user_nbr.
	* src/extras.h (extra_user_nbr): New.
	* src/menus.c (editor_selector,editor_menu,
	editor_first_menu): Use extra_user_nbr instead of extra_nbr.

2000-07-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (CLEANFILES): Remove keysdef-inc.h.
	(keysdef-inc.h): Depends on config.h.

2000-07-17  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/extras.c (browse_extra_directory): Set full_name attribute.

2000-07-16  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Write edited levels in ~/.heroes/levels/.  Rewrite the
	extradir code to read that directory, and handle a list
	of directory to search levels into (this list is browsed
	again each time the level editor exits).

	* src/extras.h (extra_level_t): New.
	(extra_selected_list): Change type to extra_level_t*.
	(browse_extra_directory): Remove.
	(make_extra_list): Remove.
	(add_extra_directory): New.
	* src/extras.c (extradir_info_t,edir): New.
	(extra_selected_list): Change type to extra_level_t*.
	(cmp_filenames): Adapt to compare extra_level_t.
	(browse_extra_directory): Take a new argument is_in_user_dir
	to initialize extra_level_t structure.  Don't sort the list any more.
	(browse_extra_directories): New. Sort the list.
	(add_extra_directory,add_extra_in_user_directory): New.
	(make_extra_list): Rename into ...
	(add_default_extra_directories): ... this. Add ~/.heroes/levels
	directory.
	(free_extra_list): Adapt to free extra_level_t.
	* src/hedlite.h (hedlit_output_dir,levels_output_dir): New.
	(create_levels_output_dir): New.
	* src/hedlite.c (levelnom): Remove.
	(select_,boitask,asknew,askold): Remove.
	(create_levels_output_dir): New.
	(hmain): Removed commented out code.  Call create_levels_output_dir.
	Handle level filename.
	* src/heroes.c (load_random_level): Adapt to extra_level_t.
	(main): Adapt to call add_default_extra_directories and
	browse_extra_directories.
	* src/menus.c (extra_menu,editor_selector,editor_menu): Adapt
	to extra_level_t.
	(editor_menu): Call browse_extra_directories instead of
	make_extra_list.
	* src/userconf.c (read_userconf): Call browse_extra_directories
	instead of make_extra_list.
	* src/userdir.c (exists_userdir): Rename into ...
	(exists_dir): ... this.  Take the directory to test in argument.
	(setup_userdir): Adapt call to exists_dir.
	* src/userdir.h (exists_dir): New.

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

	Fix two bugs occuring when using GGI.

	* src/hedlite.c (gestclav): Handle ^F manualy (needed with GGI).
	* src/menus.c (editor_menu):  Transform ifs in else ifs to
	prevent an arrow keysyms from being used in the level name field.

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

	Document the level editor.

	* doc/heroes.texi (Top): Add a detailed node listing.
	(Level editor): New section.

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

	Allow modification of speed and stop tile parameters in
	level editor.

	* src/hedlite.h (fnptr): Add speed_mod and stop_mod.
	(speed_mod): New.
	(stop_mod): New.
	* src/structs.h (spd_test): Make visible by removing test
	for __HEDLITE__.

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

	Support for key modifiers in level editor.

	* src/hedlite.c (gestclav): Add an extra parameter for
	the modifiers state.  Support keys that was not yet supported.
	(gestsrs1,gestsrs2,gestsrs3,hmain): Adapt calls to gestclav.
	* src/keyb.c (keyboard_modifiers): New.
	(init_keyboard_map): Reset keyboard_modifiers.
	(process_input_events): Update keyboard_modifiers.
	[HAVE_PKG_GGI] (get_key): Rewrite to allow update of
	keyboard_modifiers.
	[HAVE_SDL] (get_key): Update keyboard_modifiers.
	* src/keyb.h (keyboard_modifiers): New.
	* keys_heroes.h	(HK_MOD_None,HK_MOD_Shift,HK_MOD_Ctrl,
	HK_MOD_Alt,HK_MOD_Meta): New.
	(HK_f): New.

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

	Handle relative mouse moves in level editor.
	Make the full view work.

	* src/hedlite.c (affplan): Call vsynchro.
	(planfull, gestsrs1): Handle relative moves where needed.

2000-07-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Factorize endian-swaping of level infos into hendian.{h,c} and
	patch the leveleditor to swap read and saved files.

	* src/Makefile.am (heroes_SOURCES): Add hendian.c and hendian.h.
	* src/hedlite.c (save_pcx): BSWAP* header attributes.
	(hmain): Call bswap_level_header and bswap_level_tiles after
	reading and before writting.
	* src/heroes.c (load_level): Replace explicit calls to BSWAP* by
	calls to bswap_level_header and bswap_level_tiles.
	* src/hendian.h: New file.
	* src/hendian.c: New file.

2000-07-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.texi: Add two missing node descriptions.

2000-07-14  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Point people to the heroes-discuss mailing list and other
	SourceForge services.

	* src/argv.c (print_help): Change the reports bug to: email.
	* doc/heroes.texi (Getting Heroes): Add sourceforge URLs for
	project home page, download, and CVS.
	(Mailing list): New section.
	(Bug Reporting): Change email.  Suggest sending snapshots of
	problems.

2000-07-13  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Mouse support with via SDL.

	* src/keyb.c [HAVE_SDL] (mouse_show, mouse_hide,
	update_mouse_state): Implement these functions.
	[HAVE_SDL] (handle_mouse_events): New.
	[HAVE_SDL] (process_input_events): Call handle_mouse_events.
	* src/hedlite.c (departfix, hmain): Remove useless call to mouse_show
	and mouse_hide.

2000-07-13  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/heroes.texi (Libraries): Reword LibMikMod description.
	(Troubleshooting): Reword a paragraph in subsection SegFault when
	using Alsa drivers.

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

	* src/menus.c (extra_menu,editor_selector): Translate some
	hard-coded MS-DOS keycodes to Heroes keysyms.

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

	* doc/heroes.texi (Troubleshooting): Typos.

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

	* doc/heroes.texi (Libraries): Link LibMikMod description
	to Troubleshooting.
	(Troubleshooting): Add the SegFault with Alsa	section.

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

	Link the level editor into the menu, and adapt
	the level editor to Heroes keycodes (most of them).
	Install editor data.

	* src/hedit/Makefile.am: New.
	* configure.in: Generate src/hedit/Makefile.
	* src/Makefile.am: Add hedit directory.
	* src/extras.c (free_extra_list): New.
	* src/extras.h (free_extra_list): New.
	* src/hedlite.c (majd,majg): Call vsynchro to update the display.
	(planfull,gestclav,gestsrs1,gestsrs2,gestsrs3,hmain): Replace
	hardcoded keyvalues by keysyms (most of them).
	(hmain): Clear the screen.
	* src/heroes.c: Remove unused include.
	(mouse_found): Set to 1 (should this variable be removed?).
	* src/keyb.c (update_mouse_state): New.
	(mouse_x,mouse_y,mouse_1,mouse_2,mouse_12): Call update_mouse_state.
	(process_input_events): Move mouse handling to update_mouse_state.
	* src/keys_heroes.h: Add new needed keysyms.
	* src/menus.c (editor_selector,editor_menu): Uncomment.
	(editor_menu): Adapt to call free_extra_list.

2000-07-10  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Shake the level editor code until it compile.

	* src/hedlite.c: Adapt signedness, change prototypes, (re)move
	functions, fix broken code, until it compile without warnings.
	* src/hedlite.h (hmain): Fix prototype.
	* src/Makefile.in (heroes_SOURCES): Add hedlite.c and hedlite.h.
	* src/keyb.c (mouse12): Return 1 if either button are pressed.
	* src/structs.c (param_u): Set size of the param array to 5,
	since param[4] was accessed in the code.

2000-07-10  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Preliminary mouse support (this is only the GGI implementation).

	* src/mouse.h: Delete.  Move most of the declarations to ...
	* src/keyb.h: ... here.
	(init_mouse,mouse_show,mouse_hide,mouse_x,mouse_y,
	mouse1,mouse2,mouse12): Declare.
	* src/keyb.c (enable_mouse,mouse_pos_x,mouse_pos_y,
	mouse_button_left,mouse_button_right): New.
	(mouse_x,mouse_y,mouse1,mouse2,mouse12): New.
	[HAVE_PKG_GGI] (init_mouse,mouse_show,mouse_hide): New.
	[HAVE_PKG_GGI] (process_input_events): Rewrite the events
	processing loop as a switch and add mouse events handling.
	[HAVE_SDL] (init_mouse,mouse_show,mouse_hide): New.

2000-07-10  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (quit_yes_no): Remove unsed flag variable,
	and unused (#ifdefed-out) code.

2000-07-09  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Reading of sound config files.

	* src/heroes.c (main): Call init_sound_track_list before calling
	read_userconf.
	* src/musicfiles.c (read_config_file): Rename to ...
	(read_sound_config_file): ... this.  Implement it (was empty).
	* src/musicfiles.h (read_config_file): Rename to ...
	(read_sound_config_file): ... this.
	* src/sound.c (init_sound_engine): Register all loaders so that
	the user is not limited to XMs.
	(load_soundtrack): Output a warning if the module couldn't be loaded.
	* src/userconf.c (read_userconf): Handle soundconf:.  Close the
	input file.
	* doc/heroes.texi (heroesrc): Document it.

2000-07-09  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Sound configuration via -8 and -q options.

	* src/argv.c (hqmix,bits8): New variables.
	(print_help): Display -8 and -q options.
	(long_options): Add --8bits and --high-quality options.
	(parse_argv): Handle these options.
	* src/argv.h (hqmix,bits8): New variables.
	* src/sound.c (init_sound_engine): Set md_mode with respect to
	hqmix and bits8.
	* doc/heroes.texi (Options): Document these new options.
	(Troubleshooting): Add a Sound errors subsection.

2000-07-09  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/pcx.h (entete_): Rename to...
	(header_): ... this.  Rename attributes as follow:
	bits_par_pixels -> bits_per_pixels
	largeur -> width
	hauteur -> height
	largeurdpi -> widthdpi
	hauteurdpi -> heightdpi
	nbrplans -> nbrplanes
	bytes_par_lignes -> bytes_per_lines
	palette_genre -> palette_kind
	(couleur_): Rename to ...
	(color_): ... this. And rename the v attribute to g.
	* src/pcx.c: Adapt to new names.
	(pcx_load): Swap endianess, if needed.
	* src/heroes: Adapt to new names.
	(save_pcx): Swap endianess, if needed.
	* src/intro.c (show_intro): Adapt to new names.
	* src/render.c: Adapt to new names.

2000-07-08  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Remove keywords (Id:) from all files to make switching to CVS
	easier (since there is binary files in the repository, -kb will be
	needed).

2000-07-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Preliminary big-endian support.

	* configure.in: Check for endianess.
	* src/endian.h: New file.
	* src/Makefile.am (heroes_SOURCES): Add endian.h.

	* src/scores.c (bswap_scores): New.
	(write_scores,load_scores): Adapt to call bswap_scores.
	* src/savegame.c (compute_magic): Translate a comment.
	(bswap_save_records): New.
	(write_save_records,load_save_records): Adapt to call
	bswap_save_records.
	* src/options.c (bswap_options): New.
	(write_options,load_options): Adapt to call bswap_options.
	* src/heroes.c (load_level): Swap map_info, and level_map
	attributes.
	* src/structs.h: Translate some comments.
	(saved_game): Tag level points and lifes as unsigned.

2000-07-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* doc/heroes.texi (Libraries): Add a note to suggest using GGI
	instead of SDL.
	* README: Likewise.

2000-07-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Handle --full-screen with GGI too.

	* src/argv.c (long_options): Typo.
	* src/display.c (full_screen): New.
	(set_full_screen_mode): The full_screen to 1.
	(init_video): Set the recommanded video mode, if full_screen.
	(vsynchro): CrossBlit the rendered buffer centered in the visual.
	* doc/heroes.texi (Options): Updated.

2000-07-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Bug fix.

	* configure.in: Disable joystick support if neighter libGII or
	support from SDL are available..

2000-07-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	SDL needs a special flag parameter to do full screen.

	* src/argv.c (print_help,long_options,parse_argv): Handle -F or
	--full-screen.
	* src/display.c [HAVE_PKG_GGI] (set_full_screen_mode): New.
	[HAVE_SDL] (visu_options,set_full_screen_mode): New.
	[HAVE_SDL] (init_SDL): Use visu_options.
	* src/display.h (set_full_screen_mode): New.

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

	Reinterpret level_header_t.soundtrack_name as an alias which
	could be linked to any soundtrack file.

	* src/sound.h
	[HAVE_MIKMOD] (load_soundtrack_from_alias): New.
	[!HAVE_MIKMOD] (load_soundtrack_from_alias): New.
	[HAVE_MIKMOD] (unload_soundtrack,play_soundtrack): Don't do
	anything if no module loaded.

	* src/intro.c (show_intro): Adapt to call load_soundtrack_from_alias.
	* src/heroes.c (soundtrack_name): Remove.
	(load_level,jukebox_menu,play_menu,pause): Adapt to call
	load_soundtrack_from_alias.
	(main): Call init_sound_track_list.

	* src/musicfiles.h: New file.
	* src/musicfiles.c: New file.
	* src/generic_list.h: New file.
	* src/Makefile.am (heroes_SOURCES): Add generic_list.h,
	musicfiles.c and musicfiles.h.

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

	* src/heroes.c (pause): Handle HK_Pause as an alias to HK_Escape.
	* userconf.c (read_userconf): Add a ; to prevent a parsing error
	from lclint.

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

	Handle multiple extra levels directories.

	* src/extras.c (make_extra_list): Rename to ...
	(browse_extra_directory): ... this.  Take the directory in
	argument, handle error of scandir, append to (instead of
	overwriting) the the list of extra levels, sort the list.
	(make_extra_list): New. Call browse_extra_directory (extradir).
	(cmp_filenames): New.
	* src/extras.h (browse_extra_directory): New.
	* src/userconf.c (read_userconf): Call browse_extra_directory
	for each extradir: line.
	* doc/heroes.texi (heroesrc): Split the section in subsections
	for each keyword recognized (Option: and setenv:).
	(setenv:): New subsection.

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

	Change --gfx-options to SDL_VIDEODRIVER with SDL.

	* src/display.c [HAVE_SDL] (set_display_params): Call setenv.
	* doc/heroes.texi (Heroes options,heroesrc): Document.

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

	Bug fix.

	* acinclude.m4 (AC_caolan_CHECK_PACKAGE): Restore CFLAGS, LDFLAGS
	and CPPFLAGS with correct values.

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

	Bug fix.

	* src/argv.c (long_options): --gfx-options should take one
	argument, no zero.

2000-07-03  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/keysdef.c: Typo.

2000-07-03  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am: Rename keysdef-gii.h and keysdef-sdl.h into
	keysdef-inc.h since they are never both used.
	* src/keysdef.c: Adapt to include keysdef-inc.h.

2000-07-03  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/Makefile.am (heroes_SOURCES): Add missing keys_heroes.h.

2000-07-03  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Change version to 0.4.
	* README: Update.
	* TODO: Update.
	* NEWS: Update.

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

	Use 3rd and 4th buttons of first joystick if there is no
	second joystick to fill second joystick buttons states
	(this is used during the game for pause and quit).

	* src/joystick.c [HAVE_SDL] (joyinit): Get number of buttons for
	the first joystick.
	[HAVE_SDL] (get_joystick_state): Get the state of the 3rd and 4th
	buttons of first joystick if needed.

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

	Support for setenv: in ~/.heroes/heroesrc.

	* src/userconf.c (read_userconf): Handle setenv: lines.
	* doc/heroes.texi (heroesrc): Document it.

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

	Texinfo documentation.

	* Makefile.am (EXTRA_DIST): Remove HISTORY.
	(SUBDIRS): Add doc.
	* configure.in: Build doc/Makefile.  Print info manual install
	path.
	* man/Makefile.am [HAVE_HELP2MAN] (heroes.6): Suppress the -N
	option (in order to have a pointer to the info manual).
	* doc/Makefile.am: New file.
	* doc/heroes.texi: New file.
	* doc/mdate-sh: New file.
	* HISTORY: Delete.

	* src/keys_heroes.h [HAVE_PKG_GGI] [HK_Enter]: Typo.

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

	Joystick handling with SDL.

	* src/display.c (init_video): Move the call to SDL_Init to...
	(init_SDL): ... herem so that init_SDL can be called from joyinit().
	(init_SDL) [HAVE_SDL_JOYSTICKOPEN]: Call SDL_Init with
	SDL_INIT_JOYSTICK.
	* src/joystick.h (is_joystick_up,is_joystick_right,
	is_joystick_down,is_joystick_left): Accept a slight variation
	arround 0 (+-8000).
	* src/joystick.c [HAVE_SDL_JOYSTICKOPEN] (joyinit,
	get_joystick_state): New.
	* configure.in: Check if SDL handles joysticks.

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

	Call SDL_EnableKeyRepeat where available.

	* src/display.c [HAVE_SDL] (init_video) [HAVE_ENABLEKEYREPEAT]:
	Call SDL_EnableKeyRepeat.
	* configure.in: Check for SDL_EnableKeyRepeat.

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

	* src/argv.c (print_help): Typo.
	* src/display.c [HAVE_SDL] (init_video): Print SDL error messages.

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

	Rename --ggi-display in --gfx-options.

	* src/argv.c (print_help): Rename option in printed message.
	(long_options): Rename option.

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

	Better ./configure support for linking with SDL from non-standard
	places.

	* configure.in: Rename --with-SDL to --with-sdl for consistency
	with other --with-sdl-* options.  Rename *_SDL variables to *_sdl.
	Assume that --with-sdl-exec-prefix=DIR imply --with-sdl=DIR and
	vice versa.

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

	--disable-joystick support.

	* src/joystick.c: Move code under #ifdef JOYSTICK_SUPPORT and
	#ifdef HAVE_PKG_GII.
	[JOYSTICK_SUPPORT,HAVE_PKG_GII] (joyinit): Suggest -J options
	if no joystick detected.
	[!JOYSTICK_SUPPORT] (joyinit,get_joystick_state): New.

	* acconfig.h [HAVE_PKG_GII]: New.
	* configure.in: Add support for --disable-joystick.  Change
	configuration status display to print selected libraries.

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

	Concat keymap.* and keyb.*.  Remove keymap.*.

	* src/keymap.h (get_key,key_ready): Move to ...
	* src/keyb.h (get_key,key_ready): ... here.
	* src/keymap.c (get_key,key_ready): Move to ...
	* src/keyb.c (get_key,key_ready): ... here.
	* src/keymap.h: Delete.
	* src/keymap.c: Delete.
	* src/Makefile.am (source_HEROES): Remove src/keymap.h amd
	src/keymap.c.
	* src/endscroll.c: Include keyb.h instead of keymap.h.
	* src/menus.c: Likewise.
	* src/heroes.c: Likewise.
	* src/const.c: Likewise.

	Interface with SDL.

	* src/display.c: Include config.h, and move existing code under
	#ifdef HAVE_PKG_GGI.
	[HAVE_SDL] (visu,screen,set_display_params,init_video,
	uninit_video,set_color,set_pal,vsynchro): New interface with SDL.
	* src/keymap.c: Move code under #ifdef HAVE_PKG_GGI.
	[HAVE_SDL] (process_input_events,uninit_keyboard_map,get_key,
	key_ready): New interface with SDL.
	* keys_heroes.h: Move definitions under #ifdef HAVE_PKG_GGI.
	[HAVE_SDL] (KH_*): New definitions for SDL.

	Misc.

	* src/heroes (play_game): Use HK_Enter instead of HK_Return.
	* configure.in: Define DEBUG when --enable-debug.

2000-06-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Preliminary support for SDL.

	* acconfig.h [HAVE_PKG_LibGGI]: Rename to ...
	[HAVE_PKG_GGI]: ... this.
	* Makefile.am (EXTRA_DIST): Add HISTORY.
	* configure.in: Add support detection of SDL.  Add option
	--with-SDL.  Handle choice between GGI and SDL.  Replace
	all occurance of LibGGI by GII.  Use $GGI_include to
	search for ggi/keyboard.h.  Fix the use of --enable-mem-debug.
	* acinclude.m4 (AC_caolan_CHECK_PACKAGE): Cosmetic change.
	* src/Makefile.am (heroes_SRC): Remove keysdef-gii.h.
	[GGI] (BUILT_SOURCES): Set to keysdef-gii.h.
	[GGI] (keysdef-gii.h): Rule to make keysdef-gii.h.
	[SDL] (BUILT_SOURCES): Set to keysdef-sdl.h.
	[SDL] (keysdef-sdl.h): Rule to make keysdef-sdl.h.
	* src/keysdef.c: Include options.h.  Include keysdef-ggi.h or
	keysdef-sdl.h with respect to HAVE_PKG_GGI and HAVE_SDL.

2000-06-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Move files around, to prepare the interfacing with some other
	library than LibGGI.

	* Makefile.am (heroes_SOURCES): Add keysdef-gii.h.
	(BUILT_SOURCES): Rename keysdef.c to keysdef-gii.h.
	(keysdef.c): Rename to ...
	(keysdef-gii.h): ... this.  And adapt to produce #ifndef/#endif
	guards.

	* src/keysdef.h: Don't include ggi/keyboard.h anymore.
	* src/keysdef.c: New file.
	* src/menus.c: Include keysdef.h.
	* keys_heroes.h: Include ggi/keyboard.h instead of keysdef.h.

	* acinclude.m4: Remove occurence of AM_PATH_GTK to suppress a
	warning from autoreconf.

2000-06-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Centralize the definitions of used key in src/keys_heroes.h to
	make the interfacing with another library easiest.

	* src/keys_heroes.h: New file.
	* src/gfx_reader.h: Adapt to use keys_heroes.h.
	* src/options.c: Likewise.
	* src/menus.c: Likewise.
	* src/heroes.c: Likewise.
	* src/const.c: Likewise.

2000-06-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Change version to 0.3.
	* TODO: Update.
	* README: Update.

	* src/getshline.c: Include stdlib.h.

2000-06-23  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Smarter keyboard configurator: allow to assign a key already
	assigned.  Don't use keyboard_map anymore.

	* src/menus.c (keyboard_menu): Use get_key and key_ready instead
	of keyboard_map.  Assign GIIK_NIL to stolen keys.  Jump on NIL keys
	when trying to quit.

2000-06-22  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Joystick(s?) handling.

	* src/joystick.h (joystick_x, joystick_y): Change signedness to
	signed.
	(joystick_limit_up,joystick_limit_right,joystick_limit_down,
	joystick_limit_left): Remove.
	(is_joystick_up,is_joystick_right,is_joystick_down,
	is_joystick_left): Redefine, using joystick_x and joystick_y.
	* src/joystick.c: Include ggi/gii.h.
	(joystick_x, joystick_y): Change signedness to 	signed.
	(joystick_limit_up,joystick_limit_right,joystick_limit_down,
	joystick_limit_left): Remove.
	(joystick): New variable.
	(joystick_x,joystick_y,joystick_b,joydetected): Set values.
	(_get_joystick_state,joyinit): Rewrite using libgii.
	(get_joystick_state): Adapt the call to _get_joystick_state.
	(is_joystick_up,is_joystick_right,is_joystick_down,
	is_joystick_left): Remove these useless macros.
	* src/heroes.c (play_demo,quit_yes_no,get_input_directions,
	play_game): Uncomment joystick handling code.
	(get_input_directions): Remove detection of joystick unplugging.
	(main): Call joy_init() if joystick handling not disabled.
	* src/const.c (key_or_joy_ready): Remove detection of joystick
	unplugging.
	(get_key_or_joy): Return correct KeySyms.

	* src/argv.c (print_help): Display -J and --no-joystick options.
	(long_options): Rename joystick-off to no-joystick.
	(parse_argv): Handle -J.

2000-06-22  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Suppress warning for unused parameters in empty functions.

	* src/sound.c [HAVE_MIKMOD] (update_thread): Flag parameter as unused.
	[!HAVE_MIKMOD] (update_thread,decode_sound_options): Likewise.
	* src/sfx.c [!HAVE_MIKMOD] (load_sfx_mode,event_sfx): Likewise.
	* src/joystick.c [!HAVE_MIKMOD] (_get_joystick_state): Likewise.
	* src/draw.c (draw_demo_stick): Likewise.

2000-06-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c: Translate all comments to English.
	(reinit_player): Rename flag to unusable, move the declaration
	of bitfl in the loop where it is used.
	(main) [PORT]: Remove obselete code.

2000-06-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Handles -G and --ggi-display options.

	* src/display.h (set_display_params): New function.
	* src/display.c: Include string.h and dmalloc.h.
	(display_params): New variable.
	(set_display_params): New function.
	(init_video): Pass display_params to ggiOpen.  Test return values
	of ggiOpen for errors.
	* src/argv.c (print_help): Display -G and --ggi-display options.
	(long_options): Declare -G and --ggi-display options.
	(parse_argv): Handles them.

2000-06-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/sound.c [!HAVE_MIKMOD]: Include stdio.h.
	[!HAVE_MIKMOD] (decode_sound_options): Add the argv0 parameters.

2000-06-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Support for sound and sfx volumes.

	* src/sound.c (set_volume): Set md_musicvolume.
	(halve_volume): Likewise.
	* src/sfx.c (event_sfx): Set the sample volume.

2000-06-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Support for options setup in ~/.heroes/heroesrc.  Always create
	~/.heroes/ directory.

	* src/heroes.c: Always include userdir.h.
	(main): Always setup userdir.  Call read_userconf before
	parse_argv.
	* acconfig.h (USER_DIR): Remove
	* configure.in: Check for prototypes support.  Suppress handling
	of USER_DIR.
	* src/Makefile.am (UDSRC): Remove.
	(EXTRA_DIST): Remove userdir.c and userdir.h.
	(heroes_SOURCES): Add userdir.c, userdir.h, getshline.h,
	getshline.c, userconf.c, and userconf.h.
	* src/argv.c (print_help): Display a pair of lines about
	~/.heroes/heroesrc.
	(parse_argv): Reset optind to 0 so that parse_argv can be called
	multiple times.
	* src/userconf.h: New file.
	* src/userconf.c: New file.
	* src/getshline.h: New file.
	* src/getshline.c: New file.

	Move MikMod specific options parsing to sound.c.

	* src/sound.h (nth_driver, driver_option): Remove.
	(decode_sound_options): New.
	* src/argv.c (parse_argv): Move the 'd' case to
	decode_sound_options above.
	* src/argv.c (get_int): Move to...
	* src/sound.c (get_int): ...here.

	Missing include for dmalloc.h.

	* src/misc.c [HAVE_DMALLOC]: Include dmalloc.h.

2000-06-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Support for dmalloc or electric fence.

	* src/txts.c [HAVE_DMALLOC]: Include dmalloc.h.
	* src/start.c [HAVE_DMALLOC]: Likewise.
	* src/sound.c [HAVE_DMALLOC]: Likewise.
	* src/sfx.c [HAVE_DMALLOC]: Likewise.
	* src/endscroll.c [HAVE_DMALLOC]: Likewise.
	* src/pcx.c [HAVE_DMALLOC]: Likewise.
	* src/menus.c [HAVE_DMALLOC]: Likewise.
	* src/intro.c [HAVE_DMALLOC]: Likewise.
	* src/heroes.c [HAVE_DMALLOC]: Likewise.
	* src/hedlite.c [HAVE_DMALLOC]: Likewise.
	* src/extras.c [HAVE_DMALLOC]: Likewise.
	* src/userdir.c [HAVE_DMALLOC]: Likewise.

	* acconfig.h: Remove useless #undefs.

	* configure.in: Add comments.  Add option --enable-mem-debug.
	Check for dmalloc or else efence.

2000-06-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Support for sound driver selection and arguments passing.

	* src/sound.h (print_drivers_list,nth_driver,driver_options): New.
	* src/sound.c (print_drivers_list,nth_driver,driver_options): New.
	(init_sound_engine): Initialize md_device with nth_driver. Call
	MikMod_Init qith driver_options.
	* src/argv.c (print_help): Display -n and -d options.
	(get_int): New.
	(long_options): Add -n and -d options.
	(parse_argv): Handle -n and -d options.

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

	* configure.in: Change version to 0.2.
	* TODO: Update.
	* README: Update.
	* THANKS: Update.
	* src/sfx/Makefile.am: New (was missing).

	Various (signedness) cleanups.

	* configure.in: Suppress -Wno-implicit flag, add -W.
	* src/txts.c (read_txti_cfg): nbr is now unsigned.
	* src/sound.h (setup,sync,error): Remove.
	* src/sound.c (setup,sync,error): Likewise.
	* src/savegame.c (checksaverec): i is now unsigned.
	* src/render.c (draw_lemming): Take unsigned pos as argument.
	(draw_level): Adapt to signedness changes of other variables.
	* src/gfx_reader.h (draw_text_help): Switch const and static tags
	in declaration of colorhelp.
	* src/structs.h (level_info_t): Cosmetic changes. Score and
	score_delta are now unsigned.
	* src/pcx.c (pcx_load):	compteur is now unsigned.
	* src/menus.c: #include misc.h.
	* src/heroes.c (load_level,compute_corner,ia_eval_dir_target,
	update_player): Adapt to signedness changes of other variables.
	(draw_round_info): Supress unused l argument. Adapt all callers.
	* src/const.h (camera_x,camera_y,corner_x,corner_y,corner_dx,
	corner_dy,inert_x,inert_y,nbr_tiles_cols,nbr_tiles_rows,
	map_info_2xt,map_info_2yt): Now	unsigned.
	* src/const.h (camera_x,camera_y,corner_x,corner_y,corner_dx,
	corner_dy,inert_x,inert_y,nbr_tiles_cols,nbr_tiles_rows,
	map_info_2xt,map_info_2yt): Likewise.
	(map_info): Complete initalizer.
	* src/argv.c: #include string.h

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

	* src/sfx/*.raw : Convert each .raw file into ...
	* src/sfx/*.wav : ... a .wav file.

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

	* src/txt_cfg/txti.cfg: Fix a spelling mistake.
	* src/txt_cfg/heroes.hlp: Transform COMMERCIAL INFORMATION into
	CONTACT.  Change the homepage address, add a bug report e-mail.
	Point to the THANKS file for extra credits.

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

	* src/heroes.c (jukebox_menu): Remove credit for EOS and MIDAS.
	Point to the file THANKS instead.

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

	Support for --disable-sound in sfx.c.

	* src/sfx.c
	[!HAVE_LIBMIKMOD] (read_sfx_conf,close_sfx_handle,
	load_sfx_mode,free_all_sfx,event_sfx): New (dummy) fonctions.

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

	Support for sound effects.

	* src/sound.h (mono): Remove.
	* src/sound.c (mono): Remove.
	(init_sound_engine): Switch to mono if --mono.
	(play_soundtrack): Set number of SFX voices.
	* src/sfx.c: Port all #ifdef'ed-out code. Translate comments.
	* src/sfx/sfx.cfg: Translate comments.  Adapt the file (list .wav,
	use a space to separate first letter from number).
	* configure.in: Include sfx un musicdir.  Generate
	src/sfx/Makefile.
	* src/argv.h (mono): New variable.
	* src/argv.c (mono): New variable.
	(print_help): Print help for --mono.
	(long_options): Add mono.
	(parse_argv): Handle mono.

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

	Suppress the orange line bug when playing a two player game.

	* src/const.c (glenz): Change type from char to unsigned char.
	* src/const.h (glenz): Likewise.

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

	Save options|saves|scores files in ~/.heroes/ by default.

	* src/scores.c (SCORES_FILE,name,scores_file): New.
	(write_scores,load_scores): Use scores_file.
	* src/savegame.c (SAVES_FILE,name,saves_file): New.
	(write_save_records,load_save_records): Use saves_file.
	* src/options.c (CONFIG_FILE,name,options_file): New.
	(write_options,load_options): Use options_file.
	(reinit_options): Use GII symkeys for default player keys.

	* src/heroes.c (main) [USER_DIR]: Call setup_userdir.
	* src/misc.h (strcat_alloc): New.
	* src/misc.c (strcat_alloc): New.
	* src/userdir.h: New file.
	* src/userdir.c: New file.

	* acconfig.h: Add USER_SCORES_FILE, USER_CONFIG_FILE,
	USER_SAVES_FILE, USER_DIR.
	* configure.in: Add --disable-user-config, --disable-user-scores,
	and --disable-user-saves options.
	* src/Makefile.am (heroes_SOURCES): Include userdir.c and
	userdir.h if needed.
	(EXTRA_DIST): New.
	* src/txt_cfg/Makefile.am (x_DATA): Empty (don't install
	scores.dat).
	(y_DATA): Empty (don't install options.dat and savegame.dat).

2000-05-31  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (enter_your_name): Use delete or backspace.
	(play_game): Likewise (in "savegame" menu).
	* src/menus.c (editor_menu): Likewise.

2000-05-30  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/display.c (init_video): Try to get 8bits display mode before
	any other depth.

2000-05-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	A smarter way to search for LibGGI.

	* acconfig.h (HAVE_PKG_LibGGI): New.
	* configure.in: Use AC_caolan_CHECK_PACKAGE to search LibGGI.
	* acinclude.m4 (AC_caolan_CHECK_PACKAGE): New.

2000-05-29  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Better keyboard handling (use GII unified scancodes, and
	display the correct names).

	* src/menus.c (search_keyname): New.
	(draw_key): Use search_keyname.
	(keyboard_menu): Don't limit scancodes to 8bits, use keysyms.
	* src/keyb.h (KEY_MAX): Change value from 0xff to 0xffff.
	* src/keyb.c: Don't include keysdef.h.
	(process_input_events): Use key.label instead of key.number.
	* src/heroes.c: Don't include keysdef.h.
	(play_demo,pause,get_input_directions,play_game): Use keysyms.
	* src/Makefile.am (heroes_SOURCES): Add keysdef.c.
	(BUILT_SOURCES): New.
	(keysdef.c): New.
	* src/keysdef.h: Erase the old file. This now defines
	struct keynames_s.
	* configure.in: Figure out where is ggi/keyboard.h. Test for cpp,
	and awk.

2000-05-27  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Draw in memory before bliting to visual with any depth.
	Original patch from Pierre Baillet <octplane@via.ecp.fr>.

	* src/display.c (render_visu): New.
	(init_video): Open render_visu and acquire a direct-buffer
	in render_visu. visu has now an unconstrained depth.
	(uninit_video): Close render_visu.
	(set_color): Set color in render_visu too.
	(set_pal): Set colors in render_visu too.
	(vsynchro): CrossBlit from render_visu to visu.
	* src/keyb.c (init_keyboard_map): Cosmetic cleanup.

	Suppress a buffer overflow.

	* src/pixelize (pixel16inline2): Rename to...
	(pixel_16_inline_2): ... this.  Draw one line less.
	(pixelize_16): Adapt.
	(pixel32inline2): Rename to...
	(pixel_32_inline_2): ... this.  Draw one line less.
	(pixelize_32): Adapt.
	(pixel64inline2): Rename to...
	(pixel_64_inline_2): ... this.  Draw one line less.
	(pixelize_64): Adapt.

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

	* src/intro.c (show_intro): Don't show wrong copyright info.
	* src/txt_cfg/heroes.hlp: Update copyright info.

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

	* src/heroes.c (play_game): Fix handling of escape in
	savegame menu.

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

	* src/keyb.c (process_input_events): Read and ignore KeyRepeat
	events so that further calls of get_key don't see them.

2000-05-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/sound.c (init_sound_engine): Register only the xm loader.
	* TODO: Updated.

2000-05-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/heroes.c (play_game): Suppress an infinite loop
	when waiting for the Escape key by calling process_input_event.

	* src/keyb.h (KEY_MAX): New.
	(keyboard_map): Define using KEY_MAX.
	* src/keyb.c (keyboard_map): Likewise.
	(init_keyboard_map): Use KEY_MAX.
	(process_input_events): Ensure that keyboard_map won't overflow.

2000-05-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	More arguments fixes...

	* src/argv.c (long_options): Clean up. Correct values.

2000-05-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Fix a bug in argument handling.

	* src/argv.c (parse_argv): Handle 0 return from getopt_long.
	Remove cases that can be processed directly by getopt_long.
	Move long_option array out of parse_argv.

2000-05-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Evaluate $mandir before echoing.

2000-05-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	From Jean Delvare <delvare@ensicaen.ismra.fr>.

	* src/display.c (init_video): Add newline to error message.

2000-05-24  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Don't supply help2man in the dist.

	* configure.in: Check for help2man.
	* man/Makefile.am: Build heroes.6 if HAVE_HELP2MAN.  Strip one
	extra space.
	(EXTRA_DIST): Remove help2man.
	* man/help2man: Delete.
	* README: Updated.

2000-05-22  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* THANKS: New file.
	* Makefile.am (EXTRA_DIST): Add THANKS.

2000-05-22  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Better error handling when setting video mode.

	* src/display.c (init_video): Exit if correct video unavailable.
	* README: Update.

	Fix filenames modified by the big renaming patch.

	* src/intro/lezard.pcx: Renamed to ...
	* src/intro/erase.pcx: ... this.
	* savegame.c: Fix loaded filenames.
	* src/gfx_reader.h: Likewise.
	* src/pcx.c: Display filename on error.
	* src/heroes.c: Fix loaded file names.

2000-05-21  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Build a man page.

	* Makefile.am (SUBDIRS): Add man subdir.
	* configure.in: Check for perl. Output man/Makefile. Display $mandir.
	* src/argv.c (version): Don't indent authors.
	(print_help): Display help.
	* man/Makefile.am: New file.
	* man/help2man: New file.

	* src/draw.c: Cosmetic changes.

2000-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* TODO: Update.

2000-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Rename some source files.

	* src/vga_.c: Rename to ...
	* src/display.c: ... this.
	* src/vga_.h: Rename to ...
	* src/display.h: ... this.

	* src/sdf.c: Rename to ...
	* src/endscroll.c: ... this.
	* src/sdf.h: Rename to ...
	* src/endscroll.h: ... this.

	* src/readvga.h: Rename to ...
	* src/gfx_reader.h: ... this.

	* src/pixel.c: Rename to ...
	* src/pixelize.c: ... this.
	* src/pixel.h: Rename to ...
	* src/pixelize.h: ... this.

	* src/erreurs.c: Rename to ...
	* src/errors.c: ... this.
	* src/erreurs.h: Rename to ...
	* src/errors.h: ... this.

	* src/clavier.c: Rename to ...
	* src/keymap.c: ... this.
	* src/clavier.h: Rename to ...
	* src/keymap.h: ... this.

	* src/affvga.c: Rename to ...
	* src/draw.c: ... this.
	* src/affvga.h: Rename to ...
	* src/draw.h: ... this.

	* src/timer_.c: Rename to ...
	* src/timer.c: ... this.
	* src/timer_.h: Rename to ...
	* src/timer.h: ... this.

	* src/piece.h: Rename to ...
	* src/structs.h: ... this.

	* src/fonte.h: Rename to ...
	* src/font.h: ... this.
	* src/fontem.h: Rename to ...
	* src/font_menu.h: ... this.
	* src/fonteh.h: Rename to ...
	* src/font_help.h: ... this.

	* src/Makefile.am (heroes_SOURCES): Adjust.

	* Adjust all includers.

2000-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Rename all functions and global variables as given by the two
	columns below (left = old name, right = new one):

	affvga          draw_text
	affvgaclipleft  draw_text_clipped_left
	affvgaclipright draw_text_clipped_right
	affvgasin       draw_text_waving
	affvga320       draw_text_320
	affvga320       draw_text_waving_320
	affvgatype      draw_text_array
	affvga320type   draw_text_array_320
	afftyponus      draw_text_bonus
	transp          copy_rect_transp
	transp8         copy_rect_transp_8
	transpred       copy_rect_transp_red
	transp320       copy_rect_transp_320
	transpz32       copy_32x32_transp_z
	copie4          copy_rect_4
	copie2          copy_rect_2
	copie2320       copy_rect_2_320
	copie4320       copy_rect_4_320
	demostick       draw_demo_stick
	transpomb       copy_rect_transp_shadow

	touche          get_key
	toucheready     key_ready

	explo1l         fst_explo_list
	explo2l         snd_explo_list
	tunnelsc        tunnel_square_io
	radarcolor      radar_trail_color
	collicolor      radar_wall_color
	aleamode        bonus_proba_array
	bonusint        bonus_points
	roundsval       rounds_nbr_values
	souscasedec     square_offset_320
	souscasedec384  square_offset
	modenames       mode_name
	d2s             d2w
	s2d             w2d
	menu            in_menu
	demo            in_demo
	jukeboxfl       in_jokebox
	frametot        frame_cur
	framenew        frame_old
	nbrdalles_x     nbr_tiles_cols
	nbrdalles_y     nbr_tiles_rows
	flag_x          camera_stop_x
	flag_y          camera_stop_y
	tmpbuffer       render_buffer
	planinfo        map_info
	planinfo2xt     map_info_2xt
	planinfo2yt     map_info_2yt
	planinfo2xwrap  map_info_2xwrap
	planinfo2ywrap  map_info_2ywrap
	fonte           main_font_img
	icones          icons_img
	vehic           vehicles_img
	bonusa          bonus_a_img
	bonusb          bonus_b_img
	typonus         bonus_font_img
	jukebox         jukebox_img
	dalles          tile_set_img
	deuxplr         two_players
	trainloc        trail_pos
	trainsens       trail_way
	trainnbr        trail_offset
	trainsize       trail_size
	coulplr         col2plr
	plrcoul         plr2col
	plan            level_map
	lastexplo       last_explo
	doccup          square_occupied
	dtsens          square_way
	dradar          square_radar_wall
	dcolli          square_wall
	dexplo          square_explosion
	dexplomorts     square_dead_explosion
	dexploptr       explo_list_ptr
	dexplox         explo_list_pos_x
	dexploy         explo_list_pos_y
	dexplonbr       explo_nbr
	dexplot         square_explosion_type
	dbonus          tile_bonus
	dbonuscpu       tile_bonus_cpu
	dbonustmp	bonus_time
	dbonusptr	bonus_ptr
	dbonuslook      square2tile
	dwrap           square_wrap
	dref            square_offset2coord
	dcolor          square_object
	nbrptibplr      lemmings_per_players
	nbrptibtot      lemmings_total
	dptib           square_lemmings_list
	dtds            square_dead_lemmings_list
	ptibsupport     lemmings_support
	dbonusnbr       bonus_total_nbr
	dbonusnbre      bonus_real_nbr
	dcolornbr       objects_nbr
	dbonuscur       next_bonus_to_update
	scacces         square2offset
	decalbonus      bonus_anim_offset
	radarpos        radar_target_pos
	radarcurpos     radar_current_pos
	gamemode        game_mode
	gamemagic       game_magic
	centerx         camera_center_x
	clockanim       clock_anim_offset
	ptibanim        lemmings_anim_offset
	ptibdecal       lemmings_move_offset
	invinc          invincible
	demoready       demo_ready
	demoflag        demo_done
	touchejoyready  key_or_joy_ready
	touchejoy       get_key_or_joy
	glenzbox        draw_glenz_box
	defpallum       set_pal_with_luminance

	fatal           fatal_error

	extralst        extra_list
	extraflg        extra_selected_list
	extranbr        extra_nbr
	makeextralst    make_extra_list

	fonteloc        font_pos
	fontepre        font_first_ascii
	fontetransp     font_transp_color
	fonteY          font_height
	fonteX          font_width

	fontehelpX      help_font_width

	dallenom        tile_set_name
	glenznom        glenz_name
	modulenom       soundtrack_name
	levellst        level_list
	levelnbr        level_list_nbr
	levelinfo       level_wrapped
	levelrndlst     level_full_list
	levelrndnbr     level_full_list_size
	questpos        current_quest_level
	listemod        soundtrack_list
	auteur          soundtrack_author_list
	modnbr          soundtrack_current_nbr
	modtime         soundtrack_time
	levelfinished   level_is_finished
	skip1stmoves    ia_skip_firsts_moves
	evaldirmax      ia_max_depth
	evaldirlvl      ia_cur_depth
	evalinvinc      ia_is_invincible
	evalplr         ia_player
	targetx         ia_target_x
	targety         ia_targer_y
	midx            ia_wrap_x
	midy            ia_wrap_y
	lowmidx         ia_wrap_left
	lowmidy         ia_wrap_right
	DEMOTIME        DEMO_DURATION
	affok           enable_blit
	aleabonus       bonus_proba
	aleabonustot    bonus_proba_sum
	mousefound      mouse_found
	txt             txt_tmp
	txtbonus        txt_bonus
	txtbonustempo   txt_bonus_tempo
	play            play_game
	randbonus       random_bonus
	newbonus        add_random_bonus
	newbonust       add_bonus
	delbonus        rem_bonus
	newcolor        add_color
	newcash         add_cash
	efface_plr      erase_player
	reinitplr       reinit_player
	loadlevel       load_level
	endlevel        unload_level
	calc_corner     compute_corner
	sendrle         write_rle
	savepcx         save_pcx
	afftxtbonus     draw_txt_bonus
	showtxtbonus    show_txt_bonus
	jukeboxmenu     jukebox_menu
	loadlvlpasrand  load_level_from_number
	initrandlvllst  compute_level_full_list
	freerandlvllst  free_level_full_list
	randlvlpick     random_level
	loadlvlrand     load_random_wrapped_level
	loadlvlrandround load_random_level
	enteryourname   enter_your_name
	playmenu        play_menu
	outputscreen    output_screen
	thetapoint      theta_prime
	PASEULER        EULER_STEP
	NBRPAS          NBR_STEPS
	tempsecoule     elapsed_time
	pendule_init    pendulum_init
	pendule_un_pas  pandulum_one_step
	pendule_maj     pendulum_update
	growtrail       grow_trail
	shrinktrail     shrink_trail
	effacetrace     erase_trail
	evaldist        ia_eval_dist
	evaldirinline   ia_eval_dir_target_inline
	evaldirbonusinline ia_eval_dir_bonus_inline
	evaldirecraseinline ia_eval_dir_lemming_inline
	evaldirdollarinline ia_eval_dir_cash_inline
	evaldircolorinline ia_eval_dir_color_inline
	evalposcote     ia_eval_neighb_pos
	evaldir         ia_eval_dir_target
	evaldirecrase   ia_eval_dir_lemming
	evaldircolor    ia_eval_dir_color
	evaldirdollar   ia_eval_dir_cash
	evaldirbonus    ia_eval_dir_bonus
	gototargetinline ia_goto_target_inline
	gotobonusinline ia_goto_bonus_inline
	gotoecraseinline ia_goto_lemming_inline
	gotocolorinline ia_goto_color_inline
	gotodollarinline ia_goto_cash_inline
	gototarget      ia_goto_target
	gotobonusnear   ia_goto_nearest_bonus
	gotoecrasenear  ia_goto_nearest_lemming
	gotocolornear   ia_goto_nearest_color
	gotodollarnear  ia_goto_nearest_cash
	trouvesens      find_free_way
	avplr           update_player
	majexplo        update_explo
	majptib         update_lemmings
	majbonus        update_bonus
	majall          update_all
	playdemo        play_demo
	prepdemo        load_demo
	scoresmenu      scores_menu
	mainmenu        main_menu
	quit_yn         quit_yes_no
	inputdir        get_input_directions
	aff_endlevelinfo draw_end_level_info
	aff_roundinfo   draw_round_info
	readlvllst      read_level_list

	fadepal         fade_pal
	introimg        intro_img
	lezardata       erase_data
	lezardatac      erase_data_cur
	coulnbr         color_nbr
	lezardcoulptr   erase_color_ptr
	copiemoto1      copy_vehicle_1
	copiemoto2      copy_vehicle_2
	lezardcalc      compute_erase_data
	lezard          erase
	showintro       play_intro

	joydetected     joystick_detected
	joylimitup      joystick_limit_up
	joylimitright   joystick_limit_right
	joylimitdown    joystick_limit_down
	joylimitleft    joystick_limit_left

	_getjoystate    _get_joystick_state
	getjoystate     get_joystick_state
	isjoyup         is_joystick_up
	isjoydown       is_joystick_down
	isjoyleft       is_joystick_left
	isjoyright      is_joystick_right
	isjoybuta       is_joystick_button_a
	isjoybutb       is_joystick_button_b

	clavier         keyboard_map
	instkbdhdl      init_keyboard_map
	uninstkbdhdl    uninit_keyboard_map

	keysdefstr      key_string

	menufond        background_menu
	controlmenu     control_menu
	afftouche       draw_key
	keybmenu        keyboard_menu
	soundmenu       sound_menu
	screenmenu      screen_menu
	gamemenu        game_menu
	extramenu       extra_menu
	demoinfo        demo_info
	optionmenu      option_menu
	affquitmenu     draw_quit_menu
	quitmenu        quit_menu
	affplaymenu     draw_play_menu
	affmainmenu     draw_main_menu
	tilesnames      tile_sets_names
	loadtilesprev   load_tile_set_preview
	editselect      editor_selector
	editormenu      editor_menu
	editorpremenu   editor_first_menu
	aff_savegameinfo draw_saved_games_info

	writeoptions    write_options
	reinitoptions   reinit_options
	loadoptions     load_options

	scrsize         screen_size
	scrmap          radar_map
	scrglenz        use_glenz
	scrinfo         display_infos
	scrcont         luminance
	scrinrt         inertia
	mus             music
	musvol          music_volume
	sfxvol          sfx_volume
	ctrlone         ctrl_one
	ctrltwo         ctrl_two
	autoone         autopilot_one
	autotwo         autopilot_two
	gameghost       ghosts
	gamespeed       speed
	gameplr         player_color
	keysdef         player_keys
	t_opt           options_t

	d_haut          d_up
	d_droite        d_right
	d_bas           d_down
	d_gauche        d_left
	s_haut          w_up
	s_droite        w_right
	s_bas           w_down
	s_gauche        w_left
	c_bas           c_down
	c_gauche        c_left
	c_haut          c_up
	c_droite        c_right
	t_nbr           type_nbr
	t_noms          type_name
	sortie          output
	nbrimages       frame_nbr
	vitesse         speed
	tunnel_s        tunnel_t
	anim_s          anim_t
	paramunion      param_u
	numero          number
	dallemem        tile_t
	infodallemem    tile_info_t
	depart          start
	departsens      start_way
	dallepcx        tile_set_name
	lvlmodule       soundtrack_name
	level_header    level_header_t
	sens            way
	nextsens        next_way
	oldsens         old_way
	oldsens2        old_old_way
	senstun         tunnel_way
	sc              square
	invcom          inversed_controls
	scorepp         score_delta
	turbol	        turbo_level
	turbolpp        turbo_level_delta
	deform          rotozoom
	sensroto        rotozoom_direction
	deformgel       waves
	deformgelbeg    waves_begin
	invinc          invincible
	vies            lifes
	notdelay        notify_delay
	tinv            tunnel_inverse
	autopil         autopilot
	comportement    behaviour
	targ            target
	nbrbonhommes    lemmings_nbr
	nbrmartiens     martians_nbr
	joueur          player_t
	ptibonhomme     lemming
	pts             points
	topscore        top_score
	savegame        saved_game

	pixel1          pixelize_1
	pixel2inline    pixelize_2_inline
	pixel2          pixelize_2
	pixel4inline    pixelize_4_inline
	pixel4          pixelize_4
	pixel8inline    pixelize_8_inline
	pixel8          pixelize_8
	pixel16inline   pixelize_16_inline
	pixel16         pixelize_16
	pixel32inline   pixelize_32_inline
	pixel32         pixelize_32
	pixel64inline   pixelize_64_inline
	pixel64         pixelize_64

	nbrlignes       nbr_lines
	fonteh          font_help_img
	helpics         help_pics_img
	transphelp      copy_rect_transp_help
	transphelpgl    copy_rect_transp_help_with_glenz
	transphelpfgl   copy_rect_transp_help_full_glenz
	affhelpvga      draw_text_help
	showhelp        show_help
	readvga         graphic_reader

	partiel4b       copy_tile
	dalletransp     copy_tile_transp
	affbonus        draw_bonus
	sousdalletransp copy_square_transp
	afftrail        draw_trail_real
	affvehic        draw_vehicle_tail
	affvehic2       draw_vehicle_head
	afftrain        draw_trail
	afftrain2       draw_trail_tail
	transpbonh      copy_lemming_transp
	affpyra         draw_color
	affcash         draw_cash
	affbonh         draw_lemming
	transptache     copy_dead_lemming_transp
	afftache        draw_dead_lemming
	draw_lvl        draw_level
	affradar        draw_radar_map
	affscore        draw_score
	afflogoinfo     draw_logo_info
	aff_buffer_tmp1 display_buffer_tmp1
	aff_buffer_dyna1 display_buffer_moving
	aff_buffer_half display_two_buffers
	aff_buffer_half_dyna1 display_two_buffers_moving
	aff_buffer_half_dyna2 display_two_buffers_moving_and_clear

	setmagic        set_magic
	allocmagic      compute_magic
	findmagic       find_magic
	checksaverec    check_save_records
	reinitsaverec   clear_save_records
	writesaverec    write_save_records
	loadsaverec     load_save_records

	cmpscores       cmp_scores
	sortscores      sort_scores
	reinitscores    clear_scores
	checkscores     check_scores
	writescores     write_scores
	loadscores      load_scores

	sbuffer         scroll_buffer
	sauts           jumps
	couleurs        colors
	fond            background_img
	copiefond       copy_background
	preppage        draw_background
	affpage         display_page
	defpalfade      set_pal_fade
	renderpage      render_background
	sdf             end_scroll

	maxevent        max_events
	filenamet       filename_t
	sfxnames        sfx_names
	sfxloaded       sfx_loaded
	sfxhandles      sfx_handles
	playhandles     play_handles
	eventhdl        event_handle
	maxsfx          max_sfx
	virem           remove_comments
	aspc            forward_spaces
	readsfxcfg      read_sfx_conf
	closesfxhdl     close_sfx_handle
	msfx            mark_sfx
	stgame          std_sfx_set
	freeallsfx      free_all_sfx
	loadsfxmode     load_sfx_mode
	eventsfx        event_sfx

	modvolume       set_volume
	halfvolume      halve_volume
	init_midas      init_sound_engine
	close_midas     uninit_sound_engine
	chargexm        load_soundtrack
	videxm          unload_soundtrack
	playxm          play_soundtrack

	frametimer      frame_timer
	installetimer   init_timer
	desinstalletimer uninit_timer
	readsettimer    read_and_reset_timer
	readsettimernozero read_and_reset_timer_non_zero
	readsettimer_withvalue read_and_set_timer_with_value
	updatetimer     update_timer
	updatetimer_block update_timer_block

	maxtxti         max_txti
	readtxticfg     read_txti_cfg
	close_video     uninit_video
	defcoul         set_color
	defpal          set_pal

	aff_buffer_def  rotozoom_buffer
	aff_buffer_def_half rotozoom_half_buffer
	hlzoom          horizontal_zoom_wave
	hlzoom2         horizontal_zoom_flip
	vlzoom          vertical_zoom_wave
	whichligne      which_line
	whichcol        which_column
	whichoffset     which_offset
	aff_buffer_gel  wave_buffer
	aff_buffer_gel_half wave_half_buffer
	flippage        flip_buffer
	coinglz         corner_buffer_glenz
	coin1           corner_buffer_begin
	coin2           corner_buffer_middle
	coin3           corner_buffer_end
	coin            corner_buffer
	visualsinit     compute_lut

2000-05-20  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Misc cleanups.

	* src/sdf.c (texte): Remove.
	(sdf): Don't load srtattxt.pcx.
	* src/render (draw_lvl): Remove useless comments.
	* src/optionss.h (struct t_opt): Document blocs of options.
	* src/menus.c (editormenu): Lowercase newlevel.pcx.
	* src/intro.c (lezard): Cosmetic change in prototype.
	* src/extras.c (makeextralst): Remove old DOS code.
	* src/clavier.h (etatclav): Remove.
	* src/clavier.c (etatclav): Remove.
	* src/intro/Makefile.am (x_DATA): Add start.pcx.

2000-05-19  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Fix the extramenu bug.

	* src/misc.c (strupr): New.
	* src/misc.h (strupr): New.
	* src/menus.c (extramenu): Upper case the filenames before
	displaying them.
	* TODO: Remove associated entry.

2000-05-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/timer_.c (updatetimer): Typo.
	(installetimer): Init start_time.

2000-05-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/intro/Makefile.am (x_DATA): Specify the exact filenames.

2000-05-18  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Use gettimeofday to simulate the frame timer (don't use
	times anymore).

	* src/timer_.c: Use HAVE_SYS_TIME to #include the correct header.
	(start_time): Change type to struct timeval.
	(frame_lenght): Remove.
	(usec_frame_lenght): New.
	(frames_per_second): New.
	(installetimer): Don't try to compute the retrace time anymore,
	fix it to 70FPS instead.
	(readsettimer_withvalue,updatetimer): Adapted to use gettimeofday.
	(updatetimer_block): Comment added.
	* configure.in: Check for sys/time.h.

2000-05-17  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Add the intro and tweak the timer to wait the next
	frame in updatetimer_block.

	* src/intro.c (lezardata,lezardatac,lezardcoulptr): Now unsigned.
	(img2vram,copiemoto1,copiemoto2,lezardcalc,
	lezard,antialias,show_intro): Tag static.
	(lezard,antialias): Translated from assembly to C.
	* src/heroes.c (main): Call showintro.  Call installtimer right
	after init_video.
	* src/Makefile.am (SUBDIRS): Add intro.
	(heroes_SOURCES): Add intro.c.
	* src/intro/Makefile.am: New file.
	* configure.in: Add $LIBS on linker flags status line. Generate
	src/intro/Makefile.

	* src/const.c (vsynch): Call updatetimer_block instead of updatetimer.
	* src/timer_.c (updatetimer_block): New.
	* src/timer_.h (updatetimer_block): New.

2000-05-17  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Guess canonical host.  Exit if LibGGI is not
	usable. Add -NDEBUG to $CFLAGS.  Display configuration status.
	* config.guess: New file.
	* config.new: New file.
	* acconfig.h (HOST): Added.
	* src/argv.c (version): Display canonical host.

2000-05-16  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Tag local functions with static.

	* src/sound.c (init_midas): Typo.
	(update_thread): Tag static.
	* src/sfx.c (filenamet,sfxnames,sfxloaded,sfxhandles,
	playhandles,eventhdl,maxsfx,tmp3,virem,stgame): #ifdef out.
	(readsfxcfg,closesfxhdl,freeallsfx,loadsfxmode,eventsfx): Remove
	extern tag.
	* src/scores.c (cmpscores,checkscores): Tag static.
	* src/savegame.c (setmagic,checksaverec): Tag static.
	* src/render.c (partiel4b,dalletransp,affbonus,sousdalletransp,
	afftrail,affvehic,affvehic2,afftrain,afftrain2,transpbonh,
	affpyra,affcash,affbonh,transptache,afftache): Tag static.
	* src/pixel.c (pixel2inline,pixel4inline,pixel8inline,
	pixel16inline,pixel16inline2,pixel32inline,pixel32inline2,
	pixel64inline,pixel64inline2): Tag static.
	* src/pcx.c (delta): Tag static.
	* src/menus.c (controlmenu,afftouche,keybmenu,soundmenu,
	screenmenu,gamemenu,extramenu,loadtilesprev,editselect,
	editormenu): Tag static.
	(loadtilesprev): Lowercase the strings.
	* src/joystick.c (_getjoystate): Tag static.

2000-05-16  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* configure.in: Add support for --disable-sound and
	--enable-debug.  Add more compiler warning and
	optimization flags.
	* README (Installation): Document --disable-sound and
	--enable-debug.

	* src/Makefile.am (heroes_LDADD): Remove.

	* TODO: Update.

2000-05-15  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* TODO: Update.
	* README: Update.
	* HISTORY: New file.

2000-05-13  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Sound with MikMod and pthread.

	* src/sound.h (init_midas): Return status.
	* src/sound.c [HAVE_LIBMIKMOD]: Use Mikmod.
	[!HAVE_LIBMIKMOD]: Empty implemetation.

	* src/heroes.c (loadlevel): Downcase module name.
	(jukeboxmenu): Likewise.
	(pause): Likewise.
	(playmenu): Downcase filename.

	* acconfig.h: Add HAVE_LIBMIKMOD.
	* configure.in: Test for libmikmod.
	* acinclude.m4: Add AC_PATH_GENERIC macro.

	* src/mod/Makefile.am: New file.

	* TODO: Add some notes.

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

	Handle command line options with getopt_long.

	* src/argv.h: New.
	* src/argv.c: New.

	* src/sfx.h (nosfx): Move to argv.h.
	* src/sfx.c (nosfx): Move to argv.c.

	* src/savegame.h (x10sav): Move to argv.h.
	* src/savegame.c: #include argv.h.
	(x10sav): Move to argv.c.

	* src/options.h (swapside): Move to argv.h.

	* src/heroes.c: #include argv.h.
	(levelnom): Remove.
	(play): Use level_name from argv.h instead of levelnom.
	(main): Remove all command line parsing code.
	(doublefx,snap,joyoff,devparm,loadulevel,directmenu,
	reinitsco,reinitopt,reinitsav): Moved to argv.h and argv.c.

	* src/render.c: #include argv.h.

	* src/Makefile.am (heroes_SOURCES): Add argv.c and argv.h.

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

	A working autoconf/automake configuration.

	* src/sfx.c (readsfxcfg): Return 0.

	* src/Makefile.am (SUBDIRS): New.
	* src/txt_cfg/Makefile.am: New.
	* src/sprites/Makefile.am: New.
	* src/rsc/Makefile.am: New.
	* src/level/Makefile.am: New.
	* src/extralvl/Makefile.am: New.

	* acinclude.m4: New, defines AC_DEFINE_DIR.
	* configure.in: Use AC_DEFINE_DIR.

2000-05-09  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Some fixes, plus autoconf/automake installation.

	* src/sfx.c: #ifdef out all the code.

	* src/heroes.c: Rename to ...
	* src/heroes.h: ... this.
	* src/sdf.c: Adapt to #incluide heroes.h.
	* src/heroes.c: Likewise.

	* acconfig.h: Used to generate src/config.h.
	* src/config.h: Remove from project (generated by configure).
	* src/Makefile: Likewise.
	* src/level/demo.lst: Delete.

	* README: New file.
	* AUTHORS: New file.
	* NEWS: New file.
	* COPYING: New file.
	* INSTALL: New file.

	* Makefile.am: New file.
	* configure.in: New file.
	* src/Makefile.am: New file.

	* install-sh: New file.
	* aclocal.m4: New file.

2000-05-08  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Recode each source file from MSDOS to latin1 charset.
	Indent -br -ce each source file.
	Insert copyright header on top of each source file.

2000-05-08  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Handle keyboard events.

	* src/keyb.h
	(clavier): Don't need to be volatile anymore.
	(instkbdfil,uninstkbdfil,instkbdcc,uninstkbdcc): Remove.
	(process_input_events): New.
	* src/keyb.c: Likewise.

	* src/menus.c (keybmenu): Call process_input_events.
	* src/heroes.c
	(playdemo): Call process_input_events.
	(quit_yn): Use touchejoy instead of clavier.
	(play): Call process_input_events. Use touchejoy instead of
	clavier.
	(main): Remove calls to instkbdcc, instkbdfil, uninstkbdfil,
	uninstkbdcc.

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

	* src/visuals.c (aff_buffer_def_half): Thinko.

	* src/timer_.h (readsettimer_withvalue): New.
	* src/heroes.c (loadlevel): Use it.
	* src/timer_.h (readsettimer_withvalue): New.
	(frame_lenght): New.
	(installetimer): Calculate frame_lenght.
	(updatetimer): Use frame_lenght.

	* src/readvga.c (transphelpfgl): Specify signedness of some char
	variables.
	* src/heroes.c (outputscreen): Likewise.

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

	* src/visuals.c (aff_buffer_def_half): Handle the case where a
	full line may be black.

	* src/txt_cfg/options.dat: Overwrite.

	* src/render.c (affbonh,afftache): Correct use of ptibsupport.
	* src/heroes.c (loadlevel,endlevel): Likewise.

	* src/pixel.c
	(pixe8inline,pixe16inline,pixe32inline,pixe64inline): Correct
	wrong calculation.

	* src/readvga.c (showhelp): Use GII keysyms.
	* src/menus.c: Likewise.
	* src/heroes.c: Likewise.
	* src/clavier.h: #include ggi/keyboard.h.

	* src/const.h (touchejoy): Return int.
	* src/const.c (touchejoy): Likewise.

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

	* src/visuals.c (aff_buffer_def): Write on 320 columns, not 319.
	(aff_buffer_def_half): Write on 160 columns, not 159.
	* src/vga_.c
	(init_video): Call ggiSetColorfulPalette.
	(defcoul,defpal): Scale colors by 1024.
	* src/render.c (partiel4b): Typo.
	(draw_lvl): Specify signedness of some char
	variables (or promote some other to int).
	* src/piece.h: Use proper syntax for __attribute__ ((packed)).
	* src/heroes.c: Various tweaks for timer.
	* src/const.c (vsynch): Update frametot.
	* src/Makefile (OBJ): Remove finfo.o.
	* src/timer_.c (updatetimer): Don't use CLOCKS_PER_SEC.

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

	Interface with GGI. Replace timer stuff.
	Miscellaneous fixes.

	* src/vga_.h: Remove all DOS stuff.  Specify signedness
	of some char variables (or promote some other to int).
	* src/vga_.c: Likewise.  Interface with libggi.

	* src/timer_.h:  Specify signedness
	of some char variables (or promote some other to int).
	* src/timer_.c:

	* src/sound.c (init_midas): Remove video mode switching.
	* src/sdf.c (sdf): Likewise.
	* src/intro.c (show_intro): Likewise.

	* src/menus.c: Remove tests of demoversion.

	* src/keyb.c: #ifdef out all the code.
	* src/joystick.c (_getjoystate): Do nothing.

	* src/heroes.c: Remove reference to finfo.h. Remove tests of
	demoversion.
	(readlevellst): Prevent NULL dereferencing.
	(main): Init srand from time(0). Call init_video and close_video.

	* src/extras.c: Free the correct buffer.

	* src/erreurs.c: Call close_video.

	* src/const.h (demoversion): Remove.
	(windaube): Remove.
	(frametot): Don't need to be volatile anymore.
	* src/const.c: Likewise.
	(vsynch): Use vsynchro and updatetimer.
	(prevr): Remove.

	* src/clavier.h
	(touche): Return int.
	(toucheready): Return int.
	* src/clavier.c
	(touche): Use ggiGetc.
	(toucheready): Use ggiKbhit.

	* Makefile
	(CFLAGS): Add debugging symbols.
	(LDFLAGS): Link with libggi.
	(OBJ): Remove intro.o and start.o. Add timer_.o and keyb.o.

	* src/timer_.c: New file (replace timer_.asm).
	* src/timer_.asm: Delete.
	* src/misc.h: New file (declare strlwr).
	* src/misc.c: New file (define it).

	* src/finfo.c: Delete.
	* src/finfo.h: Delete.

2000-05-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Translate assembly code back to C.

	* src/visuals.c
	(rotoinline): Remove.
	(aff_buffer_def): Add C code to replace rotoinline call.
	(rotoinline2): Remove.
	(aff_buffer_def_half): Add  C code to replace rotoinline2 call.
	* src/render.c (partiel4b): Translate to C.
	* src/pixel.c
	(pixel2inline,pixel4inline,pixel8inline,pixel16inline,pixel16inline2,
	pixel32inline,pixel32inline2): Translate to C.
	(pixel2,pixel4,pixel8,pixel16,pixel32): Adapt.

2000-05-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Move all directory #definitions in the same file (src/config.h).

	* src/config.h: New file.

	* src/txts.c: #include src/config.h.
	* src/start.c: Likewise.
	(introdir): Remove.
	* src/sdf.c: Likewise.
	(introdir): Remove.
	* src/scores.c: Likewise.
	* src/savegame.c: Likewise.
	* src/readvga.c: Likewise.
	* src/options.c: Likewise.
	* src/menus.c: Likewise.
	* src/intro.c: Likewise.
	* src/heroes.c: Likewise.
	* src/hedlite.c: Likewise.
	(rscdir,nivdir,heddir,moddir): Remove.
	* src/finfo.c: Likewise.
	* src/extras.c: Likewise.
	(extradir): Remove.
	* src/const.c: Likewise.
	(spritedir,rscdir,nivdir,heddir,moddir,introdir,extradir): Remove.
	* src/sfx.c: Likewise.
	(sfxdir): Remove.
	* src/extras.h (extradir): Remove.
	* src/const.h (spritedir,rscdir,nivdir,heddir,moddir,introdir): Remove.
	* src/Makefile: New file.

2000-05-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	For each X.c: #include X.h and solve the conflicts.

	* src/txts.c: #include txts.h
	* src/start.c: #include src/start.h.
	* src/sound.c: #include src/sound.h.
	* src/sfx.c: #include src/sfx.h.
	* src/sdf.c: #include src/sdf.h.
	* src/scores.c: #include src/scores.h.
	* src/savegame.c: #include src/savegame.h.
	* src/pixel.c: #include src/pixel.h.
	* src/options.c: #include src/options.h.
	* src/menus.c: #include src/menus.h.
	* src/keyb.c: #include src/keyb.h.
	* src/joystick.c: #include src/joystick.h.
	* src/intro.c: #include src/intro.h.
	* src/heroes.c: #include src/heroes.h.
	* src/heroes.h: Correct.
	* src/hedlite.c: #include src/hedlite.h.
	* src/finfo.c: #include src/finfo.h.
	* src/erreurs.c: #include src/erreurs.h.
	* src/const.c: #include src/const.h.
	* src/const.h: Correct.
	* src/clavier.c: #include src/clavier.h.
	* src/affvga.c: #include src/affvga.h.  Specify signedness
	of some char variables (or promote some other to int)
	* src/affvga.h: Adapt.

	* src/hcdplay.h: Delete.
	* src/test.c: Delete.

2000-05-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Many changes allowing all the following files to compile : sfx.c
	pcx.c erreurs.c joystick.c clavier.c const.c options.c scores.c
	savegame.c intro.c vga_.c menus.c affvga.c extras.c visuals.c
	render.c start.c sound.c pixel.c finfo.c sdf.c txts.c misc.c.

	* src/visuals.h: Specify signedness of	some char variables
	(or promote some other to int).
	* src/render.h: Likewise.
	* src/visuals.c: Likewise. #ifdef out some assembly code.
	* src/render.c: Likewise.
	* src/pixel.c: Likewise.
	* src/txts.c: Rewrite all (*X)[] as *X.
	* src/sound.c: #ifdef out Midas stuff left.
	* src/sfx.h (sxfrev): Remove.
	* src/sfx.c: Rewrite all (*X)[] as *X. Move freeallsfx
	arround.
	* src/sdf.c: Remove reference to mallox.h.
	* src/savegame.c: Minor fixes.
	* src/pcx.c: #include stdlib.h.
	* src/options.c: Reverse the order of functions.
	* src/menus.c: Add '{ }' arround many ambiguous if/else.
	Specify signedness of some char variables (or promote some
	other to int).
	* src/keybc.c: Remove reference to dos.h and conio.h.
	* src/intro.c: Remove reference to mallox.h. Specify signedness
	of some char variables (or promote some other to int).
	#ifdef out some assembly code.
	* src/fastmem.h: Typos.
	* src/extras.h: Rewrite all (*X)[] as *X.
	* src/extras.c (makeextralst): Use scandir to list extra levels.
	(select_file): New.
	* src/erreurs.c: Remove the MS-DOS part.
	* src/const.c: Specify signedness of some char variables (or
	promote some other to int).  Rewrite all (*X)[] as *X.
	* src/affvga.c: Specify signedness of some char variables (or
	promote some other to int).  Rewrite call to JUSTIF_CALL with
	empty parameter as JUSTIF_CALC( ).

2000-05-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	Many changes allowing heroes.c to compile.

	* src/render.h (afftxtbonus): Remove.
	* src/readvga.c: Remove ref. to conio.h, specify signedness of
	some char variables (or promote some other to int).
	* src/optionss.h: Specify signedness of	some char variables
	(or promote some other to int).
	* src/options.h: Likewise.
	* src/keyb.c: Likewise.
	* src/extras.h: Likewise.
	* src/const.h: Likewise.
	* src/const.c: Likewise.
	* src/piece.h: Likewise.  Replace #pragma pack by
	__attribute__ ((packed)).
	* src/pcx.h: Replace #pragma pack by __attribute__ ((packed)).
	Remove to #pragma aux.

	* src/heroes.c: Too many changes to list. Many functions moved.
	Specify signedness of some char variables (or promote some
	other to int).  Rewrite all (*X)[] as *X.
	* src/extras.c: Rewrite all (*X)[] as *X.

2000-05-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/mallox.h: Delete.
	* src/mallox.c: Delete.
	* src/makefile: Delete.
	* src/fortune.h: Delete.
	* src/fortune.c: Delete.

	* src/start.c: Remove reference to mallox.h.
	* src/sfx.c: Likewise.
	* src/pcx.c: Likewise.
	* src/menus.c: Likewise.
	* src/hedlite.c: Likewise.
	* src/finfo.c: Likewise.
	src/extras.c
	* src/heroes.c: Likewise. Remove reference to fortune.h.

	* src/keyb.h: Remove LED stuff.
	* src/keyb.c: Likewise.
	* src/clavier.h (touche,toucheready): Remove #pargma aux.
	* src/clavier.c: Likewise.

2000-05-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* src/cdplayer.bat: Delete.
	* src/cdrom.c: Delete.
	* src/cdrom.h: Delete.
	* src/cdrom_a.asm: Delete.
	* src/file_id.diz: Delete.
	* src/hcdplay.c: Delete.
	* src/info.bat: Delete.
	* src/install/: Delete recursively.
	* src/install.bat: Delete.
	* src/install.c: Delete.
	* src/install.h: Delete.
	* src/midas/: Delete recursively.
	* src/reader.c: Delete.
	* src/reader.h: Delete.
	* src/setup.c: Delete.
	* src/setup.h: Delete.
	* src/setupex.c: Delete.
	* src/vgatxt.h: Delete.
	* src/vgatxt_a.asm: Delete.

	* src/sound.c: #ifdef out all calls to Midas. Remove
	reference to setup.h.
	* src/sfx.c: #ifdef out all calls to Midas.

	* src/mouse.h: Remove every #pragma aux (assembly code).
	* src/joystick.c (_getjoystate): Remove #pragma aux.

	* src/menus.c: Remove reference to reader.h. #ifdef out
	calls to hmain (level editor).

	* src/intro.c: Remove reference to midas.h. #ifdef out calls to
	tmrSyncSrc.

	* src/heroes.c: #ifdef out reference to mouse.h.  Remove references
	to reader.h, install.h, hcdplay.h and midas.h.
	#ifdef out calls to tmrSyncSrc, access to joysticks states, mouse
	and sound initialization.
	(createbatches): Remove.
	(testinstall): Remove.
	(icoinst): Remove.
	Remove callers to these three functions.

	* fastmem.h: Replace inline assembly code by memcpy using #define.

	* src/const.h: Remove reference to midas.h.
	* src/const.c: Likewise.

2000-05-06  Alexandre Duret-Lutz  <duret_g@epita.fr>

	* Initial revision (MS-DOS version).

SourceForge Logo Valid HTML 4.01 This page is maintained by the Heroes developers.
Please, send suggestions and bug reports to heroes-bugs@lists.sourceforge.net.