22 #ifndef NANCY_ACTION_CARDGAMEPUZZLE_H 23 #define NANCY_ACTION_CARDGAMEPUZZLE_H 25 #include "engines/nancy/action/actionrecord.h" 39 void updateGraphics()
override;
42 void execute()
override;
45 bool isViewportRelative()
const override {
return true; }
49 static const int kMaxCols = 13;
50 static const int kMaxRows = 4;
55 int grid[kMaxRows][kMaxCols];
56 int colCount[kMaxCols];
57 int colComplete[kMaxCols];
61 Common::String getRecordTypeName()
const override {
return "CardGamePuzzle"; }
63 int dealOne(
int player);
67 bool usesColumnButtons()
const {
return _columnButtons[0].top != _columnButtons[0].bottom; }
70 bool hasPlayableColumn(
int side)
const;
74 bool takeCards(
int side,
int col);
75 void beginAsk(
int side,
int col);
78 void startPlayerTurn();
82 void startMoveAnimation(
const bool beforeGrid[kMaxRows][kMaxCols]);
89 byte _switchTurnRule = 0;
90 byte _startPlayer = 0;
94 uint16 _dealRounds = 0;
108 uint16 _moveAnimSteps = 0;
109 uint16 _moveAnimDelta = 0;
110 uint32 _moveAnimDelay = 0;
115 uint16 _dealFrameCount[2] = {};
116 uint32 _dealFrameDelay[2] = {};
122 uint16 _winSceneStartPlayer = 0;
123 uint16 _winSceneStartEnemy = 0;
125 int16 _winFlagPlayer = -1;
126 int16 _winFlagEnemy = -1;
127 uint16 _exitScene = 0;
129 bool _gaveUp =
false;
143 bool _awaitingEnd =
false;
144 uint32 _endWaitUntil = 0;
155 Phase _phase = kWaitInput;
158 bool _goAgain =
false;
159 uint32 _aiDelayUntil = 0;
164 byte _availMap[kMaxRows][kMaxCols];
165 int _deckRemaining = 0;
166 int _currentTurn = 0;
167 int _lastAiColumn = -1;
168 bool _gameOver =
false;
172 static const int kSlidePerStep = 12;
173 bool _appearing[kMaxRows][kMaxCols] = {};
174 bool _leaving[kMaxRows][kMaxCols] = {};
176 uint32 _animNextStep = 0;
177 bool _animating =
false;
180 bool _handAnimActive =
false;
181 int _handAnimSide = 1;
182 uint16 _handFrame = 0;
183 uint32 _handNextFrame = 0;
189 #endif // NANCY_ACTION_CARDGAMEPUZZLE_H Definition: managed_surface.h:51
Definition: cardgamepuzzle.h:33
Definition: commontypes.h:165
Definition: cardgamepuzzle.h:54
Definition: actionrecord.h:161
Definition: commontypes.h:282
Definition: actionmanager.h:32