include the PM_ index in mons (permonst)
This is useful for debugging and it allows the index
to be used directly instead of calculated in a
monsndx() function, which has been removed.
I left monsndx() in as a simple short-hand macro for the value
and didn't change the use cases, the reasoning being that this:
monsndx(mon->data)
is arguably a little easier on the eyes than:
mon->data->pmidx
LOW_PM, NON_PM, SPECIAL_PM have been included in the 'enum monnums'
now, instead of as individual macro definitions.
I chose to add the pmidx field as an instance of the enum declaration,
because that has very advantageous results in some debuggers, where it is
then shown as:
pmidx PM_GRAND_MASTER (349) monnums
instead of the less-informative:
pmidx 349 int
Adding the element count to the extern declaration for mons from:
'extern struct permonst *mons[];'
to the more specific declaration to that in src/monst.c:
'extern struct permonst *mons[NUMMONS + 1];'
then allows navigation through the mons array in one of the debuggers.
This commit is contained in:
@@ -1110,6 +1110,9 @@ timet_delta(time_t etim, time_t stim) /* end and start times */
|
||||
struct enum_dump monsdump[] = {
|
||||
#include "monsters.h"
|
||||
{ NUMMONS, "NUMMONS" },
|
||||
{ NON_PM, "NON_PM" },
|
||||
{ LOW_PM, "LOW_PM" },
|
||||
{ SPECIAL_PM, "SPECIAL_PM" }
|
||||
};
|
||||
struct enum_dump objdump[] = {
|
||||
#include "objects.h"
|
||||
@@ -1162,7 +1165,9 @@ dump_enums(void)
|
||||
for (i = 0; i < NUM_ENUM_DUMPS; ++ i) {
|
||||
raw_printf("enum %s = {", titles[i]);
|
||||
for (j = 0; j < szd[i]; ++j) {
|
||||
nmprefix = (j == szd[i] - 1) ? "" : pfx[i]; /* "" or "PM_" */
|
||||
int unprefixed_count = (i == monsters_enum) ? 4 : 1;
|
||||
nmprefix = (j >= szd[i] - unprefixed_count)
|
||||
? "" : pfx[i]; /* "" or "PM_" */
|
||||
nmwidth = 27 - (int) strlen(nmprefix); /* 27 or 24 */
|
||||
raw_printf(" %s%*s = %3d,",
|
||||
nmprefix, -nmwidth, ed[i][j].nm, ed[i][j].val);
|
||||
|
||||
Reference in New Issue
Block a user