wishing for quest guardian corpse
wishing for quest guardian corpse now gives a generic corpse of the species
This commit is contained in:
@@ -132,6 +132,7 @@ if you couldn't see the rat created in a sink for some reason other than
|
|||||||
digging a pit while stuck in the floor should always free the player
|
digging a pit while stuck in the floor should always free the player
|
||||||
quest guardians can no longer be created via stone-to-flesh on their statue
|
quest guardians can no longer be created via stone-to-flesh on their statue
|
||||||
stone-to-flesh no longer silently ignored by a statue of a unique monster
|
stone-to-flesh no longer silently ignored by a statue of a unique monster
|
||||||
|
wishing for quest guardian corpse now gives a generic corpse of the species
|
||||||
|
|
||||||
|
|
||||||
Platform- and/or Interface-Specific Fixes
|
Platform- and/or Interface-Specific Fixes
|
||||||
|
|||||||
@@ -1098,6 +1098,7 @@ E struct mkroom *FDECL(search_special, (SCHAR_P));
|
|||||||
/* ### mon.c ### */
|
/* ### mon.c ### */
|
||||||
|
|
||||||
E int FDECL(undead_to_corpse, (int));
|
E int FDECL(undead_to_corpse, (int));
|
||||||
|
E int FDECL(genus, (int));
|
||||||
E int FDECL(pm_to_cham, (int));
|
E int FDECL(pm_to_cham, (int));
|
||||||
E int FDECL(minliquid, (struct monst *));
|
E int FDECL(minliquid, (struct monst *));
|
||||||
E int NDECL(movemon);
|
E int NDECL(movemon);
|
||||||
|
|||||||
40
src/mon.c
40
src/mon.c
@@ -84,6 +84,46 @@ int mndx;
|
|||||||
return mndx;
|
return mndx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Convert the monster index of some monsters (such as quest guardians)
|
||||||
|
* to their generic species type.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
genus(mndx)
|
||||||
|
int mndx;
|
||||||
|
{
|
||||||
|
switch (mndx) {
|
||||||
|
/* Quest guardians */
|
||||||
|
case PM_STUDENT:
|
||||||
|
case PM_CHIEFTAIN:
|
||||||
|
case PM_NEANDERTHAL:
|
||||||
|
case PM_ATTENDANT:
|
||||||
|
case PM_PAGE:
|
||||||
|
case PM_ABBOT:
|
||||||
|
case PM_ACOLYTE:
|
||||||
|
case PM_HUNTER:
|
||||||
|
case PM_THUG:
|
||||||
|
case PM_ROSHI:
|
||||||
|
#ifdef TOURIST
|
||||||
|
case PM_GUIDE:
|
||||||
|
#endif
|
||||||
|
case PM_WARRIOR:
|
||||||
|
case PM_APPRENTICE:
|
||||||
|
mndx = PM_HUMAN;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (mndx >= LOW_PM && mndx < NUMMONS) {
|
||||||
|
struct permonst *ptr = &mons[mndx];
|
||||||
|
if (is_human(ptr)) mndx = PM_HUMAN;
|
||||||
|
else if (is_elf(ptr)) mndx = PM_ELF;
|
||||||
|
else if (is_dwarf(ptr)) mndx = PM_DWARF;
|
||||||
|
else if (is_gnome(ptr)) mndx = PM_GNOME;
|
||||||
|
else if (is_orc(ptr)) mndx = PM_ORC;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return mndx;
|
||||||
|
}
|
||||||
|
|
||||||
/* convert monster index to chameleon index */
|
/* convert monster index to chameleon index */
|
||||||
int
|
int
|
||||||
pm_to_cham(mndx)
|
pm_to_cham(mndx)
|
||||||
|
|||||||
@@ -2559,7 +2559,10 @@ typfnd:
|
|||||||
/* beware of random troll or lizard corpse,
|
/* beware of random troll or lizard corpse,
|
||||||
or of ordinary one being forced to such */
|
or of ordinary one being forced to such */
|
||||||
if (otmp->timed) obj_stop_timers(otmp);
|
if (otmp->timed) obj_stop_timers(otmp);
|
||||||
otmp->corpsenm = mntmp;
|
if (mons[mntmp].msound == MS_GUARDIAN)
|
||||||
|
otmp->corpsenm = genus(mntmp);
|
||||||
|
else
|
||||||
|
otmp->corpsenm = mntmp;
|
||||||
start_corpse_timeout(otmp);
|
start_corpse_timeout(otmp);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user