… | |
… | |
1494 | /* this function inserts an object in the map, but if it |
1494 | /* this function inserts an object in the map, but if it |
1495 | * finds an object of its own type, it'll remove that one first. |
1495 | * finds an object of its own type, it'll remove that one first. |
1496 | * op is the object to insert it under: supplies x and the map. |
1496 | * op is the object to insert it under: supplies x and the map. |
1497 | */ |
1497 | */ |
1498 | void |
1498 | void |
1499 | replace_insert_ob_in_map (const char *arch_string, object *op) |
1499 | replace_insert_ob_in_map (shstr_tmp archname, object *op) |
1500 | { |
1500 | { |
1501 | /* first search for itself and remove any old instances */ |
1501 | /* first search for itself and remove any old instances */ |
1502 | |
1502 | |
1503 | for (object *tmp = op->ms ().bot; tmp; tmp = tmp->above) |
1503 | for (object *tmp = op->ms ().bot; tmp; tmp = tmp->above) |
1504 | if (!strcmp (tmp->arch->archname, arch_string)) /* same archetype */ |
1504 | if (tmp->arch->archname == archname) /* same archetype */ |
1505 | tmp->destroy (); |
1505 | tmp->destroy (); |
1506 | |
1506 | |
1507 | object *tmp = arch_to_object (archetype::find (arch_string)); |
1507 | object *tmp = arch_to_object (archetype::find (archname)); |
1508 | |
1508 | |
1509 | tmp->x = op->x; |
1509 | tmp->x = op->x; |
1510 | tmp->y = op->y; |
1510 | tmp->y = op->y; |
1511 | |
1511 | |
1512 | insert_ob_in_map (tmp, op->map, op, 0); |
1512 | insert_ob_in_map (tmp, op->map, op, 0); |