diff --git a/game/gui/flag/Mexico.png b/game/gui/flag/Mexico.png new file mode 100644 index 0000000..e043e43 Binary files /dev/null and b/game/gui/flag/Mexico.png differ diff --git a/game/gui/flag/USofA.png b/game/gui/flag/USofA.png new file mode 100644 index 0000000..7af0d1b Binary files /dev/null and b/game/gui/flag/USofA.png differ diff --git a/game/images/cgs/big ending.jpg b/game/images/cgs/big ending.jpg index d3575b9..397cc1d 100644 Binary files a/game/images/cgs/big ending.jpg and b/game/images/cgs/big ending.jpg differ diff --git a/game/images/ending/credits.png b/game/images/ending/credits.png deleted file mode 100644 index e53211f..0000000 Binary files a/game/images/ending/credits.png and /dev/null differ diff --git a/game/images/ending/credits_base.png b/game/images/ending/credits_base.png new file mode 100644 index 0000000..9f45c2a Binary files /dev/null and b/game/images/ending/credits_base.png differ diff --git a/game/options.rpy b/game/options.rpy index 49c87f4..4b2fae1 100644 --- a/game/options.rpy +++ b/game/options.rpy @@ -13,6 +13,7 @@ ## The _() surrounding the string marks it as eligible for translation. define config.name = _("SnootGame") +#define config.cache_surfaces = True ## Determines if the title given above is shown on the main menu screen. Set diff --git a/game/screens.rpy b/game/screens.rpy index 4b66660..db2c401 100644 --- a/game/screens.rpy +++ b/game/screens.rpy @@ -1,22 +1,5 @@ -###Updater Python stuff### -init python: - if renpy.variant("pc"): #Don't run this on mobile, not supported - if persistent.updateresult is None: - persistent.updateresult = "No new version is available" - if persistent.autoup is None: - persistent.autoup = False - if persistent.updateWebServer is None: - persistent.updateWebServer = "http://updates.snootgame.xyz/updates.json" - - def UpdateCheck(): -# WHY YES I ONLY ALLOW PEOPLE USING MY FRAMEWORK TO CHECK FOR AN UPDATE EVERY SIX FUCKING HOURS HOW DID YOU KNOW -# NOPE check_interval=5 (5 SECONDS) FUCK YOU - pendingVersion = updater.UpdateVersion(persistent.updateWebServer, check_interval=5) - if pendingVersion == None or pendingVersion == config.version or "TEST" in pendingVersion: - persistent.updateresult = "No new version is available" - else: - persistent.updateresult = pendingVersion +init -1 python: #idk non-functional dummies for uisounds hackery #coming soon @@ -27,15 +10,6 @@ init python: audio_filename=["audio/ui/uiOptionOff.wav", "audio/ui/uiOptionOn.wav"] renpy.play(audio_filename[int(bool(flag))]) - def ToggleAutoUpdate(): - onclick_audio(persistent.autoup) - persistent.autoup = not persistent.autoup - - def ToggleAutoForwardMove(): - onclick_audio(persistent.afm_enable) - preferences.afm_enable = not preferences.afm_enable - - # def ToggleMuteAll(): # if preferences.all_mute == True: # renpy.play("audio/ui/uiOptionOff.wav") @@ -459,6 +433,7 @@ screen bonus_chapter_button(f="gui/button/menubuttons/template_idle.png"): button: xmaximum 500 ymaximum 129 + xysize (500, 129) action ShowMenu("ex_ch_menu") activate_sound "audio/ui/uiClick.wav" fixed: @@ -501,10 +476,14 @@ screen main_menu(): fixed: xalign 0.125 yalign 0.5 - xsize 1920/2 - ysize 1080/4 - add Solid(gui.accent_color) + xsize int(1920/2) + ysize int(1080/4) at bonus_notif + fixed: + add Solid("#000") + add Solid(gui.accent_color) xysize ( int(1920/2)-20, int(1080/4)-12 ): + xalign 0.5 + yalign 0.5 if persistent.endings == 0b1111: text "You have unlocked all bonus chapters!" style "main_menu_text" yalign 0.5 else: @@ -543,7 +522,7 @@ screen main_menu(): [ "Extras", ShowMenu("extras") ], \ [ "Quit", Quit(confirm=not main_menu) ] ] ) - on "show" action renpy.start_predict_screen("cg_gallery") + #on "show" action renpy.start_predict_screen("cg_gallery") style main_menu_frame is empty style main_menu_vbox is vbox @@ -992,6 +971,8 @@ screen preferences(): label _("Naughty Stuff") textbutton _("Enable Lewd Images") action [Function(onclick_audio, persistent.lewd), ToggleVariable("persistent.lewd", True, False)] + use translator_roulette + vbox: style_prefix "check" label _("Requires Restart") @@ -1263,11 +1244,11 @@ screen extrasnavigation(): [ [ "Help", ShowMenu("help") ], [ "About", ShowMenu("about") ], - [ "Updates", ShowMenu("updates") ], [ "Gallery", ShowMenu("cg_gallery_0") ], [ "Mods", ShowMenu("mod_menu") ], [ "Return", ShowMenu("main_menu") ] ] ) + add Null(0, 129) ## Help screen ################################################################# ## @@ -1738,7 +1719,7 @@ style pref_vbox: #redefine function screen quick_button(filename, label, function): - variant "small mobile" + variant "mobile" button: xmaximum 124 ymaximum 124 @@ -1748,7 +1729,7 @@ screen quick_button(filename, label, function): text label xalign 0.5 yalign 0.5 size 42 style "quick_button_text" screen quick_menu(): - variant "small mobile" + variant "mobile" zorder 100 if quick_menu: hbox: @@ -1765,7 +1746,7 @@ screen quick_menu(): ] ) screen extrasnavigation(): #Updates are removed (not even supported by Ren'Py) - variant "small mobile" + variant "mobile" vbox: xpos 1940 yalign 0.03 @@ -1787,73 +1768,73 @@ screen extrasnavigation(): #Updates are removed (not even supported by Ren'Py) ] ) style radio_button: - variant "small mobile" + variant "mobile" foreground "gui/phone/button/radio_[prefix_]foreground.png" style check_button: - variant "small mobile" + variant "mobile" foreground "gui/phone/button/check_[prefix_]foreground.png" style nvl_window: - variant "small mobile" + variant "mobile" background "gui/phone/nvl.png" style game_menu_outer_frame: - variant "small mobile" + variant "mobile" background "gui/phone/overlay/game_menu.png" style game_menu_navigation_frame: - variant "small mobile" + variant "mobile" xsize 510 style game_menu_content_frame: - variant "small mobile" + variant "mobile" top_margin 0 style pref_vbox: - variant "small mobile" + variant "mobile" xsize 600 style bar: - variant "small mobile" + variant "mobile" ysize gui.bar_size left_bar Frame("gui/phone/bar/left.png", gui.bar_borders, tile=gui.bar_tile) right_bar Frame("gui/phone/bar/right.png", gui.bar_borders, tile=gui.bar_tile) style vbar: - variant "small mobile" + variant "mobile" xsize gui.bar_size top_bar Frame("gui/phone/bar/top.png", gui.vbar_borders, tile=gui.bar_tile) bottom_bar Frame("gui/phone/bar/bottom.png", gui.vbar_borders, tile=gui.bar_tile) style scrollbar: - variant "small mobile" + variant "mobile" ysize gui.scrollbar_size base_bar Frame("gui/phone/scrollbar/horizontal_[prefix_]bar.png", gui.scrollbar_borders, tile=gui.scrollbar_tile) thumb Frame("gui/phone/scrollbar/horizontal_[prefix_]thumb.png", gui.scrollbar_borders, tile=gui.scrollbar_tile) style vscrollbar: - variant "small mobile" + variant "mobile" xsize gui.scrollbar_size base_bar Frame("gui/phone/scrollbar/vertical_[prefix_]bar.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile) thumb Frame("gui/phone/scrollbar/vertical_[prefix_]thumb.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile) style slider: - variant "small mobile" + variant "mobile" ysize gui.slider_size base_bar Frame("gui/phone/slider/horizontal_[prefix_]bar.png", gui.slider_borders, tile=gui.slider_tile) thumb "gui/phone/slider/horizontal_[prefix_]thumb.png" style vslider: - variant "small mobile" + variant "mobile" xsize gui.slider_size base_bar Frame("gui/phone/slider/vertical_[prefix_]bar.png", gui.vslider_borders, tile=gui.slider_tile) thumb "gui/phone/slider/vertical_[prefix_]thumb.png" style slider_pref_vbox: - variant "small mobile" + variant "mobile" xsize None style slider_pref_slider: - variant "small mobile" + variant "mobile" xsize 900 diff --git a/game/script.rpy b/game/script.rpy index 3d19880..3ae1499 100644 --- a/game/script.rpy +++ b/game/script.rpy @@ -20,6 +20,7 @@ init -1 python: mod_menu_access = [] init python: + import random import webbrowser #function for insult layers @@ -48,6 +49,14 @@ init python: if persistent.autoup == None: persistent.autoup = False + def randomize_choices(choices): + # fine for size of 2 + if (renpy.random.randint(0, 1)): + choices.reverse() + return choices + + pass + transform randPosition: alpha 0.0 xalign random.uniform(0.2,0.8) @@ -817,7 +826,7 @@ image naomi prom lessblurred = im.Flip(im.Blur('images/naomi/naomi prom neutral. #image naomifangcg = "images/cgs/naomifangcg.png" image naomifangcg blur = im.Blur("images/cgs/naomifangcg.jpg", 1.5) image naomiletter = 'images/cgs/naomiletter.jpg' -image ending_d_cg = 'images/cgs/golden ending.jpg' +#image ending_d_cg = 'images/cgs/golden ending.jpg' image photoviewfinder = 'images/other/photoviewfinder.png' @@ -1144,19 +1153,6 @@ image hotel = "images/backgrounds/hotellobby.jpg" image airport = "images/backgrounds/airport.jpg" image fromairplane = "images/backgrounds/fromairplane.jpg" -#WAOH ITS THE TITLE SCREEN!!!! -label splashscreen: - $ persistent.splashtype = random.randint(0,2000 - 1) - $ renpy.movie_cutscene("images/intros/CaveManonProductions.webm") - - if persistent.autoup: - python: - UpdateCheck() - if persistent.updateresult != "No new version is available": - updater.update(persistent.updateWebServer, force=True) - - stop sound - return #Custom Vars for positions transform scenter: diff --git a/game/script/1.first-two-days-anon-meets-fang.rpy b/game/script/1.first-two-days-anon-meets-fang.rpy index ba7fd32..b1fec32 100644 --- a/game/script/1.first-two-days-anon-meets-fang.rpy +++ b/game/script/1.first-two-days-anon-meets-fang.rpy @@ -2265,14 +2265,14 @@ label chapter_1: # affects dialogue with Spears when entering his office $ late_to_spears = True pause .5 - jump .naserBro + jump lnaserBro "I don't wanna piss off the caveman.": $ late_to_spears = False pause .5 - jump .pissOffCaveman + jump lpissOffCaveman # Anon tries to find Naser before heading to Spear's office - label .naserBro: + label lnaserBro: "Principal caveman can wait. I want to apologize to Naser about yesterday{cps=*0.1}...{/cps}" @@ -2702,10 +2702,10 @@ label chapter_1: stop ambient fadeout 3 # Branch joins up again at Spear's office, with some small dialogue differences - jump .spears_office + jump lspears_office - label .pissOffCaveman: + label lpissOffCaveman: "Probably best I try and not make the principal pissed at me." "Campus beautification sounds like slave labor. And my arms are strictly for shitposting and gaming." @@ -2878,7 +2878,7 @@ label chapter_1: stop ambient fadeout 3 - label .spears_office: + label lspears_office: play music 'audio/OST/we just turned on the microphone in our programmers_ house.ogg' fadein 3 scene office spears with Fade(1, 0, 1) @@ -3125,7 +3125,7 @@ label chapter_1: pause .5 # Anon has already spoken with Naser and seen Trish - jump .postCavemanConference + jump lpostCavemanConference else: "I thank Mr. Spears one last time and head out." @@ -3137,7 +3137,7 @@ label chapter_1: pause .5 - label .finding_naser: + label lfinding_naser: play ambient 'audio/effects/schoolLoop.ogg' fadein 1.5 scene hallway with Dissolve(1.5) @@ -3362,7 +3362,7 @@ label chapter_1: scene black with Dissolve(1.5) - label .postCavemanConference: + label lpostCavemanConference: pause 0.5 "The periods pass and eventually it’s lunchtime again." diff --git a/game/script/11.school-assignment-and-route-lock.rpy b/game/script/11.school-assignment-and-route-lock.rpy index e680e8c..a1ac7db 100644 --- a/game/script/11.school-assignment-and-route-lock.rpy +++ b/game/script/11.school-assignment-and-route-lock.rpy @@ -439,7 +439,7 @@ label chapter_11: if _return == 2: stop music fadeout 3 pause 2 - jump .PromAnnouncement + jump lPromAnnouncement scene hallway show anon neutral at acenter @@ -574,13 +574,13 @@ label chapter_11: call get_ending if _return == 4: - jump .SortingThings # Golden + jump lSortingThings # Golden elif _return == 3: - jump .MendingThings # Tradwife + jump lMendingThings # Tradwife else: - jump .BreakingThings # Shooter + jump lBreakingThings # Shooter - label .SortingThings: + label lSortingThings: stop music fadeout 4 A "Why’s that?" @@ -1842,9 +1842,9 @@ label chapter_11: window auto pause .5 - jump .PromAnnouncement + jump lPromAnnouncement - label .MendingThings: + label lMendingThings: A "It’s because I’m human, isn’t it." @@ -2311,6 +2311,8 @@ label chapter_11: with Dissolve(1) pause .5 + $ renpy.mark_image_seen('fullbody_fangarm') + "She lays her head on my arm, very carefully. It was fast becoming her preferred pillow here." pause .5 @@ -4900,9 +4902,9 @@ label chapter_11: window auto pause .5 - jump .PromAnnouncement + jump lPromAnnouncement - label .BreakingThings: + label lBreakingThings: A "I don’t follow." pause .5 @@ -5200,7 +5202,7 @@ label chapter_11: pause 1 #Anouncement - label .PromAnnouncement: + label lPromAnnouncement: "{cps=*.2}-- April first --{/cps}" pause .5 diff --git a/game/script/12C.anon-fang-lovey-dovey.rpy b/game/script/12C.anon-fang-lovey-dovey.rpy index 1da8d6b..f83db0a 100644 --- a/game/script/12C.anon-fang-lovey-dovey.rpy +++ b/game/script/12C.anon-fang-lovey-dovey.rpy @@ -45,6 +45,8 @@ label chapter_12C: show kissu1 with dissolve + $ renpy.mark_image_seen('fullbody_kissu1') + Lucy "You're so good to me." A "Thanks. F- Lucy." @@ -206,6 +208,8 @@ label chapter_12C: with Dissolve(1) pause .5 + $ renpy.mark_image_seen('fullbody_kissu2') + Lucy "See? Getting better." A "Mmm…" @@ -214,7 +218,7 @@ label chapter_12C: window hide window auto pause .5 - + scene black with Dissolve(1) pause 0.5 A "Y-yeah,{w=0.2} same." @@ -262,7 +266,7 @@ label chapter_12C: with Dissolve(0.25) pause 3.0 scene sepiagarden - show grain_effect + show grain_effect show sepiastella explanatory flip behind grain_effect at sright: xalign 0.8 show sepiaanon neutral behind grain_effect at acenter: @@ -278,7 +282,7 @@ label chapter_12C: A "{i}Right, right. Lunar eclipse. Is that the one where you can’t see the Moon or the one where you can’t see the sun?{/i}" - show sepiastella unimpressed flip with dissolve + show sepiastella unimpressed flip with dissolve St "{i}*sigh*{/i}" St "{i}It’s also called a Blood Moon for its color?{/i}" @@ -298,7 +302,7 @@ label chapter_12C: with dissolve Ro "{i}Oh, yes!{/i}" - + Ro "{i}My backyard is very big. Long bus ride to school.{/i}" Ro "{i}But I see the stars at night so well, so Stella has slumber parties often!{/i}" @@ -500,7 +504,7 @@ label chapter_12C: pause 0.5 St "Eventide draws near. I believe it best we sojourn from the fated ones, Rosa. My scrying glass awaits." - + pause 0.5 show fang neutral behind rosa show rosa considering @@ -896,5 +900,5 @@ label chapter_12C: window hide window auto pause 1 - - return \ No newline at end of file + + return diff --git a/game/script/13D.fang-plays-well,-naomi-jealous,-fang-talks-to-anon-to-break-up-while-she-thinks-about-her-life.rpy b/game/script/13D.fang-plays-well,-naomi-jealous,-fang-talks-to-anon-to-break-up-while-she-thinks-about-her-life.rpy index d95fb2e..d62293e 100644 --- a/game/script/13D.fang-plays-well,-naomi-jealous,-fang-talks-to-anon-to-break-up-while-she-thinks-about-her-life.rpy +++ b/game/script/13D.fang-plays-well,-naomi-jealous,-fang-talks-to-anon-to-break-up-while-she-thinks-about-her-life.rpy @@ -2465,6 +2465,8 @@ label chapter_13D: with dissolve pause 1 + $ renpy.mark_image_seen('fullbody_dpromdance') + A "Alright, I think she said like this{cps=*.1}...{/cps}" show fanganon_promdance: @@ -3310,6 +3312,8 @@ label chapter_13D: with Dissolve(1) pause 1 + $ renpy.mark_image_seen('fullbody_christmas') + "I’m sitting in my bed, looking through one of my favorite presents." "Fang’s mom was right, I am happy about all those photos." diff --git a/game/script/14A.KO_OP-ending.rpy b/game/script/14A.KO_OP-ending.rpy index 0895d24..7de13c1 100644 --- a/game/script/14A.KO_OP-ending.rpy +++ b/game/script/14A.KO_OP-ending.rpy @@ -854,6 +854,8 @@ label chapter_14A: ypos 0 with Dissolve(2) + $ renpy.mark_image_seen('fullbody_fang_shooter') + F "A-Anon{cps=*.1}...{/cps} WHY ARE YOU-!" A "Aaaah{cps=*.1}...{/cps}{w=.4} haaaah{cps=*.1}...{/cps} Fang{cps=*.1}...{/cps}{w=.4} why{cps=*.1}...{/cps}?" diff --git a/game/script/14C.good-ending.rpy b/game/script/14C.good-ending.rpy index 15e0813..0cc5c65 100644 --- a/game/script/14C.good-ending.rpy +++ b/game/script/14C.good-ending.rpy @@ -796,6 +796,8 @@ label chapter_14C: with Dissolve(1) pause 1 + $ renpy.mark_image_seen('fullbody_c06') + "I draw Lucy close to my chest." "She snuggles up to me." @@ -862,6 +864,8 @@ label chapter_14C: with dissolve pause 1 + $ renpy.mark_image_seen('fullbody_c07') + "I embrace her, I could tell she was getting tense, but slowly she relaxes in my arms." "When I said that we're being together was all that mattered, she hugged me back." @@ -979,6 +983,8 @@ label chapter_14C: show c09 with Dissolve(1) pause 1.25 + $ renpy.mark_image_seen('fullbody_c09') + A "Urgh-- it's ok, Lucy." pause .5 diff --git a/game/script/2.fourth-day-of-school.rpy b/game/script/2.fourth-day-of-school.rpy index 96ef697..70be38b 100644 --- a/game/script/2.fourth-day-of-school.rpy +++ b/game/script/2.fourth-day-of-school.rpy @@ -230,14 +230,14 @@ label chapter_2: "Ask what’s up": pause .5 - jump .naomiWhatsUp + jump lnaomiWhatsUp "Not my place to pry": pause .5 - jump .naomiNotMyPlace + jump lnaomiNotMyPlace - label .naomiWhatsUp: + label lnaomiWhatsUp: A "You alright?" @@ -249,9 +249,9 @@ label chapter_2: N "Not really{cps=*.1}...{/cps}{w=.4} A bit, I guess{cps=*.1}...{/cps}" pause .5 - jump .naomiStressMerge + jump lnaomiStressMerge - label .naomiNotMyPlace: + label lnaomiNotMyPlace: "Nah, I don’t know her that well." @@ -260,9 +260,9 @@ label chapter_2: N "I’m sorry, I’ve been a bit stressed lately, Anon{cps=*.1}...{/cps}" - jump .naomiStressMerge + jump lnaomiStressMerge - label .naomiStressMerge: + label lnaomiStressMerge: N "I’ve just been worried about Naser recently{cps=*.1}...{/cps}" @@ -2139,7 +2139,7 @@ label chapter_2: A "It’s funny in a way, yeah." - jump .PostCheckLinkOut + jump lPostCheckLinkOut "Save it for later": @@ -2147,7 +2147,7 @@ label chapter_2: "I'll save this one for when I get home." - label .PostCheckLinkOut: + label lPostCheckLinkOut: show reed explanatory Re "Xrox is better anyways, you see the whole lineup they had prepared for{cps=*.1}...{/cps}" diff --git a/game/script/3.showing-up-at-band-practice-and-giving-feedback.rpy b/game/script/3.showing-up-at-band-practice-and-giving-feedback.rpy index 7164a06..16b3cce 100644 --- a/game/script/3.showing-up-at-band-practice-and-giving-feedback.rpy +++ b/game/script/3.showing-up-at-band-practice-and-giving-feedback.rpy @@ -935,11 +935,11 @@ label chapter_3: # TODO: phone overlay with Elliot Raptor, and the text ‘he made some valid points :^)’ show layeredanonphone shitpost_elliot with dissolve - "Ah yes, perfect." + "Ah yes, perfect." show layeredanonphone shitpost_elliotbp with dissolve "Click post." pause .5 - show layeredanonphone shitpost_elliotsuccess with dissolve + show layeredanonphone shitpost_elliotsuccess with dissolve pause .5 show layeredanonphone shitpost_elliotwait with dissolve "{cps=*.3}Aaaand{/cps} now to wait." @@ -1679,16 +1679,15 @@ label chapter_3: window auto pause .5 - menu: - "Speak Up": - pause .5 - jump .GuitarQuestionSpeakUp - "Stay Silent": - pause .5 - jump .GuitarQuestionStaySilent + python: + #menu item text then label to jump into + choices = [(_('Speak Up'), 'GuitarQuestionSpeakUp'), + (_('Stay Silent'), 'GuitarQuestionStaySilent')] + _value = renpy.display_menu(randomize_choices(choices)) + renpy.pause(0.5) + renpy.jump(_value) - - label .GuitarQuestionSpeakUp: + label GuitarQuestionSpeakUp: $ fangscore += 1 @@ -1747,10 +1746,10 @@ label chapter_3: show anon behind dimmer_light with dissolve - jump .postguitarscene + jump lpostguitarscene - label .GuitarQuestionStaySilent: + label GuitarQuestionStaySilent: "Can’t guarantee their style won’t be better than dogshit if I lose this challenge." @@ -1864,10 +1863,10 @@ label chapter_3: show trish considering flip with dissolve - jump .postguitarscene + jump lpostguitarscene - label .postguitarscene: + label lpostguitarscene: stop music fadeout 3 pause .5 diff --git a/game/script/4.anon-needs-help-during-music-period.rpy b/game/script/4.anon-needs-help-during-music-period.rpy index 99ff8fd..12a7162 100644 --- a/game/script/4.anon-needs-help-during-music-period.rpy +++ b/game/script/4.anon-needs-help-during-music-period.rpy @@ -385,7 +385,7 @@ label chapter_4: hide dimmer_light with Dissolve(.5) hide mask3 # hide mask3 - + pause .75 A "VVURM DRAMA?{w=.4} That’s an{cps=*.1}...{/cps}{w=.2} interesting name{cps=*.1}...{/cps}{w=.4} and what’s with the date on it?" @@ -644,15 +644,15 @@ label chapter_4: pause .5 stop music fadeout 5 - menu: - "Heads, ask Fang for help": - pause .5 - jump .Heads - "Tails, leave Fang alone": - pause .5 - jump .Tails - label .Heads: + python: + choices = [(_('Heads, ask Fang for help'), 'lHeads'), + (_('Tails, leave Fang alone'), 'lTails')] + _value = renpy.display_menu(randomize_choices(choices)) + renpy.pause(0.5) + renpy.jump(_value) + + label lHeads: $ fangscore += 1 @@ -813,10 +813,10 @@ label chapter_4: yalign 0.1 xalign 0.15 with Fade(1, 0, 1) - jump .PostFlip + jump lPostFlip - label .Tails: + label lTails: stop music fadeout 3 @@ -929,10 +929,10 @@ label chapter_4: yalign 0.1 xalign 0.15 with Fade(1, 0, 1) - jump .PostFlip + jump lPostFlip - label .PostFlip: + label lPostFlip: pause .5 # TODO: Fuck You I Like This Chick @@ -1264,20 +1264,18 @@ label chapter_4: rotate 12.5 mousearea: ypos -75 - area(0.225, 0, 795, 1100) + area(432, 0, 795, 1100) # xalign 0.5 yanchor 0 ypos 0 - hovered Hide("prompt") + hovered Hide("prompt" ) unhovered Show("prompt") - # kick the player back out in X seconds in case they can't find the 'close' button - # timer 10.0 action Return() - add "white" - timer 2 action(Show("mousedetect"), Show("prompt")) - screen textscroll(): + timer 2.0 action(Show("mousedetect"), Show("prompt")) + add Solid("FFF") - transform: # thanks based nutbuster + + transform: zoom 0.8 rotate 12.5 viewport: @@ -1287,14 +1285,15 @@ label chapter_4: arrowkeys True # edgescroll(400, 800) - add "texts" yinitial 1.0 imagebutton auto "fangbutton%s" xalign 0.53 yalign 0.5: - ypos 65+(107/2) + ypos 65+(int(107/2)) xsize 284 ysize 107 action (Hide("mousedetect"), Hide("prompt"), Hide("textscroll", transition=Dissolve(1.0)), Return()) + add "texts" + add "fang phone" call screen textscroll with dissolve diff --git a/game/script/5.fang-and-anon-cut-class-to-talk-on-the-roof.rpy b/game/script/5.fang-and-anon-cut-class-to-talk-on-the-roof.rpy index 7783f6d..114d29f 100644 --- a/game/script/5.fang-and-anon-cut-class-to-talk-on-the-roof.rpy +++ b/game/script/5.fang-and-anon-cut-class-to-talk-on-the-roof.rpy @@ -1181,19 +1181,15 @@ label chapter_5: window auto pause .5 - menu: + python: + choices = [(_('Explain it to her honestly, she should understand by now'), 'lbeHonest'), + (_('Joking is a good way to move past mistakes.'), 'ljokeAround')] + _value = renpy.display_menu(randomize_choices(choices)) + renpy.music.stop(fadeout=3) + renpy.pause(0.5) + renpy.jump(_value) - "Explain it to her honestly, she should understand by now": - stop music fadeout 3 - pause .5 - jump .beHonest - - "Joking is a good way to move past mistakes.": - stop music fadeout 3 - pause .5 - jump .jokeAround - - label .beHonest: + label lbeHonest: $ anonscore += 1 @@ -1300,10 +1296,10 @@ label chapter_5: "Suddenly an orange terror descends upon me like I set off some sort of alarm." $ punched_into_flowerbed = False - jump .postAnonLaughReveal + jump lpostAnonLaughReveal - label .jokeAround: + label ljokeAround: "We’re good enough friends now, right?{w=.4} This’ll be {cps=*.3}fiiiine.{/cps}" window hide @@ -1375,10 +1371,10 @@ label chapter_5: "Rosa isn’t stunned for long though, and suddenly an orange terror descends upon me like I set off some sort of alarm." $ punched_into_flowerbed = True - jump .postAnonLaughReveal + jump lpostAnonLaughReveal - label .postAnonLaughReveal: + label lpostAnonLaughReveal: pause .5 @@ -3272,12 +3268,16 @@ label chapter_5: window auto pause .5 - menu: - "Stay quiet...": - pause .5 - "Interrupt": - pause .5 - jump .interrupt4b + python: + choices = [(_('Stay quiet...'), 'Snot'), + (_('Interrupt'), 'linterrupt4')] + choices = randomize_choices(choices) + _value = renpy.display_menu(choices) + _tick = 1 + + renpy.pause(0.5) + if _value != 'Snot': + renpy.jump(_value+chr(0x61+_tick)) "There’s a time to speak and a time to listen." pause .5 @@ -3407,12 +3407,12 @@ label chapter_5: window auto pause .5 - menu: - "Stay quiet...": - pause .5 - "Interrupt": - pause .5 - jump .interrupt4c + python: + _value = renpy.display_menu(choices) + _tick += 1 + renpy.pause(0.5) + if _value != "Snot": + renpy.jump(_value+chr(0x61+_tick)) $ wingStory = True @@ -3496,12 +3496,12 @@ label chapter_5: window auto pause .5 - menu: - "Stay quiet...": - pause .5 - "Interrupt": - pause .5 - jump .interrupt4d + python: + _value = renpy.display_menu(choices) + _tick += 1 + renpy.pause(0.5) + if _value != "Snot": + renpy.jump(_value+chr(0x61+_tick)) show fang: easein_quart 1 xalign 0.2 @@ -3578,12 +3578,12 @@ label chapter_5: window auto pause .5 - menu: - "Stay quiet...": - pause .5 - "Interrupt": - pause .5 - jump .interrupt4e + python: + _value = renpy.display_menu(choices) + _tick += 1 + renpy.pause(0.5) + if _value != "Snot": + renpy.jump(_value+chr(0x61+_tick)) $ fangscore += 1 $ anonscore += 1 @@ -3865,6 +3865,8 @@ label chapter_5: show fanganonhug with dissolve + $ renpy.mark_image_seen('fullbody_fanganonhug') + "Without a second thought I draw her into a hug, comforting her." "Her voice is muffled by my jacket but she continues." @@ -3948,7 +3950,7 @@ label chapter_5: jump postFangAndAnonTalk - label .interrupt4b: + label linterrupt4b: "She seems at a loss for words." @@ -3984,7 +3986,7 @@ label chapter_5: jump postinterruption - label .interrupt4c: + label linterrupt4c: "Here’s a good place to butt in." pause .5 @@ -4017,7 +4019,7 @@ label chapter_5: jump postinterruption - label .interrupt4d: + label linterrupt4d: "Now’s a good time." pause .5 @@ -4048,7 +4050,7 @@ label chapter_5: jump postinterruption - label .interrupt4e: + label linterrupt4e: "Here we go." pause .5 @@ -4203,6 +4205,8 @@ label chapter_5: with Dissolve(1) pause .5 + $ renpy.mark_image_seen('fullbody_hallpass') + "She takes it from my hands, our fingers brushing for a second." "She blushes while she handles the acoustic bathroom pass." diff --git a/game/script/6.anon-helps-fang-find-a-venue-for-band.rpy b/game/script/6.anon-helps-fang-find-a-venue-for-band.rpy index 6544755..06857e1 100644 --- a/game/script/6.anon-helps-fang-find-a-venue-for-band.rpy +++ b/game/script/6.anon-helps-fang-find-a-venue-for-band.rpy @@ -1696,16 +1696,14 @@ label chapter_6: window auto pause .5 - menu: - "Excuse myself": - pause .5 - jump .AnonExcusesHimself - "Wait for Fang": - pause .5 - jump .AnonWaitsForFang + python: + choices = [(_('Excuse myself'), 'lAnonExcusesHimself'), + (_('Wait for Fang'), 'lAnonWaitsForFang')] + _value = renpy.display_menu(randomize_choices(choices)) + renpy.pause(0.5) + renpy.jump(_value) - - label .AnonExcusesHimself: + label lAnonExcusesHimself: "I need to get away from here,{w=.4} fast." window hide @@ -1917,7 +1915,7 @@ label chapter_6: jump troodon - label .AnonWaitsForFang: + label lAnonWaitsForFang: $ anonscore += 1 "{cps=*.1}...{/cps}No." @@ -2088,15 +2086,14 @@ label chapter_6: window auto pause .5 - menu: - "Ask Naser": - pause .5 - jump .AskNaser - "Ask Fang": - pause .5 - jump .AskFang + python: + choices = [(_('Ask Naser'), 'lAskNaser'), + (_('Ask Fang'), 'lAskFang')] + _value = renpy.display_menu(randomize_choices(choices)) + renpy.pause(0.5) + renpy.jump(_value) - label .AskNaser: + label lAskNaser: A "Actually, Naser." @@ -2304,10 +2301,10 @@ label chapter_6: F "You think I’d stop at a black eye?" - jump .postAsking + jump lpostAsking - label .AskFang: + label lAskFang: $ fangscore += 1 @@ -2509,10 +2506,10 @@ label chapter_6: "With that Naser and Naomi leave, turning the corner onto another street." show anon neutral with dissolve - jump .postAsking + jump lpostAsking - label .postAsking: + label lpostAsking: stop music fadeout 3 play ambient 'audio/effects/cityLoop.ogg' fadein 4 @@ -2872,17 +2869,17 @@ label chapter_6: menu: "At least it’s a novelty.": pause .5 - jump .buyTheRoomba + jump lbuyTheRoomba "No way am I paying forty bucks on this shit.": pause .5 - jump .notBuyingTheFuckingRoomba + jump lnotBuyingTheFuckingRoomba - label .buyTheRoomba: + label lbuyTheRoomba: A "Fuck it, fine." - jump .RoombaConvergence + jump lRoombaConvergence - label .notBuyingTheFuckingRoomba: + label lnotBuyingTheFuckingRoomba: show anon shrug with dissolve A "Fang, we can find the place on our own." @@ -2897,7 +2894,7 @@ label chapter_6: A "Fine you fucking cunt." show anon neutral with Dissolve(.25) - label .RoombaConvergence: + label lRoombaConvergence: "I slap down the money on Reed’s maybe-family’s booth." pause .5 diff --git a/game/script/7.concert-day.rpy b/game/script/7.concert-day.rpy index bb9d9da..4b13667 100644 --- a/game/script/7.concert-day.rpy +++ b/game/script/7.concert-day.rpy @@ -300,7 +300,7 @@ label chapter_7: window auto pause 0.15 play sound 'audio/effects/whoosh.ogg' - + # show stella neutral alt flip with Dissolve(.25) show stella: easeout_quad 0.6 xalign -0.5 @@ -470,11 +470,11 @@ label chapter_7: pause .5 define LeftStage = False - menu: - "Leave the stage as-is": - jump LeaveStageAsIs - "Fix the cables": - jump FixCables + + python: + choices = [(_('Leave the stage as-is'), 'LeaveStageAsIs'), + (_('Fix the cables'), 'FixCables')] + renpy.jump(renpy.display_menu(randomize_choices(choices))) label LeaveStageAsIs: $ anonscore += 1 @@ -518,7 +518,7 @@ label chapter_7: stop music fadeout 3 scene black with Dissolve(1) - scene moes pizza + scene moes pizza show fang hiding at sright with Dissolve(1) pause 0.5 @@ -900,7 +900,7 @@ label chapter_7: # zoom 0.8 # xalign 1.0 yalign -0.1 #with dissolve - + "Trish looks like she’s sucked on a lemon with how twisted her face is." "The tiny triceratops pulls Fang out of my hands, and I can picture my fist twisting that horn right off her face." @@ -909,7 +909,7 @@ label chapter_7: pause 0.5 hide fanganonhug - hide trish + hide trish show fang neutral flip at scenter show anon neutral flip at sright: @@ -973,7 +973,7 @@ label chapter_7: show moealt with dissolve: xalign 2.0 easein_cubic 1 xalign 1.6 yalign 0.0 - show fang happy + show fang happy show anon neutral behind fang show trish surprised with Dissolve(0.5) @@ -1221,7 +1221,7 @@ label chapter_7: show fang: easein_cubic 1 xalign 0.3 show fang happy flip with Dissolve(0.5) - + F "Trish! Didn’t you say you wanted to set up our merch!" show trish unimpressed show anon neutral flip @@ -1414,7 +1414,7 @@ label chapter_7: Re "Er{cps=*.1}...{/cps} Probably shouldn’t have mentioned that…" A "Fang wasn’t herself?" - show reed explanatory flip with Dissolve(0.5) + show reed explanatory flip with Dissolve(0.5) Re "Honestly{cps=*.1}...{/cps} That’s probably something to be left for Fang and Fang alone to talk about{cps=*.1}...{/cps} Sorry." @@ -1486,7 +1486,7 @@ label chapter_7: show fang neutral with dissolve: xalign -1.0 - easein_cubic 1 xalign -0.5 + easein_cubic 1 xalign -0.5 pause 0.5 F "Come on Anon, don’t you have any good memories from your old school?" @@ -1515,8 +1515,8 @@ label chapter_7: A "I didn’t say I was good at it. I was just clicking buttons and seeing what stuck." A "And spoiler alert, nothing did." - show trish considering flip - show fang happy + show trish considering flip + show fang happy with Dissolve(0.25) "That got a giggle out of Fang and a look from Trish." @@ -1618,7 +1618,7 @@ label chapter_7: easein_cubic 0.5 xalign 0.175 ease_cubic 0.75 xalign 0.2 show reed neutral flip with Dissolve(0.25) - + "Reed gives me a fist bump." pause 0.5 @@ -1643,7 +1643,7 @@ label chapter_7: $ renpy.music.set_volume(0.35, 1, 'music') play ambient 'audio/effects/heartbeat.ogg' volume 0.5 fadein 0.5 - show anon concerned + show anon concerned show dimmer_darker behind anon with Dissolve(0.5) @@ -1671,7 +1671,7 @@ label chapter_7: stop music fadeout 5.0 A "Yeah, yeah, thanks man." - + T "Sounds personal, guess we shouldn’t pry." T "We’re all friends here, after all." @@ -1703,7 +1703,7 @@ label chapter_7: easein_cubic 1 xalign 1.2 show moe alt flip with dissolve: - xalign -1.0 yalign 0.1 + xalign -1.0 yalign 0.1 easein_cubic 1.4 xalign -0.7 pause 0.25 diff --git a/game/script/8.anon-and-fang-study-together.rpy b/game/script/8.anon-and-fang-study-together.rpy index 502d251..b1fe09d 100644 --- a/game/script/8.anon-and-fang-study-together.rpy +++ b/game/script/8.anon-and-fang-study-together.rpy @@ -257,7 +257,7 @@ label chapter_8: # xalign 0.3 yalign 0.1 #show student3: # xalign 0.6 yalign 0.1 - #with dissolve + #with dissolve "With that the sea of students begins to funnel out of the auditorium." @@ -266,9 +266,9 @@ label chapter_8: #show student2: # ease_quart 1.5 xalign -0.5 alpha 0.0 #with Dissolve(1.0) - #pause 1.0 + #pause 1.0 #hide student1 - #hide student2 + #hide student2 # pause 0.3 #show student3: @@ -276,13 +276,13 @@ label chapter_8: #show teacher4: # ease_quart 1.8 xalign -0.5 alpha 0.0 #with Dissolve(1.0) - #pause 1.0 + #pause 1.0 #hide student3 #hide teacher4 # pause 0.4 #show teacher1: - # ease_quart 1.5 xalign 1.5 alpha 0.0 + # ease_quart 1.5 xalign 1.5 alpha 0.0 #show teacher2: # ease_quart 1.8 xalign 1.5 alpha 0.0 #show teacher3: @@ -381,7 +381,7 @@ label chapter_8: pause 0.5 show trish: - easeout_cubic 1 xalign 1.4 alpha 0.0 + easeout_cubic 1 xalign 1.4 alpha 0.0 show trish neutral with dissolve hide trish with dissolve pause 0.25 @@ -449,16 +449,16 @@ label chapter_8: "OH GO FUCK YOURSELF BILL WITHERS." window hide window auto - + show fang behind anon: easeout_cubic 1 xpos 0.0 alpha 0.0 - show anon: + show anon: easeout_cubic 1 xalign -0.2 alpha 0.0 show fang unimpressed flip with Dissolve(0.25) pause 0.25 hide fang - hide anon + hide anon with dissolve pause 0.25 @@ -576,6 +576,8 @@ label chapter_8: with dissolve pause 0.5 + $ renpy.mark_image_seen('fullbody_fangguitar') + F "Uhm{cps=*.1}...{/cps} This is just how I get ready for studying." F "Strumming along puts me at ease." @@ -619,14 +621,13 @@ label chapter_8: window auto pause .5 - menu: - "Play The Guitar": - jump LetFangPlayGuit - "Get to Studying": - jump GetStartedOnStudy + python: + choices = [(_('Play The Guitar'), 'lLetFangPlayGuit'), + (_('Get to Studying'), 'lGetStartedOnStudy')] + renpy.jump(renpy.display_menu(randomize_choices(choices))) - label LetFangPlayGuit: + label lLetFangPlayGuit: $ fangscore += 1 pause .5 @@ -703,6 +704,8 @@ label chapter_8: with dissolve pause .5 + $ renpy.mark_image_seen('fullbody_fanganonguitar') + "She’s standing RIGHT THE FUCK BEHIND ME!" pause .5 @@ -729,7 +732,7 @@ label chapter_8: F "Alright, try these chords." play sound 'audio/effects/goodA.ogg' fadein 0.5 "Her fingers press mine down, holding down the strings in an awkward position." - + F "Then this." play sound 'audio/effects/goodB.ogg' fadein 0.5 "My hands are slid down closer to the base of the neck and too close to my crotch." @@ -1429,7 +1432,7 @@ label chapter_8: window hide window auto pause 0.5 - + show anonphone at scenter with easeinbottom pause .5 @@ -1530,7 +1533,7 @@ label chapter_8: "Or rather proud of herself that she was that good of a music teacher." - "Her way of ‘congratulating’ me was to hip-check me right into my locker, only to apologize while laughing her ass off." + "Her way of ‘congratulating’ me was to hip-check me right into my locker, only to apologize while laughing her ass off." pause 0.5 "Actually, the whole ordeal made me remember I had this old music program installed on my computer." @@ -1567,7 +1570,7 @@ label chapter_8: return - label GetStartedOnStudy: + label lGetStartedOnStudy: pause 0.5 "No, I should focus more on my midterms." pause 0.5 @@ -1631,7 +1634,7 @@ label chapter_8: show anon neutral with dissolve A "So, what? We take turns reading it?" - show fang unimpressed with Dissolve(0.25) + show fang unimpressed with Dissolve(0.25) F "Too slow. Let’s just huddle and read it together." @@ -1878,7 +1881,7 @@ label chapter_8: "She reaches elbow-deep into her purse and pulls out a small flipbook." FM "Oh Lucy, this is my FAVORITE little picture of you and Naser!" - + show fangmom: easein_cubic 1 xalign 0.0 pause 0.5 @@ -1902,13 +1905,13 @@ label chapter_8: pause 0.5 F "{cps=*1.3}Oh my god mom{/cps}, he doesn’t have time for this!" - + "Fang pulls me off the ground and begins to push me towards the door." window hide window auto pause 0.25 - #show anon neutral flip at acenter + #show anon neutral flip at acenter #show fang angry flip at sleft: # xalign 1.3 #with dissolve diff --git a/game/script/9.anons'-dirty-laundry-gets-put-up-to-air.rpy b/game/script/9.anons'-dirty-laundry-gets-put-up-to-air.rpy index 62cd553..801ccc5 100644 --- a/game/script/9.anons'-dirty-laundry-gets-put-up-to-air.rpy +++ b/game/script/9.anons'-dirty-laundry-gets-put-up-to-air.rpy @@ -563,7 +563,7 @@ label chapter_9: linear 0.5 alpha 0 pause .25 show reed considering: - xalign 1.05 + xalign 1.05 with Dissolve(0.2) pause .2 show reed: #flip @@ -1076,20 +1076,14 @@ label chapter_9: $ TalkedWithTrish = 0 - menu: + python: + choices = [(_('Talk with Trish'), 'lTalkWithTrish'), + (_('Ignore Trish'), 'lIgnoreTrish')] + _value = renpy.display_menu(randomize_choices(choices)) + renpy.pause(0.5) + renpy.jump(_value) - "Talk with Trish": - - pause .5 - jump .TalkWithTrish - - "Ignore Trish": - - pause .5 - jump .IgnoreTrish - - - label .TalkWithTrish: + label lTalkWithTrish: $ TalkedWithTrish = 1 @@ -1169,10 +1163,10 @@ label chapter_9: A "You should tell that to Fang." pause .5 - jump .PostSpearsOfficeTrish + jump lPostSpearsOfficeTrish - label .IgnoreTrish: + label lIgnoreTrish: stop music fadeout 5 pause .5 @@ -1202,7 +1196,7 @@ label chapter_9: show anon neutral flip with dissolve - label .PostSpearsOfficeTrish: + label lPostSpearsOfficeTrish: "Right before I clamp my hand on the doorknob, Spears speaks up." Sp "Oh, and Anon.{w=0.3} Don’t think I didn’t notice." @@ -1293,18 +1287,18 @@ label chapter_9: "Wait for Trish to exit the office": pause .5 - jump .WaitForTrishToExit + jump lWaitForTrishToExit "Go Home Early": pause .5 - jump .GoHomeEarly + jump lGoHomeEarly else: - jump .GoHomeEarly + jump lGoHomeEarly - label .WaitForTrishToExit: + label lWaitForTrishToExit: $ anonscore += 1 #play music 'audio/OST/fighter.ogg' fadein 1.0 @@ -1696,10 +1690,10 @@ label chapter_9: "I catch up to Fang near the front of the school as I mentally prepare myself for what’s coming." pause .5 - jump .WalkOfShame + jump lWalkOfShame - label .GoHomeEarly: + label lGoHomeEarly: stop music fadeout 5 @@ -1778,7 +1772,7 @@ label chapter_9: "We make our way to the front of the school as I mentally prepare myself for what’s coming." pause .5 - label .WalkOfShame: + label lWalkOfShame: play music 'audio/OST/you can_t sage here.ogg' fadein 1.0 "Time for the Walk of Shame." diff --git a/game/src/cg_gallery.rpy b/game/src/cg_gallery.rpy index 0667344..058f7b9 100644 --- a/game/src/cg_gallery.rpy +++ b/game/src/cg_gallery.rpy @@ -1,8 +1,11 @@ -init python: + +init 2 python: + + import json # CONST PARAMS ALLOW_ZOOM = False - GALLERY_COLS = 3 + GALLERY_COLS = 4 PREFERRED_WIDTH = 432 #px (1920 * 0.225) PREFERRED_HEIGHT = 243 #px (1080 * 0.225) PREFERRED_ASPECT_RATIO = 16.0/9.0 # 1.7777.. @@ -34,18 +37,41 @@ init python: for cp in CG_PATHS: gallery_dic[cp['name']] = [] # + + # Make a scaled cg button # (cg: string; ext: string; w: float - def cg(fname, ext, w): - scale = PREFERRED_WIDTH * 100.0 / w / 100.0 + def cg_(fname, ext, w): + scale = PREFERRED_WIDTH / w #scale = box_ratio(wh) - return im.FactorScale(fname, scale, scale, False) + #image = im.FactorScale(fname, scale, scale, True) + if type(fname) is str: + image = im.FactorScale(fname, scale, scale, True) + return image + else: + return Transform(fname, zoom=scale) + #return Transform(fname, crop=(0,0,1920,1080), zoom=scale) # Reads /images/cgs dir for all image files # Populates galleryItems # () -> None + def add_(str, _str, ext, cpname): + image = renpy.image_size(Image(_str)) + + item = { + "item": str, + "fn": _str, + "cg": cg_(_str, ext, image[0]), + "ext": ext, + "wh": image + } + gallery_dic[cpname].append(item) + + pass + def loadGallery(): + list_img = renpy.list_images() #if ext is "webm": @@ -57,26 +83,28 @@ init python: _str = path+str+"."+ext if renpy.loadable(_str): #brute force - image = renpy.image_size(Image(_str)) + add_(str, _str, ext, cp['name']) + + - gallery_dic[cp['name']] += [{ - "item": str, - "fn": _str, - "cg": cg(_str, ext, image[0]), - "ext": ext, - "wh": image - }] return # Call to loading the gallery loadGallery() + #renpy.start_predict_screen("cg_gallery") + + #sort + # hard code the webm because renpy is really dumb and doesn't add Movies properly until much later - fang_webm = 'images/animations/fang tail.webm' + fang_webm = 'fang thumb' + + webm_rcg = Fixed(Color("#000"), Text("Fang", size=280, xalign=0.5, yalign=0.5), xsize=1920) + renpy.seen_label('fang_movie') gallery_dic['Animations'] = [{ "item": 'fang tail', - "fn": fang_webm, - "cg": Movie(fang_webm),#cg(_str, 'webm', 1920), + "fn": 'fang tail', + "cg": cg_('images/backgrounds/garden.jpg', None, 1920), "ext": 'webm', "wh": [1920, 1080] }] @@ -97,6 +125,66 @@ init python: zoom_arr.sort() """ + + + def jsonloadandpop(): + #CACHE_PATH = config.basedir.replace("\\","/") + "/game/cache/" + FILENAME = os.path.join(config.basedir, 'game/src/gallery_dataset.json') + #CACHE_PATH = config.basedir.replace("\\","/") + "/game/cache/" + fp = open(FILENAME) + data = json.load(fp) + + list_img = renpy.list_images() + + for x in data['tabs']: + + tab_name = x['tab_name'] + _eval = None + if 'eval' in x.keys(): + _eval = x['eval'] + + CG_PATHS.append({'path': None, 'name': tab_name, 'eval': _eval}) + gallery_dic[tab_name] = [] + #gallery_dataset + + if 'items' in x.keys(): + for y in x['items']: + name = y["name"] + cg = y["image"] + + rcg = renpy.get_registered_image(cg) + + #print(rcg.get_size()) + image_dimensions = (1920, 1080) #renpy.image_size(rcg) + + item = { + "item": name, + "fn": rcg, + "cg": cg_(rcg, None, image_dimensions[0]), + "ext": None, + "wh": image_dimensions + } + gallery_dic[tab_name].append(item) + else: #folders + for str in list_img: + for cp in x['folders']: + for ext in ACCEPTED_EXTENSIONS: + path = cp #cp['path'] + _str = path+str+"."+ext + + #print(_str) + if renpy.loadable(_str): #brute force + add_(str, _str, ext, tab_name) #cp['name']) + + #print(data) + pass + + jsonloadandpop() + + pass + + + """ 'Recursive' / Loopable / Roundtrip Screens _0 <-> _1 @@ -111,7 +199,7 @@ screen cg_gallery_1( __yoffset = 0, origin = 'CG'): use cg_gallery('0', __yoffset, origin) #screen view_image(fn, _origin, zoom=1): -screen view_image_a(fn, _origin, zoom = zoom_arr.index(1.0)): +screen view_image_a(fn, _origin = 0, zoom = zoom_arr.index(1.0)): tag menu use view_image(fn, _origin, zoom, 'b') screen view_image_b(fn, _origin, zoom = zoom_arr.index(1.0)): @@ -176,29 +264,34 @@ screen cg_gallery(flag, __yoffset = 0, origin = 'CG'): xcenter 0.525 ycenter 0.525 - viewport: - yinitial __yoffset + vpgrid id "vpg": + #yinitial __yoffset scrollbars "vertical" mousewheel True draggable True pagekeys True xfill True - grid GALLERY_COLS gallery_rows: - xcenter 0.5 - ycenter 0.5 - for item in gallery_items: - # Should properly fix with actual margin difference but good - # enough or the actual position - python: - item_counter += 1 - yoffset = item_counter / 3 * PREFERRED_HEIGHT * 1.15 - yoffset = int( yoffset + (PREFERRED_HEIGHT * 1.15)) + xcenter 0.5 + #ycenter 0.5 - use flag_button(item, yoffset, origin) + spacing 20 - for i in range(0, empty_spaces): - null height 20 + #rows gallery_rows + cols GALLERY_COLS + + for item in gallery_items: + # Should properly fix with actual margin difference but good + # enough or the actual position + python: + item_counter += 1 + #yoffset = int( yoffset + (PREFERRED_HEIGHT * 1.15)) + yoffset = int(item_counter / 3 * PREFERRED_HEIGHT + ((item_counter / 3))) + + use flag_button(item, yoffset, origin) + + for i in range(0, empty_spaces): + null height 20 """ @@ -214,6 +307,7 @@ screen flag_button(item, yoffset, origin): action Replay('fang_movie')#ShowMenu('view_movie', item, ShowMenu('cg_gallery_0', yoffset, origin)) else: action ShowMenu('view_image_a', item, ShowMenu('cg_gallery_0', yoffset, origin)) + #action Show('view_image', None, item, ShowMenu('cg_gallery_0', yoffset, origin), _zorder=1) xcenter 0.5 ycenter 0.5 padding (1,0,1,2) vbox: @@ -227,6 +321,7 @@ screen flag_button(item, yoffset, origin): add NOT_UNLOCKED_COVER + screen view_movie(item, _origin): tag menu key "game_menu" action _origin @@ -242,14 +337,16 @@ view_image, Loads the image in fullscreen with viewport control. """ screen view_image(item, _origin, zoom = zoom_arr.index(1.0), flag='a'): python: + #_origin = Show('cg_gallery_0', 0, _origin) zoom_a = zoom+1 zoom_a_f = ShowMenu('view_image_'+flag, item, _origin, zoom_a) zoom_b = zoom-1 zoom_b_f = ShowMenu('view_image_'+flag, item, _origin, zoom_b) tag menu - key "game_menu" action _origin - key "button_alternate" action _origin + key "game_menu" action [Hide('view_image'), _origin ] #Show('cg_gallery_0')] #_origin + key "button_alternate" action [Hide('view_image'), _origin ] # Show('cg_gallery_0')] + #key "button_alternate" action _origin # mousewheel & insert+delete if (ALLOW_ZOOM): diff --git a/game/src/credits.rpy b/game/src/credits.rpy new file mode 100644 index 0000000..d48d942 --- /dev/null +++ b/game/src/credits.rpy @@ -0,0 +1,137 @@ + +init python: + + #don't do a halo infinite moment + #hard code the header & footer + #then iterate the list_credits + + list_credits = { + _('Coded By:'): [ + '/dev/non', + "[[Untitled]] Anon", + 'Schizodev Anon', + 'Starmanon', + 'Nutbuster Anon', + 'Inhumanon', + 'Spigot the Bear Anon' + ], + _('Written by:'): [ + 'AVGN Anon', + 'Coomer Anon', + '/trash/ Anon', + 'FreemAnon', + 'Ccp Anon', + 'Kokichi Anon', + 'Alex Anon', + 'Punished Anon', + 'Finn Anon' + ], + _('Story by:'): [ + 'AVGN Anon', + 'Coomer Anon', + 'Alex Anon', + 'Singularity Anon', + 'Tombstone Anon' + ], + _('Production Designer'): [ + 'Alex Anon' + ], + _('Artwork by:'): [ + 'Alex Anon', + 'Mormon Anon', + 'Ccp Anon', + 'Aome Anon', + '/trash/ Anon', + 'Skeleton Anon', + 'eyeh Xinnix Anon', + 'Brit Anon', + 'Dark-N-Wolf Anon', + 'Hotel Anon', + 'Multi Anon', + 'Ionanon' + ], + _('Additional Artwork by:'): [ + 'Backup Anon 1', + 'Backup Anon 2', + 'Backup Anon 3', + 'Backup Anon 4', + 'Backup Anon 5', + 'Backup Anon 6', + ], + _("\"Love theme\" by:"): [ + 'Only Person In The Team With A\nPortfolio/Experience Anon', + ], + _('Music By'): [ + 'Shampoo Anon', + 'Melo Anon' + ], + _('Egg Hunt Contest\nWinner:'): [ + 'Olivia Anon' + ], + _('Character Design\nContest Winner:'): [ + 'Mono Anon', + ], + _('Translators (Spanish):'): [ + 'Queso2033 Anon', + 'TheShadowTrAnon' + ], + _('Proofreader (Spanish):'): [ + 'ElBan Anón', + 'GMAnon' + ], + _('Asset help (Spanish):'): [ + 'Arkiangelo Anon' + ] + } + + textlist = [] + + alignargs = {'xalign': 0.5, 'yalign': 0.5, 'text_align': 0.5} + + #sizes in px + SIZE_SNOT_GAMES = 68*3+10 + SIZE_TITLE = 32*3+10 + SIZE_ENTRY = 26*3+10 + SIZE_ENDER = 52*3+10 + + #there is line_spacing but don't usei t + textlist.append(Text(_("Snoot Game"), size=SIZE_SNOT_GAMES, **alignargs) + textlist.append(Null(1, 16*1)) + textlist.append(Text(_("By CaveManon"), size=SIZE_TITLE, **alignargs) + textlist.append(Null(1, 16*12)) + textlist.append(Text(_("developed in Ren'py"), size=SIZE_ENTRY, **alignargs)) + textlist.append(Null(1, 16*12)) + + for key, arr in list_credits.items(): + textlist.append(Text(key, size=SIZE_TITLE, **alignargs)) + textlist.append(Null(1, 16*6)) + concatstr = "" + for item in arr: + concatstr += item + '\n' + textlist.append(Text(concatstr, size=SIZE_ENTRY, **alignargs)) + textlist.append(Null(1, 16*2)) + + textlist.append(Text(_("T H E E N D"), size=SIZE_ENDER, **alignargs)) + textlist.append(Null(1, 16*18)) + textlist.append(Text(_("Snoot game started development\n on June 19 2020"), size=SIZE_ENTRY, **alignargs)) + + credits_hbox = Fixed(VBox(*textlist, xalign=0.5), xalign=0.5) + renpy.image('credits_hbox', credits_hbox) + # + +#slack: 2000 + +image s_credits = Composite( + (1920, 11000+1000), + (0, 0), "credits_base", + (0, 0), "credits_hbox", + (0, 10060+1000), "d_sketch" +) + +label test_credits: + "test" + show s_credits at Pan((0, -500),(0, 9850+1000), 65) with fade + #show credits_hbox at Pan((0, -500),(0, 9850), 65) with fade + + pause + scene black with Dissolve(3) diff --git a/game/src/definitions.rpy b/game/src/definitions.rpy new file mode 100644 index 0000000..4dcc3de --- /dev/null +++ b/game/src/definitions.rpy @@ -0,0 +1,104 @@ + +#dpromdance + +# fang full body + +init 1 python: + + + renpy.image('fang_thumb', Movie('images/animations/fang tail.webm')) + + + renpy.image('fullbody_hallpass', Composite( + (1920, 1080), + (0, 0), 'roof day', + (0, 0), 'hallpass') + ) + + renpy.image('fullbody_hallpass', Composite( + (1920, 1080), + (0, 0), 'roof day', + (0, 0), 'hallpass') + ) + + renpy.image('fullbody_fangguitar', Composite( + (1920, 1080), + (0, 0), 'fangroom', + (0, 0), 'fangguitar') + ) + + #full body fang anon wombo + + renpy.image('fullbody_fangarm', Composite( + (1920, 1080), + (0, 0), 'room anon day alt', #check + (0, 47), Transform('fangarm', xsize=1920, fit='cover')) + ) + + renpy.image('fullbody_fanganonguitar', Composite( + (1920, 1080), + (0, 0), 'fangroom', + (213, 0), 'fanganonguitar') + ) + + #path to true ending only + renpy.image('fullbody_fanganonhug', Composite( + (1920, 1080), + (0, 0), 'roof day', + (0, 0), 'fanganonhug') + ) + + #crops + renpy.image('fullbody_kissu1', Composite( + (1920, 1080), + (0, 0), 'room anon night', + (0, 0), Transform('kissu1', crop=(49, 0, 1920, 1080))) + ) + + renpy.image('fullbody_kissu2', Composite( + (1920, 1080), + (0, 0), 'room anon day', + (213, 0), 'kissu2') + ) + + # ENDING 4 + + renpy.image('fullbody_dpromdance', Composite( + (1920, 1080), + (0, 0), 'park_night', + (0, 0), 'dpromdance') + ) + + renpy.image('fullbody_christmas', Composite( + (1920, 1080), + (0, 0), 'room anon day', + (0, 0), 'anonchristmasmorning') + ) + + # ENDING 3 + + renpy.image('fullbody_c06', Composite( + (1920, 1080), + (0, 0), 'park night', + (0, 0), 'c06') + ) + + renpy.image('fullbody_c07', Composite( + (1920, 1080), + (0, 0), 'park night', + (0, 0), 'c07') + ) + + renpy.image('fullbody_c09', Composite( + (1920, 1080), + (0, 0), 'city morning', + (0, 0), 'c09') + ) + + # ENDING 1 + + renpy.image('fullbody_fang_shooter', Composite( + (1920, 1080), + (0, 0), Transform('shooterroof', xsize=1920, fit='cover'), + (0, 0), Transform('fang shooter', crop=(0,0,1920,1080))) + ) diff --git a/game/src/gallery_dataset.json b/game/src/gallery_dataset.json new file mode 100644 index 0000000..4269c12 --- /dev/null +++ b/game/src/gallery_dataset.json @@ -0,0 +1,27 @@ +{ + "tabs":[ + { + "tab_name": "Full body Fang", + "items": [ + { "name": "hallpass", "image": "fullbody_hallpass" }, + { "name": "fangguitar", "image": "fullbody_fangguitar" }, + { "name": "fangshooter", "image": "fullbody_fang_shooter" } + ] + }, + { + "tab_name": "Full body Fang & Anon", + "items": [ + { "name": "fanganonhug", "image": "fullbody_fanganonhug" }, + { "name": "fanganonguitar", "image": "fullbody_fanganonguitar" }, + { "name": "fangarm", "image": "fullbody_fangarm" }, + { "name": "kissu1", "image": "fullbody_kissu1" }, + { "name": "kissu2", "image": "fullbody_kissu2" }, + { "name": "c06", "image": "fullbody_c06" }, + { "name": "c07", "image": "fullbody_c07" }, + { "name": "c09", "image": "fullbody_c09" }, + { "name": "anonchristmasmorning", "image": "fullbody_christmas" } + ] + } + ] +} + diff --git a/game/src/mod_menu.rpy b/game/src/mod_menu.rpy index 3180fbc..f40fe0f 100644 --- a/game/src/mod_menu.rpy +++ b/game/src/mod_menu.rpy @@ -67,7 +67,7 @@ screen mod_menu(): #buttons are messed up but that's ok use mod_menu_button("gui/button/menubuttons/template_idle.png", "Return", ShowMenu("main_menu")) - if len(mod_menu_access) is not 0: + if len(mod_menu_access) != 0: use mod_menu_buttons("gui/button/menubuttons/template_idle.png", mod_menu_access ) else: use mod_menu_button("gui/button/menubuttons/template_idle.png", "You have no mods", None) diff --git a/game/src/splashscreen.rpy b/game/src/splashscreen.rpy new file mode 100644 index 0000000..77af23f --- /dev/null +++ b/game/src/splashscreen.rpy @@ -0,0 +1,12 @@ + +label splashscreen: + $ persistent.splashtype = random.randint(0,2000 - 1) + $ renpy.movie_cutscene("images/intros/CaveManonProductions.webm") + + if (persistent.languaged_up is None): + $ persistent.languaged_up = True + call screen translator_popup + + + return + diff --git a/game/src/translation.rpy b/game/src/translation.rpy new file mode 100644 index 0000000..3ecf2f8 --- /dev/null +++ b/game/src/translation.rpy @@ -0,0 +1,230 @@ + +init offset = -1 + +""" +In absolute hindsight, this could have been done very similar to bonus flash image +instead of the dynamic displayable stuff +""" +init python: + list_langs_buttons = [ + {'image': 'gui/flag/USofA.png', 'name': 'English', 'value': None }, + {'image': 'gui/flag/Mexico.png', 'name': 'Español', 'value': 'es'} + ] + + class LangCave: #todo: think of a better name + FPS = 1/60 #todo: fetch the actual target render framerate + #GRID_ROWS_COLS_TUPLE = (4, (len(list_langs_buttons)//4)) + MAX_ITEMS_IN_ROW = 4 #column as well + GRID_ROWS_COLS_TUPLE = (MAX_ITEMS_IN_ROW, + len(list_langs_buttons)//MAX_ITEMS_IN_ROW + 1*((len(list_langs_buttons)%MAX_ITEMS_IN_ROW)>0)) + + lang_buttons = [] + final_displayable = None + + on_disable_interactable = False + + LARGE_SIZE = (320, 240) + LARGE_SPACING = (80, 40) + SMALL_SIZE = (LARGE_SIZE[0]//3, LARGE_SIZE[1]//3) + SMALL_SPACING = (LARGE_SPACING[0]//2, LARGE_SPACING[1]//2) + + class LangButton(renpy.Displayable): + def __init__(self, v, child, **kwargs): + super(LangCave.LangButton, self).__init__(**kwargs) + + #self.childs = [] + + self.child = renpy.displayable(child) + # self.childs.append(child) + + + self.width = 0#w + self.height = 0#h + self.value = v + self.hover = True #renpy can't handle not/! + self.selected = False + + def render(self, width, height, st, at): + root_render = renpy.Render(self.width, self.height) #canvas + + args = {} + if (self.hover): + args = {'matrixcolor': TintMatrix("#AAA")} + + if (LangCave.on_disable_interactable == False and self.selected): + args = {} + + #force rendering to get width and height + self.width, self.height = renpy.render(Transform(child=self.child), 0, 0, 0.0, 0.0).get_size() + #for ch in self.childs: #draw every child + t = Transform(child=self.child, **args) + child_render = renpy.render(t, self.width, self.height, st, at) + root_render.blit(child_render, (0, 0)) + + + return root_render + + def event(self, ev, ex, ey, st): #getting clicked on + global LangCave + + oldhover = self.hover + if ((ex > 0 and ey > 0) and (ex < self.width and ey < self.height)): + self.hover = False + if (renpy.map_event(ev, 'mouseup_1')): #1026 + for lb in LangCave.lang_buttons: + lb.selected = False + self.selected = True + onclick_audio(True) + self.value() #todo: change to function, as value doesn't make sense + + if LangCave.on_disable_interactable: + LangCave.on_disable_interactable = False + LangCave.recreate_lang_buttons_roulette_style(LangCave.SMALL_SIZE) #mostly going to happen + renpy.end_interaction(0) + + for lb in LangCave.lang_buttons: + renpy.redraw(lb, 0) + else: + self.hover = True + pass + if self.hover == oldhover: #refresh on change + renpy.redraw(self, 0) + + def visit(self): + return [self.child] + + + @staticmethod + def render_langcave(st, at): + global LangCave + return LangCave.final_displayable, LangCave.FPS + pass + + @staticmethod + def procreate_lang_buttons(size, spacing): + """ + size: tuple + """ + global LangCave + + LangCave.lang_buttons.clear() + + for llb in list_langs_buttons: + tfi = Transform(Image(llb['image']), xysize=size, fit='contain', yalign=0.5) + #solid = Solid((22,22,22), xysize=size) + # = Solid((22,22,22), xysize=size) + _button = Fixed(tfi, xysize=size) + lang = Language(llb['value']) + button = LangCave.LangButton(lang, _button) + LangCave.on_disable_interactable = True + + + + text = Text(llb['name'], outlines=[(2, "#000", 0, 0)], xalign=0.5) + final = VBox(text, button, style_prefix="navigation") + LangCave.lang_buttons.append(final) + + #prevent underfill + remainder = len(list_langs_buttons)%LangCave.MAX_ITEMS_IN_ROW + for x in range(4-remainder): + n = Null(*size) + LangCave.lang_buttons.append(n) + + LangCave.final_displayable = Grid(*LangCave.GRID_ROWS_COLS_TUPLE, *LangCave.lang_buttons, + xspacing=spacing[0], yspacing=spacing[1]) + + pass + + @staticmethod + def recreate_lang_buttons_roulette_style(size, spacing=0): + global LangCave + LangCave.lang_buttons.clear() + + LangCave.on_disable_interactable = False + + for llb in list_langs_buttons: + tfi = Transform(Image(llb['image']), xsize=size[0], ysize=size[1], fit='contain', yalign=0.5) + #solid = Solid((22,22,22), xysize=(size)) + _button = Fixed(tfi, xysize=(size)) + + text = Text(llb['name'], outlines=[(2, "#000", 0, 0)], xalign=0.5, text_size=16, yalign=0.5) #todo: text_size away + penultimate = HBox(text, _button, style_prefix="navigation", spacing=20) + #print(dir(penultimate)) + + lang = Language(llb['value']) + button = LangCave.LangButton(lang, penultimate) + + if (_preferences.language == llb['value']): + button.selected = True + + LangCave.lang_buttons.append(button) + + LangCave.final_displayable = VBox(*LangCave.lang_buttons, spacing=spacing) + + pass + + if (persistent.languaged_up is None): + LangCave.procreate_lang_buttons(LangCave.LARGE_SIZE, LangCave.LARGE_SPACING) + else: + LangCave.recreate_lang_buttons_roulette_style(LangCave.SMALL_SIZE) #mostly going to happen + + + +screen lang_buttons(filename_label_functions): + for f_l_f in filename_label_functions: + use lang_button(f_l_f[0], f_l_f[1], f_l_f[2]) + +screen lang_button(filename, label, function): + button: + xsize 360 + ysize 240 + action [function, Return()] + activate_sound "audio/ui/uiClick.wav" + #hovered Transform(matrixcolor=TintMatrix('#fff')) + fixed: + xsize 360 + ysize 240 + #xfit True + #yfit True + #fit_first 'height' + add "#222" xsize 360 ysize 240 + add Transform(Image(filename), xsize=360, fit='contain', yalign=0.5) + text label xalign 0.5 yalign 0.0 xanchor 0.5 size 22 style "quick_button_text" + +screen _translator_popup: + tag menu + add gui.main_menu_background + #add gui.game_menu_background + + vbox: + style_prefix "navigation" + hbox: + label _("Choose Your Language") + grid 2 1: #hardcoded for now + spacing 20 + use lang_buttons(list_langs_buttons) + +screen translator_popup: + tag menu + + frame: + #background gui.main_menu_background + background Transform(gui.main_menu_background, matrixcolor=TintMatrix('#222')) + + padding (120, 40) + vbox: + style_prefix "navigation" + hbox: + label _("Choose Your Language") text_size 80 + hbox: + add Null(80, 40) + add DynamicDisplayable(LangCave.render_langcave) + + +screen translator_roulette: + + vbox: + label _("Language") + style_prefix "check" + add DynamicDisplayable(LangCave.render_langcave) + diff --git a/game/storyline.rpy b/game/storyline.rpy index 9c841d5..c34e97b 100644 --- a/game/storyline.rpy +++ b/game/storyline.rpy @@ -55,30 +55,37 @@ label storyline: return image b_credits = Composite( - (1920, 11000), - (0, 0), "credits", - (0, 10410), "b_sketch") + (1920, 11000+3000), + (0, 0), "credits_base", + (0, 0), "credits_hbox", + (0, 10060+3000), "b_sketch" +) image c_credits = Composite( - (1920, 11000), - (0, 0), "credits", - (0, 10410), "c_sketch") + (1920, 11000+3000), + (0, 0), "credits_base", + (0, 0), "credits_hbox", + (0, 10060+3000), "c_sketch" +) image d_credits = Composite( - (1920, 11000), - (0, 0), "credits", - (0, 10410), "d_sketch") + (1920, 11000+3000), + (0, 0), "credits_base", + (0, 0), "credits_hbox", + (0, 10060+3000), "d_sketch" +) + label .ending: call get_ending if _return == 4: - show d_credits at Pan((0, -500),(0, 9850), 65) with fade + show d_credits at Pan((0, -800),(0, 9850+3000), 65) with fade elif _return == 3: play music "audio/OST/Dino Destiny Reader.ogg" - show c_credits at Pan((0, -500),(0, 9850), 65) with fade + show c_credits at Pan((0, -800),(0, 9850+3000), 65) with fade else: play music "audio/OST/Dino Destiny Reader.ogg" - show b_credits at Pan((0, -500),(0, 9850), 65) with fade + show b_credits at Pan((0, -800),(0, 9850+3000), 65) with fade pause stop music fadeout 5 scene black with Dissolve(3) @@ -89,7 +96,7 @@ label .ending: scene black with Dissolve(2) pause 1 elif anonscore >= 4 and fangscore >= 4: - scene ending_d_cg with Dissolve(1.5) + scene golden ending with Dissolve(1.5) pause 20 scene black with Dissolve(2) pause 1 diff --git a/game/tl/es/common.rpy b/game/tl/es/common.rpy new file mode 100644 index 0000000..010e108 --- /dev/null +++ b/game/tl/es/common.rpy @@ -0,0 +1,8 @@ +# TODO: Translation updated at 2022-10-21 13:48 + +translate es strings: + + # renpy/common/00accessibility.rpy:28 + old "Self-voicing disabled." + new "Self-voicing disabled." + diff --git a/game/tl/test/common.rpy b/game/tl/test/common.rpy new file mode 100644 index 0000000..938fa34 --- /dev/null +++ b/game/tl/test/common.rpy @@ -0,0 +1,984 @@ +# TODO: Translation updated at 2022-10-21 13:48 + +translate test strings: + + # renpy/common/00accessibility.rpy:28 + old "Self-voicing disabled." + new "Self-voicing disabled." + + # renpy/common/00accessibility.rpy:29 + old "Clipboard voicing enabled. " + new "Clipboard voicing enabled. " + + # renpy/common/00accessibility.rpy:30 + old "Self-voicing enabled. " + new "Self-voicing enabled. " + + # renpy/common/00accessibility.rpy:32 + old "bar" + new "bar" + + # renpy/common/00accessibility.rpy:33 + old "selected" + new "selected" + + # renpy/common/00accessibility.rpy:34 + old "viewport" + new "viewport" + + # renpy/common/00accessibility.rpy:35 + old "horizontal scroll" + new "horizontal scroll" + + # renpy/common/00accessibility.rpy:36 + old "vertical scroll" + new "vertical scroll" + + # renpy/common/00accessibility.rpy:37 + old "activate" + new "activate" + + # renpy/common/00accessibility.rpy:38 + old "deactivate" + new "deactivate" + + # renpy/common/00accessibility.rpy:39 + old "increase" + new "increase" + + # renpy/common/00accessibility.rpy:40 + old "decrease" + new "decrease" + + # renpy/common/00accessibility.rpy:138 + old "Font Override" + new "Font Override" + + # renpy/common/00accessibility.rpy:142 + old "Default" + new "Default" + + # renpy/common/00accessibility.rpy:146 + old "DejaVu Sans" + new "DejaVu Sans" + + # renpy/common/00accessibility.rpy:150 + old "Opendyslexic" + new "Opendyslexic" + + # renpy/common/00accessibility.rpy:156 + old "Text Size Scaling" + new "Text Size Scaling" + + # renpy/common/00accessibility.rpy:168 + old "Line Spacing Scaling" + new "Line Spacing Scaling" + + # renpy/common/00accessibility.rpy:180 + old "High Contrast Text" + new "High Contrast Text" + + # renpy/common/00accessibility.rpy:182 + old "Enable" + new "Enable" + + # renpy/common/00accessibility.rpy:193 + old "Self-Voicing" + new "Self-Voicing" + + # renpy/common/00accessibility.rpy:197 + old "Off" + new "Off" + + # renpy/common/00accessibility.rpy:201 + old "Text-to-speech" + new "Text-to-speech" + + # renpy/common/00accessibility.rpy:205 + old "Clipboard" + new "Clipboard" + + # renpy/common/00accessibility.rpy:209 + old "Debug" + new "Debug" + + # renpy/common/00accessibility.rpy:215 + old "Self-Voicing Volume Drop" + new "Self-Voicing Volume Drop" + + # renpy/common/00accessibility.rpy:224 + 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/00action_file.rpy:26 + old "{#weekday}Monday" + new "{#weekday}Monday" + + # renpy/common/00action_file.rpy:26 + old "{#weekday}Tuesday" + new "{#weekday}Tuesday" + + # renpy/common/00action_file.rpy:26 + old "{#weekday}Wednesday" + new "{#weekday}Wednesday" + + # renpy/common/00action_file.rpy:26 + old "{#weekday}Thursday" + new "{#weekday}Thursday" + + # renpy/common/00action_file.rpy:26 + old "{#weekday}Friday" + new "{#weekday}Friday" + + # renpy/common/00action_file.rpy:26 + old "{#weekday}Saturday" + new "{#weekday}Saturday" + + # renpy/common/00action_file.rpy:26 + old "{#weekday}Sunday" + new "{#weekday}Sunday" + + # renpy/common/00action_file.rpy:37 + old "{#weekday_short}Mon" + new "{#weekday_short}Mon" + + # renpy/common/00action_file.rpy:37 + old "{#weekday_short}Tue" + new "{#weekday_short}Tue" + + # renpy/common/00action_file.rpy:37 + old "{#weekday_short}Wed" + new "{#weekday_short}Wed" + + # renpy/common/00action_file.rpy:37 + old "{#weekday_short}Thu" + new "{#weekday_short}Thu" + + # renpy/common/00action_file.rpy:37 + old "{#weekday_short}Fri" + new "{#weekday_short}Fri" + + # renpy/common/00action_file.rpy:37 + old "{#weekday_short}Sat" + new "{#weekday_short}Sat" + + # renpy/common/00action_file.rpy:37 + old "{#weekday_short}Sun" + new "{#weekday_short}Sun" + + # renpy/common/00action_file.rpy:47 + old "{#month}January" + new "{#month}January" + + # renpy/common/00action_file.rpy:47 + old "{#month}February" + new "{#month}February" + + # renpy/common/00action_file.rpy:47 + old "{#month}March" + new "{#month}March" + + # renpy/common/00action_file.rpy:47 + old "{#month}April" + new "{#month}April" + + # renpy/common/00action_file.rpy:47 + old "{#month}May" + new "{#month}May" + + # renpy/common/00action_file.rpy:47 + old "{#month}June" + new "{#month}June" + + # renpy/common/00action_file.rpy:47 + old "{#month}July" + new "{#month}July" + + # renpy/common/00action_file.rpy:47 + old "{#month}August" + new "{#month}August" + + # renpy/common/00action_file.rpy:47 + old "{#month}September" + new "{#month}September" + + # renpy/common/00action_file.rpy:47 + old "{#month}October" + new "{#month}October" + + # renpy/common/00action_file.rpy:47 + old "{#month}November" + new "{#month}November" + + # renpy/common/00action_file.rpy:47 + old "{#month}December" + new "{#month}December" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}Jan" + new "{#month_short}Jan" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}Feb" + new "{#month_short}Feb" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}Mar" + new "{#month_short}Mar" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}Apr" + new "{#month_short}Apr" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}May" + new "{#month_short}May" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}Jun" + new "{#month_short}Jun" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}Jul" + new "{#month_short}Jul" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}Aug" + new "{#month_short}Aug" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}Sep" + new "{#month_short}Sep" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}Oct" + new "{#month_short}Oct" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}Nov" + new "{#month_short}Nov" + + # renpy/common/00action_file.rpy:63 + old "{#month_short}Dec" + new "{#month_short}Dec" + + # renpy/common/00action_file.rpy:250 + old "%b %d, %H:%M" + new "%b %d, %H:%M" + + # renpy/common/00action_file.rpy:364 + old "Save slot %s: [text]" + new "Save slot %s: [text]" + + # renpy/common/00action_file.rpy:445 + old "Load slot %s: [text]" + new "Load slot %s: [text]" + + # renpy/common/00action_file.rpy:498 + old "Delete slot [text]" + new "Delete slot [text]" + + # renpy/common/00action_file.rpy:577 + old "File page auto" + new "File page auto" + + # renpy/common/00action_file.rpy:579 + old "File page quick" + new "File page quick" + + # renpy/common/00action_file.rpy:581 + old "File page [text]" + new "File page [text]" + + # renpy/common/00action_file.rpy:780 + old "Next file page." + new "Next file page." + + # renpy/common/00action_file.rpy:852 + old "Previous file page." + new "Previous file page." + + # renpy/common/00action_file.rpy:913 + old "Quick save complete." + new "Quick save complete." + + # renpy/common/00action_file.rpy:931 + old "Quick save." + new "Quick save." + + # renpy/common/00action_file.rpy:950 + old "Quick load." + new "Quick load." + + # renpy/common/00action_other.rpy:381 + old "Language [text]" + new "Language [text]" + + # renpy/common/00action_other.rpy:703 + old "Open [text] directory." + new "Open [text] directory." + + # renpy/common/00director.rpy:708 + old "The interactive director is not enabled here." + new "The interactive director is not enabled here." + + # renpy/common/00director.rpy:1481 + old "⬆" + new "⬆" + + # renpy/common/00director.rpy:1487 + old "⬇" + new "⬇" + + # renpy/common/00director.rpy:1551 + old "Done" + new "Done" + + # renpy/common/00director.rpy:1561 + old "(statement)" + new "(statement)" + + # renpy/common/00director.rpy:1562 + old "(tag)" + new "(tag)" + + # renpy/common/00director.rpy:1563 + old "(attributes)" + new "(attributes)" + + # renpy/common/00director.rpy:1564 + old "(transform)" + new "(transform)" + + # renpy/common/00director.rpy:1589 + old "(transition)" + new "(transition)" + + # renpy/common/00director.rpy:1601 + old "(channel)" + new "(channel)" + + # renpy/common/00director.rpy:1602 + old "(filename)" + new "(filename)" + + # renpy/common/00director.rpy:1631 + old "Change" + new "Change" + + # renpy/common/00director.rpy:1633 + old "Add" + new "Add" + + # renpy/common/00director.rpy:1636 + old "Cancel" + new "Cancel" + + # renpy/common/00director.rpy:1639 + old "Remove" + new "Remove" + + # renpy/common/00director.rpy:1674 + old "Statement:" + new "Statement:" + + # renpy/common/00director.rpy:1695 + old "Tag:" + new "Tag:" + + # renpy/common/00director.rpy:1711 + old "Attributes:" + new "Attributes:" + + # renpy/common/00director.rpy:1729 + old "Transforms:" + new "Transforms:" + + # renpy/common/00director.rpy:1748 + old "Behind:" + new "Behind:" + + # renpy/common/00director.rpy:1767 + old "Transition:" + new "Transition:" + + # renpy/common/00director.rpy:1785 + old "Channel:" + new "Channel:" + + # renpy/common/00director.rpy:1803 + old "Audio Filename:" + new "Audio Filename:" + + # renpy/common/00gui.rpy:445 + old "Are you sure?" + new "Are you sure?" + + # renpy/common/00gui.rpy:446 + old "Are you sure you want to delete this save?" + new "Are you sure you want to delete this save?" + + # renpy/common/00gui.rpy:447 + old "Are you sure you want to overwrite your save?" + new "Are you sure you want to overwrite your save?" + + # renpy/common/00gui.rpy:448 + 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:449 + old "Are you sure you want to quit?" + new "Are you sure you want to quit?" + + # renpy/common/00gui.rpy:450 + 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:451 + old "Are you sure you want to end the replay?" + new "Are you sure you want to end the replay?" + + # renpy/common/00gui.rpy:452 + old "Are you sure you want to begin skipping?" + new "Are you sure you want to begin skipping?" + + # renpy/common/00gui.rpy:453 + 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:454 + 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:310 + old "Failed to save screenshot as %s." + new "Failed to save screenshot as %s." + + # renpy/common/00keymap.rpy:322 + old "Saved screenshot as %s." + new "Saved screenshot as %s." + + # renpy/common/00library.rpy:230 + old "Skip Mode" + new "Skip Mode" + + # renpy/common/00library.rpy:316 + 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 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:259 + old "display" + new "display" + + # renpy/common/00preferences.rpy:271 + old "transitions" + new "transitions" + + # renpy/common/00preferences.rpy:280 + old "skip transitions" + new "skip transitions" + + # renpy/common/00preferences.rpy:282 + old "video sprites" + new "video sprites" + + # renpy/common/00preferences.rpy:291 + old "show empty window" + new "show empty window" + + # renpy/common/00preferences.rpy:300 + old "text speed" + new "text speed" + + # renpy/common/00preferences.rpy:308 + old "joystick" + new "joystick" + + # renpy/common/00preferences.rpy:308 + old "joystick..." + new "joystick..." + + # renpy/common/00preferences.rpy:315 + old "skip" + new "skip" + + # renpy/common/00preferences.rpy:318 + old "skip unseen [text]" + new "skip unseen [text]" + + # renpy/common/00preferences.rpy:323 + old "skip unseen text" + new "skip unseen text" + + # renpy/common/00preferences.rpy:325 + old "begin skipping" + new "begin skipping" + + # renpy/common/00preferences.rpy:329 + old "after choices" + new "after choices" + + # renpy/common/00preferences.rpy:336 + old "skip after choices" + new "skip after choices" + + # renpy/common/00preferences.rpy:338 + old "auto-forward time" + new "auto-forward time" + + # renpy/common/00preferences.rpy:352 + old "auto-forward" + new "auto-forward" + + # renpy/common/00preferences.rpy:359 + old "Auto forward" + new "Auto forward" + + # renpy/common/00preferences.rpy:362 + old "auto-forward after click" + new "auto-forward after click" + + # renpy/common/00preferences.rpy:371 + old "automatic move" + new "automatic move" + + # renpy/common/00preferences.rpy:380 + old "wait for voice" + new "wait for voice" + + # renpy/common/00preferences.rpy:389 + old "voice sustain" + new "voice sustain" + + # renpy/common/00preferences.rpy:398 + old "self voicing" + new "self voicing" + + # renpy/common/00preferences.rpy:407 + old "self voicing volume drop" + new "self voicing volume drop" + + # renpy/common/00preferences.rpy:415 + old "clipboard voicing" + new "clipboard voicing" + + # renpy/common/00preferences.rpy:424 + old "debug voicing" + new "debug voicing" + + # renpy/common/00preferences.rpy:433 + old "emphasize audio" + new "emphasize audio" + + # renpy/common/00preferences.rpy:442 + old "rollback side" + new "rollback side" + + # renpy/common/00preferences.rpy:452 + old "gl powersave" + new "gl powersave" + + # renpy/common/00preferences.rpy:458 + old "gl framerate" + new "gl framerate" + + # renpy/common/00preferences.rpy:461 + old "gl tearing" + new "gl tearing" + + # renpy/common/00preferences.rpy:464 + old "font transform" + new "font transform" + + # renpy/common/00preferences.rpy:467 + old "font size" + new "font size" + + # renpy/common/00preferences.rpy:475 + old "font line spacing" + new "font line spacing" + + # renpy/common/00preferences.rpy:483 + old "system cursor" + new "system cursor" + + # renpy/common/00preferences.rpy:492 + old "renderer menu" + new "renderer menu" + + # renpy/common/00preferences.rpy:495 + old "accessibility menu" + new "accessibility menu" + + # renpy/common/00preferences.rpy:498 + old "high contrast text" + new "high contrast text" + + # renpy/common/00preferences.rpy:507 + old "audio when minimized" + new "audio when minimized" + + # renpy/common/00preferences.rpy:527 + old "main volume" + new "main volume" + + # renpy/common/00preferences.rpy:528 + old "music volume" + new "music volume" + + # renpy/common/00preferences.rpy:529 + old "sound volume" + new "sound volume" + + # renpy/common/00preferences.rpy:530 + old "voice volume" + new "voice volume" + + # renpy/common/00preferences.rpy:531 + old "mute main" + new "mute main" + + # renpy/common/00preferences.rpy:532 + old "mute music" + new "mute music" + + # renpy/common/00preferences.rpy:533 + old "mute sound" + new "mute sound" + + # renpy/common/00preferences.rpy:534 + old "mute voice" + new "mute voice" + + # renpy/common/00preferences.rpy:535 + old "mute all" + new "mute all" + + # renpy/common/00preferences.rpy:616 + old "Clipboard voicing enabled. Press 'shift+C' to disable." + new "Clipboard voicing enabled. Press 'shift+C' to disable." + + # renpy/common/00preferences.rpy:618 + 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:620 + old "Self-voicing enabled. Press 'v' to disable." + new "Self-voicing enabled. Press 'v' to disable." + + # renpy/common/00iap.rpy:219 + old "Contacting App Store\nPlease Wait..." + new "Contacting App Store\nPlease Wait..." + + # renpy/common/00updater.rpy:419 + 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:548 + old "An error is being simulated." + new "An error is being simulated." + + # renpy/common/00updater.rpy:738 + 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:752 + 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:755 + 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:783 + old "Could not verify update signature." + new "Could not verify update signature." + + # renpy/common/00updater.rpy:1084 + old "The update file was not downloaded." + new "The update file was not downloaded." + + # renpy/common/00updater.rpy:1102 + 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:1252 + old "While unpacking {}, unknown type {}." + new "While unpacking {}, unknown type {}." + + # renpy/common/00updater.rpy:1624 + old "Updater" + new "Updater" + + # renpy/common/00updater.rpy:1631 + old "An error has occured:" + new "An error has occured:" + + # renpy/common/00updater.rpy:1633 + old "Checking for updates." + new "Checking for updates." + + # renpy/common/00updater.rpy:1635 + old "This program is up to date." + new "This program is up to date." + + # renpy/common/00updater.rpy:1637 + 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:1639 + old "Preparing to download the updates." + new "Preparing to download the updates." + + # renpy/common/00updater.rpy:1641 + old "Downloading the updates." + new "Downloading the updates." + + # renpy/common/00updater.rpy:1643 + old "Unpacking the updates." + new "Unpacking the updates." + + # renpy/common/00updater.rpy:1645 + old "Finishing up." + new "Finishing up." + + # renpy/common/00updater.rpy:1647 + old "The updates have been installed. The program will restart." + new "The updates have been installed. The program will restart." + + # renpy/common/00updater.rpy:1649 + old "The updates have been installed." + new "The updates have been installed." + + # renpy/common/00updater.rpy:1651 + old "The updates were cancelled." + new "The updates were cancelled." + + # renpy/common/00updater.rpy:1666 + old "Proceed" + new "Proceed" + + # renpy/common/00gallery.rpy:627 + old "Image [index] of [count] locked." + new "Image [index] of [count] locked." + + # renpy/common/00gallery.rpy:647 + old "prev" + new "prev" + + # renpy/common/00gallery.rpy:648 + old "next" + new "next" + + # renpy/common/00gallery.rpy:649 + old "slideshow" + new "slideshow" + + # renpy/common/00gallery.rpy:650 + old "return" + new "return" + + # renpy/common/00gltest.rpy:89 + old "Renderer" + new "Renderer" + + # renpy/common/00gltest.rpy:93 + old "Automatically Choose" + new "Automatically Choose" + + # renpy/common/00gltest.rpy:100 + old "Force GL Renderer" + new "Force GL Renderer" + + # renpy/common/00gltest.rpy:105 + old "Force ANGLE Renderer" + new "Force ANGLE Renderer" + + # renpy/common/00gltest.rpy:110 + old "Force GLES Renderer" + new "Force GLES Renderer" + + # renpy/common/00gltest.rpy:116 + old "Force GL2 Renderer" + new "Force GL2 Renderer" + + # renpy/common/00gltest.rpy:121 + old "Force ANGLE2 Renderer" + new "Force ANGLE2 Renderer" + + # renpy/common/00gltest.rpy:126 + old "Force GLES2 Renderer" + new "Force GLES2 Renderer" + + # renpy/common/00gltest.rpy:136 + old "Enable (No Blocklist)" + new "Enable (No Blocklist)" + + # renpy/common/00gltest.rpy:159 + old "Powersave" + new "Powersave" + + # renpy/common/00gltest.rpy:173 + old "Framerate" + new "Framerate" + + # renpy/common/00gltest.rpy:177 + old "Screen" + new "Screen" + + # renpy/common/00gltest.rpy:181 + old "60" + new "60" + + # renpy/common/00gltest.rpy:185 + old "30" + new "30" + + # renpy/common/00gltest.rpy:191 + old "Tearing" + new "Tearing" + + # renpy/common/00gltest.rpy:207 + 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:214 + old "Quit" + new "Quit" + + # renpy/common/00gltest.rpy:242 + old "Performance Warning" + new "Performance Warning" + + # renpy/common/00gltest.rpy:247 + old "This computer is using software rendering." + new "This computer is using software rendering." + + # renpy/common/00gltest.rpy:249 + 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:251 + old "This computer has a problem displaying graphics: [problem]." + new "This computer has a problem displaying graphics: [problem]." + + # renpy/common/00gltest.rpy:255 + 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:259 + 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:264 + 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:269 + old "Continue, Show this warning again" + new "Continue, Show this warning again" + + # renpy/common/00gltest.rpy:273 + old "Continue, Don't show warning again" + new "Continue, Don't show warning again" + + # renpy/common/00gltest.rpy:281 + old "Change render options" + new "Change render options" + + # renpy/common/00gamepad.rpy:32 + old "Select Gamepad to Calibrate" + new "Select Gamepad to Calibrate" + + # renpy/common/00gamepad.rpy:35 + old "No Gamepads Available" + new "No Gamepads Available" + + # renpy/common/00gamepad.rpy:54 + old "Calibrating [name] ([i]/[total])" + new "Calibrating [name] ([i]/[total])" + + # renpy/common/00gamepad.rpy:58 + old "Press or move the '[control!s]' [kind]." + new "Press or move the '[control!s]' [kind]." + + # renpy/common/00gamepad.rpy:68 + old "Skip (A)" + new "Skip (A)" + + # renpy/common/00gamepad.rpy:71 + old "Back (B)" + new "Back (B)" + + # renpy/common/_errorhandling.rpym:555 + old "Open" + new "Open" + + # renpy/common/_errorhandling.rpym:557 + old "Opens the traceback.txt file in a text editor." + new "Opens the traceback.txt file in a text editor." + + # renpy/common/_errorhandling.rpym:559 + old "Copy BBCode" + new "Copy BBCode" + + # renpy/common/_errorhandling.rpym:561 + 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:563 + old "Copy Markdown" + new "Copy Markdown" + + # renpy/common/_errorhandling.rpym:565 + 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:594 + old "An exception has occurred." + new "An exception has occurred." + + # renpy/common/_errorhandling.rpym:617 + old "Rollback" + new "Rollback" + + # renpy/common/_errorhandling.rpym:619 + 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:622 + old "Ignore" + new "Ignore" + + # renpy/common/_errorhandling.rpym:626 + old "Ignores the exception, allowing you to continue." + new "Ignores the exception, allowing you to continue." + + # renpy/common/_errorhandling.rpym:628 + 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:632 + old "Reload" + new "Reload" + + # renpy/common/_errorhandling.rpym:634 + 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:637 + old "Console" + new "Console" + + # renpy/common/_errorhandling.rpym:639 + old "Opens a console to allow debugging the problem." + new "Opens a console to allow debugging the problem." + + # renpy/common/_errorhandling.rpym:652 + old "Quits the game." + new "Quits the game." + + # renpy/common/_errorhandling.rpym:673 + old "Parsing the script failed." + new "Parsing the script failed." + diff --git a/game/tl/test/options.rpy b/game/tl/test/options.rpy new file mode 100644 index 0000000..e0feaac --- /dev/null +++ b/game/tl/test/options.rpy @@ -0,0 +1,8 @@ +# TODO: Translation updated at 2022-10-21 13:48 + +translate test strings: + + # game/options.rpy:15 + old "SnootGame" + new "SnootGame" +