… | |
… | |
235 | if (op->value) |
235 | if (op->value) |
236 | { |
236 | { |
237 | if (--op->stats.wc <= 0) |
237 | if (--op->stats.wc <= 0) |
238 | { /* Reached bottom, let's stop */ |
238 | { /* Reached bottom, let's stop */ |
239 | op->stats.wc = 0; |
239 | op->stats.wc = 0; |
240 | if (op->arch->clone.speed) |
240 | if (op->arch->speed) |
241 | op->value = 0; |
241 | op->value = 0; |
242 | else |
242 | else |
243 | op->set_speed (0); |
243 | op->set_speed (0); |
244 | } |
244 | } |
245 | |
245 | |
… | |
… | |
271 | if (!QUERY_FLAG (tmp, FLAG_NO_PICK) || QUERY_FLAG (tmp, FLAG_CAN_ROLL) || QUERY_FLAG (tmp, FLAG_ALIVE)) |
271 | if (!QUERY_FLAG (tmp, FLAG_NO_PICK) || QUERY_FLAG (tmp, FLAG_CAN_ROLL) || QUERY_FLAG (tmp, FLAG_ALIVE)) |
272 | break; |
272 | break; |
273 | |
273 | |
274 | if (tmp == NULL) |
274 | if (tmp == NULL) |
275 | { |
275 | { |
276 | if (op->arch->clone.speed) |
276 | if (op->arch->speed) |
277 | op->value = 1; |
277 | op->value = 1; |
278 | else |
278 | else |
279 | op->set_speed (0); |
279 | op->set_speed (0); |
280 | |
280 | |
281 | return; |
281 | return; |
… | |
… | |
347 | op->stats.food = 1; |
347 | op->stats.food = 1; |
348 | } |
348 | } |
349 | else |
349 | else |
350 | { |
350 | { |
351 | op->move_block = MOVE_ALL; |
351 | op->move_block = MOVE_ALL; |
352 | if (!op->arch->clone.stats.ac) |
352 | if (!op->arch->stats.ac) |
353 | SET_FLAG (op, FLAG_BLOCKSVIEW); |
353 | SET_FLAG (op, FLAG_BLOCKSVIEW); |
354 | update_all_los (op->map, op->x, op->y); |
354 | update_all_los (op->map, op->x, op->y); |
355 | } |
355 | } |
356 | } /* gate is halfway up */ |
356 | } /* gate is halfway up */ |
357 | |
357 | |
… | |
… | |
598 | op->spellarg = NULL; |
598 | op->spellarg = NULL; |
599 | op->stats.sp = 0; |
599 | op->stats.sp = 0; |
600 | op->stats.hp = 0; |
600 | op->stats.hp = 0; |
601 | op->stats.grace = 0; |
601 | op->stats.grace = 0; |
602 | op->level = 0; |
602 | op->level = 0; |
603 | op->face = op->arch->clone.face; |
603 | op->face = op->arch->face; |
604 | op->owner = NULL; /* So that stopped arrows will be saved */ |
604 | op->owner = NULL; /* So that stopped arrows will be saved */ |
605 | update_object (op, UP_OBJ_CHANGE); |
605 | update_object (op, UP_OBJ_CHANGE); |
606 | return op; |
606 | return op; |
607 | } |
607 | } |
608 | |
608 | |
… | |
… | |
1015 | return; /* dm has created a firewall in his inventory */ |
1015 | return; /* dm has created a firewall in his inventory */ |
1016 | |
1016 | |
1017 | spell = op->inv; |
1017 | spell = op->inv; |
1018 | |
1018 | |
1019 | if (!spell || spell->type != SPELL) |
1019 | if (!spell || spell->type != SPELL) |
1020 | spell = &op->other_arch->clone; |
1020 | spell = op->other_arch; |
1021 | |
1021 | |
1022 | if (!spell) |
1022 | if (!spell) |
1023 | { |
1023 | { |
1024 | LOG (llevError, "move_firewall: no spell specified (%s, %s, %d, %d)\n", &op->name, &op->map->name, op->x, op->y); |
1024 | LOG (llevError, "move_firewall: no spell specified (%s, %s, %d, %d)\n", &op->name, &op->map->name, op->x, op->y); |
1025 | return; |
1025 | return; |