version 1.72 | | version 1.73 |
---|
| | |
/* | | /* |
* static char *rcsid_c_wiz_c = | | * static char *rcsid_c_wiz_c = |
* "$Id: c_wiz.c,v 1.72 2005/10/18 16:54:31 gros Exp $"; | | * "$Id: c_wiz.c,v 1.73 2005/10/31 18:44:02 ryo_saeba Exp $"; |
*/ | | */ |
| | |
/* | | /* |
| | |
} | | } |
prev=dup; | | prev=dup; |
} | | } |
if (QUERY_FLAG(head, FLAG_ALIVE)) | | if (QUERY_FLAG(head, FLAG_ALIVE)) { |
| | object* check = head; |
| | int size_x = 0; |
| | int size_y = 0; |
| | while (check) |
| | { |
| | size_x = max(size_x, check->arch->clone.x); |
| | size_y = max(size_y, check->arch->clone.y); |
| | check = check->more; |
| | } |
| | if (out_of_map(op->map,head->x + size_x, head->y + size_y)) |
| | { |
| | if ((head->x < size_x) || (head->y < size_y)) |
| | { |
| | dm_stack_pop(op->contr); |
| | free_object(head); |
| | new_draw_info(NDI_UNIQUE, 0, op,"Object too big to insert in map, or wrong position."); |
| | free_object(tmp); |
| | return 1; |
| | } |
| | check = head; |
| | while ( check ) |
| | { |
| | check->x -= size_x; |
| | check->y -= size_y; |
| | check = check->more; |
| | } |
| | } |
insert_ob_in_map(head, op->map, op, 0); | | insert_ob_in_map(head, op->map, op, 0); |
| | } |
else | | else |
head = insert_ob_in_ob(head, op); | | head = insert_ob_in_ob(head, op); |
| | |
| | |
new_draw_info(NDI_UNIQUE, 0,op,"Remove what object (nr)?"); | | new_draw_info(NDI_UNIQUE, 0,op,"Remove what object (nr)?"); |
return 1; | | return 1; |
} | | } |
| | if (tmp->type == PLAYER) { |
| | new_draw_info(NDI_UNIQUE, 0,op,"Unable to remove a player!"); |
| | return 1; |
| | } |
if (QUERY_FLAG(tmp, FLAG_REMOVED)) { | | if (QUERY_FLAG(tmp, FLAG_REMOVED)) { |
new_draw_info_format(NDI_UNIQUE, 0,op,"%s is already removed!", | | new_draw_info_format(NDI_UNIQUE, 0,op,"%s is already removed!", |
query_name(tmp)); | | query_name(tmp)); |