… | |
… | |
105 | struct object *ACC (RW, head); /* Points to the main object of a large body */ |
105 | struct object *ACC (RW, head); /* Points to the main object of a large body */ |
106 | struct mapstruct *ACC (RW, map); /* Pointer to the map in which this object is present */ |
106 | struct mapstruct *ACC (RW, map); /* Pointer to the map in which this object is present */ |
107 | }; |
107 | }; |
108 | |
108 | |
109 | // these are being copied |
109 | // these are being copied |
110 | struct object_copy:attachable<object> |
110 | struct object_copy : attachable<object> |
111 | { |
111 | { |
112 | /* These get an extra add_refcount(), after having been copied by memcpy(). |
112 | /* These get an extra add_refcount(), after having been copied by memcpy(). |
113 | * All fields beow this point are automatically copied by memcpy. If |
113 | * All fields beow this point are automatically copied by memcpy. If |
114 | * adding something that needs a refcount updated, make sure you modify |
114 | * adding something that needs a refcount updated, make sure you modify |
115 | * copy_object to do so. Everything below here also gets cleared |
115 | * copy_object to do so. Everything below here also gets cleared |
… | |
… | |
241 | |
241 | |
242 | struct object : zero_initialised, object_keep, object_copy, object_pod |
242 | struct object : zero_initialised, object_keep, object_copy, object_pod |
243 | { |
243 | { |
244 | static object *create (); |
244 | static object *create (); |
245 | void free (bool free_inventory = false); |
245 | void free (bool free_inventory = false); |
246 | void mortalise (); |
|
|
247 | |
246 | |
248 | static void free_mortals (); |
247 | static void free_mortals (); |
249 | static bool can_merge (object *op1, object *op2); |
248 | static bool can_merge (object *op1, object *op2); |
250 | |
249 | |
251 | void clear (); |
250 | void clear (); |
252 | void clone (object *destination); |
251 | void clone (object *destination); |
253 | |
252 | |
254 | protected: |
253 | protected: |
255 | friend struct archetype; |
254 | friend struct archetype; |
|
|
255 | |
|
|
256 | void link (); |
|
|
257 | void unlink (); |
256 | |
258 | |
257 | object (); |
259 | object (); |
258 | ~object (); |
260 | ~object (); |
259 | }; |
261 | }; |
260 | |
262 | |