24 archetype *at, *head = NULL, *last_more = NULL;
39 head = last_more = at;
47 if (last_more != NULL) {
Archetypes * m_archetypes
#define MAP_STYLE
Active objects shouldn't be put on active list.
struct archetype * arch
Pointer to archetype.
object * more
Pointer to the rest of a large body of objects.
All archetypes in the game.
int load_object_from_reader(BufferReader *reader, object *op, int map_flags, bool arch_init, bool artifact_init)
int16_t y
Position in the map for this object.
Global type definitions and header inclusions.
virtual void load(BufferReader *reader, const std::string &filename) override
Load assets from the specified reader.
ArchetypeLoader(Archetypes *archetypes, AssetsTracker *tracker)
archetype * head
The main part of a linked object.
int8_t tail_y
Where the lower right most portion of the object is in comparison to the head.
The archetype structure is a set of rules on how to generate and manipulate objects which point to ar...
sstring name
More definite name, like "generate_kobold".
Defines for loader.l / loader.c.
AssetsTracker * m_tracker
#define QUERY_FLAG(xyz, p)
object * head
Points to the main object of a large body.
Base class to be informed of where an asset is defined.
const Face * face
Face with colors.
float speed_left
How much speed is left to spend this round.
virtual void assetDefined(const archetype *asset, const std::string &filename)
Function called when an asset is defined in a file.
Object structure, the core of Crossfire.
archetype * get_archetype_struct(void)
Allocates, initialises and returns the pointer to an archetype structure.
#define FLAG_MONSTER
Will attack players.
object clone
An object from which to do object_copy()
T * define(const Key &name, T *asset)
Define an asset, erasing an existing one.