6 #include "SDL_rotozoom.h"
9 #include "menu.h" /* for paint_menu_fps() */
16 #include "widget/widgets.h"
29 int game_init(struct xuni_t
*xuni
, struct panel_data_t
*data
) {
30 struct widget_t
*panel
= data
->event
[PANEL_EVENT_INIT
].p
.init
.panel
;
31 struct widget_t
*temppanel
;
33 init_wid(xuni
->gui
->widget
, xuni
->gui
->widget
,
35 init_wid(xuni
->gui
->widget
, xuni
->gui
->widget
,
36 PANEL_GAME_MENU
, "game menu");
38 init_wid(xuni
->gui
->widget
, panel
, WID_MENU
, "game/menu");
39 init_wid(xuni
->gui
->widget
, panel
, WID_MENU_BACK
, "game menu/back");
40 init_wid(xuni
->gui
->widget
, panel
, WID_MENU_QUIT
, "game menu/quit");
42 /*add_widget_accelerator(panel,
43 widget_nameid_access(panel, WID_MENU), SDLK_F10, KMOD_NONE);*/
45 temppanel
= widget_nameid_access(xuni
->gui
->widget
, PANEL_GAME_MENU
);
46 add_widget_accelerator(xuni
, temppanel
,
47 widget_nameid_access(panel
, WID_MENU_BACK
), SDLK_ESCAPE
, KMOD_NONE
);
48 /*add_widget_accelerator(temppanel,
49 widget_nameid_access(panel, WID_MENU_BACK), SDLK_F10, KMOD_NONE);*/
54 int game_start(struct xuni_t
*xuni
, struct panel_data_t
*data
) {
55 set_caption("Explore the Universe");
60 int game_event(struct xuni_t
*xuni
, struct panel_data_t
*data
) {
61 panel_type_t
*mode
= data
->event
[PANEL_EVENT_EVENT
].p
.event
.mode
;
62 SDL_Event
*event
= data
->event
[PANEL_EVENT_EVENT
].p
.event
.event
;
66 switch(event
->key
.keysym
.sym
) {
68 /* there is currently no widget for this */
69 if(*mode
== PANEL_GAME
) {
70 *mode
= PANEL_MAIN_MENU
;
78 *mode
= PANEL_MAIN_MENU
;
87 int game_paint(struct xuni_t
*xuni
, struct panel_data_t
*data
) {
88 struct widget_t
*panel
89 = widget_nameid_access(xuni
->gui
->widget
, PANEL_GAME
);
90 panel_type_t mode
= data
->event
[PANEL_EVENT_PAINT
].p
.paint
.mode
;
92 clear_screen(xuni
->smode
->screen
);
94 widget_event(xuni
, widget_nameid_access(xuni
->gui
->widget
, PANEL_GAME
),
97 if(mode
== PANEL_GAME_MENU
) {
98 widget_event(xuni
, widget_nameid_access(xuni
->gui
->widget
,
99 PANEL_GAME_MENU
), WIDGET_EVENT_PAINT
);
102 paint_menu_fps(xuni
, THEME_FONT_MONO
);
104 if(panel
->p
.panel
->frameupdate
) {
105 paint_cursor(xuni
, get_theme_widget(xuni
, THEME_DEFAULT_CURSOR
));
113 int game_click(struct xuni_t
*xuni
, struct panel_data_t
*data
) {
114 panel_type_t
*mode
= data
->event
[PANEL_EVENT_CLICK
].p
.click
.mode
;
115 struct widget_t
*widget
= data
->event
[PANEL_EVENT_CLICK
].p
.click
.widget
;
119 *mode
= PANEL_GAME_MENU
;
121 clear_gui(xuni
, PANEL_GAME_MENU
, 0);
126 clear_gui(xuni
, PANEL_GAME
, 0);
129 *mode
= PANEL_MAIN_MENU
;
133 return 0; /* ignored */
136 int game_free(struct xuni_t
*xuni
, struct panel_data_t
*data
) {