Atrinik Client 2.5
include/item.h
Go to the documentation of this file.
00001 /************************************************************************
00002 *            Atrinik, a Multiplayer Online Role Playing Game            *
00003 *                                                                       *
00004 *    Copyright (C) 2009-2011 Alex Tokar and Atrinik Development Team    *
00005 *                                                                       *
00006 * Fork from Daimonin (Massive Multiplayer Online Role Playing Game)     *
00007 * and Crossfire (Multiplayer game for X-windows).                       *
00008 *                                                                       *
00009 * This program is free software; you can redistribute it and/or modify  *
00010 * it under the terms of the GNU General Public License as published by  *
00011 * the Free Software Foundation; either version 2 of the License, or     *
00012 * (at your option) any later version.                                   *
00013 *                                                                       *
00014 * This program is distributed in the hope that it will be useful,       *
00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00017 * GNU General Public License for more details.                          *
00018 *                                                                       *
00019 * You should have received a copy of the GNU General Public License     *
00020 * along with this program; if not, write to the Free Software           *
00021 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.             *
00022 *                                                                       *
00023 * The author can be reached at admin@atrinik.org                        *
00024 ************************************************************************/
00025 
00030 #ifndef ITEM_H
00031 #define ITEM_H
00032 
00034 #define NROF_ITEMS 50
00035 
00037 #define NAME_LEN 128
00038 
00042 typedef struct obj
00043 {
00045     struct obj *next;
00046 
00047     /* Everything below will be cleared by memset() in
00048      * object_remove(). */
00049 
00051     struct obj *prev;
00052 
00054     struct obj *env;
00055 
00057     struct obj *inv;
00058 
00060     char s_name[NAME_LEN];
00061 
00063     sint32 tag;
00064 
00066     sint32 nrof;
00067 
00069     float weight;
00070 
00072     sint16 face;
00073 
00075     uint16 animation_id;
00076 
00078     uint16 anim_speed;
00079 
00081     uint16 anim_state;
00082 
00084     uint16 last_anim;
00085 
00087     uint32 flags;
00088 
00090     uint8 itype;
00091     uint8 stype;
00092 
00094     uint8 item_qua;
00095 
00097     uint8 item_con;
00098 
00100     uint8 item_skill;
00101 
00103     uint8 item_level;
00104 
00106     uint8 direction;
00107 } object;
00108 
00109 #define TYPE_PLAYER                 1
00110 #define TYPE_BULLET                 2
00111 #define TYPE_ROD                    3
00112 #define TYPE_TREASURE               4
00113 #define TYPE_POTION                 5
00114 #define TYPE_FOOD                   6
00115 #define TYPE_POISON                 7
00116 #define TYPE_BOOK                   8
00117 #define TYPE_CLOCK                  9
00118 #define TYPE_FBULLET                10
00119 #define TYPE_FBALL                  11
00120 #define TYPE_LIGHTNING              12
00121 #define TYPE_ARROW                  13
00122 #define TYPE_BOW                    14
00123 #define TYPE_WEAPON                 15
00124 #define TYPE_ARMOUR                 16
00125 #define TYPE_PEDESTAL               17
00126 #define TYPE_ALTAR                  18
00127 #define TYPE_CONFUSION              19
00128 #define TYPE_LOCKED_DOOR            20
00129 #define TYPE_SPECIAL_KEY            21
00130 #define TYPE_MAP                    22
00131 #define TYPE_DOOR                   23
00132 #define TYPE_KEY                    24
00133 #define TYPE_MMISSILE               25
00134 #define TYPE_TIMED_GATE             26
00135 #define TYPE_TRIGGER                27
00136 #define TYPE_GRIMREAPER             28
00137 #define TYPE_MAGIC_EAR              29
00138 #define TYPE_TRIGGER_BUTTON         30
00139 #define TYPE_TRIGGER_ALTAR          31
00140 #define TYPE_TRIGGER_PEDESTAL       32
00141 #define TYPE_SHIELD                 33
00142 #define TYPE_HELMET                 34
00143 #define TYPE_HORN                   35
00144 #define TYPE_MONEY                  36
00145 #define TYPE_CLASS                  37
00146 #define TYPE_GRAVESTONE             38
00147 #define TYPE_AMULET                 39
00148 #define TYPE_PLAYERMOVER            40
00149 #define TYPE_TELEPORTER             41
00150 #define TYPE_CREATOR                42
00151 #define TYPE_SKILL                  43
00152 #define TYPE_EXPERIENCE             44
00153 #define TYPE_EARTHWALL              45
00154 #define TYPE_GOLEM                  46
00155 #define TYPE_BOMB                   47
00156 #define TYPE_THROWN_OBJ             48
00157 #define TYPE_BLINDNESS              49
00158 #define TYPE_GOD                    50
00159 #define TYPE_DETECTOR               51
00160 #define TYPE_SKILL_ITEM             52
00161 #define TYPE_DEAD_OBJECT            53
00162 #define TYPE_DRINK                  54
00163 #define TYPE_MARKER                 55
00164 #define TYPE_HOLY_ALTAR             56
00165 #define TYPE_PLAYER_CHANGER         57
00166 #define TYPE_BATTLEGROUND           58
00167 #define TYPE_PEACEMAKER             59
00168 #define TYPE_GEM                    60
00169 #define TYPE_FIRECHEST              61
00170 #define TYPE_FIREWALL               62
00171 #define TYPE_ANVIL                  63
00172 #define TYPE_CHECK_INV              64
00173 #define TYPE_MOOD_FLOOR             65
00174 #define TYPE_EXIT                   66
00175 #define TYPE_ENCOUNTER              67
00176 #define TYPE_SHOP_FLOOR             68
00177 #define TYPE_SHOP_MAT               69
00178 #define TYPE_RING                   70
00179 #define TYPE_FLOOR                  71
00180 #define TYPE_FLESH                  72
00181 #define TYPE_INORGANIC              73
00182 #define TYPE_LIGHT_APPLY            74
00183 #define TYPE_LIGHTER                75
00184 #define TYPE_TRAP_PART              76
00185 #define TYPE_WALL                   77
00186 #define TYPE_LIGHT_SOURCE           78
00187 #define TYPE_MISC_OBJECT            79
00188 #define TYPE_MONSTER                80
00189 #define TYPE_SPAWN_GENERATOR        81
00190 #define TYPE_SPELLBOOK              85
00191 #define TYPE_CLOAK                  87
00192 #define TYPE_CONE                   88
00193 #define TYPE_AURA                   89
00194 #define TYPE_SPINNER                90
00195 #define TYPE_GATE                   91
00196 #define TYPE_BUTTON                 92
00197 #define TYPE_CF_HANDLE              93
00198 #define TYPE_HOLE                   94
00199 #define TYPE_TRAPDOOR               95
00200 #define TYPE_WORD_OF_RECALL         96
00201 #define TYPE_PARAIMAGE              97
00202 #define TYPE_SIGN                   98
00203 #define TYPE_BOOTS                  99
00204 #define TYPE_GLOVES                 100
00205 #define TYPE_CONVERTER              103
00206 #define TYPE_BRACERS                104
00207 #define TYPE_POISONING              105
00208 #define TYPE_SAVEBED                106
00209 #define TYPE_POISONCLOUD            107
00210 #define TYPE_FIREHOLES              108
00211 #define TYPE_WAND                   109
00212 #define TYPE_ABILITY                110
00213 #define TYPE_SCROLL                 111
00214 #define TYPE_DIRECTOR               112
00215 #define TYPE_GIRDLE                 113
00216 #define TYPE_FORCE                  114
00217 #define TYPE_POTION_EFFECT          115
00218 #define TYPE_CLOSE_CON              121
00219 #define TYPE_CONTAINER              122
00220 #define TYPE_ARMOUR_IMPROVER        123
00221 #define TYPE_WEAPON_IMPROVER        124
00222 #define TYPE_SKILLSCROLL            130
00223 #define TYPE_DEEP_SWAMP             138
00224 #define TYPE_IDENTIFY_ALTAR         139
00225 #define TYPE_CANCELLATION           141
00226 #define TYPE_MENU                   150
00227 #define TYPE_BALL_LIGHTNING         151
00228 #define TYPE_SWARM_SPELL            153
00229 #define TYPE_RUNE                   154
00230 #define TYPE_POWER_CRYSTAL          156
00231 #define TYPE_CORPSE                 157
00232 #define TYPE_DISEASE                158
00233 #define TYPE_SYMPTOM                159
00234 
00235 #define F_ETHEREAL 0x0080
00236 #define F_INVISIBLE 0x0100
00237 
00239 #define delete_object(tag) object_remove(object_find(tag))
00240 
00241 #endif