url:http://crossfire.freezope.org/docs/Developer%20Docs/images
meta_type:BackTalk Document
auth:Basic VG9kZDpyb2NrcG9ydHJvdmVy
cookie:tree-s="eJzTiFZ3BAOngNSIZFv1WB1NADFEBPk"; fzf_cookie="1"

Making Crossfire Images

 Rules for image sets:

  1. Image format for all images should
be png.

  2. There must be an active maintainer of each of the image sets.  If a set
gets too out of date because of no maintainer, that particular set gets
removed.

  3. When new arch (and image) is introduced, only an image for the main set is
required.  It is up to the maintainers of the different sets to make an image
if the default one is not appropriate.

  4. There must be a reason for adding a new set.  This generally equates
to enough people expressing interest in the set, or the number of new images
is substantial enough to warrant the addition.  The use of image sets
is not for making a set with 10 images because you prefer those over
some in another set.

  5. Naming works like this: If the image name is Bk.272, then the
actual file name would be Bk.*set*.272.png where *set* is a four letter
abbreviation that has some relevance to the set name.  An example would be
Bk.*clsc*.272.png, where *clsc* is the classic image set.  The arch of course
would only refer to BK.272

  6. Whenever adding a new image set, update the
lib/image_info file

  7. Image sets only provide alternate images -
the .arc files are remained unchanged by the addition of image sets.
An arch must have a graphic from the *base* set, graphic from additional
image sets are optional, but if an arch has one image version -it has to be called base.



 Internal working of image sets:

  All images within crossfire are still known without the set or png
extension.  Thus, for archetypes, the image name is sword.111, not
sword.base.111.png.
 The collect script only collects the images for the set.  If the client
requests an image that is not in the set it is using, the server will
use the fallback logic to find an image to send to the client.  Collecting
only the images in the set results in smaller installed image files,
a smaller memory footprint for the server, and faster loading time.


 The server does not care about the image content.  As far as the server
is concerned, it is just a bunch of bits it serves to the client.
 The server uses the image number, the long name, and the fallback.
The long name can be used when the client requests the images it
gets sent.


 Combining individual small images into 1 big image:


  There are a great many objects in crossfire that are bigger than one square.
Prior to this writing (May 18, 2002), there was no way to combine these into
one big image.  The server and unix clients now support this.

   1. Evaluate if the archetype should be as many spaces as the image may extend
into.  For example, a tower is tall, and even though the image may represent
that, it should probably only be a single square object.  But there are other
objects, such as shops, which are short but large, and thus should be 2x2
square multipart objects.

   2. A combined image doesn't have parts anymore, so the first digit isn't
meaning.  Using an 'x' as the part number is a good notation to show that
this is in fact a big image (eg, store_alch.x11).

   3. It is not possible to have combined images in one image set and non combined
in another.  What this basically means is that the base set should always have
a combined image, with the other sets possibly having such images - since the
name of the combined image will be different, until any other sets are updated,
they will just use the image in the base set.

   4. the .arc file needs to be modified so that the face for all the different
parts of an image are the same.  The server makes this check based on name to
know if it should handle this object as a combined image or not.

   5. Rebuild the archetypes, collect the images, and install.
