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.136 by root, Wed May 4 19:39:43 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
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
503// temporary assignments 505// temporary assignments
504#define FLAG_PHYSICS_QUEUE 114 // object queued for physics 506#define FLAG_PHYSICS_QUEUE 114 // object queued for physics TODO: temporary allocation
505 507
506#define NUM_FLAGS 115 /* Should always be equal to the last 508#define NUM_FLAGS 115 /* Should always be equal to the last
507 * defined flag + 1. 509 * defined flag + 1.
508 */ 510 */
509 511
534 536
535/* 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
536 * on the 'type' move_block parameter 538 * on the 'type' move_block parameter
537 * 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
538 * onto it. 540 * onto it.
539 * 541 *
540 */ 542 */
541#define OB_TYPE_MOVE_BLOCK(ob1, type) \ 543#define OB_TYPE_MOVE_BLOCK(ob1, type) \
542 ((type) && (ob1->move_type & type) == ob1->move_type) 544 ((type) && (ob1->move_type & type) == ob1->move_type)
543 545
544#define GENERATE_SPEED(xyz) ((xyz)->stats.maxsp) /* if(!RANDOM()%<speed>) */ 546#define GENERATE_SPEED(xyz) ((xyz)->stats.maxsp) /* if(!RANDOM()%<speed>) */
572#define F_IDENTIFIED 8 /* flag to calculate value of identified item */ 574#define F_IDENTIFIED 8 /* flag to calculate value of identified item */
573#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 */
574#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 */
575#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 */
576 578
577#define DIRX(xyz) freearr_x[(xyz)->direction] 579#define DIRX(xyz) freearr_x[(xyz)]
578#define DIRY(xyz) freearr_y[(xyz)->direction] 580#define DIRY(xyz) freearr_y[(xyz)]
579 581
580#define ARMOUR_SPEED(xyz) (xyz)->last_sp 582#define ARMOUR_SPEED(xyz) (xyz)->last_sp
581#define ARMOUR_SPELLS(xyz) (xyz)->gen_sp_armour 583#define ARMOUR_SPELLS(xyz) (xyz)->gen_sp_armour
582#define WEAPON_SPEED(xyz) (xyz)->last_sp 584#define WEAPON_SPEED(xyz) (xyz)->last_sp
583 585

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines