| 3061 | } |
| 3062 | |
| 3063 | void |
| 3064 | invocation_message(void) |
| 3065 | { |
| 3066 | /* a special clue-msg when on the Invocation position */ |
| 3067 | if (invocation_pos(u.ux, u.uy) && !On_stairs(u.ux, u.uy)) { |
| 3068 | char buf[BUFSZ]; |
| 3069 | struct obj *otmp = carrying(CANDELABRUM_OF_INVOCATION); |
| 3070 | |
| 3071 | nomul(0); /* stop running or travelling */ |
| 3072 | if (u.usteed) |
| 3073 | Sprintf(buf, "beneath %s", y_monnam(u.usteed)); |
| 3074 | else if (Levitation || Flying) |
| 3075 | Strcpy(buf, "beneath you"); |
| 3076 | else |
| 3077 | Sprintf(buf, "under your %s", makeplural(body_part(FOOT))); |
| 3078 | |
| 3079 | You_feel("a strange vibration %s.", buf); |
| 3080 | u.uevent.uvibrated = 1; |
| 3081 | if (otmp && otmp->spe == 7 && otmp->lamplit) |
| 3082 | pline("%s %s!", The(xname(otmp)), |
| 3083 | Blind ? "throbs palpably" : "glows with a strange light"); |
| 3084 | } |
| 3085 | } |
| 3086 | |
| 3087 | /* for status: set up iflags.terrain_typ, an index into terrain_descrp[]; |
| 3088 | some types need fixing up */ |