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.
25 /*---------------------------------------------------------------------------*/
38 static float view_timer
;
40 static void hud_fps(void)
46 int now
= SDL_GetTicks();
50 fps
= count
* 1000 / (now
- then
);
54 gui_set_count(fps_id
, fps
);
63 if ((Rhud_id
= gui_hstack(0)))
65 if ((id
= gui_vstack(Rhud_id
)))
67 gui_label(id
, "Coins", GUI_SML
, 0, gui_wht
, gui_wht
);
68 gui_label(id
, "Goal", GUI_SML
, 0, gui_wht
, gui_wht
);
70 if ((id
= gui_vstack(Rhud_id
)))
72 coin_id
= gui_count(id
, 100, GUI_SML
, GUI_NW
);
73 goal_id
= gui_count(id
, 10, GUI_SML
, 0);
75 gui_layout(Rhud_id
, +1, -1);
78 if ((Lhud_id
= gui_hstack(0)))
80 if ((id
= gui_vstack(Lhud_id
)))
82 ball_id
= gui_count(id
, 10, GUI_SML
, GUI_NE
);
83 scor_id
= gui_count(id
, 1000, GUI_SML
, 0);
85 if ((id
= gui_vstack(Lhud_id
)))
87 gui_label(id
, "Balls", GUI_SML
, 0, gui_wht
, gui_wht
);
88 gui_label(id
, "Score", GUI_SML
, 0, gui_wht
, gui_wht
);
90 gui_layout(Lhud_id
, -1, -1);
93 if ((time_id
= gui_clock(0, 59999, GUI_MED
, GUI_TOP
)))
94 gui_layout(time_id
, 0, -1);
96 if ((view_id
= gui_label(0, STR_VIEW2
, GUI_SML
, GUI_SW
, gui_wht
, gui_wht
)))
97 gui_layout(view_id
, 1, 1);
99 if ((fps_id
= gui_count(0, 1000, GUI_SML
, GUI_SE
)))
100 gui_layout(fps_id
, -1, 1);
118 if (config_get_d(CONFIG_FPS
))
121 if (view_timer
> 0.0f
)
125 void hud_timer(float dt
)
127 const int clock
= curr_clock();
128 const int balls
= curr_balls();
129 const int coins
= curr_coins();
130 const int score
= curr_score();
131 const int goal
= curr_goal();
133 if (gui_value(time_id
) != clock
) gui_set_clock(time_id
, clock
);
134 if (gui_value(ball_id
) != balls
) gui_set_count(ball_id
, balls
);
135 if (gui_value(scor_id
) != score
) gui_set_count(scor_id
, score
);
136 if (gui_value(coin_id
) != coins
) gui_set_count(coin_id
, coins
);
137 if (gui_value(goal_id
) != goal
) gui_set_count(goal_id
, goal
);
139 if (config_get_d(CONFIG_FPS
))
144 gui_timer(Rhud_id
, dt
);
145 gui_timer(Lhud_id
, dt
);
146 gui_timer(time_id
, dt
);
147 gui_timer(view_id
, dt
);
150 void hud_ball_pulse(float k
) { gui_pulse(ball_id
, k
); }
151 void hud_time_pulse(float k
) { gui_pulse(time_id
, k
); }
152 void hud_coin_pulse(float k
) { gui_pulse(coin_id
, k
); }
153 void hud_goal_pulse(float k
) { gui_pulse(goal_id
, k
); }
155 void hud_view_pulse(int c
)
159 case 0: gui_set_label(view_id
, STR_VIEW0
); break;
160 case 1: gui_set_label(view_id
, STR_VIEW1
); break;
161 case 2: gui_set_label(view_id
, STR_VIEW2
); break;
164 gui_pulse(view_id
, 1.2f
);
168 /*---------------------------------------------------------------------------*/