1 #ifndef OSL_NUM_BITMAP_EFFECT_H 2 #define OSL_NUM_BITMAP_EFFECT_H 44 mask1&=mask_t::makeDirect(pl);
48 assert((pl==
BLACK && ret==playerEffect<BLACK>()) ||
49 (pl==
WHITE && ret==playerEffect<WHITE>()));
68 mask1&=mask_t::makeDirect(pl);
77 assert((pl==
BLACK && mask1==playerEffectMask<BLACK>()) ||
78 (pl==
WHITE && mask1==playerEffectMask<WHITE>()));
85 mask&=mask_t::makeDirect(0x3f);
86 return static_cast<int>(mask.value());
108 #if OSL_WORDSIZE == 64 109 return mask_t::makeDirect(0xff0000000000uLL);
110 #elif OSL_WORDSIZE == 32 111 return mask_t::makeDirect(0xff00u);
114 #if OSL_WORDSIZE == 64 115 static const int longToNumOffset=-8;
116 #elif OSL_WORDSIZE == 32 117 static const int longToNumOffset=32-8;
125 assert(32<=num && num<=39);
131 assert(32<=num && num<=39);
153 return selectLong<PTYPE>().
any();
155 template <Ptype PTYPE>
bool hasAny()
const 163 #endif // _NUM_BITMAP_EFFECT_H GeneralMask< mask_int_t > mask_t
static const mask_t longEffectMask()
static mask_t playerEffectMask()
void setMask(int index, mask_t val)
const mask_t selectLong() const
static NumBitmapEffect makeLongEffect(Player pl, int num)
static NumBitmapEffect playerEffect(Player pl)
static const mask_t makeLongMask(int num)
NumBitmapEffect & opEqual(NumBitmapEffect const &rhs)
const mask_t selectLong() const
static int numToOffset(int num)
void orMask(int index, mask_t val)
static const mask_t numToMask(int num)
int countEffect(Player pl) const
static NumBitmapEffect playerEffect()
const mask_t getMask() const
unpromote(PTYPE) の駒のbit を*含む*mask_tを取り出す
static NumBitmapEffect makeEffect(int num)
static mask_t playerEffectMask(Player pl)
static NumBitmapEffect makeLongEffect(int num)