root/releases/1.6/0p2/dune.h.dist

Revision 44, 13.8 KB (checked in by pennmush, 3 years ago)

PennMUSH 1.6.0p0 Archival

Line 
1/*--------------------------------------------------------------------*
2 * dune.h - DuneMUSH source modification options                      *
3 * Nearly all code compiled in by these options was written by        *
4 * Alan Schwartz (Javelin, Paul@DuneMUSH, alansz@cogsci.berkeley.edu) *
5 *                                                                    *
6 * Please read all the options carefully. They are separated into the *
7 * following categories:                                              *
8 *  SECURITY - options relating to MUSH security                      *
9 *  DB       - options which modify the MUSH db structure             *
10 *  DUMP     - options which relate to MUSH dump behavior             *
11 *  HELP     - options which relate to MUSH text files                *
12 *  COMMAND  - options which add or modify MUSH commands              *
13 *  FUNCTION - options which add or modify MUSH functions             *
14 *  FLAG     - options which add or modify MUSH flags, powers, attrs  *
15 *  LOCKS    - options which add or modify MUSH locks                 *
16 *  COSMETIC - options which change how various things look to users  *
17 *  MISC     - miscellaneous stuff which doesn't fit elsewhere        *
18 * My recommendations are noted for some of the options. :)           *
19 *                                                                    *
20 * To define an option, remove the '/*' in front of the #define.      *
21 * To undefine an option, add a '/*' in front of the #define.         *
22 *--------------------------------------------------------------------*/
23
24/* $Name: 1_6_0 $ */
25
26#ifndef __DUNE_H
27#define __DUNE_H
28
29/*--------------------------- SECURITY -------------------------------*/
30
31/* If defined, Guest players may not @link, @set, or set attribs.
32 * Highly recommended.
33 */
34#define HARSH_GUEST /* */
35
36/* If defined, only roy/wiz/see_all players can see other players' powers */
37/* #define HASPOWER_RESTRICTED /* */
38
39/* If defined, enables the @sitelock command, which allows Wizards to
40 * add sites to the sites.conf file on-the-fly, and allows God to use
41 * @sitelock/ban, and add to the lockout.conf file on the fly. Recommended.
42 */
43/* #define SITELOCK_COMMAND /* */
44
45
46/*------------------------------ DB ----------------------------------*/
47
48/* If defined, enables Ralph Melton's @lock rewrite, which allows
49 * many more types of locks with less memory usage.
50 * Highly recommended. If you use this, see the LOCK section later.
51 */
52#define RALPH_LOCKS /* */
53
54/* If defined, enables the MUSH Building Warning system, which checks
55 * for various building problems at a configurable interval or at
56 * a player's request. Pretty neat stuff. Will typically add 4 bytes to each
57 * object in memory. Recommended.
58 */
59/* #define USE_WARNINGS /* */
60
61/* If defined, enables tracking of creation times for all objects,
62 * attribute modification times for non-player objects,
63 * and number of login failures for player objects.
64 * Will typically add 8 bytes to each object in memory
65 * Tracking login failures and modification times is a good security
66 * measure, too. Also enables the ctime() and mtime() functions.
67 * On the whole, recommended unless you're really pinched for memory
68 * (i.e., for a 10,000 object db, you can't afford using another 80kb)
69 *
70 */
71/* #define CREATION_TIMES /* */
72
73/*----------------------------- DUMP ---------------------------------*/
74
75/* If defined, 1 minute and 5 minute warnings will be given before
76 * non-forking dumps. Highly recommended.
77 */
78#define DUMP_WARNINGS /* */
79
80
81/*----------------------------- HELP ---------------------------------*/
82
83/* If defined, enables the "index" command, which works just like
84 * help, news, and events, and which, together with the script
85 * "txtindex" (at ftp://mellers1.psych.berkeley.edu/pub/DuneMUSH/Scripts)
86 * allows your players to read keyword-generated indexes to the other
87 * text files
88 */
89/* #define INDEX_COMMAND /* */
90#ifdef INDEX_COMMAND
91#define INDEX_FILE  "txt/index.txt"
92#define INDEXINDX   "txt/index.indx"
93#endif
94
95/* If defined, creates a new command, 'rules', which works just like
96 * help, news, and events.
97 */
98/* #define RULES /* */
99#ifdef RULES
100#define RULES_FILE  "txt/rules.txt"
101#define RULESINDX   "txt/rules.indx"
102#endif
103
104
105/*---------------------------- COMMAND -------------------------------*/
106
107/* Dune's extended @mail system, described in extmail.c.
108 * This will not increase the size of your maildb or anything nasty.
109 * The maildb under extended mail can be used with normal mail, and vice versa
110 * Try it, you'll like it!
111 */
112#define EXTENDED_MAIL /* */
113
114/*
115 * Defining MAIL_SUBJECTS adds subject lines to @mail. This modifies
116 * the maildb format, but you can reverse it.
117 */
118/* #define MAIL_SUBJECTS /* */
119
120/* Defining ALLOW_NOSUBJECT (which only applies if EXTENDED_MAIL and
121 * MAIL_SUBJECTS are defined) marks mail sent with no subject as having
122 * subject '(no subject)'. The default is for the subject of the mail
123 * to be the first 30 characters of the message when not specfied
124 */
125/* #define ALLOW_NOSUBJECT /* */
126
127/* If defined, the @dest command is renamed @recycle (@rec)
128 * Why do I hate @dest? Because it's too close to @desc... :P
129 * Recommended.
130 */
131/* #define HATE_DEST /* */
132
133/* If defined, the @toad command is disabled. Wizards shouldn't @toad,
134 * they should @newpassword and tell God. God shouldn't waste time
135 * using @toad, and should just @nuke the player.
136 * Idea by Kenric@DuneII
137 */
138/* #define HATE_TOAD /* */
139
140/* If defined, disables the 'kill' command, admonishing players to use
141 * the IC combat system instead. The wizard command slay is still enabled
142 */
143/* #define NO_KILL /* */
144
145/* If defined, whisper defaults to whisper/noisy. That means that
146 * people in the room will see a "Broncalo whispers to Paul." message.
147 * Applies to whisper-poses, too, but not to admin long-distance
148 * whispering. Players can still use whisper/silent for the other
149 * behavior.
150 */
151/* #define NOISY_WHISPER /* */
152
153/* If this is defined, possessive get is enabled (get player's object),
154 * as is standard on PennMUSH. Some may prefer to disable it.
155 */
156#define POSSESSIVE_GET /* */
157
158/* If this is defined, possessive get is allows on disconnected players,
159 * which is standard in PennMUSH. Many may prefer to disable this.
160 */
161#define POSSGET_ON_DISCONNECTED /* */
162
163/* If defined, the command 'read' is a synonym for 'look'. If not,
164 * people can use it as a user-defined command. Not recommended.
165 */
166#define READ /* */
167
168/* If defined, the SAFE flag blocks any attempt to destroy an object.
169 * Anyone who has the privileges to destroy the object can set it !safe,
170 * anyway.
171 */
172#define REALLY_SAFE
173
174/* If defined, only royalty can use the @find command. Why?
175 * Mortals shouldn't use it, because it's expensive, and @search is better
176 * Wizards shouldn't use it, because it shows them the whole db
177 * That leaves royalty as possible users.
178 */
179/* #define ROY_FIND /* */
180
181/* If defined, when a player is destroyed, any objects he owns that are
182 * not set SAFE are destroyed, and any objects he owns that are set SAFE
183 * are @chowned to God. If this is not defined, all possessions of a player
184 * are chowned to God when the player is destroyed.
185 */
186#define DESTROY_POSSESSIONS
187
188
189/*---------------------------- FUNCTION ------------------------------*/
190
191/* If defined, the encrypt() and decrypt() functions are enabled */
192#define CRYPTFUNS /* */
193
194/* If defined, the shl(), shr(), inc(), and dec() functions are added
195 * That's bitshift left, right, increment by 1 and decrement.
196 */
197/* #define LOWER_MATH /* */
198
199/* If defined, the objmem() and playermem() functions are added, which
200 * return memory usage for an object or all a player's objects.
201 */
202/* #define MEMORY_FUNS /* */
203
204/* If this is defined, the lparent() function is available.
205 * lparent(<obj>) returns a list of <obj> and all its ancestors
206 * (via @parent) which the player is priv'd to see.
207 */
208#define LPARENT_FUNCTION /* */
209
210/* TinyMUSH 2.2 uses atoi in boolean logic functions. That is, any
211 * string (or db#) evaluates to 0 (false).
212 * PennMUSH has traditionally used a function which makes strings and
213 * db#'s which are larger than #0 return true.
214 * If you want Tiny 2.2 compatibility in and(), or(), not(), define this
215 * It may break existing code.
216 */
217/* #define TINY22_BOOLEANS */
218
219/* If defined, adds vector arithmetic functions: vadd, vsub, vmul, vmag,
220 * vdim, vunit
221 */
222/* #define VECTORS /* */
223
224
225/*------------------------------ FLAG --------------------------------*/
226
227/* The &adest attrib will be triggered when an object is nuked if this
228 * is defined.
229 */
230/* #define ADEST_ATTRIB /* */
231
232/* The &amail attrib will be triggered when a player received @mail,
233 * with sender as %#, if this is defined. It's currently restricted
234 * to roy/wiz only, since it does no checking for mail loops!
235 */
236/* #define AMAIL /* */
237
238/* The fixed flag, when set on a player, prevents the player or anything
239 * they own from using @tel or home (roy/wizzes exempted from @tel restriction)
240 * Nice for enforcing IC travel. :)
241 * The only exception is that players are permitted to @tel their objects
242 * to their inventory - which makes coding puppets to follow you possible.
243 */
244#define FIXED_FLAG /* */
245
246/* If defined, enables the Jury and Judge flags, which don't do anything
247 * in themselves, but which other MUSHes may find useful
248 */
249/* #define JURY_OK /* */
250
251/* If defined, adds support for the UNREGISTERED flag, which you can
252 * arrange in mush.conf to have set on new players, and can test for.
253 * The only hardcoded restriction is in wiz.c - unreg'd players can't
254 * be given powers
255 */
256/* #define ONLINE_REG /* */
257
258/* If defined, adds support for the ON_VACATION flag, which a player
259 * can set to indicate that they're going to be away from the MUSH
260 * for vacation (and which a wizard can test for when doing player purges,
261 * or which can aid other players, etc). This flags is automatically
262 * cleared when a player logs in, so it should be set just before the
263 * player leaves for vacation
264 */
265/* #define VACATION_FLAG /* */
266
267/* If this is defined, and PLAYER_LISTEN is defined, players may have
268 * @listens (for example *, so their contents can hear things), but
269 * can't have @ahears.
270 */
271/* #define PLAYER_NOAHEAR /* */
272
273/* If defined, @aconnect/@adisconnect in rooms will be triggered for
274 * players connecting/disconnecting therein
275 */
276/* #define ROOM_CONNECTS /* */
277
278/* If defined, adds the UNINSPECTED flag for rooms, which does nothing,
279 * but can be tested for in mushcode, etc.
280 */
281/* #define UNINSPECTED_FLAG /* */
282
283/*------------------------------ LOCK --------------------------------*/
284
285/* If defined, @lock/listen sets a lock which controls who can trigger
286 * ^patterns and @ahears on the thing.
287 */
288#define LISTEN_LOCK /* */
289
290/* If defined, @lock/speech sets a lock which controls who can
291 * speak/pose/emit in a room.
292 */
293#define SPEECH_LOCK /* */
294
295/* If defined, @lock/leave sets a lock which controls who can
296 * leave an object
297 */
298#define LEAVE_LOCK /* */
299
300/* If defined, @lock/drop sets a lock which controls who can drop
301 * an object.
302 */
303#define DROP_LOCK /* */
304
305/* If defined, @lock/give sets a lock which controls who can
306 * give away an object
307 */
308#define GIVE_LOCK /* */
309
310/*---------------------------- COSMETIC ------------------------------*/
311
312/* If defined, object/room/player names will appear bold. Requires
313 * EXTENDED_ANSI to be defined in order to work. Recommended. */
314#define ANSI_NAMES /* */
315
316/* If defined, the count of players on the WHO list will include
317 * Dark/Hidden players not visible on the list
318 */
319/* #define COUNT_ALL /* */
320
321/* If defined, rooms which have at least one exit are not considered
322 * "disconnected rooms" and do not need to be set FLOATING.
323 * If not defined, the traditional definition of a connected room
324 * (a room which can be reached from #0) is used.
325 */
326/* #define EXITS_CONNECT_ROOMS */
327
328/* These are defined as the prefixes which prepend @wizwall, @rwall,
329 * and @wall messages. You can change them as you like.
330 * Idea by Aragorn@ElendorMUSH
331 */
332#define WIZWALL_PREFIX  "Broadcast:"
333#define RWALL_PREFIX    "Admin:"
334#define WALL_PREFIX "Announcement:"
335
336
337/*------------------------------ MISC --------------------------------*/
338
339/* What type of attribute compression should the MUSH use?
340 * Your options are:
341 * 1 - the default Huffman compression which has been in use since
342 *     pl10. In theory, this should be the best compression,
343 *     possibly at the cost of some speed. Sometimes has trouble
344 *     on linux systems for some reason.
345 * 2 - the bigram compression from pl9 and earlier (but autotuned)
346 *     This should be intermediate in compression and speed, and
347 *     and at least one database that won't load under Huffman,
348 *     will load under bigram. Use if Huffman won't work.
349 * 0 - No compression at all. Very fast, but your db in memory
350 *     will be big - at least as large as your on-disk db.
351 *     Possibly suitable for the building stages of a small MUSH.
352 * You can change this at any time, with no worries. It only affects
353 * the in-memory compression of attribute/mail text, not the disk
354 * db compression. Recommend to keep it at 1.
355 */
356#define COMPRESSION_TYPE 1
357
358/* If defined, one may only @link to rooms, not to link_ok objects.
359 * This makes link_ok on objects function purely as parent_ok.
360 */
361/* #define NO_LINK_TO_OBJECT /* */
362
363/* If defined, adds support for a new kind of chat channel, object-channels.
364 * Only objects (and wizards) may join these channels. Useful for
365 * radio systems, etc., though it can be computationally expensive.
366 * Not recommended unless you have an important application.
367 * Does not apply to the extended chat system
368 */
369/* #define OBJECT_CHAT /* */
370
371/* If defined, queue limits are maintained on a per-owner basis,
372 * instead of a per-object basis. That is, your object is runaway
373 * when your total queue goes too high, not when that object's
374 * queue does.
375 */
376/* #define QUEUE_PER_OWNER /* */
377
378/* If defined, DARK wizards don't trigger AENTER/ALEAVE as they move around */
379/* #define WIZ_NOAENTER /* */
380
381
382#endif /* __DUNE_H */
Note: See TracBrowser for help on using the browser.