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).
|