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.22 by root, Wed Dec 13 02:55:50 2006 UTC vs.
Revision 1.34 by root, Sun Dec 31 21:02:04 2006 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; 33#include "config.h"
34typedef uint8_t uint8; 34#include "define.h"
35typedef int16_t sint16; 35#include "logger.h"
36typedef uint16_t uint16;
37typedef int32_t sint32;
38typedef uint32_t uint32;
39typedef int64_t sint64;
40typedef uint64_t uint64;
41 36
42typedef unsigned short Fontindex; 37#ifndef TRUE
38#define TRUE 1
39#endif
43 40
44#include <vector> 41#ifndef FALSE
42#define FALSE 0
43#endif
45 44
45// used only for tagging structure members so scripting languages
46// can easily parse the include files.
46#define ACC_CLASS(name) 47#define INTERFACE_CLASS(name)
47#define ACC(meta,member) member 48#define ACC(meta,member) member
49#define MTH
48 50
49#include "keyword.h" 51#include "keyword.h"
50#include "traits.h" 52#include "traits.h"
51#include "dynbuf.h" 53#include "dynbuf.h"
52#include "util.h" 54#include "util.h"
53#include "shstr.h" 55#include "shstr.h"
54 56
55/* This blob, in this order, is needed to actually define maps */ 57/* This blob, in this order, is needed to actually define maps */
56#include "face.h" 58#include "face.h"
57/* Include the basic defines from spells.h */ 59
60#include "spells.h"
61
58#include "attack.h" /* needs to be before material.h */ 62#include "attack.h" /* needs to be before material.h */
59#include "material.h" 63#include "material.h"
60#include "living.h" 64#include "living.h"
61#include "object.h" 65#include "object.h"
62#include "map.h" 66#include "map.h"
63#include "tod.h" 67#include "tod.h"
64 68
65#include "skills.h" 69#include "skills.h"
66 70
67/* Pull in the socket structure - used in the player structure */ 71/* Pull in the socket structure - used in the player structure */
68#include "newserver.h" 72#include "network.h"
73#include "client.h"
69 74
70/* Pull in the player structure */ 75/* Pull in the player structure */
71#include "player.h" 76#include "player.h"
72 77
73/* pull in treasure structure */ 78/* pull in treasure structure */
97#include "race.h" 102#include "race.h"
98 103
99/* Now for recipe/alchemy */ 104/* Now for recipe/alchemy */
100#include "recipe.h" 105#include "recipe.h"
101 106
102/* Now for spells */
103#include "spells.h"
104
105#include "funcpoint.h" 107#include "funcpoint.h"
106 108
107/***************************************************************************** 109/*****************************************************************************
108 * GLOBAL VARIABLES: * 110 * GLOBAL VARIABLES: *
109 *****************************************************************************/ 111 *****************************************************************************/
112 114
113/* 115/*
114 * These are the beginnings of linked lists: 116 * These are the beginnings of linked lists:
115 */ 117 */
116EXTERN player *first_player; 118EXTERN player *first_player;
117EXTERN maptile *first_map;
118EXTERN region *first_region; 119EXTERN region *first_region;
119EXTERN treasurelist *first_treasurelist; 120EXTERN treasurelist *first_treasurelist;
120EXTERN artifactlist *first_artifactlist; 121EXTERN artifactlist *first_artifactlist;
121EXTERN archetype *first_archetype; 122EXTERN archetype *first_archetype;
122EXTERN objectlink *first_friendly_object; /* Objects monsters will go after */ 123EXTERN objectlink *first_friendly_object; /* Objects monsters will go after */
131 132
132/* 133/*
133 * Variables set by different flags (see init.c): 134 * Variables set by different flags (see init.c):
134 */ 135 */
135 136
136EXTERN long warn_archetypes; /* If true, write warnings when failing */ 137EXTERN bool warn_archetypes; /* If true, write warnings when failing */
137 /* to find archetypes when loading from file */ 138 /* to find archetypes when loading from file */
138EXTERN long init_done; /* Ignores signals until init_done is true */ 139EXTERN bool init_done; /* Ignores signals until init_done is true */
139EXTERN long trying_emergency_save; /* True when emergency_save() is reached */ 140EXTERN bool in_cleanup; /* True when cleanup() is reached */
140EXTERN long nroferrors; /* If it exceeds MAX_ERRORS, call fatal() */
141 141
142extern long pticks; /* used by various function to determine */ 142extern long pticks; /* used by various function to determine */
143 /* how often to save the character */ 143 /* how often to save the character */
144/* 144/*
145 * Misc global variables: 145 * Misc global variables:
150EXTERN long nrofartifacts; /* Only used in malloc_info() */ 150EXTERN long nrofartifacts; /* Only used in malloc_info() */
151EXTERN long nrofallowedstr; /* Only used in malloc_info() */ 151EXTERN long nrofallowedstr; /* Only used in malloc_info() */
152 152
153EXTERN archetype *empty_archetype; /* Nice to have fast access to it */ 153EXTERN archetype *empty_archetype; /* Nice to have fast access to it */
154EXTERN archetype *map_archeytpe; 154EXTERN archetype *map_archeytpe;
155EXTERN char first_map_path[MAX_BUF]; /* The start-level */ 155EXTERN shstr first_map_path; /* The start-level */
156EXTERN char first_map_ext_path[MAX_BUF]; /* Path used for per-race start maps */ 156EXTERN shstr first_map_ext_path; /* Path used for per-race start maps */
157 157
158EXTERN char errmsg[HUGE_BUF]; 158EXTERN char errmsg[HUGE_BUF];
159EXTERN long ob_count; 159EXTERN long ob_count;
160/* 160/*
161 * Used in treasure.c 161 * Used in treasure.c
162 */ 162 */
163EXTERN archetype *ring_arch,*amulet_arch,*staff_arch,*crown_arch; 163EXTERN archetype *ring_arch,*amulet_arch,*staff_arch,*crown_arch;
164 164
165extern std::vector<Animations> animations; 165EXTERN std::vector<Animations> animations;
166EXTERN int num_animations,animations_allocated, bmaps_checksum; 166EXTERN int num_animations,animations_allocated, bmaps_checksum;
167 167
168/* Rotate right from bsd sum. This is used in various places for checksumming */ 168/* Rotate right from bsd sum. This is used in various places for checksumming */
169#define ROTATE_RIGHT(c) if ((c) & 01) (c) = ((c) >>1) + 0x80000000; else (c) >>= 1; 169#define ROTATE_RIGHT(c) if ((c) & 01) (c) = ((c) >>1) + 0x80000000; else (c) >>= 1;
170 170
171
172#define SET_ANIMATION(ob,newanim) ob->face=&new_faces[animations[ob->animation_id].faces[newanim]] 171#define SET_ANIMATION(ob,newanim) ob->face = new_faces + animations [ob->animation_id].faces [newanim]
173#define GET_ANIMATION(ob,anim) (animations[ob->animation_id].faces[anim]) 172#define GET_ANIMATION(ob,anim) animations [ob->animation_id].faces [anim]
174#define GET_ANIM_ID(ob) (ob->animation_id) 173#define GET_ANIM_ID(ob) (ob->animation_id)
175/* NUM_ANIMATIONS returns the number of animations allocated. The last 174/* NUM_ANIMATIONS returns the number of animations allocated. The last
176 * usuable animation will be NUM_ANIMATIONS-1 (for example, if an object 175 * usuable animation will be NUM_ANIMATIONS-1 (for example, if an object
177 * has 8 animations, NUM_ANIMATIONS will return 8, but the values will 176 * has 8 animations, NUM_ANIMATIONS will return 8, but the values will
178 * range from 0 through 7. 177 * range from 0 through 7.
187 186
188extern New_Face *blank_face, *empty_face; 187extern New_Face *blank_face, *empty_face;
189extern New_Face *dark_faces[]; 188extern New_Face *dark_faces[];
190extern New_Face *smooth_face; 189extern New_Face *smooth_face;
191 190
192extern NewSocket *init_sockets; 191extern client *init_sockets;
192
193extern void emergency_save ();
194extern void cleanup (bool make_core = false);
193 195
194#include "libproto.h" 196#include "libproto.h"
195#include "sockproto.h" 197#include "sockproto.h"
196 198
197#define decrease_ob(xyz) decrease_ob_nr(xyz,1) 199#define decrease_ob(xyz) decrease_ob_nr(xyz,1)
198 200
199ACC_CLASS (Settings) 201INTERFACE_CLASS (Settings)
200struct Settings { 202struct Settings {
201 char *ACC (RO, logfilename); /* logfile to use */ 203 char *ACC (RO, logfilename); /* logfile to use */
202 int ACC (RW, csport); /* port for new client/server */ 204 int ACC (RW, csport); /* port for new client/server */
203 int ACC (RW, debug); /* Default debugging level */ 205 int ACC (RW, debug); /* Default debugging level */
204 uint8 dumpvalues; /* Set to dump various values/tables */ 206 uint8 dumpvalues; /* Set to dump various values/tables */
232 uint8 ACC (RW, spell_encumbrance); /* encumbrance effects spells */ 234 uint8 ACC (RW, spell_encumbrance); /* encumbrance effects spells */
233 uint8 ACC (RW, spell_failure_effects); /* nasty backlash to spell failures */ 235 uint8 ACC (RW, spell_failure_effects); /* nasty backlash to spell failures */
234 uint16 ACC (RW, set_friendly_fire); /* Percent of damage done by peaceful player vs player damage */ 236 uint16 ACC (RW, set_friendly_fire); /* Percent of damage done by peaceful player vs player damage */
235 uint8 ACC (RW, casting_time); /* it takes awhile to cast a spell */ 237 uint8 ACC (RW, casting_time); /* it takes awhile to cast a spell */
236 uint8 ACC (RW, real_wiz); /* use mud-like wizards */ 238 uint8 ACC (RW, real_wiz); /* use mud-like wizards */
237 uint8 ACC (RW, recycle_tmp_maps); /* re-use tmp maps. */
238 uint8 ACC (RW, explore_mode); /* explore mode allowed? */ 239 uint8 ACC (RW, explore_mode); /* explore mode allowed? */
239 uint8 ACC (RW, spellpoint_level_depend); /* spell costs go up with level */ 240 uint8 ACC (RW, spellpoint_level_depend); /* spell costs go up with level */
240 char ACC (RW, motd)[MAX_BUF]; /* name of the motd file */ 241 char ACC (RW, motd)[MAX_BUF]; /* name of the motd file */
241 char *ACC (RO, rules); /* name of rules file*/ 242 char *ACC (RO, rules); /* name of rules file*/
242 char *ACC (RO, news); /* name of news file*/ 243 char *ACC (RO, news); /* name of news file*/
249 uint32 ACC (RW, worldmaptilesizex); /* number of squares wide in a wm tile */ 250 uint32 ACC (RW, worldmaptilesizex); /* number of squares wide in a wm tile */
250 uint32 ACC (RW, worldmaptilesizey); /* number of squares high in a wm tile */ 251 uint32 ACC (RW, worldmaptilesizey); /* number of squares high in a wm tile */
251 uint16 ACC (RW, dynamiclevel); /* how dynamic is the world? */ 252 uint16 ACC (RW, dynamiclevel); /* how dynamic is the world? */
252 uint8 ACC (RW, fastclock); /* if true, clock goes warp 9 */ 253 uint8 ACC (RW, fastclock); /* if true, clock goes warp 9 */
253 254
254 char *ACC (RW, emergency_mapname); /* map to return players to in emergency */
255 uint16 ACC (RW, emergency_x), ACC (RW, emergency_y); /* coordinates to use on that map */
256
257 int ACC (RW, max_level); /* This is read out of exp_table */ 255 int ACC (RW, max_level); /* This is read out of exp_table */
258 float ACC (RW, item_power_factor); /* See note in setings file */ 256 float ACC (RW, item_power_factor); /* See note in setings file */
259 257
260 int ACC (RW, armor_max_enchant); /* Maximum number of times an armor can be enchanted */ 258 int ACC (RW, armor_max_enchant); /* Maximum number of times an armor can be enchanted */
261 int ACC (RW, armor_weight_reduction); /* Weight reduction per enchantment */ 259 int ACC (RW, armor_weight_reduction); /* Weight reduction per enchantment */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines