Atrinik Server  4.0
Macros | Enumerations | Functions
define.h File Reference

Go to the source code of this file.

Macros

#define NAME_MAX   255
 
#define MAX_STAT   30
 
#define MIN_STAT   1
 
#define MAX_ANIMATIONS   256
 
#define IDENTIFY_NORMAL   0
 
#define IDENTIFY_ALL   1
 
#define IDENTIFY_MARKED   2
 
#define SPLIST_MODE_ADD   0
 
#define SPLIST_MODE_REMOVE   1
 
#define SPLIST_MODE_UPDATE   2
 
#define CHOSEN_SKILL_NO   (99999)
 
#define PORTAL_DESTINATION_NAME   "Town portal destination"
 
#define PORTAL_ACTIVE_NAME   "Existing town portal"
 
#define BLOCKED_LOS_VISIBLE   0x00
 
#define BLOCKED_LOS_IGNORE   0x01
 
#define BLOCKED_LOS_BLOCKSVIEW   0x02
 
#define BLOCKED_LOS_BLOCKED   0x04
 
#define BLOCKED_LOS_OUT_OF_MAP   0x08
 
#define PLAYER   1
 
#define BULLET   2
 
#define ROD   3
 
#define TREASURE   4
 
#define POTION   5
 
#define FOOD   6
 
#define REGION_MAP   7
 
#define BOOK   8
 
#define CLOCK   9
 
#define MATERIAL   10
 
#define DUPLICATOR   11
 
#define LIGHTNING   12
 
#define ARROW   13
 
#define BOW   14
 
#define WEAPON   15
 
#define ARMOUR   16
 
#define PEDESTAL   17
 
#define CONFUSION   19
 
#define DOOR   20
 
#define KEY   21
 
#define MAP   22
 
#define MAGIC_MIRROR   28
 
#define SPELL   29
 
#define SHIELD   33
 
#define HELMET   34
 
#define PANTS   35
 
#define MONEY   36
 
#define PAINTING   37
 
#define AMULET   39
 
#define PLAYER_MOVER   40
 
#define CREATOR   42
 
#define SKILL   43
 
#define EXPERIENCE   44
 
#define TRINKET   45
 
#define BLINDNESS   49
 
#define GOD   50
 
#define DETECTOR   51
 
#define SKILL_ITEM   52
 
#define DEAD_OBJECT   53
 
#define DRINK   54
 
#define MARKER   55
 
#define HOLY_ALTAR   56
 
#define PEARL   59
 
#define GEM   60
 
#define SOUND_AMBIENT   61
 
#define FIREWALL   62
 
#define CHECK_INV   64
 
#define EXIT   66
 
#define SHOP_FLOOR   68
 
#define RING   70
 
#define FLOOR   71
 
#define FLESH   72
 
#define INORGANIC   73
 
#define LIGHT_APPLY   74
 
#define WALL   77
 
#define LIGHT_SOURCE   78
 
#define MISC_OBJECT   79
 
#define MONSTER   80
 
#define SPAWN_POINT   81
 
#define LIGHT_REFILL   82
 
#define SPAWN_POINT_MOB   83
 
#define SPAWN_POINT_INFO   84
 
#define BOOK_SPELL   85
 
#define ORGANIC   86
 
#define CLOAK   87
 
#define CONE   88
 
#define SPINNER   90
 
#define GATE   91
 
#define BUTTON   92
 
#define TYPE_HANDLE   93
 
#define WORD_OF_RECALL   96
 
#define SIGN   98
 
#define BOOTS   99
 
#define GLOVES   100
 
#define BASE_INFO   101
 
#define RANDOM_DROP   102
 
#define BRACERS   104
 
#define POISONING   105
 
#define SAVEBED   106
 
#define WAND   109
 
#define ABILITY   110
 
#define SCROLL   111
 
#define DIRECTOR   112
 
#define GIRDLE   113
 
#define FORCE   114
 
#define POTION_EFFECT   115
 
#define JEWEL   116
 
#define NUGGET   117
 
#define EVENT_OBJECT   118
 
#define WAYPOINT_OBJECT   119
 
#define QUEST_CONTAINER   120
 
#define CONTAINER   122
 
#define WEALTH   125
 
#define BEACON   126
 
#define MAP_EVENT_OBJ   127
 
#define COMPASS   151
 
#define MAP_INFO   152
 
#define SWARM_SPELL   153
 
#define RUNE   154
 
#define CLIENT_MAP_INFO   155
 
#define POWER_CRYSTAL   156
 
#define CORPSE   157
 
