… | |
… | |
175 | i = find_first_free_spot (op, op->map, x, y); |
175 | i = find_first_free_spot (op, op->map, x, y); |
176 | |
176 | |
177 | if (i == -1) |
177 | if (i == -1) |
178 | return 0; /* No free spot */ |
178 | return 0; /* No free spot */ |
179 | |
179 | |
180 | if (op->head != NULL) |
|
|
181 | op = op->head; |
180 | op = op->head_ (); |
182 | op->remove (); |
181 | op->remove (); |
|
|
182 | |
183 | for (tmp = op; tmp != NULL; tmp = tmp->more) |
183 | for (object *tmp = op; tmp; tmp = tmp->more) |
|
|
184 | { |
184 | tmp->x = x + freearr_x[i] + (tmp->arch == NULL ? 0 : tmp->arch->x), |
185 | tmp->x = x + freearr_x[i] + (!tmp->arch ? 0 : tmp->arch->x); |
185 | tmp->y = y + freearr_y[i] + (tmp->arch == NULL ? 0 : tmp->arch->y); |
186 | tmp->y = y + freearr_y[i] + (!tmp->arch ? 0 : tmp->arch->y); |
|
|
187 | } |
186 | |
188 | |
187 | tmp = insert_ob_in_map (op, op->map, originator, 0); |
189 | op = insert_ob_in_map (op, op->map, originator, 0); |
188 | if (tmp) |
190 | |
189 | return 0; |
191 | return !op; |
190 | else |
|
|
191 | return 1; |
|
|
192 | } |
192 | } |
193 | |
193 | |
194 | /* |
194 | /* |
195 | * Return value: 1 if object was destroyed, 0 otherwise. |
195 | * Return value: 1 if object was destroyed, 0 otherwise. |
196 | * Modified so that instead of passing the 'originator' that had no |
196 | * Modified so that instead of passing the 'originator' that had no |