--- deliantra/server/include/object.h 2006/09/16 22:24:12 1.40 +++ deliantra/server/include/object.h 2006/10/15 02:16:35 1.43 @@ -82,6 +82,8 @@ * e.g. copy_object. */ +typedef refptr object_ptr; + // these are not being copied ACC_CLASS (object) struct object_keep : refcounted @@ -127,13 +129,13 @@ /* To get put into books and the like. */ shstr ACC (RW, materialname); /* specific material name */ shstr ACC (RW, custom_name); /* Custom name assigned by player */ - refptr ACC (RW, owner); /* Pointer to the object which controls this one */ - refptr ACC (RW, enemy); /* Monster/player to follow even if not closest */ - refptr ACC (RW, attacked_by); /* This object start to attack us! only player & monster */ - refptr ACC (RW, chosen_skill); /* the skill chosen to use */ - refptr ACC (RW, spellitem); /* Spell ability monster is choosing to use */ - refptr ACC (RW, spell); /* Spell that was being cast */ - refptr ACC (RW, current_weapon); /* Pointer to the weapon currently used */ + object_ptr ACC (RW, owner); /* Pointer to the object which controls this one */ + object_ptr ACC (RW, enemy); /* Monster/player to follow even if not closest */ + object_ptr ACC (RW, attacked_by); /* This object start to attack us! only player & monster */ + object_ptr ACC (RW, chosen_skill); /* the skill chosen to use */ + object_ptr ACC (RW, spellitem); /* Spell ability monster is choosing to use */ + object_ptr ACC (RW, spell); /* Spell that was being cast */ + object_ptr ACC (RW, current_weapon); /* Pointer to the weapon currently used */ }; // these are being copied and also cleared @@ -240,7 +242,7 @@ static object *first; // will be replaced by "objects" static object *create (); - void free (bool free_inventory = false); + void destroy (bool destroy_inventory = false); static void free_mortals (); static bool can_merge (object *op1, object *op2); @@ -310,8 +312,8 @@ }; #define get_object() object::create () -#define free_object(op) (op)->free (0) -#define free_object2(op, free_inv) (op)->free (free_inv) +#define free_object(op) (op)->destroy (0) +#define free_object2(op, free_inv) (op)->destroy (free_inv) #define clear_owner(op) (op)->owner = 0 #define copy_owner(op,other) (op)->owner = (other)->owner #define get_owner(op) (op)->owner @@ -327,9 +329,8 @@ typedef struct oblnk { /* Used to link together several objects */ - object *ob; + object_ptr ob; struct oblnk *next; - tag_t id; } objectlink; typedef struct oblinkpt