DirRight,
DirDown,
DirDone,
- DirFailed
+ DirFailed,
+ DirPassed
};
typedef struct Piece
{PieceCross, 0, true, 3, 0, // 7
{DirLeft, DirRight, DirUp, DirDown}},
{PieceCorners, 0, true, 4, 0, // 8
- {DirLeft, DirUp, DirRight, DirDown}},
+ {DirLeft, DirDown, DirRight, DirUp}},
{PieceCorners, 90, true, 4, 1, // 9
- {DirUp, DirRight, DirLeft, DirDown}},
+ {DirRight, DirDown, DirLeft, DirUp}},
{PieceStart, 0, false, 0, 0, // 10
{DirLeft, DirNone, DirNone, DirNone}},
{PieceStart, 90, false, 0, 0, // 11
void onItemClicked(QTableWidgetItem* item);
private:
- void initPieceCache();
static int pieceToId(const Piece* piece);
static const Piece* idToPiece(int id);
- static QHash<QPair<PieceType, int>, const Piece*> pieceCache;
QTableWidget* pieceUi;
QHash<const Piece*, int> pieceCounts;
};
void levelFailed();
private slots:
+ void onDoneClicked();
void onCellClicked(int row, int column);
void onValidPieceSelected(const Piece* piece);
void onInvalidPieceSelected();
void onTimeout();
- void levelEnds();
void computeFlow();
private:
+ void levelEnds();
+
AvailablePieces* pieceUi; // Not owned
GameField* fieldUi; // Not owned
QLabel* timeLabel; // Not owned
Direction flowDir;
int flowPreplaced;
int flowScore;
+ bool animate;
};
class LevelSwitcher : public QObject
LevelSwitcher(GameController* gameController,
QWidget* levelWidget, QListWidget* levelList, QPushButton* levelStartButton,
QWidget* startWidget, QLabel* startTitle, QLabel* startLabel, QPushButton* startButton,
- QLabel* levelLabel, QLabel* scoreLabel,
+ QWidget* gameWidget, QLabel* levelLabel, QLabel* scoreLabel,
QStringList levels);
private slots:
void onStartClicked();
void onLevelPassed(int score);
void onLevelFailed();
+ void chooseLevelCollection();
private:
void initiateLevel();
- void chooseLevelCollection();
+ void readSavedGames();
+ void writeSavedGames();
+ void readLevelCollections(QStringList collections);
GameController* gameController; // Not owned
QWidget* levelWidget; // Not owned
QLabel* startTitle; // Not owned
QLabel* startLabel; // Not owned
QPushButton* startButton; // Not owned
+ QWidget* gameWidget; // Not owned
QLabel* levelLabel; // Not owned
QLabel* scoreLabel; // Not owned
- QStringList levelCollections;
+ QString curColl;
QStringList levels;
int level;
int totalScore;
+ QHash<QString, int> savedGames; // level collection -> next level ix
+ QHash<QString, QStringList> levelCollections; // level collection -> level names
};
#endif