2 * Copyright (C) 2003 Robert Kooima
4 * NEVERBALL is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published
6 * by the Free Software Foundation; either version 2 of the License,
7 * or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful, but
10 * WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
19 /*---------------------------------------------------------------------------*/
21 static float state_time
;
22 static struct state
*state
;
24 float time_state(void)
29 void init_state(struct state
*st
)
34 int goto_state(struct state
*st
)
36 if (state
&& state
->leave
)
37 state
->leave(state
->gui_id
);
42 if (state
&& state
->enter
)
43 state
->gui_id
= state
->enter();
48 /*---------------------------------------------------------------------------*/
52 int stereo
= config_get_d(CONFIG_STEREO
);
54 if (state
&& state
->paint
)
58 glDrawBuffer(GL_BACK_LEFT
);
60 state
->paint(state
->gui_id
, (float) (+stereo
));
62 glDrawBuffer(GL_BACK_RIGHT
);
64 state
->paint(state
->gui_id
, (float) (-stereo
));
69 state
->paint(state
->gui_id
, 0.0f
);
74 void st_timer(float dt
)
78 if (state
&& state
->timer
)
79 state
->timer(state
->gui_id
, dt
);
82 void st_point(int x
, int y
, int dx
, int dy
)
84 if (state
&& state
->point
)
85 state
->point(state
->gui_id
, x
, y
, dx
, dy
);
88 void st_stick(int a
, int k
)
90 if (state
&& state
->stick
)
91 state
->stick(state
->gui_id
, a
, k
);
94 /*---------------------------------------------------------------------------*/
96 int st_click(int b
, int d
)
98 return (state
&& state
->click
) ? state
->click(b
, d
) : 1;
101 int st_keybd(int c
, int d
)
103 return (state
&& state
->keybd
) ? state
->keybd(c
, d
) : 1;
106 int st_buttn(int b
, int d
)
108 return (state
&& state
->buttn
) ? state
->buttn(b
, d
) : 1;
111 /*---------------------------------------------------------------------------*/