… | |
… | |
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 | |