Some OpenGL optimization and state-change reduction.
[neverball] / ball / game.h
1 #ifndef GAME_H
2 #define GAME_H
3
4 #include <stdio.h>
5
6 #include "level.h"
7 #include "mode.h"
8
9 /*---------------------------------------------------------------------------*/
10
11 #define AUD_MENU    "snd/menu.ogg"
12 #define AUD_START _("snd/select.ogg")
13 #define AUD_READY _("snd/ready.ogg")
14 #define AUD_SET   _("snd/set.ogg")
15 #define AUD_GO    _("snd/go.ogg")
16 #define AUD_BALL    "snd/ball.ogg"
17 #define AUD_BUMPS   "snd/bumplil.ogg"
18 #define AUD_BUMPM   "snd/bump.ogg"
19 #define AUD_BUMPL   "snd/bumpbig.ogg"
20 #define AUD_COIN    "snd/coin.ogg"
21 #define AUD_TICK    "snd/tick.ogg"
22 #define AUD_TOCK    "snd/tock.ogg"
23 #define AUD_SWITCH  "snd/switch.ogg"
24 #define AUD_JUMP    "snd/jump.ogg"
25 #define AUD_GOAL    "snd/goal.ogg"
26 #define AUD_SCORE _("snd/record.ogg")
27 #define AUD_FALL  _("snd/fall.ogg")
28 #define AUD_TIME  _("snd/time.ogg")
29 #define AUD_OVER  _("snd/over.ogg")
30 #define AUD_GROW    "snd/grow.ogg"
31 #define AUD_SHRINK  "snd/shrink.ogg"
32
33 /*---------------------------------------------------------------------------*/
34
35 #define MAX_DT      0.01666666         /* Maximum physics update cycle       */
36 #define MAX_DN      16                 /* Maximum subdivisions of dt         */
37 #define RESPONSE    0.05f              /* Input smoothing time               */
38
39 #define ANGLE_BOUND 20.f               /* Angle limit of floor tilting       */
40 #define NO_AA       0                  /* Disable Angle Acceleration         */
41
42 /*---------------------------------------------------------------------------*/
43
44 int   game_init(const struct level *, int, int);
45 void  game_free(void);
46
47 int   curr_clock(void);
48 int   curr_coins(void);
49 int   curr_goal(void);
50
51 void  game_draw(int, float);
52 int   game_step(const float[3], float, int);
53
54 void  game_set_pos(int, int);
55 void  game_set_x  (int);
56 void  game_set_z  (int);
57 void  game_set_rot(float);
58 void  game_set_fly(float);
59
60 void  game_look(float, float);
61
62 void  game_kill_fade(void);
63 void  game_step_fade(float);
64 void  game_fade(float);
65
66 int   put_game_state(FILE *);
67 int   get_game_state(FILE *);
68
69 /*---------------------------------------------------------------------------*/
70
71 #endif