… | |
… | |
103 | case MOOD_FLOOR: |
103 | case MOOD_FLOOR: |
104 | do_mood_floor (tmp, source); |
104 | do_mood_floor (tmp, source); |
105 | break; |
105 | break; |
106 | |
106 | |
107 | case TIMED_GATE: |
107 | case TIMED_GATE: |
108 | tmp->set_speed (tmp->arch->clone.speed); |
108 | tmp->set_speed (tmp->arch->speed); |
109 | tmp->value = tmp->arch->clone.value; |
109 | tmp->value = tmp->arch->value; |
110 | tmp->stats.sp = 1; |
110 | tmp->stats.sp = 1; |
111 | tmp->stats.hp = tmp->stats.maxhp; |
111 | tmp->stats.hp = tmp->stats.maxhp; |
112 | /* Handle multipart gates. We copy the value for the other parts |
112 | /* Handle multipart gates. We copy the value for the other parts |
113 | * from the head - this ensures that the data will consistent |
113 | * from the head - this ensures that the data will consistent |
114 | */ |
114 | */ |
… | |
… | |
316 | int |
316 | int |
317 | check_altar_sacrifice (const object *altar, const object *sacrifice) |
317 | check_altar_sacrifice (const object *altar, const object *sacrifice) |
318 | { |
318 | { |
319 | if (!QUERY_FLAG (sacrifice, FLAG_ALIVE) && !QUERY_FLAG (sacrifice, FLAG_IS_LINKED) && sacrifice->type != PLAYER) |
319 | if (!QUERY_FLAG (sacrifice, FLAG_ALIVE) && !QUERY_FLAG (sacrifice, FLAG_IS_LINKED) && sacrifice->type != PLAYER) |
320 | { |
320 | { |
321 | if ((ARCH_SACRIFICE (altar) == sacrifice->arch->name || |
321 | if ((ARCH_SACRIFICE (altar) == sacrifice->arch->archname |
322 | ARCH_SACRIFICE (altar) == sacrifice->name || |
322 | || ARCH_SACRIFICE (altar) == sacrifice->name |
323 | ARCH_SACRIFICE (altar) == sacrifice->slaying || |
323 | || ARCH_SACRIFICE (altar) == sacrifice->slaying |
324 | (!strcmp (ARCH_SACRIFICE (altar), query_base_name (sacrifice, 0)))) |
324 | || (!strcmp (ARCH_SACRIFICE (altar), query_base_name (sacrifice, 0)))) |
325 | && NROF_SACRIFICE (altar) <= (sacrifice->nrof ? sacrifice->nrof : 1)) |
325 | && NROF_SACRIFICE (altar) <= (sacrifice->nrof ? sacrifice->nrof : 1)) |
326 | return 1; |
326 | return 1; |
327 | |
327 | |
328 | if (strcmp (ARCH_SACRIFICE (altar), "money") == 0 |
328 | if (strcmp (ARCH_SACRIFICE (altar), "money") == 0 |
329 | && sacrifice->type == MONEY && sacrifice->nrof * sacrifice->value >= NROF_SACRIFICE (altar)) |
329 | && sacrifice->type == MONEY && sacrifice->nrof * sacrifice->value >= NROF_SACRIFICE (altar)) |
… | |
… | |
820 | object *tmp, *ret = NULL; |
820 | object *tmp, *ret = NULL; |
821 | |
821 | |
822 | /* First check the object itself. */ |
822 | /* First check the object itself. */ |
823 | if ((trig->stats.hp && (op->type == trig->stats.hp)) |
823 | if ((trig->stats.hp && (op->type == trig->stats.hp)) |
824 | || (trig->slaying && (op->slaying == trig->slaying)) |
824 | || (trig->slaying && (op->slaying == trig->slaying)) |
825 | || (trig->race && (op->arch->name == trig->race))) |
825 | || (trig->race && (op->arch->archname == trig->race))) |
826 | return op; |
826 | return op; |
827 | |
827 | |
828 | for (tmp = op->inv; tmp; tmp = tmp->below) |
828 | for (tmp = op->inv; tmp; tmp = tmp->below) |
829 | { |
829 | { |
830 | if (tmp->inv) |
830 | if (tmp->inv) |
… | |
… | |
833 | if (ret) |
833 | if (ret) |
834 | return ret; |
834 | return ret; |
835 | } |
835 | } |
836 | else if ((trig->stats.hp && (tmp->type == trig->stats.hp)) |
836 | else if ((trig->stats.hp && (tmp->type == trig->stats.hp)) |
837 | || (trig->slaying && (tmp->slaying == trig->slaying)) |
837 | || (trig->slaying && (tmp->slaying == trig->slaying)) |
838 | || (trig->race && (tmp->arch->name == trig->race))) |
838 | || (trig->race && (tmp->arch->archname == trig->race))) |
839 | return tmp; |
839 | return tmp; |
840 | } |
840 | } |
841 | return NULL; |
841 | return NULL; |
842 | } |
842 | } |
843 | |
843 | |