#define DISEASE   158
 
#define SYMPTOM   159
 
#define OBJECT_TYPE_MAX   160
 
#define ST1_CONTAINER_NORMAL   0
 
#define ST1_CONTAINER_CORPSE   1
 
#define ST1_CONTAINER_DEAD_PL   2
 
#define ST1_CONTAINER_QUIVER   3
 
#define ST1_CONTAINER_NORMAL_player   64
 
#define ST1_CONTAINER_CORPSE_player   65
 
#define ST1_CONTAINER_NORMAL_party   128
 
#define ST1_CONTAINER_CORPSE_party   129
 
#define ST1_DOOR_NORMAL   0
 
#define ST1_DOOR_CURTAIN   1
 
#define ST_BD_REMOVE   1
 
#define ST_BD_BUILD   2
 
#define ST_MAT_FLOOR   1
 
#define ST_MAT_WALL   2
 
#define ST_MAT_ITEM   3
 
#define ST_MAT_WIN   4
 
#define CLIENT_MAP_LABEL   1
 
#define CLIENT_MAP_TOOLTIP   2
 
#define CLIENT_MAP_HIDE   3
 
#define POTION_NORMAL   0
 
#define POTION_BALM   1
 
#define POTION_DUST   2
 
#define SIZEOFFREE1   8
 
#define SIZEOFFREE2   24
 
#define SIZEOFFREE3   48
 
#define SIZEOFFREE   49
 
#define NROFREALSPELLS   52
 
#define NRSPELLPATHS   20
 
#define TERRAIN_NOTHING   0
 
#define TERRAIN_AIRBREATH   1
 
#define TERRAIN_WATERWALK   2
 
#define TERRAIN_WATERBREATH   4
 
#define TERRAIN_FIREWALK   8
 
#define TERRAIN_FIREBREATH   16
 
#define TERRAIN_CLOUDWALK   32
 
#define TERRAIN_WATER_SHALLOW   64
 
#define TERRAIN_ALL   0xffff
 
#define FLAG_BITMASK(p)   BIT_MASK(p % 32)
 
#define SET_FLAG(xyz, p)   BIT_SET((xyz)->flags[p / 32], p % 32)
 
#define CLEAR_FLAG(xyz, p)   BIT_CLEAR((xyz)->flags[p / 32], p % 32)
 
#define QUERY_FLAG(xyz, p)   BIT_QUERY((xyz)->flags[p / 32], p % 32)
 
#define FLIP_FLAG(xyz, p)   BIT_FLIP((xyz)->flags[p / 32], p % 32)
 
#define CHANGE_FLAG(op, flag, cond)   BIT_CHANGE((op)->flags[flag / 32], flag % 32, cond)
 
#define SET_MULTI_FLAG(xyz, p)
 
#define CLEAR_MULTI_FLAG(xyz, p)
 
#define SET_OR_CLEAR_MULTI_FLAG(_head, _flag)
 
#define SET_OR_CLEAR_MULTI_FLAG_IF_CLONE(_head, _flag)
 
#define IS_WEAPON(op)   (op->type == ARROW || op->type == BOW || op->type == WEAPON)
 
#define IS_ARMOR(op)   (op->type == ARMOUR || op->type == SHIELD || op->type == HELMET || op->type == CLOAK || op->type == BOOTS || op->type == GLOVES || op->type == BRACERS || op->type == GIRDLE || op->type == PANTS)
 
#define IS_LIVE(op)   ((op)->type == PLAYER || QUERY_FLAG((op), FLAG_MONSTER))
 
#define IS_ARROW(op)   (op->type == ARROW || op->type == BULLET)
 
#define IS_ATTACK_SPELL(op)   ((op)->type == BULLET || (op)->type == CONE || (op)->type == LIGHTNING)
 
#define FLAG_SLEEP   0
 
#define FLAG_CONFUSED   1
 
#define FLAG_PARALYZED   2
 
#define FLAG_SCARED   3
 
#define FLAG_BLIND   4
 
#define FLAG_IS_INVISIBLE   5
 
#define FLAG_IS_ETHEREAL   6
 
#define FLAG_IS_GOOD   7
 
#define FLAG_NO_PICK   8
 
#define FLAG_WALK_ON   9
 
#define FLAG_NO_PASS   10
 
#define FLAG_ANIMATE   11
 
#define FLAG_SLOW_MOVE   12
 
#define FLAG_FLYING   13
 
#define FLAG_MONSTER   14
 
#define FLAG_FRIENDLY   15
 
#define FLAG_REMOVED   16
 
#define FLAG_BEEN_APPLIED   17
 
#define FLAG_AUTO_APPLY   18
 
#define FLAG_IS_NEUTRAL   20
 
#define FLAG_SEE_INVISIBLE   21
 
#define FLAG_CAN_ROLL   22
 
#define FLAG_CONNECT_RESET   23
 
#define FLAG_IS_TURNABLE   24
 
#define FLAG_WALK_OFF   25
 
#define FLAG_FLY_ON   26
 
#define FLAG_FLY_OFF   27
 
#define FLAG_IS_USED_UP   28
 
#define FLAG_IDENTIFIED   29
 
#define FLAG_REFLECTING   30
 
#define FLAG_CHANGING   31
 
#define FLAG_SPLITTING   32
 
#define FLAG_HITBACK   33
 
#define FLAG_STARTEQUIP   34
 
#define FLAG_BLOCKSVIEW   35
 
#define FLAG_UNDEAD   36
 
#define FLAG_CAN_STACK   37
 
#define FLAG_UNAGGRESSIVE   38
 
#define FLAG_REFL_MISSILE   39
 
#define FLAG_REFL_SPELL   40
 
#define FLAG_NO_MAGIC   41
 
#define FLAG_NO_FIX_PLAYER   42
 
#define FLAG_IS_EVIL   43
 
#define FLAG_SOULBOUND   44
 
#define FLAG_RUN_AWAY   45
 
#define FLAG_PASS_THRU   46
 
#define FLAG_CAN_PASS_THRU   47
 
#define FLAG_OUTDOOR   48
 
#define FLAG_UNIQUE   49
 
#define FLAG_NO_DROP   50
 
#define FLAG_INDESTRUCTIBLE   51
 
#define FLAG_CAST_SPELL   52
 
#define FLAG_TWO_HANDED   54
 
#define FLAG_USE_BOW   55
 
#define FLAG_USE_ARMOUR   56
 
#define FLAG_USE_WEAPON   57
 
#define FLAG_CONNECT_NO_PUSH   58
 
#define FLAG_CONNECT_NO_RELEASE   59
 
#define FLAG_READY_BOW   60
 
#define FLAG_XRAYS   61
 
#define FLAG_NO_APPLY   62
 
#define FLAG_IS_FLOOR   63
 
#define FLAG_LIFESAVE   64
 
#define FLAG_IS_MAGICAL   65
 
#define FLAG_STAND_STILL   67
 
#define FLAG_RANDOM_MOVE   68
 
#define FLAG_ONLY_ATTACK   69
 
#define FLAG_STEALTH   71
 
#define FLAG_IS_LINKED   73
 
#define FLAG_CURSED   74
 
#define FLAG_DAMNED   75
 
#define FLAG_IS_BUILDABLE   76
 
#define FLAG_NO_PVP   77
 
#define FLAG_IS_THROWN   80
 
#define FLAG_IS_MALE   83
 
#define FLAG_IS_FEMALE   84
 
#define FLAG_APPLIED   85
 
#define FLAG_INV_LOCKED   86
 
#define FLAG_READY_WEAPON   90
 
#define FLAG_NO_SKILL_IDENT   91
 
#define FLAG_SEE_IN_DARK   93
 
#define FLAG_IS_CAULDRON   94
 
#define FLAG_DUST   95
 
#define FLAG_ONE_HIT   97
 
#define FLAG_DRAW_DOUBLE_ALWAYS   98
 
#define FLAG_BERSERK   99
 
#define FLAG_NO_ATTACK   100
 
#define FLAG_INVULNERABLE   101
 
#define FLAG_QUEST_ITEM   102
 
#define FLAG_IS_TRAPPED   103
 
#define FLAG_SYS_OBJECT   110
 
#define FLAG_USE_FIX_POS   111
 
#define FLAG_UNPAID   112
 
#define FLAG_HIDDEN   113
 
#define FLAG_MAKE_INVISIBLE   114
 
#define FLAG_MAKE_ETHEREAL   115
 
#define FLAG_IS_PLAYER   116
 
#define FLAG_IS_NAMED   117
 
#define FLAG_SPAWN_MOB   118
 
#define FLAG_NO_TELEPORT   119
 
#define FLAG_CORPSE   120
 
#define FLAG_CORPSE_FORCED   121
 
#define FLAG_PLAYER_ONLY   122
 
#define FLAG_ONE_DROP   124
 
#define FLAG_PERM_CURSED   125
 
#define FLAG_PERM_DAMNED   126
 
