User Tools

Site Tools

Command disabled: register

client:crossfire

.crossfire

This is a guide to some of the resources in the data folder used by various Crossfire Clients .

  • The hidden .crossfire folder contains Crossfire client configuration and data files.
  • It is usually located in the player's $HOME folder.

gfx folder

  • If an image normally obtained from the server is found in this folder, it is displayed instead of the server version.
  • If you are designing new graphics for crossfire, you may draw the graphics and test them in game by placing them in this folder. It is not necessary to run a server to test the graphics.
  • For example, if the client needed to draw a dwarf, it might need to find a dwarf_p.111.png image file. Normally this file would be downloaded from the server, but the client looks for .crossfire/gfx/dwarf_p.111.png before it looks in the cache, and before it asks the server for the image.

image-cache folder

If image caching is enabled in the crossfire client ,
either by the option in the Menu Client > Configure > Display & Image Cache Options ,
which then would change the entry line cacheimages in the gdefaults file;
or by the command-line parameter -cache , then,
if there are not found any cached images in the CF_DATADIR, the client should download the images herein.

This applies also to the Menu Option Download all images at connection time,
and for the -download_all_faces command line option.

bmaps.client

The client tests for a file named bmaps.client inside the image-cache directory and if found, reads it's entries.

This is done in the function init_common_cache_data of the file common/image.c inside the client source:
sprintf(bmaps,“%s/bmaps.client”,CF_DATADIR);
and if not found in the CF_DATADIR, then here in .crossfire/ :
sprintf(bmaps,“%s/.crossfire/image-cache/bmaps.client”, getenv(“HOME”));

The CF_DATADIR is crossfire-client inside the –prefix=/path compile time parameter;
for the Debian OS usr/games , default usr/local .

Troubleshooting

The client does not install some bmaps.client file when it has been compiled and afterwards installed by make install .
Whenever the client is launched, it would unfortunately print the error message
“Unable to open [CF_DATADIR]bmaps.client. You may wish to download and install the image file to improve performance.”
in red, which could confuse many users.

The solution is either to create an empty file in share/crossfire-client to suppress this annoying error message;
on Linux it would be the terminal command touch /usr/local/share/crossfire-client/bmaps.client ,
or to download the “crossfire-client-images-X.YY.Z.tar.gz” version package from the sourceforge repository
and to extract it inside the share/crossfire-client folder.

The crossfire-client-images-.tar.gz package is available since around version 1.2.1 and for most versions of the client, and if one version folder on sourceforge misses it like 1.12.0 and 1.8.0, then likely the version before would fit.
The content of the client-images pkg is different, than the storage of the server-send images : Two archive files, one README text file and a bmaps.client text file.

The process to create an images.tar.gz for the client is described in the Release Guide Client :

Make an image archive for the client. Need a server tree with a properly linked arch tree.
cd lib; adm/collect_images.pl -archive

A rationale would be to have a shared image folder on a shared computer, so that not every user would need his own image-cache files. The .crossfire/image-cache directory has some 10 to 20 thousand files at a size of 10 - 20 MB for both image sets default and classic .

If desired, one can move the .crossfire/image-cache/ content into share/crossfire-client/ , which would then add around 260 directories to that CF_DATADIR folder, where the themes folder is located and the glade-gtk2 folder for the gtk-2 client.

:!: The client unfortunately does not (yet) download the files received from the server into CF_DATADIR/image-cache

crossfire-images folder

Until version 1.10.0 the cached images were stored in this folder.
For later versions 1.11 and above of the client, see above image-cache folder .

The older clients used a variable named DATADIR :
sprintf(bmaps,“%s/bmaps.client”,DATADIR);

sound.cache folder

The ChangeLog says :

The sound files are expected to be in either ${HOME}/sound.cache/
or CF_DATADIR/sounds/. No provision exists yet for sound file installation.

The variable is defined in client/sound-src/common.h : #define USER_SOUNDS_PATH “/.crossfire/sound.cache/”

client/crossfire.txt · Last modified: 2018/03/21 11:25 by karl