being hit by a big monster and getting knockback effect could send hero out
of a shop (or into its "free spot") while carrying unpaid goods;
robbery wasn't noticed until hero eventually moved to a different spot
+hallucination of objects incorrectly included generic objects as candidates
+ for what objects looked like; if an object had its dknown flag set,
+ formatting a generic object in its place was unreliable (Null pointer
+ deference prior to static analyzer fix, odd fake name "generic" after)
curses: 'msg_window' option wasn't functional for curses unless the binary
also included tty support
* random_object()
*
* Respectively return a random monster or object.
+ * random_object() won't return STRANGE_OBJECT or the generic objects.
+ * -/+ MAXOCLASSES is used to skip it and them.
*/
-#define random_monster(rng) rng(NUMMONS)
-#define random_object(rng) (rng(NUM_OBJECTS - 1) + 1)
+#define random_monster(rng) ((*rng)(NUMMONS))
+#define random_object(rng) ((*rng)(NUM_OBJECTS - MAXOCLASSES) + MAXOCLASSES)
/*
* what_obj()
}
static void
-look_at_monster(char *buf,
- char *monbuf, /* buf: output, monbuf: optional output */
- struct monst *mtmp,
- coordxy x, coordxy y)
+look_at_monster(
+ char *buf,
+ char *monbuf, /* buf: output, monbuf: optional output */
+ struct monst *mtmp,
+ coordxy x, coordxy y)
{
char *name, monnambuf[BUFSZ], healthbuf[BUFSZ];
boolean accurate = !Hallucination;