#define FLAG_DOOR_CLOSED   127
 
#define FLAG_IS_SPELL   128
 
#define FLAG_IS_MISSILE   129
 
#define FLAG_DRAW_DIRECTION   130
 
#define FLAG_DRAW_DOUBLE   131
 
#define FLAG_IS_ASSASSINATION   132
 
#define FLAG_OBJECT_WAS_MOVED   133
 
#define FLAG_NO_SAVE   134
 
#define NUM_FLAGS   135
 
#define NUM_FLAGS_32   5
 
#define IS_SYS_INVISIBLE(__ob_)   QUERY_FLAG(__ob_, FLAG_SYS_OBJECT)
 
#define IS_INVISIBLE(__ob_, __player_)   ((QUERY_FLAG(__ob_, FLAG_SYS_OBJECT) || QUERY_FLAG(__ob_, FLAG_IS_INVISIBLE)) && ((__player_)->type != PLAYER || !CONTR((__player_))->tsi))
 
#define SLOW_PENALTY(xyz)   ((xyz)->stats.exp)
 
#define EXIT_PATH(xyz)   ((xyz)->slaying)
 
#define EXIT_X(xyz)   ((xyz)->stats.hp)
 
#define EXIT_Y(xyz)   ((xyz)->stats.sp)
 
#define COST_BUY   0
 
#define COST_SELL   1
 
#define COST_TRUE   2
 
#define DIRX(xyz)   freearr_x[(xyz)->direction]
 
#define DIRY(xyz)   freearr_y[(xyz)->direction]
 
#define ARMOUR_SPEED(xyz)   (xyz)->last_sp
 
#define ARMOUR_SPELLS(xyz)   (xyz)->last_heal
 
#define DISTATT   1
 
#define RUNATT   2
 
#define HITRUN   3
 
#define WAITATT   4
 
#define RUSH   5
 
#define ALLRUN   6
 
#define DISTHIT   7
 
#define WAIT2   8
 
#define UNUSED_MOVE   16
 
#define CIRCLE1   32
 
#define CIRCLE2   48
 
#define PACEH   64
 
#define PACEH2   80
 
#define RANDO   96
 
#define RANDO2   112
 
#define PACEV   128
 
#define PACEV2   144
 
#define WPOINT   176
 
#define LO4   15
 
#define HI4   240
 
#define BLANK_FACE_NAME   "blank.111"
 
#define MIN_ACTIVE_SPEED   0.00001f
 
#define QUEST_CONTAINER_ARCHETYPE   "quest_container"
 
#define QUEST_NAME(_quest)   ((_quest)->race != NULL ? (_quest)->race : (_quest)->name)
 
#define QUEST_STATUS_INVALID   -1
 
#define QUEST_STATUS_STARTED   0
 
#define QUEST_STATUS_COMPLETED   1
 
#define QUEST_STATUS_FAILED   2
 
#define QUEST_TYPE_NONE   0
 
#define QUEST_TYPE_KILL   1
 
#define QUEST_TYPE_ITEM   2
 
#define QUEST_TYPE_ITEM_DROP   3
 
#define QUEST_TYPE_SPECIAL   4
 
#define INTERFACE_TIMEOUT_CHARS   50
 
#define INTERFACE_TIMEOUT_SECONDS   5
 
#define INTERFACE_TIMEOUT_INITIAL   5
 
#define INTERFACE_TIMEOUT_MAX   60 * 5
 
#define INTERFACE_TIMEOUT(ret)
 
#define SPAWN_RELATIVE_LEVEL_GREEN   1
 
#define SPAWN_RELATIVE_LEVEL_BLUE   2
 
#define SPAWN_RELATIVE_LEVEL_YELLOW   3
 
#define SPAWN_RELATIVE_LEVEL_ORANGE   4
 
#define SPAWN_RELATIVE_LEVEL_RED   5
 
#define SPAWN_RELATIVE_LEVEL_PURPLE   6
 
#define MOVE_MAX_HEIGHT_DIFF   12
 
#define FOR_MAP_LAYER_BEGIN(_m, _x, _y, _layer, _sub_layer, _obj)
 
#define FOR_MAP_LAYER_BREAK
 
#define FOR_MAP_LAYER_END
 
#define FOR_INV_PREPARE(op_, it_)
 
#define FOR_INV_FINISH()
 
#define FOR_ABOVE_PREPARE(op_, it_)
 
#define FOR_ABOVE_FINISH()
 
#define FOR_BELOW_PREPARE(op_, it_)
 
#define FOR_BELOW_FINISH()
 
