Blame projects/jigsaw/game.h
|
Ivan Mahonin |
fdbd7d |
#ifndef GAME_H
|
|
Ivan Mahonin |
fdbd7d |
#define GAME_H
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
#include "path.h"
|
|
Ivan Mahonin |
fdbd7d |
#include "puzzle.h"
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
typedef struct {
|
|
Ivan Mahonin |
fdbd7d |
char *path;
|
|
Ivan Mahonin |
fdbd7d |
char *imgname;
|
|
Ivan Mahonin |
fdbd7d |
int seed;
|
|
Ivan Mahonin |
fdbd7d |
Puzzle pz;
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
double winTransition;
|
|
Ivan Mahonin |
fdbd7d |
} Game;
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
typedef struct {
|
|
Ivan Mahonin |
fdbd7d |
char *imgname;
|
|
Ivan Mahonin |
fdbd7d |
int rows, cols, turn, groups, seed;
|
|
Ivan Mahonin |
fdbd7d |
time_t t;
|
|
Ivan Mahonin |
fdbd7d |
} GameInfo;
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
void gameFree(Game *gm);
|
|
Ivan Mahonin |
fdbd7d |
int gameCreate(Game *gm, const char *path, const char *imgname, int rows, int cols, int turn, int seed);
|
|
Ivan Mahonin |
fdbd7d |
int gameSave(Game *gm);
|
|
Ivan Mahonin |
fdbd7d |
int gameLoad(Game *gm, const char *path);
|
|
Ivan Mahonin |
fdbd7d |
GameInfo* loadGameInfo(const char *path);
|
|
Ivan Mahonin |
fdbd7d |
void gameDraw(Game *gm);
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
static inline int gameStarted(Game *gm) { return !!gm->path; }
|
|
Ivan Mahonin |
fdbd7d |
static inline int gameWon(Game *gm) { return gameStarted(gm) && gm->pz.ph.first && !gm->pz.ph.first->next; }
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
#endif
|