Fixed the problem that in a rare case, a set is downloaded and the neverballrc is...
[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 "game.h"
20 #include "state.h"
21
22 #include "st_shared.h"
23
24 void shared_leave(int id)
25 {
26     gui_delete(id);
27 }
28
29 void shared_paint(int id, float st)
30 {
31     game_draw(0, st);
32     gui_paint(id);
33 }
34
35 void shared_timer(int id, float dt)
36 {
37     gui_timer(id, dt);
38 }
39
40 int shared_point_basic(int id, int x, int y)
41 {
42     /* Pulse, activate and return the active id (if changed) */
43
44     int jd = gui_point(id, x, y);
45
46     if (jd)
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, int v)
58 {
59     /* Pulse, activate and return the active id (if changed) */
60
61     int jd = 0;
62
63     if      (config_tst_d(CONFIG_JOYSTICK_AXIS_X, a))
64         jd = gui_stick(id, v, 0);
65     else if (config_tst_d(CONFIG_JOYSTICK_AXIS_Y, a))
66         jd = gui_stick(id, 0, v);
67     if (jd)
68         gui_pulse(jd, 1.2f);
69
70     return jd;
71 }
72
73 void shared_stick(int id, int a, int v)
74 {
75     shared_stick_basic(id, a, v);
76 }
77
78 void shared_angle(int id, int x, int z)
79 {
80     game_set_ang(x, z);
81 }
82
83 int shared_click(int b, int d)
84 {
85     if (b < 0 && d == 1)
86         return st_buttn(config_get_d(CONFIG_JOYSTICK_BUTTON_A), 1);
87     else
88         return 1;
89 }
90