There actually was some provision for combined promotion and burning; when the 512 bit of the promotion code was set it indicated burning, but then the 256 bit would indicate whether the 8 low-order bits were indicating a promotion piece, or selective burning on 8 neighbor squares. There was no way to specify this through morph or capture matrix, though. A morph specification would always overrule the capture matrix.
I now made it such that when the capture matrix specifies a burn (for the moving piece, not the promoted one), and the morph a promotion, the combined promotion-burn code is used.
There actually was some provision for combined promotion and burning; when the 512 bit of the promotion code was set it indicated burning, but then the 256 bit would indicate whether the 8 low-order bits were indicating a promotion piece, or selective burning on 8 neighbor squares. There was no way to specify this through morph or capture matrix, though. A morph specification would always overrule the capture matrix.
I now made it such that when the capture matrix specifies a burn (for the moving piece, not the promoted one), and the morph a promotion, the combined promotion-burn code is used.