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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines