Blame projects/jigsaw/menu.h
|
Ivan Mahonin |
fdbd7d |
#ifndef MENU_H
|
|
Ivan Mahonin |
fdbd7d |
#define MENU_H
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
#include "game.h"
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
#define MS_CNT 16
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
typedef struct {
|
|
Ivan Mahonin |
fdbd7d |
char *path;
|
|
Ivan Mahonin |
fdbd7d |
char *imgname;
|
|
Ivan Mahonin |
fdbd7d |
double percent;
|
|
Ivan Mahonin |
fdbd7d |
Animation image;
|
|
Ivan Mahonin |
fdbd7d |
Vec p0, p1;
|
|
Ivan Mahonin |
61089c |
int rows, cols;
|
|
Ivan Mahonin |
fdbd7d |
time_t t;
|
|
Ivan Mahonin |
fdbd7d |
} MenuItem;
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
typedef struct {
|
|
Ivan Mahonin |
fdbd7d |
Game gm;
|
|
Ivan Mahonin |
fdbd7d |
MenuItem *items;
|
|
Ivan Mahonin |
fdbd7d |
int itemsCnt;
|
|
Ivan Mahonin |
fdbd7d |
Vec contentSize;
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
double scrollPos;
|
|
Ivan Mahonin |
fdbd7d |
double scrollVel;
|
|
Ivan Mahonin |
fdbd7d |
double scrollHist[MS_CNT][2];
|
|
Ivan Mahonin |
fdbd7d |
Vec mouse, mouseDownPos;
|
|
Ivan Mahonin |
fdbd7d |
double mouseDownTime;
|
|
Ivan Mahonin |
fdbd7d |
double mouseScroll;
|
|
Ivan Mahonin |
fdbd7d |
double mousePath;
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
Animation iconBack;
|
|
Ivan Mahonin |
fdbd7d |
Animation iconCount[4];
|
|
Ivan Mahonin |
fdbd7d |
Animation iconTurn[2];
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
int countMode;
|
|
Ivan Mahonin |
fdbd7d |
int turnMode;
|
|
Ivan Mahonin |
fdbd7d |
int closing;
|
|
Ivan Mahonin |
fdbd7d |
double closingTransition;
|
|
Ivan Mahonin |
dcf1b6 |
|
|
Ivan Mahonin |
dcf1b6 |
MenuItem *choosingItem;
|
|
Ivan Mahonin |
dcf1b6 |
int choosingItemFrames;
|
|
Ivan Mahonin |
fdbd7d |
} Menu;
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
int menuItemInit(MenuItem *mi, const char *path, const char *imgname, Vec p0, Vec p1, Framebuffer fb, int w, int h);
|
|
Ivan Mahonin |
fdbd7d |
void menuItemFree(MenuItem *mi);
|
|
Ivan Mahonin |
fdbd7d |
void menuItemDraw(MenuItem *mi);
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
void menuInit(Menu *m);
|
|
Ivan Mahonin |
fdbd7d |
void menuFree(Menu *m);
|
|
Ivan Mahonin |
fdbd7d |
void menuUpdateItems(Menu *m);
|
|
Ivan Mahonin |
fdbd7d |
int menuSave(Menu *m);
|
|
Ivan Mahonin |
fdbd7d |
int menuLoad(Menu *m);
|
|
Ivan Mahonin |
dcf1b6 |
void menuChooseItem(Menu *m, MenuItem *mi);
|
|
Ivan Mahonin |
fdbd7d |
void menuClick(Menu *m, Vec screenSize, double cornerSize);
|
|
Ivan Mahonin |
fdbd7d |
void menuDraw(Menu *m);
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
|
|
Ivan Mahonin |
fdbd7d |
#endif
|