ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/global.h
(Generate patch)

Comparing deliantra/server/include/global.h (file contents):
Revision 1.23 by root, Wed Dec 13 18:08:01 2006 UTC vs.
Revision 1.35 by elmex, Wed Jan 3 02:51:10 2007 UTC

16 16
17 You should have received a copy of the GNU General Public License 17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software 18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 20
21 The author can be reached via e-mail to crossfire-devel@real-time.com 21 The author can be reached via e-mail to crossfire@schmorp.de
22*/ 22*/
23 23
24#ifndef GLOBAL_H 24#ifndef GLOBAL_H
25#define GLOBAL_H 25#define GLOBAL_H
26 26
28#define EXTERN extern 28#define EXTERN extern
29#endif 29#endif
30 30
31#include "includes.h" 31#include "includes.h"
32 32
33typedef int8_t sint8;
34typedef uint8_t uint8;
35typedef int16_t sint16;
36typedef uint16_t uint16;
37typedef int32_t sint32;
38typedef uint32_t uint32;
39typedef int64_t sint64;
40typedef uint64_t uint64;
41
42typedef unsigned short Fontindex;
43
44#include "config.h" 33#include "config.h"
45#include "define.h" 34#include "define.h"
46#include "logger.h" 35#include "logger.h"
47 36
48#ifndef TRUE 37#ifndef TRUE
53#define FALSE 0 42#define FALSE 0
54#endif 43#endif
55 44
56// used only for tagging structure members so scripting languages 45// used only for tagging structure members so scripting languages
57// can easily parse the include files. 46// can easily parse the include files.
58#define ACC_CLASS(name) 47#define INTERFACE_CLASS(name)
59#define ACC(meta,member) member 48#define ACC(meta,member) member
49#define MTH
60 50
61#include "keyword.h" 51#include "keyword.h"
62#include "traits.h" 52#include "traits.h"
63#include "dynbuf.h" 53#include "dynbuf.h"
64#include "util.h" 54#include "util.h"
65#include "shstr.h" 55#include "shstr.h"
66#include "newclient.h"
67 56
68/* This blob, in this order, is needed to actually define maps */ 57/* This blob, in this order, is needed to actually define maps */
69#include "face.h" 58#include "face.h"
70/* Include the basic defines from spells.h */ 59
60#include "spells.h"
61
71#include "attack.h" /* needs to be before material.h */ 62#include "attack.h" /* needs to be before material.h */
72#include "material.h" 63#include "material.h"
73#include "living.h" 64#include "living.h"
74#include "object.h" 65#include "object.h"
75#include "map.h" 66#include "map.h"
76#include "tod.h" 67#include "tod.h"
77 68
78#include "skills.h" 69#include "skills.h"
79 70
80/* Pull in the socket structure - used in the player structure */ 71/* Pull in the socket structure - used in the player structure */
81#include "newserver.h" 72#include "network.h"
73#include "client.h"
82 74
83/* Pull in the player structure */ 75/* Pull in the player structure */
84#include "player.h" 76#include "player.h"
85 77
86/* pull in treasure structure */ 78/* pull in treasure structure */
110#include "race.h" 102#include "race.h"
111 103
112/* Now for recipe/alchemy */ 104/* Now for recipe/alchemy */
113#include "recipe.h" 105#include "recipe.h"
114 106
115/* Now for spells */
116#include "spells.h"
117
118#include "funcpoint.h" 107#include "funcpoint.h"
119 108
120/***************************************************************************** 109/*****************************************************************************
121 * GLOBAL VARIABLES: * 110 * GLOBAL VARIABLES: *
122 *****************************************************************************/ 111 *****************************************************************************/
125 114
126/* 115/*
127 * These are the beginnings of linked lists: 116 * These are the beginnings of linked lists:
128 */ 117 */
129EXTERN player *first_player; 118EXTERN player *first_player;
130EXTERN maptile *first_map;
131EXTERN region *first_region; 119EXTERN region *first_region;
132EXTERN treasurelist *first_treasurelist; 120EXTERN treasurelist *first_treasurelist;
133EXTERN artifactlist *first_artifactlist; 121EXTERN artifactlist *first_artifactlist;
134EXTERN archetype *first_archetype; 122EXTERN archetype *first_archetype;
135EXTERN objectlink *first_friendly_object; /* Objects monsters will go after */ 123EXTERN objectlink *first_friendly_object; /* Objects monsters will go after */
136EXTERN godlink *first_god; 124EXTERN godlink *first_god;
137EXTERN racelink *first_race; 125EXTERN racelink *first_race;
138 126
139/* 127/*
140 * The editor uses these (will get them out of here later):
141 */
142
143EXTERN long editor; /* if true, edit maps instead of playing (almost obsolete) */
144
145/*
146 * Variables set by different flags (see init.c): 128 * Variables set by different flags (see init.c):
147 */ 129 */
148 130
149EXTERN long warn_archetypes; /* If true, write warnings when failing */ 131EXTERN bool warn_archetypes; /* If true, write warnings when failing */
150 /* to find archetypes when loading from file */ 132 /* to find archetypes when loading from file */
151EXTERN long init_done; /* Ignores signals until init_done is true */ 133EXTERN bool init_done; /* Ignores signals until init_done is true */
152EXTERN long trying_emergency_save; /* True when emergency_save() is reached */ 134EXTERN bool in_cleanup; /* True when cleanup() is reached */
153EXTERN long nroferrors; /* If it exceeds MAX_ERRORS, call fatal() */
154 135
155extern long pticks; /* used by various function to determine */ 136extern long pticks; /* used by various function to determine */
156 /* how often to save the character */ 137 /* how often to save the character */
157/* 138/*
158 * Misc global variables: 139 * Misc global variables:
163EXTERN long nrofartifacts; /* Only used in malloc_info() */ 144EXTERN long nrofartifacts; /* Only used in malloc_info() */
164EXTERN long nrofallowedstr; /* Only used in malloc_info() */ 145EXTERN long nrofallowedstr; /* Only used in malloc_info() */
165 146
166EXTERN archetype *empty_archetype; /* Nice to have fast access to it */ 147EXTERN archetype *empty_archetype; /* Nice to have fast access to it */
167EXTERN archetype *map_archeytpe; 148EXTERN archetype *map_archeytpe;
168EXTERN char first_map_path[MAX_BUF]; /* The start-level */ 149EXTERN shstr first_map_path; /* The start-level */
169EXTERN char first_map_ext_path[MAX_BUF]; /* Path used for per-race start maps */ 150EXTERN shstr first_map_ext_path; /* Path used for per-race start maps */
170 151
171EXTERN char errmsg[HUGE_BUF]; 152EXTERN char errmsg[HUGE_BUF];
172EXTERN long ob_count; 153EXTERN long ob_count;
173/* 154/*
174 * Used in treasure.c 155 * Used in treasure.c
175 */ 156 */
176EXTERN archetype *ring_arch,*amulet_arch,*staff_arch,*crown_arch; 157EXTERN archetype *ring_arch,*amulet_arch,*staff_arch,*crown_arch;
177 158
178extern std::vector<Animations> animations; 159EXTERN std::vector<Animations> animations;
179EXTERN int num_animations,animations_allocated, bmaps_checksum; 160EXTERN int num_animations,animations_allocated, bmaps_checksum;
180 161
181/* Rotate right from bsd sum. This is used in various places for checksumming */ 162/* Rotate right from bsd sum. This is used in various places for checksumming */
182#define ROTATE_RIGHT(c) if ((c) & 01) (c) = ((c) >>1) + 0x80000000; else (c) >>= 1; 163#define ROTATE_RIGHT(c) if ((c) & 01) (c) = ((c) >>1) + 0x80000000; else (c) >>= 1;
183 164
184
185#define SET_ANIMATION(ob,newanim) ob->face=&new_faces[animations[ob->animation_id].faces[newanim]] 165#define SET_ANIMATION(ob,newanim) ob->face = new_faces + animations [ob->animation_id].faces [newanim]
186#define GET_ANIMATION(ob,anim) (animations[ob->animation_id].faces[anim]) 166#define GET_ANIMATION(ob,anim) animations [ob->animation_id].faces [anim]
187#define GET_ANIM_ID(ob) (ob->animation_id) 167#define GET_ANIM_ID(ob) (ob->animation_id)
188/* NUM_ANIMATIONS returns the number of animations allocated. The last 168/* NUM_ANIMATIONS returns the number of animations allocated. The last
189 * usuable animation will be NUM_ANIMATIONS-1 (for example, if an object 169 * usuable animation will be NUM_ANIMATIONS-1 (for example, if an object
190 * has 8 animations, NUM_ANIMATIONS will return 8, but the values will 170 * has 8 animations, NUM_ANIMATIONS will return 8, but the values will
191 * range from 0 through 7. 171 * range from 0 through 7.
200 180
201extern New_Face *blank_face, *empty_face; 181extern New_Face *blank_face, *empty_face;
202extern New_Face *dark_faces[]; 182extern New_Face *dark_faces[];
203extern New_Face *smooth_face; 183extern New_Face *smooth_face;
204 184
205extern NewSocket *init_sockets; 185extern client *init_sockets;
186
187extern void emergency_save ();
188extern void cleanup (bool make_core = false);
206 189
207#include "libproto.h" 190#include "libproto.h"
208#include "sockproto.h" 191#include "sockproto.h"
209 192
210#define decrease_ob(xyz) decrease_ob_nr(xyz,1) 193#define decrease_ob(xyz) decrease_ob_nr(xyz,1)
211 194
212ACC_CLASS (Settings) 195INTERFACE_CLASS (Settings)
213struct Settings { 196struct Settings {
214 char *ACC (RO, logfilename); /* logfile to use */ 197 char *ACC (RO, logfilename); /* logfile to use */
215 int ACC (RW, csport); /* port for new client/server */ 198 int ACC (RW, csport); /* port for new client/server */
216 int ACC (RW, debug); /* Default debugging level */ 199 int ACC (RW, debug); /* Default debugging level */
217 uint8 dumpvalues; /* Set to dump various values/tables */ 200 uint8 dumpvalues; /* Set to dump various values/tables */
245 uint8 ACC (RW, spell_encumbrance); /* encumbrance effects spells */ 228 uint8 ACC (RW, spell_encumbrance); /* encumbrance effects spells */
246 uint8 ACC (RW, spell_failure_effects); /* nasty backlash to spell failures */ 229 uint8 ACC (RW, spell_failure_effects); /* nasty backlash to spell failures */
247 uint16 ACC (RW, set_friendly_fire); /* Percent of damage done by peaceful player vs player damage */ 230 uint16 ACC (RW, set_friendly_fire); /* Percent of damage done by peaceful player vs player damage */
248 uint8 ACC (RW, casting_time); /* it takes awhile to cast a spell */ 231 uint8 ACC (RW, casting_time); /* it takes awhile to cast a spell */
249 uint8 ACC (RW, real_wiz); /* use mud-like wizards */ 232 uint8 ACC (RW, real_wiz); /* use mud-like wizards */
250 uint8 ACC (RW, recycle_tmp_maps); /* re-use tmp maps. */
251 uint8 ACC (RW, explore_mode); /* explore mode allowed? */ 233 uint8 ACC (RW, explore_mode); /* explore mode allowed? */
252 uint8 ACC (RW, spellpoint_level_depend); /* spell costs go up with level */ 234 uint8 ACC (RW, spellpoint_level_depend); /* spell costs go up with level */
253 char ACC (RW, motd)[MAX_BUF]; /* name of the motd file */ 235 char ACC (RW, motd)[MAX_BUF]; /* name of the motd file */
254 char *ACC (RO, rules); /* name of rules file*/ 236 char *ACC (RO, rules); /* name of rules file*/
255 char *ACC (RO, news); /* name of news file*/ 237 char *ACC (RO, news); /* name of news file*/
262 uint32 ACC (RW, worldmaptilesizex); /* number of squares wide in a wm tile */ 244 uint32 ACC (RW, worldmaptilesizex); /* number of squares wide in a wm tile */
263 uint32 ACC (RW, worldmaptilesizey); /* number of squares high in a wm tile */ 245 uint32 ACC (RW, worldmaptilesizey); /* number of squares high in a wm tile */
264 uint16 ACC (RW, dynamiclevel); /* how dynamic is the world? */ 246 uint16 ACC (RW, dynamiclevel); /* how dynamic is the world? */
265 uint8 ACC (RW, fastclock); /* if true, clock goes warp 9 */ 247 uint8 ACC (RW, fastclock); /* if true, clock goes warp 9 */
266 248
267 char *ACC (RW, emergency_mapname); /* map to return players to in emergency */
268 uint16 ACC (RW, emergency_x), ACC (RW, emergency_y); /* coordinates to use on that map */
269
270 int ACC (RW, max_level); /* This is read out of exp_table */ 249 int ACC (RW, max_level); /* This is read out of exp_table */
271 float ACC (RW, item_power_factor); /* See note in setings file */ 250 float ACC (RW, item_power_factor); /* See note in setings file */
272 251
273 int ACC (RW, armor_max_enchant); /* Maximum number of times an armor can be enchanted */ 252 int ACC (RW, armor_max_enchant); /* Maximum number of times an armor can be enchanted */
274 int ACC (RW, armor_weight_reduction); /* Weight reduction per enchantment */ 253 int ACC (RW, armor_weight_reduction); /* Weight reduction per enchantment */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines