-------------------------------------------------------------------------------
Information for developers and contributors
-------------------------------------------------------------------------------

Contributions
-------------

Contributions like patches, ideas and bug-reports are always welcome! Just
send an email to Uwe Hermann <uh1763@hermann-uwe.de> or to the development
mailing-list.

See AUTHORS for a list of people who already contributed to htsserver.


Coding Guidelines
-----------------

The coding-style you use in your patches doesn't matter, I'll convert
everything to my own coding-style anyway :-)

The following guidelines should keep the code consistent and maintainable:

  * Indentation width and brace style: See source files.
  * Keep files and functions reasonably small.
  * Write only 80 characters per line where possible.
  * Always use good, unabbreviated, correctly-spelled meaningful names.
  * Procedure names should reflect what they do, function names should reflect
    what is returned by them.
  * If you can identify a function as returning a boolean from its name
    (e.g isalpha(), password_is_valid() etc.) then it should return TRUE
    or FALSE or alternatively YES or NO.
    If the name doesn't sound like the function returns a boolean
    (e.g. do_this_and_that()), then it should return 0 on success,
    and -1 on errors.


Client/Server Design
--------------------

Holsham Traders is a client/server game. This allows networked games on
LANs or the Internet. The game is intended to allow very many players
simultaneously and it will run in realtime.

The server and clients communicate according to a protocol called
'htsprotocol', which is a set of keywords that must be interpreted by the
client and the server correctly. See docs/PROTOCOL for details.


Tools
-----

If you want to contribute code to this project you'll probably need the
following tools/libraries installed in addition to the requirements mentioned
in the README:

 * autoconf 2.49c or better
    ftp://alpha.gnu.org/gnu/autoconf/

 * A recent CVS automake (or the soon-to-be-released automake 1.4c)
    ftp://sourceware.cygnus.com/pub/automake/


Mailing-lists
-------------

See README for information about available mailing-list(s) and info on how
to subscribe/unsubscribe. There are mailing-list archives available, too.


CVS
---

htsserver is also available via CVS. Please check
  http://sourceforge.net/cvs/?group_id=391
to learn how you can 'checkout' the source.

You can browse the repository online here:
 http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi?cvsroot=htsserver


Patches
-------

Use
 diff -Naur old_dirname new_dirname > patchfile
to generate patches which you can send to me.

Test these patches with
 patch -Np0 < patchfile

Always include information about *which* version you patched in your mail.

If you plan to make lots of changes, it's better to send several smaller
patches than a big one. This will ease including your changes in the
distribution.


--
Any comments or tips are welcome.
Uwe Hermann <uh1763@hermann-uwe.de>
