aboutsummaryrefslogtreecommitdiff
path: root/dat.h
blob: a3065ee208df2c155cc2df7022b366aa79ba3eea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
typedef struct GameState GameState;
typedef struct Derivative Derivative;
typedef struct Stats Stats;
typedef struct Sprite Sprite;

struct Stats
{
	double cur;
	double total;
	double min, avg, max;
	uvlong nupdates;

	void (*update)(Stats*, double);
};

struct GameState
{
	double x, v;
	Stats stats;
};

struct Derivative
{
	double dx, dv;
};

struct Sprite
{
	Image *sheet;
	Point sp;
	Rectangle r;
	int nframes;
	int curframe;
	ulong period;
	ulong elapsed;

	void (*step)(Sprite*, ulong);
	void (*draw)(Sprite*, Image*, Point);
};