fixed a few places where unblock_point wasn't called but should have been
cloned monsters should have the same name and tameness as the original
you should stop eating (etc.) if a monster attacks you and misses
+half physical damage should apply to gas spores
Platform- and/or Interface-Specific Fixes
STATIC_DCL void FDECL(kill_eggs, (struct obj *));
#endif
+#ifdef REINCARNATION
+#define LEVEL_SPECIFIC_NOCORPSE(mdat) \
+ (Is_rogue_level(&u.uz) || \
+ (level.flags.graveyard && is_undead(mdat) && rn2(3)))
+#else
+#define LEVEL_SPECIFIC_NOCORPSE(mdat) \
+ (level.flags.graveyard && is_undead(mdat) && rn2(3))
+#endif
+
#if 0
/* part of the original warning code which was replaced in 3.3.1 */
else if(mdat->mattk[i].damd)
tmp = d((int)mdat->mlevel+1, (int)mdat->mattk[i].damd);
else tmp = 0;
+ if (Half_physical_damage) tmp = (tmp+1) / 2;
if (swallowed && magr) {
if (magr == &youmonst) {
There("is an explosion in your %s!",
/* must duplicate this below check in xkilled() since it results in
* creating no objects as well as no corpse
*/
- if (
-#ifdef REINCARNATION
- Is_rogue_level(&u.uz) ||
-#endif
- (level.flags.graveyard && is_undead(mdat) && rn2(3)))
+ if (LEVEL_SPECIFIC_NOCORPSE(mdat))
return FALSE;
if (bigmonst(mdat) || mdat == &mons[PM_LIZARD]
goto cleanup;
}
- if((dest & 2)
-#ifdef REINCARNATION
- || Is_rogue_level(&u.uz)
-#endif
- || (level.flags.graveyard && is_undead(mdat) && rn2(3)))
+ if((dest & 2) || LEVEL_SPECIFIC_NOCORPSE(mdat))
goto cleanup;
#ifdef MAIL