879 lines
27 KiB
HTML
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>
|