List of object types, their attributes and functionality
Type 0 means: The object has no special functionality. This usually applies for walls, floors and monsters.
All the unique and permanent apartments have this flag set to every floor tile.
Functionality of rods:
A rod contains a spell. The player can use this spell by applying and firing the rod. Rods need time to regenerate their “internal” spellpoints, lowering the effectiveness in combat. But unlike wands/scrolls, rods can be used endlessly.
Functionality of treasure:
A treasure-object turns into certain randomitems when the map is loaded into the game.
About usage of the random-artifact treasurelist:
This will generate powerful stuff like girdles, xray helmets, special swords etc. If you put this as reward to your quest, players might be motivated to do it more than once. BUT, by doing so they will get a huge number of different artifacts! Besides, players will always seek the place with the most easy-to-get random artifact and ignore all others. My advice: Don't use it! Attract players with good fighting experience (from monsters), potions, spellbooks, money, and non-random artifacts.
Functionality of potions:
The player can drink these and gain various kinds of benefits (/penalties) by doing so.
Functionality of food:
By eating/drinking food-objects, the player can fill his stomach and gain a little health.
see also: type 72: flesh
Functionality of poison food:
When eating, the player's stomach is drained by 1/4 of food. If his food drops to zero, the player might even die.
Functionality of books:
Applying a book, the containing message is displayed to the player.
Functionality of clocks:
Applying a clock, the time is displayed to the player
Functionality of arrows/bolts:
Arrows can be shot with bows, bolts with crossbows. They are usually weaker than melee but players can shoot from a safe distance.
Functionality of Shooting Weapons:
Bows can fire arrows, crossbows can fire bolts. You could also create your own pair of projectile & shooting weapon. When the “race”-attribute of both matches, it should work.
see also: type 15: weapon
Functionality of weapons:
Wielding a weapon, the object's stats will directly be inherited to the player. Usually enhancing his fighting-abilities. Non-magical weapons can be improved with scrolls.
General notes on artifacts (equipment) with stats- or resistance-bonus:
Keep playbalance in mind! Such items mustn't be reachable without hard fighting AND questing.
See “golden rules of map-making”.
Functionality of mail / breastplate armour:
Wearing an armour, the object's stats will directly be inherited to the player. Usually enhancing his defense.
see also: type 33: shield , type 34: helmet , type 39: amulet , type 70: ring , type 87: cloak , type 99: boots , type 100: gloves , type 104: bracers , type 113: girdle
These all work more or less exactly like breastplate armour.
Functionality of pedestals:
Pedestals are designed to detect certain types of living objects. When a predefined type of living creature steps on the pedestal, the connected value is triggered.
Notes on usage:
If you want to create a place where only players of a certain race can enter, put a type 41: teleporter over your pedestal. So the teleporter is only activated for players of the matching race. Do not use gates, because many other players could sneak in. If you put powerful artifacts into such places, generally set “startequip 1”, so that they are preserved for that one race and can't be traded to others.
see also: type 51: detectors , type 64: inventory checker , type 18: altar
Functionality of altars:
When a player puts a defined number of certain items on the altar, then either a spell is casted (on the player) or a connector is triggered. If the latter is the case, the altar works only once. Either way, the sacrificed item dissapears.
see also: type 31: altar_trigger , type 56: holy altar
Functionality of locked doors:
A locked door can be opened only when carrying the appropriate type 21: special key.
Notes on usage:
If you want to create a locked door that cannot be opened (no key), set a slaying like “no_key_available”. This will clarify things and only a fool would create a key matching that slaying. Door-objects can not only be used for “doors”. In many maps these are used with all kinds of faces/names, especially often as “magic force”. A good example is the map “Lake_Country/ebony/masterlev”. There you have magic forces (door objects) put under certain artifact items. To get your hands on the artifacts, you need to bring up the appropriate quest items (key objects).
see also: type 21: special key
Functionality of special keys:
When carrying the appropriate special key, a locked door can be opened. The key will disappear.
This object-type can also be used for “passport”-like items: When walking onto an inventory checker, a gate for example might get opened. The “passport” will stay in the player's inventory.
Notes on usage:
How to make a “passport”: You take the special key arch (archetype name is “key2”), set the face to something like card.111 and the name to “passport” - that's all. The slaying certainly must match with the appropriate inventory checker.
Of course you can be creative with names and faces of key-objects. A “mysterious crystal” or a “big dragon claw” (with appropriate faces) appear more interesting than just a “strange key”, or “passport”.
see also: type 20: locked door , type 64: inventory checker
Functionality of magic_ears:
Magic_ears trigger a connected value when the player speaks a specific keyword.
Notes on usage:
Whenever you put magic_ears on your maps, make sure there are CLEAR and RELIABLE hints about the keywords somewhere. Don't make something
like a gate that is opened by speaking “open” or “sesame”, expecting the player to figure this out all by himself.
Magic_ears are typically used for interaction with NPCs. You can create the impression that the NPC actually *does* something according to his conversation with a player. Mostly this means opening a gate or handing out some item, but you could be quite creative here.
Functionality of altar_triggers:
Altar_triggers work pretty much like normal altars (drop sacrifice → connection activated), except for the fact that they reset after usage. Hence, altar_triggers can be used infinitely.
If “slaying money” is set, then the value of the sacrificed money must be equal to <value> (ie, if food=200, then 200 silver, 20 gold, or 4 platinum will all work.) Note that the maximum possible for <value> is 32767.
Hints on usage:
Altar_triggers are very useful if you want to charge a price for…
The big advantage over normal altars is the infinite usability of altar_triggers! If there are ten players on one server, they're quite grateful if things work more than once.
see also: type 18: altar
see also: type 3: rod
Functionality of movers:
Movers move the objects above them. However, only living objects are affected (monsters/NPCs always, players optional). Movers have a direction, so players can be made to move in a pattern, and so can monsters. Motion is involuntary. Additionally, players or monsters can be “frozen” while ontop of movers so that they MUST move along a chain of them.
Multisquare monsters can be moved as well, given enough space. Movers are usually invisible.
Notes on usage:
NEVER EVER consider a mover to be impassable in the backwards direction. Setting “attacktype 1” makes it seemingly impossible but there is still a trick: One player can push a second player past the mover, in opposite to the mover's direction! The more movers, the more players needed. Hence, don't make a treasure room that is surrounded by movers instead of solid walls/gates. It should be noted though that this behavior can be used for intentionally multi-player maps, and there is one such example in Pupland , however it should be noted that forcing players to use that to get through would usually be considered a bit too counter-intuitive unless it is hinted to.
Btw, it does not make a difference putting movers above or below the floor. Moreover, movers that are “invisible 1” cannot be discovered with the show_invisible spell.
Note on directors:
Movers and Directors are separate objects, even though they look and act similar. Directors only do spells/missiles, while movers only do living creatures (depending on how it is set: monsters and players).
see also: type 112: director
Functionality of teleporters:
When the player walks into a teleporter, he is transferred to a different location. The main difference to the object-type type 66: exit is the possibility to have teleporters connected to levers/buttons/etc. Sometimes teleporters are activated even against the players will.
Unlike exits, teleporters can transfer also items and monsters to different locations on the same map.
Notes on usage:
Teleporters must always be placed above the floor in order to work correctly!
When creating maps, I guess sooner or later you'll want to have an invisible teleporter. If using “invisible 1”, the teleporter can still be discovered with the show_invisible spell. And you can't place it under the floor to prevent this. Fortunately, there is a cool trick to make a perfectly invisible teleporter: You simply add teleporter functionality to the floor itself. That means: You take the floor arch (e.g. “flagstone”), set “type 41”, and add slaying/hp/sp/connected… everything you need.
see also: type 66: exit
Functionality of creators:
A creator is an object which creates another object when it is triggered. The child object can be anything. Creators are VERY useful for all kinds of map-mechanisms.
Notes on usage:
Don't hesitate to hide your creators under the floor. The created items will still always appear ontop of the floor.
see also: type 154: rune / trap
Functionality of detectors:
Detectors work quite much like inv. checkers/pedestals: If the detector finds a specific object, it toggles its connected value.
What is “unique” about them, compared to inv. checkers/ pedestals? - First, detectors check their square for a match periodically, not instantly. Second, detectors check directly for object names. Third, detectors do not check the inventory of players/monsters.
Notes on usage:
There is one major specialty about detectors: You can detect spells blown over a detector! To detect a lightning bolt for example, set “slaying lightning” and “speed 1.0”. In combination with spellcasting walls, this can be very useful for map-mechanisms.
see also: type 17: pedestal , type 64: inventory checker , type 18: altar
Functionality of markers:
A marker is an object that inserts an invisible force (a mark) into a player stepping on it. This force does nothing except contain a string in its slaying field which can be discovered by detectors or inv. checkers. It is also possible to use markers for removing marks again.
Note that the player has no possibility to “see” his own marks, except by the effect that they cause on the maps.
Notes on usage:
Markers hold real cool possibilities for map-making. I encourage you to use them frequently. However there is one negative point about markers: Players don't “see” what's going on with them. It is your task, as map-creator, to make sure the player is always well informed and never confused.
Please avoid infinite markers when they aren't needed. They're using a little space in the player file after all, so if there is no real purpose, set an expire time.
see also: type 64: inventory checker
Functionality of holy_altars:
Holy_altars are altars for the various religions. Praying at a holy_altar will make you a follower of that god, and if you already follow that god, you may get some extra bonus. (See: god intervention)
Altars located in temples should have at least “level 100”. Some characters might need those altars, they would be very unhappy to see them re-consecrated to another cult.
see also: type 18: altar
An object owned by a player that can convert a monster into a peaceful being incapable of attack. This item type is the basis by which the peace spell functions. If the attack succeeds, the victim becomes unaggressive, will run away, assumes random movement, and is no longer considered a monster. All the creature's experience is transferred to the owner of the peacemaker.
Functionality of magic walls:
Magic walls fire spells in a given direction, in regular intervals. Magic walls can contain any spell. However, some spells do not operate very successfully in them. The only way to know is to test the spell you want to use with a wall.
Several types of magical walls are predefined for you in the archetypes, and can be found on a pick-map available in crossedit .
Notes on usage:
Spellcasting walls pose an interesting alternative to monsters. Usually they are set to be non-destroyable (“alive 0”). Thus, while monsters in a map can be cleared out, the magic walls remain. Low level characters for example will not be able to pass through their spell-area, hence they cannot loot a map that a high level character might have cleared out.
Another point of magic walls is that if the player dies, he has to face them all again. Magic walls can add a kind of “permanent thrill” to your maps.
Be careful that your magic walls don't kill the monsters on a map. If placing monsters, eventually take ones that are immune to the walls' spell(s).
It is possible to make walls rotate when triggered. But that is so confusing (and useless IMHO) that I did not mention it above. You can find a working example on the map ”/pup_land/castle_eureca/castle_eureca8“.
Functionality of inventory checkers:
Inventory checkers passively check the players inventory for a specific object. You can set a connected value that is triggered either if that object is present or missing (→ “last_sp”) when a player walks over the inv. checker. A valid option is to remove the matching object (usually not recommended, see “last_heal”).
Alternatively, you can set your inv. checker to block all players that do/don't carry the matching object (→ “no_pass”). As you can see, inv. checkers are quite powerful, holding a great variety of possibilities.
So, *if* you set last_heal, make sure to inform the player what's going on!
General usage notes:
Putting a check_inventory space in front of a gate (one below) and one on the opposite side works reasonably well as a control mechanism. Unlike the key/door-combo, this one works infinite since it is independent from map reset. Use it to put a “structure” into your maps: Player must solve area A to gain access to area B. This concept can be found in nearly every RPG - simple but effective.
see also: type 21: special key , type 55: marker , type 17: pedestal , type 51: detector
Functionality of mood floors:
As the name implies, mood floors can change the “mood” of a monsters/NPC. For example, an unaggressive monster could be turned mad to start attacking. Similar, an aggressive monster could be calmed.
Notes on usage:
Notes on usage: Mood floors are absolutely cool for NPC interaction. To make an unaggressive monster/NPC attack, put a creator with
“other_arch furious_floor” under it. Connect the creator to a magic_ear, so the player speaks a keyword like “stupid sucker” - and the monster attacks.
To turn an NPC into a pet, put a charm_floor under it and connect it directly to a magic_ear. Then the player speaks a keyword like “help me” - and the NPC joins him as pet.
(Of course you must always give clear hints about keywords! And there is no reason why you couldn't use a button/lever/pedestal etc. instead of a magic_ear.)
Functionality of exits:
When the player applies an exit, he is transferred to a different location. (Monsters cannot use exits.) Depending on how it is set, the player applies the exit just by walking into it, or by pressing <a>pply when standing on the exit.
Notes on usage:
If you want to have an invisible exit, set “invisible 1” (, of course “walk_on 1”), and put it *under* the floor. Otherwise it could be detected with the show_invisible spell.
You can be quite creative with the outlook of secret exits (their “face”). Don't forget to give the player relyable hints about them though.
see also: type 41: teleporter
se also type 6: food
Functionality of spellbooks:
By reading a spellbook, the player has a chance of learning the contained spell. Once learned from a book, the spell is available forever. Spellbooks with high level spells require some skill-level to read.
Notes on usage:
Don't put any of the godgiven spells into a spellbook! These are reserved for the followers of the appropriate cults. Handing them out in a spellbook would violate the balance between different religions.
If you want to have a random spellbook, you must use the type 4: treasure arch “random_spells” instead.
see also: type 8: book
Holes send objects that fall through them to a new location on the current map.
Examples
Special Object Attributes
| CrossfireEditor | arch | map | Description |
|---|---|---|---|
| connection | connected | When a connection value is set, the pit can be opened/closed by activating the connection. | |
| destination X destination Y | hp sp | The pit will transport creatures (and items) randomly into a two-square radius of the destination coordinates. If the destination square becomes blocked, the pit will act like it is filled up and will not work any more. | |
| position state | wc | The position state defines the position of the gate: Zero means completely open/down, the “number of animation-steps” (usually about 6 or 7) means completely closed/up state. The default value is usually recommended. | |
| affected movement | move_on | move_on | Make creatures using these movement types fall into the pit. Movement types other than walking is not the behavior expected from a pit, and other settings should only be used for map-mechanisms (e.g. for transporting flying monsters). An interesting side-effect is if this flag is enabled, spell effects like fire/snow also make their way through the pit. |
| maxsp | Whether the initial state is open (1) or closed (0). |
Functionality of signs / magic_mouths:
The purpose of a sign or magic_mouth is to display a certain message to the player. There are three ways to have the player get this message: The player walking onto it (→ magic_mouth), the player pressing <a>pply (→ sign) or the player triggering a button/handle/etc (→ magic_mouth).
Notes on usage:
Use signs and magic_mouths, plenty of them! Place magic_mouths to add some true roleplay feeling to your maps, support your storyline or give hints about hidden secrets/dangers. Place signs to provide the player with all kinds of useful information for getting along in your maps.
see also: type 8: book
Functionality of converters:
Converters are like “exchange tables”. When the player drops a specific type of items, they get converted into other items, at a predefined exchange-ratio.
Notes on usage:
Converters are better than shopping with doormats, because the converters never get sold out. For some items like food or jewels those “exchange tables” are really nice, while for the more important stuff like potions converters should not exist.
VERY IMPORTANT:
Be careful with the exchange-ratio! When you drop items on a converter, the stuff you get must be of equal or lesser value than before! (Except if you are using “rare” items like dragon-scales for payment). The code will not check if your ratio is sane, so the player could gain infinite wealth by using your converter.
See also: type 42: creator
Functionality of savebeds:
When the player applies a savebed, he is not only saved. Both his respawn-after-death and his word-of-recall positions are pointing to the last-applied savebed.
Notes on usage:
Put savebed locations in towns, do not put them into dungeons. It is absolutely necessary that a place with savebeds is 100% secure. That means:
Functionality of wands / staves:
Wands contain a certain spell. The player can apply (ready) and fire the wand. After a defined number of casts, the wand is “used up”. It is possible to recharge a wand with scrolls of charging, but usually that isn't worth the cost.
Notes on usage: Wands are quite seldom used. The reason probably is that they're generally not cost-efficient. Handing out high-level wands with powerful special spells isn't a good idea either, because of the recharge ability.
For low levels, staffs of healing/cure and word of recall are quite desirable though.
see also: type 3: rod , type 5: potion , type 111: scroll
see also: type 3: rod , type 5: potion , type 109: wand / staff
Functionality of containers: A player can put (certain kinds of) items in the container. The overall weight of items is reduced when put inside a container, depending on the settings.
A special feature of containers is the “cauldron”, capable of mixing alchemical receipes.
Note on chests: There are two types of chests: First the random treasure chests - Those are NOT containers (but object type 4), they create random treasures when applied. Archetype name is “chest”. Second there are the permanent chests - Those are containers, they can be opened and closed again. Archetype name is “chest_2”.
Functionality of runes/ traps: A rune is a magical enscription on the dungeon floor. Traps are just like runes except they are not magical in nature, and generally have a physical attack.
Runes hit any monster or person who steps on them for 'dam' damage in 'attacktype' attacktype. Alternatively, the rune could contain any spell, and will cast this spell when it detonates. Yet another kind is the “summoning rune”, summoning predefined monsters of any kind, at detonation.
Many traps and runes are already defined in the archetypes.
Notes on usage: Avoid monsters stepping on your runes. For example, summoning runes together with spellcasting- and attack-runes is usually a bad idea. One can use this feature intentionally though to create chain-reactions of summoning runes and such things, however one should be careful about doing this.
The following attributes are used for many different object-types: (These are only mentioned here, not in the detailed list of object-types above. Apply them to all objects where they make any “sense”.)
| CrossfireEditor | arch/map field | Description |
|---|---|---|
| name | name <name> | The name of the object displayed to players. |
| title | title <title> | An object's title. Once the object is identified the title is attached to the name. Typical titles are “of mostrai”, “of xray vision” etc. |
| image | face <name_of_face> | The image name defines what picture is displayed for the object. Look through the arches to get an idea of existing faces. |
| nrof <number | The number of objects in one stack (for example: 100 goldcoins ⇒ “nrof 100”). You should set at least “nrof 1” for any pickable object, otherwise it won't be mergeable! | |
| weight <grams> | Makes an object weigh <grams> grams (1000g is 1kg). Objects with “weight 0” are not pickable for players. Still, set “no_pick 1” for explicitly non-pickable objects. | |
| value <num> | ||
| material <number> | <number> is a bitmask, containing the information of what material the object is made of. An object's material affects its likelihood to get destroyed by certain hazards (fire/cold/acid..). Material 0 or 256 means the object cannot be destroyed at all (this is VERY important for special keys!). Read more about materials here. | |
| msg <text> endmsg | <text> is the “story” or description of the object (for the players). This should work for all pickable items in some way. For other object-types (living creatures/magic mouth..) this message has special meanings. In crossedit you can write this kind of message into the big text-frame in an object's attribute window. Add stories to all the special artifacts you create! | |
| glow\ radius | If glow radius is set to a value greater than zero, the object appears lit up on dark maps. It can be a value between 0 and 4 with higher values emitting greater amounts of light. | |
| identified | identified <0/1> | Whether the item is identified or not. If it is, both the name and title are shown to the player. |
| invisible | invisible 1 | Makes the object invisible. Depending on the object-type, some can be made visible by the show_invisible spell. If in doubt, test it. Putting an invisible object under the floor always prevents it from being shown, but, in some cases, might cause malfunction to the object. You may find more detailed info about this matter in the description of the affected object types. |
| smooth level | If smooth level is set to a value greater than zero, the object will be drawn partially over adjacent squares having a lower smooth level. The value must be between 0 and 255 (inclusive) where 0 means “never overlap adjacent squares”. | |
| elevation | The elevation, or height above sea level) of this tile. It is used for weather calculations and should be in the range -32000 to 32000. The elevation of a tile must be set in the bottom-most game object; elevation values for non-bottom-most game objects are ignored by the Crossfire server. | |
| block view | blocksview <0/1> | If set, players (and monsters) cannot see beyond the object unless they cross it or manage to stand on top of it. For multi-tile objects, this flag may be set uniquely for each part. |
Note: When attributes are specified in multi-tile arch, most attributes need only be set in the head part, though there are some which may be uniquely set for each non-head part.
/**
* @defgroup OBJECT_TYPE Object types.
*
* Only add new values to this list if somewhere in the program code, it is
* actually needed. Just because you add a new monster does not mean it has to
* have a type defined here. That only needs to happen if in some .c file, it
* needs to do certain special actions based on the monster type, that can not
* be handled by any of the numerous flags. Also, if you add new entries, try
* and fill up the holes in this list. Additionally, when you add a new entry,
* include it in the table in common/item.c
*
* type 0 is undefined and indicates non-valid type information.
*/
/*@{*/
#define PLAYER 1
#define TRANSPORT 2 /* see doc/Developers/objects */
#define ROD 3
#define TREASURE 4
#define POTION 5
#define FOOD 6
#define POISON 7
#define BOOK 8
#define CLOCK 9
/*#define FBULLET 10 */
/*#define FBALL 11 */
/*#define LIGHTNING 12 */
#define ARROW 13
#define BOW 14
#define WEAPON 15
#define ARMOUR 16
#define PEDESTAL 17
#define ALTAR 18
/*#define CONFUSION 19 */
#define LOCKED_DOOR 20
#define SPECIAL_KEY 21
#define MAP 22
#define DOOR 23
#define KEY 24
/*#define MMISSILE 25 */
#define TIMED_GATE 26
#define TRIGGER 27
#define GRIMREAPER 28
#define MAGIC_EAR 29
#define TRIGGER_BUTTON 30
#define TRIGGER_ALTAR 31
#define TRIGGER_PEDESTAL 32
#define SHIELD 33
#define HELMET 34
#define HORN 35
#define MONEY 36
#define CLASS 37 /* object for applying character class
* modifications to someone */
/*#define GRAVESTONE 38 */
#define AMULET 39
#define PLAYERMOVER 40
#define TELEPORTER 41
#define CREATOR 42
#define SKILL 43 /* also see SKILL_TOOL (74) below */
#define EXPERIENCE 44 /* This is basically obsolete now.
* It used to contain experience for
* broad skill categories. This
* value is now automatically
* converted at load time. */
#define EARTHWALL 45
#define GOLEM 46
/*#define BOMB 47 */
#define THROWN_OBJ 48
#define BLINDNESS 49
#define GOD 50
#define DETECTOR 51 /* peterm: detector is an object */
/* which notices the presense of */
/* another object and is triggered */
/* like buttons. */
#define TRIGGER_MARKER 52 /* inserts an invisible, weightless */
/* force into a player with a
* specified string WHEN TRIGGERED. */
#define DEAD_OBJECT 53
#define DRINK 54
#define MARKER 55 /* inserts an invisible, weightless
* force into a player with a
* specified string. */
#define HOLY_ALTAR 56
#define PLAYER_CHANGER 57
#define BATTLEGROUND 58 /* battleground, by Andreas Vogl */
#define PEACEMAKER 59 /* Object owned by a player which can
* convert a monster into a peaceful
* being incapable of attack. */
#define GEM 60
/*#define FIRECHEST 61 */ /* FIRECHEST folded into FIREWALL */
#define FIREWALL 62
/*#define ANVIL 63 */
#define CHECK_INV 64 /* b.t. thomas@nomad.astro.psu.edu */
#define MOOD_FLOOR 65 /* b.t. thomas@nomad.astro.psu.edu
* values of last_sp set how to
* change:
* 0 = furious, all monsters become
* aggressive
* 1 = angry, all but friendly become
* aggressive
* 2 = calm, all aggressive monsters
* calm down
* 3 = sleep, all monsters fall asleep
* 4 = charm, monsters become pets */
#define EXIT 66
#define ENCOUNTER 67
#define SHOP_FLOOR 68
#define SHOP_MAT 69
#define RING 70
#define FLOOR 71 /* Floor tile -> native layer 0 */
#define FLESH 72 /* animal 'body parts' -b.t. */
#define INORGANIC 73 /* metals, minerals, dragon scales */
#define SKILL_TOOL 74 /* Allows the use of a skill */
#define LIGHTER 75
/* The trap_part, wall, light_source, misc_object, monster, and spawn_generator * types are not used in any archetypes, and should perhaps be removed. */ /*#define TRAP_PART 76 */ /* Needed by set traps skill -b.t. */
#define WALL 77 /* Wall. Put it always in layer 1 if
* not set is_floor */
/*#define LIGHT_SOURCE 78 */ /* torches, lamps, etc. */
#define MISC_OBJECT 79 /* misc. objects are for objects
* without a function in the engine.
* Like statues, clocks, chairs...
* If perhaps we create a function
* where we can sit on chairs, we
* create a new type and remove all
* chairs from here. */
#define MONSTER 80 /* A real, living creature */
/*#define SPAWN_GENERATOR 81 */ /* Spawn point or monster generator */
#define LAMP 82 /* Lamp */
#define DUPLICATOR 83 /* Duplicator/multiplier object */
/*#define TOOL 84 */ /* Tool for building objects */
#define SPELLBOOK 85
/*#define BUILDFAC 86 */ /* Facilities for building objects */
#define CLOAK 87
/*#define CONE 88 */
/*#define AURA 89 */ /* Aura spell object */
#define SPINNER 90
#define GATE 91
#define BUTTON 92
#define CF_HANDLE 93
#define HOLE 94
#define TRAPDOOR 95
/*#define WORD_OF_RECALL 96 */
/*#define PARAIMAGE 97 */
#define SIGN 98
#define BOOTS 99
#define GLOVES 100
#define SPELL 101
#define SPELL_EFFECT 102
#define CONVERTER 103
#define BRACERS 104
#define POISONING 105
#define SAVEBED 106
/*#define POISONCLOUD 107*/
/*#define FIREHOLES 108*/
#define WAND 109
/*#define ABILITY 110*/
#define SCROLL 111
#define DIRECTOR 112
#define GIRDLE 113
#define FORCE 114
#define POTION_EFFECT 115 /* A force, holding the effect of a
* potion */
#define EVENT_CONNECTOR 116 /* Lauwenmark: an invisible object
* holding a plugin event hook */
#define CLOSE_CON 121 /* Eneq(@csd.uu.se): Id for
* close_container archetype. */
#define CONTAINER 122
#define ARMOUR_IMPROVER 123
#define WEAPON_IMPROVER 124
/* unused: 125 - 129
* type 125 was MONEY_CHANGER
*/
#define SKILLSCROLL 130 /* can add a skill to player's
* inventory -bt.*/
#define DEEP_SWAMP 138
#define IDENTIFY_ALTAR 139
/*#define CANCELLATION 141*/ /* not used with new spell code */
#define SHOP_INVENTORY 150 /* Mark Wedel (mark@pyramid.com) Shop
* inventories */
/*#define BALL_LIGHTNING 151*/ /* peterm: ball lightning and color
* spray */
/*#define SWARM_SPELL 153*/
#define RUNE 154
#define TRAP 155
#define POWER_CRYSTAL 156 #define CORPSE 157
#define DISEASE 158 #define SYMPTOM 159
#define BUILDER 160 /* Generic item builder, see subtypes
* below */
#define MATERIAL 161 /* Material for building */
#define OBJECT_TYPE_MAX 161 /* Update if you add new types */ /* END TYPE DEFINE */ /*@}*/