--- deliantra/server/include/object.h 2010/04/13 22:05:42 1.243 +++ deliantra/server/include/object.h 2010/10/11 18:40:43 1.257 @@ -35,37 +35,34 @@ // also see common/item.C enum { - body_skill, - body_combat, - body_range, - body_shield, - body_arm, - body_torso, - body_head, - body_neck, - body_finger, - body_shoulder, - body_foot, - body_hand, - body_wrist, - body_waist, +# define def(name, use, nonuse) body_ ## name, +# include "slotinc.h" +# undef def NUM_BODY_LOCATIONS }; /* See common/item.c */ -typedef struct Body_Locations +struct Body_Locations { - keyword save_name; /* Name used to load/save it to disk */ + const char *name; /* Short name/identifier */ + keyword kw; /* Name used to load/save it to disk */ const char *use_name; /* Name used when describing an item we can use */ const char *nonuse_name; /* Name to describe objects we can't use */ -} Body_Locations; +}; extern Body_Locations body_locations[NUM_BODY_LOCATIONS]; +// for each set of directions (1 == up, 2 == right, 4 == down, 8 == left) +// contains the wall suffix (0, 1_3, 1_4 and so on). +extern const char *wall_suffix[16]; + #define NUM_COINS 4 /* number of coin types */ extern const char *const coins[NUM_COINS + 1]; +// restart server when object_count reaches this value +#define RESTART_COUNT 0xe0000000 + /* * Each object (this also means archetypes!) could have a few of these * "dangling" from it; this could also end up containing 'parse errors'. @@ -569,6 +566,12 @@ MTH bool has_dialogue () const { return msg_has_dialogue (&msg); } + /* need_identify returns true if the item should be identified. This + * function really should not exist - by default, any item not identified + * should need it. + */ + MTH bool need_identify () const; + // returns the outermost owner, never returns 0 MTH object *outer_owner () { @@ -645,7 +648,7 @@ return glow_radius; } - // returns the player that cna see this object, if any + // returns the player that can see this object, if any MTH object *visible_to () const; MTH std::string long_desc (object *who = 0); // query_name . " " . describe @@ -687,11 +690,14 @@ // set the given flag on all objects in the inventory recursively MTH void set_flag_inv (int flag, int value = 1); - void enter_exit (object *exit);//Perl - MTH void enter_map (maptile *newmap, int x, int y); + void enter_exit (object *exit); // perl + MTH bool enter_map (maptile *newmap, int x, int y); void player_goto (const_utf8_string path, int x, int y); // only for players MTH bool apply (object *ob, int aflags = AP_APPLY); // ob may be 0 + MTH object *mark () const; + MTH void splay_marked (); + // returns the mapspace this object is in mapspace &ms () const; @@ -751,14 +757,14 @@ MTH struct region *region () const; - void statusmsg (const_utf8_string msg, int color = NDI_BLACK); - void failmsg (const_utf8_string msg, int color = NDI_RED); + MTH void statusmsg (const_utf8_string msg, int color = NDI_BLACK); + MTH void failmsg (const_utf8_string msg, int color = NDI_RED); void failmsgf (const_utf8_string format, ...); // always NDI_RED... - const_utf8_string query_inventory (object *who = 0, const_utf8_string indent = ""); + MTH const_utf8_string query_inventory (object *who = 0, const_utf8_string indent = ""); MTH const_octet_string ref () const; // creates and returns a consistent persistent object reference - static object *deref (const_octet_string ref); // returns the object from the generated refreence, if possible + static object *deref (const_octet_string ref); // returns the object from the generated reference, if possible // make some noise with given item into direction dir, // currently only used for players to make them temporarily visible @@ -952,6 +958,7 @@ #define INS_NO_WALK_ON 0x0004 #define INS_ON_TOP 0x0008 #define INS_BELOW_ORIGINATOR 0x0010 +#define INS_NO_AUTO_EXIT 0x0020 // temporary, fix exits instead //-GPL