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
prev_scene(("Previous scene"))
print_save_data_list["print save data list"]
user_input_number["wait: user input number"]
user_input_number_is{"user input number?"}
builtin_savecomment["set current time, format 2006/01/02 15:04:05, to save comment"]
savegame_event_before_save("script: savegame_event_before_save()")
savegame_event_before_save_exist{"savegame_event_before_save()?"}
builtin_savedata["save data to file"]
%% apply styles
class savegame_event_before_save class_script_call
%% flows
scene_start_common --> |continue current scene| print_save_data_list
print_save_data_list --> user_input_number
user_input_number --> user_input_number_is
user_input_number_is --> |100| prev_scene
user_input_number_is --> |"0 .. 19"| builtin_savecomment
user_input_number_is --> |others| print_save_data_list
builtin_savecomment --> savegame_event_before_save_exist
savegame_event_before_save_exist --> |exist| savegame_event_before_save
savegame_event_before_save --> builtin_savedata
savegame_event_before_save_exist --> |NOT exist| builtin_savedata
builtin_savedata --> print_save_data_list