… | |
… | |
69 | find_archetype_by_object_name (const char *name) |
69 | find_archetype_by_object_name (const char *name) |
70 | { |
70 | { |
71 | shstr_cmp name_cmp (name); |
71 | shstr_cmp name_cmp (name); |
72 | |
72 | |
73 | for_all_archetypes (at) |
73 | for_all_archetypes (at) |
74 | if (at->archname == name_cmp) |
74 | if (at->name == name_cmp) |
75 | return at; |
75 | return at; |
76 | |
76 | |
77 | return 0; |
77 | return 0; |
78 | } |
78 | } |
79 | |
79 | |
… | |
… | |
86 | find_archetype_by_object_type_name (int type, const char *name) |
86 | find_archetype_by_object_type_name (int type, const char *name) |
87 | { |
87 | { |
88 | shstr_cmp name_cmp (name); |
88 | shstr_cmp name_cmp (name); |
89 | |
89 | |
90 | for_all_archetypes (at) |
90 | for_all_archetypes (at) |
91 | if (at->archname == name_cmp && at->type == type) |
91 | if (at->name == name_cmp && at->type == type) |
92 | return at; |
92 | return at; |
93 | |
93 | |
94 | return 0; |
94 | return 0; |
95 | } |
95 | } |
96 | |
96 | |
… | |
… | |
443 | archetype *less = new_head; |
443 | archetype *less = new_head; |
444 | for (auto (p, parts.begin () + 1); p != parts.end (); ++p) |
444 | for (auto (p, parts.begin () + 1); p != parts.end (); ++p) |
445 | { |
445 | { |
446 | archetype *at = *p; |
446 | archetype *at = *p; |
447 | |
447 | |
|
|
448 | // some flags get inherited formt he head (probably a lot more) |
|
|
449 | // doing it here doesn't feel too cozy, but it allows code |
|
|
450 | // to ignore head checks for these flags, which saves time |
|
|
451 | at->flag [FLAG_ALIVE] = new_head->flag [FLAG_ALIVE]; |
|
|
452 | at->flag [FLAG_NO_PICK] = new_head->flag [FLAG_NO_PICK]; |
|
|
453 | at->flag [FLAG_MONSTER] = new_head->flag [FLAG_MONSTER]; |
|
|
454 | at->flag [FLAG_IS_FLOOR] = new_head->flag [FLAG_IS_FLOOR]; |
|
|
455 | |
448 | if (at->x < new_head->min_x) new_head->min_x = at->x; |
456 | if (at->x < new_head->min_x) new_head->min_x = at->x; |
449 | if (at->y < new_head->min_y) new_head->min_y = at->y; |
457 | if (at->y < new_head->min_y) new_head->min_y = at->y; |
450 | if (at->x > new_head->max_x) new_head->max_x = at->x; |
458 | if (at->x > new_head->max_x) new_head->max_x = at->x; |
451 | if (at->y > new_head->max_y) new_head->max_y = at->y; |
459 | if (at->y > new_head->max_y) new_head->max_y = at->y; |
452 | |
460 | |
… | |
… | |
520 | |
528 | |
521 | if (!strcmp (name, "bug")) |
529 | if (!strcmp (name, "bug")) |
522 | abort (); |
530 | abort (); |
523 | |
531 | |
524 | char buf[MAX_BUF]; |
532 | char buf[MAX_BUF]; |
525 | sprintf (buf, "bug, please report (%s)", ARCH_SINGULARITY, name); |
533 | sprintf (buf, "bug, please report (%s)", name); |
526 | |
534 | |
527 | object *op = get_archetype ("bug"); |
535 | object *op = get_archetype ("bug"); |
528 | op->name = op->name_pl = buf; |
536 | op->name = op->name_pl = buf; |
529 | |
537 | |
530 | return op; |
538 | return op; |