====== Crossfire Client configuration file gdefaults ====== The //gdefaults// file is usually located inside the **.**[[crossfire]] directory. \\ This file applies to the old **gtk-1** client for crossfire, \\ The newer gtk-2 client uses the [[gdefaults2]] file as configuration file. \\ This configuration file does not exist in a fresh installation of the client. \\ This file gets created by pressing the 'Save' button in the client configuration sub window \\ found in the Menubar > Client > Configure . At the top of the file one reads : # This file is generated automatically by gcfclient. # Manually editing is allowed, however gcfclient may be a bit finicky about # some of the matching it does. all comparisons are case sensitive. # 'True' and 'False' are the proper cases for those two values # 'True' and 'False' have been replaced with 1 and 0 respectively The code in function //load_defaults()// in file //client/gtk/config.c// parses as follows : if (inbuf[0]=='#') continue; /* IF no colon, then we certainly don't have a real value, so just skip */ if (!(cp=strchr(inbuf,':'))) continue; *cp='\0'; cp+=2; /* colon, space, then value */ val = -1; if (isdigit(*cp)) val=atoi(cp); else if (!strcmp(cp,"True")) val = TRUE; else if (!strcmp(cp,"False")) val = FALSE; Meaning, that lines starting with **#** are ignored, \\ lines need to contain a colon **:** or are ignored, \\ and may have any content, but digits *not* **-1** , \\ and still recognizes **True** or **False** in case sensitive string comparison. ---- ===== Entries ===== Sorted by alphabetical sort: - [[#auto_apply_container]]: < 0 | 1 > - [[#cacheimages]]: < 0 | 1 > - [[#command_window]]: < 1 - 127 > - [[#darkness]]: < 0 | 1 > - [[#displaymode]]: < 0 | 1 > [ CFG_DM_PIXMAP , CFG_DM_SDL ] - [[#download_all_images]]: < 0 | 1 > - [[#echo_bindings]]: < 0 | 1 > - [[#faceset]]: < standard | classic > - [[#fasttcpsend]]: < 0 | 1 > - [[#fog_of_war]]: < 0 | 1 > - [[#foodbeep]]: < 0 | 1 > - [[#grad_color_bars]]: < 0 | 1 > - [[#iconscale]]: < 25 - 200 > - [[#lighting]]: < 0 - 3 > [ CFG_LT_NONE , CFG_LT_TILE , CFG_LT_PIXEL , CFG_LT_PIXEL_BEST ] - [[#map_height]]: < 9 - 31 > [ MAP_MAX_SIZE ] - [[#map_width]]: < 9 - 31 > [ MAP_MAX_SIZE ] - [[#mapscale]]: < 25 - 200 > - [[#mapscroll]]: < 0 | 1 > - [[#message_timestamping]]: < 0 | 1 > - [[#nosplash]]: < 0 | 1 > - [[#popups]]: < 0 | 1 > - [[#port]]: 13327 [ EPORT , DEFPORT ] - [[#resistances]]: < 0 | 1 > - [[#server]]: (null) - [[#show_grid]]: < 0 | 1 > - [[#showicon]]: < 0 | 1 > - [[#sign_popups]]: < 0 | 1 > - [[#smoothing]]: < 0 | 1 > - [[#sound]]: < 0 | 1 > - [[#sound_server]]: < cfsndserv | cfsndserv_alsa9 > - [[#split]]: < 0 | 1 > - [[#splitinfo]]: < 0 | 1 > - [[#tooltips]]: < 0 | 1 > - [[#trim_info_window]]: < 0 | 1 > ---- ==== auto_apply_container ==== Range: 0 - 1 | False | True \\ Default: 1 \\ Menu Entry: Client > Configure > General "Automatically re-applies a container when you use apply to close it. \nIf off, when you use apply to close the container, it stays unapplied" \\ Command Line Parameter: //None// ==== cacheimages ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > Map & Image "Cache Images" \\ Command Line Parameter: [[optional_parameters#-cache]] , [[optional_parameters#-nocache]] ==== command_window ==== Range: **1** - **127** \\ Default: **10** \\ Menu Entry: Client > Configure > General "Command Window" \\ Command Line Parameter: //None// Functions: * init_client_vars() * File: client/common/init.c * want_config[CONFIG_CWINDOW] = COMMAND_WINDOW; * File: client/common/client.h #define COMMAND_WINDOW 10 * CButtons cbuttons[MAX_BUTTONS] = { * File: client/gtk/config.c * {NULL, SPIN_CWINDOW, CONFIG_CWINDOW, FLAG_UPDATE, "Command Window"}, * configdialog(GtkWidget *widget) * File: client/gtk/config.c * else if (cbuttons[i].type == SPIN_CWINDOW) adj = (GtkAdjustment *) gtk_adjustment_new(want_config[cbuttons[i].config], 1, 127, 1, 5, 5); * load_defaults() * File client/gtk/config.c * **Warning**: No check for upper and lower limit, might work beyond 127 and uncertain if set < 1 ==== darkness ==== Range: 0 - 1 | False | True \\ Default: 1 \\ Menu Entry: Client > Configure > Map & Image "Enable darkness code - if off, all spaces will not be dimmed." \\ Command Line Parameter: [[optional_parameters#-darkness]] , [[optional_parameters#-nodarkness]] The darkness code is provided by the server handling the [[:player_commands#time]] , [[:spells]] and maps with the archetype attribute [[:arch:arch_attributes:d#darkness]] set. **Note**: Seems not to work to set the [[#lighting]] value to CFG_LT_NONE when function //applyconfig()// is called. \\ The client handles the want_config[CONFIG_DARKNESS] value only at it's startup in //load_defaults()// . \\ If the CONFIG_LIGHTING is set to greater than zero, then the darkness code will be always enabled. \\ Since the user has no possibility to select CFG_LT_NONE in the configuration GUI, darkness will be always enabled. \\ :!: BUG: The only possibility to disable the darkness code, is to set [[#lighting]] manually to False | 0 . \\ CONFIG_DARKNESS is not used anywhere else in the code except while checking commandline parameters and loading defaults; \\ while CONFIG_LIGHTING is applied in //client/common/mapdata.c// and //client/gtk/sdl.c// . Functions: * init_client_vars() * File: client/common/init.c * want_config[CONFIG_DARKNESS] = TRUE; * load_defaults() * File: client/gtk/config.c * want_config[i] = val; *if (!want_config[CONFIG_LIGHTING]) { * LOG(LOG_WARNING,"gtk::load_defaults","No lighting mechanism selected - will not use darkness code"); * want_config[CONFIG_DARKNESS] = FALSE; ==== displaymode ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > Map & Image "SDL Image Support (Take effect next run)" \\ Command Line Parameter: [[optional_parameters#-sdl]] The displaymode entry can have two values for drawing the map: * 0 : Pixmap * 1 : SDL ; command line option [[optional parameters#-sdl]] Any other numerical values than those above will still be "acknowledged" by the client, but will lead to error messages as \\ ''[ ERROR ] (Library::Gdk-CRITICAL) file gdkdraw.c: line 89 (gdk_draw_rectangle): assertion `drawable != NULL' failed.'' \\ and \\ ''[ ERROR ] (Library::Gdk-CRITICAL) file gdkdraw.c: line 379 (gdk_draw_pixmap): assertion `drawable != NULL' failed.'' \\ and \\ ''[ ERROR ] (Library::Gdk-CRITICAL) file gdkdraw.c: line 380 (gdk_draw_pixmap): assertion `src != NULL' failed.'' \\ , thus the map would not be drawn. === SDL === If the SDL libraries were not available at [[client compiling]] time, then the displaymode would fall back to Pixmap mode. \\ The client then does not print anything to stderr from function //load_defaults()// in //client/gtk/config.c// \\ to inform the user about it: #ifndef HAVE_SDL /* If SDL is not built in, having SDL mode turned on causes many issues. */ want_config[CONFIG_DISPLAYMODE] = CFG_DM_PIXMAP; #endif See also [[#lighting]] modes for SDL. ==== download_all_images ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > Map & Image "Download All Image Information (Takes effect on next server connection)" \\ Command Line Parameter: [[optional_parameters#-download_all_faces]] ==== echo_bindings ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > General "Echo Bound Commands" \\ Command Line Parameter: [[optional_parameters#-echo]] , [[optional_parameters#-noecho]] When set, should print the commands issued to the server by keypress in the informational window. See also [[:player_commands]] . ==== faceset ==== Range: standard | classic \\ Default: standard \\ Menu Entry: Client > Configure > Map & Image \\ Command Line Parameter: [[optional_parameters#-faceset]] ==== fasttcpsend ==== Range: 0 - 1 | False | True \\ Default: 1 \\ Menu Entry: Client > Configure > General "Fast TCP Send (May improve performance at expense\n of outgoing bandwidth)" \\ Command Line Parameter: [[optional_parameters#-fasttcpsend]] , [[optional_parameters#-nofasttcpsend]] ==== fog_of_war ==== Range: 0 - 1 | False | True \\ Default: 1 \\ Menu Entry: Client > Configure > Map & Image "Fog of War" \\ Command Line Parameter: [[optional_parameters#-fog]] The "Fog of War" is mere a "Line of Sight" handler, since cleared areas do not become covered by inscrutable "mist" again, \\ except for [[#darkness]] may gray out cleared areas again. ==== foodbeep ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > General "Beep When Food is Low" \\ Command Line Parameter: //None// The client issues beep tones to the beep speaker of the computer, when the nourishing level gets below 200, and each time the nourishing level is decremented by 1. ==== grad_color_bars ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > General "Gradually change stat bar color based on value of the stat.\nThis option will result in some extra CPU usage." \\ Command Line Parameter: //None// When unset, the status bars for HP, SP, GR, Food do not change coloration according to their current amount. ==== iconscale ==== Range: **25** - **200** \\ Default: **100** \\ Menu Entry: Client > Configure > Map & Image "Icon Scale (Takes effect next run)" \\ Command Line Parameter: [[optional_parameters#-iconscale]] Functions : * init_client_vars() * File: client/common/init.c * want_config[CONFIG_ICONSCALE] = 100; * configdialog(GtkWidget *widget) * File: client/gtk/config.c * if (cbuttons[i].type == SPIN_SCALE) adj = (GtkAdjustment *) gtk_adjustment_new(want_config[cbuttons[i].config], 25, 200, 1, 5, 5); * load_defaults() * File client/gtk/config.c * if (want_config[CONFIG_ICONSCALE]< 25 || want_config[CONFIG_ICONSCALE]>200) ==== lighting ==== Range: **0** - **3** \\ Default: **1** \\ Menu Entry: Client > Configure > Map & Image "Lighting options, per pixel is prettier, per tile is faster.\nIf the darkness code is off, the pixel/tile options will be ignored." * 0 : //set by darkness// * 1 : "Per Tile Lighting" * 2 : "Fast Per Pixel Lighting" * 3 : "Best Per Pixel Lighting (slowest)" Command Line Parameter: //None// **Note**: When not set (0, CFG_LT_NONE), should disable [[#darkness]] code. Functions: * client/common/client.h: * /* CONFIG_LIGHTING can have several possible values - set them accordingly */ * #define CFG_LT_NONE 0 * #define CFG_LT_TILE 1 * #define CFG_LT_PIXEL 2 * #define CFG_LT_PIXEL_BEST 3 * init_client_vars() * File: /client/common/init.c * want_config[CONFIG_LIGHTING] = CFG_LT_TILE; * load_defaults() * File: client/gtk/config.c * if (!want_config[CONFIG_LIGHTING]) want_config[CONFIG_DARKNESS] = FALSE; * CButtons cbuttons[MAX_BUTTONS] = { * File: client/gtk/config.c * {NULL, RBUTTON, 100 + CFG_LT_PIXEL_BEST, FLAG_MAPPANE, "Best Per Pixel Lighting (slowest)"}, * {NULL, RBUTTON, 100 + CFG_LT_PIXEL, FLAG_MAPPANE, "Fast Per Pixel Lighting"}, * {NULL, RBUTTON, 100 + CFG_LT_TILE, FLAG_MAPPANE, "Per Tile Lighting"}, * applyconfig() * File: client/gtk/config.c * else if (cbuttons[onbutton].type == RBUTTON) { * /* We know that the only radio buttons currently in use are those for * lighting. IF other radio buttons are added later, this should be changed. */ * if ( GTK_TOGGLE_BUTTON (cbuttons[onbutton].widget)->active) { * if ( cbuttons[onbutton].config >= 100 && cbuttons[onbutton].config < 200) * lighting = cbuttons[onbutton].config - 100; * **Note**: applyconfig does not work correctly for almost all configuration options to apply them immediately "on the fly" - but for the lighting settings, it works. === SDL lighting in pictures == City of Navar around midnight .. ^ lighting 0 None ^ lighting 1 Per Tile ^ lighting 2 Fast per Pixel ^ lighting 3 Best per Pixel ^ | {{sdl_lightning_0_none.jpg?180}} | {{sdl_lightning_1_per_tile.jpg?180}} | {{sdl_lightning_2_fast_per_pixel.jpg?180}} | {{sdl_lightning_3_best_per_pixel.jpg?180}} | ==== map_height ==== Range: **9** - **31** ( see function //load_defaults()// in //client/gtk/config.c// ) \\ Default: **11** ( see function //init_client_vars()// want_config[CONFIG_MAPHEIGHT] = 11; in //client/common/init.c// ) \\ Menu Entry: Client > Configure > General "Map Size: Larger map lets you see more information, but takes more CPU\npower and bandwidth. Changing these will not take effect until the next time\nyou connect to a server" \\ "Map Height" \\ Command Line Parameter: [[optional_parameters#-mapsize]] \\ **Note**: The server has a maximum map size hardcoded to send to the client set as **25** by default. \\ See topic [[:server:compiling_the_server:config_h#mapsize]] for MAP_CLIENT_Y . ==== map_width ==== Range: **9** - **31** ( see function //load_defaults()// in //client/gtk/config.c// ) \\ Default: **11** ( see function //init_client_vars()// want_config[CONFIG_MAPWIDTH] = 11; in //client/common/init.c// ) \\ Menu Entry: Client > Configure > General "Map Width" \\ Command Line Parameter: [[optional_parameters#-mapsize]] **Note**: The server has a maximum map size hardcoded to send to the client set as **25** by default. \\ See topic [[:server:compiling_the_server:config_h#mapsize]] for MAP_CLIENT_X . ==== mapscale ==== Range: **25** - **200** \\ Default: **100** \\ Menu Entry: Client > Configure > Map & Image "Map Scale (Takes effect next run)" \\ Command Line Parameter: [[optional_parameters#-mapscale]] Functions : * init_client_vars() * File: client/common/init.c * want_config[CONFIG_MAPSCALE] = 100; * CButtons cbuttons[MAX_BUTTONS] = { * File: client/gtk/config.c * {NULL, SPIN_SCALE, CONFIG_MAPSCALE, FLAG_MAPPANE, "Map Scale (Takes effect next run)"}, * configdialog(GtkWidget *widget) * File: client/gtk/config.c * if (cbuttons[i].type == SPIN_SCALE) adj = (GtkAdjustment *) gtk_adjustment_new(want_config[cbuttons[i].config], 25, 200, 1, 5, 5); * load_defaults() * File client/gtk/config.c * if (want_config[CONFIG_MAPSCALE]< 25 || want_config[CONFIG_MAPSCALE]>200) ==== mapscroll ==== Range: \\ Default: 1 \\ Menu Entry: //not available// \\ Command Line Parameter: [[optional_parameters#-mapscroll]] , [[optional_parameters#-nomapscroll]] ==== message_timestamping ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > General "Timestamp Messages" \\ Command Line Parameter: //None// when set, adds a HH:MM Hour:Minute tag to each message printed in the informational window. ==== nosplash ==== Range: 0 - 1 | False | True \\ Default: 1 \\ Menu Entry: Client > Configure > General "Splash Window" \\ Command Line Parameter: [[optional_parameters#-splash]] , [[optional_parameters#-nosplash]] ==== popups ==== Values : 0 or 1 -- 0 disables popup windows like a separate log-in window, 1 enables them. \\ Default: 0 ( disabled ) \\ Menu Entry: Client > Configure > General "Popup Windows" \\ Command Line Parameter: [[optional_parameters#-popups]] , [[optional_parameters#-nopopups]] The default is set to **0** inside the source code \\ in function init_client_vars() in file common/init.c as variable want_config[CONFIG_POPUPS] = FALSE; . Behaviour: Most popup-windows might be annoying, while playing the game, but the log-on to a server had been impossible for versions 1.11.0 and below of the GTK-1 client, if that was unset ( 0 ) . To enter a user-name was not possible in the "traditional" Info-Message and Cmd-Line Pane on the right side of the client. \\ See also * ChangeLog [[changelog_0_92_1_70_0#Popups not the default anymore]] * ChangeLog [[changelog_0_92_1_70_0#Popups @ v.1.12.0 client GTK1 mixed with GTK2 can not login]] * ChangeLog [[changelog_0_92_1_70_0#Keyboard input impossible or confusing]] * known_client_issues [[:known_client_issues#Keyboard input impossible or confusing]] * bugs [[bugs#Pressing a keyboard key activates the command-line]] ==== port ==== Range: \\ Default: \\ Menu Entry: //not available// \\ Command Line Parameter: [[optional_parameters#-port]] ==== resistances ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > General "Display resistances in two columns rather than only one." \\ Command Line Parameter: [[optional_parameters#-resists]] The value **0** prints resistances in 1 column, the value **1** prints them in two columns. ==== server ==== Range: \\ Default: \\ Menu Entry: //not available// \\ Command Line Parameter: [[optional_parameters#-server]] ==== show_grid ==== Range: 0 - 1 | False | True \\ Default: 0 Client Menu: Client > Configure > Map & Image > "Print Grid Overlay (SDL only, Slow, useful for debugging/development" \\ Command Line Parameter: //None// This option is only available for the SDL [[#displaymode]] . \\ Purpose: It draws a red tile grid-overlay onto the map. \\ Effect: The grid vanishes as soon as the player moves. The player has to apply it each move in the configuration sub window. \\ Implemented: gridline options available under the client config window. //MSW 2001-06-17// \\ The GTK-2 client does not have such a Menu option to choose anymore; but still has this parameter entry in it's [[gdefaults2]] config file. ==== showicon ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > General "Show Inventory Icon" \\ Command Line Parameter: [[optional_parameters#-showicon]] Adds a notebook tab to the inventory window, where the items in the inventory are just drawn without any text. ==== sign_popups ==== Range: 0 - 1 | False | True \\ Default: 1 \\ Menu Entry: Client > Configure > General "Popup Sign Windows (need [[#popups|Popup]] Windows checked to be used)" \\ Command Line Parameter: //None// ==== smoothing ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > Map & Image "Enable smoothing - Use additionnal CPU (Take effect on next connection)." \\ Command Line Parameter: [[optional_parameters#-smooth]] , [[optional_parameters#-nosmooth]] ==== sound ==== Range: 0 - 1 | False | True \\ Default: 1 \\ Menu Entry: Client > Configure > General "Sound" \\ Command Line Parameter: [[optional_parameters#-sound]] , [[optional_parameters#-nosound]] When enabled, raises a sound server, but sound had been broken for a long time. \\ The server has to send sound effect commands to the client. ==== sound_server ==== Range: \\ Default: cfsndserv \\ Menu Entry: //not available// \\ Command Line Parameter: [[optional_parameters#-sound_server]] ==== split ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > General "Split Windows" \\ Command Line Parameter: [[optional_parameters#-split]] When set, the client GUI will be split into several small windows, instead of one single window. ==== splitinfo ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > General "Split Information Window (Takes effect next run)" \\ Command Line Parameter: [[optional_parameters#-splitinfo]] The information window to the right side of the GUI can be split into two areas. \\ The upper area the usually draws coloured messages, while the lower part draws the common black messages. ==== tooltips ==== Range: 0 - 1 | False | True \\ Default: 1 \\ Menu Entry: Client > Configure > General "Show Tooltips" \\ Command Line Parameter: //None// Tooltips are the small text popups that appear when hoovering with the mouse pointer about areas. ==== trim_info_window ==== Range: 0 - 1 | False | True \\ Default: 0 \\ Menu Entry: Client > Configure > General "Trims text in the information window - " \\ "improves performance but bugs in\n gtk make the client unstable if this is used." \\ "This may work better with gtk 2.0" \\ Command Line Parameter: [[optional_parameters#-triminfowindow]] , [[optional_parameters#-notriminfowindow]] When set, limits the scrollback buffer of the information window to ~100 thousand chars.