Files
nethack/include/monsters.h
PatR 627b40fb57 redo monsters.h
Change MON(name, ...) to MON(NAM(name), ...) and get rid of MON3(),
replacing it with MON(NAMS(malename,femalename,neutername), ...).
That eliminates the macro which uses 16 parameters.  Standard C
allows compilers to impose a limit of 15, rejecting 16 or more while
still being in compliance.

That necessitated some reformatting since it made the first line of
each entry longer.  Shorten that by having all entries start with
name(s) and symbol on the first line, then LVL() and generation flags
on the second line, then attacks start on the third.

Reformat attacks to change ATTK(one) + 4 * NO_ATTK on one line plus
an orphaned NO_ATTK on the next line to always use ATTK(one) on first
line and all 5 NO_ATTKs on the next line.  Similarly, change ATTK(1of2)
ATTK(2of2) NO_ATTK on one line followed by 3 * NO_ATTK on the next line
into ATTK(1of2) ATTK(2of2) followed by 4 NO_ATTKS.  For three attacks,
list two on the first line then the third and 3 * NO_ATTK on the next.
Four or more attacks use a third line; ATTK(1of4+) ATTK(2of4+) on the
first, ATTK(3of4+) ATTK(4of4+) on the second, and whatever's left on
the third.  SIZ() follows on its own line for each of the cases.

Split the final line of each entry so that the difficulty value is the
first thing on that line, followed by color and enum tag.  This may or
may not make moving the difficulty into LVL() easier someday (which
would have been an alternate way to reduce the 16 args that MON3 had).

The file gets stretched out by many lines but entries should be easier
to read (matter of taste, I suppose).

I didn't attempt to clean up M1_foo, M2_bar, M3_quux; too hard....
I also didn't touch SIZ() or resistances which are less cluttered than
the other stuff.
2024-01-12 17:06:47 -08:00

185 KiB