Split SOL data structures into base, varying and rendering parts
[neverball] / ball / st_shared.c
1 /*
2  * Copyright (C) 2003 Robert Kooima - 2006 Jean Privat
3  * Part of the Neverball Project http://icculus.org/neverball/
4  *
5  * NEVERBALL is  free software; you can redistribute  it and/or modify
6  * it under the  terms of the GNU General  Public License as published
7  * by the Free  Software Foundation; either version 2  of the License,
8  * or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT  ANY  WARRANTY;  without   even  the  implied  warranty  of
12  * MERCHANTABILITY or  FITNESS FOR A PARTICULAR PURPOSE.   See the GNU
13  * General Public License for more details.
14  */
15
16 #include "gui.h"
17 #include "config.h"
18 #include "audio.h"
19 #include "state.h"
20
21 #include "game_server.h"
22 #include "game_client.h"
23
24 #include "st_shared.h"
25
26 void shared_leave(struct state *st, struct state *next, int id)
27 {
28     gui_delete(id);
29 }
30
31 void shared_paint(int id, float t)
32 {
33     game_client_draw(0, t);
34     gui_paint(id);
35 }
36
37 void shared_timer(int id, float dt)
38 {
39     gui_timer(id, dt);
40 }
41
42 int shared_point_basic(int id, int x, int y)
43 {
44     int jd;
45
46     if ((jd = gui_point(id, x, y)))
47         gui_pulse(jd, 1.2f);
48
49     return jd;
50 }
51
52 void shared_point(int id, int x, int y, int dx, int dy)
53 {
54     shared_point_basic(id, x, y);
55 }
56
57 int shared_stick_basic(int id, int a, float v, int bump)
58 {
59     int jd;
60
61     if ((jd = gui_stick(id, a, v, bump)))
62         gui_pulse(jd, 1.2f);
63
64     return jd;
65 }
66
67 void shared_stick(int id, int a, float v, int bump)
68 {
69     shared_stick_basic(id, a, v, bump);
70 }
71
72 void shared_angle(int id, int x, int z)
73 {
74     game_set_ang(x, z);
75 }
76
77 int shared_click(int b, int d)
78 {
79     if (b == SDL_BUTTON_LEFT && d == 1)
80         return st_buttn(config_get_d(CONFIG_JOYSTICK_BUTTON_A), 1);
81     else
82         return 1;
83 }
84