diff --git a/include/mextra.h b/include/mextra.h index 293132450..f47010324 100644 --- a/include/mextra.h +++ b/include/mextra.h @@ -75,6 +75,7 @@ struct fakecorridor { }; struct egd { + unsigned parentmid; /* make clobber-detection possible */ int fcbeg, fcend; /* fcend: first unused pos */ int vroom; /* room number of the vault */ coordxy gdx, gdy; /* goal of guard's walk */ @@ -92,6 +93,7 @@ struct egd { ** formerly epri.h -- temple priest extension */ struct epri { + unsigned parentmid; /* make clobber-detection possible */ aligntyp shralign; /* alignment of priest's shrine */ schar shroom; /* index in rooms */ coord shrpos; /* position of shrine */ @@ -118,6 +120,7 @@ struct bill_x { }; struct eshk { + unsigned parentmid; /* make clobber-detection possible */ long robbed; /* amount stolen by most recent customer */ long credit; /* amount credited to customer */ long debit; /* amount of debt for using unpaid items */ @@ -145,6 +148,7 @@ struct eshk { ** formerly emin.h -- minion extension */ struct emin { + unsigned parentmid; /* make clobber-detection possible */ aligntyp min_align; /* alignment of minion */ boolean renegade; /* hostile co-aligned priest or Angel */ }; @@ -165,6 +169,7 @@ enum dogfood_types { }; struct edog { + unsigned parentmid; /* make clobber-detection possible */ long droptime; /* moment dog dropped object */ unsigned dropdist; /* dist of dropped obj from @ */ int apport; /* amount of training */ diff --git a/src/dog.c b/src/dog.c index 07336ef71..7c1fa5dd0 100644 --- a/src/dog.c +++ b/src/dog.c @@ -27,6 +27,7 @@ newedog(struct monst *mtmp) if (!EDOG(mtmp)) { EDOG(mtmp) = (struct edog *) alloc(sizeof(struct edog)); (void) memset((genericptr_t) EDOG(mtmp), 0, sizeof(struct edog)); + EDOG(mtmp)->parentmid = mtmp->m_id; } } diff --git a/src/minion.c b/src/minion.c index 77644e7a7..9de8bb233 100644 --- a/src/minion.c +++ b/src/minion.c @@ -21,6 +21,7 @@ newemin(struct monst *mtmp) if (!EMIN(mtmp)) { EMIN(mtmp) = (struct emin *) alloc(sizeof(struct emin)); (void) memset((genericptr_t) EMIN(mtmp), 0, sizeof(struct emin)); + EMIN(mtmp)->parentmid = mtmp->m_id; } } diff --git a/src/priest.c b/src/priest.c index 8308a96e6..10e83accc 100644 --- a/src/priest.c +++ b/src/priest.c @@ -20,6 +20,7 @@ newepri(struct monst *mtmp) if (!EPRI(mtmp)) { EPRI(mtmp) = (struct epri *) alloc(sizeof(struct epri)); (void) memset((genericptr_t) EPRI(mtmp), 0, sizeof(struct epri)); + EPRI(mtmp)->parentmid = mtmp->m_id; } } diff --git a/src/shknam.c b/src/shknam.c index 61016d56e..58a45ceea 100644 --- a/src/shknam.c +++ b/src/shknam.c @@ -561,6 +561,7 @@ neweshk(struct monst *mtmp) if (!ESHK(mtmp)) ESHK(mtmp) = (struct eshk *) alloc(sizeof(struct eshk)); (void) memset((genericptr_t) ESHK(mtmp), 0, sizeof(struct eshk)); + ESHK(mtmp)->parentmid = mtmp->m_id; ESHK(mtmp)->bill_p = (struct bill_x *) 0; } diff --git a/src/vault.c b/src/vault.c index 31002f65f..8bc79e6c7 100644 --- a/src/vault.c +++ b/src/vault.c @@ -27,6 +27,7 @@ newegd(struct monst *mtmp) if (!EGD(mtmp)) { EGD(mtmp) = (struct egd *) alloc(sizeof (struct egd)); (void) memset((genericptr_t) EGD(mtmp), 0, sizeof (struct egd)); + EGD(mtmp)->parentmid = mtmp->m_id; } }