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.
185 KiB
185 KiB