Aide pour ajouter langue a un jeu python

frelon71 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
frelon71 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Je suis un traducteur de jeu renpy et j'aimerais savoir comment ajouter la langue Française en python merci


Windows / Opera 89.0.4447.71

3 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    bonjour,

    quel est le rapport entre la langue du jeu et le langage de programmation utilisé?

    0
  2. frelon71 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
     

    Bonjour je crois que vous n'avez pas compris, le jeu est en anglais d'origine je veux le traduire en Français, donc il faut que j'ajoute la langue française au jeu, mais le fichier screen est écris en python alors que la plupart des jeu renpy ne le sont pas donc plus facile a ajouter les langues, merci

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Tu souhaites donc modifier du code Python?
      Connais-tu ce langage de programmation?

      0
  3. frelon71 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
     

    Pas trop; justement . C'est pour ça que je demande si c'est facile à faire.

    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      Je pense que le point de départ est de te former en Python pour comprendre le contenu du fichier que tu veux modifier.
      Ce sera ensuite plus ou moins facile, suivant la complexité du fichier.

      0
      1. frelon71 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
         

        Je sais deja quel fichier il faut modifier mais je ne sais pas comment l'ajouter. voila le screen, car sur les jeux renpy simple on ajoutais la vbox mais la c'est pas pareil vu que c'est du python, merci

        vbox:
         

                            style_prefix "radio"
                            label _("Language")
                            textbutton _( "English" ) action Language(None)
                            textbutton _( "French" ) action Language("french")

        Le script :

        image wbag:
            "ui/w_bag.png"
            alpha 0.25
        
        image wbag_h:
            "ui/w_bag.png"
            alpha 1.0
        
        image tools:
            "ui/w_tools.png"
            alpha 0.25
        
        image tools_h:
            "ui/w_tools.png"
            alpha 1.0
        
        #Chapters & chapter animations variables
        default caswitch=0
        default choice_line=""
        default alpha0=1
        default alpha1=1
        default alpha2=1
        default pagechange=False
        default datelog=""
        default p_datelog=""
        default datelogIndex=0
        default show_variables=True
        default memory_tracker=[]
        default paths_enabled=False
        default index_na=0
        default time_na=0
        default max_na=90
        default splitafter=[":",",","."," ",";","!","?"]
        default relativPos=(0.66,0.5)
        default slotnumber=198
        default slot_savename=""
        default slot_extra_info=""
        default slot_extra_info_maxlen=16
        default esc_textToDisplay=""
        default esc_labelToGo=""
        #default slot_dict=dict([])
        
        #default helpers=True
        default help_disable_option=0
        default dummy=0
        
        # chapter dict  = chapter name for i18n,chapter subtitle for i18n,chapter images template name
        default chapters=[]
        default chapterNum=1
        default langset=0
        default voice_playing=False
        default chapter5_anims=dict([("valpath",(100,200)),("nopath",(0,0))])
        default phone2=""
        default phone_notif=False
        default is_phone_notified=False
        
        
        # Skype and neo mc phone dynamic
        image sy_skype=DynamicDisplayable(skype_voiced)
        image sy_skype_desk="images/ev/chapter1/Sylvia at computer close up - Desk crop.png"
        image sy_skype_desk_voiced="images/ev/chapter1/Sylvia at computer close up - Desk crop - Sylvia talking.png"
        
        image mc_phone2lea=DynamicDisplayable(mcphone_lea_voiced)
        image mc_phone2_lea="images/ev/chapter1/MC Phone Call Lea.png"
        image mc_phone2_lea_voiced="images/ev/chapter1/MC Phone Call Lea Border.png"
        
        image mc_phone2val=DynamicDisplayable(mcphone_val_voiced)
        image mc_phone2_val="images/ev/chapter1/MC Phone Call Val.png"
        image mc_phone2_val_voiced="images/ev/chapter1/MC Phone Call Val Border.png"
        
        # neo mc phone static
        image mc_phone2_glow open="images/ev/chapter1/MC Phone Glow On.png"
        image mc_phone2_glow calling="images/ev/chapter1/MC Phone Glow Calling.png"
        image mc_phone2_switch="images/ev/chapter1/MC Phone Call Switch.png"
        image mc_phone2_end="images/ev/chapter1/MC Phone Call End.png"
        image mc_phone2_off="images/ev/chapter1/MC Phone Off.png"
        image mc_phone2_notif="images/ev/chapter1/MC Phone Call Notif.png"
        
        
        # Functions
        init python:
            from datetime import timedelta
            from datetime import datetime
        
        
            def set_phone_notif(thevalue):
                global phone_notif
                phone_notif=thevalue
        
            def mcphone_lea_voiced(st,at):
                if renpy.music.is_playing("voice"):
                    return renpy.displayable("mc_phone2_lea_voiced"),0.2
                else:
                    return renpy.displayable("mc_phone2_lea"),0.2
        
        
            def mcphone_val_voiced(st,at):
                if renpy.music.is_playing("voice"):
                    return renpy.displayable("mc_phone2_val_voiced"),0.2
                else:
                    return renpy.displayable("mc_phone2_val"),0.2
        
            def skype_voiced(st,at):
                if renpy.music.is_playing("voice"):
                    return renpy.displayable("sy_skype_desk_voiced"),0.2
                else:
                    return renpy.displayable("sy_skype_desk"),0.2
        
        
            def test_slot_dict(slotnumber):
                try:
                    slot_savename=persistent.slot_dict["1-"+str(slotnumber)]
                except:
                    slot_savename=""
                return (slot_savename)
        
            def rename_slot_func(newstring):
                slot_realname="1-"+str(slotnumber)
                if len(newstring)>slot_extra_info_maxlen:
                    slot_extra_info=newstring[:slot_extra_info_maxlen]
                else:
                    slot_extra_info=newstring
                persistent.slot_dict[slot_realname]=slot_extra_info
        
            def update_slot(newstring):
                try:
                    persistent.slot_dict["1-"+str(slotnumber)]=newstring
                except:
                    dummy=0
        
        
            def getCurrentTime():
                t=datetime.now()
                return(t)
        
            def deltaTime(t):
                dt=datetime.now()-t
                return(dt)
        
            def label_callback(name, abnormal):
                store.current_label = name
        
            config.label_callback = label_callback
        
            if persistent.help_screens is None:
                persistent.help_screens=True
        
            if persistent.display_pathV is None:
                persistent.display_pathV=True
        
        # Images for composing menus
        # image ui_background = "ui/ui_background.png"
        init -2 python:
        
            style.quick_button.set_parent('default')
            style.quick_button.background = None
            style.quick_button.xpadding = 5
        
            style.quick_button_text.set_parent('default')
            style.quick_button_text.size = 20
            style.quick_button_text.idle_color = "#9999"
            style.quick_button_text.hover_color = "#ccc"
            style.quick_button_text.selected_idle_color = "#cc08"
            style.quick_button_text.selected_hover_color = "#cc0"
            style.quick_button_text.insensitive_color = "#4448"
        
            # Set a default value for the auto-forward time, and note that AFM is
            # turned off by default.
            config.default_afm_time = 10
            config.default_afm_enable = False
        
            config.thumbnail_width = 188
            config.thumbnail_height = 110
            file_page=1
        
            config.narrator_menu = True
        
            style.menu_window.set_parent(style.default)
            style.menu_choice.set_parent(style.button_text)
            style.menu_choice.clear()
            style.menu_choice_button.set_parent(style.button)
            #style.menu_choice_button.outlines=[(3, "#000", 0, 0)]
            style.menu_choice_button.xminimum = int(config.screen_width)
            style.menu_choice_button.xmaximum = int(config.screen_width)
            #style.menu_choice_button.xminimum = int(config.screen_width * 0.75)
            #style.menu_choice_button.xmaximum = int(config.screen_width * 0.75)
        
            style.mobile_menu_choice=Style(style.menu_choice)
            style.mobile_menu_choice.size = 27
        
            style.pref_slider.left_bar = "ui/slidebar.png" #full
            style.pref_slider.right_bar = "ui/slidebar_empty.png" #empty
        
            style.pref_slider.xmaximum = 213    # width of your left_bar image.
            style.pref_slider.ymaximum = 20    # height of your left_bar image.  Probably will be the height of the red part of the bar plus the slider's height.
        
            style.pref_slider.thumb = "ui/pixel.png"
            style.pref_slider.thumb_offset = 0.5    # Half of your thumb's width in pixels
            style.pref_slider.thumb_shadow = None
            isTitleScreen=0
        
            style.gm_nav_button.size_group = "gm_nav"
        
            #Style for maps
            style.map_button = Style(style.button_text)
            style.map_button.clear()
            #style.map_button.font="ui/minikstt.ttf"
            style.map_button.size=24
            style.map_button.color = "#FFF"
            style.map_button.hover_color = "#0F0"
            style.map_button.selected_color = "#FF0"
            style.map_button.outlines=[(3, "#777", 0, 0),(2, "#000", 0, 0)]
            #style.map_button.outlines=[(2, "#000", 0, 0)]
            style.map_button.background=None
            style.map_button.hover_background=None
            style.map_button.selected_background=None
            style.map_button.idle_background=None
            style.map_button.yminimum = 1
            style.map_button.xminimum = 1
        
            style.map_button_ss= Style(style.map_button)
            style.map_button_ss.size=60
            style.map_button_ss.hover_color = "#f17201"
        
            style.mobile_map_button = Style(style.map_button)
            #style.mobile_map_button.size=24
            style.mobile_map_button.outlines=[(2, "#777", 0, 0),(3, "#000", 0, 0)]
        
        
            style.mapyn_button = Style(style.map_button)
            style.mapyn_button.selected_color = "#FFF"
            #style.mapyn_button.font="ui/gorila.ttf"
            style.mapyn_button.size=32
            style.mapyn_button.color = "#FFF"
            style.mapyn_button.hover_color = "#f17201"
        
            #Style for signature
            style.sign_button = Style(style.map_button)
            style.sign_button.size=28
            style.sign_button.color="#9E9E9E"
            style.sign_button.outlines=[(1, "#9E9E9E", 0, 0)]
            style.sign_button.hover_color = "#f17201"
        
            #Style for chapters
            style.chapt = Style(style.map_button)
            style.chapt.clear()
            style.chapt.color="#f2e5b7"
            style.chapt.outlines=[(3, "#000", 0, 0)]
            style.chapt.font="ui/CALIST.ttf"
        
            #Style for WIP
            style.WIP = Style(style.map_button)
            style.WIP.clear()
            style.WIP.size=32
            style.WIP.color="#fff"
            style.WIP.outlines=[(1, "#666", 0, 0)]
            style.WIP.font="ui/CALIST.ttf"
        
            #Style for datelog
            style.complog = Style(style.map_button)
            style.complog.clear()
            style.complog.size=32
            style.complog.color="#fff"
            style.complog.outlines=[(3, "#000", 0, 0)]
            style.complog.font="ui/Courier Prime Code.ttf"
        
        
            #Style for datelog
            style.complog = Style(style.map_button)
            style.complog.clear()
            style.complog.size=32
            style.complog.color="#fff"
            style.complog.outlines=[(2, "#000", 0, 0)]
            style.complog.font="ui/segoeprb.ttf"
        
        
            #Styles for narration (dorn)
            # window style for narration
            style.dorn = Style(style.window)
            style.dorn.background = Frame("ui/null.png", 0, 0)
            style.dorn.left_padding = 30
            style.dorn.right_padding = 30
        
        
            # text style for narration
            style.dorn_text= Style(style.complog)
            style.dorn_text.size=28
            style.say_vbox.xfill=True
        
        
            #Style for navigatore
            style.navigatore_button = Style(style.button_text)
            style.navigatore_button.clear()
            style.navigatore_button.color = "#FFF"
            style.navigatore_button.hover_color = "#FFF"
            style.navigatore_button.selected_color = "#f17201"
            style.navigatore_button.outlines=[(1, "#000", 0, 0)]
            style.navigatore_button.size=18
            style.navigatore_button.font="ui/gorila.ttf"
            style.navigatore_button.background=None
            style.navigatore_button.hover_background=None
            style.navigatore_button.selected_background=None
            style.navigatore_button.idle_background=None
            style.navigatore_button.yminimum = 1
            style.navigatore_button.xminimum = 1
        
        
            #Style for preferences
            style.prefa_button = Style(style.button_text)
            style.prefa_button.clear()
            style.prefa_button.color = "#999"
            style.prefa_button.hover_color = "#f17201"
            style.prefa_button.selected_color = "#f17201"
            style.prefa_button.outlines=[(3, "#000", 0, 0),(2, "#fff", 0, 0)]
            style.prefa_button.size=20
            style.prefa_button.text_align=0.0
            style.prefa_button.font="ui/gorila.ttf"
            style.prefa_button.background=None
            style.prefa_button.hover_background=None
            style.prefa_button.selected_background=None
            style.prefa_button.idle_background=None
            style.prefa_button.yminimum = 1
            style.prefa_button.xminimum = 1
        
            #Style for language buttons
            style.lang_button = Style(style.button_text)
            style.lang_button.clear()
            #style.lang_button.font="ui/minikstt.ttf"
            style.lang_button.color = "#999"
            style.lang_button.hover_color = "#f17201"
            style.lang_button.selected_color = "#f17201"
            style.lang_button.outlines=[(2, "#333", 0, 0),(1, "#fff", 0, 0)]
            style.lang_button.size=21
            style.lang_button.text_align=0.0
            style.lang_button.background=None
            style.lang_button.hover_background=None
            style.lang_button.selected_background=None
            style.lang_button.idle_background=None
            style.lang_button.yminimum = 1
            style.lang_button.xminimum = 1
        
            #Styles for phone
            # Text
            style.phone=Style(style.button_text)
            style.phone.font="ui/DejaVuSans-Bold.ttf"
            style.phone.color="#fff"
            style.phone.size=22
            style.phone.outlines=[(0, "#ccc", 0, 0)]
        
            # Headers
            style.phone_h=Style(style.button_text)
            style.phone_h.font="ui/CatV_6x12_9.ttf"
            style.phone_h.color="#fff"
            style.phone_h.size=17
            style.phone_h.outlines=[(0, "#ccc", 0, 0)]
        
            # Styles for notebook
            style.notebook=Style(style.button_text)
            style.notebook.clear()
            style.notebook.text_align=0.0
            style.notebook.font="ui/Mali-ExtraLight.ttf"
            style.notebook.color="#72695a"
            style.notebook.size=20
            style.notebook.outlines=[(1, "#c3bdb3", 0, 0)]
        
        
        #Some default values here (because nowhere else to pt them)
        default helpmsg="Supposed to help"
        default helpimg="ui/null.png"
        
        #image ui_background = "ui/fog66.png"
        image pixl="ui/pixl.png"
        
        
        #Animation to add borders
        image borderu:
            "images/border.png"
            xalign 0.0 ypos 0
            linear 1.0 ypos 50
        
        image borderd:
            "images/border.png"
            xalign 0.0 ypos 820
            linear 1.0 ypos 770
        
        
        #Animations for Title Screen
        
        image one:
            "ui/Title_Sylvia.jpg"
        
        image two:
            im.Crop("images/ev/chapter2/lea_sun.jpg", (150, 0, 1074, 720))
            alpha 0.0
            pause 5
            linear 1.0 alpha 1.0
            pause 4
            alpha 0.0
            pause 5
            repeat
        
        image three:
            "ui/three.jpg"
            alpha 0.0
            pause 5
            pause 4
            linear 1.0 alpha 1.0
            pause 5
            linear 1.0 alpha 0.0
            repeat
        
        #Heart animations fo title
        image goodtitle:
            "images/char/icons/good.png"
            alpha 0.0
            pause 11.0
            zoom 0.2 xpos 0.4 ypos 0.5 alpha 0.1
            linear 2.0 zoom 0.4 xpos 0.35 ypos 0.1 alpha 0.5
            linear 1.0 alpha 0.0
            repeat
        
        image badtitle:
            "images/char/icons/bad.png"
            alpha 0.0
            pause 8.0
            zoom 0.2 xpos 0.1 ypos 0.5 alpha 0.1
            linear 2.0 zoom 0.4 xpos 0.05 ypos 0.1 alpha 0.5
            linear 1.0 alpha 0.0
            repeat
        
        image oktitle:
            "images/char/icons/ok.png"
            alpha 0.0
            pause 6.0
            zoom 0.2 xpos 0.25 ypos 0.5 alpha 0.1
            linear 2.0 zoom 0.4 xpos 0.2 ypos 0.1 alpha 0.5
            linear 1.0 alpha 0.0
            repeat
        
        # Hear in prefs
        image scoreheart:
            "images/char/icons/good.png"
            zoom 0.25 alpha 0.8 xalign 0.05 yalign 0.47
        
        #Animation heart in game
        
        image goodh:
            "images/char/icons/good.png"
            zoom 0.2 xpos 0.35 ypos 0.7 alpha 0.1
            linear 2.0 zoom 0.4 xpos 0.30 ypos 0.4 alpha 0.7
            linear 1.0 alpha 0.0
        
        image okh:
            "images/char/icons/ok.png"
            zoom 0.2 xpos 0.35 ypos 0.7 alpha 0.1
            linear 2.0 zoom 0.4 xpos 0.30 ypos 0.4 alpha 0.7
            linear 1.0 alpha 0.0
        
        image badh:
            "images/char/icons/bad.png"
            zoom 0.2 xpos 0.35 ypos 0.7 alpha 0.1
            linear 2.0 zoom 0.4 xpos 0.30 ypos 0.4 alpha 0.7
            linear 1.0 alpha 0.0
        
        screen phone2(phone2display,thedate,t):
            add phone2display xpos 200
        
            # add the display
            if phone2display=="mc_phone2lea":
                $ thename="Léa GONTRAND"
            elif phone2display=="mc_phone2val":
                $ thename="Valérie"
            else:
                $ thename=""
        
            if thename!="":
                $ xcenta=0.665
                $ ycenta=0.66
        
                use phone2call_display(t,thedate,thename,xcenta,ycenta)
        
                timer 0.25 repeat True action [SetVariable("is_phone_notified",phone_notif)]
        
                if is_phone_notified==True:
                    add "mc_phone2_notif":
                        at transform:
                            xpos 200
                            alpha 0.0
                            pause 0.25
                            linear 0.5 alpha 1.0
                            pause 0.75
                            linear 0.25 alpha 0.0
                            repeat
        
                    text ("Valérie calling...") style "phone" :
                        at transform:
                            xcenter xcenta ycenter ycenta-0.402
                            alpha 0.0
                            pause 0.25
                            linear 0.5 alpha 1.0
                            pause 0.75
                            linear 0.25 alpha 0.0
                            repeat
        
        
                add "mc_phone2_glow open" xpos 200
                add "mc_phone2_glow open" xpos 200
        
        screen audio_progress(audio_channel,interval,ShowMe,align_x,align_y,size_x,max_x):
            timer interval repeat True action [SetVariable("voice_playing",renpy.music.is_playing("voice"))]
        
            if renpy.music.is_playing("voice") and ShowMe==True:
                bar:
                    value AudioPositionValue(channel=audio_channel, update_interval=interval)
                    xalign align_x
                    yalign align_y
                    xsize size_x
                    xmaximum max_x
                    thumb None
        
        #########################################################################
        # Say
        #
        # Screen that's used to display adv-mode dialogue.
        # http://www.renpy.org/doc/html/screen_special.html#say
        screen say(who, what):
        
            #CUSTOM: display variables (can be switched off on preferences)
            if writer>1 and persistent.display_pathV==True:
                $ infovoice=_get_voice_info()
                $ dialogId=infovoice.auto_filename[len('voice/'+persistent.voicelang+'/'):-4]
        
                use audio_progress("voice",0.2,True,0.5,0.01,400,400)
        
            # temporary variables
                $ tempo_traced="  Voice playing: "+str(voice_playing)+"\nVoice file: "+infovoice.auto_filename+"\ndialogId: "+dialogId+"\n{color=#b0b}Label: "+store.current_label+"{/color}\n{color=#b0b0b0}"
                for memory_traced in memory_tracker:
                    $tempo_traced=tempo_traced+"\n"+str(memory_traced)+"="+str(checkMemory(memory_traced))
                $ tempo_traced=tempo_traced+"{/color}"
        
                if paths_enabled==True:
                    $ bestpath_screen=comparePaths()
                    text ("{color=#5eff6e}Last path choice="+str(player_choice)+"{/color}\n{color=#00a6ff}Léa status="+str(checkMemory("lea"))+"{/color}\nSylvia="+str(checkMemory("sypath"))+" Léa="+str(checkMemory("leapath"))+" Valérie="+str(checkMemory("valpath"))+"\nNo Paths="+str(checkMemory("nopath"))+" Rejected="+str(checkMemory("rejpath"))+"\n{color=#ffae00}Best Path(s)="+str(bestpath_screen))+"{/color}"+tempo_traced:
                        xalign 0.01
                        yalign 0.01
                        size 18
                else:
                    text ("\n{color=#00a6ff}Léa status="+str(checkMemory("lea")))+tempo_traced:
                        xalign 0.01
                        yalign 0.01
                        size 18
        
            # Defaults for side_image and two_window
            default side_image = None
            default two_window = False
        
            # Decide if we want to use the one-window or two-window varaint.
            if not two_window:
        
                # The one window variant.
                window:
                    id "window"
        
                    has vbox:
                        style "say_vbox"
        
                    if who:
                        text who id "who"
        
                    text what id "what"
        
            else:
        
                # The two window variant.
                vbox:
                    style "say_two_window_vbox"
        
                    if who:
                        window:
                            style "say_who_window"
        
                            text who:
                                id "who"
        
                    window:
                        id "window"
        
                        has vbox:
                            style "say_vbox"
        
                        text what id "what"
        
            # If there's a side image, display it above the text.
            if side_image:
                add side_image
            else:
                add SideImage() xalign 0.0 yalign 1.0
        
            # Use the quick menu.
            use quick_menu
        
        
        ##############################################################################
        # Choice
        #
        # Screen that's used to display in-game menus.
        # http://www.renpy.org/doc/html/screen_special.html#choice
        
        screen choice:
        
            if choice_line!="":
                text (choice_line) style "menu_choice_button" xcenter 0.5 ycenter 0.1
        
            window:
                style "menu_window"
                xalign 0.5
                yalign 0.5
        
                if renpy.mobile==False:
                    vbox:
                        style "menu"
                        spacing 4
        
                        for caption, action, chosen in items:
                            if action:
                                button:
                                    action action
                                    style "menu_choice_button"
        
                                    text caption style "menu_choice"
                            else:
                                text caption style "menu_caption"
                else:
                    vbox:
                        style "menu"
                        spacing 10
        
                        for caption, action, chosen in items:
                            if action:
                                button:
                                    action action
                                    style "menu_choice_button"
        
                                    text caption style "mobile_menu_choice"
                            else:
                                text caption style "menu_caption"
        
            use quick_menu
        
        ##############################################################################
        # Input
        #
        # Screen that's used to display renpy.input()
        # http://www.renpy.org/doc/html/screen_special.html#input
        
        screen input:
        
            window style "input_window":
                has vbox
        
                text prompt style "input_prompt"
                input id "input" style "input_text"
        
            use quick_menu
        
        ##############################################################################
        # Nvl
        #
        # Screen used for nvl-mode dialogue and menus.
        # http://www.renpy.org/doc/html/screen_special.html#nvl
        
        screen nvl:
        
            window:
                style "nvl_window"
        
                has vbox:
                    style "nvl_vbox"
        
                # Display dialogue.
                for who, what, who_id, what_id, window_id in dialogue:
                    window:
                        id window_id
        
                        has hbox:
                            spacing 10
        
                        if who is not None:
                            text who id who_id
        
                        text what id what_id
        
                # Display a menu, if given.
                if items:
        
                    vbox:
                        id "menu"
        
                        for caption, action, chosen in items:
        
                            if action:
        
                                button:
                                    style "nvl_menu_choice_button"
                                    action action
        
                                    text caption style "nvl_menu_choice"
        
                            else:
        
                                text caption style "nvl_dialogue"
        
            add SideImage() xalign 0.0 yalign 1.0
        
            use quick_menu
        
        ##############################################################################
        # Main Menu
        #
        # Screen that's used to display the main menu, when Ren'Py first starts
        # http://www.renpy.org/doc/html/screen_special.html#main-menu
        
        screen main_menu:
        
            # This ensures that any other menu screen is replaced.
            tag menu
        
            $ MMX=-50
            $ MMXT=0.02
            $ MMXD=-30
            $ MMY=360
        
            $ MMY2=MMY+18
            $ MMY2b=MMY2+1
            $ MMYD=50
            $ MMSX=693
            $ MMSY=43
            $ MI=0
        
        
            if neoui==1:
                #timer MM_deltaXTick repeat True action (SetVariable("MM_test",MM_test+1))
        
                add "MM_bg"
        
                add "MM_LeftTree"
        
                add "MM_RightTree" xalign 1.0
        
                add "MM_Light"
        
                add "MM_pattern" xpos 424 ypos 0
        
                add "MM_overlay" xpos 0 ypos 0
        
                add "MM_girls" xpos 588 ypos 111
        
                # ManorStories Logo
                imagemap:
                    idle "MM_logo"
                    hover "MM_logo_hover"
                    xcenter 0.95 ypos 0.9
                    hotspot (0,0,120,65) action OpenURL("https://www.patreon.com/manorstories")
        
        
                if renpy.can_load("quitsave"):
                    # Resume
                    imagemap:
                        idle "MM_button"
                        hover "MM_button_hover"
                        xpos MM_deltaX[MI]+MMX ypos MMY
                        hotspot (0, 0, MMSX, MMSY) action FileLoad("quitsave", slot=True)
        
                    textbutton _("Resume") style "mm_button" text_style "mm_button" xalign MMXT ycenter MMY2
                    $ MI+=1
        
        
                # New Game
                imagemap:
                    idle "MM_button"
                    hover "MM_button_hover"
                    xpos MM_deltaX[MI]+MMX+(MMXD*MI) ypos MMY+(MMYD*MI)
                    hotspot (0, 0, MMSX, MMSY) action Start()
        
                textbutton _("New Game") style "mm_button" text_style "mm_button" xalign MMXT ycenter MMY2+(MMYD*MI)
                $ MI+=1
        
        
                # Load
                imagemap:
                    idle "MM_button"
                    hover "MM_button_hover"
                    xpos MM_deltaX[MI]+MMX+(MMXD*MI) ypos MMY+(MMYD*MI)
                    hotspot (0, 0, MMSX, MMSY) action [SetVariable("pagechange",False),ShowMenu("load")]
        
                textbutton _("Load") style "mm_button" text_style "mm_button" xalign MMXT ycenter MMY2+(MMYD*MI)
                $ MI+=1
        
                # Settings
                imagemap:
                    idle "MM_button"
                    hover "MM_button_hover"
                    xpos MM_deltaX[MI]+MMX+(MMXD*MI) ypos MMY+(MMYD*MI)
                    hotspot (0, 0, MMSX, MMSY) action ShowMenu("preferences")
        
                textbutton _("Settings") style "mm_button" text_style "mm_button" xalign MMXT ycenter MMY2+(MMYD*MI)
                $ MI+=1
        
                # Extra
                imagemap:
                    idle "MM_button"
                    hover "MM_button_hover"
                    xpos MM_deltaX[MI]+MMX+(MMXD*MI) ypos MMY+(MMYD*MI)
                    #hotspot (0, 0, MMSX, MMSY) action ShowMenu("gallery1")
                    hotspot (0, 0, MMSX, MMSY) action Start("extras")
        
                textbutton _("Extras") style "mm_button" text_style "mm_button" xalign MMXT ycenter MMY2+(MMYD*MI)
                $ MI+=1
        
                # Credits
                #imagemap:
                #    idle "MM_button"
                #    hover "MM_button_hover"
                #    xpos MM_deltaX[MI]+MMX+(MMXD*MI) ypos (MMY)+(MMYD*MI)
                #    hotspot (0, 0, MMSX, MMSY) action Start("concepts3D_7")
        
                #textbutton _("Credits") style "mm_button" text_style "mm_button" xalign MMXT ycenter MMY2b+(MMYD*MI)
                #$ MI+=1
        
                # Exit
                imagemap:
                    idle "MM_button"
                    hover "MM_button_hover"
                    xpos MM_deltaX[MI]+MMX+(MMXD*MI) ypos MMY+(MMYD*MI)
                    hotspot (0, 0, MMSX, MMSY) action Quit(confirm=True)
        
                textbutton _("Quit") style "mm_button" text_style "mm_button" xalign MMXT ycenter MMY2b+(MMYD*MI)
                $ MI+=1
        
                # Support us
                imagemap:
                    idle "MM_button"
                    hover "MM_button_hover"
                    xpos MM_deltaX[MI]+MMX+(MMXD*MI) ypos (MMY)+(MMYD*MI)
                    hotspot (0, 0, MMSX, MMSY) action [OpenURL("https://www.patreon.com/manorstories")]
        
                textbutton _("Support us") style "mm_button" text_style "mm_button" xalign MMXT ycenter MMY2+(MMYD*MI)
        
                add "MM_title" xpos 64 ypos 136
        
                # Versions & dedicated to
                if dedicatedTo!="":
                    text _("{size=24}{font=ui/Daniel-Black.otf}[dedicatedTo]{/font}{/size}"):
                        xcenter 0.86
                        yalign 0.02
                        color "#f17201"
                        style "no_ol"
        
                    text ("{color=#666}{size=20}{b}[config.version]{/b}{/color}"):
                            xcenter 0.86
                            yalign 0.04
                            style "no_ol"
        
                else:
                    text ("{color=#666}{size=16}{b}[config.version]{/b}{/color}"):
                            xcenter 0.86
                            yalign 0.02
                            style "no_ol"
        
                # DEBUG
                #if MM_Frame>999:
                #    $ MM_Frame=0
                #timer MM_Tick repeat True action SetVariable("MM_Frame",MM_Frame+1)
                #text ("[MM_Frame]\n[MM_deltaX]") xpos 20 ypos 20
        
        
            else:
                add "White"
        
                add "one"
        
                add "two"
        
                add "three"
        
                add "goodtitle"
        
                add "badtitle"
        
                add "oktitle"
        
                if renpy.can_load("quitsave"):
                    #textbutton _("Resume") action FileLoad("quitsave", slot=True)
                    imagemap:
                        ground "ui/title_idle_r.png"
                        idle "ui/title_idle_r.png"
                        hover "ui/title_hover_r.png"
        
                        hotspot (1030,250,230,50) action FileLoad("quitsave", slot=True)
                        hotspot (1030, 305, 230,50) action Start()
                        hotspot (1030, 363, 230, 50) action [SetVariable("pagechange",False),ShowMenu("load")]
                        hotspot (1030, 419, 230, 50) action ShowMenu("preferences")
                        hotspot (1030, 475, 230, 50) action ShowMenu("gallery1")
                        hotspot (1030, 534, 230, 50) action Start("concepts3D_7")
                        hotspot (1030, 593, 230, 50) action Quit(confirm=True)
                        hotspot (1040, 670, 230, 40) action OpenURL("https://www.patreon.com/manorstories")
        
                    text _("{size=32}{font=ui/minikstt.ttf}Resume Game{/font}{/size}"):
                        xcenter 0.903
                        ycenter 275
                        color "#fff"
        
                    text _("{size=32}{font=ui/minikstt.ttf}Start Game{/font}{/size}"):
                        xcenter 0.903
                        ycenter 330
                        color "#fff"
                    text _("{size=32}{font=ui/minikstt.ttf}Load Game{/font}{/size}"):
                        xcenter 0.903
                        ycenter 387
                        color "#fff"
        
                    text _("{size=32}{font=ui/minikstt.ttf}Preferences{/font}{/size}"):
                        xcenter 0.903
                        ycenter 444
                        color "#fff"
                    text _("{size=32}{font=ui/minikstt.ttf}Gallery{/font}{/size}"):
                        xcenter 0.903
                        ycenter 501
                        color "#fff"
        
                    text _("{size=32}{font=ui/minikstt.ttf}Credits{/font}{/size}"):
                        xcenter 0.903
                        ycenter 559
        
                    text _("{size=32}{font=ui/minikstt.ttf}Exit{/font}{/size}"):
                        xcenter 0.903
                        ycenter 618
                        color "#fff"
        
                # Version with no quitslot
                else:
                    imagemap:
                        ground "ui/title_idle.png"
                        idle "ui/title_idle.png"
                        hover "ui/title_hover.png"
        
                        hotspot (1030, 250, 230,50) action Start()
                        hotspot (1030, 305, 230, 50) action [SetVariable("pagechange",False),ShowMenu("load")]
                        hotspot (1030, 363, 230, 50) action ShowMenu("preferences")
                        hotspot (1030, 419, 230, 50) action ShowMenu("gallery1")
                        hotspot (1030, 475, 230, 50) action Start("concepts3D_7")
                        hotspot (1030, 534, 230, 50) action Quit(confirm=True)
                        hotspot (1040, 670, 230, 40) action OpenURL("https://www.patreon.com/manorstories")
        
                # Version with no quitslot
                    text _("{size=32}{font=ui/minikstt.ttf}Start Game{/font}{/size}"):
                        xcenter 0.903
                        ycenter 275
                        color "#fff"
                    text _("{size=32}{font=ui/minikstt.ttf}Load Game{/font}{/size}"):
                        xcenter 0.903
                        ycenter 330
                        color "#fff"
        
                    text _("{size=32}{font=ui/minikstt.ttf}Preferences{/font}{/size}"):
                        xcenter 0.903
                        ycenter 387
                        color "#fff"
                    text _("{size=32}{font=ui/minikstt.ttf}Gallery{/font}{/size}"):
                        xcenter 0.903
                        ycenter 444
                        color "#fff"
        
                    text _("{size=32}{font=ui/minikstt.ttf}Credits{/font}{/size}"):
                        xcenter 0.903
                        ycenter 501
        
                    text _("{size=32}{font=ui/minikstt.ttf}Exit{/font}{/size}"):
                        xcenter 0.903
                        ycenter 559
                        color "#fff"
        
                    # Link to Patreon action OpenURL("https://www.patreon.com/manorstories")
                    add "ui/patreon.png" xcenter 1064 ycenter 0.96 zoom 1.2
        
                    text ("{color=#999}{size=16}Support us on Patreon{/size}{/color}"):
                            xcenter 0.92
                            ycenter 0.96
                            style "no_ol"
        
                    if dedicatedTo!="":
                        text _("{size=20}{font=ui/Daniel-Black.otf}[dedicatedTo]{/font}{/size}"):
                            xcenter 0.903
                            yalign 0.3
                            color "#f17201"
                            style "no_ol"
        
                        text ("{color=#444}{size=16}{b}[config.version]{/b}{/color}"):
                                xcenter 0.903
                                yalign 0.32
                                style "no_ol"
        
                    else:
                        text ("{color=#444}{size=16}{b}[config.version]{/b}{/color}"):
                                xcenter 0.903
                                yalign 0.31
                                style "no_ol"
        
        
        ##############################################################################
        # Navigation
        #
        # Screen that's included in other screens to display the game menu
        # navigation and background.
        # http://www.renpy.org/doc/html/screen_special.html#navigation
        screen navigation:
        
            # The background of the game menu.
            window:
                style "gm_root"
        
            # The various buttons.
            frame:
                style_group "gm_nav"
                xalign .98
                yalign .98
        
                has vbox
        
                textbutton _("Return") action Return()
                textbutton _("Preferences") action ShowMenu("preferences")
                textbutton _("Save Game") action [SetVariable("pagechange",False),ShowMenu("save")]
                textbutton _("Load Game") action [SetVariable("pagechange",False),ShowMenu("load")]
                textbutton _("Main Menu") action MainMenu()
                textbutton _("Help") action Help()
                textbutton _("Quit") action Quit()
        
        
        ##############################################################################
        # Save, Load
        #
        # Screens that allow the user to save and load the game.
        # http://www.renpy.org/doc/html/screen_special.html#save
        # http://www.renpy.org/doc/html/screen_special.html#load
        
        # Since saving and loading are so similar, we combine them into
        # a single screen, file_picker. We then use the file_picker screen
        # from simple load and save screens.
        
        
        # Renaming saves input
        # rename_slot_funct (actually saving?) is defined L65
        
        screen rename_slot():
            # test if we can load a save (mean can modify it)
            if renpy.can_load("1-"+str(slotnumber)):
                $ old_savename=test_slot_dict(slotnumber)
        
                if len(old_savename)==0:
                    $ old_savename = "%s" % (FileTime(slotnumber, empty=_("No save")))
                    $ old_savename = old_savename[14:]
        
                add "ui/helpbg.png":
                    xcenter 0.5
                    ycenter 0.5
                    alpha 0.95
                    xzoom 0.75 yzoom 0.6
        
                text _("{b}{size=30}Edit title for slot [slotnumber]"):
                    xalign 0.5
                    yalign 0.34
                    color "#fff"
        
                button:
                    id "rename_slot_input"
                    action NullAction()
                    xcenter 0.5
                    #background None
                    ycenter 0.45
                    xmaximum 500
                    ymaximum 42
                    add Input(style="no_ol",color="#fff",size=32,default=old_savename,changed=rename_slot_func,lenght=slot_extra_info_maxlen,button=renpy.get_widget("rename_slot","rename_slot_input"))
        
                textbutton _("{font=ui/gorila.ttf}{size=24}OK{/font}{/size}") style "mapyn_button" text_style "mapyn_button" xcenter 0.69 ycenter 0.61 action Hide("rename_slot")
                # when cancel is on the dict goes banana!!
                #textbutton _("{font=ui/gorila.ttf}{size=24}Cancel{/font}{/size}") style "mapyn_button" text_style "mapyn_button" xcenter 0.61 ycenter 0.61 action [update_slot(bkp_savename),Hide("rename_slot")]
            else:
                timer 0.1 repeat False action [Hide('rename_slot')]
        
        screen load_save_slot:
            # check in the dictionary
            $ TheSaveName=test_slot_dict(number)
            if len(TheSaveName)==0:
                $ file_text = "%2s. %s" % (
                                        FileSlotName(number, 199),
                                        FileTime(number, empty=_("No save")))
            else:
                $ file_text = "%2s. %s" % (FileSlotName(number, 199),TheSaveName)
        
            add FileScreenshot(number) xalign 0.47 yalign 0.35
            text "{size=16}{font=ui/danielbd.ttf}[file_text]{/font}{/size}" xalign 0.5 ypos 0.8 size 10 color "#000" style "no_ol"
        
        screen file_picker:
            # Determine what was the last save slot and start from his page
            if pagechange==False:
                $ lastsaved=renpy.newest_slot('1-')
                if lastsaved!=None:
                    $ file_page=int(math.ceil((int(lastsaved[2:]))/6.0))
                else:
                    $ file_page=1
        
        
            if file_page<=0:
                $ file_page=1
            elif file_page>=26:
                $ file_page=25
        
        
            imagemap:
                    xalign 0.2
                    yalign 0.6
                    ground "ui/loadsave_idle2.png"
                    hover "ui/loadsave_hover2.png"
                    selected_idle "ui/loadsave_selected.png"
        
                    #rank+((file_page-1)*6)
                    # (6, 3, 209, 202)
                    hotspot (0, 0, 220, 215) clicked FileAction(1+((file_page-1)*6)):
                        use load_save_slot(number=1+((file_page-1)*6))
                    hotspot (260, 0, 220, 215) clicked FileAction(2+((file_page-1)*6)):
                        use load_save_slot(number=2+((file_page-1)*6))
                    hotspot (521, 0, 221, 215) clicked FileAction(3+((file_page-1)*6)):
                        use load_save_slot(number=3+((file_page-1)*6))
                    hotspot (0, 221, 220, 215) clicked FileAction(4+((file_page-1)*6)):
                        use load_save_slot(number=4+((file_page-1)*6))
                    hotspot (260, 221, 220, 215) clicked FileAction(5+((file_page-1)*6)):
                        use load_save_slot(number=5+((file_page-1)*6))
                    hotspot (521, 221, 221, 215) clicked FileAction(6+((file_page-1)*6)):
                        use load_save_slot(number=6+((file_page-1)*6))
        
            if renpy.mobile==False:
                # for renaming function (desktop only)
                # lazy version of it TODO: make a button under loadable saves
                if rename_saves==1:
                    imagemap:
                            xalign 0.2
                            yalign 0.6
                            ground "ui/loadsave_rename_idle.png"
                            hover "ui/loadsave_rename_hover.png"
                            selected_idle "ui/loadsave_rename_selected.png"
        
                            hotspot (181, 176, 40, 40) clicked [SetVariable('slotnumber',(1+((file_page-1)*6))),Show("rename_slot")]
                            hotspot (441, 176, 40, 40) clicked [SetVariable('slotnumber',(2+((file_page-1)*6))),Show("rename_slot")]
                            hotspot (701, 176, 40, 40) clicked [SetVariable('slotnumber',(3+((file_page-1)*6))),Show("rename_slot")]
                            hotspot (181, 397, 40, 40) clicked [SetVariable('slotnumber',(4+((file_page-1)*6))),Show("rename_slot")]
                            hotspot (441, 397, 40, 40) clicked [SetVariable('slotnumber',(5+((file_page-1)*6))),Show("rename_slot")]
                            hotspot (701, 397, 40, 40) clicked [SetVariable('slotnumber',(6+((file_page-1)*6))),Show("rename_slot")]
        
                imagemap:
                    xpos 75
                    ypos 0
                    ground "ui/navi_page_idle.png"
                    hover "ui/navi_page_hover.png"
                    hotspot (988, 490, 75, 30) clicked ShowMenu(action_file,file_page=file_page-1,pagechange=True)
                    hotspot (1072, 490, 75, 30) clicked ShowMenu(action_file,file_page=file_page+1,pagechange=True)
        
                    text ("{size=18}{font=ui/gorila.ttf}Page -{/font}{/size}") xcenter 1025 ycenter 503
                    text ("{size=18}{font=ui/gorila.ttf}Page +{/font}{/size}") xcenter 1110 ycenter 503
        
            else:
                imagemap:
                    xcenter 0.9
                    ycenter 0.8
                    ground "ui/Mnavi_page_idle.png"
                    hover "ui/Mnavi_page_hover.png"
                    hotspot (0, 0, 92, 33) clicked ShowMenu(action_file,file_page=file_page-1,pagechange=True)
                    hotspot (103, 0,92 , 33) clicked ShowMenu(action_file,file_page=file_page+1,pagechange=True)
        
                    text ("{size=18}{font=ui/gorila.ttf}Page -{/font}{/size}") xcenter 45 ycenter 15
                    text ("{size=18}{font=ui/gorila.ttf}Page +{/font}{/size}") xcenter 150 ycenter 15
        
            text ("{size=22}{font=ui/gorila.ttf}- Page [file_page] -{/font}{/size}") xalign 0.37 yalign 0.9 size 28
        
        screen navigatore:
        
            if renpy.mobile==False:
                imagemap:
                    xpos 75
                    ypos 0
                    ground "ui/navi_main_idle.png"
                    idle "ui/navi_main_idle.png"
                    selected_idle "ui/navi_main_selected.png"
                    hover "ui/navi_main_hover.png"
        
                    hotspot (988, 240, 75, 75) action MainMenu()
                    hotspot (1072, 240, 75, 75) action ShowMenu("save")
                    hotspot (988, 324, 75, 75) action ShowMenu("load")
                    hotspot (1072,324, 75, 75) action ShowMenu("preferences")
                    hotspot (988, 407, 160, 75) action Return()
        
                    text _("Menu") style "navigatore_button" xcenter 1025 ycenter 275
                    text _("Save") style "navigatore_button" xcenter 1110 ycenter 275
                    text _("Load") style "navigatore_button" xcenter 1025 ycenter 360
                    text _("Prefs.") style "navigatore_button" xcenter 1110 ycenter 360
                    text _("Return") style "navigatore_button" xcenter 1067 ycenter 446 size 24
            else:
                imagemap:
                    ground "ui/Mnavi_main_idle.png"
                    idle "ui/Mnavi_main_idle.png"
                    selected_idle "ui/Mnavi_main_selected.png"
                    hover "ui/Mnavi_main_hover.png"
                    xcenter 0.9
                    ycenter 0.5
        
                    hotspot (0, 0, 92, 93) action MainMenu()
                    hotspot (104, 0, 92, 93) action ShowMenu("save")
                    hotspot (0, 105, 92, 90) action ShowMenu("load")
                    hotspot (104,105, 92, 90) action ShowMenu("preferences")
                    hotspot (0,200, 195, 100) action Return()
        
                    text _("Menu") style "navigatore_button" xcenter 45 ycenter 45 size 23
                    text _("Save") style "navigatore_button" xcenter 150 ycenter 45 size 23
                    text _("Load") style "navigatore_button" xcenter 45 ycenter 150 size 23
                    text _("Prefs.") style "navigatore_button" xcenter 150 ycenter 150 size 23
                    text _("Return") style "navigatore_button" xcenter 105 ycenter 255 size 27
        
        screen save:
            # This ensures that any other menu screen is replaced.
            tag menu
        
            add "images/bg/myoffice_b.jpg"
            add "images/black.png" alpha 0.6
            add "ui/fog66.png":
                alpha 0.5
        
        
            add "ui/bgg.png"
        
            use file_picker(action_file="save")
            #add "ui/h_save.png"
            text _("{font=ui/gorila.ttf}Save game{/font}"):
                xalign 0.37
                yalign 0.0
                size 72
                color "#fff"
                style "b_ol"
        
            use navigatore
        
        
        screen gallery_switch:
        
            $ gala="gallery"+str(gallery_page-1)
            $ galb="gallery"+str(gallery_page+1)
            if gallery_page==1:
                $ gala="gallery"+str(maxGallery)
            elif gallery_page==maxGallery:
                $ galb="gallery1"
        
            if renpy.mobile==False:
                imagemap:
                    xpos 75
                    ypos 0
                    ground "ui/navi_page_idle.png"
                    hover "ui/navi_page_hover.png"
                    hotspot (988, 490, 75, 30) action ShowMenu(gala)
                    hotspot (1072, 490, 75, 30) action ShowMenu(galb)
        
                    text ("{size=18}{font=ui/gorila.ttf}Page -{/font}{/size}") xcenter 1025 ycenter 503
                    text ("{size=18}{font=ui/gorila.ttf}Page +{/font}{/size}") xcenter 1110 ycenter 503
            else:
                imagemap:
                    xcenter 0.9
                    ycenter 0.8
                    ground "ui/Mnavi_page_idle.png"
                    hover "ui/Mnavi_page_hover.png"
                    hotspot (0, 0, 92, 33) clicked ShowMenu(gala)
                    hotspot (103, 0,92 , 33) clicked ShowMenu(galb)
        
                    text ("{size=18}{font=ui/gorila.ttf}Page -{/font}{/size}") xcenter 45 ycenter 15
                    text ("{size=18}{font=ui/gorila.ttf}Page +{/font}{/size}") xcenter 150 ycenter 15
        
        
        screen load:
            # This ensures that any other menu screen is replaced.
            tag menu
        
            add "images/bg/room_b.jpg"
            add "images/black.png" alpha 0.6
            add "ui/fog66g.png":
                alpha 0.5
        
            add "ui/bgg.png"
        
            use file_picker(action_file="load")
            #add "ui/h_load.png"
            text _("{font=ui/gorila.ttf}Load game{/font}"):
                xalign 0.37
                yalign 0.0
                size 72
                color "#fff"
                style "b_ol"
        
            use navigatore
        
        init -2 python:
            style.file_picker_frame = Style(style.menu_frame)
        
            style.file_picker_nav_button = Style(style.small_button)
            style.file_picker_nav_button_text = Style(style.small_button_text)
        
            style.file_picker_button = Style(style.large_button)
            style.file_picker_text = Style(style.large_button_text)
        
        ##############################################################################
        # Preferences
        #
        # Screen that allows the user to change the preferences.
        # http://www.renpy.org/doc/html/screen_special.html#prefereces
        
        
        screen preferences:
        
            tag menu
        
            add "images/bg/office_night_p.jpg"
            add "images/black.png" alpha 0.6
            add "ui/fog66r.png":
                alpha 0.4
        
            add "ui/bgg.png"
        
            text _("{font=ui/gorila.ttf}Settings{/font}"):
                xalign 0.37
                yalign 0.0
                size 72
                color "#fff"
                style "b_ol"
        
            if writer>1:
                text ("{font=ui/gorila.ttf}Paths{/font}"):
                    xcenter 0.13
                    ypos 100
                    size 28
                    color "#000"
                    style "w_ol"
        
                textbutton ("Show variables") style "prefa_button" text_style "prefa_button" xcenter 0.13 ypos 145 action SetVariable("persistent.display_pathV", True)
                textbutton ("Hide variables") style "prefa_button" text_style "prefa_button" xcenter 0.13 ypos 170 action SetVariable("persistent.display_pathV", False)
        
        
            imagemap:
                xalign 0.6
                yalign 0.6
                ground "ui/no_ground.png"
                bar pos (25, 80) value Preference("music volume") style "pref_slider"
                bar pos (25, 150) value Preference("voice volume") style "pref_slider"
                bar pos (25,220) value Preference("sfx volume") style "pref_slider"
                bar pos (306, 80) value Preference("text speed") style "pref_slider"
        
                text _("{font=ui/gorila.ttf}Audio{/font}"):
                    xpos 16
                    ypos 10
                    size 28
                    color "#000"
                    style "w_ol"
        
                text _("{font=ui/gorila.ttf}Music Volume{/font}"):
                    xpos 25
                    ypos 52
                    size 20
                    color "#999"
                    style "w_ol"
        
        
                text _("{font=ui/gorila.ttf}Voices Volume{/font}"):
                    xpos 25
                    ypos 122
                    size 20
                    color "#999"
                    style "w_ol"
        
        
                text _("{font=ui/gorila.ttf}SFX Volume{/font}"):
                    xpos 25
                    ypos 192
                    size 20
                    color "#999"
                    style "w_ol"
        
                text _("{font=ui/gorila.ttf}Texts{/font}"):
                    xpos 298
                    ypos 10
                    size 28
                    color "#000"
                    style "w_ol"
        
                text _("{font=ui/gorila.ttf}Text speed{/font}"):
                    xpos 306
                    ypos 52
                    size 20
                    color "#999"
                    style "w_ol"
        
                if writer>1:
                    text _("{font=ui/gorila.ttf}Text skip{/font}"):
                        xpos 298
                        ypos 145
                        size 28
                        color "#000"
                        style "w_ol"
        
                    textbutton _("All text") style "prefa_button" text_style "prefa_button" xcenter 420 ypos 200 action Preference("skip", "all")
                    textbutton _("Seen text only") style "prefa_button" text_style "prefa_button" xcenter 420 ypos 230 action Preference("skip", "seen")
        
                else:
                    text _("{font=ui/gorila.ttf}Help screens{/font}"):
                        xpos 298
                        ypos 145
                        size 28
                        color "#000"
                        style "w_ol"
        
                    textbutton _("Enabled") style "prefa_button" text_style "prefa_button" xcenter 420 ypos 200 action SetVariable("persistent.help_screens", True)
                    textbutton _("Disabled") style "prefa_button" text_style "prefa_button" xcenter 420 ypos 230 action SetVariable("persistent.help_screens", False)
        
        
                if renpy.mobile==False:
                    text _("{font=ui/gorila.ttf}Advanced{/font}{size=16} *{/size}"):
                        xpos 16
                        ypos 275
                        size 28
                        color "#000"
                        style "w_ol"
        
                    textbutton _("Always start from menu") style "prefa_button" text_style "prefa_button" xcenter 240 ypos 325 action Confirm("", [SetVariable("persistent.autoreload","no"),Jump('autoreload_proc')], ShowMenu('preferences'), confirm_selected=True)
                    textbutton _("Resume game directly") style "prefa_button" text_style "prefa_button" xcenter 240 ypos 360 action Confirm("",[SetVariable("persistent.autoreload","quitsave"),Jump('autoreload_proc')], ShowMenu('preferences'), confirm_selected=True)
        
                    if english_only==0:
                        textbutton _("Select language") style "prefa_button" text_style "prefa_button" xcenter 240 ypos 375 action Jump('language_chooser_persistent')
                    text _("* Game will restart to apply settings") xcenter 240 ypos 400 size 20
        
                elif renpy.mobile==False and english_only==0:
                    text _("{font=ui/gorila.ttf}Advanced{/font}{size=16} *{/size}"):
                        xpos 160
                        ypos 275
                        size 28
                        color "#000"
                        style "w_ol"
        
                    #if config.auto_load=="quitsave":
                    #    textbutton _("Start from menu") style "prefa_button" text_style "prefa_button" xcenter 240 ypos 325 action Jump('unset_autoreload')
                    #else:
                    #    textbutton _("Resume game directly") style "prefa_button" text_style "prefa_button" xcenter 240 ypos 325 action Jump('set_autoreload')
        
                    textbutton _("Select language") style "prefa_button" text_style "prefa_button" xcenter 240 ypos 330 action Jump('language_chooser_persistent')
                    text _("* Game will restart to apply settings") xcenter 420 ypos 400 size 20
        
        
        #Score/Potential
            add "scoreheart" xcenter 0.15 ycenter 435 alpha 0.8
            text _("{b}Story completion [score] %"):
                xcenter 0.15
                ycenter 422
                text_align 0.5
                color "#f00"
                style "w_ol"
        
            if renpy.mobile==False:
                $ yposo=-72
                text _("{font=ui/gorila.ttf}Display{/font}"):
                    xcenter 0.15
                    ypos 275+yposo #275
                    size 28
                    color "#000"
                    style "w_ol"
        
                textbutton _("Window") style "prefa_button" text_style "prefa_button" xcenter 0.15 ypos 325+yposo action Preference("display", "window") #325
                textbutton _("Fullscreen") style "prefa_button" text_style "prefa_button" xcenter 0.15 ypos 360+yposo action Preference("display", "fullscreen") #360
        
        # Helpers
        # Maybie a better way to do in renpy 7 is https://lemmasoft.renai.us/forums/viewtopic.php?p=498230#p498230
        # Keep in mind this menu have been written in renpy 6!
            if writer>1:
                text _("{font=ui/gorila.ttf}Help screens{/font}"):
                    xcenter 0.13
                    ypos 469
                    size 28
                    color "#000"
                    style "w_ol"
        
                textbutton _("Enabled") style "prefa_button" text_style "prefa_button" xcenter 0.13 yalign 0.73 action SetVariable("persistent.help_screens", True)
                textbutton _("Disabled") style "prefa_button" text_style "prefa_button" xcenter 0.13 ypos 554 action SetVariable("persistent.help_screens", False)
        
        
            use navigatore
        
        ##############################################################################
        # Yes/No Prompt
        #
        # Screen that asks the user a yes or no question.
        # http://www.renpy.org/doc/html/screen_special.html#yesno-prompt
        
        screen yesno_prompt:
        
            #add "ui_background"
            imagemap:
                ground "ui/yesno.png"
        
                text _("{font=ui/gorila.ttf}{size=32}Are you sure you want to do this ?{/size}{/font}"):
                    xalign 0.5
                    yalign 0.42
                    size 24
                    color "#fff"
                    #style "b_ol"
        
                textbutton _("{font=ui/gorila.ttf}{size=32}Yes{/font}{/size}") style "mapyn_button" text_style "mapyn_button" xalign 0.43 yalign 0.56 action yes_action
                textbutton _("{font=ui/gorila.ttf}{size=32}No{/font}{/size}") style "mapyn_button" text_style "mapyn_button" xalign 0.57 yalign 0.56 action no_action
        
        
        ##############################################################################
        # Help screens (to replace what narrator is saying sometimes)
        #
        #
        screen pleasewait():
            add "Black" alpha 0.5
            text _("Please wait ...") style "WIP" xcenter 0.5 yalign 0.66
        
            #timer time_wait repeat False action [Hide('pleasewait'),Return(value=None)]
        
        
        screen base_prompt:
            #add "ui_background"
            add "ui/helpbg.png":
                xcenter 0.5
                ycenter 0.5
                alpha 0.90
        
            text _("{font=ui/gorila.ttf}{size=32}Info{/size}{/font}"):
                xalign 0.5
                yalign 0.24
                color "#fff"
        
            text ("{size=24}"+helpmsg+"{/size}"):
                xpos 260
                ypos 220
                color "#fff"
        
            add helpimg xcenter 0.7 ycenter 0.35 zoom 2.1
        
            if store.current_label!="splashscreen":
                use quick_menu
        
        screen help_prompt:
            if persistent.help_screens:
                use base_prompt
                textbutton _("{font=ui/gorila.ttf}{size=24}OK{/font}{/size}") style "mapyn_button" text_style "mapyn_button" xcenter 0.7 ycenter 0.7 action Return(value=None)
                if help_disable_option!=1:
                    textbutton _("{font=ui/gorila.ttf}{size=24}Disable help messages{/font}{/size}") style "mapyn_button" text_style "mapyn_button" xcenter 0.4 ycenter 0.7 action SetVariable("persistent.help_screens", False)
            else:
                timer 0.1 repeat False action [Hide('help_prompt'),Return(value=None)]
        
        
        ##############################################################################
        # Quick Menu
        #
        # A screen that's included by the default say screen, and adds quick access to
        # several useful functions.
        
        screen quick_menu():
            $ no_quick_menu=0
            if renpy.get_screen("scene_selector_title") or renpy.get_screen("testers_title"):
                $ no_quick_menu=1
            else:
                $ qm_alpha=0.5
        
                if renpy.mobile==False:
                    if 'bag' in inventory:
                        imagemap:
                            ground "wbag"
                            hover "wbag_h"
                            xpos 950
                            ypos 678
        
                            hotspot (0, 0, 33, 32) action Show('inventory')
        
                    imagemap:
                        #ground "ui/w_tools.png"
                        ground "tools"
                        hover "tools_h"
                        xpos 984
                        ypos 678
        
                        hotspot (0, 0, 31, 32) action Rollback()
                        hotspot (32, 0, 31, 32) action ShowMenu('load')
                        hotspot (64, 0, 31, 32) action ShowMenu('save')
                        hotspot (96, 0, 31, 32) action Skip()
                        hotspot (128, 0, 31, 32) action ShowMenu('preferences')
                        hotspot (160, 0, 31, 32) action Quit()
                else:
                    if 'bag' in inventory:
                        imagemap:
                            ground "ui/Mw_bag.png"
                            hover "ui/Mo_bag.png"
                            xpos 770
                            ypos 666
                            hotspot (0, 0, 40, 40) action Show('inventory')
        
                    imagemap:
                        ground "ui/Mw_tools.png"
                        hover "ui/Mo_tools.png"
                        xpos 830
                        ypos 670
                        hotspot (0, 0, 40, 40) action Rollback()
                        hotspot (60, 0, 40, 40) action ShowMenu('load')
                        hotspot (120, 0, 40, 40) action ShowMenu('save')
                        hotspot (180, 0, 40, 40) action Skip()
                        hotspot (240, 0, 40, 40) action ShowMenu('preferences')
                        hotspot (300, 0, 30, 40) action Quit()
        
        
        ############################################################################
        # Patience bar (pourcentage)
        #
        # Une barre qui se rempli a mesure
        #
        # Pour monter/cacher ... ben un simple show screen patiencebar / hide screen paticencebar
        #
        # Animation du patiencebar
        #$ setpatience =  patience+step2patience
        # play sound ("sounds/patience.mp3")
        # while patience < setpatience:
        #    $ patience += 1
        #    pause 0.01
        
        screen patiencebar():
        
            add "ui/ui_bar2.png":
                #xpos 0
                xalign 0.5
                #ypos 522
                ypos 15
        
            #Call the class with patience value or do a simple crop
            add "ui/patiencebar2.png":
                xpos 780
                ypos 15
        
            add "ui/patiencebar2_empty.png":
                xpos 780
                ypos 15
                #crop (0,0,int(patience),24)
                crop (0,0,int(patience*2.2),24) #why this multiplication? does PatiencebarCCD have it (or should have it)?
        
        
            text ("{color=#fff}{size=20}([tries]/[maxtries]) {i}[instructions]{/i}{/size}{/color}"):
                xpos 280 ypos 15
        
            text ("{color=#fff}{size=20}"+str(int(patience))+" %{/size}{/color}"):
                xcenter 890 ypos 15
        
        screen testers_title:
        
            add "extras_bg":
                alpha 0.4
        
            text _("New Game") style "mm_button" xcenter 0.5 ycenter 0.1 size 50
        
            imagemap:
                idle "mm_back"
                hover "mm_back_hover"
                xcenter 0.05
                ycenter 0.92
                hotspot(0,0,72,60) action MainMenu(confirm=False)
        
            use quick_menu
        
            #text _("{font=ui/gorila.ttf}{color=#f17201}{size=58}{u}Start Menu{/u}{/size}{/color}{/font}"):
            #    xalign 0.5
            #    yalign 0.1
        
            #text _("{font=ui/gorila.ttf}{color=#fff}{size=58}Start Menu{/size}{/color}{/font}"):
            #    xalign 0.5
            #    yalign 0.1
        
            #text _("{font=ui/gorila.ttf}{color=#fff}{size=32}Select an option{/size}{/color}{/font}"):
            #    xalign 0.5
            #    yalign 0.2
        
            #textbutton __("{b}Back to main menu{/b}") style "map_button" text_style "map_button" xalign 0.1 yalign 0.9 action MainMenu(confirm=False)
        
        # COMPUTER WRITTING EFFECT (like type writter)
        # use variable datelog,datelogIndex
        screen datelog:
        
            $ timos_step=0.08
            #$ p_datelog=datelog[0:datelogIndex]
        
            timer timos_step repeat True action If( datelogIndex<len(datelog) , true=[SetVariable('datelogIndex', datelogIndex+1),SetVariable('p_datelog', datelog[0:datelogIndex]+"_"),Play ("sound","sounds/bipw2.mp3",False)],false=[SetVariable('p_datelog', datelog)])
        
            #index modulo 2>sound
            #if text[index] = space different sound
            text (p_datelog) style "complog" xalign 0.1 ycenter 0.85
        
            key "dismiss" action [SetVariable('datelogIndex',0),SetVariable('p_datelog',''),Return()]
            use quick_menu
        
        screen chapter():
            #TODO code snippet to reset those variables before return
            $ chapters=[(__("A suivre ..."),"","null"),(__("Chapitre 1"),__("Rencontres"),"ch1"),(__("Chapitre 2"),__("Expériences"),"ch2"),(__("Chapitre 3"),__("Héritages"),"ch3"),(__("Chapitre 4"),__("Décisions"),"ch4"),(__("Chapitre 5"),__("Conséquences"),"ch5"),(__("Chapitre Bonus"),__("Visite de resort beach"),"map")]
        
            $ timos_step=0.025
            $ chapterDef=chapters[chapterNum]
            $ alphastep=0.02
        
            if caswitch==0:
                timer timos_step repeat True action If(alpha0 > 0, true=[SetVariable('alpha0', alpha0 - alphastep)],false=[SetVariable('alpha0',0),SetVariable('caswitch',1)])
        
            elif caswitch==1:
                timer timos_step repeat True action If(alpha1 > 0, true=[SetVariable('alpha1', alpha1 - (alphastep/2))],false=[SetVariable('alpha1',0),SetVariable('caswitch',2)])
        
            add "images/black.png"
        
            #Blurred bg dim
            if chapterDef[2]!="ch5":
                add "images/chapt/"+chapterDef[2]+"b.jpg":
                    alpha 0.7
        
            else:
                add "images/chapt/"+chapterDef[2]+checkMemory('chosen_path')+"b.jpg":
                    alpha 0.7
                add chapterDef[2]+checkMemory('chosen_path')+"b":
                    alpha 0.7 xpos 348 ypos 232
        
            #Chapter text
            add "images/chapt/line_divider.png"
        
            textbutton ("{size=110}"+chapterDef[0]+"{/size}") style "chapt" xalign 0.5 ycenter 0.44 text_style "chapt"
            textbutton ("{size=80}"+chapterDef[1]+"{/size}") style "chapt" xalign 0.5 ycenter 0.64 text_style "chapt"
        
            #TODO Blurred bg no dim
            if chapterDef[2]!="ch5":
                add "images/chapt/"+chapterDef[2]+"b.jpg":
                    alpha alpha1
        
            else:
                add "images/chapt/"+chapterDef[2]+checkMemory('chosen_path')+"b.jpg":
                    alpha alpha1
                add chapterDef[2]+checkMemory('chosen_path')+"b":
                    alpha alpha1 xpos 348 ypos 232
        
            #Clear BG
            if chapterDef[2]!="ch5":
                add "images/chapt/"+chapterDef[2]+".jpg":
                    alpha alpha0
        
            else:
                add "images/chapt/"+chapterDef[2]+checkMemory('chosen_path')+".jpg":
                    alpha alpha0
                add chapterDef[2]+checkMemory('chosen_path'):
                    alpha alpha0 xpos 348 ypos 232
        
        
            key "dismiss" action [SetVariable('alpha0',1),SetVariable('alpha1',1),SetVariable('alpha2',1),Return()]
        
            if caswitch==2:
                use quick_menu
        
        screen chapter5(path5):
        
            $ chapterTitle=__("Chapitre 5")
            $ chapterSub=__("Conséquences")
            $ timos_step=0.025
            $ alphastep=0.02
            if path5=="prettypath":
                if checkMemory('lea_swim_version')!=None:
                    $ lea_swim=checkMemory('lea_swim_version')
                else:
                    $ lea_swim="S1"
        
        
            if caswitch==0:
                timer timos_step repeat True action If(alpha0 > 0, true=[SetVariable('alpha0', alpha0 - alphastep)],false=[SetVariable('alpha0',0),SetVariable('caswitch',1)])
        
            elif caswitch==1:
                timer timos_step repeat True action If(alpha1 > 0, true=[SetVariable('alpha1', alpha1 - (alphastep/2))],false=[SetVariable('alpha1',0),SetVariable('caswitch',2)])
        
            add "images/black.png"
        
        
            #Blurred bg dim
            if path5!="prettypath":
                add "images/chapt/"+path5+"/blur.jpg":
                    alpha 0.7
            else:
                add "images/chapt/"+path5+"/blur_"+lea_swim+".jpg":
                    alpha 0.7
        
        
            # Add animations blurred dimed
            if path5=="sypath":
                add "TeaCh5_b" alpha 0.7 xpos 810 ypos 0
            elif path5=="leapath":
                add "SunCh5_b" alpha 0.7 xpos 0 ypos 0
            #elif path5=="prettypath":
                #add "d1_b" alpha 0.7 xpos 229 ypos 0
                #add "d2_b" alpha 0.7 xpos 721 ypos 0
                #add "d3_b" alpha 0.7 xpos 1093 ypos 0
        
            # Add blurred animations specifics to path (if path=="sypath": ....)
            if path5=="sypath":
                add "TeaCh5_b" alpha alpha1 xpos 810 ypos 0
            elif path5=="leapath":
                add "SunCh5_b" alpha alpha1 xpos 0 ypos 0
            #elif path5=="prettypath":
                #add "d1_b" alpha alpha1 xpos 229 ypos 0
                #add "d2_b" alpha alpha1 xpos 721 ypos 0
                #add "d3_b" alpha alpha1 xpos 1093 ypos 0
        
        
            #Chapter text
            add "images/chapt/line_divider.png"
            textbutton ("{size=110}"+chapterTitle+"{/size}") style "chapt" xalign 0.5 ycenter 0.44 text_style "chapt"
            textbutton ("{size=80}"+chapterSub+"{/size}") style "chapt" xalign 0.5 ycenter 0.64 text_style "chapt"
        
            #TODO Blurred bg no dim
            if path5!="prettypath":
                add "images/chapt/"+path5+"/blur.jpg":
                    alpha alpha1
            else:
                add "images/chapt/"+path5+"/blur_"+lea_swim+".jpg":
                    alpha alpha1
        
            #Clear BG
            if path5!="prettypath":
                add "images/chapt/"+path5+"/clear.jpg":
                    alpha alpha0
            else:
                add "images/chapt/"+path5+"/clear_"+lea_swim+".jpg":
                    alpha alpha0
        
            # Add clear animations specifics to path (if path=="sypath": ....)
            if path5=="sypath":
                add "TeaCh5" alpha alpha0 xpos 810 ypos 0
            elif path5=="leapath":
                add "SunCh5" alpha alpha0 xpos 0 ypos 0
            elif path5=="prettypath":
                add "d1" alpha alpha0 xpos 229 ypos 0
                add "d2" alpha alpha0 xpos 721 ypos 0
                add "d3" alpha alpha0 xpos 1093 ypos 0
        
            key "dismiss" action [SetVariable('alpha0',1),SetVariable('alpha1',1),SetVariable('alpha2',1),Return()]
            if caswitch==2:
                use quick_menu
        
        # skip minigame screen (TODO : add this to the preferences and persistent)
        screen skip_minigames:
        
            tag menu
        
            add "ui/helpbg.png":
                zoom 1
                alpha 0.98
                xcenter 0.5
                ycenter 0.5
        
            text _("{font=ui/gorila.ttf}{size=32}Mini Games{/size}{/font}"):
                xalign 0.5
                yalign 0.23
                color "#fff"
        
            textbutton _("Allow mini games") style "lang_button" text_style "lang_button" xpos 375 ypos 240 action [SetVariable("minigames","normal")]
        
            text ("{size=18}Play minigames and get the full experience.{/size}"):
                xpos 300
                ypos 250
                color "#fff"
        
            #textbutton _("Skip mini games") style "lang_button" text_style "lang_button" xpos 370 ypos 340 action [SetVariable("minigames","skip")]
            textbutton _("Skip mini games") style "lang_button" text_style "lang_button" xpos 370 ypos 340 action [SetVariable("minigames","normal")]
        
        
            text ("{size=18}Mini Games will be skipped for those willing to concentrate on the story.\nA pop-up window will give you a short description to help to catch up on the story.{/size}"):
                xpos 300
                ypos 350
                color "#fff"
        
            textbutton _("{font=ui/gorila.ttf}{size=24}OK{/font}{/size}") style "mapyn_button" text_style "mapyn_button" xalign 0.74 ypos 490 action Return() #ShowMenu("preferences")
        
        
        # integrate a language selector for all voices in system
        # screen language chooser will be displayed when persistent is false using voice completion
        # the voice completion screen will also be reused in preferences (see voice over status)
        # preferences will have additional text for language
        
        
        screen language_chooser:
        
            #add "ui_background"
            add "ui/helpbg.png":
                zoom 1.2
                alpha 1.0
                xcenter 0.5
                ycenter 0.5
        
            text _("{font=ui/gorila.ttf}{size=32}Language / Langue{/size}{/font}"):
                xalign 0.5
                yalign 0.18
                color "#fff"
        
            text ("{size=24}{b}Texts / Textes :{/b}{/size}"):
                xpos 240
                ypos 220
                color "#fff"
        
            textbutton _("English") style "lang_button" text_style "lang_button" xpos 290 ypos 260 action [SetVariable("textlang","english")] #style "mapyn_button" text_style "mapyn_button"
            textbutton _("Français") style "lang_button" text_style "lang_button" xpos 390 ypos 260 action [SetVariable("textlang","france")] #style "mapyn_button" text_style "mapyn_button"
        
        
            text ("{size=24}{b}Voices / Voix :{/b}{/size}"):
                xpos 240
                ypos 320
                color "#fff"
        
            textbutton _("English") style "lang_button" text_style "lang_button" xpos 290 ypos 360 action [SetVariable("voicelang","english")] #style "mapyn_button" text_style "mapyn_button"
            textbutton _("Français") style "lang_button" text_style "lang_button" xpos 390 ypos 360 action [SetVariable("voicelang","france")] #style "mapyn_button" text_style "mapyn_button"
        
            text ("{size=18}French version only include Sylvia and Valérie.\nEnglish version covers all main characters.\n\nSeules les voix de Sylvia et de Valérie sont disponibles en français.\nLa version anglaise propose les voix de tous les personnages.{/size}"):
                xpos 500
                ypos 235
                color "#fff"
        
            if persistent.previous_lang==True:
                text ("{size=18}The game will restart once you press OK\nLe jeu va redémarrer quand vous cliquerez sur OK{/size}"):
                    xcenter 0.5
                    yalign 0.72
                    color "#fff"
        
            textbutton _("{font=ui/gorila.ttf}{size=24}OK{/font}{/size}") style "mapyn_button" text_style "mapyn_button" xalign 0.8 yalign 0.75 action Jump('language_processing') #[Return(value=None)]#,Hide("language_chooser")]
        
        ########################################
        # EXIT screen
        screen escapeit(screenToHide):
            if renpy.mobile==True:
                $ tsize="{size=24}"
            else:
                $ tsize="{size=20}"
            textbutton tsize+"[esc_textToDisplay]{/size}" xcenter 0.85 yalign 0.05 style "mapyn_button" text_style "mapyn_button" action [SetVariable("esc_textToDisplay",""),Hide(screenToHide),Jump(esc_labelToGo)]
        
        #########################################
        # W.I.P.
        screen workinprogress:
            text _("Work in progress ...") style "WIP" xalign 0.05 yalign 0.05
        
        screen workinprogress_r:
            text _("Work in progress ...") style "WIP" xalign 0.95 yalign 0.05
        
        screen camtext(camtext):
            text camtext style "WIP" color "#22F" xcenter 0.8 yalign 0.05
        
        #########################################
        # Phone
        
        screen phone2call_display(t,thedate,thename,xcenta,ycenta):
            $ dt=deltaTime(t)
            $ sdt=str(dt)[:7]
            $ thenow=thedate+dt
            $ theday=str(thenow)[:10]
            $ thetime=str(thenow)[11:16]
        
            text ("{alpha=0.6}{size=-1}BanaNET{/size}{size=-4} [theday] [thetime]{/size}{size=-2}{b} 4G{/b}{/size}{/alpha}") xcenter xcenta-0.015 ycenter ycenta-0.468 style "phone_h" color "#FFFEFF"
            text ("[thename]") xcenter xcenta ycenter ycenta-0.4 style "phone"
            text _("{size=-6} Call in progress ...{/size}") xcenter xcenta ycenter ycenta style "phone"
            text ("{size=+2}[sdt]{/size}") xcenter xcenta ycenter ycenta+0.04 style "phone_h"
        
            timer 1 repeat True action SetVariable('dt', deltaTime(t))
        
        screen phone_display(t,thedate,thename):
            $ dt=deltaTime(t)
            $ sdt=str(dt)[:7]
            $ thenow=thedate+dt
            $ theday=str(thenow)[:10]
            $ thetime=str(thenow)[11:16]
        
            text ("{alpha=0.6}{size=-1}BanaNET{/size}{size=-4} [theday] [thetime]{/size} {size=-2}{b}4G+{/b}{/size}{/alpha}") xcenter 0.495 ycenter 0.192 style "phone_h" color "#FFFEFF"
            text ("[thename]") xcenter 0.51 ycenter 0.26 style "phone"
            text _("{size=-6}Call in progress ...{/size}") xcenter 0.51 ycenter 0.66 style "phone"
            text ("{size=+2}[sdt]{/size}") xcenter 0.51 ycenter 0.7 style "phone_h"
        
            timer 1 repeat True action SetVariable('dt', deltaTime(t))
        
        ########################################
        # Narration
        # we assume a variable index_na=0 and time_na=0
        # and text_na
        
        screen narration_display():
            $ txt_tab=text_na.split("\n")
            $ txt_linum=0
        
            for item in txt_tab:
                text "{size=-2}"+item.strip()+"{/size}" style "complog" xcenter 0.5 ycenter 0.85+(txt_linum*0.05)
                $ txt_linum+=1
        
            #use quick_menu
            # think about the sound!
        
            key "dismiss" action [Stop(channel="V0"),Hide('narration_display'),Jump(jumpto_na)]
        
        ##############################################################################
        # Choice with parametrized positions
        #
        # Screen that's used to display in-game menus.
        # http://www.renpy.org/doc/html/screen_special.html#choice
        
        screen choice_pos(relativePos):
        
            #$ shuffle(p_topics)
            window:
                style "menu_window"
                xalign relativePos[0]
                yalign relativePos[1]
        
                vbox:
                    style "menu"
                    spacing 2
        
                    for topics in p_topics:
                        button:
                            xcenter relativePos[0]
                            ycenter relativePos[1]
                            action Return(topics[0])
                            style "menu_choice_pos_button"
                            text topics[1] style "menu_choice"
        
            use quick_menu


         

        0