ChangeLog: The ALE Clone Version 1.15
- Version 1.10
- Remove use of imlib.
- Implement run-length-encoded sprites. (Saves 9 MB memory).
- Version 1.11
- Sort units for display, correct overlaping.
- Faster cursor drawing.
- Improved updates. (Faster)
- Implemented first sound support.
- Version 1.12 (first released public version)
- Fixed bug: player 0 units are drawn with wrong colors on minimap.
- Fixed bug: cursor not clipped on right edge of window.
- Fixed bug: allocated too much shared video memory.
- Fixed bug: cursor outside window, drawn with bad coordinates.
- Added middle mouse button, scrolls the map.
- Fixed bug: can't reach buildings if one coordinate is 0. (sign!)
- Fixed bug: selecting, selects not all units.
- Added ALT+select selects the old group.
- Added CTRL+select selects all visible units of this type.
- Version 1.13
- Fixed bug: in unit drawing, no more cores here.
- Added: unit names are now shown correct.
- Added missiles.
- Added attack, death animation.
- Added corpse.
- You can now return goods.
- The debug speeds of mining, harvest, building, training are now
configurable.
- The minimap is now only redraw each second. (more speed)
- Started AI code.
- Rewritten wood remove, but still not works 100% correct.
- Fixed bug: in save/restore cursor, no more cores here.
- Started cleanup source tree.
- Version 1.14
- Fixed bug: upgrade unit
- Fixed bug: RevealMap and MapUpdateVisible no longer overwrite memory.
- Fixed bug: Save and restore cursor no longer access outside the bounds.
- Add new functions UnitCache..., to improve speed.
- Many cleanups in the sources.
- Damaged buildings are now burning.
- Support for guile snapshot version. (I removed it)
- Support for guile-1.3
- Fixed bug: removed unit builds building. (from Charles K Hardin)
- Modified makefiles to support inline source code documentation.
- Started greater map and own maps support.
- Fixed bug: Matrix was too small for big maps.
- Tried to get working source code documentation.
- Added threaded sound support (from Fabrice Rossi).
- Fixed bug: 96x96 maps dumps core, introduced with big maps.
- Fixed bug: Movement flags was wrong for big maps.
- Started network code. (Just for testing)
- Fixed bug: Trained units are inserted twice into unit cache.
- Written transporter load/unload code.
- Fixed bug: Buttons aren't reported over network.
- Applied patches from Josh Cogliati.
- Applied patches for sound part (from Fabrice Rossi).
- Fixed bug: Upgrades dumps core. (Player::UnitFlags was to small)
- Fixed bug: Building cursor destroys map border.
- Fixed bug: Selecting building place and unit is killed dumps core.
- Experimental guile-gtk support added.
- New commandline option -c file.ccl = ccl start file.
- Fixed bug: A unit could attack it self. (selfdestruction)
- Fixed bug: New units says again hello (from Fabrice Rossi).
- Fixed bug: Unit placed twice in unit-cache. (end of resources)
- Fixed bug: All units crossing coast plays docking sound (from Fabrice Rossi).
- Original speed is the default for the release
- Version 1.15
- Applied patches: sound is distance dependend. (Fabrice Rossi)
- Support for 15bit X11 server. (My new graphic card needs it)
- Started moving unit code into own directory.
- Moved unit-type ccl code into own file.
- Moved sound ccl code into own file.
- UDTA section of puds are now parsed and supported.
- Fixed bug: No goal. (from Patrick)
- Applied patches: new sound configuration and api. (Fabrice Rossi)
- Changed <strings.h> to <string.h> for glibc-2.1.
- Applied patches from lokh:
- Gold mined, wood harvested and oil hauled is added to the player's
resources as soon as the peon/peasant reach the hall/mill/...
Note that this is the standard behaviour of w*rcr*ft 2.
This part generates a buch of warnings from the AI saying that it
can't build a farm. This is just this: a warning. As soon as it is
possible (the peon gets out of the hall), the farm is builded.
- New memory management. The main memory array isn't used directly
anymore (except for debug message and network code), and the units
are accessed by arrays of pointers (the solution isn't currently
memory optimized, but this can be modified quite easily).
There are currently 3 kind of "lists": Used unit slots, free unit
slots, and a list of units used by each player.
This implies a bunch of (more or less) small changes through the
code...
- It's now possible to cancel the construction of a building.
- Now when a castle/keep/stronghold/../lumber mill/refinery is
destroyed, the gold/wood/oil harvested is correctly adjusted.
- When a keep/stronghold/castle/fortress is constructed, gold/wood/oil
harvested is adjusted if necessary.
- I added ActionUnitConstructed test to UnitUnusable(): A building
under construction can be considered unusable :). There is an
exception though when you select a building under construction with
the mouse.
For exemple, the peons harvesting wood were bringing it back to the
lumber mill under construcion...
- In unit_find.c I added 2 functions FindUnitsByType() and
FindPlayerUnitsByType(). These are general functions but used by the
AI code and building construction/destruction (halls/lumber mill/...)
- AiFindFreeWorkers now finds free workers.
- Various code cleanups, code optimizations, minor changes, and things
I forgot...
- ChangeUnitOwner() is now recursive. This is not important for w*rcr*ft but
it will be interesting for st*rcr*ft.
- Modified a couple of things in DestroyAllInside(), to speed up things in
special cases (transporters, construction...)
- Fixed a bug un DestroyUnit(): Units in transporters weren't destroyed
(although they were still "removed" from the map. There is still a problem
though, asthe dead bodies of the units in the transporters are diplayed.
Sorry I didn't look at this yet.
- The dead body animation is now displayed.
- Reworked the rectangle selection to match the one of w*rcr*ft 2:
Select a group of player's "mobile" units.
if none, select a construction from that player.
if still none, select a (random) neutral unit (critter, mine...)
if still none, select a (random) enemy unit.
- New tool written in C: wartool, includes all xxx2png in one file.
- Fixed bug: Files from tool directory are not included in the distribution.
- Applied patches from Vladi.
- MapField.SeenTile -- used for the wood/rocks last seen fog bug :)
- Macros MAPEXPLORED, MAPVISIBLE... added
- Fixed bug: Wood removing should be ok.
- Fixed bug: Fog of war should be ok.
- Fixed bug: Fixes seen wood bug.
- Added cheats -- for debug really :)
- Added TileTypeTables -- used to lookup what tile is what? i.e. which tilesa
are woods, water,... required for the fog
- Rewritten DrawUnits
- Added Unit.rs which is filled by MakeUnit() with random number between 1
and 100, used for fancy buildings. `fancy buildings'! every building is
drawn randomly normal or flipped horizotally, so the your city will have
some buildings pointed to right and some to left! i.e. will not look
uniform.
- Fixed bug: in UnitVisible() for fog of war
- Added Now enemy buildings will look under the fog with the last
seen frame (or will not show if you haven't seen them yet)
FXIME: if seen building under fog is ruined it will disappear
- Added DrawResources() shows food usage now.
- Added Unit.PendCommand, now TownHall and Barracks have `move', `stop',
`attack' and `harvest' commands ( and RightClick will do it ), which will
be applied auto to all new units.
- Fixed: `case 1...100' thing --> with default:if(...<100)
- Rewritten DrawUnits, combined work.
- Moved map.c minimap.c and tileset.c into own directory map.
- Fixed bug: Map redrawn only for visible missiles. (from Fabrice Rossi).
- Fixed bug: Buildings are now visibile again without fog of war.
- Applied patches from Vladi.
- Units could have command queues.
- Building could now train more units.
- Walls are now converted into tileset.
- Walls are now connected correct.
- Cache for tiles now source configurable.
- Fixed bug: Outside map access in HandleMouseMove.
- Faster map background drawing routines.
- Map background drawing routines for all bpp.
- Fixed bug: Area too big for CursorOnMap.
- Add smart cache for map background drawing.
- All the background drawing stuff could be compile time configured.
- Added rock removing. (from Vladi)
- Added demolish code. (from Vladi)
- Add needed code for demolish.
- Fixed bug: Attack or demolish moving target.
- Dwarves and goblin sappers has no longer a corpse.
- Make compileable without DEBUG defined.
- Split map.c in more parts.
- Add patches from Patrice.
- Moved selection stuff into own file.
- Reorganized functions.
- Added new fog of war look.
- Improved speed of fog of war.
- New fog of war now runtime configurable.
- Fixed bug: with build action queing (from Vladi)
- You can build a line of walls by pressing the SHIFT+ALT keys.
- Fixed bug: computer units could get "flush".
- Applied patches from Ari (Better -I and -L for other distributions)
- Add patches from Patrice: Added selection of groups.
- Added patches new AI code from Jon Gabrielson
- Fixed bug: You can repair without money.
- Fixed bug: Can build more units than food with building queues.
- Added patches new AI code from Jon Gabrielson
- Added pause and better quit sequences.
- Changed FAST_DEBUG to cheatcodes 'fast debug' and 'normal debug'
- Fixed bug: 's' are now useable for the panel. save is now 'S'.
- Fixed bug: ships play now an attacking sound.
- Cleanup in the includes files (#ifndef ... #endif).
- Fixed bug: Builded walls aren't really removed.
- Fixed bug: Attacking units in reaction range, are now only weak targets.
- Added patches for alpha port.
- Fixed bug: When a new unit is selected the status bar isn't correctly updated. (from Lokh)
- Fixed bug: weak targets should now work.
- Added upgrade+button patches (from Vladi)
- Cleaned and reorganized the patches.
- Added ShowOrders and show-orders.
- Updated todo.html (from Vladi)
- Moved "icons.c" from directory src/clone to src/ui.
- Removed all "Icon..." defines, please use now IconConfig and IconByIdent
- Changed Unit::Player from integer bitfield to pointer.
- Added patches to compile under FreeBSD. (from Steinar)
- Fixed bug: Foreign units now didn't acknowledge selection.
- Fixed bug: Cancel train should now work correct.
- Better and configurable middle mouse button (from Ari)
- strdupa removed, didn't supported by libc5 (from Ari)
- Added saturation for alpha fog of war (from Edgar)
- Version 1.16
- Added PowerPC patches from Ian Farmer.
- Support for non expansion CD version, based on Stefan Dirsch wartool
patch.
- Icons names must now be prefixed with "icon-" (arrow1 -> icon-arrow1)
- Unit actions now shown with the buttons (still needs some work)
- Corrected display of damage in middle panel.
- Added fast scrolling with cursor keys and control.
- Added support for bz2 compression libary.
- Fixed bug wrong frame for automatic attacks.
- Rewritten input event loop.
- Fixed bug construction could be attacked again.
- Fixed bug clone crashes if an oil tanker tries to go into a oil well
that is still building
- Fixed bug: upgrade costs are now shown correct.
- Add -s n to set the sleep time for the AI.
- Added "set" buttons to mage-tower.
- Fixed bug: harvest uses to fast ComplexPath.
- Fixed bug: can't reach shore building place.
- Fixed bug: can't build in the last row or column.
- Fixed bug: AI sleeps in some levels (no MainHall).
- Fixed bug: Leaving goldmine without deposit.
- Patches from Josh
- Fixed two constants so that you can load transporters.
- Sound patch so that missing sounds don't crash clone.
- Patches from Lokh
- No fog of war for the peons in the mines.
- Added a LoadPicture() function to handle full-screen picture
(palette changes &co)
- Fixed bug: Computer didn't use standing workers with gold/wood.
- Fixed bug: Unit type aren't correct counted, if present in pud.
- Fixed bug: Income effects should now work correct.
- Added "set" buttons to gryphon aviary,gnomish inventor,dragon roost
and goblin alchemist.
- Fixed bug: play selecting sound for goldmines... (don't know if correct)
- Changed input handling, improved interactive handling.
- Fixed bug: Chopping of wood on left or top map border (not 100%)
- Fixed bug: memory corruption by big maps.
- Fixed bug: transporter(s) has no unload buttons.
- Fixed bug: The AI didn't build a hall, when enough workers exists.
- Added support for svgalib from Jarek Sobieszek.
- Added command line option -f and -t to adjust computer costs and build
times.
- Fixed bug: ballista and catapult can't enter transporter.
- Patches from Kenneth Sanislo
- Fixed bug: Compiler warning `unit_ident' might be used uninitialized in
this function.
- Added svgalib non-linear support (so S3 chipsets work)
- svgalib mouse bug #1 (no more hardcoded MS mouse, reads the
libvga.config)
- svgalib mouse bug #2 (mouse stays on screen)
- svgalib mouse bug #3 (mouse movement slowed so it's useable)
- Fixed bug: CTRL ALT and SHIFT modifiers in svgalib
- Fixed bug: build.sh didn't link default pud.
- Fixed bug: Window close button must exit/quit game. (from Ari)
- Fixed bug: Destroyed shore buildings shows wrong destroyed image.
- Made sound support optional (WITH_SOUND) to support ports without sound.
- From Jarek Sobieszek:
- Initial mouse position set to the middle of the screen ( svgalib.c )
- Changeable mouse scale (svgalib.c)
- More keys working ( svgalib.c )
- When a peon was chopping wood and was moved to another location, he was
losing all wood he had, same thing when two peons chopped the same tree,
the second to finish was losing all the wood.
- Fixed bug: Building rune stone dumps debug core.
- Fixed bug: Oil well didn't show the correct frame if active.
- Prepared removement of TheMap.MovementMap, all functions should now use
the flags in TheMap.Fields.
- Fixed bug: svgalib works wrong with 15 bit videomode.
- Changed WINDOW_WIDTH and WINDOW_HEIGHT to VideoWidth and VideoHeight.
- Added SDL support.
- Added Win32 support. (Sound, network is missing)
- Added fullscreen to SDL support.
- Added 'A'...'Z' handling to SDL support.
- +++
The ALE Clone Project