Applied my "bidirectional dt scaling" patch. Accordingly, the game can
[neverball] / putt / game.h
1 #ifndef GAME_H
2 #define GAME_H
3
4 /*---------------------------------------------------------------------------*/
5
6 #define AUD_BIRDIE   0
7 #define AUD_BOGEY    1
8 #define AUD_BUMP     2
9 #define AUD_DOUBLE   3
10 #define AUD_EAGLE    4
11 #define AUD_JUMP     5
12 #define AUD_MENU     6
13 #define AUD_ONE      7
14 #define AUD_PAR      8
15 #define AUD_PENALTY  9
16 #define AUD_PLAYER1 10
17 #define AUD_PLAYER2 11
18 #define AUD_PLAYER3 12
19 #define AUD_PLAYER4 13
20 #define AUD_SUCCESS 14
21 #define AUD_SWITCH  15
22 #define AUD_COUNT   16
23
24 /*---------------------------------------------------------------------------*/
25
26 #define MIN_DT   0.01000000            /* Minimum physics update cycle       */
27 #define MAX_DT   0.02000000            /* Maximum physics update cycle       */
28 #define MAX_DN  16                     /* Maximum subdivisions of dt         */
29 #define FOV     50.00f                 /* Field of view                      */
30 #define RESPONSE 0.05f                 /* Input smoothing time               */
31
32 #define GAME_NONE 0
33 #define GAME_STOP 1
34 #define GAME_GOAL 2
35 #define GAME_FALL 3
36
37 /*---------------------------------------------------------------------------*/
38
39 void  game_init(const char *);
40 void  game_free(void);
41
42 void  game_draw(int);
43 void  game_putt(void);
44 int   game_step(const float[3], float);
45
46 void  game_update_view(float);
47
48 void  game_set_rot(int);
49 void  game_clr_mag(void);
50 void  game_set_mag(int);
51 void  game_set_fly(float);
52
53 void  game_ball(int);
54 void  game_set_pos(float[3], float[3][3]);
55 void  game_get_pos(float[3], float[3][3]);
56
57 /*---------------------------------------------------------------------------*/
58
59 #endif