… | |
… | |
349 | * objects on the same space that take the same sacrifice. |
349 | * objects on the same space that take the same sacrifice. |
350 | */ |
350 | */ |
351 | int |
351 | int |
352 | check_altar_sacrifice (object *altar, object *sacrifice, object *originator) |
352 | check_altar_sacrifice (object *altar, object *sacrifice, object *originator) |
353 | { |
353 | { |
354 | if (sacrifice->flag [FLAG_UNPAID]) |
354 | if (sacrifice->flag [FLAG_UNPAID] |
|
|
355 | || sacrifice->flag [FLAG_IS_LINKED] |
|
|
356 | || sacrifice->is_player ()) |
355 | return 0; |
357 | return 0; |
356 | |
358 | |
357 | if (is_match_expr (ARCH_SACRIFICE (altar))) |
359 | if (is_match_expr (ARCH_SACRIFICE (altar))) |
358 | return match (ARCH_SACRIFICE (altar), altar, originator); |
360 | return match (ARCH_SACRIFICE (altar), sacrifice, altar, originator); |
359 | |
361 | |
360 | if (!sacrifice->flag [FLAG_ALIVE] |
362 | if (!sacrifice->flag [FLAG_ALIVE]) |
361 | && !sacrifice->flag [FLAG_IS_LINKED] |
|
|
362 | && sacrifice->type != PLAYER) |
|
|
363 | { |
363 | { |
364 | if (ARCH_SACRIFICE (altar) == shstr_money |
364 | if (ARCH_SACRIFICE (altar) == shstr_money |
365 | && sacrifice->type == MONEY |
365 | && sacrifice->type == MONEY |
366 | && sacrifice->nrof * sacrifice->value >= NROF_SACRIFICE (altar)) |
366 | && sacrifice->nrof * sacrifice->value >= NROF_SACRIFICE (altar)) |
367 | return 1; |
367 | return 1; |