MCPcopy Create free account
hub / github.com/NetHack/NetHack / maybewakesteed

Function maybewakesteed

src/steed.c:826–848  ·  view source on GitHub ↗

when attempting to saddle or mount a sleeping steed, try to wake it up (for the saddling case, it won't be u.usteed yet) */

Source from the content-addressed store, hash-verified

824/* when attempting to saddle or mount a sleeping steed, try to wake it up
825 (for the saddling case, it won't be u.usteed yet) */
826staticfn void
827maybewakesteed(struct monst *steed)
828{
829 int frozen = (int) steed->mfrozen;
830 boolean wasimmobile = helpless(steed);
831
832 steed->msleeping = 0;
833 if (frozen) {
834 frozen = (frozen + 1) / 2; /* half */
835 /* might break out of timed sleep or paralysis */
836 if (!rn2(frozen)) {
837 steed->mfrozen = 0;
838 steed->mcanmove = 1;
839 } else {
840 /* didn't awake, but remaining duration is halved */
841 steed->mfrozen = frozen;
842 }
843 }
844 if (wasimmobile && !helpless(steed))
845 pline("%s wakes up.", Monnam(steed));
846 /* regardless of waking, terminate any meal in progress */
847 finish_meating(steed);
848}
849
850/* steed has taken on a new shape */
851void

Callers 2

use_saddleFunction · 0.85
mount_steedFunction · 0.85

Calls 4

rn2Function · 0.85
MonnamFunction · 0.85
finish_meatingFunction · 0.85
plineFunction · 0.70

Tested by

no test coverage detected