--- deliantra/server/include/object.h 2006/09/14 17:10:25 1.36 +++ deliantra/server/include/object.h 2006/09/14 21:16:12 1.38 @@ -232,6 +232,13 @@ struct object : zero_initialised, object_keep, object_copy, object_pod { + typedef unordered_vector vector; + + static vector mortals; + static vector active; // active objects, not yet used + static vector objects; // not used yet, use first->next->... + static object *first; // will be replaced by "objects" + static object *create (); void free (bool free_inventory = false); @@ -345,15 +352,17 @@ archetype (); ~archetype (); - shstr ACC (RW, name); /* More definite name, like "generate_kobold" */ - struct archetype *ACC (RW, next); /* Next archetype in a linked list */ - struct archetype *ACC (RW, head); /* The main part of a linked object */ - struct archetype *ACC (RW, more); /* Next part of a linked object */ - object ACC (RO, clone); /* An object from which to do copy_object() */ - uint32 ACC (RW, editable); /* editable flags (mainly for editor) */ - sint8 ACC (RW, tail_x), ACC (RW, tail_y); /* Where the lower right most portion of the object is - * in comparison to the head. - */ + static archetype *find (const char *arch); + + shstr ACC (RW, name); /* More definite name, like "generate_kobold" */ + struct archetype *ACC (RW, next); /* Next archetype in a linked list */ + struct archetype *ACC (RW, head); /* The main part of a linked object */ + struct archetype *ACC (RW, more); /* Next part of a linked object */ + object ACC (RO, clone); /* An object from which to do copy_object() */ + uint32 ACC (RW, editable); /* editable flags (mainly for editor) */ + sint8 ACC (RW, tail_x), ACC (RW, tail_y); /* Where the lower right most portion of the object is + * in comparison to the head. + */ }; extern object *objects;