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
const mask_t getMask() const
unpromote(PTYPE) の駒のbit を*含む*mask_tを取り出す
void setMask(int index, mask_t val)
void orMask(int index, mask_t val)
static const mask_t numToMask(int num)
static int numToOffset(int num)
int countEffect(Player pl) const
static NumBitmapEffect playerEffect()
static const mask_t longEffectMask()
const mask_t selectLong() const
static const mask_t makeLongMask(int num)
const mask_t selectLong() const
static NumBitmapEffect makeEffect(int num)
static mask_t playerEffectMask()
static NumBitmapEffect playerEffect(Player pl)
NumBitmapEffect & opEqual(NumBitmapEffect const &rhs)
static NumBitmapEffect makeLongEffect(Player pl, int num)
static mask_t playerEffectMask(Player pl)
static NumBitmapEffect makeLongEffect(int num)