diff --git a/game/gui.rpy b/game/gui.rpy index 858ef3f..c608675 100644 --- a/game/gui.rpy +++ b/game/gui.rpy @@ -11,7 +11,8 @@ init offset = -2 init python: gui.init(1920, 1080) - +## Enable checks for invalid or unstable properties in screens or transforms +#define config.check_conflicting_properties = True ################################################################################ ## GUI Configuration Variables @@ -362,6 +363,8 @@ define config.history_length = 250 ## the cost of performance. define gui.history_height = 210 +define gui.history_spacing = 0 + ## The position, width, and alignment of the label giving the name of the ## speaking character. define gui.history_name_xpos = 233 @@ -419,6 +422,7 @@ define gui.nvl_thought_xalign = 0.0 define gui.nvl_button_xpos = 675 define gui.nvl_button_xalign = 0.0 + ## Localization ################################################################ ## This controls where a line break is permitted. The default is suitable diff --git a/game/gui/bubble.png b/game/gui/bubble.png new file mode 100644 index 0000000..3b23ff3 Binary files /dev/null and b/game/gui/bubble.png differ diff --git a/game/gui/debug.webp b/game/gui/debug.webp deleted file mode 100644 index fdcd139..0000000 Binary files a/game/gui/debug.webp and /dev/null differ diff --git a/game/gui/thoughtbubble.png b/game/gui/thoughtbubble.png new file mode 100644 index 0000000..8d5d44b Binary files /dev/null and b/game/gui/thoughtbubble.png differ diff --git a/game/options.rpy b/game/options.rpy index ce0527b..563679c 100644 --- a/game/options.rpy +++ b/game/options.rpy @@ -48,7 +48,7 @@ define build.name = "SnootGame" define config.has_sound = True define config.has_music = True -define config.has_voice = False +define config.has_voice = True define config.play_channel = "uisounds" @@ -133,6 +133,8 @@ default preferences.text_cps = 50 default preferences.afm_time = 15 +## Snoot-specific config variables + define config.developer = "auto" default persistent.enable_debug_scores = config.developer @@ -140,6 +142,7 @@ default persistent.enable_chapter_select = config.developer default persistent.lewd = False default persistent.autoup = False default persistent.show_mod_screenshots = True +default persistent.gallery_edgescroll = True init -1000 python: if persistent.newmods_default_state == None: @@ -237,9 +240,9 @@ init python: build.documentation('*.txt') -## A Google Play license key is required to download expansion files and perform -## in-app purchases. It can be found on the "Services & APIs" page of the Google -## Play developer console. +## A Google Play license key is required to perform in-app purchases. It can be +## found in the Google Play developer console, under "Monetize" > "Monetization +## Setup" > "Licensing". # define build.google_play_key = "..." diff --git a/game/screens.rpy b/game/screens.rpy index 56b92c0..c8b2019 100644 --- a/game/screens.rpy +++ b/game/screens.rpy @@ -194,7 +194,7 @@ screen input(prompt): window: add Image("gui/textbox_no_hitch.png", xalign=0.5, yalign=1.0, yoffset=gui.input_yoffset) #for mobile OSK vbox: - xalign gui.dialogue_text_xalign + xanchor gui.dialogue_text_xalign xpos gui.dialogue_xpos xsize gui.dialogue_width ypos gui.dialogue_ypos @@ -251,7 +251,7 @@ style choice_button is default: activate_sound "audio/ui/uiRollover.wav" style choice_button_text is default: - properties gui.button_text_properties("choice_button") + properties gui.text_properties("choice_button") ## Quick Menu screen ########################################################### @@ -259,24 +259,25 @@ style choice_button_text is default: ## The quick menu is displayed in-game to provide easy access to the out-of-game ## menus. -screen quick_button(filename, label, function): +screen quick_button(filename, label, function=NullAction(), function2=NullAction()): button: xsize 71 ysize 71 action function + alternate function2 if 'Return' in label or 'Back' in label or 'Menu' in label: activate_sound "audio/ui/uiBack.wav" else: activate_sound "audio/ui/uiClick.wav" fixed: add filename xalign 0.5 yalign 0.5 zoom 1 - text label xalign 0.5 yalign 0.5 xanchor 0.5 size 22 style "quick_button_text" + text label xalign 0.5 yalign 0.5 size 22 style "quick_button_text" # label_functions is [ [ "label", function() ], [ "foobar", foobar() ], .. ] # Reuse the same image string and keep things 'neat'. screen quick_buttons(filename, label_functions): for l_f in label_functions: - use quick_button(filename, l_f[0], l_f[1]) + use quick_button(filename, l_f[0], l_f[1], l_f[2]) screen quick_menu(): @@ -292,27 +293,12 @@ screen quick_menu(): use quick_buttons("gui/button/uioptionbuttons/template_idle.png", [ - [ _("Skip"), Skip() ], - [ _("Save"), ShowMenu('save') ], - [ _("Auto"), Preference("auto-forward", "toggle") ], - [ _("Load"), ShowMenu('load') ] + [ _("Skip"), Skip(), Skip(fast=True, confirm=True) ], + [ _("Save"), ShowMenu('save'), NullAction() ], + [ _("Auto"), Preference("auto-forward", "toggle"), NullAction() ], + [ _("Load"), ShowMenu('load'), NullAction() ] ] ) -screen score_menu(): - zorder 100 - window: - background "gui/debug.webp" - xalign -1.0 - yalign 0.0 - grid 1 3: - style_prefix "score" - xalign 0.0 - yalign 0.0 - text "anons: " + str(anonscore) - text "fang: " + str(fangscore) - text "DEBUG SCORE CARD" - - ## This code ensures that the quick_menu screen is displayed in-game, whenever ## the player has not explicitly hidden the interface. init python: @@ -359,7 +345,7 @@ screen navigation(): textbutton _("Load") activate_sound "audio/ui/uiClick.wav" action ShowMenu("load") textbutton _("Delete") activate_sound "audio/ui/uiClick.wav" action ShowMenu("delete") - if config.developer or persistent.enable_chapter_select: + if persistent.enable_chapter_select: textbutton _("Chapter Select") activate_sound "audio/ui/uiClick.wav" action Start("chapter_select") textbutton _("Options") activate_sound "audio/ui/uiClick.wav" action ShowMenu("preferences") @@ -390,7 +376,7 @@ style navigation_button: properties gui.button_properties("navigation_button") style navigation_button_text: - properties gui.button_text_properties("navigation_button") + properties gui.text_properties("navigation_button") ## Main Menu screen ############################################################ @@ -410,8 +396,8 @@ screen main_menu_button(filename, label, function): else: activate_sound "audio/ui/uiClick.wav" fixed: - add filename xalign 0.5 yalign 0.5 zoom 1 xanchor 0 xcenter 0.5 ycenter 0.5 - text label xalign 0.5 yalign 0.5 xanchor 0.5 + add filename xalign 0.5 yalign 0.5 zoom 1 + text label xalign 0.5 yalign 0.5 image bonus_flash: @@ -437,23 +423,21 @@ image template_black: screen bonus_chapter_button(f="gui/button/menubuttons/template_idle.png"): #("gui/button/menubuttons/template_idle.png", "Bonus Chapters", ShowMenu("ex_ch_menu")) button: - xmaximum 500 - ymaximum 129 xysize (500, 129) action ShowMenu("ex_ch_menu") activate_sound "audio/ui/uiClick.wav" fixed: if (persistent.old_endings != persistent.endings) or (persistent.bonus_chapters != persistent.old_bonus_chapters and (persistent.bonus_chapters == 0b111111111)): - add "bonus_flash" xalign 0.5 yalign 0.5 zoom 1 xanchor 0 xcenter 0.5 ycenter 0.5 + add "bonus_flash" xalign 0.5 yalign 0.5 zoom 1 $ persistent.old_endings = persistent.endings #$ persistent.old_bonus_chapters = persistent.bonus_chapters else: - add f xalign 0.5 yalign 0.5 zoom 1 xanchor 0 xcenter 0.5 ycenter 0.5 + add f xalign 0.5 yalign 0.5 zoom 1 if (persistent.old_bonus_chapters != persistent.bonus_chapters): #just in case $ persistent.old_bonus_chapters = persistent.bonus_chapters - text "Bonus Chapters" xalign 0.5 yalign 0.5 xanchor 0.5 + text "Bonus Chapters" xalign 0.5 yalign 0.5 # label_functions is [ [ "label", function() ], [ "foobar", foobar() ], .. ] # Reuse the same image string and keep things 'neat'. @@ -592,11 +576,11 @@ style main_menu_ex_frame is main_menu_frame ## This lays out the basic common structure of a game menu screen. It's called ## with the screen title, and displays the background, title, and navigation. ## -## The scroll parameter can be None, or one of "viewport" or "vpgrid". When -## this screen is intended to be used with one or more children, which are +## The scroll parameter can be None, or one of "viewport" or "vpgrid". +## This screen is intended to be used with one or more children, which are ## transcluded (placed) inside it. -screen game_menu(title, scroll=None, yinitial=0.0): +screen game_menu(title, scroll=None, yinitial=0.0, spacing=0): style_prefix "game_menu" @@ -629,6 +613,8 @@ screen game_menu(title, scroll=None, yinitial=0.0): side_yfill True vbox: + spacing spacing + transclude elif scroll == "vpgrid": @@ -644,6 +630,8 @@ screen game_menu(title, scroll=None, yinitial=0.0): side_yfill True + spacing spacing + transclude else: @@ -894,27 +882,41 @@ screen file_slots(title, flag=False): key "save_delete" action FileDelete(slot) ## Buttons to access other pages. - hbox: + vbox: style_prefix "page" xalign 0.5 yalign 1.0 + hbox: + xalign 0.5 - spacing gui.page_spacing + spacing gui.page_spacing - textbutton _("<") activate_sound "audio/ui/uiRollover.wav" action FilePagePrevious() + textbutton _("<") activate_sound "audio/ui/uiRollover.wav" action FilePagePrevious() + key "save_page_prev" action FilePagePrevious() - if config.has_autosave: - textbutton _("{#auto_page}A") activate_sound "audio/ui/uiClick.wav" action FilePage("auto") + if config.has_autosave: + textbutton _("{#auto_page}A") activate_sound "audio/ui/uiClick.wav" action FilePage("auto") - if config.has_quicksave: - textbutton _("{#quick_page}Q") activate_sound "audio/ui/uiClick.wav" action FilePage("quick") + if config.has_quicksave: + textbutton _("{#quick_page}Q") activate_sound "audio/ui/uiClick.wav" action FilePage("quick") - ## range(1, 10) gives the numbers from 1 to 9. - for page in range(1, 10): - textbutton "[page]" activate_sound "audio/ui/uiClick.wav" action FilePage(page) + ## range(1, 10) gives the numbers from 1 to 9. + for page in range(1, 10): + textbutton "[page]" activate_sound "audio/ui/uiClick.wav" action FilePage(page) - textbutton _(">") activate_sound "audio/ui/uiRollover.wav" action FilePageNext(max=9) + textbutton _(">") activate_sound "audio/ui/uiRollover.wav" action FilePageNext(max=9) + key "save_page_next" action FilePageNext() + + if config.has_sync: + if CurrentScreenName() == "save": + textbutton _("Upload Sync"): + action UploadSync() + xalign 0.5 + else: + textbutton _("Download Sync"): + action DownloadSync() + xalign 0.5 style page_label is gui_label @@ -932,7 +934,7 @@ style page_label: ypadding 5 style page_label_text: - text_align 0.5 + textalign 0.5 layout "subtitle" hover_color gui.hover_color @@ -940,13 +942,13 @@ style page_button: properties gui.button_properties("page_button") style page_button_text: - properties gui.button_text_properties("page_button") + properties gui.text_properties("page_button") style slot_button: properties gui.button_properties("slot_button") style slot_button_text: - properties gui.button_text_properties("slot_button") + properties gui.text_properties("slot_button") ## Preferences screen ########################################################## @@ -998,12 +1000,11 @@ screen preferences(): textbutton _("After Choices") action [Function(onclick_audio, preferences.skip_after_choices), ToggleVariable("preferences.skip_after_choices", True, False)] textbutton _("Transitions") action [Function(onclick_audio, preferences.transitions, True), ToggleVariable("preferences.transitions", 0, 2)] - if config.developer: - vbox: - style_prefix "check" - label _("Developer Tools") - textbutton _("Enable Debug Scores") action ToggleVariable("persistent.enable_debug_scores", True, False) - textbutton _("Enable Chapter Select") action ToggleVariable("persistent.enable_chapter_select", True, False) + vbox: + style_prefix "check" + label _("Developer Tools") + textbutton _("Enable Debug Scores") action ToggleVariable("persistent.enable_debug_scores", True, False) + textbutton _("Enable Chapter Select") action ToggleVariable("persistent.enable_chapter_select", True, False) vbox: style_prefix "check" @@ -1018,6 +1019,11 @@ screen preferences(): else: $ debug_story_variables(False) + vbox: + style_prefix "check" + label _("Gallery") + textbutton _("Enable Edgescrolling") action [Function(onclick_audio, persistent.gallery_edgescroll), ToggleVariable("persistent.gallery_edgescroll", True, False)] + vbox: xsize 676 style_prefix "check" @@ -1143,7 +1149,7 @@ style radio_button: foreground "gui/button/radio_[prefix_]foreground.png" style radio_button_text: - properties gui.button_text_properties("radio_button") + properties gui.text_properties("radio_button") style check_vbox: spacing gui.pref_button_spacing @@ -1153,7 +1159,7 @@ style check_button: foreground "gui/button/check_[prefix_]foreground.png" style check_button_text: - properties gui.button_text_properties("check_button") + properties gui.text_properties("check_button") style slider_slider: xsize 525 @@ -1164,7 +1170,7 @@ style slider_button: left_margin 15 style slider_button_text: - properties gui.button_text_properties("slider_button") + properties gui.text_properties("slider_button") style slider_vbox: xsize 675 @@ -1185,7 +1191,7 @@ screen history(): ## Avoid predicting this screen, as it can be very large. predict False - use game_menu(_("History"), scroll=("vpgrid" if gui.history_height else "viewport"), yinitial=1.0): + use game_menu(_("History"), scroll=("vpgrid" if gui.history_height else "viewport"), yinitial=1.0, spacing=gui.history_spacing): style_prefix "history" @@ -1244,7 +1250,7 @@ style history_name: style history_name_text: min_width gui.history_name_width - text_align gui.history_name_xalign + textalign gui.history_name_xalign style history_text: xpos gui.history_text_xpos @@ -1252,7 +1258,7 @@ style history_text: xanchor gui.history_text_xalign xsize gui.history_text_width min_width gui.history_text_width - text_align gui.history_text_xalign + textalign gui.history_text_xalign layout ("subtitle" if gui.history_text_xalign else "tex") style history_label: @@ -1291,7 +1297,7 @@ screen extrasnavigation(): vbox: spacing 10 xpos 1885 - ypos (1269 if config.developer and persistent.enable_chapter_select else 1130) + ypos (1269 if persistent.enable_chapter_select else 1130) use main_menu_buttons("gui/button/menubuttons/template_idle.png", [ [ _("Help"), ShowMenu("help") ], @@ -1417,7 +1423,7 @@ screen mouse_help(): text _("Accesses the game menu. Also escapes the Gallery.") hbox: - label _("Mouse Wheel Up\nClick Rollback Side") + label _("Mouse Wheel Up") text _("Rolls back to earlier dialogue.") hbox: @@ -1439,13 +1445,12 @@ screen gamepad_help(): label _("Right Shoulder") text _("Rolls forward to later dialogue.") - hbox: label _("D-Pad, Sticks") text _("Navigate the interface.") hbox: - label _("Start, Guide") + label _("Start, Guide, B/Right Button") text _("Accesses the game menu.") hbox: @@ -1466,7 +1471,7 @@ style help_button: xmargin 12 style help_button_text: - properties gui.button_text_properties("help_button") + properties gui.text_properties("help_button") style help_label: xsize 375 @@ -1535,14 +1540,14 @@ style confirm_frame: yalign .5 style confirm_prompt_text: - text_align 0.5 + textalign 0.5 layout "subtitle" style confirm_button: properties gui.button_properties("confirm_button") style confirm_button_text: - properties gui.button_text_properties("confirm_button") + properties gui.text_properties("confirm_button") ## Skip indicator screen ####################################################### @@ -1729,7 +1734,7 @@ style nvl_label: yanchor 0.0 xsize gui.nvl_name_width min_width gui.nvl_name_width - text_align gui.nvl_name_xalign + textalign gui.nvl_name_xalign style nvl_dialogue: xpos gui.nvl_text_xpos @@ -1737,7 +1742,7 @@ style nvl_dialogue: ypos gui.nvl_text_ypos xsize gui.nvl_text_width min_width gui.nvl_text_width - text_align gui.nvl_text_xalign + textalign gui.nvl_text_xalign layout ("subtitle" if gui.nvl_text_xalign else "tex") style nvl_thought: @@ -1746,7 +1751,7 @@ style nvl_thought: ypos gui.nvl_thought_ypos xsize gui.nvl_thought_width min_width gui.nvl_thought_width - text_align gui.nvl_thought_xalign + textalign gui.nvl_thought_xalign layout ("subtitle" if gui.nvl_text_xalign else "tex") style nvl_button: @@ -1758,6 +1763,94 @@ style nvl_button_text: properties gui.button_text_properties("nvl_button") +## Bubble screen ############################################################### +## +## The bubble screen is used to display dialogue to the player when using speech +## bubbles. The bubble screen takes the same parameters as the say screen, must +## create a displayable with the id of "what", and can create displayables with +## the "namebox", "who", and "window" ids. +## +## https://www.renpy.org/doc/html/bubble.html#bubble-screen + +screen bubble(who, what): + style_prefix "bubble" + + window: + id "window" + + if who is not None: + + window: + id "namebox" + style "bubble_namebox" + + text who: + id "who" + + text what: + id "what" + +style bubble_window is empty +style bubble_namebox is empty +style bubble_who is default +style bubble_what is default + +style bubble_window: + xpadding 30 + top_padding 5 + bottom_padding 5 + +style bubble_namebox: + xalign 0.5 + +style bubble_who: + xalign 0.5 + textalign 0.5 + color "#000" + +style bubble_what: + align (0.5, 0.5) + text_align 0.5 + layout "subtitle" + color "#000" + +define bubble.frame = Frame("gui/bubble.png", 55, 55, 55, 95) +define bubble.thoughtframe = Frame("gui/thoughtbubble.png", 55, 55, 55, 55) + +define bubble.properties = { + "bottom_left" : { + "window_background" : Transform(bubble.frame, xzoom=1, yzoom=1), + "window_bottom_padding" : 27, + }, + + "bottom_right" : { + "window_background" : Transform(bubble.frame, xzoom=-1, yzoom=1), + "window_bottom_padding" : 27, + }, + + "top_left" : { + "window_background" : Transform(bubble.frame, xzoom=1, yzoom=-1), + "window_top_padding" : 27, + }, + + "top_right" : { + "window_background" : Transform(bubble.frame, xzoom=-1, yzoom=-1), + "window_top_padding" : 27, + }, + + "thought" : { + "window_background" : bubble.thoughtframe, + } +} + +define bubble.expand_area = { + "bottom_left" : (0, 0, 0, 22), + "bottom_right" : (0, 0, 0, 22), + "top_left" : (0, 22, 0, 0), + "top_right" : (0, 22, 0, 0), + "thought" : (0, 0, 0, 0), +} + ################################################################################ ## Mobile Variants @@ -1792,10 +1885,10 @@ screen quick_menu(): yalign 0.975 use quick_buttons("gui/button/uioptionbuttons/template_idle.png", \ [ \ - [ _("Back"), Rollback() ], \ - [ _("Skip"), Skip() ], \ - [ _("Auto"), Preference("auto-forward", "toggle") ], \ - [ _("Menu"), ShowMenu() ] \ + [ _("Back"), Rollback(), NullAction()], \ + [ _("Skip"), Skip(), Skip(fast=True, confirm=True) ], \ + [ _("Auto"), Preference("auto-forward", "toggle"), NullAction() ], \ + [ _("Menu"), ShowMenu(), NullAction() ] \ ] ) screen extrasnavigation(): #Updates are removed (not even supported by Ren'Py) @@ -1809,17 +1902,19 @@ screen extrasnavigation(): #Updates are removed (not even supported by Ren'Py) else: add "gui/snootgame.png" vbox: - spacing 25 + spacing 10 xpos 1885 - yalign 0.9 + ypos (1269 if persistent.enable_chapter_select else 1130) use main_menu_buttons("gui/button/menubuttons/template_idle.png", [ [ _("Help"), ShowMenu("help") ], [ _("About"), ShowMenu("about") ], [ _("Gallery"), ShowMenu("cg_gallery") ], + *([(_("Chapter Select"), Start("chapter_select"))] if persistent.enable_chapter_select else []), [ _("Mods"), ShowMenu("mod_menu") ], [ _("Return"), ShowMenu("main_menu") ] ] ) + add Null(0, 129) style radio_button: variant "mobile" diff --git a/game/script/13C.fang-and-anon-go-to-beach-and-prom.rpy b/game/script/13C.fang-and-anon-go-to-beach-and-prom.rpy index 4b1afd6..f1f507e 100644 --- a/game/script/13C.fang-and-anon-go-to-beach-and-prom.rpy +++ b/game/script/13C.fang-and-anon-go-to-beach-and-prom.rpy @@ -2539,14 +2539,14 @@ label chapter_13C: easein_cubic 1 xalign 1.85 show chillicheesefries: - rotate 130 xalign 0.5 yalign 0.4 xpos 0.77 ypos 0.425 + rotate 130 xanchor 0.5 yanchor 0.4 xpos 0.77 ypos 0.425 easein_cubic 1 xpos 0.795 with None show naser rstained surprised hide chillicheesefries show chillicheesefries_hack: - rotate 130 xalign 0.5 yalign 0.4 xpos 0.765 ypos 0.425 + rotate 130 xanchor 0.5 yanchor 0.4 xpos 0.765 ypos 0.425 easein_cubic 1 xpos 0.79 with dissolve @@ -2554,7 +2554,7 @@ label chapter_13C: show naser rstained shocked show chillicheesefries: - rotate 140 xalign 0.5 yalign 0.4 xpos 0.805 ypos 0.4 + rotate 140 xanchor 0.5 yanchor 0.4 xpos 0.805 ypos 0.4 hide chillicheesefries_hack with Dissolve(.22) @@ -2635,7 +2635,7 @@ label chapter_13C: show naser fullystained shocked hide chillicheesefries show chillicheesefries_hack: - rotate 140 xalign 0.75 yalign 0.5 xpos 0.905 ypos 0.45 + rotate 140 xanchor 0.75 yanchor 0.5 xpos 0.905 ypos 0.45 easein_cubic 1 xpos 0.93 with Dissolve(.22) diff --git a/game/script/8.anon-and-fang-study-together.rpy b/game/script/8.anon-and-fang-study-together.rpy index 95695f0..d10bee6 100644 --- a/game/script/8.anon-and-fang-study-together.rpy +++ b/game/script/8.anon-and-fang-study-together.rpy @@ -335,7 +335,7 @@ label chapter_8: show reed happy flip: yalign 0.238 - easeout_cubic .5 rotate 90 yalign -0.01 ypos 0.5 + easeout_cubic .5 rotate 90 yanchor -0.01 ypos 0.5 pause .15 hide reed with Dissolve(.25) play sound 'audio/effects/anonGardenFall.ogg' @@ -1279,7 +1279,6 @@ label chapter_8: with Dissolve(0.2) pause 0.3 - hide anonfacecloseup FD "Out. {w=0.3}{b}Now{/b}." diff --git a/game/src/cg_gallery.rpy b/game/src/cg_gallery.rpy index 44c67e2..2b3003e 100644 --- a/game/src/cg_gallery.rpy +++ b/game/src/cg_gallery.rpy @@ -13,12 +13,10 @@ init 2 python: CG_PATHS = [] #path: folder, name: shows up in gallery, eval: runs eval() on string - """ - Data structure that holds the data for each cg and button - item is name, cg is the image definition - { item: str; cg: Displayable; } - (reference in this init python, actually used in screens) - """ + # Data structure that holds the data for each cg and button + # item is name, cg is the image definition + # { item: str; cg: Displayable; } + # (reference in this init python, actually used in screens) gallery_dic = {} @@ -89,10 +87,10 @@ init 2 python: # Bullshit for the scrollbar to reset back to the beggining. Bless the renpy Discord :pray: default adjust = ui.adjustment() -""" -CG Gallery screen - A screen that shows the image gallery -Built-in Gallery Object has terrible defaults, so I just wrote my own stuff -""" + +# CG Gallery screen - A screen that shows the image gallery +# Built-in Gallery Object has terrible defaults, so I just wrote my own stuff + screen cg_gallery(origin = 'CG'): if main_menu: @@ -162,9 +160,8 @@ screen cg_gallery(origin = 'CG'): for i in range(0, empty_spaces): null height 20 -""" -if/else flow control & extra parameters for Buttons -""" + +# if/else flow control & extra parameters for Buttons screen flag_button(item, origin): $ flag = renpy.seen_image(item['item']) @@ -200,9 +197,8 @@ screen view_movie(item, _origin): [ "Return", _origin ] ] ) -""" -view_image, Loads the image in fullscreen with viewport control. -""" + +# view_image, Loads the image in fullscreen with viewport control. screen view_image(item, _origin): tag menu key "game_menu" action (Hide('view_image'), _origin) @@ -211,7 +207,7 @@ screen view_image(item, _origin): viewport id "vie": #Ren'Py isn't smart enough to not edgescroll while pressed, #so we'll have to disable this for mobile - if renpy.variant("pc"): + if renpy.variant("pc") and persistent.gallery_edgescroll: edgescroll (300, 1800) draggable True arrowkeys True diff --git a/game/src/extra_chapters_menu.rpy b/game/src/extra_chapters_menu.rpy index e4c97b0..9ce2288 100644 --- a/game/src/extra_chapters_menu.rpy +++ b/game/src/extra_chapters_menu.rpy @@ -31,7 +31,7 @@ screen ex_ch_button(filename, label, function): activate_sound "audio/ui/uiClick.wav" fixed: add filename xalign 0.5 yalign 0.5 zoom 0.9 - text label xalign 0.5 yalign 0.5 xanchor 0.5 size 34 + text label xalign 0.5 yalign 0.5 size 34 # label_functions is [ [ "label", function() ], [ "foobar", foobar() ], .. ] # Reuse the same image string and keep things 'neat'. diff --git a/game/src/image_definitions.rpy b/game/src/image_definitions.rpy index 788c90c..a5dfb2d 100644 --- a/game/src/image_definitions.rpy +++ b/game/src/image_definitions.rpy @@ -1063,7 +1063,7 @@ image naomi prom lessblurred = im.Flip(im.Blur('images/naomi/naomi prom neutral. #image emptyroomnight = "images/backgrounds/emptyroomnight.webp" #image naomifangcg = "images/cgs/naomifangcg.webp" -image naomifangcg blur = im.Blur("images/cgs/naomifangcg.webp", 1.5) +#image naomifangcg blur = im.Blur("images/cgs/naomifangcg.webp", 1.5) image naomiletter = 'images/cgs/naomiletter.webp' #image ending_d_cg = 'images/cgs/golden ending.webp' diff --git a/game/src/misc_definitions.rpy b/game/src/misc_definitions.rpy index 8e5cda9..d2ffafa 100644 --- a/game/src/misc_definitions.rpy +++ b/game/src/misc_definitions.rpy @@ -132,7 +132,7 @@ transform rright: #misc transforms transform shudder: subpixel True - around (.5, .5) alignaround (.5, .5) xalign .5 yalign .5 + alignaround (.5, .5) xalign .5 yalign .5 rotate 0 linear 0.0 rotate -0.75 block: @@ -175,8 +175,7 @@ screen mousedetect(): zoom 0.8 rotate 12.5 mousearea: - ypos -75 - area(432, 0, 795, 1100) + area(432, -75, 795, 1100) # xalign 0.5 yanchor 0 ypos 0 hovered Hide("prompt" ) unhovered Show("prompt") @@ -198,7 +197,7 @@ screen textscroll(): yinitial 1.0 - imagebutton auto "fangbutton%s" xalign 0.53 yalign 0.5: + imagebutton auto "fangbutton%s" xalign 0.53 yanchor 0.5: ypos 65+(int(107/2)) xsize 284 ysize 107 diff --git a/game/tl/None/common.rpym b/game/tl/None/common.rpym index e5d2f98..5b10c82 100644 --- a/game/tl/None/common.rpym +++ b/game/tl/None/common.rpym @@ -49,59 +49,87 @@ translate None strings: old "decrease" new "decrease" - # renpy/common/00accessibility.rpy:128 + # renpy/common/00accessibility.rpy:121 + old "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars." + new "Accessibility Menu. Use up and down arrows to navigate, and enter to activate buttons and bars." + + # renpy/common/00accessibility.rpy:140 old "Font Override" new "Font Override" - # renpy/common/00accessibility.rpy:132 + # renpy/common/00accessibility.rpy:144 old "Default" new "Default" - # renpy/common/00accessibility.rpy:136 + # renpy/common/00accessibility.rpy:148 old "DejaVu Sans" new "DejaVu Sans" - # renpy/common/00accessibility.rpy:140 + # renpy/common/00accessibility.rpy:152 old "Opendyslexic" new "Opendyslexic" - # renpy/common/00accessibility.rpy:146 + # renpy/common/00accessibility.rpy:158 old "Text Size Scaling" new "Text Size Scaling" - # renpy/common/00accessibility.rpy:152 + # renpy/common/00accessibility.rpy:164 old "Reset" new "Reset" - # renpy/common/00accessibility.rpy:157 + # renpy/common/00accessibility.rpy:170 old "Line Spacing Scaling" new "Line Spacing Scaling" - # renpy/common/00accessibility.rpy:169 + # renpy/common/00accessibility.rpy:182 + old "High Contrast Text" + new "High Contrast Text" + + # renpy/common/00accessibility.rpy:184 + old "Enable" + new "Enable" + + # renpy/common/00accessibility.rpy:188 + old "Disable" + new "Disable" + + # renpy/common/00accessibility.rpy:195 old "Self-Voicing" new "Self-Voicing" - # renpy/common/00accessibility.rpy:173 + # renpy/common/00accessibility.rpy:198 + old "Self-voicing support is limited when using a touch screen." + new "Self-voicing support is limited when using a touch screen." + + # renpy/common/00accessibility.rpy:202 old "Off" new "Off" - # renpy/common/00accessibility.rpy:177 + # renpy/common/00accessibility.rpy:206 old "Text-to-speech" new "Text-to-speech" - # renpy/common/00accessibility.rpy:181 + # renpy/common/00accessibility.rpy:210 old "Clipboard" new "Clipboard" - # renpy/common/00accessibility.rpy:185 + # renpy/common/00accessibility.rpy:214 old "Debug" new "Debug" - # renpy/common/00accessibility.rpy:191 + # renpy/common/00accessibility.rpy:220 + old "Voice Volume" + new "Voice Volume" + + # renpy/common/00accessibility.rpy:228 + old "Self-Voicing Volume Drop" + new "Self-Voicing Volume Drop" + + # renpy/common/00accessibility.rpy:237 old "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was." new "The options on this menu are intended to improve accessibility. They may not work with all games, and some combinations of options may render the game unplayable. This is not an issue with the game or engine. For the best results when changing fonts, try to keep the text size the same as it originally was." - # renpy/common/00accessibility.rpy:196 + # renpy/common/00accessibility.rpy:242 old "Return" new "Return" @@ -257,980 +285,1231 @@ translate None strings: old "{#month_short}Dec" new "{#month_short}Dec" - # renpy/common/00action_file.rpy:240 + # renpy/common/00action_file.rpy:258 old "%b %d, %H:%M" new "%b %d, %H:%M" - # renpy/common/00action_file.rpy:353 + # renpy/common/00action_file.rpy:395 old "Save slot %s: [text]" new "Save slot %s: [text]" - # renpy/common/00action_file.rpy:434 + # renpy/common/00action_file.rpy:481 old "Load slot %s: [text]" new "Load slot %s: [text]" - # renpy/common/00action_file.rpy:487 + # renpy/common/00action_file.rpy:534 old "Delete slot [text]" new "Delete slot [text]" - # renpy/common/00action_file.rpy:569 + # renpy/common/00action_file.rpy:613 old "File page auto" new "File page auto" - # renpy/common/00action_file.rpy:571 + # renpy/common/00action_file.rpy:615 old "File page quick" new "File page quick" - # renpy/common/00action_file.rpy:573 + # renpy/common/00action_file.rpy:617 old "File page [text]" new "File page [text]" - # renpy/common/00action_file.rpy:631 + # renpy/common/00action_file.rpy:675 old "Page {}" new "Page {}" - # renpy/common/00action_file.rpy:631 + # renpy/common/00action_file.rpy:675 old "Automatic saves" new "Automatic saves" - # renpy/common/00action_file.rpy:631 + # renpy/common/00action_file.rpy:675 old "Quick saves" new "Quick saves" - # renpy/common/00action_file.rpy:772 + # renpy/common/00action_file.rpy:816 old "Next file page." new "Next file page." - # renpy/common/00action_file.rpy:845 + # renpy/common/00action_file.rpy:888 old "Previous file page." new "Previous file page." - # renpy/common/00action_file.rpy:906 + # renpy/common/00action_file.rpy:949 old "Quick save complete." new "Quick save complete." - # renpy/common/00action_file.rpy:924 + # renpy/common/00action_file.rpy:964 old "Quick save." new "Quick save." - # renpy/common/00action_file.rpy:943 + # renpy/common/00action_file.rpy:983 old "Quick load." new "Quick load." - # renpy/common/00action_other.rpy:375 + # renpy/common/00action_other.rpy:379 old "Language [text]" new "Language [text]" - # renpy/common/00director.rpy:708 + # renpy/common/00action_other.rpy:744 + old "Open [text] directory." + new "Open [text] directory." + + # renpy/common/00director.rpy:712 old "The interactive director is not enabled here." new "The interactive director is not enabled here." - # renpy/common/00director.rpy:1481 + # renpy/common/00director.rpy:1511 old "⬆" new "⬆" - # renpy/common/00director.rpy:1487 + # renpy/common/00director.rpy:1517 old "⬇" new "⬇" - # renpy/common/00director.rpy:1551 + # renpy/common/00director.rpy:1581 old "Done" new "Done" - # renpy/common/00director.rpy:1561 + # renpy/common/00director.rpy:1591 old "(statement)" new "(statement)" - # renpy/common/00director.rpy:1562 + # renpy/common/00director.rpy:1592 old "(tag)" new "(tag)" - # renpy/common/00director.rpy:1563 + # renpy/common/00director.rpy:1593 old "(attributes)" new "(attributes)" - # renpy/common/00director.rpy:1564 + # renpy/common/00director.rpy:1594 old "(transform)" new "(transform)" - # renpy/common/00director.rpy:1589 + # renpy/common/00director.rpy:1619 old "(transition)" new "(transition)" - # renpy/common/00director.rpy:1601 + # renpy/common/00director.rpy:1631 old "(channel)" new "(channel)" - # renpy/common/00director.rpy:1602 + # renpy/common/00director.rpy:1632 old "(filename)" new "(filename)" - # renpy/common/00director.rpy:1631 + # renpy/common/00director.rpy:1661 old "Change" new "Change" - # renpy/common/00director.rpy:1633 + # renpy/common/00director.rpy:1663 old "Add" new "Add" - # renpy/common/00director.rpy:1636 + # renpy/common/00director.rpy:1666 old "Cancel" new "Cancel" - # renpy/common/00director.rpy:1639 + # renpy/common/00director.rpy:1669 old "Remove" new "Remove" - # renpy/common/00director.rpy:1674 + # renpy/common/00director.rpy:1704 old "Statement:" new "Statement:" - # renpy/common/00director.rpy:1695 + # renpy/common/00director.rpy:1725 old "Tag:" new "Tag:" - # renpy/common/00director.rpy:1711 + # renpy/common/00director.rpy:1741 old "Attributes:" new "Attributes:" - # renpy/common/00director.rpy:1729 + # renpy/common/00director.rpy:1752 + old "Click to toggle attribute, right click to toggle negative attribute." + new "Click to toggle attribute, right click to toggle negative attribute." + + # renpy/common/00director.rpy:1764 old "Transforms:" new "Transforms:" - # renpy/common/00director.rpy:1748 + # renpy/common/00director.rpy:1775 + old "Click to set transform, right click to add to transform list." + new "Click to set transform, right click to add to transform list." + + # renpy/common/00director.rpy:1776 + old "Customize director.transforms to add more transforms." + new "Customize director.transforms to add more transforms." + + # renpy/common/00director.rpy:1788 old "Behind:" new "Behind:" - # renpy/common/00director.rpy:1767 + # renpy/common/00director.rpy:1799 + old "Click to set, right click to add to behind list." + new "Click to set, right click to add to behind list." + + # renpy/common/00director.rpy:1811 old "Transition:" new "Transition:" - # renpy/common/00director.rpy:1785 + # renpy/common/00director.rpy:1821 + old "Click to set." + new "Click to set." + + # renpy/common/00director.rpy:1822 + old "Customize director.transitions to add more transitions." + new "Customize director.transitions to add more transitions." + + # renpy/common/00director.rpy:1834 old "Channel:" new "Channel:" - # renpy/common/00director.rpy:1803 + # renpy/common/00director.rpy:1845 + old "Customize director.audio_channels to add more channels." + new "Customize director.audio_channels to add more channels." + + # renpy/common/00director.rpy:1857 old "Audio Filename:" new "Audio Filename:" - # renpy/common/00gui.rpy:374 + # renpy/common/00gui.rpy:448 old "Are you sure?" new "Are you sure?" - # renpy/common/00gui.rpy:375 + # renpy/common/00gui.rpy:449 old "Are you sure you want to delete this save?" new "Are you sure you want to delete this save?" - # renpy/common/00gui.rpy:376 + # renpy/common/00gui.rpy:450 old "Are you sure you want to overwrite your save?" new "Are you sure you want to overwrite your save?" - # renpy/common/00gui.rpy:377 + # renpy/common/00gui.rpy:451 old "Loading will lose unsaved progress.\nAre you sure you want to do this?" new "Loading will lose unsaved progress.\nAre you sure you want to do this?" - # renpy/common/00gui.rpy:378 + # renpy/common/00gui.rpy:452 old "Are you sure you want to quit?" new "Are you sure you want to quit?" - # renpy/common/00gui.rpy:379 + # renpy/common/00gui.rpy:453 old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress." new "Are you sure you want to return to the main menu?\nThis will lose unsaved progress." - # renpy/common/00gui.rpy:380 + # renpy/common/00gui.rpy:454 + old "Are you sure you want to continue where you left off?" + new "Are you sure you want to continue where you left off?" + + # renpy/common/00gui.rpy:455 old "Are you sure you want to end the replay?" new "Are you sure you want to end the replay?" - # renpy/common/00gui.rpy:381 + # renpy/common/00gui.rpy:456 old "Are you sure you want to begin skipping?" new "Are you sure you want to begin skipping?" - # renpy/common/00gui.rpy:382 + # renpy/common/00gui.rpy:457 old "Are you sure you want to skip to the next choice?" new "Are you sure you want to skip to the next choice?" - # renpy/common/00gui.rpy:383 + # renpy/common/00gui.rpy:458 old "Are you sure you want to skip unseen dialogue to the next choice?" new "Are you sure you want to skip unseen dialogue to the next choice?" - # renpy/common/00keymap.rpy:267 + # renpy/common/00gui.rpy:459 + old "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?" + new "This save was created on a different device. Maliciously constructed save files can harm your computer. Do you trust this save's creator and everyone who could have changed the file?" + + # renpy/common/00gui.rpy:460 + old "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user." + new "Do you trust the device the save was created on? You should only choose yes if you are the device's sole user." + + # renpy/common/00keymap.rpy:325 old "Failed to save screenshot as %s." new "Failed to save screenshot as %s." - # renpy/common/00keymap.rpy:279 + # renpy/common/00keymap.rpy:346 old "Saved screenshot as %s." new "Saved screenshot as %s." - # renpy/common/00library.rpy:195 + # renpy/common/00library.rpy:248 old "Skip Mode" new "Skip Mode" - # renpy/common/00library.rpy:281 + # renpy/common/00library.rpy:335 old "This program contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}." - new "This program's engine contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}. The game itself is free software and it may be distributed in accordance with the {a=https://www.gnu.org/licenses/agpl-3.0.txt}GNU Affero General Public License{/a}. All on screen assets, such as writing, images, videos, and other Cavemanon sourced items that are not in the Public Domain or are held by another entity in copyright are subject to the {a=https://creativecommons.org/licenses/by-sa/4.0/}CC-BY-SA 4.0{/a}. The Copyleft and Sharealike aspects of those licenses do not apply to those who's situation is enumurated in the GPL-Exception file. Those copyrights we don't hold and have attribution clauses have been enumerated in the 'LICENSE' file that came with this work. These licenses guarantee the freedom to share as much as one wishes so long as you allow others to share accordingly and pay respects to where you have obtained the work. We encourage, and expect, spin-offs, shitposts, memes, and edits to come from this work and cannot wait to see them." + new "This program contains free software under a number of licenses, including the MIT License and GNU Lesser General Public License. A complete list of software, including links to full source code, can be found {a=https://www.renpy.org/l/license}here{/a}." - - # renpy/common/00preferences.rpy:233 + # renpy/common/00preferences.rpy:290 old "display" new "display" - # renpy/common/00preferences.rpy:245 + # renpy/common/00preferences.rpy:310 old "transitions" new "transitions" - # renpy/common/00preferences.rpy:254 + # renpy/common/00preferences.rpy:319 old "skip transitions" new "skip transitions" - # renpy/common/00preferences.rpy:256 + # renpy/common/00preferences.rpy:321 old "video sprites" new "video sprites" - # renpy/common/00preferences.rpy:265 + # renpy/common/00preferences.rpy:330 old "show empty window" new "show empty window" - # renpy/common/00preferences.rpy:274 + # renpy/common/00preferences.rpy:339 old "text speed" new "text speed" - # renpy/common/00preferences.rpy:282 + # renpy/common/00preferences.rpy:347 old "joystick" new "joystick" - # renpy/common/00preferences.rpy:282 + # renpy/common/00preferences.rpy:347 old "joystick..." new "joystick..." - # renpy/common/00preferences.rpy:289 + # renpy/common/00preferences.rpy:354 old "skip" new "skip" - # renpy/common/00preferences.rpy:292 + # renpy/common/00preferences.rpy:357 old "skip unseen [text]" new "skip unseen [text]" - # renpy/common/00preferences.rpy:297 + # renpy/common/00preferences.rpy:362 old "skip unseen text" new "skip unseen text" - # renpy/common/00preferences.rpy:299 + # renpy/common/00preferences.rpy:364 old "begin skipping" new "begin skipping" - # renpy/common/00preferences.rpy:303 + # renpy/common/00preferences.rpy:368 old "after choices" new "after choices" - # renpy/common/00preferences.rpy:310 + # renpy/common/00preferences.rpy:375 old "skip after choices" new "skip after choices" - # renpy/common/00preferences.rpy:312 + # renpy/common/00preferences.rpy:377 old "auto-forward time" new "auto-forward time" - # renpy/common/00preferences.rpy:326 + # renpy/common/00preferences.rpy:391 old "auto-forward" new "auto-forward" - # renpy/common/00preferences.rpy:333 + # renpy/common/00preferences.rpy:398 old "Auto forward" new "Auto forward" - # renpy/common/00preferences.rpy:336 + # renpy/common/00preferences.rpy:401 old "auto-forward after click" new "auto-forward after click" - # renpy/common/00preferences.rpy:345 + # renpy/common/00preferences.rpy:410 old "automatic move" new "automatic move" - # renpy/common/00preferences.rpy:354 + # renpy/common/00preferences.rpy:419 old "wait for voice" new "wait for voice" - # renpy/common/00preferences.rpy:363 + # renpy/common/00preferences.rpy:428 old "voice sustain" new "voice sustain" - # renpy/common/00preferences.rpy:372 + # renpy/common/00preferences.rpy:437 old "self voicing" new "self voicing" - # renpy/common/00preferences.rpy:381 + # renpy/common/00preferences.rpy:440 + old "self voicing enable" + new "self voicing enable" + + # renpy/common/00preferences.rpy:442 + old "self voicing disable" + new "self voicing disable" + + # renpy/common/00preferences.rpy:446 + old "self voicing volume drop" + new "self voicing volume drop" + + # renpy/common/00preferences.rpy:454 old "clipboard voicing" new "clipboard voicing" - # renpy/common/00preferences.rpy:390 + # renpy/common/00preferences.rpy:457 + old "clipboard voicing enable" + new "clipboard voicing enable" + + # renpy/common/00preferences.rpy:459 + old "clipboard voicing disable" + new "clipboard voicing disable" + + # renpy/common/00preferences.rpy:463 old "debug voicing" new "debug voicing" - # renpy/common/00preferences.rpy:399 + # renpy/common/00preferences.rpy:466 + old "debug voicing enable" + new "debug voicing enable" + + # renpy/common/00preferences.rpy:468 + old "debug voicing disable" + new "debug voicing disable" + + # renpy/common/00preferences.rpy:472 old "emphasize audio" new "emphasize audio" - # renpy/common/00preferences.rpy:408 + # renpy/common/00preferences.rpy:481 old "rollback side" new "rollback side" - # renpy/common/00preferences.rpy:418 + # renpy/common/00preferences.rpy:491 old "gl powersave" new "gl powersave" - # renpy/common/00preferences.rpy:424 + # renpy/common/00preferences.rpy:497 old "gl framerate" new "gl framerate" - # renpy/common/00preferences.rpy:427 + # renpy/common/00preferences.rpy:500 old "gl tearing" new "gl tearing" - # renpy/common/00preferences.rpy:430 + # renpy/common/00preferences.rpy:503 old "font transform" new "font transform" - # renpy/common/00preferences.rpy:433 + # renpy/common/00preferences.rpy:506 old "font size" new "font size" - # renpy/common/00preferences.rpy:441 + # renpy/common/00preferences.rpy:514 old "font line spacing" new "font line spacing" - # renpy/common/00preferences.rpy:460 + # renpy/common/00preferences.rpy:522 + old "system cursor" + new "system cursor" + + # renpy/common/00preferences.rpy:531 + old "renderer menu" + new "renderer menu" + + # renpy/common/00preferences.rpy:534 + old "accessibility menu" + new "accessibility menu" + + # renpy/common/00preferences.rpy:537 + old "high contrast text" + new "high contrast text" + + # renpy/common/00preferences.rpy:546 + old "audio when minimized" + new "audio when minimized" + + # renpy/common/00preferences.rpy:555 + old "audio when unfocused" + new "audio when unfocused" + + # renpy/common/00preferences.rpy:564 + old "web cache preload" + new "web cache preload" + + # renpy/common/00preferences.rpy:579 + old "voice after game menu" + new "voice after game menu" + + # renpy/common/00preferences.rpy:588 + old "restore window position" + new "restore window position" + + # renpy/common/00preferences.rpy:597 + old "reset" + new "reset" + + # renpy/common/00preferences.rpy:610 + old "main volume" + new "main volume" + + # renpy/common/00preferences.rpy:611 old "music volume" new "music volume" - # renpy/common/00preferences.rpy:461 + # renpy/common/00preferences.rpy:612 old "sound volume" new "sound volume" - # renpy/common/00preferences.rpy:462 + # renpy/common/00preferences.rpy:613 old "voice volume" new "voice volume" - # renpy/common/00preferences.rpy:463 + # renpy/common/00preferences.rpy:614 + old "mute main" + new "mute main" + + # renpy/common/00preferences.rpy:615 old "mute music" new "mute music" - # renpy/common/00preferences.rpy:464 + # renpy/common/00preferences.rpy:616 old "mute sound" new "mute sound" - # renpy/common/00preferences.rpy:465 + # renpy/common/00preferences.rpy:617 old "mute voice" new "mute voice" - # renpy/common/00preferences.rpy:466 + # renpy/common/00preferences.rpy:618 old "mute all" new "mute all" - # renpy/common/00preferences.rpy:547 + # renpy/common/00preferences.rpy:701 old "Clipboard voicing enabled. Press 'shift+C' to disable." new "Clipboard voicing enabled. Press 'shift+C' to disable." - # renpy/common/00preferences.rpy:549 + # renpy/common/00preferences.rpy:703 old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable." new "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable." - # renpy/common/00preferences.rpy:551 + # renpy/common/00preferences.rpy:705 old "Self-voicing enabled. Press 'v' to disable." new "Self-voicing enabled. Press 'v' to disable." - # renpy/common/_compat/gamemenu.rpym:198 - old "Empty Slot." - new "Empty Slot." + # renpy/common/00speechbubble.rpy:416 + old "Speech Bubble Editor" + new "Speech Bubble Editor" - # renpy/common/_compat/gamemenu.rpym:355 - old "Previous" - new "Previous" + # renpy/common/00speechbubble.rpy:421 + old "(hide)" + new "(hide)" - # renpy/common/_compat/gamemenu.rpym:362 - old "Next" - new "Next" + # renpy/common/00speechbubble.rpy:432 + old "(clear retained bubbles)" + new "(clear retained bubbles)" - # renpy/common/_compat/preferences.rpym:428 - old "Joystick Mapping" - new "Joystick Mapping" + # renpy/common/00sync.rpy:70 + old "Sync downloaded." + new "Sync downloaded." - # renpy/common/_developer/developer.rpym:38 - old "Developer Menu" - new "Developer Menu" + # renpy/common/00sync.rpy:193 + old "Could not connect to the Ren'Py Sync server." + new "Could not connect to the Ren'Py Sync server." - # renpy/common/_developer/developer.rpym:43 - old "Interactive Director (D)" - new "Interactive Director (D)" + # renpy/common/00sync.rpy:195 + old "The Ren'Py Sync server timed out." + new "The Ren'Py Sync server timed out." - # renpy/common/_developer/developer.rpym:45 - old "Reload Game (Shift+R)" - new "Reload Game (Shift+R)" + # renpy/common/00sync.rpy:197 + old "An unknown error occurred while connecting to the Ren'Py Sync server." + new "An unknown error occurred while connecting to the Ren'Py Sync server." - # renpy/common/_developer/developer.rpym:47 - old "Console (Shift+O)" - new "Console (Shift+O)" + # renpy/common/00sync.rpy:213 + old "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out." + new "The Ren'Py Sync server does not have a copy of this sync. The sync ID may be invalid, or it may have timed out." - # renpy/common/_developer/developer.rpym:49 - old "Variable Viewer" - new "Variable Viewer" + # renpy/common/00sync.rpy:316 + old "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself." + new "Please enter the sync ID you generated.\nNever enter a sync ID you didn't create yourself." - # renpy/common/_developer/developer.rpym:51 - old "Image Location Picker" - new "Image Location Picker" + # renpy/common/00sync.rpy:335 + old "The sync ID is not in the correct format." + new "The sync ID is not in the correct format." - # renpy/common/_developer/developer.rpym:53 - old "Filename List" - new "Filename List" + # renpy/common/00sync.rpy:355 + old "The sync could not be decrypted." + new "The sync could not be decrypted." - # renpy/common/_developer/developer.rpym:57 - old "Show Image Load Log (F4)" - new "Show Image Load Log (F4)" + # renpy/common/00sync.rpy:378 + old "The sync belongs to a different game." + new "The sync belongs to a different game." - # renpy/common/_developer/developer.rpym:60 - old "Hide Image Load Log (F4)" - new "Hide Image Load Log (F4)" + # renpy/common/00sync.rpy:383 + old "The sync contains a file with an invalid name." + new "The sync contains a file with an invalid name." - # renpy/common/_developer/developer.rpym:63 - old "Image Attributes" - new "Image Attributes" + # renpy/common/00sync.rpy:440 + old "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?" + new "This will upload your saves to the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}.\nDo you want to continue?" - # renpy/common/_developer/developer.rpym:90 - old "[name] [attributes] (hidden)" - new "[name] [attributes] (hidden)" + # renpy/common/00sync.rpy:448 + old "Yes" + new "Yes" - # renpy/common/_developer/developer.rpym:94 - old "[name] [attributes]" - new "[name] [attributes]" + # renpy/common/00sync.rpy:449 + old "No" + new "No" - # renpy/common/_developer/developer.rpym:143 - old "Nothing to inspect." - new "Nothing to inspect." + # renpy/common/00sync.rpy:472 + old "Enter Sync ID" + new "Enter Sync ID" - # renpy/common/_developer/developer.rpym:154 - old "Hide deleted" - new "Hide deleted" + # renpy/common/00sync.rpy:483 + old "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}." + new "This will contact the {a=https://sync.renpy.org}Ren'Py Sync Server{/a}." - # renpy/common/_developer/developer.rpym:154 - old "Show deleted" - new "Show deleted" + # renpy/common/00sync.rpy:513 + old "Sync Success" + new "Sync Success" - # renpy/common/_developer/developer.rpym:278 - old "Return to the developer menu" - new "Return to the developer menu" + # renpy/common/00sync.rpy:516 + old "The Sync ID is:" + new "The Sync ID is:" - # renpy/common/_developer/developer.rpym:443 - old "Rectangle: %r" - new "Rectangle: %r" + # renpy/common/00sync.rpy:522 + old "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}." + new "You can use this ID to download your save on another device.\nThis sync will expire in an hour.\nRen'Py Sync is supported by {a=https://www.renpy.org/sponsors.html}Ren'Py's Sponsors{/a}." - # renpy/common/_developer/developer.rpym:448 - old "Mouse position: %r" - new "Mouse position: %r" + # renpy/common/00sync.rpy:526 + old "Continue" + new "Continue" - # renpy/common/_developer/developer.rpym:453 - old "Right-click or escape to quit." - new "Right-click or escape to quit." + # renpy/common/00sync.rpy:551 + old "Sync Error" + new "Sync Error" - # renpy/common/_developer/developer.rpym:485 - old "Rectangle copied to clipboard." - new "Rectangle copied to clipboard." + # renpy/common/00translation.rpy:63 + old "Translation identifier: [identifier]" + new "Translation identifier: [identifier]" - # renpy/common/_developer/developer.rpym:488 - old "Position copied to clipboard." - new "Position copied to clipboard." + # renpy/common/00translation.rpy:84 + old " translates [tl.filename]:[tl.linenumber]" + new " translates [tl.filename]:[tl.linenumber]" - # renpy/common/_developer/developer.rpym:507 - old "Type to filter: " - new "Type to filter: " + # renpy/common/00translation.rpy:101 + old "\n{color=#fff}Copied to clipboard.{/color}" + new "\n{color=#fff}Copied to clipboard.{/color}" - # renpy/common/_developer/developer.rpym:635 - old "Textures: [tex_count] ([tex_size_mb:.1f] MB)" - new "Textures: [tex_count] ([tex_size_mb:.1f] MB)" - - # renpy/common/_developer/developer.rpym:639 - old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)" - new "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)" - - # renpy/common/_developer/developer.rpym:649 - old "✔ " - new "✔ " - - # renpy/common/_developer/developer.rpym:652 - old "✘ " - new "✘ " - - # renpy/common/_developer/developer.rpym:657 - old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}" - new "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}" - - # renpy/common/_developer/inspector.rpym:38 - old "Displayable Inspector" - new "Displayable Inspector" - - # renpy/common/_developer/inspector.rpym:61 - old "Size" - new "Size" - - # renpy/common/_developer/inspector.rpym:65 - old "Style" - new "Style" - - # renpy/common/_developer/inspector.rpym:71 - old "Location" - new "Location" - - # renpy/common/_developer/inspector.rpym:122 - old "Inspecting Styles of [displayable_name!q]" - new "Inspecting Styles of [displayable_name!q]" - - # renpy/common/_developer/inspector.rpym:139 - old "displayable:" - new "displayable:" - - # renpy/common/_developer/inspector.rpym:145 - old " (no properties affect the displayable)" - new " (no properties affect the displayable)" - - # renpy/common/_developer/inspector.rpym:147 - old " (default properties omitted)" - new " (default properties omitted)" - - # renpy/common/_developer/inspector.rpym:185 - old "" - new "" - - # renpy/common/_layout/classic_load_save.rpym:170 - old "a" - new "a" - - # renpy/common/_layout/classic_load_save.rpym:179 - old "q" - new "q" - - # renpy/common/00iap.rpy:217 + # renpy/common/00iap.rpy:231 old "Contacting App Store\nPlease Wait..." new "Contacting App Store\nPlease Wait..." - # renpy/common/00updater.rpy:375 - old "The Ren'Py Updater is not supported on mobile devices." - new "The Ren'Py Updater is not supported on mobile devices." + # renpy/common/00updater.rpy:505 + old "No update methods found." + new "No update methods found." - # renpy/common/00updater.rpy:494 + # renpy/common/00updater.rpy:552 + old "Could not download file list: " + new "Could not download file list: " + + # renpy/common/00updater.rpy:555 + old "File list digest does not match." + new "File list digest does not match." + + # renpy/common/00updater.rpy:765 old "An error is being simulated." new "An error is being simulated." - # renpy/common/00updater.rpy:678 + # renpy/common/00updater.rpy:953 old "Either this project does not support updating, or the update status file was deleted." new "Either this project does not support updating, or the update status file was deleted." - # renpy/common/00updater.rpy:692 + # renpy/common/00updater.rpy:967 old "This account does not have permission to perform an update." new "This account does not have permission to perform an update." - # renpy/common/00updater.rpy:695 + # renpy/common/00updater.rpy:970 old "This account does not have permission to write the update log." new "This account does not have permission to write the update log." - # renpy/common/00updater.rpy:722 + # renpy/common/00updater.rpy:1050 old "Could not verify update signature." new "Could not verify update signature." - # renpy/common/00updater.rpy:997 + # renpy/common/00updater.rpy:1373 old "The update file was not downloaded." new "The update file was not downloaded." - # renpy/common/00updater.rpy:1015 + # renpy/common/00updater.rpy:1391 old "The update file does not have the correct digest - it may have been corrupted." new "The update file does not have the correct digest - it may have been corrupted." - # renpy/common/00updater.rpy:1071 + # renpy/common/00updater.rpy:1541 old "While unpacking {}, unknown type {}." new "While unpacking {}, unknown type {}." - # renpy/common/00updater.rpy:1439 + # renpy/common/00updater.rpy:2022 old "Updater" new "Updater" - # renpy/common/00updater.rpy:1446 + # renpy/common/00updater.rpy:2029 old "An error has occured:" new "An error has occured:" - # renpy/common/00updater.rpy:1448 + # renpy/common/00updater.rpy:2031 old "Checking for updates." new "Checking for updates." - # renpy/common/00updater.rpy:1450 + # renpy/common/00updater.rpy:2033 old "This program is up to date." new "This program is up to date." - # renpy/common/00updater.rpy:1452 + # renpy/common/00updater.rpy:2035 old "[u.version] is available. Do you want to install it?" new "[u.version] is available. Do you want to install it?" - # renpy/common/00updater.rpy:1454 + # renpy/common/00updater.rpy:2037 old "Preparing to download the updates." new "Preparing to download the updates." - # renpy/common/00updater.rpy:1456 + # renpy/common/00updater.rpy:2039 old "Downloading the updates." new "Downloading the updates." - # renpy/common/00updater.rpy:1458 + # renpy/common/00updater.rpy:2041 old "Unpacking the updates." new "Unpacking the updates." - # renpy/common/00updater.rpy:1460 + # renpy/common/00updater.rpy:2043 old "Finishing up." new "Finishing up." - # renpy/common/00updater.rpy:1462 + # renpy/common/00updater.rpy:2045 old "The updates have been installed. The program will restart." new "The updates have been installed. The program will restart." - # renpy/common/00updater.rpy:1464 + # renpy/common/00updater.rpy:2047 old "The updates have been installed." new "The updates have been installed." - # renpy/common/00updater.rpy:1466 + # renpy/common/00updater.rpy:2049 old "The updates were cancelled." new "The updates were cancelled." - # renpy/common/00updater.rpy:1481 + # renpy/common/00updater.rpy:2064 old "Proceed" new "Proceed" - # renpy/common/00compat.rpy:288 + # renpy/common/00updater.rpy:2080 + old "Preparing to download the game data." + new "Preparing to download the game data." + + # renpy/common/00updater.rpy:2082 + old "Downloading the game data." + new "Downloading the game data." + + # renpy/common/00updater.rpy:2084 + old "The game data has been downloaded." + new "The game data has been downloaded." + + # renpy/common/00updater.rpy:2086 + old "An error occured when trying to download game data:" + new "An error occured when trying to download game data:" + + # renpy/common/00updater.rpy:2091 + old "This game cannot be run until the game data has been downloaded." + new "This game cannot be run until the game data has been downloaded." + + # renpy/common/00updater.rpy:2098 + old "Retry" + new "Retry" + + # renpy/common/00compat.rpy:438 old "Fullscreen" new "Fullscreen" - # renpy/common/00gallery.rpy:592 + # renpy/common/00gallery.rpy:643 old "Image [index] of [count] locked." new "Image [index] of [count] locked." - # renpy/common/00gallery.rpy:612 + # renpy/common/00gallery.rpy:663 old "prev" new "prev" - # renpy/common/00gallery.rpy:613 + # renpy/common/00gallery.rpy:664 old "next" new "next" - # renpy/common/00gallery.rpy:614 + # renpy/common/00gallery.rpy:665 old "slideshow" new "slideshow" - # renpy/common/00gallery.rpy:615 + # renpy/common/00gallery.rpy:666 old "return" new "return" - # renpy/common/00gltest.rpy:70 + # renpy/common/00gltest.rpy:90 old "Renderer" new "Renderer" - # renpy/common/00gltest.rpy:74 + # renpy/common/00gltest.rpy:94 old "Automatically Choose" new "Automatically Choose" - # renpy/common/00gltest.rpy:79 - old "Force Angle/DirectX Renderer" - new "Force Angle/DirectX Renderer" - - # renpy/common/00gltest.rpy:83 - old "Force OpenGL Renderer" - new "Force OpenGL Renderer" - - # renpy/common/00gltest.rpy:87 - old "Force Software Renderer" - new "Force Software Renderer" - - # renpy/common/00gltest.rpy:93 - old "NPOT" - new "NPOT" - - # renpy/common/00gltest.rpy:97 - old "Enable" - new "Enable" - # renpy/common/00gltest.rpy:101 - old "Disable" - new "Disable" + old "Force GL Renderer" + new "Force GL Renderer" - # renpy/common/00gltest.rpy:108 + # renpy/common/00gltest.rpy:106 + old "Force ANGLE Renderer" + new "Force ANGLE Renderer" + + # renpy/common/00gltest.rpy:111 + old "Force GLES Renderer" + new "Force GLES Renderer" + + # renpy/common/00gltest.rpy:117 + old "Force GL2 Renderer" + new "Force GL2 Renderer" + + # renpy/common/00gltest.rpy:122 + old "Force ANGLE2 Renderer" + new "Force ANGLE2 Renderer" + + # renpy/common/00gltest.rpy:127 + old "Force GLES2 Renderer" + new "Force GLES2 Renderer" + + # renpy/common/00gltest.rpy:133 old "Gamepad" new "Gamepad" - # renpy/common/00gltest.rpy:122 + # renpy/common/00gltest.rpy:137 + old "Enable (No Blocklist)" + new "Enable (No Blocklist)" + + # renpy/common/00gltest.rpy:151 old "Calibrate" new "Calibrate" - # renpy/common/00gltest.rpy:131 + # renpy/common/00gltest.rpy:160 old "Powersave" new "Powersave" - # renpy/common/00gltest.rpy:145 + # renpy/common/00gltest.rpy:174 old "Framerate" new "Framerate" - # renpy/common/00gltest.rpy:149 + # renpy/common/00gltest.rpy:178 old "Screen" new "Screen" - # renpy/common/00gltest.rpy:153 + # renpy/common/00gltest.rpy:182 old "60" new "60" - # renpy/common/00gltest.rpy:157 + # renpy/common/00gltest.rpy:186 old "30" new "30" - # renpy/common/00gltest.rpy:163 + # renpy/common/00gltest.rpy:192 old "Tearing" new "Tearing" - # renpy/common/00gltest.rpy:179 + # renpy/common/00gltest.rpy:208 old "Changes will take effect the next time this program is run." new "Changes will take effect the next time this program is run." - # renpy/common/00gltest.rpy:186 + # renpy/common/00gltest.rpy:215 old "Quit" new "Quit" - # renpy/common/00gltest.rpy:213 + # renpy/common/00gltest.rpy:244 old "Performance Warning" new "Performance Warning" - # renpy/common/00gltest.rpy:218 + # renpy/common/00gltest.rpy:249 old "This computer is using software rendering." new "This computer is using software rendering." - # renpy/common/00gltest.rpy:220 - old "This computer is not using shaders." - new "This computer is not using shaders." + # renpy/common/00gltest.rpy:251 + old "This game requires use of GL2 that can't be initialised." + new "This game requires use of GL2 that can't be initialised." - # renpy/common/00gltest.rpy:222 - old "This computer is displaying graphics slowly." - new "This computer is displaying graphics slowly." - - # renpy/common/00gltest.rpy:224 + # renpy/common/00gltest.rpy:253 old "This computer has a problem displaying graphics: [problem]." new "This computer has a problem displaying graphics: [problem]." - # renpy/common/00gltest.rpy:229 - old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem." - new "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem." - - # renpy/common/00gltest.rpy:231 + # renpy/common/00gltest.rpy:257 old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display." new "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display." - # renpy/common/00gltest.rpy:236 - old "Update DirectX" - new "Update DirectX" + # renpy/common/00gltest.rpy:261 + old "The {a=edit:1:log.txt}log.txt{/a} file may contain information to help you determine what is wrong with your computer." + new "The {a=edit:1:log.txt}log.txt{/a} file may contain information to help you determine what is wrong with your computer." - # renpy/common/00gltest.rpy:242 + # renpy/common/00gltest.rpy:266 + old "More details on how to fix this can be found in the {a=[url]}documentation{/a}." + new "More details on how to fix this can be found in the {a=[url]}documentation{/a}." + + # renpy/common/00gltest.rpy:271 old "Continue, Show this warning again" new "Continue, Show this warning again" - # renpy/common/00gltest.rpy:246 + # renpy/common/00gltest.rpy:275 old "Continue, Don't show warning again" new "Continue, Don't show warning again" - # renpy/common/00gltest.rpy:264 - old "Updating DirectX." - new "Updating DirectX." + # renpy/common/00gltest.rpy:283 + old "Change render options" + new "Change render options" - # renpy/common/00gltest.rpy:268 - old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX." - new "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX." - - # renpy/common/00gltest.rpy:272 - old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box." - new "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box." - - # renpy/common/00gltest.rpy:276 - old "When setup finishes, please click below to restart this program." - new "When setup finishes, please click below to restart this program." - - # renpy/common/00gltest.rpy:278 - old "Restart" - new "Restart" - - # renpy/common/00gamepad.rpy:32 + # renpy/common/00gamepad.rpy:33 old "Select Gamepad to Calibrate" new "Select Gamepad to Calibrate" - # renpy/common/00gamepad.rpy:35 + # renpy/common/00gamepad.rpy:36 old "No Gamepads Available" new "No Gamepads Available" - # renpy/common/00gamepad.rpy:54 + # renpy/common/00gamepad.rpy:56 old "Calibrating [name] ([i]/[total])" new "Calibrating [name] ([i]/[total])" - # renpy/common/00gamepad.rpy:58 - old "Press or move the [control!r] [kind]." - new "Press or move the [control!r] [kind]." + # renpy/common/00gamepad.rpy:60 + old "Press or move the '[control!s]' [kind]." + new "Press or move the '[control!s]' [kind]." - # renpy/common/00gamepad.rpy:66 + # renpy/common/00gamepad.rpy:70 old "Skip (A)" new "Skip (A)" - # renpy/common/00gamepad.rpy:69 + # renpy/common/00gamepad.rpy:73 old "Back (B)" new "Back (B)" - # renpy/common/_errorhandling.rpym:538 + # renpy/common/_errorhandling.rpym:673 old "Open" new "Open" - # renpy/common/_errorhandling.rpym:540 + # renpy/common/_errorhandling.rpym:675 old "Opens the traceback.txt file in a text editor." new "Opens the traceback.txt file in a text editor." - # renpy/common/_errorhandling.rpym:542 + # renpy/common/_errorhandling.rpym:677 old "Copy BBCode" new "Copy BBCode" - # renpy/common/_errorhandling.rpym:544 + # renpy/common/_errorhandling.rpym:679 old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/." new "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/." - # renpy/common/_errorhandling.rpym:546 + # renpy/common/_errorhandling.rpym:681 old "Copy Markdown" new "Copy Markdown" - # renpy/common/_errorhandling.rpym:548 + # renpy/common/_errorhandling.rpym:683 old "Copies the traceback.txt file to the clipboard as Markdown for Discord." new "Copies the traceback.txt file to the clipboard as Markdown for Discord." - # renpy/common/_errorhandling.rpym:577 + # renpy/common/_errorhandling.rpym:715 old "An exception has occurred." new "An exception has occurred." - # renpy/common/_errorhandling.rpym:597 + # renpy/common/_errorhandling.rpym:738 old "Rollback" new "Rollback" - # renpy/common/_errorhandling.rpym:599 + # renpy/common/_errorhandling.rpym:740 old "Attempts a roll back to a prior time, allowing you to save or choose a different choice." new "Attempts a roll back to a prior time, allowing you to save or choose a different choice." - # renpy/common/_errorhandling.rpym:602 + # renpy/common/_errorhandling.rpym:743 old "Ignore" new "Ignore" - # renpy/common/_errorhandling.rpym:606 + # renpy/common/_errorhandling.rpym:747 old "Ignores the exception, allowing you to continue." new "Ignores the exception, allowing you to continue." - # renpy/common/_errorhandling.rpym:608 + # renpy/common/_errorhandling.rpym:749 old "Ignores the exception, allowing you to continue. This often leads to additional errors." new "Ignores the exception, allowing you to continue. This often leads to additional errors." - # renpy/common/_errorhandling.rpym:612 + # renpy/common/_errorhandling.rpym:753 old "Reload" new "Reload" - # renpy/common/_errorhandling.rpym:614 + # renpy/common/_errorhandling.rpym:755 old "Reloads the game from disk, saving and restoring game state if possible." new "Reloads the game from disk, saving and restoring game state if possible." - # renpy/common/_errorhandling.rpym:617 + # renpy/common/_errorhandling.rpym:758 old "Console" new "Console" - # renpy/common/_errorhandling.rpym:619 + # renpy/common/_errorhandling.rpym:760 old "Opens a console to allow debugging the problem." new "Opens a console to allow debugging the problem." - # renpy/common/_errorhandling.rpym:629 + # renpy/common/_errorhandling.rpym:773 old "Quits the game." new "Quits the game." - # renpy/common/_errorhandling.rpym:653 + # renpy/common/_errorhandling.rpym:795 old "Parsing the script failed." new "Parsing the script failed." - # renpy/common/_errorhandling.rpym:679 - old "Opens the errors.txt file in a text editor." - new "Opens the errors.txt file in a text editor." + # renpy/common/_developer/developer.rpym:39 + old "Developer Menu" + new "Developer Menu" - # renpy/common/_errorhandling.rpym:683 - old "Copies the errors.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/." - new "Copies the errors.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/." + # renpy/common/_developer/developer.rpym:44 + old "Interactive Director (D)" + new "Interactive Director (D)" - # renpy/common/_errorhandling.rpym:687 - old "Copies the errors.txt file to the clipboard as Markdown for Discord." - new "Copies the errors.txt file to the clipboard as Markdown for Discord." + # renpy/common/_developer/developer.rpym:46 + old "Reload Game (Shift+R)" + new "Reload Game (Shift+R)" - # renpy/common/00console.rpy:273 + # renpy/common/_developer/developer.rpym:48 + old "Console (Shift+O)" + new "Console (Shift+O)" + + # renpy/common/_developer/developer.rpym:50 + old "Variable Viewer" + new "Variable Viewer" + + # renpy/common/_developer/developer.rpym:52 + old "Persistent Viewer" + new "Persistent Viewer" + + # renpy/common/_developer/developer.rpym:54 + old "Image Location Picker" + new "Image Location Picker" + + # renpy/common/_developer/developer.rpym:56 + old "Filename List" + new "Filename List" + + # renpy/common/_developer/developer.rpym:60 + old "Show Image Load Log (F4)" + new "Show Image Load Log (F4)" + + # renpy/common/_developer/developer.rpym:63 + old "Hide Image Load Log (F4)" + new "Hide Image Load Log (F4)" + + # renpy/common/_developer/developer.rpym:66 + old "Image Attributes" + new "Image Attributes" + + # renpy/common/_developer/developer.rpym:70 + old "Show Translation Info" + new "Show Translation Info" + + # renpy/common/_developer/developer.rpym:73 + old "Hide Translation Info" + new "Hide Translation Info" + + # renpy/common/_developer/developer.rpym:78 + old "Speech Bubble Editor (Shift+B)" + new "Speech Bubble Editor (Shift+B)" + + # renpy/common/_developer/developer.rpym:82 + old "Show Filename and Line" + new "Show Filename and Line" + + # renpy/common/_developer/developer.rpym:85 + old "Hide Filename and Line" + new "Hide Filename and Line" + + # renpy/common/_developer/developer.rpym:129 + old "Layer [l]:" + new "Layer [l]:" + + # renpy/common/_developer/developer.rpym:133 + old " [name] [attributes] (hidden)" + new " [name] [attributes] (hidden)" + + # renpy/common/_developer/developer.rpym:137 + old " [name] [attributes]" + new " [name] [attributes]" + + # renpy/common/_developer/developer.rpym:190 + old "Nothing to inspect." + new "Nothing to inspect." + + # renpy/common/_developer/developer.rpym:201 + old "Hide deleted" + new "Hide deleted" + + # renpy/common/_developer/developer.rpym:201 + old "Show deleted" + new "Show deleted" + + # renpy/common/_developer/developer.rpym:352 + old "Rectangle copied to clipboard." + new "Rectangle copied to clipboard." + + # renpy/common/_developer/developer.rpym:355 + old "Position copied to clipboard." + new "Position copied to clipboard." + + # renpy/common/_developer/developer.rpym:367 + old "Rectangle: %r" + new "Rectangle: %r" + + # renpy/common/_developer/developer.rpym:370 + old "Mouse position: %r" + new "Mouse position: %r" + + # renpy/common/_developer/developer.rpym:375 + old "Right-click or escape to quit." + new "Right-click or escape to quit." + + # renpy/common/_developer/developer.rpym:425 + old "Type to filter: " + new "Type to filter: " + + # renpy/common/_developer/developer.rpym:544 + old "Textures: [tex_count] ([tex_size_mb:.1f] MB)" + new "Textures: [tex_count] ([tex_size_mb:.1f] MB)" + + # renpy/common/_developer/developer.rpym:548 + old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)" + new "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)" + + # renpy/common/_developer/developer.rpym:558 + old "✔ " + new "✔ " + + # renpy/common/_developer/developer.rpym:561 + old "✘ " + new "✘ " + + # renpy/common/_developer/developer.rpym:566 + old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}" + new "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}" + + # renpy/common/_developer/developer.rpym:616 + old "Click to open in editor." + new "Click to open in editor." + + # renpy/common/_developer/inspector.rpym:39 + old "Displayable Inspector" + new "Displayable Inspector" + + # renpy/common/_developer/inspector.rpym:62 + old "Size" + new "Size" + + # renpy/common/_developer/inspector.rpym:66 + old "Style" + new "Style" + + # renpy/common/_developer/inspector.rpym:72 + old "Location" + new "Location" + + # renpy/common/_developer/inspector.rpym:124 + old "Inspecting Styles of [displayable_name!q]" + new "Inspecting Styles of [displayable_name!q]" + + # renpy/common/_developer/inspector.rpym:141 + old "displayable:" + new "displayable:" + + # renpy/common/_developer/inspector.rpym:147 + old " (no properties affect the displayable)" + new " (no properties affect the displayable)" + + # renpy/common/_developer/inspector.rpym:149 + old " (default properties omitted)" + new " (default properties omitted)" + + # renpy/common/_developer/inspector.rpym:187 + old "" + new "" + + # renpy/common/00console.rpy:538 old "Press to exit console. Type help for help.\n" new "Press to exit console. Type help for help.\n" - # renpy/common/00console.rpy:277 + # renpy/common/00console.rpy:542 old "Ren'Py script enabled." new "Ren'Py script enabled." - # renpy/common/00console.rpy:279 + # renpy/common/00console.rpy:544 old "Ren'Py script disabled." new "Ren'Py script disabled." - # renpy/common/00console.rpy:526 - old "help: show this help" - new "help: show this help" + # renpy/common/00console.rpy:725 + old "The console is using short representations. To disable this, type 'long', and to re-enable, type 'short'" + new "The console is using short representations. To disable this, type 'long', and to re-enable, type 'short'" - # renpy/common/00console.rpy:531 + # renpy/common/00console.rpy:797 + old "help: show this help\n help : show signature and documentation of " + new "help: show this help\n help : show signature and documentation of " + + # renpy/common/00console.rpy:821 + old "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n" + new "Help may display undocumented functions. Please check that the function or\nclass you want to use is documented.\n\n" + + # renpy/common/00console.rpy:830 old "commands:\n" new "commands:\n" - # renpy/common/00console.rpy:541 + # renpy/common/00console.rpy:840 old " : run the statement\n" new " : run the statement\n" - # renpy/common/00console.rpy:543 + # renpy/common/00console.rpy:842 old " : run the expression or statement" new " : run the expression or statement" - # renpy/common/00console.rpy:551 + # renpy/common/00console.rpy:850 old "clear: clear the console history" new "clear: clear the console history" - # renpy/common/00console.rpy:555 + # renpy/common/00console.rpy:854 old "exit: exit the console" new "exit: exit the console" - # renpy/common/00console.rpy:563 + # renpy/common/00console.rpy:862 + old "stack: print the return stack" + new "stack: print the return stack" + + # renpy/common/00console.rpy:884 old "load : loads the game from slot" new "load : loads the game from slot" - # renpy/common/00console.rpy:576 + # renpy/common/00console.rpy:897 old "save : saves the game in slot" new "save : saves the game in slot" - # renpy/common/00console.rpy:587 + # renpy/common/00console.rpy:908 old "reload: reloads the game, refreshing the scripts" new "reload: reloads the game, refreshing the scripts" - # renpy/common/00console.rpy:595 - old "watch : watch a python expression" - new "watch : watch a python expression" + # renpy/common/00console.rpy:916 + old "watch : watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is" + new "watch : watch a python expression\n watch short: makes the representation of traced expressions short (default)\n watch long: makes the representation of traced expressions as is" - # renpy/common/00console.rpy:621 + # renpy/common/00console.rpy:953 old "unwatch : stop watching an expression" new "unwatch : stop watching an expression" - # renpy/common/00console.rpy:652 + # renpy/common/00console.rpy:999 old "unwatchall: stop watching all expressions" new "unwatchall: stop watching all expressions" - # renpy/common/00console.rpy:669 + # renpy/common/00console.rpy:1020 old "jump