graph TB
%% -- Common Template --
%% nodes
start(("Start"))
next_scene_from_common(("Next scene"))
scene_start_common["goto: scene_start_common()"]
%% styles
classDef class_script_call fill:#CAF
classDef class_routine_call fill:#EE9
%% apply styles
class scene_start_common class_routine_call
%% flow
start --> scene_start_common
scene_start_common --> |next scene| next_scene_from_common
%% -- scene specific --
%% nodes
next_scene(("Next scene"))
next_scene_exist{"next scene?"}
ablup_user_show_juel("script: ablup_user_show_juel()")
ablup_user_show_menu("script: ablup_user_show_menu()")
ablup_user_menu_selected("script: handled = ablup_user_menu_selected(input_number)")
user_input_number["wait: user input number"]
menu_select_handled{"return value?"}
%% apply styles
class ablup_user_show_juel,ablup_user_show_menu class_script_call
class ablup_user_menu_selected class_script_call
%% flows
scene_start_common --> |continue current scene| next_scene_exist
next_scene_exist --> |exist| next_scene
next_scene_exist --> |NOT exist| ablup_user_show_juel
ablup_user_show_juel --> ablup_user_show_menu
ablup_user_show_menu --> user_input_number
user_input_number --> ablup_user_menu_selected
ablup_user_menu_selected --> menu_select_handled
menu_select_handled --> |false| user_input_number
menu_select_handled --> |true| next_scene_exist