… | |
… | |
325 | * also have to catch is if this object is not using the normal name for |
325 | * also have to catch is if this object is not using the normal name for |
326 | * the object. In that case, we also want to use the loaded name. |
326 | * the object. In that case, we also want to use the loaded name. |
327 | * Otherwise, what happens is that the the plural name will lose |
327 | * Otherwise, what happens is that the the plural name will lose |
328 | * information (appear as just 'hearts' and not 'goblins heart') |
328 | * information (appear as just 'hearts' and not 'goblins heart') |
329 | */ |
329 | */ |
330 | if (arch && name != arch->clone.name && name_pl == arch->clone.name_pl) |
330 | if (arch && name != arch->object::name && name_pl == arch->object::name_pl) |
331 | name_pl = 0; |
331 | name_pl = 0; |
332 | |
332 | |
333 | if (!name_pl) |
333 | if (!name_pl) |
334 | name_pl = name; |
334 | name_pl = name; |
335 | |
335 | |
… | |
… | |
410 | { |
410 | { |
411 | object *tmp = get_archetype_by_object_name (slaying); |
411 | object *tmp = get_archetype_by_object_name (slaying); |
412 | insert_ob_in_ob (tmp, this); |
412 | insert_ob_in_ob (tmp, this); |
413 | randomitems = NULL; /* So another spell isn't created for this object */ |
413 | randomitems = NULL; /* So another spell isn't created for this object */ |
414 | /* without this, value is all screwed up */ |
414 | /* without this, value is all screwed up */ |
415 | value = arch->clone.value * inv->value; |
415 | value = arch->value * inv->value; |
416 | } |
416 | } |
417 | |
417 | |
418 | if (QUERY_FLAG (this, FLAG_MONSTER)) |
418 | if (QUERY_FLAG (this, FLAG_MONSTER)) |
419 | { |
419 | { |
420 | if (stats.hp > stats.maxhp) |
420 | if (stats.hp > stats.maxhp) |
… | |
… | |
1024 | f.next (); |
1024 | f.next (); |
1025 | |
1025 | |
1026 | object *op = object::create (); |
1026 | object *op = object::create (); |
1027 | |
1027 | |
1028 | op->map = map; |
1028 | op->map = map; |
1029 | arch->clone.copy_to (op); |
1029 | arch->copy_to (op); |
1030 | // copy_to activates, this should be fixed properly |
1030 | // copy_to activates, this should be fixed properly |
1031 | op->deactivate (); |
1031 | op->deactivate (); |
1032 | |
1032 | |
1033 | if (!op->parse_kv (f)) |
1033 | if (!op->parse_kv (f)) |
1034 | { |
1034 | { |
… | |
… | |
1418 | return true; |
1418 | return true; |
1419 | |
1419 | |
1420 | archetype *at = arch ? (archetype *)arch : empty_archetype; |
1420 | archetype *at = arch ? (archetype *)arch : empty_archetype; |
1421 | |
1421 | |
1422 | f.put (KW_arch, at->archname); |
1422 | f.put (KW_arch, at->archname); |
1423 | write_diff (f, this, &at->clone); |
1423 | write_diff (f, this, at); |
1424 | |
1424 | |
1425 | for (object *tmp = inv; tmp; tmp = tmp->below) |
1425 | for (object *tmp = inv; tmp; tmp = tmp->below) |
1426 | tmp->write (f); |
1426 | tmp->write (f); |
1427 | |
1427 | |
1428 | f.put (this); |
1428 | f.put (this); |