#define FOR_MAP_PREPARE(map_, mx_, my_, it_)
 
#define FOR_MAP_FINISH()
 
#define FOR_OB_AND_ABOVE_PREPARE(op_)   FOR_OB_PREPARE(op_, above, __LINE__)
 
#define FOR_OB_AND_ABOVE_FINISH()   FOR_OB_FINISH()
 
#define FOR_OB_AND_BELOW_PREPARE(op_)   FOR_OB_PREPARE(op_, below, __LINE__)
 
#define FOR_OB_AND_BELOW_FINISH()   FOR_OB_FINISH()
 
#define FOR_OB_PREPARE(op_, field_, suffix_)   FOR_OB_PREPARE2(op_, field_, suffix_)
 
#define FOR_OB_PREPARE2(op_, field_, suffix_)
 
#define FOR_OB_FINISH()
 

Enumerations

enum  apply_flag {
  APPLY_NORMAL = 0, APPLY_ALWAYS = 1, APPLY_ALWAYS_UNAPPLY = 2, APPLY_BASIC_FLAGS = 15,
  APPLY_NO_MERGE = 16, APPLY_IGNORE_CURSE = 32, APPLY_NO_EVENT = 64
}
 

Functions

static int absdir (int d)
 

Detailed Description

This file deals with things like flags, object types, and a lot more.

Todo:
This file is really too large. With all the .h files around, this file should be better split between them - things that deal with objects should be in objects.h, things dealing with players in player.h, etc. As it is, everything just seems to be dumped in here.

Definition in file define.h.

Macro Definition Documentation

#define BLANK_FACE_NAME   "blank.111"

Name of the blank face.

Definition at line 1480 of file define.h.

#define CHOSEN_SKILL_NO   (99999)

Marks no skill used.

Definition at line 78 of file define.h.

#define IS_INVISIBLE (   __ob_,
  __player_ 
)    ((QUERY_FLAG(__ob_, FLAG_SYS_OBJECT) || QUERY_FLAG(__ob_, FLAG_IS_INVISIBLE)) && ((__player_)->type != PLAYER || !CONTR((__player_))->tsi))

Check if the object is invisible.

Definition at line 1356 of file define.h.

#define IS_SYS_INVISIBLE (   __ob_)    QUERY_FLAG(__ob_, FLAG_SYS_OBJECT)

Check if object has FLAG_SYS_OBJECT set.

Definition at line 1353 of file define.h.

#define MAX_STAT   30

The maximum legal value of any stat.

Definition at line 47 of file define.h.

#define MIN_ACTIVE_SPEED   0.00001f

Cut off point of when an object is put on the active list or not

Definition at line 1500 of file define.h.

#define MIN_STAT   1

The minimum legal value of any stat.

Definition at line 49 of file define.h.

#define MOVE_MAX_HEIGHT_DIFF   12

Maximum height difference between two tiles to be able to move between them.

Definition at line 1604 of file define.h.

#define NROFREALSPELLS   52

Number of different spells

Definition at line 664 of file define.h.

#define NRSPELLPATHS   20

Number of spell paths.

Definition at line 666 of file define.h.

#define PORTAL_DESTINATION_NAME   "Town portal destination"

Town portal destination name

Definition at line 81 of file define.h.

#define QUEST_CONTAINER_ARCHETYPE   "quest_container"

Name of the quest container archetype.

Definition at line 1503 of file define.h.

#define QUEST_NAME (   _quest)    ((_quest)->race != NULL ? (_quest)->race : (_quest)->name)

Acquire the name of a specified quest. If the quest name is not set, uses the UID of the quest.

Definition at line 1509 of file define.h.

Enumeration Type Documentation

enum apply_flag

Flags for object_apply_item().

Enumerator
APPLY_NORMAL 

Regular apply.

APPLY_ALWAYS 

Always apply, never unapply.

APPLY_ALWAYS_UNAPPLY 

Always unapply, never apply.

APPLY_BASIC_FLAGS 

Used internally.

APPLY_NO_MERGE 

Do not merge unapplied items.

APPLY_IGNORE_CURSE 

Allow unapplying cursed items.

APPLY_NO_EVENT 

Do not trigger an event.

Definition at line 1487 of file define.h.

Function Documentation

static int absdir ( int  d)
inlinestatic

Computes an absolute direction.

Parameters
dDirection to convert.
Returns
Number between 1 and 8, which represent the "absolute" direction of a number (it actually takes care of "overflow" in previous calculations of a direction).

Definition at line 1838 of file define.h.