Merge branch 'NetHack-3.6.2'

This commit is contained in:
nhmall
2019-02-19 07:48:19 -05:00
14 changed files with 76 additions and 77 deletions

View File

@@ -1,4 +1,4 @@
/* NetHack 3.6 mondata.c $NHDT-Date: 1546465283 2019/01/02 21:41:23 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.70 $ */
/* NetHack 3.6 mondata.c $NHDT-Date: 1550525093 2019/02/18 21:24:53 $ $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.72 $ */
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
/*-Copyright (c) Robert Patrick Rankin, 2011. */
/* NetHack may be freely redistributed. See license for details. */
@@ -10,30 +10,30 @@
/* set up an individual monster's base type (initial creation, shapechange) */
void
set_mon_data(mon, ptr, flag)
set_mon_data(mon, ptr)
struct monst *mon;
struct permonst *ptr;
int flag;
{
int new_speed, old_speed = mon->data ? mon->data->mmove : 0;
mon->data = ptr;
mon->mnum = (short) monsndx(ptr);
if (flag == -1)
return; /* "don't care" */
if (flag == 1)
mon->mintrinsics |= (ptr->mresists & 0x00FF);
else
mon->mintrinsics = (ptr->mresists & 0x00FF);
if (mon->movement) { /* same adjustment as poly'd hero undergoes */
if (mon->movement) { /* used to adjust poly'd hero as well as monsters */
new_speed = ptr->mmove;
/* prorate unused movement if new form is slower so that
it doesn't get extra moves leftover from previous form;
if new form is faster, leave unused movement as is */
if (new_speed < old_speed)
mon->movement = new_speed * mon->movement / old_speed;
if (new_speed < old_speed) {
/*
* Some static analysis warns that this might divide by 0
mon->movement = new_speed * mon->movement / old_speed;
* so add a redundant test to suppress that.
*/
mon->movement *= new_speed;
if (old_speed > 0) /* old > new and new >= 0, so always True */
mon->movement /= old_speed;
}
}
return;
}