lower the code upkeep for mextra and oextra pointer additions

This commit is contained in:
nhmall
2020-07-31 09:42:17 -04:00
parent f153c1f0d1
commit 8b2750ab60
4 changed files with 25 additions and 15 deletions

View File

@@ -19,8 +19,8 @@
* file.
* 3. Add a referencing macro at bottom of this file after the mextra
* struct (see MNAME, EGD, EPRI, ESHK, EMIN, or EDOG for examples).
* 4. Zero out the pointer to your struct in newmextra() in
* src/makemon.c.
* 4. If your new field isn't a pointer and requires a special value
* on initialization, add code to init_mextra() in src/makemon.c
* 5. Create a newXX(mtmp) function and possibly a free_XX(mtmp)
* function in an appropriate new or existing source file and add
* a prototype for it to include/extern.h.

View File

@@ -389,8 +389,8 @@ struct obj {
* 4. Add a testing macro after the set of referencing macros
* (see has_oname(), has_omonst(), has_omailcmd(), and has_omin(),
* for examples).
* 5. Zero out the pointer to your struct in newoextra() in
* src/mkobj.c.
* 5. If your new field isn't a pointer and requires a special value
* on initialization, add code to init_oextra() in src/mkobj.c.
* 6. Create newXX(otmp) function and possibly free_XX(otmp) function
* in an appropriate new or existing source file and add a prototype
* for it to include/extern.h. The majority of these are currently

View File

@@ -1038,19 +1038,23 @@ int mndx;
}
}
static const struct mextra zeromextra = { DUMMY };
static void
init_mextra(mex)
struct mextra *mex;
{
*mex = zeromextra;
mex->mcorpsenm = NON_PM;
}
struct mextra *
newmextra()
{
struct mextra *mextra;
mextra = (struct mextra *) alloc(sizeof(struct mextra));
mextra->mname = 0;
mextra->egd = 0;
mextra->epri = 0;
mextra->eshk = 0;
mextra->emin = 0;
mextra->edog = 0;
mextra->mcorpsenm = NON_PM;
init_mextra(mextra);
return mextra;
}

View File

@@ -67,16 +67,22 @@ static const struct icp hellprobs[] = { { 20, WEAPON_CLASS },
{ 8, RING_CLASS },
{ 4, AMULET_CLASS } };
static const struct oextra zerooextra = { DUMMY };
static void
init_oextra(oex)
struct oextra *oex;
{
*oex = zerooextra;
}
struct oextra *
newoextra()
{
struct oextra *oextra;
oextra = (struct oextra *) alloc(sizeof (struct oextra));
oextra->oname = 0;
oextra->omonst = 0;
oextra->omailcmd = 0;
oextra->omid = 0;
init_oextra(oextra);
return oextra;
}