… | |
… | |
59 | object *tmp = ol->ob; |
59 | object *tmp = ol->ob; |
60 | |
60 | |
61 | /* if the criteria isn't appropriate, don't do anything */ |
61 | /* if the criteria isn't appropriate, don't do anything */ |
62 | if (state && !QUERY_FLAG (tmp, FLAG_ACTIVATE_ON_PUSH)) |
62 | if (state && !QUERY_FLAG (tmp, FLAG_ACTIVATE_ON_PUSH)) |
63 | continue; |
63 | continue; |
|
|
64 | |
64 | if (!state && !QUERY_FLAG (tmp, FLAG_ACTIVATE_ON_RELEASE)) |
65 | if (!state && !QUERY_FLAG (tmp, FLAG_ACTIVATE_ON_RELEASE)) |
65 | continue; |
66 | continue; |
66 | |
67 | |
67 | switch (tmp->type) |
68 | switch (tmp->type) |
68 | { |
69 | { |
… | |
… | |
78 | break; |
79 | break; |
79 | |
80 | |
80 | case SIGN: |
81 | case SIGN: |
81 | if (!tmp->stats.food || tmp->last_eat < tmp->stats.food) |
82 | if (!tmp->stats.food || tmp->last_eat < tmp->stats.food) |
82 | { |
83 | { |
|
|
84 | tmp->play_sound (tmp->sound); |
83 | new_info_map (NDI_UNIQUE | NDI_NAVY, tmp->map, tmp->msg); |
85 | new_info_map (NDI_UNIQUE | NDI_NAVY, tmp->map, tmp->msg); |
84 | if (tmp->stats.food) |
86 | if (tmp->stats.food) |
85 | tmp->last_eat++; |
87 | tmp->last_eat++; |
86 | } |
88 | } |
87 | break; |
89 | break; |
… | |
… | |
313 | */ |
315 | */ |
314 | |
316 | |
315 | int |
317 | int |
316 | check_altar_sacrifice (const object *altar, const object *sacrifice) |
318 | check_altar_sacrifice (const object *altar, const object *sacrifice) |
317 | { |
319 | { |
318 | if (!QUERY_FLAG (sacrifice, FLAG_ALIVE) && !QUERY_FLAG (sacrifice, FLAG_IS_LINKED) && sacrifice->type != PLAYER) |
320 | if (!QUERY_FLAG (sacrifice, FLAG_ALIVE) |
|
|
321 | && !QUERY_FLAG (sacrifice, FLAG_IS_LINKED) |
|
|
322 | && sacrifice->type != PLAYER) |
319 | { |
323 | { |
|
|
324 | if (strcmp (ARCH_SACRIFICE (altar), "money") == 0 |
|
|
325 | && sacrifice->type == MONEY |
|
|
326 | && sacrifice->nrof * sacrifice->value >= NROF_SACRIFICE (altar)) |
|
|
327 | return 1; |
|
|
328 | |
320 | if ((ARCH_SACRIFICE (altar) == sacrifice->arch->archname |
329 | if ((ARCH_SACRIFICE (altar) == sacrifice->arch->archname |
321 | || ARCH_SACRIFICE (altar) == sacrifice->name |
330 | || ARCH_SACRIFICE (altar) == sacrifice->name |
322 | || ARCH_SACRIFICE (altar) == sacrifice->slaying |
331 | || ARCH_SACRIFICE (altar) == sacrifice->slaying |
323 | || (!strcmp (ARCH_SACRIFICE (altar), query_base_name (sacrifice, 0)))) |
332 | || strstr (query_base_name (sacrifice, 0), ARCH_SACRIFICE (altar))) |
324 | && NROF_SACRIFICE (altar) <= (sacrifice->nrof ? sacrifice->nrof : 1)) |
333 | && NROF_SACRIFICE (altar) <= (sacrifice->nrof ? sacrifice->nrof : 1)) |
325 | return 1; |
|
|
326 | |
|
|
327 | if (strcmp (ARCH_SACRIFICE (altar), "money") == 0 |
|
|
328 | && sacrifice->type == MONEY && sacrifice->nrof * sacrifice->value >= NROF_SACRIFICE (altar)) |
|
|
329 | return 1; |
334 | return 1; |
330 | } |
335 | } |
331 | |
336 | |
332 | return 0; |
337 | return 0; |
333 | } |
338 | } |