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