… | |
… | |
84 | break; |
84 | break; |
85 | |
85 | |
86 | case SIGN: |
86 | case SIGN: |
87 | if (!tmp->stats.food || tmp->last_eat < tmp->stats.food) |
87 | if (!tmp->stats.food || tmp->last_eat < tmp->stats.food) |
88 | { |
88 | { |
89 | tmp->play_sound (tmp->sound ? tmp->sound : sound_find ("trigger_sign")); |
89 | tmp->play_sound (tmp->sound ? tmp->sound : sound_find ("msg_voice")); |
|
|
90 | |
|
|
91 | if (originator && originator->contr) |
|
|
92 | originator->contr->infobox (MSG_CHANNEL ("examine"), format ("T<%s>\n\n%s", &tmp->name, &tmp->msg)); |
|
|
93 | |
90 | new_info_map (NDI_UNIQUE | NDI_NAVY, tmp->map, tmp->msg); |
94 | new_info_map_except (NDI_UNIQUE | NDI_NAVY, tmp->map, originator, tmp->msg); |
|
|
95 | |
91 | if (tmp->stats.food) |
96 | if (tmp->stats.food) |
92 | tmp->last_eat++; |
97 | tmp->last_eat++; |
93 | } |
98 | } |
94 | break; |
99 | break; |
95 | |
100 | |
… | |
… | |
271 | } |
276 | } |
272 | } |
277 | } |
273 | |
278 | |
274 | any_down = any_down || tmp->value; |
279 | any_down = any_down || tmp->value; |
275 | } |
280 | } |
|
|
281 | else if (tmp->type == T_MATCH) |
|
|
282 | { |
|
|
283 | tmp->value = 0; |
|
|
284 | |
|
|
285 | for (object *ab = tmp->above; ab; ab = ab->above) |
|
|
286 | { |
|
|
287 | object *head = ab->head_ (); |
|
|
288 | |
|
|
289 | /* Same note regarding move_type for buttons above apply here. */ |
|
|
290 | if (((ab->move_type & tmp->move_on) || ab->move_type == 0)) |
|
|
291 | if (match (tmp->slaying, head, tmp, originator)) |
|
|
292 | { |
|
|
293 | tmp->value = 1; |
|
|
294 | break; |
|
|
295 | } |
|
|
296 | } |
|
|
297 | |
|
|
298 | any_down = any_down || tmp->value; |
|
|
299 | } |
276 | } |
300 | } |
277 | |
301 | |
278 | if (any_down) /* If any other buttons were down, force this to remain down */ |
302 | if (any_down) /* If any other buttons were down, force this to remain down */ |
279 | op->value = 1; |
303 | op->value = 1; |
280 | |
304 | |
… | |
… | |
400 | new_info_map (NDI_BLACK, altar->map, altar->msg); |
424 | new_info_map (NDI_BLACK, altar->map, altar->msg); |
401 | |
425 | |
402 | return 1; |
426 | return 1; |
403 | } |
427 | } |
404 | |
428 | |
405 | void |
429 | static void |
406 | trigger_move (object *op, int state, object *originator) /* 1 down and 0 up */ |
430 | trigger_move (object *op, int state, object *originator) /* 1 down and 0 up */ |
407 | { |
431 | { |
408 | op->stats.wc = state; |
432 | op->stats.wc = state; |
409 | |
433 | |
410 | if (state) |
434 | if (state) |