68 creator->stats.hp = -1;
72 if (creator->inv != NULL) {
77 ob_to_copy = creator->inv;
80 if (
rndm(0, i) == 0) {
89 if (creator->other_arch == NULL) {
90 LOG(
llevError,
"move_creator: Creator doesn't have other arch set: %s (%s, %d, %d)\n", creator->name ? creator->name :
"(null)", creator->map->path, creator->x, creator->y);
99 if (new_ob->arch->more &&
ob_blocked(new_ob, creator->map, creator->x, creator->y)) {
104 if (creator->level != 0)
105 new_ob->level = creator->level;
111 if (creator->slaying) {
static method_ret creator_type_trigger(ob_methods *context, object *op, object *cause, int state)
void init_type_creator(void)
int rndm(int min, int max)
void object_free_drop_inventory(object *ob)
object * object_insert_in_map_at(object *op, mapstruct *m, object *originator, int flag, int x, int y)
int ob_blocked(const object *ob, mapstruct *m, int16_t x, int16_t y)
static void move_creator(object *creator)
#define FLAG_IS_A_TEMPLATE
object * object_create_clone(object *asrc)
#define FREE_AND_CLEAR_STR(xyz)
#define QUERY_FLAG(xyz, p)
#define CLEAR_FLAG(xyz, p)
void fix_generated_item(object *op, object *creator, int difficulty, int max_magic, int flags)
void register_trigger(int ob_type, trigger_func method)
object * object_create_arch(archetype *at)
#define FREE_AND_COPY(sv, nv)
static method_ret creator_type_process(ob_methods *context, object *op)
void register_process(int ob_type, process_func method)
void object_unset_flag_inv(object *op, int flag)
void LOG(LogLevel logLevel, const char *format,...)
#define FOR_BELOW_PREPARE(op_, it_)
#define FOR_BELOW_FINISH()