A bit ugly, but making the if(fulltile) at the bottom of SW_GaugePiece::draw_piece look like this fixes it:
Code:if(fulltile) overtile16(dest,tile+offs,dx,dy,cset,0); else { if( mtile + offs == 103368 ) // draw half-hearts that are empty on their right side, not left overtile8(dest, 103388, dx, dy, cset, 0); else overtile8(dest, mtile + offs, dx, dy, cset, 0); }