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.24 by root, Wed Dec 13 21:27:09 2006 UTC vs.
Revision 1.37 by pippijn, Sat Jan 6 14:42:30 2007 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines