#define CASE_STRAIT_BOARD( first, last, match ) \ case straitBoard_##first##_##last: \ if ( hero.getLCard().getValueNum() == static_cast< uint32_t >( Card::valCard::_##match ) || \ hero.getRCard().getValueNum() == static_cast< uint32_t >( Card::valCard::_##match ) ) \ hsHeroIsBlockHighest = true; \ break; CASE_STRAIT_BOARD( 3, 5, 6 ) CASE_STRAIT_BOARD( 4, 6, 7 ) CASE_STRAIT_BOARD( 5, 7, 8 ) CASE_STRAIT_BOARD( 6, 8, 9 ) CASE_STRAIT_BOARD( 7, 9, T ) CASE_STRAIT_BOARD( 8, T, J ) CASE_STRAIT_BOARD( 9, J, Q ) CASE_STRAIT_BOARD( T, Q, K ) CASE_STRAIT_BOARD( 2, 5, 6 ) CASE_STRAIT_BOARD( 3, 6, 7 ) CASE_STRAIT_BOARD( 4, 7, 8 ) CASE_STRAIT_BOARD( 5, 8, 9 ) CASE_STRAIT_BOARD( 6, 9, T ) CASE_STRAIT_BOARD( 7, T, J ) CASE_STRAIT_BOARD( 8, J, Q ) CASE_STRAIT_BOARD( 9, Q, K ) CASE_STRAIT_BOARD( T, K, A )