diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2024-12-01 14:12:42 +0100 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2024-12-01 14:12:42 +0100 |
| commit | cebbaa91a9a57a411736b4148706b6bad621140e (patch) | |
| tree | aba12dcf5a20c3fff9935f742dd72fc05877028a /src/scenes | |
| parent | 1470c698a9552fc6892bf5cd1cccc03e80ab8f98 (diff) | |
close #30
Diffstat (limited to 'src/scenes')
| -rw-r--r-- | src/scenes/place_detail.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/scenes/place_detail.c b/src/scenes/place_detail.c index d5c0790..e312650 100644 --- a/src/scenes/place_detail.c +++ b/src/scenes/place_detail.c @@ -984,6 +984,7 @@ static void draw_duration_of_scheduled_job_entry(scheduled_job job, scheduled_jo if (overflow_to_next_day > 0) renderer->render_rectangle(TILE_X(0), highlight_y, timeslot_w*overflow_to_next_day, timeslot_h, tile_color_bg);
}
+static bool termination_popup_active = false;
static void place_detail_draw_schedule(platform_window* window)
{
float offset = scale * 40.0;
@@ -1043,6 +1044,22 @@ static void place_detail_draw_schedule(platform_window* window) _active_schedule_state = RESCHEDULING_JOB;
_active_scheduling_job = *_active_selected_scheduled_job;
}
+
+ btn_y += btn_pad + button_h;
+ char* terminate_txt = termination_popup_active ? "Confirm?" : "Cancel Job";
+ s32 terminate_type = termination_popup_active ? BUTTON_HIGHLIGHTED : BUTTON_ENABLED;
+ if (button_render(scale, terminate_type, terminate_txt, x-button_w+w, btn_y, button_w, button_h)) {
+
+ if (termination_popup_active) {
+ array_remove_by(&_active_location->schedule.jobs, _active_selected_scheduled_job);
+ audio_play_sound(snd_click3, AUDIO_CHANNEL_SFX_1);
+ _active_selected_scheduled_job = 0;
+ termination_popup_active = false;
+ }
+ else {
+ termination_popup_active = true;
+ }
+ }
}
s32 options_w = 230*scale;
@@ -1752,6 +1769,7 @@ static void place_detail_draw_panel(platform_window* window) s32 back_y = panel_y + panel_h - (back_h/2) - 1;
if (push_back_button(scale, back_x, back_y, back_w, back_h)) {
+ termination_popup_active = false;
if (current_detail_state == PLACE_DETAIL_SHOW_MAIN) {
game_set_active_scene(GAME_STATE_WORLD_MAP);
}
@@ -1815,6 +1833,7 @@ void place_detail_scene_update(platform_window* window) // world_update(window, _active_world, false);
if (keyboard_is_key_pressed(KEY_ESCAPE)) {
+ termination_popup_active = false;
if (current_detail_state == PLACE_DETAIL_SHOW_MAIN) {
game_set_active_scene(GAME_STATE_WORLD_MAP);
}
|
