… | |
… | |
22 | * The author can be reached via e-mail to crossfire@schmorp.de |
22 | * The author can be reached via e-mail to crossfire@schmorp.de |
23 | */ |
23 | */ |
24 | |
24 | |
25 | #ifndef GLOBAL_H |
25 | #ifndef GLOBAL_H |
26 | #define GLOBAL_H |
26 | #define GLOBAL_H |
|
|
27 | |
|
|
28 | //#define _GLIBCXX_CONCEPT_CHECKS |
27 | |
29 | |
28 | #ifndef EXTERN |
30 | #ifndef EXTERN |
29 | #define EXTERN extern |
31 | #define EXTERN extern |
30 | #endif |
32 | #endif |
31 | |
33 | |
… | |
… | |
112 | *****************************************************************************/ |
114 | *****************************************************************************/ |
113 | |
115 | |
114 | /* |
116 | /* |
115 | * These are the beginnings of linked lists: |
117 | * These are the beginnings of linked lists: |
116 | */ |
118 | */ |
117 | EXTERN treasurelist *first_treasurelist; |
|
|
118 | EXTERN artifactlist *first_artifactlist; |
119 | EXTERN artifactlist *first_artifactlist; |
119 | EXTERN archetype *first_archetype; |
120 | EXTERN archetype *first_archetype; |
120 | EXTERN objectlink *first_friendly_object; /* Objects monsters will go after */ |
121 | EXTERN objectlink *first_friendly_object; /* Objects monsters will go after */ |
121 | EXTERN godlink *first_god; |
122 | EXTERN godlink *first_god; |
122 | EXTERN racelink *first_race; |
123 | EXTERN racelink *first_race; |
123 | |
124 | |
124 | /* |
125 | /* |
125 | * Variables set by different flags (see init.c): |
126 | * Variables set by different flags (see init.c): |
126 | */ |
127 | */ |
127 | |
128 | |
128 | EXTERN bool warn_archetypes; /* If true, write warnings when failing */ |
|
|
129 | /* to find archetypes when loading from file */ |
|
|
130 | EXTERN bool init_done; /* Ignores signals until init_done is true */ |
129 | EXTERN bool init_done; /* Ignores signals until init_done is true */ |
131 | EXTERN bool in_cleanup; /* True when cleanup() is reached */ |
130 | EXTERN bool in_cleanup; /* True when cleanup() is reached */ |
132 | |
131 | |
133 | extern long pticks; /* used by various function to determine */ |
132 | extern long pticks; /* used by various function to determine */ |
134 | /* how often to save the character */ |
133 | /* how often to save the character */ |
135 | /* |
134 | /* |
136 | * Misc global variables: |
135 | * Misc global variables: |
137 | */ |
136 | */ |
138 | EXTERN FILE *logfile; /* Used by server/daemon.c */ |
137 | EXTERN FILE *logfile; /* Used by server/daemon.c */ |
139 | EXTERN int exiting; /* True if the game is about to exit */ |
|
|
140 | EXTERN long nroftreasures; /* Only used in malloc_info() */ |
|
|
141 | EXTERN long nrofartifacts; /* Only used in malloc_info() */ |
|
|
142 | EXTERN long nrofallowedstr; /* Only used in malloc_info() */ |
|
|
143 | |
138 | |
144 | EXTERN archetype *empty_archetype; /* Nice to have fast access to it */ |
139 | EXTERN archetype *empty_archetype; /* Nice to have fast access to it */ |
145 | EXTERN archetype *map_archeytpe; |
140 | EXTERN archetype *map_archeytpe; |
146 | EXTERN shstr first_map_path; /* The start-level */ |
141 | EXTERN shstr first_map_path; /* The start-level */ |
147 | EXTERN shstr first_map_ext_path; /* Path used for per-race start maps */ |
142 | EXTERN shstr first_map_ext_path; /* Path used for per-race start maps */ |
… | |
… | |
150 | EXTERN long ob_count; |
145 | EXTERN long ob_count; |
151 | /* |
146 | /* |
152 | * Used in treasure.c |
147 | * Used in treasure.c |
153 | */ |
148 | */ |
154 | EXTERN archetype *ring_arch, *amulet_arch, *staff_arch, *crown_arch; |
149 | EXTERN archetype *ring_arch, *amulet_arch, *staff_arch, *crown_arch; |
155 | |
|
|
156 | EXTERN std::vector<animation> animations; |
|
|
157 | EXTERN int num_animations, animations_allocated; |
|
|
158 | EXTERN uint32_t bmaps_checksum; |
|
|
159 | |
150 | |
160 | #define SET_ANIMATION(ob,newanim) ob->face = animations [ob->animation_id].faces [newanim] |
151 | #define SET_ANIMATION(ob,newanim) ob->face = animations [ob->animation_id].faces [newanim] |
161 | #define GET_ANIMATION(ob,anim) animations [ob->animation_id].faces [anim] |
152 | #define GET_ANIMATION(ob,anim) animations [ob->animation_id].faces [anim] |
162 | #define GET_ANIM_ID(ob) (ob->animation_id) |
153 | #define GET_ANIM_ID(ob) (ob->animation_id) |
163 | /* NUM_ANIMATIONS returns the number of animations allocated. The last |
154 | /* NUM_ANIMATIONS returns the number of animations allocated. The last |
… | |
… | |
181 | |
172 | |
182 | #define decrease_ob(xyz) decrease_ob_nr(xyz,1) |
173 | #define decrease_ob(xyz) decrease_ob_nr(xyz,1) |
183 | |
174 | |
184 | INTERFACE_CLASS (Settings) |
175 | INTERFACE_CLASS (Settings) |
185 | struct Settings { |
176 | struct Settings { |
186 | char *ACC (RO, logfilename); /* logfile to use */ |
177 | const char *ACC (RO, logfilename); /* logfile to use */ |
187 | int ACC (RW, csport); /* port for new client/server */ |
178 | int ACC (RW, csport); /* port for new client/server */ |
188 | int ACC (RW, debug); /* Default debugging level */ |
179 | int ACC (RW, debug); /* Default debugging level */ |
189 | uint8 dumpvalues; /* Set to dump various values/tables */ |
180 | uint8 dumpvalues; /* Set to dump various values/tables */ |
190 | char *dumparg; /* additional argument for some dump functions */ |
181 | const char *dumparg; /* additional argument for some dump functions */ |
191 | uint8 daemonmode; /* If true, detach and become daemon */ |
182 | uint8 daemonmode; /* If true, detach and become daemon */ |
192 | int argc; /* parameters that were passed to the program */ |
183 | int argc; /* parameters that were passed to the program */ |
193 | char **argv; /* Only used by xio.c, so will go away at some time */ |
184 | char **argv; /* Only used by xio.c, so will go away at some time */ |
194 | char *ACC (RO, confdir); /* configuration files */ |
185 | const char *ACC (RO, confdir); /* configuration files */ |
195 | char *ACC (RO, datadir); /* read only data files */ |
186 | const char *ACC (RO, datadir); /* read only data files */ |
196 | char *ACC (RO, localdir); /* read/write data files */ |
187 | const char *ACC (RO, localdir); /* read/write data files */ |
197 | char *ACC (RO, playerdir); /* Where the player files are */ |
188 | const char *ACC (RO, playerdir); /* Where the player files are */ |
198 | char *ACC (RO, mapdir); /* Where the map files are */ |
189 | const char *ACC (RO, mapdir); /* Where the map files are */ |
199 | char *ACC (RO, archetypes); /* name of the archetypes file - libdir is prepended */ |
190 | const char *ACC (RO, archetypes); /* name of the archetypes file - libdir is prepended */ |
200 | char *ACC (RO, regions); /* name of the regions file - libdir is prepended */ |
191 | const char *ACC (RO, regions); /* name of the regions file - libdir is prepended */ |
201 | char *ACC (RO, treasures); /* location of the treasures file. */ |
192 | const char *ACC (RO, treasures); /* location of the treasures file. */ |
202 | char *ACC (RO, uniquedir); /* directory for the unique items */ |
193 | const char *ACC (RO, uniquedir); /* directory for the unique items */ |
203 | char *ACC (RO, templatedir); /* directory for the template map */ |
194 | const char *ACC (RO, templatedir); /* directory for the template map */ |
204 | char *ACC (RO, tmpdir); /* Directory to use for temporary files */ |
195 | const char *ACC (RO, tmpdir); /* Directory to use for temporary files */ |
205 | sint16 ACC (RW, pk_luck_penalty); /* Amount by which player luck is reduced if they PK */ |
196 | sint16 ACC (RW, pk_luck_penalty); /* Amount by which player luck is reduced if they PK */ |
206 | uint8 ACC (RW, stat_loss_on_death); /* If true, chars lose a random stat when they die */ |
197 | uint8 ACC (RW, stat_loss_on_death); /* If true, chars lose a random stat when they die */ |
207 | uint8 ACC (RW, permanent_exp_ratio); /* how much exp should be 'permenant' and unable to be lost*/ |
198 | uint8 ACC (RW, permanent_exp_ratio); /* how much exp should be 'permenant' and unable to be lost*/ |
208 | uint8 ACC (RW, death_penalty_ratio); /* how much exp should be lost at death */ |
199 | uint8 ACC (RW, death_penalty_ratio); /* how much exp should be lost at death */ |
209 | uint8 ACC (RW, death_penalty_level); /* how many levels worth of exp may be lost on one death */ |
200 | uint8 ACC (RW, death_penalty_level); /* how many levels worth of exp may be lost on one death */ |
… | |
… | |
218 | uint16 ACC (RW, set_friendly_fire); /* Percent of damage done by peaceful player vs player damage */ |
209 | uint16 ACC (RW, set_friendly_fire); /* Percent of damage done by peaceful player vs player damage */ |
219 | uint8 ACC (RW, casting_time); /* it takes awhile to cast a spell */ |
210 | uint8 ACC (RW, casting_time); /* it takes awhile to cast a spell */ |
220 | uint8 ACC (RW, real_wiz); /* use mud-like wizards */ |
211 | uint8 ACC (RW, real_wiz); /* use mud-like wizards */ |
221 | uint8 dummy_000; |
212 | uint8 dummy_000; |
222 | uint8 ACC (RW, spellpoint_level_depend); /* spell costs go up with level */ |
213 | uint8 ACC (RW, spellpoint_level_depend); /* spell costs go up with level */ |
223 | char ACC (RW, motd)[MAX_BUF]; /* name of the motd file */ |
214 | char ACC (RW, motd)[MAX_BUF]; /* name of the motd file */ |
224 | char *ACC (RO, rules); /* name of rules file*/ |
215 | const char *ACC (RO, rules); /* name of rules file*/ |
225 | char *ACC (RO, news); /* name of news file*/ |
216 | const char *ACC (RO, news); /* name of news file*/ |
226 | char ACC (RW, dm_mail)[MAX_BUF]; /* DM's Email address */ |
217 | char ACC (RW, dm_mail)[MAX_BUF]; /* DM's Email address */ |
227 | |
218 | |
228 | uint32 ACC (RW, worldmapstartx); /* starting x tile for the worldmap */ |
219 | uint32 ACC (RW, worldmapstartx); /* starting x tile for the worldmap */ |
229 | uint32 ACC (RW, worldmapstarty); /* starting y tile for the worldmap */ |
220 | uint32 ACC (RW, worldmapstarty); /* starting y tile for the worldmap */ |
230 | uint32 ACC (RW, worldmaptilesx); /* number of tiles wide the worldmap is */ |
221 | uint32 ACC (RW, worldmaptilesx); /* number of tiles wide the worldmap is */ |
231 | uint32 ACC (RW, worldmaptilesy); /* number of tiles high the worldmap is */ |
222 | uint32 ACC (RW, worldmaptilesy); /* number of tiles high the worldmap is */ |