diff --git a/src/ui.c b/src/ui.c index 689725d..8753e4b 100644 --- a/src/ui.c +++ b/src/ui.c @@ -148,10 +148,19 @@ void pause_menu_new_game(Game *game){ pause_menu_resume(game); } +void pause_menu_do_event(Widget *widget, Game *game, MTEvent event){ + if(event.type == EV_Mouse){ + buttons_do_event(widget, game, event); + return; + } + if(event.key == KEY_ESCAPE) + pause_menu_resume(game); +} + Widget pause_menu = { .box = {.x = 0, .y = 0, .width = -1, .height = -1}, .draw = pause_menu_draw, - .do_event = buttons_do_event, + .do_event = pause_menu_do_event, .capt_flags = CF_Mouse | CF_Keyb, .buttons = { {.box = {520,170,240,40}, @@ -220,15 +229,14 @@ void worker_widget_draw(Widget *widget, Game *game){ (float)work->fatigue/256.0f*100.0f); } -void worker_widget_do_event(Widget *widget, Game *game, MTEvent event){ - if(event.click == MOUSE_BUTTON_LEFT) - gui_info.widget_active[2] = false; +void worker_widget_close(Game *game){ + gui_info.widget_active[2] = false; } Widget worker_widget = { .box = {.x = 40, .y = 40, .width = 350, .height = 600}, .draw = worker_widget_draw, - .do_event = worker_widget_do_event, + .do_event = buttons_do_event, .capt_flags = CF_Mouse, .buttons = { {.box = {350,50,30,30}, @@ -236,7 +244,7 @@ Widget worker_widget = { .color_1 = BLACK, .color_txt = BLACK, .txt = "X", - .handler = NULL + .handler = worker_widget_close }, }, .button_n = 1 @@ -246,11 +254,18 @@ Widget machine_widget = { }; +void game_widget_do_event(Widget *widget, Game *game, MTEvent event){ + if(event.key == KEY_P) + game->paused = !game->paused; + if(event.key == KEY_ESCAPE) + goto_pause_menu(game); +} + Widget game_widget = { - .box = {0,0,0,0}, + .box = {0,0,1280,720}, .draw = widget_draw_game, - .do_event = NULL, - .capt_flags = 0, + .do_event = game_widget_do_event, + .capt_flags = CF_Keyb, .buttons = {}, .button_n = 0 }; @@ -378,6 +393,13 @@ void get_keys(Game *game){ try_interface(game, GetScreenToWorld2D(mouse_pos,game->camera)); } + int key = GetKeyPressed(); + while(key){ + printf("392 : %d\n", key); + ui_do_key(game, key); + key = GetKeyPressed(); + } + if(keydown(KEY_W)) game->camera.target.y -= 3; if(keydown(KEY_S)) @@ -389,9 +411,5 @@ void get_keys(Game *game){ if(keydown(KEY_UP)) game->camera.zoom *= 1.025; if(keydown(KEY_DOWN)) - game->camera.zoom *= 1/1.025; - if(IsKeyPressed(KEY_P)) - game->paused = !game->paused; - if(IsKeyPressed(KEY_ESCAPE)) - goto_pause_menu(game); + game->camera.zoom *= 1/1.025; }