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

Comparing deliantra/server/include/define.h (file contents):
Revision 1.130 by root, Wed Apr 14 02:31:24 2010 UTC vs.
Revision 1.143 by root, Sun Jan 29 02:47:04 2017 UTC

1/* 1/*
2 * This file is part of Deliantra, the Roguelike Realtime MMORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2005,2006,2007,2008,2009,2010 Marc Alexander Lehmann / Robin Redeker / the Deliantra team 4 * Copyright (©) 2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2003-2005 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2003-2005 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992 Frank Tore Johansen 6 * Copyright (©) 1992 Frank Tore Johansen
7 * 7 *
8 * Deliantra is free software: you can redistribute it and/or modify it under 8 * Deliantra is free software: you can redistribute it and/or modify it under
9 * the terms of the Affero GNU General Public License as published by the 9 * the terms of the Affero GNU General Public License as published by the
10 * Free Software Foundation, either version 3 of the License, or (at your 10 * Free Software Foundation, either version 3 of the License, or (at your
11 * option) any later version. 11 * option) any later version.
12 * 12 *
13 * This program is distributed in the hope that it will be useful, 13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details. 16 * GNU General Public License for more details.
17 * 17 *
18 * You should have received a copy of the Affero GNU General Public License 18 * You should have received a copy of the Affero GNU General Public License
19 * and the GNU General Public License along with this program. If not, see 19 * and the GNU General Public License along with this program. If not, see
20 * <http://www.gnu.org/licenses/>. 20 * <http://www.gnu.org/licenses/>.
21 * 21 *
22 * The authors can be reached via e-mail to <support@deliantra.net> 22 * The authors can be reached via e-mail to <support@deliantra.net>
23 */ 23 */
24 24
25/* This file is best viewed with a window width of about 100 character */ 25/* This file is best viewed with a window width of about 100 character */
26 26
41 41
42#ifdef __NetBSD__ 42#ifdef __NetBSD__
43# include <sys/param.h> 43# include <sys/param.h>
44#endif 44#endif
45 45
46#define MAXNUMLEVELS 256 // maximum number of levels possible
46#define MAXLEVEL 115 // for treasure calculations only 47#define MAXLEVEL_TREASURE 115 // for treasure calculations only
47 48
48// maximum length of an object name in the protocol 49// maximum length of an object name in the protocol
49#define NAME_LEN 127 50#define NAME_LEN 127
50 51
51#define MAX_STAT 30 /* The maximum legal value of any stat */ 52#define MAX_STAT 30 /* The maximum legal value of any stat */
109#define LOCKED_DOOR 20 110#define LOCKED_DOOR 20
110#define SPECIAL_KEY 21 111#define SPECIAL_KEY 21
111#define MAP 22 112#define MAP 22
112#define DOOR 23 113#define DOOR 23
113#define KEY 24 114#define KEY 24
114//25 115#define PHYSICS 25 // deliantra: "things that move"
115#define TIMED_GATE 26 116#define TIMED_GATE 26
116#define TRIGGER 27 117#define TRIGGER 27
117#define GRIMREAPER 28 118#define GRIMREAPER 28
118#define MAGIC_EAR 29 119#define MAGIC_EAR 29
119#define TRIGGER_BUTTON 30 120#define TRIGGER_BUTTON 30
160#define GEM 60 161#define GEM 60
161#define MENU 61 /* Mark Wedel (mark@pyramid.com) Shop inventories */ 162#define MENU 61 /* Mark Wedel (mark@pyramid.com) Shop inventories */
162#define FIREWALL 62 163#define FIREWALL 62
163#define ANVIL 63 164#define ANVIL 63
164#define CHECK_INV 64 /* by b.t. thomas@nomad.astro.psu.edu */ 165#define CHECK_INV 64 /* by b.t. thomas@nomad.astro.psu.edu */
165#define MOOD_FLOOR 65 /* 166#define MOOD_FLOOR 65 /*
166 * values of last_sp set how to change: 167 * values of last_sp set how to change:
167 * 0 = furious, all monsters become aggressive 168 * 0 = furious, all monsters become aggressive
168 * 1 = angry, all but friendly become aggressive 169 * 1 = angry, all but friendly become aggressive
169 * 2 = calm, all aggressive monsters calm down 170 * 2 = calm, all aggressive monsters calm down
170 * 3 = sleep, all monsters fall asleep 171 * 3 = sleep, all monsters fall asleep
245 246
246typedef std::bitset<NUM_TYPES> typeset; 247typedef std::bitset<NUM_TYPES> typeset;
247 248
248/* These are the items that currently can change digestion, regeneration, 249/* These are the items that currently can change digestion, regeneration,
249 * spell point recovery and mana point recovery. Seems sort of an arbitary 250 * spell point recovery and mana point recovery. Seems sort of an arbitary
250 * list, but other items store other info into stats array. 251 * list, but other items store other info into stats array.
251 * As a special exception, bows use stats.sp for their own purposes. 252 * As a special exception, bows use stats.sp for their own purposes.
252 */ 253 */
253static const struct digest_types : typeset 254static const struct digest_types : typeset
254{ 255{
255 digest_types () 256 digest_types ()
282 283
283/* Subtypes for MATERIAL */ 284/* Subtypes for MATERIAL */
284#define ST_MAT_FLOOR 1 /* Floor */ 285#define ST_MAT_FLOOR 1 /* Floor */
285#define ST_MAT_WALL 2 /* Wall */ 286#define ST_MAT_WALL 2 /* Wall */
286#define ST_MAT_ITEM 3 /* All other items, including doors & such */ 287#define ST_MAT_ITEM 3 /* All other items, including doors & such */
288#define ST_MAT_QUAD 4 /* Quad build material */
287 289
288/* definitions for weapontypes */ 290/* definitions for weapontypes */
289 291
290#define WEAP_HIT 0 /* the basic */ 292#define WEAP_HIT 0 /* the basic */
291#define WEAP_SLASH 1 /* slash */ 293#define WEAP_SLASH 1 /* slash */
353#define PU_FLESH 0x04000000 355#define PU_FLESH 0x04000000
354 356
355 357
356/* Instead of using arbitrary constants for indexing the 358/* Instead of using arbitrary constants for indexing the
357 * freearr, add these values. <= SIZEOFFREE1 will get you 359 * freearr, add these values. <= SIZEOFFREE1 will get you
358 * within 1 space. <= SIZEOFFREE2 wll get you withing 360 * within 1 space. <= SIZEOFFREE2 wll get you withing
359 * 2 spaces, and the entire array (< SIZEOFFREE) is 361 * 2 spaces, and the entire array (< SIZEOFFREE) is
360 * three spaces 362 * three spaces
361 */ 363 */
362#define SIZEOFFREE0 0 364#define SIZEOFFREE0 0
363#define SIZEOFFREE1 8 365#define SIZEOFFREE1 8
364#define SIZEOFFREE2 24 366#define SIZEOFFREE2 24
365#define SIZEOFFREE3 48 367#define SIZEOFFREE3 48
366#define SIZEOFFREE 49 368#define SIZEOFFREE 49
367 369
368#define NROF_SOUNDS (23 + NROFREALSPELLS) /* Number of sounds */ 370#define NROF_SOUNDS (23 + NROFREALSPELLS) /* Number of sounds */
369 371
370/* 372/*
371 * If any FLAG's are added or changed, make sure the flag_names structure in 373 * If any FLAG's are added or changed, make sure the flag_names structure in
372 * common/loader.C is updated. 374 * common/loader.C is updated.
373 */ 375 */
374 376
375/* the flags */ 377/* the flags */
381#define FLAG_WIZLOOK 4 /* disable los and lighting */ 383#define FLAG_WIZLOOK 4 /* disable los and lighting */
382#define FLAG_APPLIED 5 /* Object is ready for use by living */ 384#define FLAG_APPLIED 5 /* Object is ready for use by living */
383#define FLAG_UNPAID 6 /* Object hasn't been paid for yet */ 385#define FLAG_UNPAID 6 /* Object hasn't been paid for yet */
384#define FLAG_USE_SHIELD 7 /* Can this creature use a shield? */ 386#define FLAG_USE_SHIELD 7 /* Can this creature use a shield? */
385#define FLAG_NO_PICK 8 /* Object can't be picked up */ 387#define FLAG_NO_PICK 8 /* Object can't be picked up */
386/*#define FLAG_WALK_ON 9*/ 388#define FLAG_IS_TRANSPARENT_FLOOR 9 // floor shows things on lower z-level(s), CF: walk_on
387/*#define FLAG_NO_PASS 10*//* Nothing can pass (wall() is true) */ 389/*#define FLAG_NO_PASS 10*//* Nothing can pass (wall() is true) */
388#define FLAG_ANIMATE 11 /* The object looks at archetype for faces */ 390#define FLAG_ANIMATE 11 /* The object looks at archetype for faces */
389/*#define FLAG_SLOW_MOVE 12*//* Uses the stats.exp/1000 to slow down */ 391/*#define FLAG_SLOW_MOVE 12*//* Uses the stats.exp/1000 to slow down */
390/*#define FLAG_FLYING 13*//* Not affected by WALK_ON or SLOW_MOVE) */ 392/*#define FLAG_FLYING 13*//* Not affected by WALK_ON or SLOW_MOVE) */
391#define FLAG_HIDDEN 13 /* hidden monster (not invisible), TODO: used how, what for? TODO: why not saved? */ 393#define FLAG_HIDDEN 13 /* hidden monster (not invisible), TODO: used how, what for? TODO: why not saved? */
488 * load_original_map() */ 490 * load_original_map() */
489#define FLAG_RANDOM_SPEED 104 /* speed_left should be randomised on instantiate */ 491#define FLAG_RANDOM_SPEED 104 /* speed_left should be randomised on instantiate */
490#define FLAG_ACTIVATE_ON_PUSH 105 /* connected object is activated when 'pushed' */ 492#define FLAG_ACTIVATE_ON_PUSH 105 /* connected object is activated when 'pushed' */
491#define FLAG_ACTIVATE_ON_RELEASE 106 /* connected object is activated when 'released' */ 493#define FLAG_ACTIVATE_ON_RELEASE 106 /* connected object is activated when 'released' */
492#define FLAG_IS_WATER 107 /* apparently not used inside the server for anything */ 494#define FLAG_IS_WATER 107 /* apparently not used inside the server for anything */
493#define FLAG_CONTENT_ON_GEN 108 495#define FLAG_CONTENT_ON_GEN 108
494#define FLAG_IS_A_TEMPLATE 109 /* Object has no ingame life until instanciated */ 496#define FLAG_IS_A_TEMPLATE 109 /* Object has no ingame life until instanciated */
495#define FLAG_IS_BUILDABLE 110 /* Can build on item */ 497#define FLAG_IS_BUILDABLE 110 /* Can build on item */
496#define FLAG_DESTROY_ON_DEATH 111 /* Object will be destroyed when env dies */ 498#define FLAG_DESTROY_ON_DEATH 111 /* Object will be destroyed when env dies */
497#define FLAG_NO_MAP_SAVE 112 // item doesn't get saved with map 499#define FLAG_NO_MAP_SAVE 112 // item doesn't get saved with map
500#define FLAG_IS_QUAD 113 /* This is a destructible and buildable item
501 * (for the quads world for instance)
498 502 */
503
504// temporary assignments
505#define FLAG_PHYSICS_QUEUE 114 // object queued for physics TODO: temporary allocation
506
499#define NUM_FLAGS 113 /* Should always be equal to the last 507#define NUM_FLAGS 115 /* Should always be equal to the last
500 * defined flag + 1. If you change this, 508 * defined flag + 1.
501 * make sure you update the flag_links
502 * in common/loader.l
503 */ 509 */
504 510
505/* If you add new movement types, you may need to update 511/* If you add new movement types, you may need to update
506 * describe_item() so properly describe those types. 512 * describe_item() so properly describe those types.
507 * change_abil() probably should be updated also. 513 * change_abil() probably should be updated also.
529 535
530/* Basic macro to see if if ob1 can not move onto a space based 536/* Basic macro to see if if ob1 can not move onto a space based
531 * on the 'type' move_block parameter 537 * on the 'type' move_block parameter
532 * Add check - if type is 0, don't stop anything from moving 538 * Add check - if type is 0, don't stop anything from moving
533 * onto it. 539 * onto it.
534 * 540 *
535 */ 541 */
536#define OB_TYPE_MOVE_BLOCK(ob1, type) \ 542#define OB_TYPE_MOVE_BLOCK(ob1, type) \
537 ((type) && (ob1->move_type & type) == ob1->move_type) 543 ((type) && (ob1->move_type & type) == ob1->move_type)
538 544
539#define GENERATE_SPEED(xyz) ((xyz)->stats.maxsp) /* if(!RANDOM()%<speed>) */ 545#define GENERATE_SPEED(xyz) ((xyz)->stats.maxsp) /* if(!RANDOM()%<speed>) */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines