00001
00002
00003 #ifndef _PAWN_MASK_STATE_TCC
00004 #define _PAWN_MASK_STATE_TCC
00005
00006 #include "osl/state/pawnMaskState.h"
00007 #include "osl/apply_move/doUndoMoveLock.h"
00008 namespace osl
00009 {
00010 template<>
00011 class apply_move::DoUndoMoveLockSimple<PawnMaskState> : public apply_move::DoUndoMoveLockCleanUp
00012 {
00013 PawnMaskState& state;
00014 Position from, to;
00015 Piece oldPiece;
00016 int num;
00017 bool clearPawn;
00018 public:
00019 DoUndoMoveLockSimple(PawnMaskState& s,
00020 Position f, Position t, int promoteMask);
00021 ~DoUndoMoveLockSimple();
00022 };
00023
00024 template<>
00025 class apply_move::DoUndoMoveLockDrop<PawnMaskState> : public apply_move::DoUndoMoveLockCleanUp
00026 {
00027 PawnMaskState& state;
00028 Position to;
00029 Piece oldPiece;
00030 int num, numIndex, numLow;
00031 bool pawnDrop;
00032 public:
00033 DoUndoMoveLockDrop(PawnMaskState& state,
00034 Position to, Ptype ptype);
00035 ~DoUndoMoveLockDrop();
00036 };
00037
00038 template<>
00039 class apply_move::DoUndoMoveLockCapture<PawnMaskState> : public apply_move::DoUndoMoveLockCleanUp
00040 {
00041 PawnMaskState& state;
00042 Position from, to;
00043 Piece target;
00044 Piece oldPiece;
00045 int num0, num1;
00046 int num1Index;
00047 mask_t num1Mask;
00048 Ptype capturePtype;
00049 bool pawnPromotion, pawnCapture;
00050 public:
00051 DoUndoMoveLockCapture(PawnMaskState& state,
00052 Position from, Position to, Piece target,
00053 int promoteMask);
00054 ~DoUndoMoveLockCapture();
00055 };
00056
00057 }
00058
00059 #endif
00060
00061
00062
00063