MCPcopy Index your code
hub / github.com/NetHack/NetHack / stoned_dialogue

Function stoned_dialogue

src/timeout.c:136–185  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

134};
135
136staticfn void
137stoned_dialogue(void)
138{
139 long i = (Stoned & TIMEOUT);
140
141 if (i > 0L && i <= SIZE(stoned_texts)) {
142 char buf[BUFSZ];
143
144 Strcpy(buf, stoned_texts[SIZE(stoned_texts) - i]);
145 if (nolimbs(gy.youmonst.data) && strstri(buf, "limbs"))
146 (void) strsubst(buf, "limbs", "extremities");
147 urgent_pline("%s", buf);
148 }
149 switch ((int) i) {
150 case 5: /* slowing down */
151 HFast = 0L;
152 if (gm.multi > 0)
153 nomul(0);
154 break;
155 case 4: /* limbs stiffening */
156 /* just one move left to save oneself so quit fiddling around;
157 don't stop attempt to eat tin--might be lizard or acidic */
158 if (!Popeye(STONED))
159 stop_occupation();
160 if (gm.multi > 0)
161 nomul(0);
162 break;
163 case 3: /* limbs turned to stone */
164 stop_occupation();
165 nomul(-3); /* can't move anymore */
166 gm.multi_reason = "getting stoned";
167 gn.nomovemsg = You_can_move_again; /* not unconscious */
168 /* "your limbs have turned to stone" so terminate wounded legs */
169 if (Wounded_legs && !u.usteed)
170 heal_legs(2);
171 break;
172 case 2: /* turned to stone */
173 if ((HDeaf & TIMEOUT) > 0L && (HDeaf & TIMEOUT) < 5L)
174 set_itimeout(&HDeaf, 5L); /* avoid Hear_again at tail end */
175 /* if also vomiting or turning into slime, stop those (no messages) */
176 if (Vomiting)
177 make_vomiting(0L, FALSE);
178 if (Slimed)
179 make_slimed(0L, (char *) 0);
180 break;
181 default:
182 break;
183 }
184 exercise(A_DEX, FALSE);
185}
186
187/* hero is getting sicker and sicker prior to vomiting */
188static NEARDATA const char *const vomiting_texts[] = {

Callers 1

nh_timeoutFunction · 0.85

Calls 11

strstriFunction · 0.85
strsubstFunction · 0.85
urgent_plineFunction · 0.85
nomulFunction · 0.85
PopeyeFunction · 0.85
stop_occupationFunction · 0.85
heal_legsFunction · 0.85
set_itimeoutFunction · 0.85
make_vomitingFunction · 0.85
make_slimedFunction · 0.85
exerciseFunction · 0.85

Tested by

no test coverage detected