Foreword: Thank you for implementing support for MBF21!
How to reproduce the bossaction problem:
(Tested on Linux/powerpc and NetBSD/amd64)
Warp to Ultimate Doom Map E2M8 and kill the Cyberdemon.
With SVN r1667 the level ends (as expected).
With SVN r1678 the level does not end.
Looks like in A_Bosstype_Death() the bit MF3_E2M8_BOSS is not set in the new flags3 field.
With undefined MBF21 macro in "doomdef.h" it does not compile:
p_enemy.c: In function 'FastMonster_OnChange':
p_enemy.c:310:9: error: redeclaration of 'i' with no linkage
int i;
^
p_enemy.c:251:9: note: previous declaration of 'i' was here
int i;
^
and
dehacked.c: In function 'fix_action_parm':
dehacked.c:1204:5: error: 'sep' undeclared (first use in this function)
sep->args_set = 0xFF; // done with defaulting
Patched in SVN 1679.
Removed extra int i:
The copy of mobjinfo->flags3 to the spawned mobj was missing.
The DSDA-Doom reference did not have a flags3, as they had just expanded flags2 to 64 bits instead.
There may be more bugs like this due to implementing it in a significantly different environment.
I have not done much for test playing it yet.
The fix for the sep in fix_action_parm is in next commit. That line gets moved up into the if brackets.