/usr/include/osl/effect/numSimpleEffect.tcc is in libosl-dev 0.6.0-3.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | #ifndef OSL_NUM_SIMPLE_EFFECT_TCC
#define OSL_NUM_SIMPLE_EFFECT_TCC
#include "osl/effect/numSimpleEffect.h"
#include "osl/effect_util/pin.h"
#include "osl/checkmate/king8Info.h"
#include "osl/pieceTable.h"
#include "osl/record/csa.h"
#include <iostream>
template<osl::effect::NumBitmapEffect::Op OP,bool UC>
void osl::effect::
NumSimpleEffectTable::doEffect(const SimpleState& state,PtypeO ptypeo,Square pos,int num)
{
switch((int)ptypeo){
case NEW_PTYPEO(WHITE,PAWN): doEffectBy<WHITE,PAWN,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(WHITE,LANCE): doEffectBy<WHITE,LANCE,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(WHITE,KNIGHT): doEffectBy<WHITE,KNIGHT,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(WHITE,SILVER): doEffectBy<WHITE,SILVER,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(WHITE,PPAWN):
case NEW_PTYPEO(WHITE,PLANCE):
case NEW_PTYPEO(WHITE,PKNIGHT):
case NEW_PTYPEO(WHITE,PSILVER):
case NEW_PTYPEO(WHITE,GOLD): doEffectBy<WHITE,GOLD,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(WHITE,BISHOP): doEffectBy<WHITE,BISHOP,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(WHITE,PBISHOP): doEffectBy<WHITE,PBISHOP,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(WHITE,ROOK): doEffectBy<WHITE,ROOK,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(WHITE,PROOK): doEffectBy<WHITE,PROOK,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(WHITE,KING): doEffectBy<WHITE,KING,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(BLACK,PAWN): doEffectBy<BLACK,PAWN,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(BLACK,LANCE): doEffectBy<BLACK,LANCE,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(BLACK,KNIGHT): doEffectBy<BLACK,KNIGHT,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(BLACK,SILVER): doEffectBy<BLACK,SILVER,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(BLACK,PPAWN):
case NEW_PTYPEO(BLACK,PLANCE):
case NEW_PTYPEO(BLACK,PKNIGHT):
case NEW_PTYPEO(BLACK,PSILVER):
case NEW_PTYPEO(BLACK,GOLD): doEffectBy<BLACK,GOLD,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(BLACK,BISHOP): doEffectBy<BLACK,BISHOP,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(BLACK,PBISHOP): doEffectBy<BLACK,PBISHOP,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(BLACK,ROOK): doEffectBy<BLACK,ROOK,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(BLACK,PROOK): doEffectBy<BLACK,PROOK,OP,UC>(state,pos,num); break;
case NEW_PTYPEO(BLACK,KING): doEffectBy<BLACK,KING,OP,UC>(state,pos,num); break;
default: assert(0);
}
return;
}
template<osl::Player P, osl::Ptype T, osl::effect::NumBitmapEffect::Op OP,bool UC>
void osl::effect::
NumSimpleEffectTable::doEffectBy(const SimpleState& state,Square pos,int num)
{
if(UC){
if(T==LANCE || T==BISHOP || T==PBISHOP || T==ROOK || T==PROOK)
setChangedPieces(NumBitmapEffect::makeLongEffect<P>(num));
else
setChangedPieces(NumBitmapEffect::makeEffect<P>(num));
}
doEffectShort<P,T,UL,OP,UC>(state,pos,num);
doEffectShort<P,T,U,OP,UC>(state,pos,num);
doEffectShort<P,T,UR,OP,UC>(state,pos,num);
doEffectShort<P,T,L,OP,UC>(state,pos,num);
doEffectShort<P,T,R,OP,UC>(state,pos,num);
doEffectShort<P,T,DL,OP,UC>(state,pos,num);
doEffectShort<P,T,D,OP,UC>(state,pos,num);
doEffectShort<P,T,DR,OP,UC>(state,pos,num);
doEffectShort<P,T,UUL,OP,UC>(state,pos,num);
doEffectShort<P,T,UUR,OP,UC>(state,pos,num);
doEffectLong<P,T,LONG_UL,OP,UC>(state,pos,num);
doEffectLong<P,T,LONG_U,OP,UC>(state,pos,num);
doEffectLong<P,T,LONG_UR,OP,UC>(state,pos,num);
doEffectLong<P,T,LONG_L,OP,UC>(state,pos,num);
doEffectLong<P,T,LONG_R,OP,UC>(state,pos,num);
doEffectLong<P,T,LONG_DL,OP,UC>(state,pos,num);
doEffectLong<P,T,LONG_D,OP,UC>(state,pos,num);
doEffectLong<P,T,LONG_DR,OP,UC>(state,pos,num);
}
#endif /* OSL_NUM_SIMPLE_EFFECT_TCC */
// ;;; Local Variables:
// ;;; mode:c++
// ;;; c-basic-offset:2
// ;;; End:
|