Gobligine/doc/freecraft.html
2002-06-13 16:47:57 +00:00

879 lines
27 KiB
HTML

<HTML><HEAD>
<!--
---- $Id$
---- (c) Copyright 2001,2002 by Lutz Sammer
---- FreeCraft is free software; you can redistribute it and/or modify
---- it under the terms of the GNU General Public License as published by
---- the Free Software Foundation; only version 2 of the License.
---- FreeCraft is distributed in the hope that it will be useful,
---- but WITHOUT ANY WARRANTY; without even the implied warranty of
---- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
---- GNU General Public License for more details.
-->
<TITLE>The FreeCraft (fka ALE Clone) Version 1.17</TITLE>
</HEAD>
<BODY>
<H1>FreeCraft (fka ALE Clone) Version 1.17</H1>
<HR><PRE WIDTH=80>
___________ _________ _____ __
\_ _____/______ ____ ____ \_ ___ \____________ _/ ____\/ |_
| __) \_ __ \_/ __ \_/ __ \/ \ \/\_ __ \__ \\ __\\ __\
| \ | | \/\ ___/\ ___/\ \____| | \// __ \| | | |
\___ / |__| \___ >\___ >\______ /|__| (____ /__| |__|
\/ \/ \/ \/ \/
______________________ ______________________
T H E W A R B E G I N S
FreeCraft - A free fantasy real time strategy game engine
</PRE>
<P><B>(C) Copyright 1998-2002 by The FreeCraft Project. Distributed under the
<A HREF="gpl.html">"GNU General Public License"</A></B>
<HR>
<A HREF="#contents">Contents</A>
<H2><A NAME="copyright">Copyrights</A></H2>
Please refer to the <A HREF="gpl.html">GNU General Public License</A>
document provided with this distribution.<BR>
To proceed beyond this point, is to agree with the license agreement.
<P>The self extracting archive contains ZIP code, read the
<A HREF="ZIP-LICENSE">ZIP-LICENSE</A>.
<P>The binaries could contain SDL code, read the
<A HREF="README-SDL.txt">README-SDL.txt</A> and the
<A HREF="http://www.gnu.org/copyleft/lesser.html"> GNU LGPL license.</A>
<P>The source and binaries contains SIOD code, read
<A HREF="SIOD.txt"> and <A HREF="../src/siod/siod.html"> siod.html</A> for
copyright and informations.
<H2><A NAME="disclaimer">DISCLAIMER</A></H2>
This software is provided as-is. The author(s) can not be held liable for
any damage that might arise from the use of this software.<P>
<B>Use it at your own risk</B>.
<H2><A NAME="introduction">Introduction</A></H2>
Read this for the introduction:
<A HREF="readme.html">readme.html</A>
<H2><A NAME="install">Install</A></H2>
Read this how to install FreeCraft:
<A HREF="install.html">install.html</A>
<H2><A NAME="upgrade">Upgrade</A></H2>
If you upgrade from an older beta version to a new one, please
<B>always</B> run build.sh. Some graphics or formats may have been
changed. <B>Don't forget</B> to backup your modified files.<P>
Read this how to upgrade FreeCraft:
<A HREF="install.html">install.html</A>
<H2><A NAME="changes">Changes</A></H2>
Read this for the history of FreeCraft:
<A HREF="ChangeLog.html">ChangeLog.html</A>
<H2><A NAME="todo">To-do and known bugs</A></H2>
This file contains the known bugs and what we plan in the future:
<A HREF="todo.html">todo.html</A>
<P>A more up to date list of known bugs are here:
<A HREF="http://sourceforge.net/tracker/?group_id=1965&atid=101965">
SourceForge: FreeCraft real-time strategy game engine - Tracker - Bugs</A>
<P>A more up to date list of planned tasks are here:
<A HREF="http://sourceforge.net/pm/?group_id=1965">
SourceForge: FreeCraft real-time strategy game engine - Tasks</A>
<H2><A NAME="faq">Problems</A></H2>
Read this, if you have problems compiling, installing or playing FreeCraft
<A HREF="faq.html">faq.html</A> or use the
<A HREF="http://sourceforge.net/forum/forum.php?forum_id=5634">
help forum</A> for questions.
<H2><A NAME="features">Features</A></H2>
<UL>
<LI>Health and mana and orders could be shown on the map.
<LI>Better path finder routines.
<LI>Loading of compressed (gzip or bzip2) puds, with zziplib direct loading
from zip archives.
<LI>Configuration language.
<LI>Scripting language.
<LI>Easy replace of unit graphics and sounds.
<LI>64 times greater maps.
<LI>Training queues.
<LI>Way-points.
<LI>Correct fog of war (terrain changes are not shown).
<LI>Nice looking fog of war (alpha-gray-scale)
<LI>More resolutions 640x480, 800x600, 1024x768, 1280x960 and 1600x1200.
<LI>Support for viewports.
<LI>Support for MOD/OGG/MP3 background music.
<LI>Support for up to 6 resources.
<LI>Support for up to 15 players in local network.
<LI>Internet play.
</UL>
<H2><A NAME="open-projects">Open projects</A></H2>
Following projects are not assigned: (Please ask before start working)
<UL>
<LI>Help with the map editor development.
<LI>Write an AI editor.
<LI>Write a video player or add support for a video codec. (fli/mpeg or own
format)
<LI>Create own tilesets and unit graphics.
<LI>Create own sounds, voices, videos and campaigns.
<LI>Create a jingle for startup and home-page.
<LI>Write better documentation. (correct my English and grammar :-)
<LI>Improved network support (viewer, proxy, automatic lag detection)
<LI>Write better sound routines. (with midi or xmi support, sound streaming)
<LI>Write "wartools" for demo-version.
<LI>Write clone of the new game from the same company.
(Graphic and sound formats are mostly the same.)
<LI>Add support for sandtools to the engine.
<LI>Port to X11 8bpp or 32bpp, full-screen and DGA support.
<LI>Port to PocketPC's.
<LI>Multi-language support
<LI>And any other help is welcome.
</UL>
If you want to help, please join the FreeCraft mailing list and check
if not already somebody is working on your project. Than tell what you
want to make.
<H2><A NAME="documentation">Documentation</A></H2>
Look into the original game documentation for playing instructions.
Look into the sources for more informations.
<H3><A NAME="commandline">Command line options</A></H3>
freecraft [OPTIONS] [map.pud|map.pud.gz]
<UL>
<LI>OPTIONS<BR>
You can currently give following command line options. Use "freecraft -h" to
get an up to date information.
<UL>
<LI>-c "file.ccl"<BR>
Load FreeCraft config file <VAR>"file.ccl"</VAR> instead of the default
"<VAR>librarypath/</VAR>ccl/freecraft.ccl".
<LI>-d "path"<BR>
Change the FreeCraft library path to <VAR>"path"</VAR> instead of the
default "./data" or "/usr/share/games/freecraft/default".
<LI>-e<BR>
Start the editor direct.
<LI>-f factor<BR>
Adjust the build costs of units for the computer players by factor.
<LI>-h<BR>
Show command line help.
<LI>-l<BR>
Enable command log to <VAR>"command.log"</VAR>
<LI>-n [localport:]serverhost[:port]<BR>
Connect to FreeCraft server <VAR>serverhost</VAR>.
<VAR>serverhost</VAR> is the name of the server like "freecraft.org"
or the IP number like "192.168.1.1". <VAR>localport</VAR>
is the port number on the local computer, <VAR>port</VAR> is the
port on the game server. The default ports are 6660. If you have a
firewall please let the port 6660/UDP through. Can be used together
with the network GUI, this is than the default game server.
<LI>-N name<BR>
Name of the player, for network play. Can be used together with
network GUI, this is than the default player name.
<LI>-s frames<BR>
The AI sleeps 'frames' before it starts working.
<LI>-t factor<BR>
Adjust the build time of units for the computer players by factor.
<LI>-v mode<BR>
Video mode (0=default, 1=640x480, 2=800x600, 3=1024x768, 4=1280x960,
5=1600x1200)
<LI>-w<BR>
Wait until sound device comes available. (Only supported with linux OSS
driver)
<LI>-D<BR>
Video depth = pixel pro point. Only useful if not automatic
detected.
<LI>-F<BR>
Full-screen video-mode. (Not supported on all platforms, just test)
<LI>-S speed<BR>
Want to play slower? Use for 50 to play with half speed. Want to play
faster? Use 200 to play at double speed. (default is 100% which are
30 frames/second)
<LI>-W<BR>
Windowed video-mode.
</UL>
<LI>map.pud<BR>
Load the map "map.pud" instead of the default
"<VAR>librarypath/</VAR>default.cm".
<LI>map.pud.gz<BR>
Load the compressed map "map.pud.gz" instead of the default
"<VAR>librarypath/</VAR>default.cm".
<LI>map.cm<BR>
Load the FreeCraft map "map.cm" instead of the default.
<LI>map.cm.gz<BR>
Load the compressed FreeCraft map "map.cm.gz" instead of the default.
<LI><BR>
If no file is given the default map
"<VAR>librarypath/</VAR>default.cm" will be loaded.
</UL>
<H3>Keyboard commands</H3>
<UL>
<LI><KBD>cursor-left</KBD><BR>
Scroll map left. With control scroll faster.
<LI><KBD>cursor-right</KBD><BR>
Scroll map right. With control scroll faster.
<LI><KBD>cursor-up</KBD><BR>
Scroll map up. With control scroll faster.
<LI><KBD>cursor-down</KBD><BR>
Scroll map down. With control scroll faster.
<LI><KBD>RETURN</KBD><BR>
Enter command line.
<LI><KBD>TAB</KBD><BR>
Toggle mini-map mode, with/without terrain.
<LI><KBD>+</KBD><BR>
Increase game speed.
<LI><KBD>-</KBD><BR>
Decrease game speed.
<LI><KBD>ALT+B, CTRL+B</KBD><BR>
Toggle big map mode on/off.
<LI><KBD>ALT+C, CTRL+C, c (if unused)</KBD><BR>
Center on selected units.
<LI><KBD>ALT+X, CTRL+X</KBD><BR>
Exit program.
<LI><KBD>ALT+Q, CTRL+Q</KBD><BR>
Quit level.
<LI><KBD>ALT+R, CTRL+R</KBD><BR>
Restart scenario.
<LI><KBD>^</KBD><BR>
Unselect all units.
<LI><KBD># (1-9,0)</KBD><BR>
Recall unit group. All units in the group becomes the current selection.
If unit group is already selected, center on group.
<LI><KBD>SHIFT + # (1-9,0)</KBD><BR>
Add the units of the group to the current selection.
<LI><KBD>CTRL + # (1-9,0)</KBD><BR>
Define unit group. All currently selected units become the new group.
<LI><KBD>SHIFT+CTRL + # (1-9,0)</KBD><BR>
Add to unit group. All currently selected units are added to the group.
<LI><KBD>ALT + # (1-9,0)</KBD><BR>
Alternate unit group. All currently selected units are also added to the
new group.
<LI><KBD>SHIFT+ALT + # (1-9,0)</KBD><BR>
Add to alternate unit group. All currently selected units are also added to
the group.
<LI><KBD>F1,F2,F3,F4</KBD><BR>
Recall saved map position.
<LI><KBD>SHIFT+F1,SHIFT+F2,SHIFT+F3,SHIFT+F4</KBD><BR>
Save current map position for later recall.
<LI><KBD>ALT+G, CTRL+G</KBD><BR>
Toggle mouse grab mode.
<LI><KBD>ALT+F, CTRL+F</KBD><BR>
Toggle fullscreen mode. (only with SDL under X11 supported)
<LI><KBD>ALT+P, CTRL+P</KBD> or <KBD>pause</KBD><BR>
Toggle pause mode.
<LI><KBD>CTRL+S</KBD><BR>
Toggle sound on/off.
<LI><KBD>ALT+S, F11</KBD><BR>
Save complete state.
<LI><KBD>CTRL+ALT+S</KBD><BR>
Save level as pud.
<LI><KBD>ALT+L, F12</KBD><BR>
Load complete state.
<LI><KBD>ALT+M, F10</KBD><BR>
Enter game menu.
<LI><KBD>SPACE</KBD><BR>
Center on last message.
<LI><KBD>ALT+I, CTRL+I</KBD><BR>
Find an idle worker.
<LI><KBD>ALT+V, CTRL+V</KBD><BR>
Cycle through the pre-defined viewpoints configurations.
<LI><KBD>Print Screen</KBD><BR>
Save a screenshot.
</UL>
<H3>Mouse commands</H3>
<H4>Clicking on minimap</H4>
<H4>Clicking on map</H4>
<UL>
<LI>Single click with left mouse button<BR>
Select unit.
<LI>SHIFT Single click with left mouse button<BR>
Add or remove unit from selection. Could be combined with any other
modifier.
<LI>CTRL Single click with left mouse button<BR>
Select all units of the same unit-type.
<LI>ALT Single click with left mouse button<BR>
Select all units of the previous group.
<LI>Double click with left mouse button<BR>
Select all units of the same unit-type.
<LI>Click & Hold with left mouse button<BR>
Not supported.
<HR>
<LI>CTRL Single click with right mouse button on unit<BR>
Selected unit follows this unit.
<LI>Single click with right mouse button<BR>
Does automatic action of the current selected unit.
<LI>SHIFT Single click with right mouse button<BR>
Add automatic action of the current selected unit to the command queue,
this means the current order is first finished, than the unit starts
with this order.
<LI>CTRL Single click with right mouse button<BR>
Does second automatic action of the current selected unit.
<LI>ALT Single click with right mouse button<BR>
Not supported.
<LI>Double click with right mouse button<BR>
Not supported.
<LI>Click & Hold with right mouse button<BR>
Not supported.
</UL>
<H2><A NAME="ccl">CCL: FreeCraft Configuration Language</A></H2>
The CCL is scheme. I use SIOD for this.
(The most recent release is available from
<a href="http://people.delphiforums.com/gjc/siod.html">this web page</a>)
.<P> You can also enter CCL commands at the message prompt. Each
line starting with "(" is taken as CCL command.
<H3>New documentation</H3>
<A HREF="ccl/ccl.html"> Here I have started a new documentation. </A> <P>
Please help me writing it.
<H3>Files</H3>
<UL>
<LI><VAR>librarypath</VAR>/ccl/freecraft.ccl is loaded before any initialization.
Contains general configuration.
<LI><VAR>librarypath</VAR>/ccl/missile.ccl is loaded from freecraft.ccl.
Contains missile configuration.
<LI><VAR></VAR>/ccl/sound.ccl is loaded from freecraft.ccl.
Contains sound configuration.
<LI><VAR>librarypath</VAR>/ccl/tilesets.ccl is loaded from freecraft.ccl.
Contains tileset configuration.
<LI><VAR>librarypath</VAR>/ccl/units.ccl is loaded from freecraft.ccl.
Contains units configuration.
</UL>
<H3>Functions</H3>
Without any order:
<H2>Map CCL functions/variables</H2>
<DL>
<DT><VAR>reveal-map</VAR>
<DD>Reveal the complete map.
<DT><VAR>set-fog-of-war!</VAR><BR>
<DD>Enable (set-fog-of-war! #t) or disable (set-fog-of-war! #f) the fog of war.
<DT><VAR>set-minimap-terrain!</VAR><BR>
<DD>Enable or disable display of terrain in the minimap window.
<DT><VAR>original-fog-of-war</VAR>
<DD>Enable original like fog of war style.
<DT><VAR>gray-fog-of-war</VAR>
<DD>Enable gray fog of war style.
<DT><VAR>set-fog-of-war-contrast! contrast</VAR>
<DD>Set the gray style fog of war contrast.
Contrast could be from 0 to OO.
A contrast of 100 didn't change anything.
<DT><VAR>set-fog-of-war-brightness! brightness</VAR>
<DD>Set the gray style fog of war brightness.
Brightness could be from -100 to 100.
A brightness of 0 didn't change anything.
<DT><VAR>set-fog-of-war-saturation! saturation</VAR>
<DD>Set the gray style fog of war saturation.
Saturation could be from -100 to 200.
A saturation of 100 didn't change anything.
</DL>
<H2>Unsorted CCL functions/variables</H2>
<UL>
<LI><VAR>show-health-bar</VAR><BR>
Show the health as bar on the map.<P>
<LI><VAR>show-health-dot</VAR><BR>
Show the health as dot on the map.<P>
<LI><VAR>show-mana-bar</VAR><BR>
Show the mana as bar on the map.<P>
<LI><VAR>show-mana-dot</VAR><BR>
Show the mana as dot on the map.<P>
<LI><VAR>show-full</VAR><BR>
Show full health or mana on the map.<P>
<LI><VAR>show-no-full</VAR><BR>
Show no full health or mana on the map.<P>
<LI><VAR>set-show-sight-range!</VAR><BR>
Show the sight range of the selected unit on map.<P>
<LI><VAR>set-show-reaction-range!</VAR><BR>
Show the reaction range of the selected unit on map.<P>
<LI><VAR>set-show-attack-range!</VAR><BR>
Show the attack range of the selected unit on map.<P>
<LI><VAR>speed-mine</VAR><BR>
Decrease the mining time by this factor.
<LI><VAR>speed-gold</VAR><BR>
Decrease the time in a gold deposit by this factor.
<LI><VAR>speed-chop</VAR><BR>
Decrease the time for chopping a tree by this factor.
<LI><VAR>speed-wood</VAR><BR>
Decrease the time in a wood deposit by this factor.
<LI><VAR>speed-haul</VAR><BR>
Decrease the time for haul oil by this factor.
<LI><VAR>speed-oil</VAR><BR>
Decrease the time in an oil deposit by this factor.
<LI><VAR>speed-build</VAR><BR>
Decrease the time to build a unit by this factor.
<LI><VAR>speed-train</VAR><BR>
Decrease the time to train a unit by this factor.
<LI><VAR>speed-upgrade</VAR><BR>
Decrease the time to upgrade a unit by this factor.
<LI><VAR>speed-research</VAR><BR>
Decrease the time to research by this factor.
<LI><VAR>speeds</VAR><BR>
Decrease the time off all by this factor.
<LI><VAR>define-unit-type</VAR><BR>
<A HREF="ccl/unittype.html">unittype.html</A>
<LI><VAR>print-unit-type-table</VAR><BR>
<A HREF="ccl/unittype.html">unittype.html</A>
<LI><VAR>unit-type</VAR><BR>
Get the pointer to the unit type structure.<P>
(unit-type ident)
<DL>
<DT>ident</DT>
<DD>The unit-type unique identifier.</DD>
</DL>
<P>
<H4>Example:</H4>
(unit-type "unit-peon")<P>
Get the unit type structure of the peon. #<UnitType 0x80ac350 unit-peon><P>
<LI><VAR>unit-type-array</VAR><BR>
Get an array of all currently defined unit type structures.<P>
(unit-type-array)
<P>
<LI><VAR>get-unit-type-ident</VAR><BR>
Get the unique identifier of the unit type structure.<P>
(get-unit-type-ident type)
<DL>
<DT>type</DT>
<DD>Unit type pointer</DD>
</DL>
<P>
<H4>Example:</H4>
(get-unit-type-ident (unit-type "unit-peon"))<P>
Get the identifier of the unit type peon.<P>
<LI><VAR>define-map</VAR><BR>
Define the size of a new map.<P>
(define-map width height)
<UL>
<LI>width<BR>
The width of the new map.
<LI>height<BR>
The height of the new map.
</UL>
<H4>Example:</H4>
(define-map 256 256)
Define a new map of the size 256 x 256.<P>
<LI><VAR>load-pud</VAR><BR>
Load a map in pud format.<P>
(load-pud name)
<UL>
<LI>name<BR>
The file name.
</UL>
<H4>Example:</H4>
(load-pud "data/default.pud.gz")
Load "default.pud.gz".<P>
<LI><VAR>freecraft-map</VAR><BR>
Define a map in FreeCraft own format.<P>
(freecraft-map ...)
<P>FIXME: Must write docu<P>
<LI><VAR>set-key-scroll!</VAR><BR>
Set the speed of keyboard scrolling. <P>
(set-key-scroll! speed)
<UL>
<LI>speed<BR>
Number frames to wait between scrolls.
</UL>
<H4>Example:</H4>
(set-key-scroll! 1)
Sets keyboard scrolling speed to fastest.<P>
<LI><VAR>set-mouse-scroll!</VAR><BR>
Set the speed of mouse scrolling. <P>
(set-mouse-scroll! speed)
<UL>
<LI>speed<BR>
Number frames to wait between scrolls.
</UL>
<H4>Example:</H4>
(set-mouse-scroll! 10)
Sets mouse scrolling speed to pretty slow ( 3 times / second.)<P>
<LI>Sound part
<UL>
<LI><VAR>sound-thread</VAR><BR>
Tells FreeCraft engine to use a threaded sound server. MUST be used in the
sound.ccl file, BEFORE the game fully starts. As no effect during the
game.
<LI><VAR>set-sound-volume!</VAR><BR>
Set global volume.<P>
(set-sound-volume! volume)<P>
<UL>
<LI>volume<BR>
The volume from 0 (min=quiet) to 255 (max).
</UL>
<H4>Example:</H4>
(set-sound-volume! 128)<p>
Set volume to 1/2.
<LI><VAR>sound-off</VAR><BR>
Turn sound off. Can be later turned on by sound-on.
<LI><VAR>sound-on</VAR><BR>
Turn sound on.
<LI><VAR>sound-for-name</VAR><BR>
Return a SIOD sound id to be used in other functions.<P>
(sound-for-name name)<p>
<UL>
<LI>name<BR>
The name of the sound (a string).
</UL>
<H4>Example:</H4>
(sound-for-name "tree chopping")<p>
Returns the sound id of the tree chopping sound.
<LI><VAR>set-global-sound-range!</VAR><BR>
Set the cut off distance.<P>
(set-global-sound-range! distance)<p>
<UL>
<LI>distance<BR>
The maximum range of a sound in tiles.
</UL>
<H4>Example:</H4>
(set-global-sound-range! 64)<p>
Set the maximal sound range to 64 tiles. Sound events happening more
than 64 tiles away from the viewpoint won't be eared.
<LI><VAR>set-sound-range!</VAR><BR>
Set the cut off distance for a given sound.<P>
(set-sound-range! sound ratio)<p>
<UL>
<LI>sound<BR>
The sound either described by its name (a string) or by its SIOD sound
id.
<LI>ratio<BR>
This value (between 0 and 255) allows to compute the range of the
sound. 255 means an infinite range. Any number strictly below 255 is a
coefficient that will be applied to the cut off distance: the cut off
distance for this sound is ratio/254*cut off distance.
</UL>
<H4>Example:</H4>
(set-sound-range! "tree chopping" 50)<p>
Set the sound range for "tree chopping" to 50/254 times the cut off
distance.
<LI><VAR>define-game-sounds</VAR><BR>
Allows to define what sounds are going to be used for some game level
events (such as the click sound).
<P>FIXME: Must write docu<P>
<LI><VAR>display-sounds</VAR><BR>
Test function. Dump on stdio all the client side mappings between sound
names and sound ids.
<LI><VAR>map-sound</VAR><BR>
Defines a new mapping between a sound name (a string) and a sound id.
<P>FIXME: Must write docu<P>
<LI><VAR>make-sound</VAR><BR>
Ask the sound server to register a new sound. Ask the sound client to store
the mapping between the obtained sound id and the given sound name.
<P>FIXME: Must write docu<P>
<LI><VAR>play-sound</VAR><BR>
Ask the sound server to play a sound.
<P>FIXME: Must write docu<P>
</UL>
<UL>
</UL>
</UL>
<H2><A NAME="internal">Internal Formats</A></H2>
<H3><A NAME="internal-tileset">Tileset</A></H3>
The tileset graphic is loaded from 'png'-files. Only files with 256
indexed colors are currently supported.<P>
The format of the tileset graphic is:<P>
32x32 pixels of a tile.<P>
16 tiles are stored per row.<P>
The pixels (7,6),(7,14),(7,22),(7,30), (15,6),(15,14),(15,22),(15,30),
(23,6),(23,14),(23,22),(23,30) and (31,6),(31,14),(31,22),(31,30)
are used for the minimap picture. For a 32x32 map all 16 Pixels are used.
For a 128x128 map only the first one.<P>
The colors of the palette reserved for the tileset:<BR>
HELPME: I don't know!<P>
The conversion table from pud file to the internal format could be
changed with ccl.
<A HREF="graphic/tileset.html">More tileset informations</A>
<H3><A NAME="internal-ui">User Interface</A></H3>
<A HREF="graphic/ui.html">More user interface informations</A>
<H3><A NAME="internal-sprites">Sprites</A></H3>
The graphics are loaded from 'png'-files. Only files with 256 indexed
colors are currently supported.<P>
The format of an unit sprite is:<P>
FIXME: more to come
<H3><A NAME="internal-palette">Palette</A></H3>
Look into tileset documentation, what I have found.
<H3><A NAME="internal-sounds">Sounds</A></H3>
The sounds are loaded from 'wav'-files. Files with 8 or 16 bit, mono and
11025hz sample frequency are currently supported.<P>
<H3><A NAME="utilities">Utilities</A></H3>
<H4>extract</H4>
Extract a compressed entry out of the original game data file.<P>
Read the knowledge bases which entry contains what.
<H5>Usage: extract data-file entry output</H5>
<UL>
<LI>data-file<BR>
Compressed input data file. (normally maindat.war)
<LI>entry<BR>
Entry number of the data-file.
<LI>output<BR>
Output file for the uncompressed entry.
</UL>
<H4>gfx2png</H4>
Convert compressed graphic (unit sprites) to png graphic file.
<H5>Usage: gfx2png palette file.gfx</H5>
<UL>
<LI>palette<BR>
Use palette in png file. "palette" is a raw file containing 768
bytes for 256 colors of r g b.
<LI>file.gfx<BR>
File.gfx contains the graphics of the sprites. The output file is
file.png.
</UL>
<H4>gfu2png</H4>
FIXME: must write docu.
<H4>img2png</H4>
FIXME: must write docu.
<H4>cur2png</H4>
FIXME: must write docu.
<H4>fnt2png</H4>
FIXME: must write docu.
<H4>tile2png</H4>
FIXME: must write docu.
<H4>aledoc</H4>
FIXME: must write docu.
<H2><A NAME="arts">Arts</A></H2>
Following things are used from other peoples. If not other mentioned,
protected by the following license <A HREF="gpl.html">
"GNU General Public License"
</A></B>
<DL>
<DT>cross.png, health.png, mana.png.
<DD>(c) Copyright 1998-2002 by Johns.
<DT>food.png
<DD>Food resource icon (c) Copyright 2000 by the Guardian.
<DT>score.png
<DD>Score icon in resource (c) Copyright 2000 by the Guardian.
<DT>ore,stone,coal.png
<DD>Orc, Stone and coal icon in resource (c) Copyright 2000 by the Guardian.
<DT>freecraft.bmp, freecraft.ico
<DD>The FreeCraft icon (c) Copyright 2000 by Kyle.
</DL>
<H2><A NAME="thanks">Thanks</A></H2>
Thanks to following people for helping me develop FreeCraft:
<UL>
<LI>Ari
<LI>Edgar
<LI>Valery Shchedrin
<LI>Iftikhar Rathore
<LI>Charles K Hardin
<LI>Fabrice Rossi
<LI>DigiCat
<LI>Josh Cogliati
<LI>Patrick Mullen
<LI>Vladi Shabanski
<LI>Cris Daniluk
<LI>Patrice Fortier
<LI>FT Rathore
<LI>Trent Piepho
<LI>Jon Gabrielson
<LI>Lukas Hejtmanek
<LI>Steinar Hamre
<LI>Ian Farmer
<LI>Sebastian Drews
<LI>Jarek Sobieszek
<LI>Anthony Towns
<LI>Stefan Dirsch
<LI>Al Koskelin
<LI>George J. Carrette
<LI>Guardian
<LI>Michael O'Reilly
<LI>Dan Hensley
<LI>Sean McMillian
<LI>Mike Earl
<LI>Ian Turner
<LI>David Slimp
<LI>Iuri Fiedoruk
<LI>Luke Mauldin
<LI>Nathan Adams
<LI>Stephan Rasenbergver
<LI>Dave Reed
<LI>Josef Spillner
<LI>James Dessart
<LI>Jimmy Salmon
<LI>Jan Uerpmann
<LI>Aaron Berger
<LI>Latimerius
<LI>Antonis Chaniotis
<LI>Samuel Hays
<LI>Nehal Mistry
<LI>Patrick Beasley
<LI>David Martinez Moreno
<LI>Flavio Silvestrow
<LI>Daniel Burrows
<LI>Dave Turner
<LI>Ben Hines
<LI>Kachalov Anton
</UL>
<P><EM>And to all I have forgot to write up!</EM><BR>
Please drop me an email, if I forgot you.
<H2><A NAME="contents">Contents</A></H2>
<UL>
<LI><A HREF="#copyright">Copyright</A>
<LI><A HREF="#disclaimer">Disclaimer</A>
<LI><A HREF="#introduction">Introduction</A>
<LI><A HREF="#install">Install</A>
<LI><A HREF="#upgrade">Upgrade</A>
<LI><A HREF="#changes">Changes</A>
<LI><A HREF="#todo">To-do</A>
<LI><A HREF="#faq">FAQ</A>
<LI><A HREF="#features">Features</A>
<LI><A HREF="#open-projects">Open projects</A>
<LI><A HREF="#documentation">Documentation</A>
<UL>
<LI><A HREF="#commandline">Command line options</A>
<LI><A HREF="#ccl">CCL: FreeCraft Configuration language</A>
<LI><A HREF="#internal">Internal Formats</A>
<UL>
<LI><A HREF="#internal-tileset">Tileset</A>
<LI><A HREF="#internal-ui">User interface</A>
<LI><A HREF="#internal-sprites">Sprites</A>
<LI><A HREF="#internal-sounds">Sounds</A>
<LI><A HREF="#internal-palette">Palette</A>
</UL>
</UL>
<LI><A HREF="#utilities">Utilities</A>
<UL>
</UL>
<LI><A HREF="#arts">Arts</A>
<LI><A HREF="#thanks">Thanks</A>
<LI><A HREF="#contents">Contents</A>
</UL>
<HR>
All trademarks and copyrights on this page are owned by their respective owners.
<ADDRESS><A HREF="mailto:aleclone@FreeCraft.org">The FreeCraft Project</A>
</ADDRESS></BODY></HTML>