Indeed, when WeirdPromotion() is used to pieces that would also promote otherwise it involves more than just returning the desired promotion piece. The Diagram makes a special call to it (recognizable by promo = 1021) to inquire whether there might be promotion choice, and in the passive burning case this should be used to suppress the choice that maxPromote and promoZone would suggest. I don't think the current version does this entirely correct for Shogi promotions, though. I will have a look at it tomorrow.
Indeed, when WeirdPromotion() is used to pieces that would also promote otherwise it involves more than just returning the desired promotion piece. The Diagram makes a special call to it (recognizable by promo = 1021) to inquire whether there might be promotion choice, and in the passive burning case this should be used to suppress the choice that maxPromote and promoZone would suggest. I don't think the current version does this entirely correct for Shogi promotions, though. I will have a look at it tomorrow.