Compare commits

...

3811 Commits

Author SHA1 Message Date
Tom Rothamel 26dac5d067 Bump versions. 2021-10-08 08:57:30 -04:00
Tom Rothamel cbcc517294 Revert "gl2: Require GL 2.1 again."
This reverts commit 73713248bc.

Problem was solved with a reboot.
2021-10-06 19:58:41 -04:00
Tom Rothamel 73713248bc gl2: Require GL 2.1 again.
An attempt to fix a problem where many GL functions were missing.
2021-10-06 19:32:53 -04:00
Tom Rothamel 1d76c599fe Print the screen size on mobile. 2021-10-06 01:27:22 -04:00
Tom Rothamel 1bd115d97f Create directories when installing files. 2021-10-05 18:29:11 -04:00
Tom Rothamel 8a4471b440 Add credit. 2021-10-04 19:26:56 -04:00
Tom Rothamel 3946a7d733 Merge pull request #3075 from multimokia/FixScopeDel
Fix scope deletion in screen.py
2021-10-04 19:25:58 -04:00
Tom Rothamel f671520c8d Include the final CTC when laying out text.
This will help prevent strangness caused by text changing size
when the last block is shown.

Fixes #3073.
2021-10-04 19:21:43 -04:00
multimokia f830206df2 no except 2021-10-04 13:18:24 -04:00
multimokia 2653797d82 make other scope pops safe 2021-10-04 12:45:24 -04:00
multimokia 8ed9e07ab6 remove error suppression, safe dict rm, log 2021-10-04 11:56:40 -04:00
Tom Rothamel 6eb20a4422 Give the render (and not displayable) to blit in DynamicDisplayable.
Fixes #3070.
2021-10-04 10:47:44 -04:00
Tom Rothamel c24dc05329 Try to restore gl2 compatibility with gl 2.0 + EXT_framebuffer_object. 2021-10-03 23:22:12 -04:00
Tom Rothamel e435b636ba Doc: Changelog and keywords. 2021-10-02 15:18:11 -04:00
Tom Rothamel 0a536cd522 Merge pull request #3062 from Andykl/bar-released-action
Add `released` action to Bar
2021-10-02 14:48:04 -04:00
Tom Rothamel 5b0a55239c Merge pull request #3067 from Gouvernathor/patch-3
Patch doc
2021-10-02 14:47:23 -04:00
Tom Rothamel 071a6fb715 Make Context.music always a dict.
There wasn't much of a point in making it a RevertableDict, as
far as I can tell - since it's not reachable from a root, it should
never actually participate in rollback.

Fixes #3064.
2021-10-02 14:45:07 -04:00
Tom Rothamel b51ef49536 Avoid allocating audio channels that won't be used. 2021-10-02 14:41:57 -04:00
Tom Rothamel f0f05873ed Quit audio when reloading Ren'Py.
Fixes #3065.

This fixes #3065, where a channel could be assigned a different
number, and remain playing after a reload.
2021-10-02 14:19:02 -04:00
Tom Rothamel 1ab3be2101 DynamicDisplayable should create a Render.
This brings it more inline with the rest of Ren'Py, where displayables
create Renders rather than reusing child renders.
2021-10-02 14:15:50 -04:00
Gouvernathor a5c2fc40b1 Document key statement taking key lists
fix #3066
2021-10-02 19:40:10 +02:00
Tom Rothamel 47cea86c88 Some changes to DynamicDisplayable.
* It now only changes its child if the raw value is different.
* Transform state is propagated.
* Documentation.
2021-10-01 22:03:52 -04:00
Tom Rothamel 89f01113e9 Revert "Fix potential rollback problem"
This reverts commit 68cbf3d87d.

I don't believe this is right - when rollback happens, the context
will be replaced by an older copy of the context. So there's no
reason to rollback this dict.
2021-10-01 08:38:15 -04:00
Tom Rothamel dd29c7317c Limit error handling text to 401 lines.
Fixes #3060.
2021-10-01 08:37:14 -04:00
Andy_kl c8131e04e3 Add released action to Bar 2021-09-30 20:22:34 +02:00
Andy_kl 68cbf3d87d Fix potential rollback problem 2021-09-30 17:10:39 +02:00
Tom Rothamel 5295de43fd Mark traceback.txt as readable. 2021-09-30 01:04:29 -04:00
Tom Rothamel 1b2b319f28 Document how to add files to Android.
Fixes #3058.
2021-09-30 01:01:06 -04:00
Tom Rothamel 7993865619 Document the android permissions change. 2021-09-29 23:12:29 -04:00
Tom Rothamel 578e14471e Explicitly manage the permissions of files on Androd.
This lets the player access their files to move them to other systems.
2021-09-29 23:03:41 -04:00
Tom Rothamel 167322e45d Improve renpy.memory.find_parents.
Mostly by avoiding creating a closure that would show up when
searching for parents.
2021-09-28 02:12:20 -04:00
Tom Rothamel 372d6d026e render: Break cycles in kill_cache.
This ensures that the reference counting gc can reclaim
renders quickly. While the main motivation is to make sure
textures are collected before the texture loader is reset,
this should also prevent GC pauses.
2021-09-28 02:02:12 -04:00
Tom Rothamel 6453f2ca0a gl2: Remove cycle between uniform and program. 2021-09-27 21:37:50 -04:00
Tom Rothamel bb9a6651ad Merge pull request #3052 from Andykl/fix-persistent
Do not unpickle persistent just after the save
2021-09-27 19:33:40 -04:00
Tom Rothamel 2327421152 Changelog the fix to the black screenshot issue. 2021-09-27 19:32:30 -04:00
Tom Rothamel 5b5127627b gl2: Respect the flip parameter to draw_screen.
This is an attempt to fix #3009, and it doesn't look like it
could hurt.
2021-09-27 00:33:04 -04:00
Tom Rothamel 313fe391dd Update changelog. 2021-09-26 11:45:29 -04:00
Tom Rothamel a2b83bafdb Update credits.
This also merges in the credits for renpy-build.
2021-09-26 11:27:01 -04:00
Tom Rothamel 53d3b26a2b Merge pull request #3055 from Neyunse/master
Added TogglePause on MusicRoom
2021-09-26 03:49:45 -04:00
Tom Rothamel 19378110cb ios: Launch the correct .xcodeproj file. 2021-09-26 02:24:18 -04:00
Neyunse 91e427b9b9 Fixed 00musicroom.rpy 2021-09-25 22:15:55 -03:00
Neyunse 7904a2819a Merge branch 'renpy:master' into master 2021-09-25 22:12:59 -03:00
Neyunse 3c1e0067c6 Undo Update 2021-09-25 22:12:47 -03:00
Tom Rothamel 5bfecbf921 Do not copy permissions when making a directory package.
This makes it possible to build ios over the network.
2021-09-25 20:10:35 -04:00
Neyunse bc846c8dd5 Update 00musicroom.rpy 2021-09-25 21:06:16 -03:00
Tom Rothamel ad8ff33bd4 Add MusicRoom.TogglePause.
Fixes #3054.
2021-09-25 18:34:00 -04:00
Tom Rothamel a9fc8109f6 Handle cropping to 0-size polygons properly.
Fixes #3057.
2021-09-25 15:53:52 -04:00
Tom Rothamel 6a4caa1c8c Visit all displayables when first shown.
Fixes #3056, by using visit as a lightweight replacement to
the removed _show that doesn't require time or execution.
2021-09-25 03:15:42 -04:00
Neyunse 4aae4f87f2 Added TogglePause
If music is currently playing it will pause, otherwise it will resume from where it stopped.
In case a music has already finished, the queue will play the music again from the beginning the next time it is called.
If the music is playing the button will receive the selected status and when paused it will be removed.

Note:
__MusicRoomTogglePause is based on __MusicRoomStop, because in some tests in my project, if __MusicRoomTogglePause was the same as __MusicRoomTogglePlay it caused some data about the music being played added with add(action=[SetVariable("jb_title", title)]), such as the music name, artist and the music image, not to be displayed.
2021-09-24 20:44:47 -03:00
Tom Rothamel f2868b0228 Hide now keeps a displayable in the current store.
Fixes #3054, where hide could reevaluate a screen in the new
store.
2021-09-23 22:20:01 -04:00
Andy_kl 4cf0998bf5 sl2: Properly analyze also custom sl statements containing a transclude.
Per ##3034.
2021-09-24 04:07:20 +02:00
Tom Rothamel 121b510761 sl2: Properly analyze use statements containing a transclude.
Fixes #3034.
2021-09-23 20:02:19 -04:00
Andy_kl b2ba026d84 Do not unpickle persistent just after the save 2021-09-24 00:51:19 +02:00
Tom Rothamel 2fbb7be5be Pick a less-spammy site for icon conversion. 2021-09-22 22:31:21 -04:00
Tom Rothamel 6f79af3931 Update credits. 2021-09-22 22:29:39 -04:00
Andy_kl 8ea063ec7c Fix missed AndroidStateText case 2021-09-23 03:07:09 +02:00
Andy_kl 9af96b859d Update Russian translation 2021-09-23 03:04:02 +02:00
Tom Rothamel 9920c7bbcb Add polish translation, by Reptile. 2021-09-21 10:22:11 -04:00
Tom Rothamel bc73ff9acb Fix #3043. 2021-09-21 01:32:02 -04:00
Tom Rothamel c37d7d7f6f rapt: Try to order things more clearly. 2021-09-20 21:11:47 -04:00
Tom Rothamel 93f86de061 On mobile, unfocus the current displayable when the player moves their finger. 2021-09-19 18:38:11 -04:00
Tom Rothamel dded5b159c When perspective is true, create a mesh after applying matrices.
This helps mesh and perspective coexist.

Per https://lemmasoft.renai.us/forums/viewtopic.php?p=546676#p546676.
2021-09-19 15:58:05 -04:00
Tom Rothamel d49225fd47 Merge pull request #3045 from Andykl/fix-persistent-leak
Make ChoiceActionBase.chosen a property
2021-09-18 20:14:58 -04:00
Andy_kl 91f5a87091 Make ChoiceActionBase.chosen a property 2021-09-19 02:01:14 +02:00
Tom Rothamel d0572739fa Add the --safe-mode conmand line flag.
Which forces Ren'Py to start in safe mode.
2021-09-18 01:09:24 -04:00
Tom Rothamel 5c2d9ebbaa Special case ATL "pause 0" to show a single frame.
Per #3041.
2021-09-17 03:18:02 -04:00
Tom Rothamel e25a6ac623 Merge pull request #3039 from Neyunse/master
Fixed Spanish TL: Personalizas
2021-09-16 18:24:03 -04:00
Tom Rothamel 591a01aba2 Mute mutes Movies.
Fixes #3033.
2021-09-15 17:46:28 -04:00
Neyunse 08319c9aab Fixed Spanish TL: Personalizas
Personalizas is not correct on Spanish
Corrected at: Personalizado
Another Corrected form: Personalizar
line: gui7.rpy:358
2021-09-15 15:18:34 -03:00
Tom Rothamel 91974793b8 Copy the context into the rollback created after load.
Fixes #3036, references #2942.
2021-09-14 21:42:54 -04:00
Tom Rothamel ad55381e58 Avoid autoreloading after the autoreload flag is cleared.
Fixes #3037.
2021-09-13 18:02:49 -04:00
Tom Rothamel 56de8d1935 doc: Some of the limitations/changes of perspective. 2021-09-12 02:48:22 -04:00
Tom Rothamel b79adf37a4 transform: Make perspective False the same thing as perspective None. 2021-09-12 02:27:12 -04:00
Tom Rothamel f675f2b92a transform: Allow rotate and perspective to coexist. 2021-09-12 02:15:46 -04:00
Tom Rothamel 8150c47a37 doc: Fix MainMenu documentation.
Fixes #3032.
2021-09-12 00:28:39 -04:00
Tom Rothamel 144e4b614d doc: Detect bad docstrings. 2021-09-11 23:10:01 -04:00
Tom Rothamel 279464d87f Update credit.
Per a twitter request.
2021-09-11 13:11:57 -04:00
Tom Rothamel 89aa1fdc67 doc: Changelog tts changes. 2021-09-10 23:19:31 -04:00
Tom Rothamel e477a1d6d8 tts: Compat the ordering change. 2021-09-10 22:46:40 -04:00
Tom Rothamel 788a39de76 tts: Modal screens stop tts processing.
The idea being to not read out things that are blocked by a modal
dialogue.

Fixes #3030.
2021-09-10 22:34:03 -04:00
Tom Rothamel 123fb78052 tts: Change the order in which layer and displayables on layers are read.
Now, the layers are read with the displayable closest to the player
first, as it's likely to be the most relevant. This would control
the order in which screens are read, but not the screen itself,
as the screen should be read first to last.
2021-09-10 21:48:02 -04:00
Tom Rothamel f581c5b39c Update translations. 2021-09-09 21:36:57 -04:00
Tom Rothamel 4328a11988 Merge pull request #3022 from Moshibit/master
Update Spanish translation
2021-09-09 21:31:02 -04:00
Tom Rothamel 528227a33b ShowIf should prevent tts if the condition is false.
Fixes #3029.
2021-09-09 21:29:26 -04:00
Tom Rothamel 05ff0e1dd5 rapt: Update translation strings. 2021-09-09 17:25:52 -04:00
Tom Rothamel d2b70b5396 rapt: Add list devices, disconnect.
Deals with multiple wifi device connection issues.
2021-09-09 01:07:26 -04:00
Gouvernathor 5a3f6fcfb7 Fix typo 2021-09-08 23:59:31 +02:00
Tom Rothamel ee1b3580b3 Do not pass non-focusable displayables to the keyboard focus system.
Fixes #3027.
2021-09-08 01:10:39 -04:00
Tom Rothamel 342151b1b0 Update the sponsors documentation. 2021-09-08 00:56:22 -04:00
Tom Rothamel e7af259178 Do not quote the pause command on windows.
Or the read command on Linux.
2021-09-07 02:39:55 -04:00
Tom Rothamel b727211a25 android: Fix cancelling pairing operations. 2021-09-07 01:16:59 -04:00
Tom Rothamel 14c0e7c2ee layeredimage: Ignore unavailable optional attributes.
This fixes an issue introduced by #3105, where it became
possible for LayeredImage._choose_attributes to return
None if a nonexistent attribute was given to optional,
as might be the case when switching between semi-related
sets of attributes.
2021-09-06 23:54:31 -04:00
Tom Rothamel 81fe396c6c Remove debugging. 2021-09-06 17:12:35 -04:00
Tom Rothamel a5007536ee doc: Update credits. 2021-09-06 16:01:26 -04:00
Tom Rothamel 57dd2a004d doc: Changes in android keys. 2021-09-06 15:40:57 -04:00
Tom Rothamel 0a5e763ebc transform: Supply gl properties to a model when created.
This allows the model to get properties that will affect how
textures are loaded, allowing the ATL properties to control
texture loading.
2021-09-06 01:33:26 -04:00
Tom Rothamel c0158696b5 doc: Improve documentation of how mesh, Model, and gl_ properties interact.
Per #3024.
2021-09-05 00:44:35 -04:00
Tom Rothamel bb943d6465 Fix the fit parameter to Model.child(). 2021-09-05 00:43:13 -04:00
Tom Rothamel d2050447da Merge pull request #3025 from mal/fix-model-props
Exception when setting GL props on Model displayable
2021-09-05 00:13:06 -04:00
Tom Rothamel 8007446ee1 Clear the atl state when clearing the atl timebase.
This ensures the two match up. Fixes #3008.
2021-09-05 00:12:47 -04:00
Mal Graty 814480cc30 Rename setter to avoid conflict with property 2021-09-04 22:53:04 +01:00
Moshibit cfde71aba8 Merge branch 'renpy:master' into master 2021-09-04 04:50:52 -05:00
Moshibit 4c59b37433 Merge pull request #1 from Moshibit/Moshibit-patch-1
Update Spanish translation
2021-09-04 04:50:19 -05:00
Tom Rothamel c85168a684 Merge pull request #3021 from Gouvernathor/patch-5
Edit and fix documentation
2021-09-04 01:33:46 -04:00
Tom Rothamel 4c0b4aca64 Document changelog. 2021-09-04 01:30:27 -04:00
Tom Rothamel 6d82cf9fcb Simplify the IAP documentation. 2021-09-04 01:24:26 -04:00
Tom Rothamel f99a2dcca9 Document that Pyjnius and Pyobjus are available. 2021-09-04 01:22:38 -04:00
Tom Rothamel 22500fa2c3 Document android permissions. 2021-09-04 01:11:57 -04:00
Tom Rothamel 370a025ede Update keyword list. 2021-09-04 01:09:17 -04:00
Tom Rothamel 5442bff2ce rapt: Add renpy.check_permission and renpy.request_permission.
These are functions used to check permissions on Androuid,
and request permissions that do not exist.
2021-09-04 00:56:54 -04:00
Tom Rothamel 68ede22fa9 rapt: Support build.android_permissions.
This is a variable that takes a list of android permissions
to grant to the app.
2021-09-04 00:56:14 -04:00
Tom Rothamel f851bb0221 Clear the video texture cache when clearing textures.
Fixes #3018.
2021-09-03 22:31:16 -04:00
Tom Rothamel 094c184b1c Merge pull request #3010 from mal/lint-temp-attrs
Ensure lint checks temporary say attributes
2021-09-03 19:54:50 -04:00
Tom Rothamel e6a6a33fbe Merge pull request #3019 from Gouvernathor/patch-4
Update french translations
2021-09-03 19:53:35 -04:00
Gouvernathor 647dc7a98a Add offscreenleft and offscreenright to the graph 2021-09-04 00:02:38 +02:00
Gouvernathor 0e6bb55396 Tweak transform-conserving rules 2021-09-03 23:58:58 +02:00
Gouvernathor 17c46a9e4f Fix displaying_images 2021-09-03 23:22:28 +02:00
Gouvernathor c60d0657e9 Document automatic name generating 2021-09-03 22:58:02 +02:00
Moshibit eef96e5193 Update Spanish translation 2021-09-03 08:27:46 -05:00
Asriel Senna 68f51bc4d9 add translations 2021-09-03 13:52:30 +02:00
Gouvernathor a6a8a0962f Update options.rpy 2021-09-03 13:50:25 +02:00
Tom Rothamel c52d7c645c rapt: Update translations. 2021-09-03 01:05:10 -04:00
Tom Rothamel 8f282be21f Merge pull request #3015 from mal/li-dupe-attrs
Prevent duplicate attributes breaking LIs
2021-09-02 22:44:59 -04:00
Tom Rothamel 2b02c7b7a8 Merge pull request #3017 from Gouvernathor/patch-4
Reorder launcher preferences
2021-09-02 22:26:38 -04:00
Gouvernathor 723166a373 Reorder preferences 2021-09-03 03:18:34 +02:00
Tom Rothamel 8319d68157 Report errors if a comment translation is malformed. 2021-09-02 20:10:08 -04:00
Mal Graty 8e7aa365b5 Prevent duplicate attributes breaking LIs 2021-09-02 18:11:12 +01:00
Mal Graty 2afe32ab13 Ensure lint checks temporary say attributes 2021-09-02 01:15:14 +01:00
Tom Rothamel c3830b39ec Remove blank lines. 2021-09-01 01:49:15 -04:00
Tom Rothamel a463d25b12 Merge pull request #3003 from Gouvernathor/patch-4
Add xycenter and xysize, modify xsize and ysize
2021-08-31 22:11:06 -04:00
Gouvernathor 151be8cd36 Merge branch 'master' into patch-4 2021-08-31 16:55:08 +02:00
Asriel Senna 18aafef005 document offset and fix types and default values 2021-08-31 11:22:12 +02:00
Asriel Senna 7372792a11 fix xcenter and ycenter types 2021-08-31 11:21:39 +02:00
Asriel Senna 35dce1fab6 Add xycenter documentation 2021-08-31 11:21:12 +02:00
Asriel Senna b42d67a2b5 priority typo 2021-08-31 10:33:35 +02:00
Asriel Senna adb289e000 add changelog 2021-08-31 10:27:01 +02:00
Asriel Senna 490757322a add documentation 2021-08-31 10:26:53 +02:00
Asriel Senna 06180ad776 apply reviews 2021-08-31 10:17:39 +02:00
Tom Rothamel 60ddd0fbba Update translations. 2021-08-31 01:30:40 -04:00
Tom Rothamel 3aec878b99 Merge pull request #3001 from Moshibit/master
Update Spanish translation
2021-08-30 19:51:10 -04:00
Moshibit f501f7bd0c Update Spanish translation 2021-08-30 10:46:30 -05:00
Moshibit 21a052d6fb Update Spanish translate
Since the most current nighty does not contain the update of the Android strings, I generate the lines manually, I hope there are no missing lines.
2021-08-30 10:40:29 -05:00
Moshibit 2265f1daa7 Update Spanish translation 2021-08-30 10:07:49 -05:00
Moshibit 4c3ee87f8c Update Spanish Translation 2021-08-30 10:03:32 -05:00
Moshibit 3a193cc1d6 Update Spanish Translation 2021-08-30 09:54:43 -05:00
Moshibit 0ab35ec85b Update Spanish Translation 2021-08-30 09:27:59 -05:00
Tom Rothamel 95e72c8036 Update the android strings. 2021-08-30 10:24:43 -04:00
Moshibit 7aaeee895c Update Spanish translation 2021-08-30 09:24:12 -05:00
Moshibit 487e6bf5c1 Update Spansih translate 2021-08-30 09:19:49 -05:00
Moshibit 67c8d7f13b Update Spanish translation 2021-08-30 09:16:29 -05:00
Moshibit de7dd02431 Update Spanish translation 2021-08-30 09:11:44 -05:00
Moshibit abf0a3b4ea Update Spanish translation 2021-08-30 08:50:05 -05:00
Moshibit 120f33d4d7 Update Spanish translation 2021-08-30 08:37:21 -05:00
Tom Rothamel 702ec8d021 Add the accessibility menu to the default gui. 2021-08-29 20:35:37 -04:00
Tom Rothamel aa4b0c13f2 doc: Add android-downloading.jpg to the changelog. 2021-08-29 20:29:54 -04:00
Tom Rothamel 9800ad1556 Properly document build.include_update. 2021-08-29 20:17:55 -04:00
Tom Rothamel 848b1804a0 Document android-downloading.jpg. 2021-08-29 17:39:42 -04:00
Tom Rothamel e6da0a2f26 Create the game/ directory on android if it doesn't exist.
This fixes a problem where if it didn't exist, files/ would be put
into the searchpath, and all sorts of problems would ensue.
2021-08-29 16:22:41 -04:00
Gouvernathor 7a4a4d2459 Fix implementation 2021-08-29 20:45:12 +02:00
Tom Rothamel cf37f3426a Only display the choice screen once.
Fixes #2594, thanks Andrí.
2021-08-29 09:49:07 -04:00
Tom Rothamel 32494c4577 Reset the ui stack before console error handling.
Fixes #3004.
2021-08-28 21:54:16 -04:00
Moshibit cbc6943729 Update Spanish translate 2021-08-28 10:46:08 -05:00
Moshibit 95316526d5 Update Spanish translation 2021-08-28 10:39:09 -05:00
Tom Rothamel d11632db59 Update sponsor documentation. 2021-08-27 22:45:56 -04:00
Tom Rothamel d504b4c635 Update the changelog. 2021-08-27 22:40:33 -04:00
Gouvernathor c08f7efa3c Change xsize and ysize types 2021-08-28 01:13:05 +02:00
Gouvernathor 4ded371224 Implement xsize and ysize behavioral changes 2021-08-28 01:11:24 +02:00
Gouvernathor df96e1a3d8 Move the compat mechanism out of the transform cls 2021-08-28 00:56:06 +02:00
Gouvernathor b6fa5c402d Add the xysize and xycenter tprop and modify size 2021-08-28 00:03:48 +02:00
Gouvernathor 180b668fb2 Compat the old_size_tpref config variable 2021-08-27 23:59:47 +02:00
Gouvernathor 01ce078e1c Add the old_size_tpref config variable 2021-08-27 23:59:01 +02:00
Moshibit e11c49f59f Update Spanish translation 2021-08-26 08:40:22 -05:00
Moshibit 76a3f34cfa Update Spanish translation 2021-08-26 08:38:27 -05:00
Moshibit 79ab89f6ec Update Spanish translation 2021-08-26 08:34:19 -05:00
Tom Rothamel 6827c6fab7 Include a version number suffix.
u = unofficial builds.
n = nightly builds.
2021-08-26 04:24:48 -04:00
Tom Rothamel dd35de1679 Improvements to #2970.
* Remove animation of update indicator. (An annoyance if the creator
  wants to be informed, but isn't ready to update.)
* Check for updates in a different thread. (Prevents slow internet
  from blocking launcher start.)
* Use requests to check update channels.
2021-08-25 20:59:07 -04:00
Tom Rothamel 214f4d41b6 Merge pull request #2970 from Gouvernathor/patch-6
Update notification
2021-08-25 20:40:33 -04:00
Tom Rothamel 06d4f2c944 Merge pull request #2991 from Gouvernathor/patch-4
Update the parsing error screen
2021-08-25 20:37:21 -04:00
Tom Rothamel 42080e8926 Only allow rollback to be fixed when there is a current statement.
Attempts to fix #2994.
2021-08-25 20:34:02 -04:00
Tom Rothamel b8436cd0b5 Only respect default_focus at the start of an interaction.
Fixes #2964.
2021-08-25 20:28:22 -04:00
Tom Rothamel 0411aa0cf2 a11y: Slightly recolor selected/hovered text in high contrast mode. 2021-08-25 20:15:24 -04:00
Gouvernathor 747c75a14b Opt-out of matrixcolor when needed 2021-08-25 22:17:48 +02:00
Tom Rothamel feb9b6e180 Fix archive directory test. 2021-08-25 10:11:35 -04:00
Tom Rothamel 8be52cd0e4 a11y: Implement high contrast text.
This displays text in white with a black box behind it.
2021-08-25 01:48:00 -04:00
Tom Rothamel df72d29625 a11y: Add high contrast text preference. 2021-08-25 01:19:38 -04:00
Tom Rothamel cbbc84bcda Change where defaults are applied on load/rollback.
By applying them inside the rollback function, we can avoid
rollback reverting the default.

Fixes #2997.
2021-08-25 00:30:37 -04:00
Tom Rothamel df227fd163 Allow a subsurface to be taken of a render with perspective.
This isn't great, as the fix is to do a render to texture,
and then subsurface that. Still, the transition from perspective
to no perspective should be rare-ish, and this allows transitions
and other things that need to subsurface to work, rather than
failing entirely.

Fixes #2998.
2021-08-25 00:01:00 -04:00
Tom Rothamel f8d76fb76a Merge pull request #2996 from RubenGarcia/master
Mention that parameters with default values are possible.
2021-08-24 10:51:41 -04:00
Ruben Jesus Garcia-Hernandez 51c300234f Mention that parameters with default values are possible. 2021-08-24 16:46:32 +02:00
Tom Rothamel afe10a6fe7 Edit down the last commit. 2021-08-23 23:10:56 -04:00
Tom Rothamel 720ad70e0c Merge pull request #2993 from Gouvernathor/patch-5
Document screens' _with_none kwarg and the call screen's with behavior
2021-08-23 23:05:45 -04:00
Tom Rothamel 59f08318fb pyanalysis: Remove unused analyses.
This prevents pyanalysis.rpyb from growing unconstrained.
2021-08-23 22:50:46 -04:00
Tom Rothamel 34ccfe62df Lower the compression level on analysis files.
This should make games load faster, at least on fast storage,
for a minimal increase in size.
2021-08-23 22:31:47 -04:00
Tom Rothamel fe796bbc9c Add the gamedir to the android searchpath. 2021-08-23 22:06:16 -04:00
Tom Rothamel 3d887c787b Handle timing in a move in a transformed layer.
This introduces a new displayable, MatchTimes that passes st and at
to an adjusttimes inside it. This has the effect of undoing the
timing changes that are caused by the transforms in the layer
at list, and making the timing match the transition.
2021-08-23 21:56:04 -04:00
Tom Rothamel 6587085cad Move layer/camera_at_list application into a function.
This is part 1 of making move work in conjunction with the
at lists, which involves move repeating the transformations.
2021-08-23 21:37:55 -04:00
Gouvernathor 7c11e8ed37 Document _with_none and the call's with behavior
fixes #2139
2021-08-23 03:37:10 +02:00
Gouvernathor 2e58ce4544 Update the _parse_errors screen 2021-08-22 14:56:34 +02:00
Tom Rothamel 969cf58a38 Round up viewports to fully contain children.
Fixes #2987.
2021-08-22 01:44:13 -04:00
Tom Rothamel f9234bed69 Prevent the mouse from slowing down AlphaMask.
Fixes #2988, Fixes #2458.
2021-08-21 21:35:22 -04:00
Tom Rothamel 12d14b0fc0 Only scan for .rpas if a directory exists. 2021-08-20 21:31:53 -04:00
Tom Rothamel 307a47c470 Merge pull request #2927 from korden32/patch-1
Search archives in all searchpaths, not just gamedir
2021-08-20 21:26:02 -04:00
Tom Rothamel 5a78f17e92 Merge pull request #2958 from Gouvernathor/patch-4
Fix labels in changelog
2021-08-19 21:31:59 -04:00
Tom Rothamel 70bd11ef6e Merge pull request #2967 from Gouvernathor/patch-5
Document config.has_channel side-effects
2021-08-19 21:20:13 -04:00
Tom Rothamel eccd5855d0 Merge pull request #2965 from RubenGarcia/master
Fix typo.
2021-08-19 21:19:51 -04:00
Tom Rothamel f54c5174b8 Fix updater race conditions.
Fixes #2986.
2021-08-18 19:48:32 -04:00
Tom Rothamel a03fbf8188 Do not show the window when not showing alt dialogue.
Fixes #2984, by treating the alt dialogue the same way
we treat a character with the condition false.
2021-08-17 18:41:52 -04:00
Tom Rothamel f7574a34c1 Allow who.statement_name to be callable.
This makes it possible to extend a function with a method that
selects the statement name. See the next change for the use
case.
2021-08-17 18:41:52 -04:00
Tom Rothamel 82eb7ec134 Merge pull request #2979 from mal/adjust-attrs-lint
Make lint config.adjust_attributes aware
2021-08-17 18:21:21 -04:00
Tom Rothamel 895490ffc0 Merge pull request #2976 from Gouvernathor/patch-7
Update french translations
2021-08-17 18:20:58 -04:00
Andy_kl 394e9d8e48 Keep invariant Node.linenumber refers to the actual string in file for menu Say statement 2021-08-17 19:40:41 +02:00
Tom Rothamel bb4c150c6a android: Documentation. 2021-08-16 23:10:02 -04:00
Tom Rothamel 4d6b91606f android: Report when the bundle key doesn't exist. 2021-08-16 23:10:02 -04:00
Tom Rothamel e59ec61c74 Merge pull request #2983 from mal/fix-gl-prop
Small transform GL property issues
2021-08-16 20:33:23 -04:00
Mal Graty bd7ceb9527 Fix documented name of gl_color_mask 2021-08-16 22:30:15 +01:00
Mal Graty db042399de Order transform gl properties alphabetically 2021-08-16 21:30:11 +01:00
Mal Graty 9c118eb780 Add missing transform gl property 2021-08-16 21:29:34 +01:00
Mal Graty 3ed4291a23 Fix gl_property typo in Transform 2021-08-16 21:28:04 +01:00
Mal Graty f0336b9ec8 Make lint config.adjust_attributes aware
Applies the function when checking a recognised image, and stashes the
original name so that the error report will match the line in the script
being referenced (rather than reporting the adjusted version).
2021-08-15 04:51:02 +01:00
Gouvernathor 8f43ef46fd Update common.rpy 2021-08-14 08:30:57 +02:00
Gouvernathor 263299d37a Update launcher.rpy 2021-08-14 08:30:18 +02:00
Tom Rothamel d1727e0137 doc: Fix typo. 2021-08-13 00:04:33 -04:00
Tom Rothamel 6494b3ddb1 Support loading game assets from Android packs. 2021-08-12 22:41:42 -04:00
Tom Rothamel e044a37a69 android: Interface changes.
* Support selecting and building bundles.
* Support Android 11+ Wi-Fi pair and connect.
2021-08-11 18:14:14 -04:00
Gouvernathor 55c628eff1 Add default value
Without it, the selected clause would not apply since it would be None, and the button would appear enabled because of its list-formed action.
2021-08-10 10:56:53 +02:00
Gouvernathor 9f7b7eec09 Neater code 2021-08-10 10:50:02 +02:00
Gouvernathor f278ae1f6b Fix version comparison
That way only more advanced versions trigger the glowing
2021-08-10 10:46:01 +02:00
Gouvernathor e24f022642 Turn has_upgrade into persistent 2021-08-10 10:39:43 +02:00
Gouvernathor daecb82080 Cleanup and turn has_update into persistent 2021-08-10 10:36:56 +02:00
Gouvernathor 5d25d1b5ef Update the has_update variable at every check 2021-08-10 10:35:23 +02:00
Gouvernathor fb1882e23f Add visual feedback when there is an update
fixes #2961

The transform stuff makes the textbutton glow, the commented-out lines would just make it the color of the Sponsor Information textbutton.
2021-08-10 10:14:37 +02:00
Gouvernathor 8a16dde182 Add update check preference 2021-08-10 10:11:49 +02:00
Gouvernathor 64637d7e84 add update check to the front_page label 2021-08-10 10:10:09 +02:00
Gouvernathor 27f4dbaf55 isolate update check as a function 2021-08-10 10:08:09 +02:00
Gouvernathor f19431c516 Document config.has_channel side-effects 2021-08-09 05:17:25 +02:00
Tom Rothamel 551aebb22b Allow utter_restart to restart Ren'Py without reinitializing.
The goal is to support file downloaders that might restart Ren'Py,
but will redo it without changing the screen information.
2021-08-08 14:04:56 -04:00
Ruben Jesus Garcia-Hernandez 1e9d134e4a Fix typo. 2021-08-08 19:42:58 +02:00
Tom Rothamel 7da3c35dba Fix rt select in the case of a bad link. 2021-08-07 23:31:11 -04:00
Tom Rothamel 96c1510991 Revert "Move finding archives into its own function."
This reverts commit 3a03525490.
2021-08-07 22:47:33 -04:00
Tom Rothamel 3a03525490 Move finding archives into its own function. 2021-08-07 21:51:03 -04:00
Tom Rothamel f63b608baa updater: Allow non-patching updates.
Thes download the entire game, but don't require a web server that's
compatible with zsync.
2021-08-06 20:36:24 -04:00
Tom Rothamel 010dbe9ea8 Play the activate_sound when a bar is activated.
Fixes #2960.
2021-08-05 21:18:20 -04:00
Tom Rothamel 05b89d189e Store base displayables and main displayables separately.
Fixes #2959, a regression introduced by
d49cb97e19 , by separating out the
base displayable that gets focus from the main displayable that
takes scope.
2021-08-04 21:51:44 -04:00
Tom Rothamel ba97538363 Use the correct events for viewport scrolling. 2021-08-03 22:17:38 -04:00
Tom Rothamel 5884eac7b4 atl: Remove prefixes when dispatching events.
This is mainly for selected_hover and selected_idle, which will
become hover and idle if not handled, matching the way these prefixes
are handled in the rest of Ren'Py.

Fixes #2957.
2021-08-03 19:58:29 -04:00
Gouvernathor 62adce9c9e Fix labels in changelog 2021-08-03 05:21:24 +02:00
Tom Rothamel 9dda311e68 Bump version to 7.4.9. 2021-08-02 20:04:39 -04:00
Tom Rothamel 52d0d57e7b Add a way to hide the exceptions produced by the fix for #2945. 2021-08-01 00:50:20 -04:00
Tom Rothamel 7d69b973ac Only access atl_st_offset on an ATLTransform.
Fixes #2952.
2021-07-31 23:05:17 -04:00
Tom Rothamel 86af67b0b2 Update changelog. 2021-07-31 20:02:40 -04:00
Tom Rothamel 899584ea0e Document how transforms inherit properties. 2021-07-31 19:45:03 -04:00
Tom Rothamel d7cbf76f0c Update sponsors doc. 2021-07-31 17:58:21 -04:00
Tom Rothamel 078e65030a Rename 7.4.8. 2021-07-31 17:55:57 -04:00
Tom Rothamel fde3d3757a Agument any non-empty exception. 2021-07-31 17:34:31 -04:00
Tom Rothamel 305abf48bf Merge pull request #2936 from Meithal/patch-1
Update loadsave.py
2021-07-31 17:20:40 -04:00
Tom Rothamel 37826e4403 Merge pull request #2937 from Moshibit/master
fix skins documentation
2021-07-31 17:20:18 -04:00
Tom Rothamel 082f119f16 Make sure text surfaces have an integer size. 2021-07-31 17:09:22 -04:00
Tom Rothamel e186df3e5a Report errors parameterizing an image, if config.developer is True
Fixes #2945.
2021-07-31 16:58:20 -04:00
Tom Rothamel 87692792ac Do not auto-show the dialogue window on centered/vcentered.
This introduces the ability for a character to define its own
statement_name, and uses that ability to create a new statement
that keeps the dialogue window hidden.
2021-07-31 16:25:38 -04:00
Tom Rothamel cfd8530cf2 Store the final width/height of a Viewport.
This needs to be correct for edgescrolling and other things to work.
2021-07-31 15:54:19 -04:00
Tom Rothamel f6e05f532e Allow changing the case of a save on a case-insensitive filesystem.
Fixes #2948.
2021-07-31 15:35:00 -04:00
Tom Rothamel 0af3eaa86e Document how the Android presplash is scaled.
Fixes #2950.
2021-07-31 15:18:20 -04:00
Tom Rothamel 362b815503 Add a not_greedy rollback mode.
This is used by the console to prevent the changes the console
makes from being elimiated when the creator rolls back to the
statement where the changes have been made.
2021-07-31 15:13:54 -04:00
Tom Rothamel 9e93f30109 Create a new Rollback object once rollback is done.
This prevents problems that are caused by a single
rollback object being completed once. Fixes #2942, hopefully
for good this time.
2021-07-31 14:54:40 -04:00
Tom Rothamel c1c7b6259d Clear the list of mutated objects when a rollback occurs.
Fixes #2942.
2021-07-31 12:27:34 -04:00
Tom Rothamel 45e9f2741e Ensure clipping can't hide the caret.
Fixes #2949.
2021-07-31 12:21:48 -04:00
Tom Rothamel 263ee6cac8 Better computation of Button/Window xymaximum. 2021-07-30 22:34:01 -04:00
Tom Rothamel 1e449a1509 Document that gl_depth doesn't consider transparency.
Fixes #2947.
2021-07-30 17:36:34 -04:00
Tom Rothamel d80f614620 Do not zero out at_st_offset on hide.
After the changes in 7.4.7, the st that is passed to ATL is
has the adjustment, so there's no need to reset it.
2021-07-29 22:05:12 -04:00
Tom Rothamel 40fcc752a1 Call update_state to compute ATL transform delay.
Fixes #2939.
2021-07-28 22:31:29 -04:00
Tom Rothamel 2228c4c0d3 Add missing version to changelog. 2021-07-28 20:40:01 -04:00
Tom Rothamel aad66b4240 Add config.single_movie_channel.
This is here to make it easy to have all movies play on a single
channel, making them easier to pause and unpause.
2021-07-27 16:54:32 -04:00
Tom Rothamel 4caf54a288 ffmedia: Support pausing video. 2021-07-27 16:43:47 -04:00
Tom Rothamel 49e4a115e8 ffmedia: Pass pause into ffmedia, use to update an offset time. 2021-07-27 14:26:54 -04:00
Tom Rothamel 8b0cd77a54 Do not suppress non-mouse events on init.
This ensures Ren'Py will get to process events like CONTROLLERADDED.
2021-07-26 21:53:40 -04:00
Tom Rothamel 5841dfb7aa Fix type of the unwritable log file. 2021-07-26 01:43:30 -04:00
Moshibit e828d3ff36 Merge branch 'renpy:master' into master 2021-07-25 22:53:49 -05:00
Meithal 283633200e Update loadsave.py
While stuck in an infinite loop during saving, trying to break from it with a keyboard interrupt causes a crash because that exception args is an empty tuple, so we get an uncaught exception here, this checks that looking args[0] or args[1:] won't lead to a crash.
2021-07-25 19:01:10 +02:00
Tom Rothamel be2ac1f31a Bump version. 2021-07-25 12:03:22 -04:00
Tom Rothamel 0653bd9893 Merge pull request #2922 from Gouvernathor/patch-4
Typos
2021-07-24 15:33:23 -04:00
Tom Rothamel 2284bcb7ef Fix hiding Model()s.
Fixes #2932.
2021-07-24 10:18:07 -04:00
Tom Rothamel 7e6570db8d Add a way to access the accessibility and renderer menus. 2021-07-23 23:08:10 -04:00
Moshibit dd901ceefb Update skins.rst 2021-07-23 15:47:48 -05:00
Tom Rothamel 54b7c25b1f Merge pull request #2929 from Moshibit/master
Fix custom theme
2021-07-23 16:36:32 -04:00
Moshibit f509835746 Update skins.rst 2021-07-23 15:34:32 -05:00
Tom Rothamel 0776a68814 Merge pull request #2930 from Gouvernathor/patch-5
Typos on the changelog
2021-07-23 15:58:04 -04:00
Gouvernathor 9d62705ae9 Fix typos
and de-document the use of windows+left/right keystrokes on windows
2021-07-23 20:57:04 +02:00
Tom Rothamel c61933e37e Document renpy.IgnoreEvent. 2021-07-22 23:03:45 -04:00
Tom Rothamel b934c17fbf Fix links to old documentation. 2021-07-22 22:50:41 -04:00
Tom Rothamel 1f982784d0 doc: Move udd -> cdd. 2021-07-22 22:48:23 -04:00
Moshibit f6eb12a850 Update skins.rst 2021-07-22 20:31:07 -05:00
Moshibit 46d637369f Update skins.rst 2021-07-22 20:30:30 -05:00
Moshibit fe1ee915ac Update skins.rst 2021-07-22 20:26:53 -05:00
Moshibit 57d6832fde Update skins.rst 2021-07-22 20:24:49 -05:00
Moshibit d0f578cda6 Update skins.rst 2021-07-22 20:23:21 -05:00
Moshibit dfbfdd42cd Update skins.rst 2021-07-22 20:22:39 -05:00
Moshibit 16669a8ecd Update skins.rst 2021-07-22 20:22:16 -05:00
Moshibit 4973bb7d5d Update style.rpy 2021-07-22 20:02:04 -05:00
Moshibit 0b63d11f1f Delete skin.rpy 2021-07-22 20:01:24 -05:00
Moshibit 9105255f7b Update style.rpy 2021-07-22 19:20:19 -05:00
Moshibit ed1c6cf8f6 Update skins.rst 2021-07-22 19:15:03 -05:00
Moshibit f1509e1d25 Update skins.rst 2021-07-22 19:14:04 -05:00
Moshibit fad7c1e761 Update skin.rpy 2021-07-22 19:11:40 -05:00
Tom Rothamel efa4bde27c Treat focus changes via renpy.set_focus as non-default.
Fixes #2924.
2021-07-21 23:02:38 -04:00
Tom Rothamel 0a88cdfa14 Fix changing character expressions.
orz.

Fixes #2926.
2021-07-21 22:42:22 -04:00
Tom Rothamel 4e821c0124 Clear pending events when Ren'Py starts.
Fixes #2925.
2021-07-21 18:34:29 -04:00
Tom Rothamel 0117526793 Merge pull request #2928 from midgethetree/fix-credits-typo
Update credits.rst
2021-07-21 17:10:39 -04:00
midgethetree effab2f56b Update credits.rst 2021-07-21 17:08:46 -04:00
KorDen 3d9596e9dc Search archives in all searchpaths, not just gamedir
It makes possible to put rpa archives in Android overwrite folder
2021-07-22 00:06:56 +03:00
Tom Rothamel 149f5a3788 Same fix, but in DynamicImage itself. 2021-07-21 00:13:14 -04:00
Tom Rothamel 972f612cda Prevent crashes during prediction from breaking a DynamicImage invariant. 2021-07-21 00:07:31 -04:00
Tom Rothamel 9556d15707 Document webkit issues. 2021-07-20 22:46:01 -04:00
Tom Rothamel e9a2370802 Fix add.py. 2021-07-20 22:45:41 -04:00
Gouvernathor 23cade695c Typos
the line breaks caused huge font increases
2021-07-21 04:38:55 +02:00
Tom Rothamel 64c936d083 Update changelog. 2021-07-20 22:30:19 -04:00
Tom Rothamel c4e6b8e6b5 Add renpy.set_focus.
This lets the focus be overriden.
2021-07-20 22:24:29 -04:00
Tom Rothamel 834f1bef8b Rename renpy.get_widget{,_properties} to renpy.get_displayable{,_properties}
Keep the old names, for compatibility purposes, but in general we don't
use the name widget anymore.
2021-07-20 22:20:33 -04:00
Tom Rothamel d49cb97e19 The main widget of a textbutton should be the button. 2021-07-20 22:19:05 -04:00
Tom Rothamel a21b8da9bb Update the changelog and incompatible changes. 2021-07-20 22:07:28 -04:00
Tom Rothamel 785c869886 Update the keymap documentation. 2021-07-20 20:50:23 -04:00
Tom Rothamel 0d0646efba Merge pull request #2804 from kobaltcore/better-input-editing
Add quality-of-life editing abilities to the Input field
2021-07-20 20:45:13 -04:00
Tom Rothamel 54d008aed3 Merge pull request #2921 from mal/plug-the-leak
Avoid using a dict as a default argument value
2021-07-20 20:43:53 -04:00
Mal Graty f063bd7097 Avoid using a dict as a default argument value
It's dangerous as it becomes trivial to accidentally pollute what is
expected to be a clean dictionary.
2021-07-21 00:36:24 +01:00
cobaltcore 4fb8cc6f5f Use osctrl for delete binding 2021-07-20 11:06:15 +02:00
cobaltcore b0e66a675c Remove conditional in keymap 2021-07-20 11:06:15 +02:00
cobaltcore 3091b59d45 Implement CUA keybinds 2021-07-20 11:06:15 +02:00
cobaltcore c2d187b9ae Improvement: Add osctrl modifier keybind
This acts like `CMD` on macOS and like `Ctrl` anywhere else.
2021-07-20 11:06:15 +02:00
cobaltcore b568f00270 Add common editing abilities to the Input field 2021-07-20 11:06:15 +02:00
Tom Rothamel 2fc403fc27 Update credits and sponsor docs. 2021-07-20 00:11:27 -04:00
Tom Rothamel dd5bbaf70f layeredimage: Revert now-unneeded change. 2021-07-19 22:12:27 -04:00
Tom Rothamel 1cad875471 layeredimage: Deal with not all group properties being ATL.
Fixes #2916, again.
2021-07-19 22:09:29 -04:00
Tom Rothamel 05f39bde9d Merge pull request #2917 from Gouvernathor/patch-3
Fix #2916
2021-07-19 20:33:17 -04:00
Gouvernathor 742f21beca Take variant and prefix from group_args
if they're not in kwargs, which in the current state of the code they never will.
2021-07-19 18:44:58 +02:00
Gouvernathor 1f700dc1a9 Default group_properties to dict instead of None
Fixes #2916
2021-07-19 16:16:33 +02:00
Tom Rothamel 417e67d1c7 Merge pull request #2912 from Gouvernathor/patch-4
Document access to the warper functions
2021-07-19 00:14:44 -04:00
Tom Rothamel 56fb31c979 layeredimage: Attribute properties take preference over group properties.
Fixes #2915.
2021-07-18 22:48:12 -04:00
Tom Rothamel a3defaf161 Ensure transforms run at least once when replaced.
This means that each transform will get at least one shot to
update the state before replacement, such that showing a
transform and immediately replacing it has an effect.

Fixes #2914.
2021-07-18 22:31:04 -04:00
Gouvernathor 02fa805355 add pause and instant warpers 2021-07-19 03:37:23 +02:00
Gouvernathor 753d5762b3 fix typo 2021-07-19 03:36:30 +02:00
Gouvernathor 0340857237 Switch to _warper 2021-07-19 03:35:00 +02:00
Gouvernathor 9c38331682 Switch to _warpers 2021-07-19 03:33:29 +02:00
Tom Rothamel 62e4f3017b Maintain the invariant that RollbackLog.current = RollbackLog.log[-1]
This was broken by some rollbacks, especially the sort of minimal rollbacks
that hapened in the console. This would cause the game to lose some
rollback information immediately after a rollback, causing problems.

Fixes #2907.
2021-07-18 19:14:47 -04:00
Tom Rothamel 564a491948 Document that "with None" doesn't update screens.
Fixes #2913.
2021-07-18 17:32:32 -04:00
Tom Rothamel 0a2e29eb33 Forcibly round outlines to integers.
Fixes #2911.
2021-07-18 17:17:50 -04:00
Tom Rothamel a9f89e56ca Add a disclaimer for the M1 simulator.
There seems to be a problem with Apple's OpenGL implementation
where it will crash during a dissolve transform. Documenting
this for now to get 7.4.7 out the door.
2021-07-18 17:09:33 -04:00
Gouvernathor 4a9c9f1158 Link transition classes to warpers 2021-07-18 07:58:31 +02:00
Gouvernathor 37d9e3ce4f Document warper functions dictionary 2021-07-18 07:50:57 +02:00
Tom Rothamel 849426917e Fix use of reverse when None.
This manifested in renpyweb, but could potentially affect all
platforms.

Fixes renpy/renpyweb#17.
2021-07-17 19:16:54 -04:00
Tom Rothamel c7ebc46bcc Window: Only apply xmaximum/ymaximum if set.
This means that in the usual case where it's not set, it doesn't
get forced to (0, 0), which fails in the case of a button inside
a viewport.

Fixes #2910.
2021-07-16 22:06:13 -04:00
Tom Rothamel eba15b1e83 gl2: Store the max mipmap level.
An attempt to address #2847 in the blind.
2021-07-16 17:55:41 -04:00
Tom Rothamel 6b640bf6a7 Pad out text to 32px.
This makes it similar to most other images Ren'Py loads, which
have this sort of padding.

An attempt to address #2847, without being able to repeat it.
2021-07-16 17:53:54 -04:00
Tom Rothamel 3001a8aa90 Document that keyup_a doesn't work. (No unicode, use keyup_K_a.) 2021-07-16 17:35:03 -04:00
Tom Rothamel 7708bf0cbb input: Use a dedicated displayable for caret blinking.
This allows us to reset the blinking when the caret is moved,
which is helpful, as the caret needs to be seen to know where it is.
2021-07-15 22:51:33 -04:00
Tom Rothamel 49017f2df8 input: Use a space rather than ZWSP if no content.
This ensures there is always room for the caret to be
drawn.
2021-07-15 22:04:13 -04:00
Tom Rothamel a15a418a02 Merge pull request #2891 from Gouvernathor/patch-4
Upgrade input's caret
2021-07-15 21:54:08 -04:00
Tom Rothamel 2c99d9df45 Update a DynamicDisplayable before visiting its children.
Fixes #2905.
2021-07-14 23:57:59 -04:00
Gouvernathor f8c89541dc Fix dynamic default value 2021-07-15 05:18:21 +02:00
Gouvernathor 13cdf98fe4 Disable caret blink for older code versions 2021-07-15 05:08:21 +02:00
Gouvernathor f92e9548b4 Catch up with bf1a591 2021-07-15 05:04:17 +02:00
Tom Rothamel baf646e350 Document the animation statement.
Fixes #2906.
2021-07-14 22:15:25 -04:00
Tom Rothamel 5b915758cd Merge pull request #2904 from midgethetree/fix-focus-nearest
Fix focus_nearest bug that ignored keyboard_focus
2021-07-13 22:54:40 -04:00
Tom Rothamel ba9a3f24a2 Merge pull request #2903 from midgethetree/fix-gui-preference-rebuild
Fixed SetPreference rebuild attribute
2021-07-13 22:54:22 -04:00
midgethetree 64db00a54a Update focus.py
Minor tweak to previous commit.
2021-07-13 18:50:59 -04:00
midgethetree 54759af09c Fix focus_nearest bug that ignored keyboard_focus
If buttons with keyboard_focus True are shown but the first focusable element has keyboard_focus False, the focus_nearest function would focus on that first element when not focused on anything. This commit fixes that.
2021-07-13 18:46:51 -04:00
Tom Rothamel 734db16d1c gui: Indicate how to get Ren'Py to overwite some files.
Fixes #2898.
2021-07-13 17:27:02 -04:00
midgethetree 6af6694cae Fixed SetPreference rebuild attribute
Now when SetPreference is defined with rebuild=False the rebuild function won't be called, as said in the documentation.
2021-07-13 16:22:27 -04:00
Tom Rothamel 14bb2d0fff Merge pull request #2893 from Moshibit/master
Improve Skins documentation.
2021-07-12 19:21:58 -04:00
Tom Rothamel 3ec83dae1c Merge pull request #2902 from Siege-Wizard/patch-1
Add mark_*_seen and mark_*_unseen functions
2021-07-12 19:20:35 -04:00
Siege-Wizard 4d3dec4e80 Add mark_*_seen and mark_*_unseen functions 2021-07-12 17:26:24 +02:00
Gouvernathor 51eacdd597 Merge branch 'master' into patch-4 2021-07-12 16:30:01 +02:00
Tom Rothamel bf1a591e2d Remove support for config.key_repeat.
This isn't implemented in SDL2, and hence hasn't worked in some
time.

Fixes #2899.
2021-07-11 20:44:45 -04:00
Tom Rothamel f2be07a13d Reset key modifiers when the keymap changes.
This works around a problem on windows where the windows+space
combination changes the keymap, and hence the lifting of the
windows key is not detected.

Fixes #2849.
2021-07-11 20:29:36 -04:00
Tom Rothamel 77e7b6a9a5 gl2: Compute the location of the text rectangle in virtual space.
Fixes #2848.
2021-07-11 14:43:58 -04:00
Tom Rothamel 65d719ecac Propagate transform state between children of an imagebutton.
Fixes #2864.
2021-07-10 03:41:42 -04:00
Gouvernathor ba8496de63 Merge branch 'master' into patch-4 2021-07-10 04:23:17 +02:00
Tom Rothamel 40fdecc0e0 Start the ATL ST Timebase when first shown.
Rather than at the time a containing screen is first shown.
2021-07-09 22:17:27 -04:00
Moshibit 39a12ae54d Merge pull request #3 from Moshibit/Moshibit-patch-1
Improve Skins documentation.
2021-07-09 16:49:32 -05:00
Tom Rothamel 730a23255f Merge pull request #2881 from midgethetree/input-autosave
autosave on input config variable
2021-07-08 22:26:28 -04:00
Tom Rothamel addda74f6f Merge pull request #2892 from RubenGarcia/master
Fix typo.
2021-07-08 22:26:13 -04:00
Ruben Jesus Garcia-Hernandez cd859fc572 Fix typo. 2021-07-08 18:15:55 +02:00
midgethetree 3f7831794f Documented config.autosave_on_input 2021-07-08 00:25:36 -04:00
Tom Rothamel 3187445cbe Merge pull request #2882 from Moshibit/master
Update launcher spanish translation
2021-07-07 22:30:22 -04:00
Gouvernathor 9784180a5f Betterer blink rewrite
Co-authored-by: Mal Graty <mal.graty@googlemail.com>
2021-07-08 03:41:05 +02:00
Gouvernathor 39b8d1621a Indentation mismatch 2021-07-08 02:31:00 +02:00
Gouvernathor 6fb1562ce7 Update renpy/display/behavior.py
I didn't test that partial function, I'm assuming it's correct

Co-authored-by: Mal Graty <mal.graty@googlemail.com>
2021-07-08 01:12:30 +02:00
Gouvernathor 57e6b93934 Update caret_blink meaning 2021-07-07 06:14:09 +02:00
Gouvernathor fc98fbb311 Update the meaning of config.input_caret_blink 2021-07-07 06:13:08 +02:00
Gouvernathor 6a1160db1e Change default value type 2021-07-07 06:10:21 +02:00
Gouvernathor 354e145f7a Recreating the blink function 2021-07-07 06:08:46 +02:00
Gouvernathor 9bcff3dada Reimplement with a function-based Transform 2021-07-07 05:17:04 +02:00
Gouvernathor 16012cd54b Document the caret_blink opt-out kwarg 2021-07-07 04:29:31 +02:00
Gouvernathor cef7cad98f Document config.input_caret_blink 2021-07-07 04:26:02 +02:00
Gouvernathor 9b95f5682e Add caret blinking with two opt-outs
Three actually, if you count replacing the caret entirely via the style property
2021-07-07 04:24:47 +02:00
Gouvernathor ec8aec642a Add the input_caret_blink config variable 2021-07-07 04:21:33 +02:00
Gouvernathor c18bb66f7b Document the caret's blinking 2021-07-07 04:20:07 +02:00
Tom Rothamel f1b04dd944 Report when a positional argument follows keyword argument.
Fixes #2887, after a recompile.
2021-07-06 20:40:37 -04:00
Tom Rothamel 9778498bf1 Fix and compat last commit.
Per #2890.
2021-07-06 02:29:24 -04:00
Tom Rothamel 8de11ad0d1 Fix issues with floating point x/ysize.
The main issue was basically that xmaxmium was applied twice,
first in renpy.display.render.render, and then again in Window.render.
There was also a problem with xminimum, which would be scaled to
the smaller xmaximum.

Fixes #2890.
2021-07-05 21:53:35 -04:00
Tom Rothamel 1d57acd021 Merge pull request #2888 from Gouvernathor/patch-4
Update (and fix) launcher french translation
2021-07-04 20:11:28 -04:00
Gouvernathor eaa5d6d7eb Fix typo 2021-07-04 21:39:11 +02:00
Gouvernathor 025ffb4a51 Update french translation 2021-07-04 21:38:33 +02:00
Tom Rothamel 0e4521a629 Report empty parameter defaults as an error.
Fixes #2886.
2021-07-03 23:01:32 -04:00
Tom Rothamel 04dbdd8f30 Remove all use of Displayable._show().
After removing it from Transform, the remaining use (in Viewport)
could be trivally inlined, and so it can be remove, simplifying
Ren'Py.
2021-07-03 22:29:51 -04:00
Tom Rothamel ea977dcf47 Remove Transform.show()/ATLTransform._show()
These methods don't do much in the current Ren'Py. ATL
images are predicted by .visit(), while Transform's child is set
when it's added. The only think it's used for is setting the
default_transform's state, and that was fixed by a direct call
to update_state.()

What's more, _show() has caused problems, first #2834, and now
2021-07-03 22:09:27 -04:00
Tom Rothamel db0fba0159 Document persistent._clear(). 2021-07-02 17:59:24 -04:00
Moshibit cc4f4caf12 Improve Skins documentation. 2021-07-01 22:12:38 -05:00
Moshibit 46248b7e9b Update launcher spanish translation 2021-07-01 21:49:21 -05:00
midgethetree 24f5304412 autosave on input config variable
Almost all places where Ren'Py autosaves have a configuration variable that can be set to False to prevent Ren'Py from autosaving at that time. The exception is the input function. This commit creates a new config variable autosave_on_input which can be set to False to disable autosaving when players input text.
2021-07-01 21:25:23 -04:00
Tom Rothamel af7195faab Merge pull request #2850 from Gouvernathor/patch-2
Doc typos
2021-07-01 19:23:11 -04:00
Tom Rothamel 6ec97b72fd Merge pull request #2866 from Moshibit/master
Launcher's custom theme and fix typos in matrix documentation
2021-07-01 19:21:06 -04:00
Moshibit 6c813493bb Update skins.rst 2021-07-01 15:34:57 -05:00
Moshibit 64ff95c824 Update skins.rst 2021-07-01 12:42:37 -05:00
Moshibit 2c1155af7e Update skins.rst 2021-07-01 12:34:59 -05:00
Moshibit ca47f6c42d custom theme update 2021-07-01 12:15:26 -05:00
Moshibit 298f586565 custom theme update 2021-07-01 12:12:45 -05:00
Moshibit 5d9ac79bc2 custom theme update 2021-07-01 12:11:44 -05:00
Moshibit ed2eb6dfb7 Merge branch 'renpy:master' into master 2021-07-01 12:06:42 -05:00
Tom Rothamel 8747f6b724 Document the audio/ directory.
Fixes #2875.
2021-06-30 21:59:17 -04:00
Tom Rothamel 2d7dfc293d Document that ui.adjustment.ranged can be called more than once.
Fixes #2876.
2021-06-30 21:41:16 -04:00
Tom Rothamel 7a657b6299 Automatically enable dummy drivers for most commands. 2021-06-29 21:27:01 -04:00
Tom Rothamel 997438e86a Say.get_code(): Place with after arguments.
Fixes #2874.
2021-06-28 21:16:12 -04:00
Tom Rothamel a5b01b102f Avoid copying the lists that make up layers.
This fixes a class of problem that could be caused by mixing
show and hide in a single operation, with the copy during hide
stopping things from working.

Fixes #2865.
2021-06-27 20:03:07 -04:00
Tom Rothamel fa2268b2c0 Merge pull request #2872 from Siege-Wizard/patch-1
Fix single achievement progress clear
2021-06-26 18:09:36 -04:00
Siege-Wizard ce3e819404 Fix single achievement progress clear
The code to clear a single achievement was treating dicts as sets.
Additionally, only clearing if the achievement was granted means that the progress is not cleared for half-progress achievements.
2021-06-26 15:24:03 +02:00
Tom Rothamel 32eaef1e36 web: Tweak disclaimers. 2021-06-25 19:39:14 -04:00
Tom Rothamel 5cd716f79d webaudio: Unlock the audio context, where needed. 2021-06-24 00:59:50 -04:00
Tom Rothamel d52a2845c2 Alphabetize. 2021-06-24 00:58:38 -04:00
Tom Rothamel 82af0d31ca Add config.audio_filename_callback. 2021-06-24 00:57:23 -04:00
Tom Rothamel 6e35507663 webaudio: Another fix. 2021-06-23 23:15:12 -04:00
Tom Rothamel 28b1a25143 Fix an issue when the first-played sound loops. 2021-06-23 22:45:31 -04:00
Tom Rothamel 262f939b2c webaudio: Fix minor issues. 2021-06-23 22:38:19 -04:00
Tom Rothamel fa19d60610 webaudio: tts. 2021-06-23 21:45:55 -04:00
Tom Rothamel a2dc2a5166 webaudio: Document that opus and ogg aren't supported in Safari. 2021-06-23 21:36:28 -04:00
Tom Rothamel 7a97807fbd webaudio: Write an error to the console if a file can't be decoded. 2021-06-23 21:32:51 -04:00
Tom Rothamel 912e72346d webaudio: Panning. 2021-06-23 21:27:18 -04:00
Tom Rothamel 92cae35954 webaudio: Cancel fades when a new fade occurs. 2021-06-23 21:10:51 -04:00
Tom Rothamel 381bb2d9eb audio: Change the audio API to remove the use of ms as a unit. 2021-06-23 21:01:59 -04:00
Tom Rothamel ee91d6b5e6 webaudio: Support tight fadeouts. 2021-06-23 20:54:30 -04:00
Tom Rothamel 6dc18a7b10 webaudio: Fadein/out. 2021-06-23 01:06:15 -04:00
Tom Rothamel 6e8074e360 webaudio: Allow a channel to start paused. 2021-06-22 00:59:17 -04:00
Moshibit 62add895b4 Fix typos 2021-06-21 11:48:36 -05:00
Tom Rothamel 6dd32af79d webaudio: Implement more of the methods. 2021-06-21 03:01:44 -04:00
Tom Rothamel 92871c75ae webaudio: Multichannel playback with queue. 2021-06-20 23:07:54 -04:00
Tom Rothamel 9403b74113 webaudio: Proxy audio calls from Python to JS. 2021-06-19 22:49:41 -04:00
Tom Rothamel 08a35003b8 webaudio: Allow audio to be routed through the webaudio module. 2021-06-18 21:49:10 -04:00
Tom Rothamel 6d864f1504 Add _screenshot_pattern.
A way to change the screenshot pattern at runtime.

Per #2857.
2021-06-17 17:52:20 -04:00
Tom Rothamel 9594127c28 Fix regression in last commit. 2021-06-17 00:12:38 -04:00
Tom Rothamel 6c2d2eca77 Audio improvements.
* Do not prefix/suffix silence.ogg.
* Do not attempt to parse flags out of AudioData.

Fixes #2855.
2021-06-15 20:52:49 -04:00
Tom Rothamel 44243cb8ff Change the release name. 2021-06-14 20:55:23 -04:00
Tom Rothamel 74b2ffffb3 Check in an empty 00shaders.rpy.
This will prevent a legacy 00shaders.rpyc from causing problems.
2021-06-12 14:33:44 -04:00
Tom Rothamel 5a1e2aae83 Fix example. 2021-06-12 14:28:00 -04:00
Tom Rothamel 373b421bc8 Fix missing camera_list and camera_transform errors.
Per https://lemmasoft.renai.us/forums/viewtopic.php?p=543637#p543637
2021-06-12 13:17:30 -04:00
Tom Rothamel 739a8f5a47 Remove link to renpy.beuc.net, as it appears to be unmaintained. 2021-06-12 12:29:29 -04:00
Tom Rothamel db30a5a590 Fix ATLTransform._show()
* Do not set the atl_state. (It can set it wrong if the times are 0)
* Do not double-call update state.

This addresses #2834.
2021-06-12 02:48:53 -04:00
Tom Rothamel f7c9058e19 Update sponsor docs. 2021-06-11 20:28:51 -04:00
Tom Rothamel bde233af40 Reload project data when the launcher is reloaded.
This allows reload to happen on more screens.
2021-06-10 18:08:52 -04:00
Tom Rothamel a484cfcb88 Avoid reloading the build info after a build happens, as it was just loaded. 2021-06-09 22:44:21 -04:00
Tom Rothamel 5c8d259258 Move to using startfile to start batch/command files. 2021-06-09 22:21:10 -04:00
Tom Rothamel 2aec07d6b9 Quiet down compileall. 2021-06-09 19:19:44 -04:00
Tom Rothamel bee4359ef1 Jump back to the build screen when distribute is done. 2021-06-09 19:12:16 -04:00
Tom Rothamel 78033f953f Update the macOS icon. 2021-06-09 19:08:34 -04:00
Tom Rothamel a98d2df66a Fix console commands (like the itch butler) on mac. 2021-06-09 18:56:12 -04:00
Tom Rothamel 4917544cd8 A pause without a delay causes a checkpoint. 2021-06-08 21:49:26 -04:00
Tom Rothamel 6b7ebbad7c Change the name.
(So it doesn't feel like an entirely different tool.)
2021-06-07 17:52:10 -04:00
Tom Rothamel 05914ae568 doc: Fix title of mouse.rst. 2021-06-07 17:50:28 -04:00
Tom Rothamel 01b3592167 Update changelog. 2021-06-07 00:59:47 -04:00
Tom Rothamel adc575285a Use the approprate timebase when determining if we're on the first ATL frame.
Fixes #2843.
2021-06-06 20:22:58 -04:00
Tom Rothamel 7355c73382 Better error reporting for duplicate labels. 2021-06-06 16:56:02 -04:00
Tom Rothamel 7528e10f28 Prevent infinite loop of pauses. 2021-06-06 16:23:04 -04:00
Gouvernathor 212820c18a Fix typo 2021-06-06 20:49:19 +02:00
Tom Rothamel a56ffb7efe Documentation improvements. 2021-06-06 12:04:04 -04:00
Tom Rothamel 05016c1ee9 Update keywords. 2021-06-06 11:47:31 -04:00
Tom Rothamel 92f9c15c49 Add the camera statement.
This is similar to the show layer statement, except that
the camera list is used rather than the layer_at_list.
2021-06-06 10:50:26 -04:00
Tom Rothamel 521d0b3b13 Add the concept of the camera_list.
This is essentially the same thing as the layer_at_list, except
that it is not cleared when the scene changes, making it suitable
for a set-and-forget 3d stage.
2021-06-06 10:48:25 -04:00
Tom Rothamel 1f1d7cd5b3 Change the default of scene_clears_layer_at_list to True.
This was producing too many obscure errors, and so the camera
statement will be introduced.
2021-06-06 10:41:02 -04:00
Tom Rothamel cf558e1af3 Fixes to model. 2021-06-05 21:21:55 -04:00
Tom Rothamel 4c098064ee Allow the u_renpy variables to be set through transforms. 2021-06-05 01:44:46 -04:00
Tom Rothamel f26e3cc462 Initial checkin of untested Model displayable. 2021-06-05 01:19:55 -04:00
Tom Rothamel 3178495acd gl2: Rename Model to GL2Model.
This shouldn't exist in a save file, and will free the name Model
for a displayable that constructs Models.
2021-06-04 19:45:35 -04:00
Tom Rothamel 0ad0778796 Document controller change. 2021-06-03 22:29:42 -04:00
Tom Rothamel a9c1424f03 Hide the mouse immediately when a controller event occurs.
Fixes #2843.
2021-06-02 18:15:15 -04:00
Tom Rothamel 99d052bd0c Fix an issue loading TransformState from pre-7.4.5. 2021-06-02 02:13:46 -04:00
Tom Rothamel e37615b0be Better error handling for invalid .rpycs.
- Log .rpyc load failures to log.txt.
- Report the right filed that failed to load.
2021-06-01 18:52:20 -04:00
Tom Rothamel 554a89fc61 Document how invoke_in_thread is expected to be used.
Per the discussion in #2842.
2021-06-01 18:32:55 -04:00
Tom Rothamel 1a00655e42 Name and sponsors. 2021-06-01 00:06:23 -04:00
Tom Rothamel de045d96eb Store and reuse the default renderbuffer.
This fixes an issue on iOS where the renderbuffer doesn't default
to 0, and iOS doesn't seem to work if the renderbuffer isn't bound
to the default.
2021-05-31 21:36:00 -04:00
Tom Rothamel cd30206152 Update changelog. 2021-05-31 16:01:43 -04:00
Tom Rothamel 773694f442 Compile Ren'Py before distributing.
This will ensure that if the Python files were changed for some
reason, they'll be recompiled with the Ren'Py path, and not the
user's.

Fixes renpy/renpyweb#16.
2021-05-31 14:19:45 -04:00
Tom Rothamel a9c3afb0e4 Translate strftime piece by piece.
Passing translated strings to strftime doesn't work on Windows 10
when the locale is set to Korean, but passing the standard codes
does. So we pass the standard codes in, and just include the rest
in the final string.

Fixes #2837.
2021-05-31 01:54:21 -04:00
Tom Rothamel f6ff593501 Have the blur shader use a constant number of iterations.
This overcomes a limitation of webgl and some other gl implementations.

Fixes #2838.
2021-05-30 18:20:49 -04:00
Tom Rothamel 0f0e24936a Update changelog. 2021-05-30 11:11:38 -04:00
Tom Rothamel bd96fa9f51 A modal screen should block all events, evne if the mouse is not in Ren'Py.
Fixes #2836.
2021-05-29 19:19:30 -04:00
Tom Rothamel 7950eb6d80 Fix documentation typo. 2021-05-28 19:45:24 -04:00
Tom Rothamel 31d34a4716 Fix mouse example. 2021-05-28 01:28:12 -04:00
Tom Rothamel a87f37417f Bump version. 2021-05-27 00:04:53 -04:00
Tom Rothamel 71d2c7f2d7 Tweak emscripten_sleep timings.
This was intended to help with audio, and might help responsiveness.
2021-05-26 00:37:26 -04:00
Tom Rothamel 000e22d36e Update changelog. 2021-05-25 20:37:22 -04:00
Tom Rothamel eb83ce6a5a doc: Fix typo. 2021-05-24 22:06:07 -04:00
Tom Rothamel f0bcf007b6 Add compat for a behavior changed in 6e8d622282.
Per https://lemmasoft.renai.us/forums/viewtopic.php?f=32&t=62221&p=543 .
2021-05-24 21:29:42 -04:00
Tom Rothamel 196e7e5ae3 Move the add statement to its own section of the screens documentation. 2021-05-24 20:15:23 -04:00
Tom Rothamel a1309906d0 Document how to get out of corrupted textures.
Fixes #2823.
2021-05-24 19:37:34 -04:00
Tom Rothamel 0f28be2336 Tweak the Character documentation. 2021-05-24 18:36:10 -04:00
Tom Rothamel 2d8770ddda Merge pull request #2815 from Gouvernathor/patch-1
Document Character() not requiring a name
2021-05-24 18:20:41 -04:00
Tom Rothamel 53184c3061 Merge pull request #2825 from Gouvernathor/patch-2
Fix problems.rst problem
2021-05-24 18:19:29 -04:00
Gouvernathor 4575414038 Remove unuseful orphan sentinel 2021-05-24 17:06:45 +02:00
Gouvernathor bcadbffa41 Fix problems.rst problem 2021-05-24 17:03:46 +02:00
Tom Rothamel 2fc3721ef4 Merge branch 'master' of github.com:renpy/renpy 2021-05-23 17:41:44 -04:00
Tom Rothamel 83aee2ecfc Merge pull request #2822 from Gouvernathor/patch-2
Turn renpy.absolute into absolute
2021-05-23 16:55:19 -04:00
Gouvernathor 38564e29eb Turn renpy.absolute occurences into absolute (2/2) 2021-05-23 21:02:11 +02:00
Gouvernathor ec5f9633c1 Turn renpy.absolute occurences into absolute (1/2) 2021-05-23 21:00:46 +02:00
Tom Rothamel 0eeeaef1e3 mousearea: Loses focus to something modal above it. 2021-05-23 14:43:46 -04:00
Tom Rothamel 88c2e4843d Change how TIMEVENT w/ modal works.
Rather than propagating TIMEVENT with modal=True through the
entire tree of displayables, this marks the event as modal
when the modal test passes.

This makes it possible for a displayable to know if it has a
modal displayable in front of it.
2021-05-23 14:41:14 -04:00
Tom Rothamel fb373f00c9 Update the changelog. 2021-05-22 20:04:20 -04:00
Tom Rothamel c92151db70 Remove access to the clear theme.
Right now, it's so similar to the default theme, having two
choices is confusing.
2021-05-21 20:33:13 -04:00
Tom Rothamel e921052bec Avoid a save/reload cycle when changing launcher theme.
Makes the problem found in #2816 less severe.
2021-05-21 19:52:21 -04:00
Tom Rothamel 3ec8d8968e Disable autoreload when an update is happening.
This prevents the update from causing autoreload.
2021-05-21 19:18:41 -04:00
Tom Rothamel 18cf187f78 Merge pull request #2818 from Gouvernathor/patch-2
Fix typo in retro-compatibility mode
2021-05-21 11:24:17 -04:00
Gouvernathor 7ab1b21925 Fix typo 2021-05-21 17:22:08 +02:00
Tom Rothamel a5fd514439 Avoid double-substituting when translating who_prefix and what_prefix.
This is a behavior change, but one that seems correct - we're more
likely to want to translate the prefix and suffix directly, rather
than the previous setup where "Prefix[who]Suffix" was translated.

Compat is included.

Fixes #2817.
2021-05-20 20:51:32 -04:00
Gouvernathor 7bdc09f98e Document Character() not requiring a name 2021-05-19 12:19:36 +02:00
Tom Rothamel fe5bdffba9 Fix documentation typos. 2021-05-19 00:56:47 -04:00
Tom Rothamel 979ba6c310 Check in build artifacts. 2021-05-19 00:30:18 -04:00
Tom Rothamel d8be65b689 Merge pull request #2796 from Andykl/memory-skip-constants
Add `skip_constants` keyword for memory profile functions
2021-05-19 00:10:55 -04:00
Tom Rothamel 91a56b0050 Fix doc typos.
Per #2803.
2021-05-18 23:26:19 -04:00
Tom Rothamel 98fe346057 Reorganize documentation.
Per #2810.
2021-05-18 23:22:42 -04:00
Tom Rothamel b64c722704 Doc fixes.
Fixes #2811.
2021-05-18 23:19:56 -04:00
Tom Rothamel a8b94c5cbe Ensure runtime calls to SLScreen use the SLScreen.const_ast field.
This field stores the AST, when no transcludes are supplied.
At https://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=62163 ,
and issue was reported that was caused by code looking at the
unanalyzed ast, and not the analyzed AST taken from disk.
2021-05-18 23:17:40 -04:00
Tom Rothamel 2ed6477406 Update the GL properties documentation.
Document gl_anisotropic, gl_mipmap, and gl_texture_wrap.

Document all properties with the gl_prefix, now that it is
accepted everywhere.
2021-05-17 19:13:33 -04:00
Tom Rothamel ab53653e98 Add gl_texture_wrap.
This lets the creator define the wrap mode of a newly created
texture.

Fixes #2806.
2021-05-17 09:00:49 -04:00
Tom Rothamel e2806a0fdd Strip gl_ prefixes from Render properties.
This will allow the properties to be documented with the gl_ prefixes,
which should make the docs less confusing.
2021-05-17 08:59:37 -04:00
Tom Rothamel 97f4473510 Update changelog. 2021-05-17 08:47:23 -04:00
Tom Rothamel cd955e873e Do not attempt to draw an empty mesh.
This attempts to address renpy/renpyweb#13.
2021-05-17 01:36:03 -04:00
Tom Rothamel 3e6d9837e1 Store the virtual width and height in text.Layout.
This should cache draws and prevent re-layout of text.
2021-05-16 18:18:58 -04:00
Tom Rothamel da13ff608f Remove the android splashscreen once the first frame is up. 2021-05-16 03:09:23 -04:00
Tom Rothamel e57dbe9309 Add renpy.screenshot_to_bytes.
A way of taking a screenshot that's compatibile with im.Data.

Fixes #2808.
2021-05-14 02:02:16 -04:00
Tom Rothamel 52fd578c9b Sponsors updated. 2021-05-13 19:11:19 -04:00
Tom Rothamel 04e1b3fe1a Add renpy.music.get_loop()
Making it possible to get the current audio loop.
2021-05-13 19:06:36 -04:00
Tom Rothamel ab9b2056e2 Add support for masking out passwords.
That is, replacing the text of the password with some other
character.
2021-05-12 21:35:14 -04:00
Tom Rothamel f0e5c55a92 Save into _quit_slot when the MainMenu action is used.
Fixes #2802.
2021-05-12 20:25:49 -04:00
Tom Rothamel c476ae02d9 gl2: Fix memory leak through textures.
The texture list was getting cleared, but not freed, when the
screen was resized.

Fixes #2805.
2021-05-11 08:50:36 -04:00
Tom Rothamel 90cc7fd134 doc: Fix omitted parts of a sentence in the changelog. 2021-05-11 01:21:09 -04:00
Tom Rothamel d33f9ce8c8 Tweak the name. 2021-05-09 23:40:49 -04:00
Tom Rothamel ebf2541a2b Fix typo. 2021-05-09 23:37:19 -04:00
Tom Rothamel a10eede56b doc: Update changelog and credits. 2021-05-09 23:08:03 -04:00
Tom Rothamel 668aa78210 3dstage: Improve documentation. 2021-05-09 22:21:49 -04:00
Tom Rothamel 3341571309 Fix typo. 2021-05-09 22:16:29 -04:00
Tom Rothamel a3d225eeef Allow perspective to take a single float.
This is the distance to the 1:1 plane.
2021-05-09 22:14:12 -04:00
Tom Rothamel 6cf1d9d0bc doc: Update index. 2021-05-09 02:20:18 -04:00
Tom Rothamel 349dda4afc Change the default far-plane. 2021-05-09 02:19:11 -04:00
Tom Rothamel 991e645983 Doc improvements/fixes. 2021-05-09 02:15:57 -04:00
Tom Rothamel 723c1a2184 Add a fov argument to gui.init. 2021-05-09 02:13:24 -04:00
Tom Rothamel 1191bd44ff Document the 3d stage. 2021-05-09 02:12:35 -04:00
Tom Rothamel afa981802d Check in atl/model docs. 2021-05-08 22:00:55 -04:00
Tom Rothamel 26e0484977 Consoldate string translation scanning in a single file.
Removing a legacy function in the process.
2021-05-07 23:34:32 -04:00
Tom Rothamel 084742864b Accept newlines in single-quoted strings.
Fixes #2791.
2021-05-07 23:25:22 -04:00
Tom Rothamel 71b5316d91 Merge pull request #2799 from Gouvernathor/patch-1
Add config.pause_after_rollback to the doc
2021-05-07 23:18:05 -04:00
Gouvernathor b84c94ceb0 Add config.pause_after_rollback to the doc 2021-05-08 05:17:17 +02:00
Tom Rothamel 7cc7e6e539 Automatically switch to the dummy driver if audio doesn't start.
By enabling the dummy driver, it's possible to play video
even if the audio doesn't work.

Fixes #2793.
2021-05-07 23:04:00 -04:00
Tom Rothamel 1ae4c7724f Use soft checkpoints to fix pause problems.
Fixes #2794, fixes #2789.
2021-05-07 22:44:49 -04:00
Tom Rothamel 6088d74398 Revert "Revert "Make sure roll-forward persists through a pause skipped after rollback.""
This reverts commit 648e764afa.
2021-05-07 22:29:21 -04:00
Tom Rothamel 7910963334 Do not include a screenshot in a save if the interface has not been initialized.
This generally would be an autosave on Android, when the interface can't start
propery. Testing and analysis shows that Ren'Py can load these files without
issue.

Fixes #2797.
2021-05-06 21:01:54 -04:00
Tom Rothamel 648e764afa Revert "Make sure roll-forward persists through a pause skipped after rollback."
This reverts commit 74b8975a9f.

Temporarily, until the issues can be fixed.
2021-05-06 02:59:10 -04:00
Tom Rothamel 4443cfb4bd Merge pull request #2790 from Gouvernathor/patch-1
Add a fallback value for ConditionSwitches
2021-05-05 18:08:29 -04:00
Gouvernathor 963cbe07cf Avoid the exception only in non-developer mode 2021-05-06 00:04:58 +02:00
Andy_kl 45de3635d2 Add skip_constants keyword for memory profile functions 2021-05-05 22:47:11 +02:00
Tom Rothamel 74b8975a9f Make sure roll-forward persists through a pause skipped after rollback.
Fixes #2789.
2021-05-04 00:05:08 -04:00
Tom Rothamel 283574353e DynamicDisplayable: Clear raw_child when child is cleared.
Visit now updates the DD, but it can leave a raw_child around,
so this clears that out as part of the dupliction, leaving
the state as what it was if visit wasn't called.

Fixes #2788.
2021-05-03 23:54:15 -04:00
Tom Rothamel 1e704bf620 gl2: Use sized variants of GL_DEPTH_ATTACHMENT on gles.
The unsigned version is found on GL, the sized variants on GLES,
and it's an ANGLE-breaking errot to mix them.

Fixes #2787.
2021-05-03 20:52:49 -04:00
Gouvernathor 3bcfcc58c8 Add a fallback value for ConditionSwitches 2021-05-04 01:13:23 +02:00
Tom Rothamel 4770ddcbb7 Remove the link to the renpyweb patreon.
Now that it's ended.
2021-05-02 21:48:16 -04:00
Tom Rothamel 456d627086 Visit the child of a DynamicDisplayable.
Fixes #2781, and probably other things as well.
2021-05-02 20:41:50 -04:00
Tom Rothamel e151fd9984 Merge pull request #2721 from jsfehler/patch-2
Replace empty tuple/dict func call with literal
2021-05-02 13:10:54 -04:00
Tom Rothamel 038f5306a1 Disallow reloading in a replay.
Fixes #2314. Fixes #2587.
2021-05-02 13:09:06 -04:00
Tom Rothamel 3427c5d6c7 Merge pull request #2784 from Gouvernathor/patch-1
Keep xfit and yfit from overriding non-boolean fit_first values
2021-05-02 12:58:10 -04:00
Gouvernathor 9dde6770f8 Keep xfit and yfit from overriding str fit_first
fixes #2782
2021-05-02 06:36:44 +02:00
Tom Rothamel 8967662f44 Merge pull request #2779 from Moshibit/master
Update Spanish translation of the launcher
2021-05-02 00:13:41 -04:00
Tom Rothamel 05fbf106bc Merge pull request #2780 from CodePsy-2001/master
Fixed awkward Korean Translations
2021-05-02 00:13:30 -04:00
Tom Rothamel 1c0117d6b1 Remove unneeded depth clear. 2021-05-01 00:34:07 -04:00
Tom Rothamel 7798de30d2 Apply a matrixtransform-like offset/unoffset to zzoom. 2021-04-30 23:47:35 -04:00
Tom Rothamel c32c9182be gl2: Restore support for depth and the depth test.
Also, default to creating a 24-bit depth buffer, in gl2 mode.
2021-04-30 23:46:11 -04:00
Tom Rothamel 1149c814e4 Illusrations for 3D Stage documentation. 2021-04-30 02:57:15 -04:00
Tom Rothamel 84989713a8 Apply adjust_attributes to images that need to be parameterized. 2021-04-29 21:43:02 -04:00
Tom Rothamel ed62d691c5 Mouse docs. 2021-04-28 23:01:21 -04:00
Tom Rothamel ffa1893cbb Make MouseDisplayable.add chainable. 2021-04-28 22:12:26 -04:00
Moshibit d5f722e9e8 Update launcher.rpy 2021-04-28 21:05:02 -05:00
CodePsy 8cdc154a07 Update tutorial_screen_displayables.rpy 2021-04-29 01:44:43 +09:00
CodePsy 6512439006 Update tutorial_playing.rpy 2021-04-29 01:43:04 +09:00
CodePsy 9f96a82675 Update tutorial_distribute.rpy 2021-04-29 01:40:10 +09:00
CodePsy d27fb4e5f6 Update tutorial_director.rpy 2021-04-29 01:38:06 +09:00
CodePsy e8448d4980 Update script.rpy 2021-04-29 01:32:36 +09:00
CodePsy 31e653b449 Update indepth_translations.rpy
It contained a serious translation mistake that had not been corrected for a long time.
ex) directory: game/tl/language -> game/tl/언어 (should not be translated...)
2021-04-29 01:30:30 +09:00
CodePsy aba3ef89a3 Update indepth_transitions.rpy 2021-04-29 01:25:47 +09:00
CodePsy 2f7cee7364 Update indepth_text.rpy 2021-04-29 01:19:57 +09:00
CodePsy 295d2bec3e Update indepth_style.rpy 2021-04-29 01:16:53 +09:00
CodePsy 0d43c13a13 Update indepth_minigame.rpy 2021-04-29 01:11:30 +09:00
CodePsy 9b244ccaaa Update indepth_displayables.rpy 2021-04-29 01:07:22 +09:00
CodePsy 487c75a7db KoreanTranslationUpdated
Fixed awkward translations...
2021-04-29 01:04:15 +09:00
Moshibit 31ae188341 Update launcher.rpy 2021-04-28 07:05:35 -05:00
Moshibit 5ad5c86adf Update Spansih translation 2021-04-28 07:04:41 -05:00
Moshibit 696e7edeac Merge pull request #2 from renpy/master
update from renpy-master
2021-04-28 07:02:01 -05:00
Tom Rothamel c667a3d33f Update changelog. 2021-04-28 01:02:35 -04:00
Tom Rothamel 83bda35820 Merge pull request #2484 from Andykl/py-3-threading
Make threading function names consistent to snake_case
2021-04-27 23:43:11 -04:00
Tom Rothamel b4ea1268b8 Update sponsors doc. 2021-04-27 23:41:53 -04:00
Tom Rothamel a21c85e3f8 Various fixes to renpy.get_mouse_name() 2021-04-27 01:25:27 -04:00
Tom Rothamel c5d1729352 Reset the mouse when a default mouse is not given.
Fixes #2776.
2021-04-27 01:23:35 -04:00
Tom Rothamel 747a47bb74 steam: Improve MacOS steam support.
* Put steam_appid.txt in the MacOS directory.
* Ignore steam_appid.txt wherever it is.
2021-04-26 20:47:38 -04:00
Tom Rothamel d801dc9f7a Add caveat. 2021-04-25 22:33:28 -04:00
Tom Rothamel d32c6c2a4f Add config.adjust_attributes.
Per #2775.
2021-04-25 22:24:46 -04:00
Tom Rothamel 0c6d5e8092 lint: Only set the error code if an option are giving.
Setting the error code breaks the launcher, and while it could be
fixed, it also breaks existing CI tooling. So make the change for

Fixes #2772.
2021-04-25 21:32:35 -04:00
Tom Rothamel 10bd81ef50 mousedisplayable: Allow changing and animated mice. 2021-04-24 22:08:33 -04:00
Tom Rothamel d0e4b33f4b Change the default for u_lod_bias to -.5, and make if configurable.
The goal of this is to make sure we're always scaling down, but only
by one mipmap level, so as much information as possible is represented
in the final image, without any being lost by a too-big mipmap.

Per #2764.
2021-04-23 22:44:25 -04:00
Tom Rothamel 4a74d3a763 Open errors and tracebacks in an editor if Ren'Py is run from the launcher. 2021-04-22 22:24:44 -04:00
Tom Rothamel 80eeb9ae1f Add the Swing transition to Ren'Py. 2021-04-21 20:24:31 -04:00
Tom Rothamel b175042357 Allow anything with a __doc__ string to be documented. 2021-04-21 20:24:06 -04:00
Tom Rothamel 213e027b3c Merge pull request #2703 from Gouvernathor/patch-2
Launcher Dark Theme
2021-04-20 22:06:04 -04:00
Tom Rothamel e3a69e21b6 Merge pull request #2771 from midgethetree/bug-hard-pause-unfocused-dismiss
make hard pause undismissable
2021-04-20 22:03:03 -04:00
midgethetree de350efca3 make hard pause undismissable
In projects where 'dismiss_unfocused' has been provided keys, these keys will also dismiss unfocused hard pauses. Generally this is undesirable, so this commit makes it so hard pauses use an empty list for the dismiss_unfocused parameter of the say behavior.
2021-04-19 11:31:07 -04:00
Tom Rothamel 47765c703e stage: Camera movement. 2021-04-19 02:03:03 -04:00
Tom Rothamel 58d73e9ea3 Check and document order of operations for rotation. 2021-04-18 17:21:24 -04:00
Tom Rothamel f2a30b8a02 perspective: Fix anchor coordinates. 2021-04-18 15:32:21 -04:00
Andy_kl 836bc3dfc6 Fix default value of transform property nearest
Per #2770
2021-04-18 19:40:01 +02:00
Tom Rothamel efd6a5d042 Add the MouseDisplayable displayable.
This moves an image around to where the mouse cursor would be,
making it possible to emulate the mouse cursor using displayables.
(And probably other effects.)
2021-04-18 00:13:33 -04:00
Tom Rothamel 293d07f539 Add config.mouse_displayable.
This allows the mouse to be drawn by a displayable, as an alternative
to the default or hardware-accelerated mouse cursors.
2021-04-17 23:57:09 -04:00
Tom Rothamel 758131f5fd Undocument PerspectiveMatrix. 2021-04-17 22:22:30 -04:00
Tom Rothamel fd6cdffa43 gl1: Avoid the texture test after the first start.
Fixes #2762.
2021-04-16 23:51:19 -04:00
Tom Rothamel 163f696d3f If a renderer is given by the environment, override config.gl2.
This is for testing purposes.
2021-04-16 23:51:19 -04:00
Tom Rothamel 4da0ec62cb Merge pull request #2718 from lent1-andrealphusgames/layeredimages_unknown_tags
Avoid unknown attributes warning in layeredimage
2021-04-15 15:46:34 -04:00
Tom Rothamel 391dc101b7 Clear any residual events at android start.
This probably fixes #2768.
2021-04-14 01:34:39 -04:00
Tom Rothamel f63be5c57a gl2: Use the correct internal type when creating a RenderBuffer.
This fixes display on Android.
2021-04-14 01:24:14 -04:00
Tom Rothamel 1103d0397e Reload the game without saving when at the main menu.
Fixes #2761.
2021-04-14 00:35:27 -04:00
Tom Rothamel 77b7a9e116 Improvements to transitions on layers.
* When a layer transition is occuring, use the old (rather than new)
  state for the global transition.
* Allow layer transitions to persist between interactions.
* The scene statement clears layer transitions.

Fixes #2763.
2021-04-14 00:25:09 -04:00
Tom Rothamel ccdb23c6bd Document incompatible changes. 2021-04-13 20:00:47 -04:00
Tom Rothamel ecdfda0a08 Change the behavior of scene to not clear the layer at list.
The goal of this change is that the 3d stage can be set up once,
and then left for the entire game.

Fixes #2766.
2021-04-13 19:52:43 -04:00
Tom Rothamel a38e8c2a05 Add the zzoom property.
If true, the image is scaled so it's 1:1, even if it's not on the
1:1 plane.
2021-04-13 01:19:31 -04:00
Tom Rothamel 14b4a49e01 Fix {x,y}{pos,anchor} inheritance.
Setting these variables to None is required to have diff4 work
properly.
2021-04-13 00:25:09 -04:00
Tom Rothamel 05c5db7e11 Redo how z works.
Now, the distance to the 1:1 z plane is specified as part of the
perspective, which means zanchor (and its weirdness) can go
away.
2021-04-12 21:58:11 -04:00
Tom Rothamel 1220be752c Remove development test. 2021-04-12 21:55:17 -04:00
Tom Rothamel 2b34259319 Centralize the definition of transform properties.
This extends the work done for the uniforms and gl_properties
by making all non-alias properties defined in a single place
in transform.py, and then updating the other data structures
required.
2021-04-12 21:06:55 -04:00
Tom Rothamel 20a29b8047 Merge pull request #2427 from Gouvernathor/master
Porting ImageDissolve to the new matrixcolor system
2021-04-12 19:24:28 -04:00
Gouvernathor 1ece5c9c55 replace config.gl2 with display.render.models 2021-04-12 20:33:01 +02:00
Gouvernathor d50cbc33bc fix typo 2021-04-12 20:25:27 +02:00
Tom Rothamel df85cb5748 atl: Add matrixanchor.
This is the origin of the transform matrix relative to the
transform, which tends to ease writing matrix transforms.
2021-04-11 23:54:47 -04:00
Tom Rothamel 94031c2a69 Default to gl2 mode for new releases. 2021-04-11 22:33:10 -04:00
Tom Rothamel ae5b5c76bf In the mac app, move the Python library into Resources.
This will prevent codesign from trying to sign it, making
notarization possible again.

Fixes #2759.
2021-04-10 23:30:33 -04:00
Tom Rothamel f39e64fd25 Initial work on perspective rendering. 2021-04-09 22:24:00 -04:00
Tom Rothamel bf1f499678 Document size limits for config.mouse. 2021-04-08 09:53:04 -04:00
Tom Rothamel a7d0751872 Add zpos, zanchor, and perspective properties.
Just at the Transform/ATL level, as these still need to be given
meaning.
2021-04-07 21:55:01 -04:00
Tom Rothamel a8adeace3f Fix the type of the blur bias.
Fixes #2757.
2021-04-06 22:51:44 -04:00
Tom Rothamel 6f20c629f0 gl2: Use a Renderbuffer for the color attachment.
Since we're only copying from the framebuffer, we can use a renderbuffer
rather than a texture as the rendering targer. This should be a more
optimized path.
2021-04-06 21:24:15 -04:00
Tom Rothamel 624973d518 Properly match string ends wehn doing newline quoting.
This may need a force recompile to work. Fixes #2756.
2021-04-06 02:23:15 -04:00
Tom Rothamel 25403b6cdf Merge pull request #2755 from Andykl/live2d-fix-dropped-curve
Add implicit Step with last reached value till the end of the motion
2021-04-05 21:02:07 -04:00
Andy_kl 3a61739d69 Add implicit Step with last reached value till the end of the motion 2021-04-05 01:33:01 +02:00
Tom Rothamel b8fc937781 Add release_changes script.
This shows the files that were added and removed between
releases.
2021-04-04 13:26:54 -04:00
Tom Rothamel 7983d80527 lint: Do not warn when defining a builtin name the creater is expected to set.
Fixes #2753.
2021-04-03 19:47:41 -04:00
Tom Rothamel b0842a4f1b Report if a text that doesn't take a close is closed.
Fixes #2752.
2021-04-03 14:15:19 -04:00
Tom Rothamel a5920b2200 Re-add part of acc19171c3.
It was necessary to undo the combining of wait and get, as
this could lead to wait returning None when factor == 0, and
display failing.

However, the last-frame logic makes sense, so re-include it.
2021-04-02 23:16:32 -04:00
Tom Rothamel cee512ea61 Revert "Fixes for Live2D"
This reverts commit acc19171c3.
2021-04-02 23:12:07 -04:00
Tom Rothamel 8aa0cf01cd Use the field for equality comparisons in VariableValue or FieldValue.
Fixes #2747.
2021-04-01 17:53:58 -04:00
Tom Rothamel 360751b071 Set the exit code to 1 when lint fails.
Fixes #2746.
2021-03-31 17:18:39 -04:00
Tom Rothamel 3f4bee5558 Add the matrixtransform transform property.
This allows the reverse matrix to be specified, with the forward
matrix being derived from its inverse.
2021-03-30 19:44:33 -04:00
Tom Rothamel 7229cc87ef Add transform matrices. 2021-03-30 01:13:38 -04:00
Tom Rothamel 15721dce53 Fix typo. 2021-03-29 19:06:24 -04:00
Tom Rothamel 06b4acea6e matrix: Add a method to compute the inverse of a matrix. 2021-03-28 23:02:39 -04:00
Tom Rothamel 349b204405 Better documention for labels with parameters.
Per #2741.
2021-03-28 14:54:28 -04:00
Tom Rothamel 5a441def70 Indicate that renpy.windows (et al) are true/false, not True/False.
Fixes #2739.
2021-03-27 12:51:07 -04:00
Tom Rothamel 4ebf1d0df8 Allow namespaces to determine if define marks a variable as pure.
This makes older code, that might define persistent.whatever = True,
work correctly with screen optimizations.
2021-03-27 00:30:41 -04:00
Tom Rothamel b5a8ba2b1b Use the flat steam API for get_account_id.
This works around a bug on windows (but not on wine) where crashes
seem to happen when a method is called on CSteamID.
2021-03-26 00:26:47 -04:00
Tom Rothamel ba44e94bfd Commit keywords. 2021-03-25 22:55:13 -04:00
Tom Rothamel 1a0a569a12 Change how /** works at the end of a build.classify patter.
Per #2737, it's a bit confusing that excluding /** will exclude
all files in the directory. To fix this, the exclude behavior
is changed to not match a directory that is matched by the pattern
without a trailing * or **.

Fixes #2737.
2021-03-25 22:52:49 -04:00
Tom Rothamel a98c667b97 Revert "distribute: * and ** must match 1 character."
This reverts commit 10904d65c4.
2021-03-25 18:35:52 -04:00
Tom Rothamel c0ddba8c4b Improve handing of TIMEEVENT and modal.
With these changes, a modal TIMEEVENT is introduced, that is
created when a modal displayable ignores an event. This is
handled differenty, most notibly by not being used for
skipping, while still being used for pause and for
timers.
2021-03-24 23:48:46 -04:00
Tom Rothamel cdf4f71d88 Restore the handling of modal screens.
This probably is a fix for #2736, and maybe #2733.
2021-03-24 23:14:51 -04:00
Tom Rothamel 10904d65c4 distribute: * and ** must match 1 character.
Per #2737.
2021-03-23 23:26:06 -04:00
Tom Rothamel f789128208 Avoid pausing after rollbacks.
This tends to improve rollback by having it wind up on a 'real'
statement and not a pause.

Fixes #2731.
2021-03-23 23:11:18 -04:00
Tom Rothamel 639d5d9ce1 Merge pull request #2735 from xavi-mat/master
Update Spanish translation
2021-03-22 19:53:34 -04:00
xavi-mat b5d552f9b3 Update Spanish translation
Missing strings.
2021-03-22 21:43:43 +01:00
xavi-mat 8bd72ea824 Update Spanish translation
Missing strings about JDK
2021-03-22 21:42:03 +01:00
xavi-mat 9dc3152ddf Typo in Spanish translation 2021-03-22 21:27:13 +01:00
xavi-mat 0f98104e05 Typo in Spanish translation 2021-03-22 21:26:50 +01:00
xavi-mat fc4357ea02 Typo in Spanish translation 2021-03-22 21:26:11 +01:00
Tom Rothamel 02c009a859 Merge pull request #2730 from sagittaeri/feature/audio_filename_sync_channel
Can now sync to channel when playing audio
2021-03-21 14:04:25 -04:00
KG c8952a9f86 Added documentation for feature 2021-03-21 16:13:45 +11:00
Tom Rothamel 0fda299d86 Update the changelog for blend. 2021-03-20 21:36:49 -04:00
Tom Rothamel 97156ba471 atl: Add the blend property.
This selects a blend mode.
2021-03-19 22:50:24 -04:00
KG 04e8f89655 Can now sync to channel when playing audio
Ensures that we can sync the audio clip time of new music layer to a channel we specify. This will allow the music layers to remain in sync after save/load (<from X> doesn't sync after save/load).

Usage:
<sync [channel_name]>[audiofilename.ogg]
2021-03-20 12:18:18 +11:00
Tom Rothamel 50aedffdd8 Bump version. 2021-03-18 19:33:39 -04:00
Tom Rothamel ed17bcfc84 Change the name of the release. 2021-03-17 20:51:24 -04:00
Tom Rothamel b8d1b9a4dc Update changelog. 2021-03-16 23:49:48 -04:00
Tom Rothamel ea6de5a7af Update the gl2 function list. 2021-03-16 23:08:46 -04:00
Tom Rothamel 1d8f8a4220 live2d: Support additive and multiplicative blending.
Fixes #2723.
2021-03-16 22:47:17 -04:00
Tom Rothamel 040c7180de Add gl_blend_func.
This property makes it possible to use glBlendFuncSeparate and
glBlendEquationSeparate to customize how pixels are drawn to
the framebuffer.
2021-03-16 22:42:32 -04:00
Tom Rothamel e1e8deee2f Separate texture pixel-perfection from texture size limits.
Fixes #2725, the reina test, which was ultimately cause by coordinates
being wrong when an 8192x8192 texture was shrunk down to 4096x4096.
2021-03-15 23:10:32 -04:00
Tom Rothamel b782ebc0f6 Update the changelog. 2021-03-14 17:43:46 -04:00
Tom Rothamel 7c0d6e3b5f Document old-game. 2021-03-14 17:37:30 -04:00
Tom Rothamel 8f306d06f6 Update sponsor docs. 2021-03-14 17:03:53 -04:00
Tom Rothamel 51262b2062 gl1: Avoid adjusting the size of a maximized window.
Fixes #2722.
2021-03-13 23:13:22 -05:00
Joshua Fehler a1a381884d Replace empty tuple/dict func call with literal 2021-03-13 21:19:54 -05:00
Tom Rothamel 67773d9fe3 live2d: Reset opacities with other parameters. 2021-03-13 21:08:02 -05:00
Andy_kl 211f5368a4 Add Cubism zip files to ignore 2021-03-13 21:33:29 +02:00
Tom Rothamel 2f2f5a3c30 Merge pull request #2720 from Gouvernathor/patch-1
Fix persistent Achievements backend
2021-03-13 13:30:58 -05:00
Gouvernathor d2116b6216 Clear progression when clearing an achievement
Otherwise a state of limbo would happen, when you're at or above the max progression level, but you don't have the achievement. Unlocking the achievement then would require to make a progression even higher than previously recorded.
Also there wouldn't be any way to reset progression towards an achievement.
2021-03-13 19:29:13 +01:00
Gouvernathor 9b7f14aafb Avoid registering invalid values 2021-03-13 19:24:17 +01:00
Tom Rothamel 8cf969bfee Add mixer functions. 2021-03-12 17:30:57 -05:00
Lent1 130eb08652 Avoid unknown attributes warning when defining -attribute and variant in attribute_function 2021-03-12 11:41:55 +01:00
Tom Rothamel 18e87547d1 Merge pull request #2717 from Andykl/fix-l2d
Fixes for Live2D
2021-03-12 00:00:51 -05:00
Andy_kl acc19171c3 Fixes for Live2D 2021-03-12 02:08:32 +02:00
Tom Rothamel 2b90a11621 Add support for old-game.
Old-game is a new directory that stores the .rpyc files from the
last release of the game. Unlike in the rest of Ren'Py, the .rpyc
files in old-game can be checked in - they're not intended to be
changed on a regular basis. Ren'Py preferentially uses the .rpyc
files in old-game when assigning names to statements, which means
that even if something prevents the .rpyc files from being
generated, the old-game .rpycs will be used.
2021-03-10 23:14:08 -05:00
Tom Rothamel 0f7edd23e4 Correct use of config.allow_underfull_grids.
Fixes #2714.
2021-03-10 01:59:45 -05:00
Tom Rothamel e407ac2f58 Report an error for default/define renpy.x.
This is an error that causes weird errors, so it's good to prevent
it.
2021-03-09 23:00:20 -05:00
Andy_kl ef7fc34984 Fix regression of 79296865
Close #2712
2021-03-09 21:01:03 +02:00
Tom Rothamel e56319e11c Bump version. 2021-03-09 00:56:34 -05:00
Tom Rothamel 1064b88875 py3: Compat unicode. 2021-03-08 02:08:37 -05:00
Tom Rothamel beb26aac8a py3: re._pattern_type -> re.Pattern.
Per #2412.
2021-03-08 00:23:04 -05:00
Tom Rothamel 263f3caf13 Update changelog. 2021-03-07 15:34:22 -05:00
Tom Rothamel 4495531585 Merge pull request #2708 from midgethetree/improve-small-gui
Improve small gui
2021-03-07 15:30:52 -05:00
Tom Rothamel 0091838950 Report errors loading GL functions. 2021-03-07 13:31:38 -05:00
Tom Rothamel dd8739ad3f Add config.log_gl_shaders and config.log_gl_extensions.
These should make looking at log.txt files easier, as the important
information is no longer buried under lists of extensions that
Ren'Py doesn't often use.
2021-03-07 13:04:56 -05:00
Tom Rothamel bfe27a29fd Remove the use of gl.uguu.angle.
While it had been used to switch between GLES and ANGLE on windows,
in the most recent SDL2 ANGLE loads anyway. So there isn't much
use in this module, when used with renpy.exe (rather than in
a development mode).
2021-03-07 12:34:35 -05:00
Tom Rothamel 0d918778be gl/gl2: Improve handing of bad GL stacks.
- Fix failover from gl2 to angle2.
- Improve the placement of GL_FAIL_<renderer>, and add it to gl2.
2021-03-07 01:52:00 -05:00
Tom Rothamel 8a5db8b5ed Delete the window when changing renderers.
This let SDL2 create the window again after the GL/GLES settings
have been set. The window creation code is responsible for
selecting the EGL config, and so it's important that it run
in GLES mode.

Fixes #2704.
2021-03-07 01:43:48 -05:00
Tom Rothamel e4e32c1759 Fix tyop.
Fixes #2709.
2021-03-05 20:09:46 -05:00
midgethetree 312dc3ad69 changed slider_pref to slider
The slider_pref style prefix is not used anywhere in the screens. The slider prefix is presumably what was meant to be changed here.
2021-03-05 13:31:06 -05:00
midgethetree 3114f0e061 added choice button text size to small gui variants
Added a "small" variant of gui.choice_button_text_size so the text in choice buttons will by default be larger on small-screen devices.
2021-03-05 13:26:43 -05:00
Tom Rothamel 27a6157d3e Fix typo.
Fixes #2706.
2021-03-04 21:50:15 -05:00
Tom Rothamel 07925c94b4 Merge pull request #2705 from renpy/Beuc-patch-1
doc: clarify video library used
2021-03-03 22:16:17 -05:00
Beuc 9a9c682505 doc: clarify video library used 2021-03-03 21:03:49 +01:00
Gouvernathor 8c8f2ac255 remove unnecessary Action 2021-03-03 16:27:28 +01:00
Gouvernathor 70b1cc58c0 From persistent.dark_theme to persistent.theme 2/2
Now there's the default theme, with generated checkboxes and scrollbar centers but pixel-perfect to the original,
there's the clear theme, same as the default but with generated window and background,
and there's the dark theme, which is the clear theme with tweaked colors.
2021-03-03 12:17:56 +01:00
Gouvernathor c09e2e301a From persistent.dark_theme to persistent.theme 1/2 2021-03-03 12:14:39 +01:00
Tom Rothamel c3acf457f4 Initialize the field storing stats_max on PersistentBackend.
Fixes #2701, introduced by merging #2627.

Also renames the field storing stat_max to self.stat_max.
2021-03-02 23:00:07 -05:00
Tom Rothamel d056f45d84 Add config.main_menu_music_fadein. 2021-03-02 22:46:34 -05:00
Tom Rothamel 5dde40fba4 Fix missing arguments. 2021-03-02 02:11:31 -05:00
Tom Rothamel 66d74400d4 Update changelog and sponsor doc. 2021-03-02 00:16:53 -05:00
Tom Rothamel dac2dc7cb0 doc: Update credits and keywords. 2021-03-01 23:13:51 -05:00
Tom Rothamel f442d52d98 doc: Update changelog and sponsors. 2021-03-01 22:47:59 -05:00
Tom Rothamel 33b9159c06 Document that transform functions can't have side effects.
Fixes #2694.
2021-03-01 01:04:46 -05:00
Tom Rothamel aa0f055d4c Merge pull request #2627 from Gouvernathor/patch-1
Improvements to default achievement backend
2021-02-28 23:40:36 -05:00
Tom Rothamel 993f4eb6ad android: Shut down if the window is not focused on start.
This fixes a problem on the Galaxy Tab A (2016) where if the
display is not focused at start, the GL surface is created
with the wrong depth (565, or perhaps not at all, rather than
8888), and the window is black until focus is lost and gained
again.

When this happens, the app saves, quits, and is resumed on the
re-launch.
2021-02-28 22:20:34 -05:00
Tom Rothamel cbf733b873 Merge pull request #2698 from Gouvernathor/patch-4
Harmonizing and correcting french translation
2021-02-27 21:42:34 -05:00
Tom Rothamel 74387c0e8b Merge pull request #2695 from Beuc/french_update
Update common French translations
2021-02-27 21:42:26 -05:00
Gouvernathor 2e8209be9f Harmonizing and correcting french translation 2021-02-27 19:23:03 +01:00
Tom Rothamel 5b782f70fa gl1: Deallocate textures on resize.
This fixes graphical glitches with rtt/dissolve  on the Galaxy Tab A
(2016), after leaving the app and returning to it.
2021-02-26 23:58:46 -05:00
Tom Rothamel 32fbc4be6f Merge pull request #2691 from Gouvernathor/patch-4
Update french launcher translations
2021-02-26 22:41:40 -05:00
Tom Rothamel 8ae85b1f11 Ensure Window always has window_size. 2021-02-25 20:08:08 -05:00
Tom Rothamel d241f8e988 Move the Ren'Py 6 changelog to its own file. 2021-02-25 17:29:06 -05:00
Sylvain Beucler dcccfaff66 Update common French translations 2021-02-25 21:48:26 +01:00
Tom Rothamel 27bc989106 Merge pull request #2692 from midgethetree/bug-tts-order
Fix order tts reads children in
2021-02-24 23:49:42 -05:00
Tom Rothamel 287e1e7602 li: Consider attribute_function together with unknown. 2021-02-24 22:46:29 -05:00
midgethetree 59bccb876a Fix order tts reads children in
Fixed issue introduced by 3ee3794 where tts reads the children of containers in the wrong order.
2021-02-24 22:40:28 -05:00
Gouvernathor 3607755397 Update french launcher translation 2021-02-25 02:42:35 +01:00
Gouvernathor 384c0e6610 Update french launcher translations 2021-02-25 02:36:50 +01:00
Gouvernathor 330f5c96de Update french launcher translations 2021-02-25 02:34:20 +01:00
Gouvernathor 25701b1912 Update french launcher translations 2021-02-25 02:26:08 +01:00
Gouvernathor e52acc8300 Update french launcher translations 2021-02-25 02:22:03 +01:00
Gouvernathor 3b486fc570 Update french launcher translations 2021-02-25 02:16:46 +01:00
Gouvernathor c9f7766f4c Update french launcher translations 2021-02-25 02:02:17 +01:00
Gouvernathor f81483626a Add dark them option in preferences
As change are taken into account in an init block (the skin.rpy user customization sure are), there needs to be a full reload.
Luckily, for the launcher it doesn't take much time.
2021-02-25 00:00:19 +01:00
Gouvernathor 1745d47af0 Delete vscrollbar_center.png 2021-02-24 22:49:00 +01:00
Gouvernathor d069269e57 Delete scrollbar_center.png 2021-02-24 22:48:53 +01:00
Gouvernathor 08d8b7cfcf Delete checkbox_full.png 2021-02-24 22:47:05 +01:00
Gouvernathor 9babae6c85 Delete checkbox_empty.png 2021-02-24 22:46:58 +01:00
Gouvernathor e7c9ccc69e Various
Recreating l_checkbox_box (but as a transform)
Taking into account the image files put by players in the launcher directory
Remains to delete the scrollbars and the checkbox files from the launcher directory
2021-02-24 22:46:38 +01:00
Gouvernathor d587dee63b Add theme switch and fix checkbox offset
Remains to change the dark theme parameters
2021-02-24 17:29:57 +01:00
Tom Rothamel 68cc010829 Merge pull request #2640 from midgethetree/improve-mousearea
Make mouse area stay unhovered when keyboard focus being used
2021-02-24 00:12:56 -05:00
Tom Rothamel 61cc5da85e Merge pull request #2652 from Andykl/live2d-update-function
Live2D: Added ability to specifiy user function to blend parameters
2021-02-24 00:10:32 -05:00
Tom Rothamel f2889dd612 Merge pull request #2683 from AndriWilford/character_class_callable_for_string_type
Character class callable for string type
2021-02-23 17:33:46 -05:00
Gouvernathor a41ee6b0fc Avoid image and transform names spending 2021-02-23 19:01:58 +01:00
Gouvernathor 80dd973b9d Un-diskloading the launcher skin, V1
remain window and background
2021-02-23 18:49:51 +01:00
Tom Rothamel d5c11b89fa Replace O(n^2) char_map with O(n) algorithm. 2021-02-22 23:55:06 -05:00
Tom Rothamel e8cdeec6bc Editor reformats the whitespace. 2021-02-22 23:48:13 -05:00
Tom Rothamel 1d33aac4bc Merge pull request #2687 from Gouvernathor/patch-2
Add character remapping to FontGroup
2021-02-22 23:22:26 -05:00
Andy_kl a9fb537517 Added doc 2021-02-23 01:50:54 +02:00
Andy_kl 924d012963 Change blend names to match Live2D 2021-02-23 01:43:33 +02:00
Gouvernathor d8cfe62001 Add FontGroup.remap
The method is useful to remap a large set of non-contiguous characters to a single one.
2021-02-22 23:33:38 +01:00
Andy_kl 4547d1b5f0 Merge remote-tracking branch 'upstream/master' into live2d-update-function 2021-02-23 00:26:21 +02:00
Gouvernathor 5c243fe77c Fix segment method 2021-02-22 21:18:08 +01:00
Gouvernathor d4d2c6be7c Update segment method and correct add method
The character replacement isn't scheduled if the character to be replaced has already been binded to a font.
Pending : process target when another FontGroup is given
2021-02-22 19:27:14 +01:00
Gouvernathor 5fda2fc306 Add target and target_increment to the add method
Pending implementation in the segment method.
The char_map dict maps a character to replace to a character to replace it with.
For example char_map[ord('é')] = ord('e') is a nominal use case.
2021-02-22 18:51:03 +01:00
Tom Rothamel a3a5524f24 Make AlphaMask's mask focusable.
This was requested on #renpy, and allows an Input displayable
to be used as the mask in the screen, allowing stylized text.
2021-02-22 01:02:48 -05:00
Tom Rothamel f51b138f32 Allow the player to ignore missing image files. 2021-02-21 22:12:49 -05:00
Tom Rothamel aa599fb920 Use the fsencoding to decode GL error messages.
Fixes #2656.
2021-02-21 19:08:18 -05:00
Tom Rothamel c86024437e Add a pair of functions that enable SDL calls using ctypes.
Fixes #2660.
2021-02-21 15:37:06 -05:00
Tom Rothamel 556de7f2cf Support clicking to dismiss renpy.transition transitions.
Also the with clause of say and call screen.

Fixes #2666.
2021-02-21 12:50:49 -05:00
Tom Rothamel b7045998fd Ensure lint uses the system line ending.
Fixes #2684.
2021-02-21 10:33:20 -05:00
Tom Rothamel c5fec28cc1 ParameterizedText should not eval during lint.
It's possible to have things like expressions and substutions in
the ParameterizedText strings in lint mode, that use variables
that are not initialized. This check for that and avoids the
errors that occur.

Per #2684.
2021-02-21 09:59:19 -05:00
Tom Rothamel 3472c4a8db Avoid synchro start on context change.
Fixes #2681.
2021-02-20 23:17:40 -05:00
Tom Rothamel 2dfd773a0d Avoid quoting unicode in Python.
... when it's being compiled with the new arguments, where there
are unicode literals anyway.
2021-02-20 23:09:39 -05:00
Tom Rothamel be3f9cbeab Merge pull request #2685 from Gouvernathor/patch-2
Add translate_string to the doc
2021-02-20 20:52:51 -05:00
Gouvernathor 1fe40dacb4 Add translate_string to the translation doc page 2021-02-20 22:07:40 +01:00
Gouvernathor 718752b9fe Have translate_string's docstring match _ and __'s 2021-02-20 22:05:32 +01:00
AndriWilford 09c4e87385 Add function callable to string type 2021-02-20 08:29:31 -06:00
AndriWilford cfa9d42d75 Merge pull request #1 from renpy/master
pulling in all changes since initial creation
2021-02-20 08:26:49 -06:00
Tom Rothamel 97d323be2f Add the hide_windows label.
This allows script to extend or replace the hide_windows action.

Fixes #2679.
2021-02-19 22:10:41 -05:00
Tom Rothamel fd8e919262 Merge pull request #2678 from dogtopus/surrogate-on-demand-2
Fix issues that prevented #2653 from working.
2021-02-19 20:46:16 -05:00
dogtopus 3d35cae49f Add spacing between code chunks for better consistency. 2021-02-19 16:05:48 -04:00
dogtopus 914864b922 Tie more loose ends on emoji rendering.
Make font rendering variation-aware and fallback to default variation if the requested variation does not exist.
2021-02-19 15:55:03 -04:00
dogtopus b8aece362b Fix issues that prevented #2653 from working.
Specifically:

- Explicitly cast the Unicode characters to FT_ULong before doing bit ops.
- Add the decoded value by 0x10000 to get the actual Unicode value.
- Change the rest of Py_UNICODE castings to FT_ULong so the Unicode values don't get casted back to 16-bit when rendering.
- Make the decode routine easier to read.
2021-02-19 05:36:55 -04:00
Tom Rothamel ce4fa07db0 Merge pull request #2668 from xavi-mat/master
Make screen main_menu() easier to customize
2021-02-18 21:15:32 -05:00
Andy_kl dc190f6a12 Fix exception on warp window statement.
This is fix #2674
2021-02-18 22:33:50 +02:00
Andy_kl 79296865df Fix exception with renpy.map_event(ev, ["name", "name"]) 2021-02-18 18:23:47 +02:00
Tom Rothamel dceb665e35 Add Chinese credits. 2021-02-18 02:10:42 -05:00
Tom Rothamel 7ed04beae7 Merge pull request #2653 from dogtopus/surrogate-on-demand
Implement surrogate pair decoding.
2021-02-17 21:50:59 -05:00
Tom Rothamel 928b0d1898 Fix warping and screen language.
Fixes #2672.
2021-02-17 20:48:24 -05:00
Tom Rothamel a97727f896 Use the nvidia driver settings API to disable thread optimizations.
This is meant to address #2024, which seems like it might have
something to do with the NVIDA driver blocking when the GIL
is held.
2021-02-17 01:03:49 -05:00
Tom Rothamel 89fc2198b4 Make modal available on frames and windows.
Modal has been added to these two displayables, and has been
changed so that it can take a callable that provides more precise
control over what is and isn't modal.
2021-02-16 20:17:03 -05:00
Tom Rothamel 76e826ce0d doc: Fix FilePagePrevious. 2021-02-16 18:54:48 -05:00
Tom Rothamel 3ee379438e Visit the children of containers in the same order .event() will.
This prevents obscure interactions between the focus system and
the event system in the face of modal screen, where one screen
is modal and the other isn't.
2021-02-16 12:56:38 -05:00
Tom Rothamel 2299353e70 Fix and simplify 12c11e4dd2 . 2021-02-16 09:16:42 -05:00
xavi-mat b479eb40e3 Make screen main_menu() easier to customize
`screen main_menu()` is probably the most customized of all built-in screens.

Currently styles in `screen main_menu` are applied to one `frame` and one `vbox` from `style_prefix`. This way, any time a developer adds a `frame` or a `vbox` to customize their `main_menu` they will inherit some unexpected properties (like `xsize`, `yfill`, `xalign`, `yalign`, a very specific `background`...).
Actually: styles are useful to reuse the same properties in different children of the same type. BUT properties defined in `style main_menu_frame` and `style main_menu_vbox` will hardly be reused.
My proposal (I think it makes more sense) is not to use `style_prefix` in the main menu, but apply directly those two styles to the two unique children that will use them.
This way, if developers add more `vbox` or `frame` to their `main_menu`, they will behave as expected with default properties.
2021-02-16 10:33:06 +01:00
Tom Rothamel 12c11e4dd2 Merge pull request #2664 from Lezalith/master
Pass kwargs of input() to the shown screen
2021-02-15 22:42:13 -05:00
Tom Rothamel 39b1ae0762 Add the mesh_pad transform property.
This, in conjunction with pixel_perfect, makes it possible to
apply shaders to text.

Fixes #2644.
2021-02-14 22:49:14 -05:00
Tom Rothamel 7cffa6323e Avoid writing the i686 version if it's not going to be used. 2021-02-14 11:18:33 -05:00
Tom Rothamel 8209cc0daa Do not update a texure's properties on rtt.
The same texture can be rendered in multiple places.
2021-02-14 01:45:06 -05:00
Tom Rothamel 15c5c2544e Add the gl_pixel_perfect property.
When set when a mesh is created, it marks the mesh to be pixel
aligned, which ensure that text will be sharp.
2021-02-14 00:44:16 -05:00
Jan Masek 51d05d1515 kwargs with prefix _show are passed to the screen, args and kwargs not defined by input() throw an error 2021-02-14 03:38:49 +01:00
Jan Masek 2516846f1a Split properties and pass only those with show_ prefix 2021-02-14 01:01:55 +01:00
Jan Masek 352a9573e5 Pass kwargs of input() to the shown screen 2021-02-14 00:42:00 +01:00
Tom Rothamel d02f908343 gl2: Use the texture size for gl2debug, when relevant. 2021-02-13 18:41:47 -05:00
Tom Rothamel b4660f2881 gl2: Print out the right type for Models and subclasses. 2021-02-13 00:31:34 -05:00
Tom Rothamel da90ee3a93 Add default_mouse to the changelog.
Since we've been getting questions about it.
2021-02-11 22:46:36 -05:00
Tom Rothamel df9a2e7cf8 Set NSHighResolutionCapable when distributing for mac.
Fixes #2658.
2021-02-10 23:25:35 -05:00
Tom Rothamel bb4eab9747 Properly weight blur values between 0 and 1.
Fixes #2661.
2021-02-10 21:11:37 -05:00
Tom Rothamel f36fe5e98b Avoid popping the history list if it's empty.
Fixes #2651.
2021-02-09 00:26:37 -05:00
Tom Rothamel 4eea5e5825 Return the right thing when a cached angle load happens. 2021-02-09 00:18:41 -05:00
Tom Rothamel d65c743fe1 Detect if SDL_GL_LoadLibrary fails.
Fixes #2656.
2021-02-08 22:52:08 -05:00
Tom Rothamel a290978f47 Pass the game name to SDL, for use as the Pulseaudio application name. 2021-02-07 22:40:46 -05:00
Tom Rothamel e98456f28b Merge pull request #2655 from AndriWilford/add-checksum-characteristicflag
Update change_icon.py
2021-02-07 01:37:10 -05:00
AndriWilford 8187b51aff Update change_icon.py
Remove deprecated characteristic flags, per document mentioned in code comment

Add updated checksum to new file. Since the new file is created from manually-packed bits, the original PE object cannot be used for the new checksum. A second object is created for doing this.
2021-02-07 00:34:21 -06:00
Tom Rothamel a4ce5b8c52 Call renpy.fsencode on filenames when seeing if a file can be edited. 2021-02-06 23:18:59 -05:00
dogtopus e04f0b60ab Implement surrogate pair decoding.
This will only be effective when the Python enviroment was built with UCS-2 unicode type (e.g. official Ren'Py binary distribution). Once triggered, it will decode the surrogate pair to an FT_ULong before passing it to the glyph lookup routine in FreeType. Variation sequences are also handled when needed (i.e. <upper surrogate> <lower surrogate> <variation>).
2021-02-06 17:22:29 -04:00
Tom Rothamel cf5b36dc2e Integrate change_icons.py by Andrí, at least for test purposes. 2021-02-05 21:10:19 -05:00
Tom Rothamel d7afd56a94 Fix {done} and self-voicing. 2021-02-04 23:05:00 -05:00
Tom Rothamel d9163b5f49 Implement the {done} tag. 2021-02-04 22:52:08 -05:00
Tom Rothamel a9e790d7ca Merge pull request #2643 from RenpyRemix/master
Add rgba property to Color
2021-02-03 22:41:52 -05:00
midgethetree 5afb4cddf0 fixed minor bug in last commit
Using pending_focus_type to check for keyboard focus appears to have less issues when switching between keyboard and mouse.
2021-02-03 17:27:52 -05:00
Tom Rothamel 47c4f39e6c Document that queue takes fadein.
Fixes #2636.
2021-02-02 22:48:35 -05:00
Tom Rothamel 6eb1272311 Ensure that a queued fadein plays even if the old sound was tight. 2021-02-02 22:23:28 -05:00
Tom Rothamel bd3864390e Add support for fadein to the queue statement. 2021-02-02 22:15:38 -05:00
RenpyRemix 78ad48d532 Add rgba property to Color
Add attribute _rgba and property rgb to Color class and update TintMatrix to use that property
2021-02-02 16:38:53 +00:00
Tom Rothamel a42e4f8885 Document zorder manipulation functions. 2021-02-01 22:17:23 -05:00
Tom Rothamel 8eca706a79 Add functions that allow for the manipulation of zorder.
Fixes #2635.
2021-02-01 22:14:47 -05:00
midgethetree bfc8b9dbf3 Make mousearea stay unhovered when keyboard focus being used
I am of the opinion that when a player is using the keyboard to navigate the interface the location of the mouse should be ignored to avoid potentially confusing the player, but the mousearea displayable doesn't follow this principle. Ideally a mouse area would be able to tell if the keyboard-focused displayable overlaps with it and remain hovered then and only then, so it can be used to style/animate menus of buttons with built in keyboard support, but I have made the mouse area always unhovered when using the keyboard to navigate the interface as a simple solution in the meantime.
2021-02-01 18:15:01 -05:00
Tom Rothamel 1c9d65862d Bump version to 7.4.3. 2021-01-31 15:02:45 -05:00
Tom Rothamel ea86a27cf0 Add missing variables. 2021-01-31 01:13:06 -05:00
Tom Rothamel c7bc7aa2f9 Add config.change_icons_i686.
This is a lesser form of config.include_i686, the idea being that
the Ren'Py launcher will be whitelisted. (If it works, then we
can remove the Ren'Py icon from the launcher in the next
release.)
2021-01-30 21:35:43 -05:00
Tom Rothamel 625d0acbfa Ensure that focus changes always wind up on the grabbed displayable.
Per the secondary issue reported in #2633.
2021-01-30 19:24:06 -05:00
Tom Rothamel 3c173f073e Tweak the wording of the android warning. 2021-01-30 19:22:35 -05:00
Tom Rothamel 259639db0b Documentation clarifications.
- Explain how subpixel handles edges.
- Further clarify supported wav files.
2021-01-30 16:36:18 -05:00
Tom Rothamel 7abeaed7ec Improve how we scan for motion and expression files in live2d. 2021-01-29 21:53:23 -05:00
Tom Rothamel 1df06eeae3 Add config.context_fadeout_music and config.context_fadein_music.
These variables control how music is faded on context changes
like loads and replay ends.
2021-01-29 21:12:07 -05:00
Tom Rothamel e1702c53a1 Update the changelog. 2021-01-29 20:16:25 -05:00
Tom Rothamel 4ded91be04 Change the name. 2021-01-29 19:16:15 -05:00
Tom Rothamel 07006c7b47 Ensure the winding of both polygons when intersecting polygons.
Fixes #2628.
2021-01-28 23:59:40 -05:00
Tom Rothamel 731460b9ea Fix borders in the gl1 renderer.
Fixes #2625, which was reported with a patch by mgambrell.
2021-01-28 23:36:40 -05:00
Tom Rothamel 9ef37d27c3 Add build.include_i686.
This determines whether the 32-bit intel platform is included.
2021-01-27 23:04:54 -05:00
Tom Rothamel 9f34c7bdd4 Fix an error reporting bad flips. 2021-01-26 21:12:28 -05:00
Tom Rothamel 7beb499937 Point to AdoptOpenJDK. 2021-01-26 18:03:22 -05:00
Gouvernathor b48635ca3e Cleanup, removing stat_modulo 2021-01-26 12:39:09 +01:00
Gouvernathor 2e09e2c4da Minor corrections 2021-01-26 12:25:52 +01:00
Gouvernathor ac868b9d45 Improvements to default achievement backend 2021-01-26 12:18:42 +01:00
Tom Rothamel 87b6c0f562 Use pygame_sdl2 to determine if the screensaver is active.
SDL2 only seems to check the hint once, at init time. However,
the Enable/Disable functions can be called at any time.

Fixes #2626, hopefully for good this time.
2021-01-26 01:02:57 -05:00
Tom Rothamel 2fae5f7591 Repeat the icon data in the .exe.
This yields marginally better antivirus behavior by giving the .exe
a normal amount of entropy.
2021-01-26 01:02:57 -05:00
Andy_kl 068fbc63f7 Initial 2021-01-26 05:00:23 +02:00
Tom Rothamel 3aafa9d608 Merge pull request #2595 from Gouvernathor/patch-1
Add a getter for the achievement progress
2021-01-25 21:08:46 -05:00
Tom Rothamel e747c38f37 Update sponsor docs. 2021-01-24 21:25:55 -05:00
Tom Rothamel 3530434c51 sw: Remove the obsolete scale_fast field.
Addresses #2619.
2021-01-23 23:33:34 -05:00
Tom Rothamel 3593b6410a Monkeypatch the updates to deal with 7.4.1 missing zsync on mac. 2021-01-23 23:21:23 -05:00
Tom Rothamel 4788f3162f Bump version. 2021-01-23 18:54:22 -05:00
Tom Rothamel cea83dd5cb Merge pull request #2616 from midgethetree/bug-focus-extreme
Update focus.py
2021-01-22 21:30:20 -05:00
midgethetree 4ad0397578 Update focus.py
Made it so the focus_extreme function (used when arrow key is pressed if self voicing is off and no displayable on screen is currently focused) ignores displayables with keyboard_focus set to False.
2021-01-22 01:50:31 -05:00
Tom Rothamel a854b63b96 Check in more changes. 2021-01-21 22:51:22 -05:00
Tom Rothamel 8e2e0f3e6d Change the name of the release. 2021-01-21 22:07:03 -05:00
Tom Rothamel b87a816526 Update the changelog. 2021-01-21 22:06:12 -05:00
Tom Rothamel 00252500fd Move all the other mipmap usage to the style system. 2021-01-21 21:59:30 -05:00
Tom Rothamel 9aebcd4746 Fix mipmap default. 2021-01-21 21:46:44 -05:00
Tom Rothamel 5f831b995f Add a style property that determines if text is mipmapped. 2021-01-21 21:46:14 -05:00
Andy_kl 21ce89a9eb Fix encoding issue in traceback ending text 2021-01-22 03:40:13 +02:00
Andy_kl 5d84076ff1 Add name and version of the game to early config names 2021-01-22 03:40:13 +02:00
Tom Rothamel 8a9364a836 gl2: Convert all surfaces into Textures.
This makes sure the Surface is loaded before it needs to be
rendered.

Fixes #2615.
2021-01-21 20:12:59 -05:00
Tom Rothamel 2b95b8ad7a Allow pause/renpy.pause to end during a modal screen.
Another attempt at this. It's really only the pause statment not
ending when a modal screen is up that is confusing, so we fix this
by allowing just pauses to avoid modal.
2021-01-21 08:41:51 -05:00
Tom Rothamel 700a8b8a91 Revert "Pass timeevent through modal screens."
This is too dangerous of a solution for the underlying problem.

This reverts commit d6228c994a.
2021-01-21 08:17:54 -05:00
Tom Rothamel 24eabf8b78 gl2: Allow minimal functionality when gl2 isn't functioning.
This might be the case when the EGL context is lost because an
Android app went to sleep.
2021-01-21 01:15:22 -05:00
Tom Rothamel 98682d9e19 Ensure that events are processed even if the display resets.
A common cause of display resets seems to be Androuid devices that
lose the egl context when going to sleep. This ensures we make
progress to actually going to sleep when this happens.
2021-01-21 01:15:22 -05:00
Tom Rothamel 08a7fb8c89 Allow config.log_to_stdout to be set from the game script. 2021-01-21 01:15:22 -05:00
Andykl 7fca9e99db Merge pull request #2612 from Gouvernathor/patch-2
Typo in the changelog
2021-01-21 05:00:44 +02:00
Tom Rothamel dffa3fa4d1 gl1: Try again if things fail during shader init.
This helps things run on the Galaxy S5.
2021-01-20 21:43:33 -05:00
Gouvernathor 95a594ec88 Typo in the changelog 2021-01-21 00:29:53 +01:00
Tom Rothamel 37a61025b5 gl2: Remove the texture cache.
This isn't a performance enhancement, anymore, as surfaces aren't
used much any more. It was also causing a memory leak, as the
Texture kept a reference to the Surface, which kept the Surface
alive, which kept the Texture in the cache even if it should have
been purged.
2021-01-20 18:22:39 -05:00
Tom Rothamel 17467a21c0 Update changelog. 2021-01-20 01:59:22 -05:00
Tom Rothamel 90330c5d2b Make mipmapping of videos controllable, and default it to False. 2021-01-20 01:34:12 -05:00
Tom Rothamel 8e76941ba4 gl2: Allow properties to be passed in to influence texture loading. 2021-01-20 01:33:45 -05:00
Tom Rothamel a96a6c0ce3 Do not call pop_all_dynamic() when rolling back through invoke_in_new_context.
This is the proper fix for #2599 - the previous one caused problems when hitting
shift+R when the call stack was not empty.
2021-01-20 01:09:24 -05:00
Tom Rothamel 3e614454e9 Revert "Fix a problem with rollback and dynamic variables."
This reverts commit 57e016bec2.
2021-01-20 00:09:18 -05:00
Tom Rothamel af5978fc73 ffmedia: Use the dictionary to configure threading. 2021-01-19 19:02:12 -05:00
Tom Rothamel 05fa220dd6 Remove last deprecation in avcoded, replaving avcoded_decode_audio4/video2. 2021-01-19 09:36:20 -05:00
Tom Rothamel c5193ceb3c ffmedia: Remove some deprecated function calls. 2021-01-19 00:40:22 -05:00
Tom Rothamel 5042f7e6cc Allow frames to be delivered a little early.
This fixes a jitter problem that happens when the framerate is an
integer multiple of the movie rate. You might skip a frame because
it's a small fraction of a second early, only to have to wait for
the next frame to show it.
2021-01-18 22:51:08 -05:00
Tom Rothamel d0bc9232ad Wait a little longer for the signature. 2021-01-17 22:15:57 -05:00
Tom Rothamel d0e5cc9052 Clear the dismiss keysym when dismiss_unfocused is used.
During a transition pause. Fixes the interaction of _dismiss_pause
and transition pauses.
2021-01-17 21:35:20 -05:00
Tom Rothamel a21b7a7dc8 doc: Fix wrong role. 2021-01-17 02:32:48 -05:00
Tom Rothamel 4640424ccc Changelog last commit. 2021-01-17 02:05:39 -05:00
Tom Rothamel 557fa6f408 Fix the sort of statements in lint, so translation counts work.
Fixes #2605.
2021-01-17 01:59:02 -05:00
Tom Rothamel f1393be74b Fix typo. 2021-01-17 01:27:47 -05:00
Tom Rothamel 5ca0e2789c Update the changelog. 2021-01-17 01:13:55 -05:00
Tom Rothamel 4c310521ac Update credits. 2021-01-17 00:36:16 -05:00
Tom Rothamel 3824795f67 Change the actions used to toggle self-voicing.
Per https://lemmasoft.renai.us/forums/viewtopic.php?p=538253#p538253
2021-01-17 00:33:32 -05:00
Tom Rothamel f2b896c092 Document the controller blocklist. 2021-01-17 00:14:10 -05:00
Tom Rothamel 9e9efac966 Add greater control of mipmapping for dissolves.
These can be performance critical, and involve a render to texture.
This change adds the ability to determine if the new textures have
mipmaps generated.
2021-01-17 00:08:15 -05:00
Tom Rothamel d8b371a29d Improved fix for interaction between xfill, yfill, and box_wrap.
Putting fill everywhere didn't work. So instead, we revert fully
to the 7.3.5 behavior, plus a special case for box_wrap.

Addresses #2589 and #2081.
2021-01-16 23:46:53 -05:00
Tom Rothamel 20dd6f33c9 Revert the change to set xfill/yfill by default when a size is present.
It's too disruptive.
2021-01-16 22:10:45 -05:00
Tom Rothamel b160beabd0 Pass the render properties into the render to texture system.
This will make it possible to use properties to better control
render-to-texture.
2021-01-16 22:09:43 -05:00
Tom Rothamel 57e016bec2 Fix a problem with rollback and dynamic variables.
... which was that dynamic variables wouldn't get reset after a
rollback happened. This wasn't a huge problem, since dynamic
variables mostly were used in contexts, and contexts rarely
cause rollback.

However, we offer rollback as an option when an error in a context
occurs, which could trigger this issue.

Fixes #2599.
2021-01-16 21:39:49 -05:00
Tom Rothamel 3a42e790fd Fix the interaction between xfill, yfill, and box_wrap.
First off, it makes sense that if a size is being forced on a
displayable, it should fill to fit that size in possible. So
now xsize, ysize, and xysize force xfill and/or yfill in the
appropriate dimensions.

If box_wrap is true, however, fill is turned off for the last
line. This prevents it from being expanded unnaturally.

Fixes #2589, while preserving the fix for #2081.
2021-01-16 20:31:15 -05:00
Tom Rothamel d31d27b093 Better documentation for the expansion APK license.
Fixes #2593.
2021-01-16 14:29:22 -05:00
Tom Rothamel 350ce8978d Add a controller blocklist for the Switch pro controller.
This controller doesn't work without some other software to send
the init to it. Trying to use hidapi to initialize the controller
didn't work, and led to problems with other software that uses
USB. (And fundamentally, I don't think Ren'Py should use direct USB
access.)

So, instead, we detect the pro controller and ignore it.
2021-01-16 14:20:51 -05:00
Tom Rothamel beea27db8c Set the hint to allow the screensaver.
Fixes #2602, a regression introduced by SDL2.
2021-01-16 13:16:16 -05:00
Tom Rothamel c72638b7aa Ensure glfunctions remains reported after reload. 2021-01-16 11:14:09 -05:00
Tom Rothamel 4c75b3db14 Exclude the presplash from archives. 2021-01-16 11:12:19 -05:00
Tom Rothamel 06c5f83ce6 Add id to the last commit, meaning no translation is required. 2021-01-14 21:54:17 -05:00
Tom Rothamel 2fd87aff65 Merge pull request #2597 from ajkhan96/atl-tutorial-typo
Fix typo in ATL tutorial
2021-01-14 21:24:58 -05:00
Tom Rothamel 39e3600e00 Add an id clause to the say statement.
This makes it possible to specify the transation id, making it
possible to correct a typo without forcing a retranslation.
2021-01-14 21:20:36 -05:00
Tom Rothamel ffef475dce Fix set_projects and friends. 2021-01-14 19:15:46 -05:00
ajkhan96 c483c82781 Fix typo in ATL tutorial 2021-01-14 01:55:59 -08:00
Tom Rothamel 4587e9b901 Use pyobjus to choose the directory on macOS, if it's available.
This works around problems with Big Sur.

Fixes #2576.
2021-01-14 01:11:35 -05:00
Tom Rothamel 0aaf668b10 Rollback timer state when a new timer object is created.
The TimerState object expects to roll back, but there's an edge
case, since usually an object doesn't roll back to the start of
the interaction period when it was first created. However, due
to being reachable through a displayable that doesn't roll back,
the TimerState needs to roll back to its initial state.

Fixes #2596.
2021-01-13 22:22:44 -05:00
Gouvernathor fb4ce32fb0 Add a getter for the achievement progress...
...in addition to the setter already in place (the progress function).
2021-01-14 00:58:11 +01:00
Tom Rothamel d449adb8c2 Fix encodings in renpy.exports.log.
Fixes #2590.
2021-01-11 23:33:19 -05:00
Tom Rothamel 8f369fa978 Add missing header to the changelog. 2021-01-10 22:53:42 -05:00
Tom Rothamel 74b38afeb2 Link to log.txt if GL fails to start. 2021-01-10 22:53:14 -05:00
Tom Rothamel ca356e7d17 Allow the software renderer to activate if explicity selected. 2021-01-10 22:51:59 -05:00
Tom Rothamel bc06529e9d gl, gl2: Check that all required functions have been dynamically loaded.
If a function fails to load, log the error and error out early, rather
than heading for a potential crash when the function is called.

Per #2584.
2021-01-10 22:33:06 -05:00
Tom Rothamel cc3dfd5ea5 mac: Include the mac build scripts with Ren'Py.
This means it's not necessary to have a mounted directory on the
mac used for code signing, which should improve the reliability
of nightly builds.
2021-01-09 21:26:13 -05:00
Tom Rothamel de07ab2c3f Changelog. 2021-01-09 02:25:07 -05:00
Tom Rothamel 717242aa00 Update the sponsor doc. 2021-01-09 02:23:58 -05:00
Tom Rothamel f72b7d6125 Update the changelog. 2021-01-09 02:17:03 -05:00
Tom Rothamel 9c71146079 Update copyright. 2021-01-08 21:08:22 -05:00
Tom Rothamel 9638dc7c48 Use dpi_scale to update the physical_size preference.
This should bring back high dpi mode on Windows.

Fixes #2581.
2021-01-08 00:30:51 -05:00
Tom Rothamel c23195e4f1 Revert "Remove the setting of dpi_scale."
This reverts commit 5a7e82f881.
2021-01-07 22:40:52 -05:00
Tom Rothamel 853e0fb4f2 lint: Fixes.
- Ignore _confirm_quit being redefined.
- Report Unicode dialogue problems in unicode, not repr.
2021-01-07 21:32:15 -05:00
Tom Rothamel 27f4494ecb Add config.gl_set_attributes for test purposes.
As a way to make #2574 potentially something we can debug.
2021-01-06 19:33:46 -05:00
Tom Rothamel 3138d6985f Merge pull request #2562 from morganwillcock/normalize-path-parser
Normalize game filename for unelide
2021-01-06 09:59:17 -05:00
Tom Rothamel 01d99fb016 Merge pull request #2554 from Moshibit/master
update Spanish translation
2021-01-06 09:59:03 -05:00
Tom Rothamel 3edd99a3d7 Use python2 to display the tk file picker on Mac.
Tkinter is broken on Python 3 on Big Sur, hence it's necessary
to use Python 3 on that platform to display the file picker.

Fixes #2575.
2021-01-06 02:07:26 -05:00
Tom Rothamel 31894be3dc Enable ffmpeg autothreading. 2021-01-06 01:31:30 -05:00
Tom Rothamel ff58a13938 More work on windows movie playback.
- Go back to using SDL_calloc on Windows, as it can be freed properly.
- Go back to 16 byte alignment, now that we patch ffmpeg to handle
  alignment properly.
2021-01-05 23:06:37 -05:00
Tom Rothamel ab07dc9215 Fix typo. 2021-01-05 22:33:14 -05:00
Andy_kl b1b2d7a3be Fix selection of renderers to better include gl2. 2021-01-05 17:08:20 +02:00
Tom Rothamel 00543bcb4c Prefer opening a help file to a help screen, if Help has one give.
This fixes a use case where Help("whatever.html") was used to
launch arbitrary html files.
2021-01-05 09:30:53 -05:00
Tom Rothamel 3b5a9eec12 Fix selection of renderers to better include gl2.
Fixes a regression introduced by 63769aa8fd.
2021-01-05 09:30:53 -05:00
Andy_kl a899a7dead Added log message about renderer trying to init 2021-01-05 07:33:00 +02:00
Tom Rothamel 4e3d951d26 Avoid uncondtionally resetting say_attributes and temporary_attributes.
The main place we want to reset them is when showing an empty_window,
and so we move the reset there.

This addresses the first test case at https://lemmasoft.renai.us/forums/viewtopic.php?p=537851#p537851 .
2021-01-04 23:01:06 -05:00
Tom Rothamel a2dd40035d live2d: Add a default_fade parameter.
This lets a creator change the amount of time Live2D spends fading,
per the discussion at #2552.

This also changes the motion semantics to be inclusive of the
segment end time, which means the last segment of the motion will
continue forever if not faded out.
2021-01-03 21:00:17 -05:00
Tom Rothamel 4367140ec9 Coerce archive members to unicode before processing them.
Fixes #2567.
2021-01-03 19:59:06 -05:00
Tom Rothamel 1bdecc1c3a Make the search for a multipersistent file always occur as bytes.
This is expected to address #2548.
2021-01-03 19:42:49 -05:00
Tom Rothamel 5a7e82f881 Remove the setting of dpi_scale.
This is no longer needed, now that SDL2 supports dpi scaling the
same way it does the highdpi support on other platforms.

Fixes #2547.
2021-01-03 19:36:03 -05:00
Tom Rothamel 8689050f3c Fix compat. 2021-01-03 15:29:03 -05:00
Tom Rothamel adc0b5ac62 Fix build on mac. 2021-01-03 14:57:41 -05:00
Tom Rothamel d6228c994a Pass timeevent through modal screens.
This means that a timeout (like a pause) keeps running even if a
modal screen is on top of it.
2021-01-03 13:12:27 -05:00
Tom Rothamel 7225980edf Force a 32-byte alignment for each row of pixels in a movie.
This works around the issue fixed by ffmpeg/ffmpeg@ba3e771a42
on sse3 systems, and prepares Ren'Py for other platforms that might want 32-byte alignment.

This may also help crashes (which have never been reported) with movies that have a row
length that is not a multiple of 4 pixels.
2021-01-03 12:54:47 -05:00
Morgan Willcock 3bcacf2747 Normalize game filename for unelide
Fixes paths on Windows being returned with mixed separators.
Resolves relative paths in filename before joining to base directory.
2021-01-03 11:52:12 +00:00
Tom Rothamel 216e5ed950 Base the py3 compiler flags off of new_python_flags, not old_python_flags.
This does a better job of giving python3 semantics.
2021-01-02 17:25:45 -05:00
Tom Rothamel 50d7486606 Bump the minimum macos version to 10.10+.
This seems to be the minimum SDL2 will compile with, so that's
a good target.
2021-01-02 16:28:58 -05:00
Tom Rothamel 63769aa8fd Avoid using renderers that aren't allowed.
This fixes a performance warning when going from the GL renderer
to a GL2 game.
2021-01-02 00:58:18 -05:00
Tom Rothamel ca34e092db Use a more complicated quote_escape mechanism.
This is actually pretty rarely used, basically just for things
like:

   label foo(a=1
             + 2):
       ...

Where an expression is inside parenthesis that exist in Python but
not Ren'Py. This inserts \ before each newline, but with the change
that it doesn't do it when inside a string, where newlines can
be meaningful.

Fixes #2549.
2021-01-02 00:23:23 -05:00
Andy_kl 3cb6d38d54 live2d: Fix attributes coercion
Fix #2553
2021-01-02 03:36:45 +02:00
Tom Rothamel 9d076ae91b Fix compatibility. 2021-01-01 17:27:54 -05:00
Moshibit 734751143f update Spanish translation 2021-01-01 14:41:17 -06:00
Moshibit 5c1c394dce update Spanish translation 2021-01-01 14:40:07 -06:00
Moshibit a3792955f3 Merge pull request #1 from renpy/master
Update from renpy master
2021-01-01 14:37:20 -06:00
Tom Rothamel 830f761eee Change the pause statement to use renpy.pause, and not with Pause().
This would remove an area of repeated confusion, where a click
dismisses multiple pauses.
2021-01-01 00:38:08 -05:00
Tom Rothamel 2692392d8a Remove editra from the itch upload script. 2021-01-01 00:31:54 -05:00
Tom Rothamel 3b96cfa419 Bump version. 2021-01-01 00:01:18 -05:00
Tom Rothamel 3106ea66cb Adjust existing translations for d86b008b3d. 2020-12-30 22:46:13 -05:00
Andy_kl 5b42e5c448 Revert dot changed by mistake 2020-12-31 05:40:29 +02:00
Tom Rothamel d86b008b3d Fix broken translation. 2020-12-30 22:39:22 -05:00
Andy_kl 2dba268d78 Update Russian translation 2020-12-31 05:34:42 +02:00
Tom Rothamel a7788207d9 Merge pull request #2538 from Gouvernathor/patch-1
Doc minor fixes
2020-12-30 21:55:24 -05:00
Tom Rothamel 72f5652db0 Merge 'Delete duplicate Chinese'. 2020-12-30 21:53:41 -05:00
Tom Rothamel 884638f90a Fix documentation. 2020-12-29 21:10:40 -05:00
Tom Rothamel ddda008007 Fix line endings, hide cursor. 2020-12-29 20:19:44 -05:00
Tom Rothamel f9be6d79b5 Fix typo. 2020-12-29 20:10:52 -05:00
Andy_kl d8d48fa2e0 Allow expensive_predict_callbacks return True to be called again
This allows to use objects that iterate some game variable and return True
per value instead of appending expensive_predict_callbacks in runtime.
2020-12-30 03:02:59 +02:00
Tom Rothamel 7ef2fcdc52 Expand the bounds around images with alpha.
This helps with mipmap construction, as it means that a 1px line on
the edge can blend into transparency as well as other colors.

Fixes #2541, at least when scalling down to > 12.5%.
2020-12-29 19:35:31 -05:00
Tom Rothamel 53d94f1c3e Remove debug print. 2020-12-29 15:09:57 -05:00
Tom Rothamel f1a836a231 Add compatibility file open to the store.
This will determine if the calling script was compiled in python 2
or python 3 mode, and invoke the python 2 or python 3 open function,
as appropriate.

Intended to address #2543.
2020-12-29 01:35:06 -05:00
Tom Rothamel aa9cc4326d Properly premultiply alpha in OpacityMatrix. 2020-12-29 01:24:26 -05:00
Tom Rothamel 0e58052f90 Use multiple passes when finding objects reachable from rollback.
Fixes #2539.

What happened is that the object was changed and then became
unreachable. Since purge_unreachable occured in change order,
the object was purged, and was restored in the new, rather than old
version.
2020-12-28 21:38:41 -05:00
Tom Rothamel 1a90a521e6 Fixes to LayeredImageProxy and SideImage
- LayeredImageProxy now filters out child attributes.
- get_side_image now respects renpy.config.side_image_only_not_showing.
2020-12-27 22:29:56 -05:00
Tom Rothamel ae3fa76055 Ensure use expression works with copy_on_change/transitions.
Fixes #2537.
2020-12-27 21:33:40 -05:00
Gouvernathor 26cc6c2e47 typos 2020-12-28 00:11:21 +01:00
zedraxlo 8f0e9bb10c Delete duplicate Chinese 2020-12-28 02:31:09 +08:00
Tom Rothamel ce07a871e4 Update pig latin translation. 2020-12-27 13:17:18 -05:00
Gouvernathor 0e786e453e typo 2020-12-27 18:38:58 +01:00
Gouvernathor 6805cdaf41 typo 2020-12-27 17:26:45 +01:00
Gouvernathor 6c9d3ba556 :doc: The exceptions are not listed below anymore
and a filename without its extention still works to define an image
2020-12-27 17:21:57 +01:00
Tom Rothamel c632170508 Fix translations changed by 7e0c101f55. 2020-12-27 08:21:31 -05:00
Tom Rothamel 69c338621b doc: Update changelog and credits. 2020-12-26 22:20:53 -05:00
Tom Rothamel 8e64226db1 Merge pull request #2480 from pauljmartinez/update-show-documentation
Update show statement documentation
2020-12-26 22:12:33 -05:00
Tom Rothamel 7e0c101f55 Fix the look of the gamepad configurator. 2020-12-26 22:09:29 -05:00
Tom Rothamel 1fb96e1ed4 Distinguish repeating and non-repeating gamepad bindings. 2020-12-26 22:01:44 -05:00
Tom Rothamel 309a3f5082 Fix dangling link. 2020-12-26 21:44:44 -05:00
Tom Rothamel f0848c03da Avoid converting multipersistent filename to unicode.
Fixes #2536.
2020-12-26 19:24:23 -05:00
Tom Rothamel e4c4b66d1d Project the drawing used byt is_pixel_opaque.
This fixes a problem that only occured on AMD GPUs, where buttons
with a focus_mask would not be focused, probably because the
picel was being drawn in the wrong place, at least when anisotropy
is taken into account.
2020-12-26 18:04:15 -05:00
Tom Rothamel b7ddbbf8e1 gl2: Allow model debugging to be enabled on a per-context basis. 2020-12-26 17:48:59 -05:00
Andy_kl b99c34a5ff Make fix for 34d53e74 more correct 2020-12-25 23:06:14 +02:00
Tom Rothamel 16fdc17781 Check that all image attributes are required or optional before choose_attributes.
This is intended to address #2528, by ensuring every non-chosen
attribute really does exist.
2020-12-25 15:16:39 -05:00
Andy_kl 34d53e7427 Fix RuntimeError in im.Cache.get_current_size 2020-12-25 21:39:09 +02:00
Tom Rothamel 89a661c42f Merge pull request #2530 from lee-yunseok/master
Update Korean strings
2020-12-25 14:05:50 -05:00
Tom Rothamel 4e729baff7 Merge branch 'master' of github.com:renpy/renpy 2020-12-25 14:05:28 -05:00
Tom Rothamel 29a406f167 Allow the queueing of audio before PCM is fully initialized.
Fixes #2522, and maybe #2468.
2020-12-25 13:42:08 -05:00
Andy_kl fed7df84c1 Fix arguments order use for shown.predict_hide 2020-12-25 19:33:06 +02:00
Tom Rothamel ca98d9444e Merge pull request #2531 from morganwillcock/delete-bak
Remove screens.rpy.bak from schinese translation
2020-12-25 11:55:19 -05:00
Morgan Willcock 7e7800174f Remove screens.rpy.bak from schinese translation 2020-12-25 16:22:10 +00:00
lee-yunseok 85c4973d31 Update Korean strings 2020-12-25 21:42:15 +09:00
Tom Rothamel cae93790d9 Remove chinese .rpyc files.
These shouldn't be checked in.
2020-12-25 02:04:41 -05:00
Tom Rothamel 1a9a651a4a Update android strings. 2020-12-25 02:04:41 -05:00
Tom Rothamel 535977b492 Merge pull request #2524 from Gouvernathor/patch-1
Fix for choose_image ambiguity
2020-12-24 19:43:13 -05:00
Tom Rothamel 6caeefb5a2 Merge pull request #2527 from morganwillcock/normalize_path
Normalize project filename for unelide
2020-12-24 18:51:48 -05:00
Morgan Willcock 9389e97cf8 Normalize project filename for unelide
Fixes paths on Windows being returned with mixed separators.
Resolves relative paths in filename before joining to base directory.
2020-12-24 23:05:36 +00:00
Tom Rothamel e99777074f Merge pull request #2499 from zedraxlo/patch-1
Update Chinese
2020-12-24 16:18:34 -05:00
kyouryuukunn cd03ed7a52 Merge pull request #2525 from kyouryuukunn/Japanese_update_201225
Japanese_update
2020-12-25 01:24:41 +09:00
kyouryuukunn 7e5599136b Japanese_update 2020-12-25 00:59:54 +09:00
Gouvernathor 43d4361619 choose_image : avoid exception raising...
...using a tally of the number of optional attributes, in the case where more than one match was found.
fixes #2520
2020-12-24 13:23:20 +01:00
Tom Rothamel 2f670de1e3 doc: Fix the sidebar size. 2020-12-23 19:46:15 -05:00
Tom Rothamel eb6b4a6749 doc: Fix building. 2020-12-23 19:28:43 -05:00
Tom Rothamel d437288014 Merge branch 'master' of github.com:renpy/renpy 2020-12-22 21:38:03 -05:00
Tom Rothamel a054270c03 Merge pull request #2512 from Gouvernathor/docfix-2
Random fixes in the doc - 2
2020-12-22 21:36:38 -05:00
Gouvernathor 2628afcb4c Change attribute image into layeredimage 2020-12-22 09:24:23 +01:00
Tom Rothamel 331c9b99a4 gl2: Use round when computing the rtt size.
This is because it's possible for very small rounding errors to
cause a  computed size to be infitesimally smaller than it should
be, and hence the texture to be a full pixels smaller.
2020-12-21 21:45:46 -05:00
Asriel Senna 58a3a39eb0 fix typo 2020-12-21 09:17:09 +01:00
Asriel Senna 49f7509b2c Add a foreach example with a renpy-while loop 2020-12-21 09:16:48 +01:00
Asriel Senna 67f57d9376 Remove reference to unused web service 2020-12-21 09:15:50 +01:00
Tom Rothamel 1a52941fc0 Merge pull request #2497 from lee-yunseok/master
Update Korean translations
2020-12-21 02:03:55 -05:00
Tom Rothamel 2c3251298e controller: Support repeating. 2020-12-20 23:24:33 -05:00
Tom Rothamel 06004f1b57 doc: Documentation.
- Move Image Manipulators out of the display documentation.
- Show config.mouse as an incompatible changes.
2020-12-20 22:50:14 -05:00
Tom Rothamel b59764b8ad Make it easier to use default_mouse to pick a custom mouse cursor. 2020-12-19 14:36:09 -05:00
Tom Rothamel b1b2f90dd9 Prevent Ren'Py from crashing if config.mouse is set. 2020-12-19 14:36:09 -05:00
kyouryuukunn 5236aac816 Merge pull request #2508 from kyouryuukunn/Japanese_Update_201219
Update Japanese translations
2020-12-19 16:25:06 +09:00
kyouryuukunn 58b403d51c Update Japanese translations 2020-12-19 16:21:51 +09:00
Tom Rothamel 888dcd736e Consider sizes below 256x256 to be spurious.
This is here to prevent bugs where a minimized or otherwise not
present window cause a divide by zero, like #2506.
2020-12-18 22:49:30 -05:00
Beuc b85a35ba50 webserver: fix empty response on root URL 2020-12-18 15:39:09 +01:00
Andykl 64f0f78635 Merge pull request #2505 from Moshibit/master
Fix '\n\n'
2020-12-18 15:59:19 +02:00
Moshibit f7949aabc0 fixes 2020-12-18 07:04:29 -06:00
Moshibit ede3343d6c Fix '\n\n' 2020-12-18 06:52:13 -06:00
Tom Rothamel 3fc95821b4 steam: Disable the Steam overlay in the launcher. 2020-12-17 23:41:03 -05:00
Tom Rothamel 5bf649cb1f doc: libusb as a dependency. 2020-12-17 23:29:09 -05:00
Andy_kl dad9c24ee9 Remove duplicate of mine in credits. 2020-12-18 00:34:38 +02:00
Andy_kl f2470edaf4 Make the first attribute (real image tag) for side images required instead of optional
Fix #2500
2020-12-18 00:25:18 +02:00
Tom Rothamel af004af20a doc: Remove duplicate credit. 2020-12-17 17:13:08 -05:00
zedraxlo 4d254dcd83 Change language identifier 2020-12-17 23:51:59 +08:00
zedraxlo 3fe30c393b Change language identifier 2020-12-17 23:51:06 +08:00
zedraxlo 58b9d8cb5a Change "traditional_chinese" to "tchinese" 2020-12-17 23:34:11 +08:00
zedraxlo fe1b3c8082 Delete obsolete.rpy 2020-12-17 23:31:26 +08:00
zedraxlo 9d44683044 Update translations 2020-12-17 23:29:45 +08:00
zedraxlo 724f9f6f64 Change "simplified_chinese" to "schinese" 2020-12-17 22:38:34 +08:00
zedraxlo 12e33e9d5b Keeps the language list displayed after changing the language identifier. 2020-12-17 22:31:48 +08:00
Tom Rothamel 7bad158476 doc: Sponsors and credits. 2020-12-16 20:01:00 -05:00
Tom Rothamel 2c7b8bb14f Update and fix translations. 2020-12-16 19:56:02 -05:00
Tom Rothamel cab71b9d13 doc: Steam support. 2020-12-16 19:54:37 -05:00
Andy_kl ece87ec4a2 Fix NameError in changing projects directory 2020-12-16 18:07:02 +02:00
lee-yunseok 7776e08119 clear 2020-12-17 00:26:12 +09:00
lee-yunseok 5a453e0665 Update Korean translations 2020-12-17 00:17:49 +09:00
Tom Rothamel 0c305a43e7 Merge pull request #2485 from Andykl/quit-callbacks
Implement config.quit_callbacks
2020-12-16 09:33:05 -05:00
Tom Rothamel 0df7edbe30 Merge branch 'master' into quit-callbacks 2020-12-16 09:32:54 -05:00
Tom Rothamel 61587543c0 Merge pull request #2496 from Moshibit/master
Update Spanish translation
2020-12-16 09:31:38 -05:00
Andykl a0731ec9b6 Merge pull request #2490 from Andykl/docs
Doc fixes
2020-12-16 08:50:44 +02:00
Andy_kl 32c8fc4fbd Document attribute_filter in rst 2020-12-16 08:47:15 +02:00
Andy_kl f47010ac69 Merge remote-tracking branch 'upstream/master' into docs 2020-12-16 08:45:41 +02:00
Andy_kl cea1271f89 Add aliases to expressions to all_expressions 2020-12-16 08:30:09 +02:00
Andy_kl 677147d9f8 Fix misspelled attribute name 2020-12-16 08:22:20 +02:00
Tom Rothamel 744cd2a7b9 live2d: Add attribute_filter to allow conflicting attributes to be expressed. 2020-12-16 00:53:55 -05:00
Tom Rothamel 140c9e97d9 live2d: Add the attribute_function parameter.
This allows the attributes to be filtered and replace, as with
layeredimage.
2020-12-15 22:54:14 -05:00
Andy_kl 927e1fd7ee Update Russian translation 2020-12-16 03:49:27 +02:00
Moshibit de7304b90d Update Spanish translation 2020-12-15 10:24:21 -06:00
Moshibit 139fe130f1 Update Spanish translation 2020-12-15 10:20:41 -06:00
Moshibit b006c1d259 Merge pull request #2 from renpy/master
Update from renpy Master
2020-12-15 10:18:19 -06:00
Tom Rothamel e4ffd6f74f doc: The licensing page moved. 2020-12-15 00:02:54 -05:00
Tom Rothamel 42dacb4c22 steam: Add config.steam_appid.
This writes steam_appid.txt before initializing Steam, meaning it's
no longer necessary to do that by hand when changing games.
2020-12-14 22:15:08 -05:00
Tom Rothamel 4f0a39ee0b steam: Convert steam support to DLC. 2020-12-14 20:55:28 -05:00
Tom Rothamel de2e51bbb9 Distribute the steam files separately. 2020-12-14 01:31:14 -05:00
Tom Rothamel f973a4f6f0 steam: Add some new functions.
* get_app_build_id (Steam build id.)
* get_game_badge_level (Badge level.)
* get_subscribed_items (Get list of UGC.)
* get_subscribed_item_path (Get path to UGC.)
2020-12-13 18:25:01 -05:00
Tom Rothamel cb68be04ec live2d: A mask's alpha shouldn't apply to layers the mask is applied to.
Fixes #2492.
2020-12-11 22:52:37 -05:00
Tom Rothamel b116aad133 doc: Update changelog. 2020-12-11 22:49:58 -05:00
Tom Rothamel fe8044cae6 Raise the minimum supported version to Windows Vista. 2020-12-10 23:09:36 -05:00
Tom Rothamel 040ec21294 live2d: Support sustaining motions.
This takes place automatically. If the list of motions isn't changed,
we enable sustain mode, which does not restart the motions.
2020-12-09 01:07:46 -05:00
Tom Rothamel fcf379496b Revert "Allow config.exception_handler to be False."
Doesn't seem to work with a debugger, so back it out.
2020-12-08 19:08:48 -05:00
Tom Rothamel 5e997138c5 Allow config.exception_handler to be False.
This allows exceptions to be handled by a debugger or other tool.
2020-12-08 17:54:11 -05:00
Tom Rothamel cfb2ef1fd5 live2d: Support fading expressions. 2020-12-07 22:41:48 -05:00
Gouvernathor c8fdec4ee6 Update translation.rst 2020-12-07 22:33:21 +01:00
Andy_kl c3df28ac6c Doc fixes 2020-12-07 05:04:52 +02:00
Tom Rothamel 98243a5110 Make the updater write \r\n. 2020-12-05 19:00:36 -05:00
Tom Rothamel 5771e1f322 live2d: Fix drawing multi masks. 2020-12-05 18:24:20 -05:00
Tom Rothamel 6a4d13c674 live2d: WIP create multimask textures. 2020-12-04 23:00:02 -05:00
Tom Rothamel 3abf249824 live2d: Add mask shaders in a way that fixes alpha shaders.
Per point 2 of #2486.
2020-12-03 23:08:06 -05:00
Tom Rothamel 6d45437cc9 Clear the line cache on startup.
This ensures that error messages are always accurate.
2020-12-03 02:13:14 -05:00
Andy_kl fdac6e10e2 Implement config.quit_callbacks 2020-12-03 02:40:22 +02:00
Andy_kl 49ddd672b3 Make threading function names consistent to snake_case 2020-12-03 01:43:04 +02:00
Andy_kl ab5698d57f Fix warp
https://lemmasoft.renai.us/forums/viewtopic.php?p=536868#p536868
2020-12-02 18:40:42 +02:00
Tom Rothamel f40dce8367 Use a different statement name for characters with a false condition.
Fixes #2483.
2020-12-01 01:37:11 -05:00
Tom Rothamel 44646f27bd Fix regression in window auto. 2020-12-01 01:29:31 -05:00
Tom Rothamel 32ede9f928 Disable config.hw_video by default.
It probably isn't enough of a performance improvement to be worth
the pain of dealing with it.
2020-11-30 22:27:45 -05:00
Andy_kl eb54143fc9 Blacklist added WeakSet to backup 2020-11-29 21:30:15 +02:00
Andy_kl 33ac3e05a7 Document config.profile_init 2020-11-29 21:19:05 +02:00
Andykl 17c55b6a6d Update docs about MultiPersistent limitations on mobile 2020-11-29 20:55:41 +02:00
Andy_kl 54d7fd2c6f Add MultiPersistent save_on_quit feature 2020-11-29 20:20:54 +02:00
Tom Rothamel 4dc613990e Fix use of set operations on a list:
https://lemmasoft.renai.us/forums/viewtopic.php?p=536757#p536757
2020-11-29 12:10:05 -05:00
Andy_kl a302a14aa8 Report MultiPersistent unpickle errors 2020-11-28 12:34:44 +02:00
Tom Rothamel b90ead1dba Store the projects directory in multipersistent.
As a hedge against it being lost if Ren'Py upgrades.
2020-11-27 18:24:22 -05:00
kyouryuukunn 0a68c05fdc Merge pull request #2482 from kyouryuukunn/Japanese_201115
Japanese 201115
2020-11-27 15:11:14 +09:00
kyouryuukunn 2cd7054645 fix conflict 2020-11-27 15:06:57 +09:00
Paul J. Martinez f3b0dbba3b Update show statement documentation 2020-11-26 12:12:30 -08:00
Tom Rothamel bacaf5629a Fix fsencoding for the json dump. 2020-11-26 02:24:00 -05:00
Tom Rothamel db991e2400 Automatic cleanup of translations. 2020-11-25 22:10:45 -05:00
Tom Rothamel 0fad59626b doc: Update changelog. 2020-11-25 22:05:02 -05:00
Tom Rothamel e080cd3eab Merge pull request #2471 from Neoteus/master
Translate tutorial game into simplified Chinese
2020-11-25 21:55:04 -05:00
Tom Rothamel fcf85a59b7 Change _choose_attributes to take lists of attributes.
This preserves the order of attributes that the creator gave, which
is important for something like live2d, where this order matters.

Fixes #2477.
2020-11-25 21:47:04 -05:00
Tom Rothamel f25ab898c6 doc: Fix typo. 2020-11-25 21:47:04 -05:00
Andy_kl 433721e0c9 Fix interface of NullMotion 2020-11-25 10:44:09 +02:00
Tom Rothamel 4a1a3e13ba gl2: Ensure that a polygon's winding is correct before it's used.
Ren'Py requires that polygons used for clipping meshes or other
polygons all have the same winding order. (Counterclockwise,
in the usual Ren'Py coordinate system.) Certain matrix
multiplications can change winding order, and hence prevent
intersection from working.

This adds a pass that checks and fixes winding orders before
an intersection can occur.

Fixes #2472.
2020-11-25 02:13:15 -05:00
Tom Rothamel ab3ac5c308 Add the optimize_bounds argument to image.
This provides a way to avoid optimizing image bounds when a
transparent image is used as part of a texture.
2020-11-24 23:42:18 -05:00
Andykl 73190423cd Merge pull request #2476 from RenpyRemix/patch-2
Correct Live2D aliases example
2020-11-24 21:53:28 +02:00
Remix 613ea8d865 Correct Live2D aliases example
Parameter name was slightly wrong
2020-11-24 19:26:14 +00:00
Tom Rothamel 9f74bf00a0 Give appropriate styles to textbutton and mousearea.
Fixes #2475.
2020-11-23 22:11:41 -05:00
Tom Rothamel 157921a738 doc: Fix confusing language. 2020-11-23 20:17:13 -05:00
Tom Rothamel 2fe861ddde Remove a debug print. 2020-11-23 20:16:47 -05:00
Tom Rothamel 77c96aec88 compat: Add the python_strict codec error handler.
This is the strict handler built into Python, and it's used for
finding errors in Ren'Py script files. (This works around the
patch to Python 2.7 that makes surrogateescape the de-facto
default.)
2020-11-22 23:03:29 -05:00
Tom Rothamel dfd43a5232 Avoid using replace error handling when surrogateescape will work. 2020-11-22 21:06:01 -05:00
Andy_kl d0dba4d2a7 Fix doc typo 2020-11-22 12:40:43 +02:00
Andy_kl b448d7d373 Fix regression of a9d2510f 2020-11-22 05:54:44 +02:00
Tom Rothamel 32655acbf4 Allow Ren'Py to start with more path encoding problems. 2020-11-21 21:03:40 -05:00
Tom Rothamel afcb5c3bc3 Update hardware accelerated video playback. 2020-11-20 21:45:58 -05:00
Tom Rothamel c2f1d7af1d doc: Fix a bad copy in RemoveFromSet. 2020-11-20 20:57:06 -05:00
Tom Rothamel af02a36b80 doc: Fix minor issues. 2020-11-19 00:35:51 -05:00
Tom Rothamel 2428c116f6 transform: Create meshes in their own render.
This prevents the creation of a mesh with an offset, which is easy
to do with rotate. This might be something I want to revisit for
performance reasons, but this is required to fix:

   https://lemmasoft.renai.us/forums/viewtopic.php?p=535958#p535958
2020-11-18 23:44:12 -05:00
Neoteus 8f4c65ad91 master 2020-11-19 10:32:27 +08:00
Tom Rothamel ddfac9f43d Terminate the TTS process when quitting Ren'Py.
Fixes #2470.
2020-11-18 17:37:44 -05:00
Andy_kl d4e9c54eb8 Newer mark FileDelete as selected
Fixes #2120
2020-11-18 12:07:34 +02:00
Tom Rothamel d65cccc804 Add a temporary custom mouse cursor.
This is to get testing feedback from users of 7.4 prereleases.
2020-11-18 02:45:21 -05:00
Tom Rothamel 1d9109289d Propagate Render.over to subsurfaces.
Fixes #2451.
2020-11-18 00:40:31 -05:00
Tom Rothamel a62c1a57db Merge pull request #2462 from Gouvernathor/fitWithNoSize
Enable the fit mechanism whenever the fit property is set
2020-11-17 22:46:07 -05:00
Andy_kl 090ca5f8dc Add preference to use system cursor forcefully. 2020-11-17 03:56:58 +02:00
Tom Rothamel ac0dd6e361 Rewrite mouses with a new version based on SDL_CreateColorCursor.
This should be hardware accelerated, and simplifies a lot of
things.
2020-11-15 22:45:28 -05:00
kyouryuukunn 8e267b86bb Japanese Update 201115 2020-11-16 00:43:41 +09:00
Tom Rothamel a7a0df9139 layeredimage: Fix last commit. 2020-11-14 21:08:30 -05:00
Tom Rothamel a9d2510ff3 layeredimage: Only create the transform if it's needed. 2020-11-13 23:00:49 -05:00
Tom Rothamel 73217df243 Merge pull request #2460 from Gouvernathor/layeredTPropFix
fix layeredimages to take any transform property
2020-11-13 22:51:10 -05:00
Tom Rothamel 9d2ce44082 Use the correct layer in renpy.predict_show. 2020-11-13 02:14:26 -05:00
Tom Rothamel 1ad6149e28 Predict temporary attributes. 2020-11-12 23:24:01 -05:00
Tom Rothamel 2c1c1e7a45 Predict character attributes with renpy.exports.predict_show.
This predicts the displayables, not just the attributes as
images.predict_show does.
2020-11-12 22:35:49 -05:00
Tom Rothamel 36a17a7075 Add renpy.set_tag_attributes.
This is intended to be able to set the attributes associated with
a tag for side image purposes.
2020-11-11 23:17:19 -05:00
Tom Rothamel 6c00ea8dc2 sl2: Compile properties with py2 or py3 flags, as appropriate.
This fixes an error that was caused by:

   screen test():
       text "Test" xalign 1/1

   Which is on the left in py2, but on the right in py3.
2020-11-11 00:09:20 -05:00
Tom Rothamel 32b48e4c01 Merge pull request #2461 from Moshibit/master
Update Spanish translation
2020-11-10 22:41:09 -05:00
Gouvernathor 8612367069 Enable the Fit mechanism when fit is set
if `fit` is set but not `xsize` nor `ysize`, execute the fit algorithm but with the available size instead
2020-11-11 04:00:29 +01:00
Moshibit 9d4556ad2e Update launcher.rpy 2020-11-10 06:14:07 -06:00
Moshibit abca57a368 Update spanish translation 2020-11-10 06:07:34 -06:00
Moshibit bfc1d11b5d Merge pull request #1 from renpy/master
update from renpy master
2020-11-10 06:03:18 -06:00
Tom Rothamel c224293073 live2d: Add seamless looping of live2d motions.
This allows the creator to chose if a motion is faded out between
loops, or continues without fadeouts.
2020-11-09 21:33:03 -05:00
Asriel Senna 271f0274e8 fix layeredimages to take any transform property 2020-11-09 23:36:01 +01:00
Tom Rothamel 66be396d16 live2d: Add platform support disclaimers. 2020-11-09 00:30:13 -05:00
Tom Rothamel 89fa40d2ef live2d: Install android libraries. 2020-11-08 23:39:04 -05:00
Tom Rothamel 2d9b1971f9 gl2: Fix the interaction of config.gl2 and error handling.
* Once a rendererer is selected, keep using it even if Ren'Py is restarted.
* Store config.gl2 in persistent._gl2, and restore it if an error happens.

This should work well except for an autreload where config.gl2 is changed,
which ideally shouldn't happen.

Fixes #2457.
2020-11-08 15:02:21 -05:00
Tom Rothamel 0046d7059e Add ADVCharacter.has_character_arguments.
This can be used to determine if ADVCharacter.__call__ will create
a second Character to process the call.

Fixes #2454.
2020-11-07 23:20:30 -05:00
Tom Rothamel 2acdcfec77 compat: Replace the strict encoding with surrogateescape.
This is designed to fix a number of problems caused when running
on a filesystem in which a path is not representable in utf-8.
There are functions, like os.getcwdu that will attempt to decode
these paths, but fail. This ensures that paths can always round-trip
to and from unicode, which should help things work.
2020-11-07 11:19:12 -05:00
Tom Rothamel 9d9f151c08 Merge pull request #2439 from uyjulian/exports_free_memory_do_gc
Add garbage collection to renpy.exports.free_memory
2020-11-06 19:57:29 -05:00
Tom Rothamel 542c38a6d9 live2d: Render mask textures at drawable size.
This improves performance by never making a texture many times larger
than will be actually drawn on the screen.

Fixes #2449.
2020-11-05 22:39:55 -05:00
Tom Rothamel 1ace0c51db live2d: Only reset the live2d common data after init. 2020-11-04 21:07:10 -05:00
Tom Rothamel f6e71e9800 Merge pull request #2435 from Gouvernathor/imdocadvice
Adding im and im.MatrixColor workarounds in documentation
2020-11-03 19:37:27 -05:00
Gouvernathor 794803a05c Added warning about matrix multiplying orders 2020-11-03 23:53:36 +01:00
Andykl 808e29e1f1 live2d: Make default fadein and fadeout equal 1 second.
This corresponds to the source code of the Cubism SDK for Native.
2020-11-03 22:27:13 +02:00
Tom Rothamel e613ee334a Update the licenses to include requests. 2020-11-02 23:18:12 -05:00
Tom Rothamel cf0ab07936 Update the changelog. 2020-11-02 22:46:34 -05:00
kyouryuukunn b2b605e631 Merge pull request #2447 from kyouryuukunn/Japanese_translation_update_201103
Update Japanese translation
2020-11-03 10:27:10 +09:00
kyouryuukunn bd5beb5d78 Update Japanese translation 2020-11-03 10:24:08 +09:00
Tom Rothamel 6f6fc15e7e gl2: Limit the range of u_time to [0, 86400).
This prevents errors caused by it overflowing the range of a
single precision float.
2020-11-01 23:39:39 -05:00
Tom Rothamel 8f9e072c37 macOS build improvements
* Make CFBundleVersion more readable.
* Add build.mac_info_plist, to provide a more straightforward way
  of customizing Info.plist, which lets the about screen be customized.

Fixes #2443.
2020-11-01 10:43:08 -05:00
Tom Rothamel 67b8ec26fe launcher: Move to using certifi for web certificates. 2020-11-01 09:39:38 -05:00
Tom Rothamel e1b45708d1 Include the script in dialogue.tab.
Fixes #2441.
2020-10-31 23:15:03 -04:00
Andykl cd833707ce Fix attribute typo 2020-11-01 01:37:41 +02:00
Andykl e28442e37b Do not use config window size to calculate max_window_size.
Fix #2108
2020-10-31 22:44:31 +02:00
Andykl f7a09712d2 Fix #2406 also for gl1 2020-10-31 22:01:33 +02:00
Tom Rothamel 21085ab1b1 gl2: Remove debug prints. 2020-10-30 20:48:26 -04:00
Tom Rothamel ec853941c8 Defer gui init until the first frame is ready to be shown.
This makes it possible to run commands like lint
and distribute without needing a gui and sound card.

Fixes #2436.
2020-10-30 20:42:09 -04:00
uyjulian a8dbeae1e4 Add garbage collection to renpy.exports.free_memory 2020-10-30 17:56:20 -05:00
Andykl 4afd2d022b Update Russian translation 2020-10-30 21:12:04 +02:00
Andykl 1de1402452 Show game_menu_screen as transient
Without it on "hide" doesn't work for this screen.
2020-10-30 20:22:28 +02:00
Gouvernathor 9c4a579a3a fixed :ref: into :tpref:
because that's how it works
2020-10-30 13:38:14 +01:00
Andykl 6354f5cf68 Merge pull request #2434 from xavi-mat/master
Typos in Spanish translation
2020-10-30 14:03:33 +02:00
Asriel Senna 76e03b3c36 added workarounds (except for Data and AlphaMask) 2020-10-30 12:29:26 +01:00
xavi-mat b00b3e4cbc Typo
"dilogo" -> "diálogo"
2020-10-30 10:06:43 +01:00
xavi-mat 255883d418 Typo
"dilogo" -> "diálogo"
2020-10-30 10:05:59 +01:00
xavi-mat 211e7387de Typo in Spanish translation
"dilogo" -> "diálogo"
2020-10-30 10:05:14 +01:00
Gouvernathor cf199aa24e Use gl2 functionalities only when activated
Re-enabled the old implementation when config.gl2 is not active
2020-10-30 03:53:52 +01:00
Tom Rothamel a71e42adf6 Merge pull request #2430 from zedraxlo/patch-1
Localization updates for Chinese, Oct 2020
2020-10-29 21:27:29 -04:00
Tom Rothamel eba2135f92 Merge pull request #2431 from zedraxlo/patch-2
Update Translations for The Question
2020-10-29 21:27:09 -04:00
Tom Rothamel f3698fd1c3 Merge pull request #2432 from Gratusfr/patch-1
fix typo +remove double space +fix error in french
2020-10-29 21:26:43 -04:00
Gratusfr a866be7601 fix typo +remove double space +fix error in french 2020-10-29 21:24:50 -04:00
zedraxlo fdfba28528 Update script.rpy 2020-10-29 20:21:43 +08:00
zedraxlo 81a50341a2 Add some missing required characters and remove some useless ones. 2020-10-29 19:27:42 +08:00
zedraxlo 40caecf6b1 Update developer.rpy 2020-10-29 19:25:32 +08:00
zedraxlo d77868b40a Update error.rpy 2020-10-29 19:25:08 +08:00
zedraxlo f15088d64e Update error.rpy 2020-10-29 19:22:46 +08:00
zedraxlo 17613b92f2 Update launcher.rpy 2020-10-29 19:20:35 +08:00
Tom Rothamel 32e1871083 doc: Fixes. 2020-10-28 19:54:41 -04:00
Tom Rothamel b66f2add13 doc: License/Credits/Sponsors. 2020-10-28 19:38:44 -04:00
Tom Rothamel c274389926 dist: Change what is checked in. 2020-10-28 19:27:33 -04:00
Tom Rothamel 3d87900bb9 doc: windows -> Windows. 2020-10-28 19:12:42 -04:00
Tom Rothamel 7e0ec7cc1f doc: Various fixes. 2020-10-28 18:52:57 -04:00
Tom Rothamel a1c9b7d2c0 Document the changes to define. 2020-10-28 18:08:52 -04:00
Gouvernathor 6a3e264055 fixed documentation 2020-10-28 18:14:03 +01:00
Gouvernathor 64e8c8c921 Removed references to im and the old Matrix system
Allowed any (fully opaque) displayable to take the role of the image controlling the transition
2020-10-28 17:11:22 +01:00
Tom Rothamel 251d4a06e9 Update the Chrome OS documentation. 2020-10-27 23:57:44 -04:00
Tom Rothamel db08119e3a emscripten: Avoid sleeping outside of emscripten.sleep.
Sleeping inside Ren'Py or Pygame_SDL2 has been proving to be
problematic. I'm not 100% sure why, though it seems Asyncify is
involved. It may have something to do with the names generated
by cython not being stable, though that's just a guess.

This avoids this problem by preventing Ren'Py from putting
SDL2 into a mode where it can block, and then explicitly
calling emscripten.sleep to emulate the original behavior.
2020-10-26 01:52:33 -04:00
Tom Rothamel 5310ea546a gl2: Avoid trying to create mipmaps for a texture with zero width or height. 2020-10-26 01:52:33 -04:00
Tom Rothamel 90ef8bfe29 Merge pull request #2417 from Andykl/allow_underfull
Allow underfull grids
2020-10-23 20:30:36 -04:00
Tom Rothamel 3e3492108a Fix typo in tkaskdir.
Fixes #2416.
2020-10-22 22:11:15 -04:00
Tom Rothamel 10d1c66ee7 Only offer to let the player select renderers that are likely to work. 2020-10-22 00:58:27 -04:00
Tom Rothamel 7113e04b00 Update the display problems documentation. 2020-10-21 23:36:02 -04:00
Tom Rothamel edb06a3d54 Remove the disclaimer, as it's not needed. 2020-10-21 23:33:51 -04:00
Andykl 19ac9353f2 Allow underfull grid with config variable. 2020-10-21 17:58:44 +02:00
Tom Rothamel c8e45d6ce1 gl2: Disable anisotropic rendering for Pixellate.
This works around a bug that appears to manifest in the angle2
renderer when running on my radeon on Windows. When that bug
happens:

* GL_NEAREST_MIPMAP_* does not work when ANISOTROPY is non-zero.
* Setting the texture anisotropy to zero doesn't work when it has
  been set to non-zero.

Hence, there's a new gl property that, when set, prevents anisotropy
from being added to newly-created textures.
2020-10-21 01:40:54 -04:00
Tom Rothamel ced93140af ffmedia: Fix a mutex issue. 2020-10-20 23:59:34 -04:00
Tom Rothamel 5945fd6854 Autobuild sphinx. 2020-10-20 22:34:06 -04:00
Tom Rothamel fcb931bf0e Merge pull request #2414 from Moshibit/master
update spanish translation for launcher
2020-10-19 19:22:08 -04:00
Moshibit 3f34fc06e4 Update launcher.rpy 2020-10-19 16:40:03 -05:00
Moshibit bab03e4633 update spanish translation for launcher 2020-10-19 16:33:11 -05:00
shawna-p b6924da5f8 Pull Request #2411: Allow grids to be underfull 2020-10-18 20:41:20 -04:00
shawna-p 22a4898a43 Add documentation on allow_underfull 2020-10-18 20:41:20 -04:00
shawna-p 2b3892d1c6 Include renpy. before config 2020-10-18 20:28:14 -04:00
shawna-p b40e090a8f Allow underfull grid with config variable. 2020-10-18 20:26:26 -04:00
Tom Rothamel 4b0849723b ffmedia: Wait for threads and deallocate memory in the main thread.
This is per #2400, see the discussion on that thread.
2020-10-18 18:55:39 -04:00
Tom Rothamel 806b081080 Merge pull request #2409 from joshua-stone/gtk-filepicker-support
Add Gtk support for project directory chooser
2020-10-18 16:50:10 -04:00
Tom Rothamel 8090186df5 Merge pull request #2397 from uyjulian/garbage_collection_related_changes
Garbage collection related changes
2020-10-18 16:49:22 -04:00
Joshua Stone 3c43cfdcb4 Revert "Add mention of PyGObject in error dialog for English version of directory chooser."
This reverts commit 5a11ff8c3a.
2020-10-18 16:48:00 -04:00
Tom Rothamel b4a56f9cce Merge pull request #2399 from uyjulian/realloc_check_null
Check return value of realloc
2020-10-18 16:04:36 -04:00
Tom Rothamel 5cd7387128 Merge pull request #2408 from jackmcbarn/patch-2
Make the module-building instructions more portable
2020-10-18 15:54:43 -04:00
Tom Rothamel dc27b2281d Merge pull request #2410 from jsfehler/patch-2
Fix incorrect docstring for Screen class in ast.py
2020-10-18 15:52:31 -04:00
Joshua Fehler 1c5fcd440f Fixup 2020-10-18 15:51:38 -04:00
Joshua Fehler 856663b9d7 Fix incorrect docstring for Screen class in ast.py 2020-10-18 15:38:08 -04:00
Joshua Stone 5a11ff8c3a Add mention of PyGObject in error dialog for English version of directory chooser. 2020-10-17 22:44:08 -04:00
Joshua Stone 9709bec1fb Add Gtk backend to project directory picker
Despite Tkinter being Python's de-facto GUI library, it's often not
installed by default on Linux distributions. PyGObject has very good
support on the other hand, and has the benefit of accessing the native
file picker available on a desktop through Gtk.FileChooserNative. This
commit will have the directory picker attempt to use the Gtk directory
picker first, or else fall back to the tkinter backend.
2020-10-17 22:10:24 -04:00
Tom Rothamel 9620fd9cf6 doc: Screen caveats.
Per #2404.
2020-10-17 21:58:15 -04:00
Tom Rothamel e98d7cb0db doc: Cautions about layeredimage. 2020-10-17 21:53:08 -04:00
jackmcbarn fdf92229ea Make the module-building instructions more portable
Some systems don't have libjpeg-turbo8-dev, and need libjpeg62-turbo-dev instead. Use the libjpeg-dev metapackage like https://github.com/renpy/pygame_sdl2/blob/master/README.rst does, which seems to work everywhere. Also, use `$(uname -m)` instead of hardcoding `x86_64` so the same instructions work on ARM systems too.
2020-10-17 16:30:06 -04:00
Tom Rothamel be542024a0 Merge pull request #2407 from Mason-Chou/master
added linking to the nighly build renpy.sh in after_checkout.sh
2020-10-16 18:00:59 -04:00
Mason Chou 16d14f7daa added linking to the nighly build renpy.sh 2020-10-16 10:51:30 -07:00
Tom Rothamel 72b13fdf47 Fix crash when physical size not set.
Fixes #2406.
2020-10-15 17:44:26 -04:00
Tom Rothamel c8fc9f31e6 gl2: Ensure textures are at least 1x1 virtual pixels.
Fixes a divide by zero.
2020-10-14 22:01:54 -04:00
Tom Rothamel cf5c7e2244 doc: Fixes for save/load. 2020-10-14 21:59:40 -04:00
Tom Rothamel c8f1f20b51 gl2: Subsurface meshes using the clipping method.
This fixes #2403, but also opens up some new space for shaders.
Peviously, we'd subsurface the children of a Render with mesh=True,
which would change the coordinates.

Now, the children are not cropped, which allows a shader to look up
value in a second child, if needed.
2020-10-13 23:07:01 -04:00
Tom Rothamel ddf6e0ca82 Remove obsolete code. 2020-10-13 22:07:03 -04:00
Tom Rothamel b5c6685a1e gl2: Ensure loaded textures are at least 1px in size.
Fixes #2392.
2020-10-12 20:25:32 -04:00
Andykl 03b0d8a2e3 Merge pull request #2402 from jsfehler/jsfehler-ach-doc
Fix variable formatting in achievement.rst
2020-10-12 03:05:38 +02:00
Andykl 1ee4b25137 Merge pull request #2401 from jackmcbarn/patch-2
Link to how the default transform can be redefined
2020-10-12 03:04:58 +02:00
Joshua Fehler c28b68f6e8 Fix styling error in achievement.rst 2020-10-11 19:40:50 -04:00
Tom Rothamel 723d6d85ae Fix issues with distributing mac apps. 2020-10-11 18:17:37 -04:00
jackmcbarn c873ea2a74 Link to how the default transform can be redefined 2020-10-11 13:53:58 -04:00
uyjulian 57291f6050 Check return value of realloc 2020-10-11 10:48:00 -05:00
uyjulian 941c1f092c Add more instances of gc.garbage list cleanup after gc.collect call 2020-10-11 09:14:13 -05:00
uyjulian 87eee813d5 Delete items in gc.garbage instead of assigning empty lists 2020-10-11 09:02:36 -05:00
Tom Rothamel ee911b356a doc: Add Python types to GLSL types. 2020-10-11 02:38:28 -04:00
Tom Rothamel 919edc454e doc: Integrate Live2D documentation. 2020-10-11 02:34:51 -04:00
Tom Rothamel 9c51711a61 doc: Matrixcolor/ColorMatrix. 2020-10-11 02:26:31 -04:00
Tom Rothamel bf017fd311 doc: The Matrix type. 2020-10-11 01:45:51 -04:00
Tom Rothamel 34e9d96aeb atl: Do not interpolate Matrix. 2020-10-11 01:44:26 -04:00
Tom Rothamel c7365598cc doc: Run with the dev Ren'Py, to get docstrings. 2020-10-11 01:43:31 -04:00
Tom Rothamel 2a1114f4f2 doc: Fix various problems. 2020-10-11 00:21:17 -04:00
Tom Rothamel 9b3417d26a doc: Model-based rendering. 2020-10-11 00:09:07 -04:00
Tom Rothamel 2a4e6a8cbc gl2: Make u_model_size available. 2020-10-10 23:18:04 -04:00
Tom Rothamel 048cd10234 doc: Improve shader generation. 2020-10-10 23:13:49 -04:00
Tom Rothamel ab4083b9fe Allow ATL to interpolate ATL tuples. 2020-10-10 23:04:41 -04:00
Tom Rothamel 40aeb21fa8 doc: Generate shader source code. 2020-10-10 18:50:40 -04:00
Tom Rothamel 9d1129c6b8 Set sys.executable to allow for a launch. 2020-10-10 00:42:53 -04:00
Tom Rothamel 4dc7f7446c Remove a use of the ssl module. 2020-10-10 00:34:39 -04:00
Tom Rothamel c21ba83c95 Make all downloads use a certificate-based TLS context. 2020-10-09 20:11:46 -04:00
Tom Rothamel aaf9398a77 Update cacert.pem. 2020-10-09 20:09:11 -04:00
Tom Rothamel 3005173aba Merge pull request #2393 from shawna-p/master
Relocate order_reverse property to Box Style Properties
2020-10-09 19:54:02 -04:00
Tom Rothamel df9049ce10 Merge pull request #2395 from cheriesdavidson/patch/#2394
Resolves #2394 Itch.io butler download 403 failure
2020-10-09 19:53:45 -04:00
Andykl 5fbcd47d79 Pass SpriteManager to Particles.visit
This fix #2211
2020-10-10 00:55:06 +02:00
Cherie Davidson d8130812ce Resolves #2394 Itch.io butler download 403 failure by adding User-Agent header 2020-10-09 17:40:50 +11:00
Tom Rothamel 88459be31b Add the color_mask gl property.
This exposes glColorMask to the world.
2020-10-08 23:29:42 -04:00
Tom Rothamel 455a940f96 gl2: Infrastructure for ATL GL properties. 2020-10-08 23:29:42 -04:00
Andykl 1fbcd7e682 Fix exe distributing 2020-10-09 04:36:34 +02:00
shawna-p 046ffcd3ca Relocate order_reverse property to Box Style 2020-10-08 13:16:15 -04:00
Tom Rothamel d2e033e828 Make {who,what}_prefix translatable.
Fixes #2387.
2020-10-06 23:21:12 -04:00
Tom Rothamel 0c9dc1dcf5 Allow translation names to include numbers.
Making it possible to generate rot13 from the launcher.
2020-10-06 23:14:16 -04:00
Tom Rothamel b11ce51bae Fix updater regression introduced by #2375.
In 2.7, TarFile.extractfile doesn't seem to return an object that
can manage contexts.
2020-10-05 23:14:46 -04:00
Tom Rothamel d67eee36ae Write tracebacks into binary files.
This prevents a crash when a str is used instead of unicode.
2020-10-05 23:02:47 -04:00
Tom Rothamel 4677ce1bec Display the renderer name on the _performance screen. 2020-10-04 23:01:27 -04:00
Tom Rothamel 0da3312ae4 gl2: Use glGenerateMipmap to generate mipmaps.
This should be present everywhere Ren'Py runs, and experiments show
it is much faster than RTT on the Intel Iris graphics present in my
Mac Mini.
2020-10-04 22:45:52 -04:00
Andykl c048483216 Added pretty repr for traced expressions 2020-10-05 03:43:25 +02:00
Andykl 51718558e5 Add pretty repr of Matrix into console 2020-10-05 02:01:35 +02:00
Andykl 02387f9986 Fix name typos in TintMatrix 2020-10-05 01:21:06 +02:00
Tom Rothamel 1abf877daf Merge pull request #2384 from kobaltcore/fix-tertiary-volume
Fix a bug that would cause the secondary volume to reset in some cases
2020-10-04 18:38:02 -04:00
CobaltCore 359f38d37e Compute actual volume on-demand instead of introducing a new field 2020-10-05 00:25:13 +02:00
CobaltCore 712b92b98e Fix a bug that would cause the secondary volume to reset in some cases
Fixes #2383
2020-10-04 23:49:12 +02:00
Tom Rothamel 58c02c9a39 Preserve the quoting of text tags in renpy.filter_text_tags.
Fixes #2379.
2020-10-03 18:51:14 -04:00
Andykl 8834730831 Merge pull request #2382 from shawna-p/master
History entries properly identify kind as nvl
2020-10-03 19:39:38 +02:00
shawna-p 3edc87c678 History entries properly identify kind as nvl 2020-10-03 11:02:00 -04:00
Tom Rothamel 5b92e525eb Merge pull request #2381 from Andykl/l2d-fix
Fixes for Live2D
2020-10-03 10:55:22 -04:00
Andykl 4ac1875ebd Fixes for Live2D 2020-10-03 16:08:41 +02:00
Tom Rothamel 682a052ac9 id: Only consider nodes that participate in rollback. 2020-10-03 01:07:36 -04:00
Tom Rothamel fb105e2561 live2d: Properly handle nonexclusive. 2020-10-02 21:56:49 -04:00
Andykl 1b68fec94b Don't lose transform crop when rotate is 0
This fix #2099
2020-10-03 03:52:58 +02:00
Tom Rothamel bdc3c8b67a Merge pull request #2376 from GiovanH/master
Option to specify transition in ShowMenu (for #2194)
2020-10-01 21:42:37 -04:00
Gio c430318af4 Polished documentation 2020-10-01 20:37:38 -05:00
Gio 576489e63a Much less breaking 2020-10-01 20:31:19 -05:00
Gio 7fb42306a5 Be slightly less breaking? 2020-10-01 20:17:11 -05:00
Gio 9a74b6b2dc Implement #2194 2020-10-01 20:03:59 -05:00
Tom Rothamel 9133584b50 Compat for window functions setting auto. 2020-09-30 23:55:34 -04:00
Tom Rothamel b66cf5d623 Provide Python eqivalents of window auto show and window auto hide. 2020-09-30 22:36:23 -04:00
Sylvain Beucler 489b7fb98b doc: fix and expand RenPyWeb changelog 2020-09-30 17:17:00 +02:00
Tom Rothamel d7f520a5c0 Do not create a mesh if blur is 0. 2020-09-29 23:52:01 -04:00
Andykl b1154a29ef Store MultiPersistent data on Android and iOS in savedir 2020-09-29 03:27:14 +02:00
Tom Rothamel 3b12463198 Merge pull request #2375 from uyjulian/renpy_file_context_manager
Refactor to use context manager
2020-09-28 20:38:54 -04:00
Tom Rothamel bf87bd6ed1 Merge pull request #2373 from kobaltcore/doc-presplash-progress-bar
Document presplash progress bar
2020-09-28 20:33:57 -04:00
Tom Rothamel be9485d2ca Merge pull request #2374 from kobaltcore/gitignore-additions
GitIgnore: Ignore several undesirable system files on macOS and Windows
2020-09-28 20:33:23 -04:00
Andykl 152c56841b Add proxy of matrixcolor transform property 2020-09-28 23:12:39 +02:00
Tom Rothamel c1a628d7fa Dismiss transitions even when focus is blocked. 2020-09-28 12:45:46 -04:00
Tom Rothamel d7ae1a96cc Fix the dismiss_unfocused argument to SayBehavior. 2020-09-28 12:45:46 -04:00
uyjulian afd4a7a0e9 Refactor to use context manager 2020-09-27 18:58:10 -05:00
CobaltCore 86610c0ac7 Ignore several undesirable system files on macOS and Windows 2020-09-27 19:57:01 +02:00
CobaltCore 3589b63523 Document presplash progress bar 2020-09-27 19:49:53 +02:00
Andykl aa55ea744e Merge pull request #2372 from uyjulian/archive_extensions_listfind_opt
Optimization for checking archive extension
2020-09-27 18:15:56 +02:00
uyjulian c296c63b45 Optimization for checking archive extension 2020-09-27 04:49:33 -05:00
Andykl 9f412cb811 Do not leak reference to presplash surface
And small code cleanup
2020-09-27 00:35:16 +02:00
Tom Rothamel 1ba50f11da Allow ! to appear multiple times in a substitution.
For compatibility with older Ren'Py versions.
2020-09-26 16:46:24 -04:00
Tom Rothamel 84e95cce98 Remove debug prints. 2020-09-26 16:01:45 -04:00
Andykl ba874f59df Do not report defines with index or operator as duplicates 2020-09-26 12:39:32 +02:00
Tom Rothamel cf6409bf71 Merge pull request #1102 from jsfehler/master
Replace 'open()' with 'with open()'
2020-09-25 23:03:48 -04:00
Tom Rothamel c573d971cd Update loadsave.py
Tweak spacing.
2020-09-25 23:00:48 -04:00
Tom Rothamel 62c1eb80bf Merge branch 'master' into master 2020-09-25 22:59:05 -04:00
Tom Rothamel 24cc05d350 Remove raises found in #2601
Fixes #2601.
2020-09-25 22:47:00 -04:00
Tom Rothamel f8aee1f349 Merge pull request #2095 from Andykl/fix-slfor
Fix the problem when SL for index refers to tuple member
2020-09-25 22:44:12 -04:00
Tom Rothamel 479940302e Merge pull request #2092 from Andykl/fix-rpyc
Print exception which caused on write_rpyc
2020-09-25 22:40:29 -04:00
Tom Rothamel 99b9537321 Merge pull request #2094 from Andykl/recursive-substitution
Recursive substitution
2020-09-25 22:40:12 -04:00
Tom Rothamel 0ee0f5115c Merge pull request #2096 from Andykl/copypaste-encoding
Encode and decode the text during copypaste
2020-09-25 22:39:20 -04:00
Tom Rothamel eac2b9d6a9 Merge pull request #2107 from jsfehler/nvl_typo_fix
Fix typo in nvl_mode.rst
2020-09-25 22:38:13 -04:00
Tom Rothamel ec1cd63711 Merge pull request #2123 from kobaltcore/presplash-progress-bar
Add ability to show progress bar instead of static presplash
2020-09-25 22:37:53 -04:00
Tom Rothamel 5042706e1f Merge pull request #2103 from RenpyRemix/master
Catmull-Rom from ATL knots
2020-09-25 22:35:54 -04:00
Tom Rothamel fce5ccef34 Fix problems with define/default linting in default games. 2020-09-25 22:26:07 -04:00
Tom Rothamel 091b0115e5 Add config.lint_ignore_redefine. 2020-09-25 22:24:47 -04:00
Tom Rothamel 7c14d20914 Fix incorrect use of strip in #2127. 2020-09-25 22:05:45 -04:00
Tom Rothamel c04d188f81 Merge pull request #2127 from jsfehler/lint_redefine
Add linting for redefined define/default statements
2020-09-25 22:00:59 -04:00
Tom Rothamel d15384e091 Merge pull request #2124 from jsfehler/patch-2
Use or operator instead of if statement
2020-09-25 21:56:38 -04:00
Tom Rothamel b93102932a Merge pull request #2115 from GimmiRuski/master
Add splashscreen and presplash documentation
2020-09-25 21:55:00 -04:00
Tom Rothamel bf19eedde5 Merge pull request #2278 from dogtopus/handle-vs
Handle variation sequences (VS1-256 and FVS1-3)
2020-09-25 21:51:15 -04:00
Tom Rothamel f9fd77b70d Merge pull request #2304 from uyjulian/improve_file_handling
Refactor of renpy.loader
2020-09-25 21:47:23 -04:00
Tom Rothamel 2f52e4a62e Merge branch 'master' into improve_file_handling 2020-09-25 21:47:07 -04:00
Tom Rothamel 281104d1a9 Merge pull request #2327 from uyjulian/filename_unicode_normalization
Normalize unicode to NFC
2020-09-25 21:41:59 -04:00
Tom Rothamel 24ed8bb7cf Merge pull request #2360 from Andykl/update-performance-test
Update performance test
2020-09-25 21:38:46 -04:00
Tom Rothamel 73d76fb260 Merge pull request #2362 from kobaltcore/auto-flush-log
Flush log after write
2020-09-25 21:37:52 -04:00
Tom Rothamel e68d95750e Merge pull request #2370 from Andykl/py3-exceptions
Py3 exceptions form
2020-09-24 18:17:47 -04:00
Andykl d88a324e76 Py3 exceptions form 2020-09-24 23:41:40 +02:00
Sylvain Beucler af3495ca84 web: fix silent audio 2020-09-24 22:39:13 +02:00
Tom Rothamel 9e67d43daa Merge pull request #2258 from Daniihh/master
Python3 Readiness
2020-09-24 12:02:37 -04:00
Tom Rothamel a8e2cc0db8 gl2: Include the texture resolution as an optional shader variable. 2020-09-24 00:45:53 -04:00
Tom Rothamel 74d66712db gl2: Raise the size of the fbo to 4096, and make it configurable.
This should be supported on all devices, though it will shrink the
size if it's not.

Fixes #2357.
2020-09-23 23:40:57 -04:00
Tom Rothamel b61f1c6b3e live2d: Support nonexclusive expressions.
These need to be declared, but once they are they may be used
in conjunction with a normal expression. This can be used to
model clothing, pose changes, etc in conjunction with a normal
expression.

Fixes #2358.
2020-09-23 22:01:38 -04:00
Tom Rothamel 08c51b7c6a Make it clear the minimum iOS version is 11.0. 2020-09-23 18:37:35 -04:00
Tom Rothamel 0fa3f62ebf Merge pull request #2368 from Andykl/fix-blur
Fix int-float type in blur shader
2020-09-22 19:00:48 -04:00
Andykl c203dd3c58 Fix int-float type in blur shader 2020-09-22 23:15:32 +02:00
Tom Rothamel 68ed973bc5 gl2: Enable the maximum level of anisotropy the hardware supports.
Fixes #2365.
2020-09-20 21:49:20 -04:00
Tom Rothamel 6d2a550ba2 Merge pull request #2361 from Andykl/improve-dynamic-image
Improve dynamic image
2020-09-20 02:02:03 -04:00
Tom Rothamel b091f1e933 Merge pull request #2363 from Andykl/wrap-mutations
Do not lost `__name__` and `__doc__` of mutated method
2020-09-20 02:00:43 -04:00
Tom Rothamel c663d6a865 gl2: Ensure that the size used for RTT matches the size used for normal rendering. 2020-09-20 01:30:07 -04:00
Andykl 48c8b0bf8a Do not lost __name__ and __doc__ of method mutation 2020-09-19 22:57:56 +02:00
CobaltCore 4567011132 Flush log after write 2020-09-19 22:50:20 +02:00
Tom Rothamel 99cf7ed07e Add the blur transform property. 2020-09-19 16:13:40 -04:00
Tom Rothamel 1e62e1e9d1 atl: Report uniform problems that aren't working. 2020-09-19 03:50:40 -04:00
Tom Rothamel 83eded0697 gl2: Better reporting for bad shader variables. 2020-09-18 23:54:48 -04:00
Tom Rothamel 986e996282 gl2: Avoid modifying the original clipping polygon during clipping.
Fixes #2359.
2020-09-18 03:42:37 -04:00
Andykl 1b59f64a0c Improve dynamic image 2020-09-18 04:54:54 +02:00
Andykl dadc1eb08f Remove config.gl_enable from the documentation 2020-09-18 04:44:16 +02:00
Andykl 4d611b897f Update performance test 2020-09-18 04:42:56 +02:00
Tom Rothamel 7f26540252 Make elide_filename os-agnostic. 2020-09-17 19:38:33 -04:00
Tom Rothamel be5db83bd6 doc: Fixes to changelog and docs.
Based on conversations with Mal.
2020-09-16 22:36:06 -04:00
Tom Rothamel e71957863b gl2: Intersect the new clip polygon with the old clip polygon, if needed.
Fixes #2353.
2020-09-15 22:30:34 -04:00
Tom Rothamel b00a1afd3e Allow Live2D to be duplicated with None. 2020-09-14 22:36:55 -04:00
Tom Rothamel 322657e009 Default transform to "fill" mode all the time.
This restores the behavior that Ren'Py had before #2241 was
merged.
2020-09-14 22:12:47 -04:00
Tom Rothamel e2e35fb937 doc: Update changelog. 2020-09-13 13:00:00 -04:00
Tom Rothamel d97d378619 docs: More changelog. 2020-09-13 00:02:31 -04:00
Tom Rothamel 108d943439 doc: Initial work on changelog. 2020-09-12 18:13:43 -04:00
Tom Rothamel 48a4d4543f Merge pull request #2350 from Andykl/ignore-32
Ignore renpy-32.exe
2020-09-11 21:07:13 -04:00
Tom Rothamel bf2a8b4e8c Merge pull request #2352 from Andykl/hotfix
Hotfix
2020-09-10 19:57:07 -04:00
Andykl c424566868 Hotfix 2020-09-11 01:56:05 +02:00
Tom Rothamel 088da5357b Merge pull request #2210 from Andykl/SL-fixes
Sl fixes
2020-09-10 17:54:06 -04:00
Tom Rothamel b39365ecfc gl2: Use gl2 shading on GLES 3.
This prevents us from having to rewrite shaders for GLES 3,
and keeps them working on webgl 1.
2020-09-09 22:23:40 -04:00
Tom Rothamel dcc10c84cd gl2: Log shader text to log.txt. 2020-09-09 21:32:49 -04:00
Tom Rothamel 062c18d6db gl2: Use GLSL 3.00 ES for gles.
This allows textures to take lod bias.

This also avoids mixing ints and floats, which is an error.
2020-09-09 03:28:29 -04:00
Tom Rothamel f2d67621a2 live2d: Add support for expressions. 2020-09-09 03:13:12 -04:00
Tom Rothamel bc375377eb live2d: Load expression files. 2020-09-08 23:35:24 -04:00
Andykl ed16b42483 Ignore renpy-32.exe 2020-09-09 04:28:26 +02:00
Tom Rothamel 2663b852c0 live2d: Do not apply alpha to hidden masks.
This fixes a problem with the Haru sample model, where the masks
for her eyes were hidden and at 0 alpha, which mean that the masks
were not rendered, and hence couldn't be used.
2020-09-07 22:05:33 -04:00
Tom Rothamel 106e447a5e live2d: Add aliases. 2020-09-06 22:57:02 -04:00
Tom Rothamel 9a83bdf7a2 Remove debugging exception. 2020-09-06 19:57:42 -04:00
Tom Rothamel 00e1546cba Merge pull request #2334 from Andykl/hotkeys-fix
Add K_key keysyms to default Ren'Py keymap
2020-09-06 19:36:30 -04:00
Tom Rothamel dd2e25f8ae Flatten and increase the opacity of the touch keyboard.
Giving mesh True causes a flatten operation, which means that
the outline and top textures of the text become a single layer
before alpha is applied to it. Since alpha is applied once,
the colors are less murky, and we can raise the transparency
without reducing the amount of the background that shows through.
2020-09-06 00:02:24 -04:00
Tom Rothamel e8682a432b sl2: Fix an issue with changing the child of multiple Transforms.
Previously, only the outermost transform would be considered, and
inner transforms would go away. With this change, the child of
the innermost transform is changed, while the outermost transform
is placed in the displayable tree.
2020-09-05 23:48:51 -04:00
Sylvain Beucler e9bbbdb4d0 touch_keyboard: fix typo and alignment 2020-09-05 11:50:22 +02:00
Sylvain Beucler 2fb99f696d touch_keyboard: fix key injection on mobile browsers 2020-09-05 11:49:04 +02:00
Tom Rothamel 2b62b201cb Merge pull request 2336, Add built in simple virtual keyboard. 2020-09-05 03:05:04 -04:00
Tom Rothamel 51bc4c78e7 Make the buttons 10% bigger, and scaling with game size. 2020-09-04 23:39:27 -04:00
Tom Rothamel 2e7fad6c69 Reorgnize the keyboard using 7x7 grids.
This widens the keyboard out some, and will let us use slightly
bigger buttons.

This also adds ., and removes {, }, [, and ], which Ren'Py doesn't
like as part of input.
2020-09-04 23:10:12 -04:00
Tom Rothamel 1d8e2fe640 Rename touchwebkeyboard to TouchKeyboard and touch_keyboard. 2020-09-04 22:20:00 -04:00
Tom Rothamel c15649e7be Rename the _touchwebkeyboard to _touch_keyboard, add config variable to control it. 2020-09-04 21:41:23 -04:00
Tom Rothamel ab8c1bb4b0 Raise the GC threshold to 25,000 objects (from 700) during startup. 2020-09-03 21:14:03 -04:00
Tom Rothamel 7e8c2f2910 Merge pull request #2346 from lee-yunseok/master
Update tutorial Ko-tl
2020-09-03 20:49:11 -04:00
lee-yunseok 560af53741 Update tutorial Ko-tl 2020-09-03 21:54:01 +09:00
Tom Rothamel 3e8a3ee368 Merge pull request #2338 from jsfehler/patch-4
Don't allow toggle skip when skip is disabled
2020-09-03 01:08:43 -04:00
Tom Rothamel 2e13994a1b gl2: Increase the precision of intersectLines.
This fixes #2342, which would cause points on a line to be treaded
as outside it, due to numerical error.
2020-09-02 02:05:02 -04:00
Tom Rothamel c8a2929734 gl2: Avoid creating a Model for renders that have been cropped into nothing. 2020-09-01 22:04:29 -04:00
Tom Rothamel 06696c86dd gl1: Deal with subsurfacing causing an empty Render. 2020-09-01 20:59:28 -04:00
Tom Rothamel fa5eb321db Use binary IO when adding from to calls.
Fixes #2340.
2020-09-01 02:05:45 -04:00
Tom Rothamel eb6c7cdb2e Remove references to Editra in the tutorial.
Fixes #2339.
2020-08-31 21:59:35 -04:00
Tom Rothamel e2edd01d62 Update the piglatin translation. 2020-08-31 21:38:59 -04:00
Tom Rothamel 182bc927e0 Expose renpy.bits.
A way of letting the script determine if this is a 32-bit or 64-bit
platform.
2020-08-30 22:02:32 -04:00
Tom Rothamel 7ce6d55365 Distribute 64-bit windows games. 2020-08-29 17:59:42 -04:00
Joshua Fehler 49a81285fc Don't allow toggle skip when skip is disabled 2020-08-29 10:19:19 -04:00
Sylvain Beucler 2b00838352 web: mobile: add built-in simple virtual keyboard 2020-08-28 20:59:11 +02:00
Tom Rothamel abe41b41a1 Drop support for Editra.
It hasn't been developed sinced 2013, as far as I can tell, and
the website has been down since 2019. Atom has basically replaced
it.

Editra, thank you for being part of Ren'Py.
2020-08-28 00:09:34 -04:00
Tom Rothamel 3b9a025202 Pan was off by 180 degrees, fix that. 2020-08-27 20:54:36 -04:00
Tom Rothamel 2a3fa65b9b atl: Implement xpan/ypan in terms of .subsurface.
This simplifies things and fixes visual glitches.
2020-08-26 22:58:29 -04:00
Tom Rothamel 3af4480c78 Merge pull request #2335 from jsfehler/patch-4
Fix incorrect docs for pushup/down transitions
2020-08-26 18:31:45 -04:00
Joshua Fehler 6e1b190e6b Fix incorrect docs for pushup/down transitions
pushup and pushdown were called pushtop and pushbottom.
2020-08-26 18:25:05 -04:00
Andykl 205feb4eef Add K_key keysyms to default Ren'Py keymap 2020-08-26 23:05:19 +02:00
Tom Rothamel 1c1b2f1301 Merge pull request #2332 from Andykl/parser-fix
Allow use raw strings in simple_expression
2020-08-26 00:11:59 -04:00
Andykl 9a9b6a735a Lexer.name should also respect raw Unicode strings 2020-08-26 04:18:08 +02:00
Tom Rothamel 56da70dfcb Change how xpan and ypan work.
Rather than doing weird things with offset, these now work by using
crop to crop the image to its original size. This should make pans
work better with other ATL properties.

Fixes #2320.
2020-08-25 02:40:11 -04:00
Tom Rothamel 4ed8a9953a Use plaform GL headers on iOS/Android, to get ES3. 2020-08-23 21:36:58 -04:00
Tom Rothamel 7ce0505f8c gl2: Tweak Pixellate bias to match gl. 2020-08-22 22:20:23 -04:00
Andykl 3107c2b051 Allow use raw strings in simple_expression 2020-08-23 02:20:24 +02:00
Tom Rothamel 4ceb0b08c8 Allow the user to resize the launcher window.
Fixes #2295.
2020-08-22 17:38:50 -04:00
Tom Rothamel 2a9f206700 gl2: Add renpy.config.max_mipmap_level. 2020-08-22 01:35:22 -04:00
Tom Rothamel 14598ded7e gl2: Fix regression in the renpy.dissolve shader.
Added u_lod_bias in the wrong place. Whoops.
2020-08-22 01:03:49 -04:00
Tom Rothamel c289be0e58 gl2: Generate mipmaps for loaded textures. 2020-08-22 00:27:13 -04:00
Tom Rothamel 4e7fc55210 gl2: Use GL_UNPACK_ROW_LENGTH for zero-copy image loading.
Now that we've moved to ES 3.0, it's available on all platforms.
2020-08-21 23:33:53 -04:00
Tom Rothamel 21d369d7f6 gl2: Various cleanups and documentation for RTT mipmap generation. 2020-08-21 03:05:10 -04:00
Tom Rothamel f7bbfddf32 gl2: Ask for GLES 3.0. 2020-08-21 01:38:10 -04:00
Tom Rothamel 99d0c277a5 gl2: Target UGUU at GLES 3.0. 2020-08-21 01:36:11 -04:00
Tom Rothamel 9f0b6d2f26 gl2: Checkpoint progress in rendering textures on the GPU. 2020-08-20 23:08:09 -04:00
Tom Rothamel 9f52c462c3 gl2: Fix a typo. 2020-08-19 17:03:30 -04:00
Tom Rothamel a9701b2768 gl2: Fix issues with previous commits.
Turns out testing with the right renderer is important.
2020-08-18 22:25:29 -04:00
Tom Rothamel 50588a37fb gl2: Add Render.add_property.
This is a method that makes it conventient to set a render
property.
2020-08-18 22:00:57 -04:00
Tom Rothamel 9116c0fec8 gl2: Improvements related to properties and LOD.
LOD is now controlled by u_lod_bias.

There is now a dictionary that is passed around through the gl2
renderer, properties. It's intended as the place to store
information that controls the fixed-function portions of
the GL pipeline. Right now, it controls the texture_scaling
mode (used to implement nearest neighbor rendering), and
pixel_perfect rendering, but it can be used for other things
in the future.

The full set of texture_scaling modes are now available.
2020-08-18 21:03:21 -04:00
uyjulian c091edacbb Normalize unicode to NFC 2020-08-18 03:06:07 -05:00
Tom Rothamel 8747c544d7 gl2: Add a LOD adjustment, to prefer scaling down to scaling up. 2020-08-18 02:22:10 -04:00
Tom Rothamel 4f307fd01c gl2: Create and use mipmaps. 2020-08-17 23:48:46 -04:00
Tom Rothamel 4d1f2a3d93 Merge pull request #2285 from Andykl/translate_string-alias
Add alias for `__` in Ren'Py exports as renpy.translate_string
2020-08-17 21:57:52 -04:00
Tom Rothamel a295a499fc Ensure that the argument to log2vis is unicode.
Fixes #2298.
2020-08-16 18:55:43 -04:00
Tom Rothamel 2e17065971 Merge pull request #2317 from lee-yunseok/master
Update translations.
2020-08-16 18:53:18 -04:00
Tom Rothamel 7025438250 Merge pull request #2324 from kapilgain/dev
Fixes #2292: Use utf-8 encoding when writing to lint file output
2020-08-16 18:52:56 -04:00
Kapil Gain 26d8f2609f Fixes #2292: Use utf-8 encoding when writing to lint file output 2020-08-16 18:54:54 +05:30
Tom Rothamel 4d3c1c5f49 Set a hint to not bypass the window compositor.
This prevents Ren'Py games from changing the compositor mode.

This attempts to fix #2303.
2020-08-15 14:01:31 -04:00
Tom Rothamel dbb14cc1a3 ios: Update the launcher to match the r-b version.
The big change is that storyboards are used instead of launch
images, so we no longer generate launch images.
2020-08-13 22:09:22 -04:00
Tom Rothamel 35b5d3f679 Update most modules to use renpy.compat.pickle.
This should generally speed up pickling and unpickling.
2020-08-13 22:06:42 -04:00
Tom Rothamel f30d7587d6 Add the renpy.compat.pickle module.
This pulls in the contents of the "fast" pickle module - pickle
on py3, and cPickle on py2.
2020-08-12 21:38:03 -04:00
Tom Rothamel 91045713c1 Support loading matrices from save files. 2020-08-12 20:55:44 -04:00
lee-yunseok ca23ea4b40 Fix typo. 2020-08-12 15:50:30 +09:00
Tom Rothamel abcfcb0b13 gl2: Switch matrix from row major to column major order.
GLES doesn't support the transpose argument to glUniformMatrix, so
store the matrix in transposed order instead.

Fixes #2309.
2020-08-11 22:15:46 -04:00
Tom Rothamel 26aaf86e8a Allow gles2 to run on Android.
It doesn't work yet, but it initializes to a black screen.
2020-08-10 23:51:58 -04:00
Tom Rothamel f9d295846a Add a way to disable shaders.
The syntax is to add a negative shader name, like '-renpy.geometry'.

Fixes #2301.
2020-08-10 23:02:24 -04:00
lee-yunseok ce52a27a2e Follow #9d4ae7b 2020-08-10 08:16:03 +09:00
lee-yunseok cc56b043c2 Follow #9d4ae7b 2020-08-10 08:12:16 +09:00
Tom Rothamel a085b5b32b Merge pull request #2316 from lee-yunseok/master
Fix Ko strings for launcher.
2020-08-09 14:27:54 -04:00
lee-yunseok 49ce721166 Grammatically correct 2020-08-10 03:26:42 +09:00
lee-yunseok be92e277d1 Fix Ko typos. 2020-08-10 03:24:10 +09:00
lee-yunseok dbcde35bf7 Update Ko strings for launcher. 2020-08-09 17:21:15 +09:00
Tom Rothamel 03e3dd36e0 Merge pull request #2281 from lee-yunseok/master
Fix Korean typo in launcher
2020-08-08 20:40:18 -04:00
Tom Rothamel d70f2d1555 Merge pull request #2283 from lee-yunseok/master
Apply SourceHanSansLite to Korean.
2020-08-08 20:39:55 -04:00
Tom Rothamel 39a3d0b689 Merge pull request #2306 from uyjulian/ffmedia_more_pointer_validation
More pointer validation in ffmedia and renpysound_core
2020-08-08 20:39:34 -04:00
lee-yunseok af0bdc1272 Update Ko string 2020-08-06 03:53:06 +09:00
lee-yunseok 206d23a3e6 Fix korean typo 2020-08-06 01:44:19 +09:00
lee-yunseok 51558dc83b update android string tr 2020-08-06 01:42:10 +09:00
Tom Rothamel 9d4ae7b9bf Update android string translations. 2020-08-03 23:57:38 -04:00
Tom Rothamel 1ac9e557d1 Create the directory containing the screenshot, if it doesn't exist.
Fixes #2308.
2020-08-03 01:09:17 -04:00
Tom Rothamel 845da7593b Allow K_PAUSE to bring the player to the game menu.
Just so this key has a function.
2020-08-03 00:36:06 -04:00
Tom Rothamel a547ea00eb Document preferences.language.
It's useful as a way of knowing the current language.
2020-08-03 00:29:36 -04:00
Tom Rothamel 2281ae9268 Only display a side image if at least one attribute is known. 2020-08-02 23:24:40 -04:00
uyjulian 084ed4970b More pointer validation in ffmedia and renpysound_core
Prevents data aborts on memory allocation error and media open error
2020-08-02 01:51:39 -05:00
uyjulian e929156f97 Refactor renpy.loader.index_archives into multiple callbacks 2020-08-02 01:14:10 -05:00
uyjulian 24b1a7c522 Refactor renpy.loader.{load_core,scandirfiles} into multiple callbacks 2020-08-02 00:22:19 -05:00
Tom Rothamel 2153cc80a2 Tweak one of the static cython regexes.
It could trigger in a case where a C function in the module had the
same name as the module itself. (Like the render function in
renpy.display.render.) This causes functions that import it to
report an error.
2020-07-30 19:17:01 -04:00
Tom Rothamel fee5500fb4 Use __attribute__((constructor)) to add static modules to inittab. 2020-07-30 03:16:16 -04:00
Tom Rothamel 39a35270ef Document that six is a dependency. 2020-07-26 22:34:55 -04:00
Tom Rothamel b0f238ef0d Merge pull request #2290 from Andykl/fix-force-step
Make sure Adjustment._value always have type that was inited
2020-07-24 21:03:24 -04:00
Tom Rothamel 9997eeb5da Fix lint warning in tutorial. 2020-07-23 22:11:35 -04:00
Tom Rothamel 5095677c2c Revert "Merge pull request #2287 from Beuc/web-virtual-keyboard"
This reverts commit c655a6d830, reversing
changes made to ee21bfa2ae.
2020-07-22 21:12:44 -04:00
Tom Rothamel e3d9516f2e Open JSON files in binary mode.
Fixes #2289.
2020-07-22 01:28:28 -04:00
Andykl 34e3e25fea Make sure Adjustment._value always have type that was inited 2020-07-22 00:51:15 +02:00
Andykl 7b6d8cc162 Fix misstype for force_step feature 2020-07-22 00:45:55 +02:00
Tom Rothamel 109590f7c0 Update an android string to match a change in rapt. 2020-07-20 22:41:59 -04:00
Tom Rothamel c655a6d830 Merge pull request #2287 from Beuc/web-virtual-keyboard
web: mobile: browser virtual keyboard support
2020-07-19 22:23:02 -04:00
Sylvain Beucler 2a1c91d8b2 web: mobile: browser virtual keyboard support 2020-07-18 18:03:03 +02:00
Tom Rothamel ee21bfa2ae live2d: Use the renpy.alpha shader to adjust opacity.
Fixes #2284.
2020-07-17 17:39:42 -04:00
Tom Rothamel 64c931c511 live2d: Fix the Linear and InvStep functions.
Per discussion on #2284.
2020-07-17 17:37:52 -04:00
Tom Rothamel 719ed80fa6 gl2: Take the size of the viewport into GL2DrawingContext, so
alignment works everywhere.
2020-07-17 00:36:45 -04:00
Tom Rothamel c0ac8e92c5 Fix bad matrices - thanks to Renall. 2020-07-16 21:02:45 -04:00
Tom Rothamel a6cfc52312 gl2: Replace the drawable_align shader with pixel perfect rendering.
The drawable align shader has a number of problems, most notably
that it could be triggered by accident - for example, the corners
of a Frame would trigger it. It could also move the diferent corners
of a texture differently, which would lead to blurring.

This replaces it with the concept of pixel perfect rendering. A
Render can be rendered in a pixel perfect manner if the only
transforms it has undergone are shifts by an integer number of
pixels. After a Render opts in (right now, Text is the only Render
that does so), each Model that it draws is shifted until (0, 0) is
located on an integer pixel on the screen.

Compared to drawable_align, pixel perfect rendering is simpler - by
actually transforming a point, it's easy to determine the nearest
pixel, and then move the draw by up to 1/2 of a pixel in each
axis.
2020-07-16 03:03:23 -04:00
Tom Rothamel 3218108135 gl2: Rewrite the draw function to use arguments rather than fields.
This simplifies it, and should make it faster.
2020-07-16 01:00:26 -04:00
Tom Rothamel 9faf07f664 gl2: Add methods to access the first point in the mesh. 2020-07-15 22:42:27 -04:00
Andykl 32502e1c84 Add alias for __ 2020-07-16 04:14:30 +02:00
Tom Rothamel 786b025c26 gl2: Add the bounding box to geometry debug. 2020-07-15 01:40:26 -04:00
Tom Rothamel 2f1c72826c Do not include renpy.geometry when renpy.ftl is present.
Fixes #2282.
2020-07-14 21:37:16 -04:00
lee-yunseok b0c29dca41 Update 2020-07-15 05:21:00 +09:00
lee-yunseok 10f95ba85b Compatible with new font 2020-07-15 05:18:07 +09:00
lee-yunseok 329f68e6e2 Add Korean 2020-07-15 04:53:18 +09:00
lee-yunseok 68418ceeb5 Naturally 2020-07-15 04:48:02 +09:00
lee-yunseok b90b13d911 remove mistake 2020-07-15 04:46:32 +09:00
lee-yunseok 9782c3aeae Change Korean font 2020-07-15 04:44:03 +09:00
lee-yunseok c5a3fc1f2f More naturally, remove nanum 2020-07-15 04:41:54 +09:00
lee-yunseok 46b696fac3 More naturally, remove Nanum 2020-07-15 04:40:34 +09:00
lee-yunseok 2f74b0f3aa Remove NanumFont 2020-07-15 04:33:24 +09:00
lee-yunseok f66aaad63a Fix typo 2020-07-14 17:05:33 +09:00
lee-yunseok e2c0cc6075 Fix typo 2020-07-14 16:54:41 +09:00
Tom Rothamel 8b0d3dd498 Merge pull request #2280 from Andykl/fix-start-interact
Set start_interact before call start_interact_callbacks
2020-07-14 01:36:09 -04:00
Tom Rothamel b6e223fdbe Fix typo in download.rpy. 2020-07-13 22:23:06 -04:00
Tom Rothamel 2001ca26f6 gl2: Fix matrix multiplication of clip polygons. 2020-07-13 22:15:19 -04:00
Tom Rothamel 81114e5e76 Default to using Python3 to choose a directory. 2020-07-12 17:54:46 -04:00
Tom Rothamel 85190014db gl2: Add a way to debug mesh geometry. 2020-07-11 23:34:03 -04:00
Andykl a819deb8a9 Set start_interact before call start_interact_callbacks 2020-07-12 04:53:29 +02:00
Tom Rothamel 4ac70c590c gl2: Add accessor functions to get the points and triangles in a mesh. 2020-07-11 18:59:47 -04:00
Tom Rothamel 45dfa2c980 Merge pull request #2270 from mal/vpgrid-margin
Add support for margin to grids
2020-07-10 21:23:41 -04:00
dogtopus 0665000c34 Handle variation sequences (VS1-256 and FVS1-3) 2020-07-10 00:03:09 -03:00
Tom Rothamel 094c0c0add Merge pull request #2277 from zedraxlo/patch-1
SourceHanSansLite.ttf update
2020-07-09 22:24:56 -04:00
Mal Graty 3e9c1f25a5 Update style docs for grid margins 2020-07-09 21:32:20 +01:00
Mal Graty ac1b88eea2 Minor fixes to style-property docs 2020-07-09 21:29:04 +01:00
zedraxlo e99fe890c4 Update screens.rpy 2020-07-09 18:37:12 +08:00
zedraxlo 3a0ff7876e Update screens.rpy 2020-07-09 18:35:01 +08:00
zedraxlo 8faf94f413 New SourceHanSansLite.ttf July 2020
After compared with the below code table, added some lacked characters.
GB 2312-80 (China)
Big 5 (Taiwan) + frequency table
JIS X 0208 (Japan) + joyo kanji
2020-07-09 18:31:23 +08:00
zedraxlo 5d627df6cb Update developer.rpy 2020-07-09 18:25:33 +08:00
Tom Rothamel a1c30e0ec6 Merge pull request #2044 from Lezalith/master
Input parameters "allow" and "exclude" can take regex
2020-07-08 21:38:33 -04:00
Tom Rothamel 03ccecaeca Merge pull request #2159 from hsandt/fix-parse-stop-music
Fix #2158 by checking arguments in a loop in parse_stop_music
2020-07-08 21:37:48 -04:00
Tom Rothamel c1f329618e Merge branch 'master' into fix-parse-stop-music 2020-07-08 21:37:31 -04:00
Tom Rothamel 5adf696ae1 Merge pull request #2232 from kyouryuukunn/combine_japanese_and_chinese_font
Combine japanese and chinese font
2020-07-08 21:35:34 -04:00
Tom Rothamel 07d837be44 Check in missing files, and a general cleanup. 2020-07-08 19:29:23 -04:00
Tom Rothamel 434c100ae5 Fix regression in Transform.set_child.
Fixes #2273.
2020-07-07 20:21:08 -04:00
Beuc b143e9e7f1 web: clarify audio placeholder's role 2020-07-07 12:22:20 +02:00
Tom Rothamel 0057b8f0d6 live2d: Properly handle the case where fadeout=0.
It should be treated as an immediate fadeout, not as not fading
out at all.
2020-07-07 00:00:46 -04:00
Tom Rothamel fd5163b577 live2d: Control when Live2D can be duplicated. 2020-07-06 22:46:12 -04:00
Tom Rothamel 4d54fa8c96 Add support for live2d to run.sh, if the files are present. 2020-07-06 22:33:47 -04:00
Tom Rothamel b62fb01b77 Merge pull request #2271 from Andykl/fix-shader-typos
Fix typos in live2d shaders
2020-07-05 23:22:21 -04:00
Tom Rothamel 07f2fdf7f1 gl2: Add the mesh transform property.
This replaces the flatten property, and explicitly flattens into
a mesh, if possible. Optionally, this takes a tuple, that
defines the number of points in the horizontal and vertical
directions that make up the mesh. (The idea being that a
vertex shader can then distort the mesh.)
2020-07-05 23:16:12 -04:00
Andykl 8fe34ded43 Fix typos in live2d shaders 2020-07-05 23:51:54 +02:00
Mal Graty 8f5dc494f1 Add support for margin to grids 2020-07-05 18:45:35 +01:00
Tom Rothamel ae2def4013 Add a flatten transform property.
This is designed to simplify the writing of shader-based transforms.
2020-07-04 15:37:37 -04:00
Tom Rothamel d2bf194114 gl2: More shader work.
The different shader variables now get prefixed with the GLSL
type - u_ for uniform, a_ for attribute, v_ for varying. This
makes sure that we're good if OpenGL adds new functions.

There are two new uniforms - u_time is the frame time, and u_random
is a vec4 with 4 random values in it.

Uniforms beginning with u_renpy and the standard uniforms (u_transform,
u_time, and u_random) are not exposed to ATL. (Since Ren'Py would just
overwrite them, anyway.)
2020-07-04 01:44:20 -04:00
Tom Rothamel 9c2ecbeebb gl2: Add support for custom shaders and uniforms to ATL. 2020-07-04 00:54:21 -04:00
Tom Rothamel 5fe400d433 gl2: Persist the shader cache. 2020-07-03 20:32:15 -04:00
Tom Rothamel e4e256a49d gl2: Remove hungarian notation from shader variables.
If these variables are going to be around forever, they should be
Ren'Py-like.
2020-07-03 01:15:34 -04:00
Tom Rothamel eb676de30c gl2: Alpha, Over, and Matrixcolor use uniforms.
Instead of special-casing these uniforms, they're updated by the
displayables that change them, and then config.merge_uniforms
makes sure that things like nested color matrixes and nested
alpha combine properly.
2020-07-02 22:35:16 -04:00
Tom Rothamel e12175123d gl2: Add config.merge_uniforms.
This is a dictionary that explains how to merge together uniforms
that are provided by the same shader in multiple places. For example,
the alpha should me multiplied, not replaced.
2020-07-02 22:33:26 -04:00
Tom Rothamel 7ce97ed23a gl2: Add Render.add_shader and Render.add_uniform.
These provide a standard and simple way to add shaders and uniforms
to Renders.
2020-07-02 22:31:55 -04:00
Tom Rothamel fd062ef089 matrixcolor: Add SepiaMatrix, a convenient shortcut to sepiatone things. 2020-07-02 19:09:25 -04:00
Tom Rothamel 15941dfac0 matrixcolor: Add equality methods to ColorMatrix.
These are used by ATL.
2020-07-01 22:21:54 -04:00
Tom Rothamel 9b819d563a matrixcolor: Untested conversion of im.matrix to ColorMatrix
ColorMatrix is the new base class for objects that can be called
to return a Matrix. ATL can interpolate between different instances
of the same ColorMatrix subclass, and ColorMatrixes can be multiplied
together, in which case the relevant Matrixes wil be multipled
together.
2020-07-01 22:05:57 -04:00
Tom Rothamel b139fc492d matrixcolor: Move interpolation into a base class. 2020-06-30 23:58:04 -04:00
Tom Rothamel 8772d753d9 matrixcolor: Start redesign.
Thinking about Patreon + #2255, I've realized that reusing im.matrix
is probably a bad idea. The 5x5 matrices don't make sense with
premultiplied alpha, and ATL really wants function-like objects
that help animated things.

In the redesign, matrixcolor takes either a 4x4 Matrix, or a
function-like object (a ColorMatrix object) that takes an old
object to interpolate from, a completion amount, and returns
a Matrix.
2020-06-30 01:56:21 -04:00
Tom Rothamel 474f1499cd Export Matrix into the default store. 2020-06-30 00:45:14 -04:00
Tom Rothamel 62ba7f2a9d doc: Improve documentation of config.missing_label_callback.
Fixes #2261.
2020-06-29 21:01:58 -04:00
Tom Rothamel 1923a40304 Merge pull request #2262 from Andykl/fix-2191
Fix misspelled value for #2191
2020-06-29 13:56:25 -04:00
Andykl 6d56f148da Fix misspelled value for #2191 2020-06-29 19:53:13 +02:00
Tom Rothamel e9aa32407e Remove all MMX-based rendering.
These were mostly used by the software renderer, which is no longer
performance-critical. The MMX-based stuff appears to be broken on
i686 on recent GCCs (it had been disabled on Linux for years), so
it's easy to justify removing it.
2020-06-28 21:29:48 -04:00
Tom Rothamel baaf56c866 Disable ANGLE when switching to swdraw.
This is necessary ANGLE isn't working for some reason. GLES and
ANGLE mode is still enabled, so swdraw would fail creating the
window.
2020-06-27 20:21:09 -04:00
Tom Rothamel aa0a5f1194 Ignore angle2 on other platforms. 2020-06-27 19:55:49 -04:00
Tom Rothamel 5682e70942 Merge pull request #2156 from Beuc/progressive_download.txt
web: add progressive download configuration for demos
2020-06-27 16:44:04 -04:00
Tom Rothamel 4a226666b6 Merge pull request #2106 from Beuc/back_to_float
Revert "web: Avoid the use of float arguments."
2020-06-27 16:43:47 -04:00
Tom Rothamel 043f7d07c4 Only recreate the gl context on mobile platforms.
On windows with ANGLE, re-creating the context does not work. It
also isn't necessary on other PC platforms.
2020-06-27 16:22:44 -04:00
Tom Rothamel 33dd91e9d0 doc: Fix typo. 2020-06-27 15:55:36 -04:00
Tom Rothamel 8833466201 gl2: Do not use es in the gl2es shader version directive. 2020-06-26 23:41:52 -04:00
Daniel Conley 9851f8c391 Python3 Readiness: Use in Instead Of has_key
Changes all instances of `<dict>.has_key(<key>)` to `<key> in <dict>` across all Python and RenPy files, as Python 3 has removed the `has_key` method.
Excuse my grammar and missing backtick quoted content in my last commit... how embarassing.
The last commit was supposed to say: "Changed all instances of `except <type>, <var>` to `except <type> as <var>`"...
2020-06-26 16:50:21 -04:00
Daniel Conley 2de5d427a4 Python3 Readyness: Use As In Except
Changed all instances of  to , across all Python and RenPy files, as Python 3 does not accepts the former.
2020-06-26 16:15:47 -04:00
Tom Rothamel 44fe51d53b Merge pull request #2109 from Andykl/console-prettyprint
Console prettyprint
2020-06-25 22:36:47 -04:00
Tom Rothamel 33f9359b28 Merge pull request #2165 from Andykl/fix-screens-predict
Various fixes of predict machinery
2020-06-25 22:30:52 -04:00
Tom Rothamel b0cf9da302 Merge pull request #2242 from Andykl/fix-log-line-ending
Remove `\n` replacement in log files, because `io.open` is dealing with it
2020-06-25 22:27:46 -04:00
Tom Rothamel fc81ae78c3 Merge pull request #2252 from dogtopus/gl2draw-typo
Fix typo (draw -> gl2draw)
2020-06-25 22:26:09 -04:00
Tom Rothamel 3eec6085f7 r-b: Set executable bits for the new files.
Fixes #2254.
2020-06-23 21:48:25 -04:00
Tom Rothamel bf1bee5214 Add a length field to the test input example.
Fixes #2204.
2020-06-23 01:10:20 -04:00
Tom Rothamel 05f66df36b Quote butler terminal commands.
Fixes #2199.
2020-06-23 00:41:39 -04:00
Tom Rothamel 51f120646b gl2: Restore AlphaMask and AlphaDissolve.
Fixes #2251.
2020-06-22 23:00:00 -04:00
dogtopus a262f29c56 Fix typo (draw -> gl2draw) 2020-06-22 13:14:30 -03:00
Tom Rothamel 7468b56459 Start documenting matrixcolor. 2020-06-22 01:47:36 -04:00
Tom Rothamel 3ac0f39348 Add support for the use of functions to interpolate matrixcolors. 2020-06-21 15:39:26 -04:00
Tom Rothamel c35b3759e8 gl2: Add the matrixcolor implementation. 2020-06-21 11:39:25 -04:00
Tom Rothamel b98890220f gl2: Add the matrixcolor transform property.
Which hasn't been hooked up yet.
2020-06-20 20:30:48 -04:00
Tom Rothamel 0e3b850a22 Merge pull request #2241 from mal/size-type
Bounds-based size transforms
2020-06-20 17:49:55 -04:00
Mal Graty 6664dc19e6 Document new sizing properties 2020-06-20 20:12:06 +01:00
Tom Rothamel 60399dcdd8 gl2: Update the recolor shader. 2020-06-19 21:04:34 -04:00
Tom Rothamel 6541259a56 Hide and ToggleScreen now take the _layer parameter.
Fixes #2227.
2020-06-19 00:42:05 -04:00
Tom Rothamel e4144bbc08 Switch to VS code. 2020-06-19 00:25:15 -04:00
Tom Rothamel a98539b611 Merge pull request #2155 from RenpyRemix/patch-1
Update 00gallery.rpy
2020-06-18 23:21:16 -04:00
Tom Rothamel becb99216b Merge pull request #2248 from lee-yunseok/master
Add missing Korean translation for launcher.
2020-06-18 23:20:02 -04:00
Tom Rothamel 76dc25cb74 Convert exception_info to str before reporting.
Fixes #2244.
2020-06-18 21:28:27 -04:00
Tom Rothamel 929106910a Convert strings in .pyx to unicode. 2020-06-18 21:23:08 -04:00
lee-yunseok a73e35ac22 Add missing tl 2020-06-19 00:46:35 +09:00
Tom Rothamel d7d2b5440d Do not reset history or nvl_list for a non-language-change.
Fixes #2245.
2020-06-17 23:21:54 -04:00
Tom Rothamel 2f069739d2 Allow the game continue if nvl_list gets cleared.
This can happen when changing language.

This is part of the fix for #2245.
2020-06-17 23:18:24 -04:00
Tom Rothamel 60d81a953c live2d: Call with __stdcall.
This fixes a crash on 32-bit win32.
2020-06-16 02:03:09 -04:00
Tom Rothamel 1c2e732490 Preserve sys.executable across reload(sys). 2020-06-15 03:13:20 -04:00
Mal Graty 03512ed2e9 Avoid using size None going forward 2020-06-14 21:03:17 +01:00
Mal Graty b278fc842d Handle size None in transforms
Setting size to None is used reset and few other places so we need to
keep support for clearing size in that way rather than requiring code to
be ported to explicitly setting xsize and ysize to None.
2020-06-14 21:03:17 +01:00
Mal Graty 0f070cb5ae Make transform_render use xsize, ysize and fit
fixup! Update transform_render to handle xsize, ysize
2020-06-14 21:03:17 +01:00
Mal Graty 9133dc798f Split size into xsize and ysize and add size_type
Size remains available and supported, implemented in the same way as
other x/y tuples with component parts.
2020-06-14 21:03:17 +01:00
Andykl b78a84f016 Remove \n replacement, because io.open is dealing with it 2020-06-13 20:45:23 +02:00
Tom Rothamel b0af3b31b3 live2d: Only install into directories that exist.
Fixes #2225.
2020-06-13 03:05:36 -04:00
Tom Rothamel 9680958b96 live2d: Use the full path to the dll.
This is required to load the dylib on macOS, and shouldn't hurt
for the other platforms.

Fixes #2233.
2020-06-13 02:37:00 -04:00
Tom Rothamel 530b29fbc3 Only handle VIDEOEXPOSE for the software renderer. 2020-06-11 21:44:57 -04:00
Andykl a14e38a830 Remove unnesesary import 2020-06-11 12:50:30 +02:00
kyouryuukunn bcd738085b Update CJK font 2020-06-11 16:58:02 +09:00
kyouryuukunn 75d21278cf Change Japanese font name 2020-06-11 16:52:41 +09:00
kyouryuukunn 36516ecebc Merge branch 'master' into combine_japanese_and_chinese_font 2020-06-11 16:45:57 +09:00
Tom Rothamel d45a30cd1c gl2: Do not use the geometry shader for ftl.
This attempts to deal with #2228.
2020-06-11 01:40:45 -04:00
Tom Rothamel 84cdb6dc50 Merge pull request #2169 from uyjulian/gl2_explicit_attributes
gl2draw: Explicitly specify profile and version when using desktop GL
2020-06-11 00:22:31 -04:00
uyjulian 73443cd0af gl2draw: Explicitly specify profile and version when using desktop GL 2020-06-10 23:20:19 -05:00
Tom Rothamel ec8eaf08f0 Merge pull request #2230 from Gouvernathor/patch-minsize
add minsize transform property
2020-06-10 22:09:40 -04:00
Gouvernathor dc4bdc7775 Changed mul from False to None
As requested, changed the default, "unspecified" value of mul from False to None to avoid integer-interpretation issues
2020-06-11 04:08:52 +02:00
Tom Rothamel 55ba62ea58 Merge pull request #2129 from Andykl/improve-pure
Improved renpy.pure function.
2020-06-10 22:08:32 -04:00
Gouvernathor 95bac9a589 added minsize to the last needed places
added wherever maxsize was mentioned : in the constructor, with the default value (of None),...
2020-06-11 02:27:01 +02:00
Gouvernathor cbf458f514 Programmed the actual behavior of minsize
If maxsize is specified, minsize is ignored.
If not None, minsize causes the displayable to be scaled so that it fills a box of this size, while preserving aspect ratio. (Note that this means that one of the dimensions may be greater than the size of this box.)
2020-06-11 02:19:49 +02:00
Gouvernathor fb409e3764 added minsize to the list of properties 2020-06-11 02:18:06 +02:00
Tom Rothamel eb6977c0f8 Merge pull request #2229 from zedraxlo/master
Chinese, June 2020
2020-06-10 01:47:47 -04:00
Tom Rothamel ff31d4039b live2d: Scan the disk for motions that aren't in the model3 file. 2020-06-10 01:47:22 -04:00
zedraxlo 1c74791ebe Update screens.rpy 2020-06-10 13:23:22 +08:00
zedraxlo ce94ab3f21 Update script.rpy 2020-06-10 13:22:03 +08:00
zedraxlo 2e922fd97c Update options.rpy 2020-06-10 13:21:47 +08:00
zedraxlo eaca94c196 Add files via upload 2020-06-10 13:21:21 +08:00
zedraxlo bf808138d2 Update script.rpy 2020-06-10 13:20:25 +08:00
zedraxlo ddb36b1145 Update screens.rpy 2020-06-10 13:20:05 +08:00
zedraxlo 67f53456ee Update options.rpy 2020-06-10 13:19:45 +08:00
zedraxlo 1e2862cbf8 Add files via upload 2020-06-10 13:19:10 +08:00
zedraxlo 74dcebb714 Update style.rpy 2020-06-10 13:15:59 +08:00
zedraxlo 43624ded97 Update style.rpy 2020-06-10 13:15:31 +08:00
zedraxlo adf62e4776 Update screens.rpy 2020-06-10 13:14:45 +08:00
zedraxlo 790dd4c113 Update options.rpy 2020-06-10 13:14:28 +08:00
zedraxlo 7e2efef33c Update launcher.rpy 2020-06-10 13:14:03 +08:00
zedraxlo 7f59d8bd43 Update gui.rpy 2020-06-10 13:13:42 +08:00
zedraxlo 1fbe974306 Update error.rpy 2020-06-10 13:13:26 +08:00
zedraxlo a4b265c66c Update developer.rpy 2020-06-10 13:13:09 +08:00
zedraxlo 687f3d929d Update common.rpy 2020-06-10 13:11:21 +08:00
zedraxlo aa3f4ab491 Add files via upload 2020-06-10 12:42:47 +08:00
zedraxlo 7652e06950 Delete SourceHanSans-Light-Lite.ttf 2020-06-10 12:41:41 +08:00
Tom Rothamel 0d56d7d59c Merge pull request #2180 from Beuc/update_gamecontrollerdb
Sync gamecontrollerdb.txt
2020-06-10 00:28:34 -04:00
Tom Rothamel 28238804d6 Merge pull request #2170 from uyjulian/mouse_touch_autoconv
Set SDL2 hint to convert touch events to mouse events
2020-06-10 00:27:48 -04:00
Tom Rothamel 04d593daaf Merge pull request #2179 from oxr463/patch-2
Add renpyweb to license repositories
2020-06-10 00:27:34 -04:00
Tom Rothamel 9336d64369 Merge pull request #2176 from oxr463/patch-1
Clarify licensing in README
2020-06-10 00:27:20 -04:00
Tom Rothamel f5466dcf5a Merge pull request #2189 from capntrips/ios-mobile-variant
add "mobile" screen variant to iOS builds
2020-06-09 20:54:27 -04:00
Tom Rothamel b24091ba11 Merge pull request #2191 from kobaltcore/individual-volume
Allow specification of per-play/per-queue volume
2020-06-09 20:53:31 -04:00
Tom Rothamel 634cbe7aab Merge pull request #2195 from Andykl/fix-scache
Also use the location of screen as key of screen in SL2 cache
2020-06-09 20:53:02 -04:00
Tom Rothamel 9c46898771 Merge pull request #2197 from Andykl/fix-quit
Do not call label "quit" in command startups
2020-06-09 20:52:22 -04:00
Tom Rothamel 0a3104af8e gl2: Fix arguments when drawing in is_pixel_opaque. 2020-06-08 20:35:09 -04:00
Tom Rothamel 884e02cc6b Document the alt and noalt text tags. 2020-06-08 01:19:22 -04:00
Tom Rothamel 387c93c311 Add the noalt tag.
This is the opposite of the alt tag, allowing one to have text
that will not be spoken when TTS is enabled.

Fixes #2221.
2020-06-07 22:37:09 -04:00
Tom Rothamel fbf6be8928 live2d: Add the still motion. 2020-06-06 22:59:32 -04:00
Tom Rothamel d07ed14a96 Improve placeholder error handling, especially for attribute errors. 2020-06-06 20:36:25 -04:00
Tom Rothamel 678d8d2dab live2d: Read the pause times from the motion file. 2020-06-06 19:46:02 -04:00
Tom Rothamel e8c6e2d198 live2d: Reset parameters, adjust by factor. 2020-06-04 19:55:54 -04:00
Tom Rothamel d2dc56e01f live2d: Restore motion fade. 2020-06-03 23:23:52 -04:00
Tom Rothamel 159ad0e0f2 Revert "live2d: Remove incorrect usage of fade factors in motion."
This reverts commit cf0d05b6eb.
2020-06-03 01:54:45 -04:00
Tom Rothamel d256d27e28 live2d: Track the state for fading. 2020-06-02 23:29:34 -04:00
Tom Rothamel df721cb27e live2d: Change the size of the Render to the player-selected size.
This is needed to make things work with the standard transforms,
which use yalign 1.0 and hence override yanchor.
2020-05-31 22:50:19 -04:00
Tom Rothamel bf5030dff2 live2d: New features.
- loop: controls if the animations loop.
- alias: aliases animations.
- height: controls the scaling height.
2020-05-29 02:54:28 -04:00
Tom Rothamel a9f26274fe live2d: Support a queue of motions, with the last repeating. 2020-05-28 02:26:51 -04:00
Tom Rothamel e10b88eca4 Provide a way for Ren'Py to query the screen lists for children.
This is used by the Live2D code to find the displayables that
are currently being shown, to figure out what should be displayed
on them.
2020-05-28 01:03:29 -04:00
Tom Rothamel f27def4f78 live2d: Do not double-duplicate. 2020-05-27 20:58:43 -04:00
Tom Rothamel cf0d05b6eb live2d: Remove incorrect usage of fade factors in motion. 2020-05-26 23:00:13 -04:00
uyjulian 0de85380cd Set SDL2 hint to convert touch events to mouse events 2020-05-25 22:25:02 -05:00
Tom Rothamel 992353b719 live2d: Switch between traditional sprite changes and interpolating. 2020-05-25 22:48:25 -04:00
Tom Rothamel 6ec27266df live2d: Figure out old and new motions, if needed. 2020-05-24 21:57:06 -04:00
Andykl 4ce146bd67 Do not leak constantness for constant not_const_ast 2020-05-25 03:52:04 +02:00
Andykl aa435a95cd Document a hint about **properties in SD SLS 2020-05-25 03:07:41 +02:00
Tom Rothamel da522a6373 live2d: Import renpy, to gain access to functions in it. 2020-05-24 15:44:01 -04:00
Andykl 1edb6d0a92 Raise an error if some property follow after last_keyword child 2020-05-24 21:05:40 +02:00
Andykl 40e5eb4742 Skip expressions in screens cycle finder. 2020-05-24 19:35:35 +02:00
Andykl c0a926c3b3 Predict the first true block exactly first in SLIf. 2020-05-24 19:25:43 +02:00
Andykl bc7b0514e5 Check arguments and id properties even if they in SLIf children. 2020-05-24 17:45:16 +02:00
Tom Rothamel 031231e343 live2d: Allow Ren'Py to start without a compiled Live2D.
This means that Live2D headers won't be required to build Ren'Py.
2020-05-24 11:40:13 -04:00
Andykl 12914d08e3 Get the at keyword after applying properties keyword 2020-05-24 03:41:12 +02:00
Andykl f627d2f1f8 Make a link of atl_transform in copy of SLBlock 2020-05-24 03:39:17 +02:00
Andykl 429b679170 Make a separate class for CD SLS 2020-05-24 03:37:48 +02:00
Tom Rothamel 8bce879a96 live2d: Add checks and renpy.has_live2d. 2020-05-23 18:01:07 -04:00
Tom Rothamel b50c74b156 live2d: Use the Ren'Py functions rather than renpy.exports. 2020-05-23 03:18:38 -04:00
Tom Rothamel 049d44a981 gl2, live2d: Import renpy.gl2 all the time.
Since there's no direct linking to OpenGL anymore, there's no reason
to delay this import, and doing so makes the Live2D API available
in the standard manner.
2020-05-22 23:31:15 -04:00
Tom Rothamel 560e6bdbc5 Merge pull request #2130 from Andykl/improve-key
Improve SL key statement
2020-05-22 10:17:12 -04:00
Tom Rothamel 04edaf13ce live2d: Fix various issues with install. 2020-05-21 02:56:46 -04:00
Tom Rothamel 2da388b718 live2d: Do not distribute with Ren'Py itself. 2020-05-21 02:24:49 -04:00
Tom Rothamel ff2bcc2d7f Raise the profile_init threshold to .25s. 2020-05-21 02:19:52 -04:00
Tom Rothamel 6bef058fc2 live2d: Install the Live2D dlls for desktop platforms. 2020-05-21 02:08:23 -04:00
Tom Rothamel 0c5c5bcead launcher: Add an install screen. 2020-05-20 20:56:10 -04:00
Andykl e32eb9aa4f Make get_all_screen_variants less complexity 2020-05-20 19:16:23 +02:00
Andykl 6c1333fbf6 SLUse without block should refers to target const_ast 2020-05-20 18:25:16 +02:00
Andrej 5ae947f8a6 Make docs more clear about purpose 2020-05-20 16:42:12 +02:00
Andrej 308b8a9132 Make exception message for recursive !i substitutions more useful. 2020-05-20 16:12:10 +02:00
Andy_kl 71f3c5bb10 Doc this 2020-05-20 15:39:12 +02:00
Andy_kl 584b779653 Added hint of correct symbols 2020-05-20 15:39:12 +02:00
Andy_kl 3edac1df43 Added i conversion flag for additional interpolate substituted value 2020-05-20 15:39:12 +02:00
Andy_kl 1354b2c685 Make coercion to string for all other conversion symbols 2020-05-20 15:39:12 +02:00
Andy_kl 7c4fe698b2 Raise an error if substitute conversion have unknown symbols 2020-05-20 15:39:12 +02:00
Andy_kl 2fd3345069 Raise (often) NameError again if not in predicting 2020-05-20 15:39:11 +02:00
Tom Rothamel 3ae53ce8cc Rearrange the preferences.
Moving the actions into the left column leaves more space for them,
and more space for the long list of translations.
2020-05-19 22:56:17 -04:00
Daniel Luque 351db443dd Merge pull request #2201 from Andykl/doc-typo
Fix doc typo
2020-05-18 23:44:45 +02:00
Tom Rothamel e21c90a5fc live2d: Use a thunk to load Live2D.
This ensures that live2d only loads if it is being used, which
allows it to depend on renpy.gl2.
2020-05-18 01:46:33 -04:00
Tom Rothamel a5bc6ae6a9 gl2: Add support for Live2D.
This was developed at renpytom/live2dexperiment .
2020-05-17 23:21:23 -04:00
Tom Rothamel 5613eb562d Update copyright notices to 2020. 2020-05-17 14:22:47 -04:00
Andrej cb9e66cc5e Fix 2020-05-17 17:10:36 +02:00
Tom Rothamel c5d5897cc5 gl2: Use a very slight offset on the size of a pixel.
This prevents a very slight offset in rounding from causing an aligned
render to be rendered one pixel bigger.
2020-05-15 22:54:50 -04:00
Andrej 47b927f4c9 Do not call label "quit" in command startups 2020-05-15 20:40:54 +02:00
Andrej 57b89450f5 Also use the location of screen as key of screen in SL2 cache 2020-05-14 09:18:47 +02:00
CobaltCore 0040db2fc0 Commit compatibility fix oversight 2020-05-11 20:47:58 +02:00
CobaltCore b6de915f85 Fix compatibility with existing rpyc files 2020-05-10 19:05:04 +02:00
CobaltCore b6218fdd6f Add backwards compatibility in MusicContext 2020-05-10 18:46:22 +02:00
CobaltCore 4878a59f6d Allow specification of per-file/per-queue volume 2020-05-10 18:30:14 +02:00
capntrips 6ea200eb1b add mobile screen variant to ios builds 2020-05-08 04:40:25 -05:00
Tom Rothamel 6befc8cc72 Allow Ren'Py to run if lib/mac-x86_64 does not exist.
Fixes #2188.
2020-05-08 02:07:09 -04:00
Tom Rothamel 7581d1ee34 matrix: fix abseq. 2020-05-04 19:29:08 -04:00
CobaltCore 2193628c5f Add ability to show progress bar instead of static presplash 2020-05-04 14:26:28 +02:00
Tom Rothamel 8760c3dd73 mac: Actually fix the problem. 2020-05-03 21:29:07 -04:00
Tom Rothamel a26e2a7fb8 mac: Only change sys.executable on a mac. 2020-05-03 20:51:35 -04:00
Tom Rothamel 347e4fa369 mac: Set sys.executable to lib/mac-x86_64/renpy, if it exists. 2020-05-03 03:40:06 -04:00
Tom Rothamel 794232f8ba mac: Unpack the binaries properly. 2020-05-02 20:52:47 -04:00
Tom Rothamel 3d2441c122 Merge pull request #2177 from mathrick/restore-config-use-cpickle
Make config.use_cpickle work again in Python 2.x
2020-04-30 22:21:18 -04:00
Sylvain Beucler 4f914d3625 Sync gamecontrollerdb.txt
from https://raw.githubusercontent.com/gabomdq/SDL_GameControllerDB/master/gamecontrollerdb.txt
2020-04-29 15:28:32 +02:00
Lucas Ramage 831db00af3 Add renpyweb to license repositories
Bug: https://github.com/renpy/renpyweb/issues/4
2020-04-28 09:09:02 -04:00
Tom Rothamel 302858f1e0 r-b: New approach to changing icons.
Generally, the resource segment Ren'Py uses will be bigger than the
one used in games. If it is, keep it. Otherwise, use the delta
between section sizes everywhere.
2020-04-27 20:09:04 -04:00
Tom Rothamel c611c2c12e r-b: Include the launcher binaries in builds. 2020-04-27 20:08:45 -04:00
Tom Rothamel d7c435dff9 r-b: Re-enable icon changing. 2020-04-27 20:05:54 -04:00
Maciej Katafiasz 34ae4e785e Make config.use_cpickle work again in Python 2.x
Also document that it has no effect under Python 3
2020-04-27 12:38:37 -07:00
Lucas Ramage 556ce59f90 Clarify licensing in README 2020-04-27 08:54:32 -04:00
Tom Rothamel d0b715c2fd Add config.profile_init.
This provides a way to profile init blocks.

It's probably best used with something like:

    init -1000 python:
        config.profile_init = .2

To display any init block that takes longer than .2 seconds.
2020-04-26 20:25:15 -04:00
Tom Rothamel b5dd254da7 Add line continuations when compiling multi-line strings for eval. 2020-04-25 14:54:04 -04:00
kyouryuukunn 143f80c867 remove MTLc3m.ttf 2020-04-25 15:51:59 +09:00
kyouryuukunn 1d89786ec7 change japanese font to SourceHanSansCJLite.ttf 2020-04-25 15:43:35 +09:00
Tom Rothamel 5b492825b0 mac: Unpack macho executables if present.
The flipside of the previous commit, unpack the unsigned executables
and drop them onto the disk.
2020-04-25 01:27:57 -04:00
Tom Rothamel aa8806c4f7 mac: Avoid including macho executables in a .dmg.
Changes to Apple's notatization system make it hard to include
unsigned executables. To fix this, we'll attempt to write the
executables after the launcher starts.
2020-04-25 00:47:05 -04:00
Tom Rothamel ab90cddb5e Delete the old directory when making a directory package. 2020-04-25 00:46:30 -04:00
Tom Rothamel 5e42504770 Delete the "i" variable before user code runs.
Fixes #2172.
2020-04-24 22:18:49 -04:00
Tom Rothamel dc8ac37dec Merge pull request #2168 from Andykl/fix-MRO-typo
Fix subclass typo for exports.Container
2020-04-23 22:32:20 -04:00
Tom Rothamel cf104cfa36 gl2: Fix for statement to propertly set NEAREST. 2020-04-22 01:35:30 -04:00
Tom Rothamel a2ad38399b gl2: Propagate nearest-neighbor rendering to the shader. 2020-04-21 23:55:36 -04:00
Tom Rothamel 30352614cd gl2: Supply the correct information to the renpy.drawable_align shader.
This lets Ren'Py adapt to full or half pixel alignment, and makes
sure that text renders pixel perfect.
2020-04-20 23:09:19 -04:00
Sylvain Beucler 4e1b061271 web: tidy JavaScript snippets
In particular, fix "Expected '('" error with try/catch and MS Edge
2020-04-20 15:41:04 +02:00
Tom Rothamel aff09c8705 gl2: Use separate scaling factors for draw/virt in x and y. 2020-04-19 22:38:42 -04:00
Andy_kl 897bed0fc3 Fix subclass typo for exports.Container 2020-04-19 19:46:36 +02:00
Tom Rothamel 199d96551e gl2: Compute virtual->drawable directly.
This is helping with pixel-perfect text rendering, though we're
not completely there yet.
2020-04-18 23:42:28 -04:00
Sylvain Beucler f7d8fea29c web: support web-presplash.webp
actually display is in renpyweb/renpy-shell.html
2020-04-18 16:01:25 +02:00
Beuc f2fe516352 Only include progressive_download.txt in web builds 2020-04-18 15:30:56 +02:00
Tom Rothamel 2685c2dd00 gl2: Load the shaders early, so they can be part of error handling. 2020-04-17 21:00:03 -04:00
Tom Rothamel fca9fec458 text: Improved alignment pattern. 2020-04-16 23:17:18 -04:00
Tom Rothamel cf531103e7 Print matrices at higher precision.
This helps debugging screen transforms.
2020-04-16 23:17:18 -04:00
Tom Rothamel 30fc4fa06a Merge pull request #2160 from hsandt/fix-parse-queue-music
Fix parse error on `queue music [expr] channel [expr]`
2020-04-15 21:35:22 -04:00
Andy_kl 1c5ffb95c1 Added expensive_predict_callbacks config variable
This callbacks called one per tick of prediction_coroutine
and used to predict screens or other expensive stuff.
2020-04-15 21:34:47 +02:00
Andy_kl 03f9153b94 Do not predict screens twice if it was reached both of start_predict_screen and common way. 2020-04-15 20:53:55 +02:00
Andy_kl 1ae3fbe474 Remove screens exception reporting in prediction_coroutine due it already handled in screen.predict_screen 2020-04-15 20:46:42 +02:00
Andy_kl 66eb6f0d69 Report exceptions produced by predict_one_action 2020-04-15 20:44:53 +02:00
Andy_kl 20cd32c6c0 Fix typo in screen.cache_get 2020-04-15 20:39:10 +02:00
Andy_kl 01a2c80ebd Do not cause wrong reports for debug_image_cache by expression in calls and jumps.
Such messages arise with
label start:
    pause  # eval failed here
    $var = None
    pause  # non-existing label None here
    $var = "test"
    pause
    call expression var
    jump expression var
2020-04-15 18:56:04 +02:00
Tom Rothamel 9282e25a6a gl2: Give Text the ability to generate an alignment debug grid. 2020-04-14 23:32:19 -04:00
Tom Rothamel fad3daf3f8 Merge pull request #2163 from hsandt/fix-menu
Fix menu_kwargs restore assignment from old value
2020-04-14 22:05:47 -04:00
Andy_kl a8e71c17fa Do not broke predict_statements if developer used wrong label name. 2020-04-15 02:00:02 +02:00
Andy_kl 595f887f54 Add missed predicting flag for first screen in _predict_screen 2020-04-15 00:42:48 +02:00
Tom Rothamel 2d098ee38d gl2: Reset image cache on resize.
This fixes a problem where old-generation textures were being used.
2020-04-13 22:53:38 -04:00
Hyper Sonic dda4f8522f Fix menu_kwargs restore assignment from old value 2020-04-13 23:19:56 +01:00
Tom Rothamel 06a06525bb doc: Fix title. 2020-04-12 19:47:11 -04:00
Tom Rothamel 7d6fe876c3 Append to update/deferred.txt, rather than always overwriting. 2020-04-12 02:08:13 -04:00
Tom Rothamel b4d33569a9 gl2: Log a texture leak, but don't crash. 2020-04-12 00:08:45 -04:00
Hyper Sonic 1234df3994 Fix parse error on queue music [expr] channel [expr]
Added missing `continue` in parse_queue_music for `channel` parameter parsing
2020-04-11 17:13:13 +01:00
Tom Rothamel f16369bd8f gl2: Add drawable_align shader. 2020-04-10 22:42:40 -04:00
Hyper Sonic 8c8a8355d9 Fix #2158 by checking arguments in a loop in parse_stop_music
In addition, minor refactoring and error description change in parse_play_music to be more consistent with parse_queue_music and the new parse_stop_music
2020-04-10 22:53:53 +01:00
Sylvain Beucler b82a3366d4 web: add progressive download configuration for demos 2020-04-10 22:04:43 +02:00
Tom Rothamel e272bae995 gl2: Determine if pixel or subpixel blitting should be used. 2020-04-09 22:30:50 -04:00
Tom Rothamel d1d861ed9a gl2: Add Matrix.is_drawable_aligned.
A function that will help determine if a model is being drawn 1:1
to drawable pixels.
2020-04-08 02:52:27 -04:00
Tom Rothamel c158096f4c doc: Fix typo in ATL documentation. 2020-04-07 19:24:30 -04:00
Remix 91ce90dc89 Update 00gallery.rpy
Remove print statement
2020-04-07 22:10:57 +01:00
Tom Rothamel f0862b6eb2 gl2: Import renpy.uguu.angle explicitly. 2020-04-06 22:27:50 -04:00
Tom Rothamel 14a3cf5bac renpy.loadable should return true on files, not directories.
Fixes #2149.
2020-04-05 18:33:16 -04:00
Tom Rothamel 4916df0aff Merge pull request #2151 from Andykl/fix-kwargs-type
Fix the type of result `kwargs` value of label call.
2020-04-05 17:40:22 -04:00
Andy_kl bcefcd54da Make it more pythonic and probably faster. 2020-04-05 08:00:38 +02:00
Andy_kl 60966285b4 Fix repr of set for an exhausted level.
It could have been misinterpreted as a dictionary.
2020-04-05 07:57:46 +02:00
Andy_kl 89c292c7cc Repr empty containers as its short version even if level is over.
It gives more information about the structure at a price of nothing.
2020-04-05 07:53:09 +02:00
Tom Rothamel 0add5f8dfb done: Document the text tag. 2020-04-04 22:18:34 -04:00
Tom Rothamel d8d73a1be0 done: Do not add a {done} line to history. 2020-04-04 20:24:17 -04:00
Andy_kl 0031d321d5 Fix the type of result kwargs value of label call. 2020-04-05 01:44:16 +02:00
Tom Rothamel 071438ccb3 Merge pull request #2150 from Andykl/fix-savelocation
Fix a potential bug with duplicated path in savelocation.
2020-04-04 17:57:11 -04:00
Andy_kl cefb702f8c Fix a potential bug with duplicated path in savelocation. 2020-04-04 23:56:06 +02:00
Tom Rothamel c7f1df605f Add the {done} text tag.
Fixes #2131.
2020-04-03 22:51:20 -04:00
Sylvain Beucler f4625f4b49 progressive download: made progressive_download.txt error handling more robust, allow empty lines 2020-04-03 19:11:37 +02:00
Tom Rothamel bda5e69b30 Always uses modern logic to look up character names.
Fixes #2135.
2020-04-02 23:22:13 -04:00
Tom Rothamel 2d3427dc30 Rewrite Render.take_focuses.
This is simpler, and should be more correct.

Fixes #2146.
2020-04-02 01:51:43 -04:00
Tom Rothamel a2c5965a39 Merge pull request #2148 from Andykl/fix-typo
Fix typo with py_compile_cache
2020-04-01 22:19:02 -04:00
Andy_kl a75b5aa2bd Strip store. prefix in all cases. 2020-04-01 20:28:07 +02:00
Tom Rothamel 2ef261af14 Fix ShowingSwitch example.
Fixes #2141.
2020-03-31 22:31:40 -04:00
Tom Rothamel 65c5f38768 gl/gl2: Enable ANGLE when needed. 2020-03-28 19:32:10 -04:00
Beuc ef47381d64 Merge pull request #2114 from renpy/doc-alphamask-dup
doc: reference im.AlphaMask in AlphaMask
2020-03-28 21:30:39 +01:00
Tom Rothamel b41f74dd94 Fix typo.
Fixes #2142.
2020-03-28 02:16:14 -04:00
Tom Rothamel 2a64a0a198 uguu: Add support for switching between gl and angle. 2020-03-27 02:00:58 -04:00
Andy_kl 577822ee2d Do not mark non-simple define as pure 2020-03-27 03:00:39 +02:00
Andy_kl 8ac29a24d5 Fix typo with py_compile_cache 2020-03-27 01:30:54 +02:00
Tom Rothamel 9572b92e23 Merge pull request #2126 from Beuc/web-odrd-placeholders-master
web: progressive download
2020-03-26 00:36:14 -04:00
Tom Rothamel fc0eaef359 Fix Android and improve iOS video.
See renpy/renpy-build@98452f0d7e for
the other half of the iOS portion of things.
2020-03-25 22:52:55 -04:00
Tom Rothamel 35de85f6b1 Modal screens should keyboard and controller access to screens below them.
Fixes #2137.
2020-03-24 22:50:55 -04:00
Tom Rothamel 6ff35cff3c Check in whitespace changes. 2020-03-24 22:49:09 -04:00
Tom Rothamel 626685f018 Merge pull request #2134 from Moshibit/master
Documentation fix
2020-03-24 02:13:40 -04:00
Moshibit 7928f391cf fix typo 2020-03-22 12:43:16 -06:00
Moshibit bcc35c8ea3 documentation fix
fix example
2020-03-22 12:10:23 -06:00
Moshibit ca4d937cd2 Documentation fix
Add 'show' and 'showmenu' to a text tag documentation
2020-03-21 18:09:39 -06:00
kyouryuukunn e7732b0777 Merge pull request #2140 from kyouryuukunn/the_question_japanese_translation
added the_question japanese translation
2020-03-20 16:19:19 +09:00
kyouryuukunn c4ded1ec8b added the_question japanese translation 2020-03-20 16:17:23 +09:00
kyouryuukunn 0ffb2a96a3 Merge pull request #2138 from kyouryuukunn/tutorial_japanese_200318
Add Tutorial japanese translations and update Launcher japanese translation
2020-03-18 22:20:48 +09:00
kyouryuukunn 45af19d7c3 Update Launcher Japanese 2020-03-18 22:13:51 +09:00
kyouryuukunn fc438a395b Add tutorial Japanese translations 2020-03-18 22:09:50 +09:00
Tom Rothamel f24f004999 r-b: Detect iOS. 2020-03-16 02:21:10 -04:00
Moshibit bf31640d56 fix
the example has the 4 steps
2020-03-14 03:52:03 -06:00
Moshibit 7dbdeb9e9d small fix 2020-03-13 04:39:54 -06:00
Tom Rothamel ef53e08416 Add the ios_create and ios_populate commands.
Fixes #2125.
2020-03-13 02:28:44 -04:00
Tom Rothamel 04df67c9ba r-b: Include lib in the iOS build. 2020-03-11 23:49:22 -04:00
Tom Rothamel 979c51b8a2 Fix an encoding issue. 2020-03-11 22:27:41 -04:00
Moshibit 8bc389c536 small fix
highlight 'from' keyword
2020-03-11 19:38:58 -06:00
Moshibit 175ca26a32 Merge pull request #10 from renpy/master
update from renpy master
2020-03-11 19:34:03 -06:00
Tom Rothamel 3a90997203 py3: Fix another regression. 2020-03-10 22:56:25 -04:00
Tom Rothamel c6227254d2 py3: Fix a regression in lint. 2020-03-10 22:33:54 -04:00
Andy_kl 8b740e7e4b Make it possible to write in SL
key "z", "x" action Return()
instead of creating multiple keys or a new keymap key
2020-03-06 17:27:28 +03:00
Andy_kl a96d45586e Removed action requirement for SL key.
That fixes the exception for:
key "q" action If(False, Return())
as well as in #2066
2020-03-06 16:42:09 +03:00
Andy_kl 3016bda24d Improved renpy.pure function.
If this function is applied to a function in a module, it will be marked correctly.
2020-03-06 16:29:19 +03:00
Sylvain Beucler f1f3e74864 Merge branch 'web-odrd-placeholders' into web-odrd-placeholders-master 2020-03-05 18:57:56 +01:00
Sylvain Beucler fa3161135d Support voice progressive downloads
Introduce new 'voice' type in progressive_download.txt.
Predict 'voice' statements and pre-downloads them; removes files after 3mn to avoid consuming all memory.
Currently auto-voicing is not supported (may need prediction in "say" statement).
2020-03-05 18:52:48 +01:00
Joshua Fehler e918e5f560 Add linting for redefined define/default statements 2020-02-29 15:49:57 -05:00
Tom Rothamel a1fdf456e9 Remove the unused __GLTest displayable. 2020-02-28 01:07:10 -05:00
Tom Rothamel fe8b10b312 Revamp of Renderer selection and GL performance testing.
* Allow the player to select the model-based renderers.
* Remove the framerate test. (This was after seeing a Surface that
  reported the error, but was working fine. Plus, it's not clear
  that DX would have helped.)
* Remove the DirectX installer.
2020-02-27 23:24:11 -05:00
Sylvain Beucler 4afd551621 Merge branch 'web-odrd-placeholders' 2020-02-27 14:51:01 +01:00
Beuc bfcd757d2f Typo 2020-02-27 14:29:42 +01:00
Sylvain Beucler 444ed68f14 Code clean-up
Drop debug statements and refactor launcher integration.
Improve comments and launcher note.
2020-02-27 14:28:54 +01:00
Sylvain Beucler 7ed5656109 Remove static image placeholder (replaced by thumbnails) 2020-02-27 14:25:17 +01:00
Sylvain Beucler 8748c41aab Fix music de-dup 2020-02-27 14:25:17 +01:00
Sylvain Beucler d5f4cd6e77 Add generic include/exclude filtering for downloadable files, drop size-based filtering 2020-02-27 14:25:17 +01:00
Tom Rothamel a9d6bbfd40 r-b: Fix access to pygame.error. 2020-02-22 23:06:59 -05:00
Joshua Fehler bf6b5746b3 Use or operator instead of if statement 2020-02-22 21:51:08 -05:00
Sylvain Beucler b275ac6fe2 Handle very small images 2020-02-20 21:00:57 +01:00
Sylvain Beucler 98ee78a9e3 Use 32x32 rather than 64x64 pixellate preview, so it's less aggressive. 2020-02-20 19:35:12 +01:00
Tom Rothamel 85005a02d2 gl, gl2: Detect GL resets and reset the GL context. 2020-02-20 01:49:55 -05:00
Tom Rothamel c8c3fb1d4b no-set-mode: Remove fullscreen_video. 2020-02-20 01:40:35 -05:00
Tom Rothamel c5111012a5 no-set-mode: Remove the update_mouse function.
This is no longer used by any of the renderers, and it was only
useful in the software renderer, when it was not updating the
screen as a whole.
2020-02-19 02:06:28 -05:00
Tom Rothamel 01624ae28a no-set-mode, gl2: Update gl2 to the new Renderer api. 2020-02-18 20:22:39 -05:00
Tom Rothamel 46685bd20c Remove support for the software renderer from the graphics screen.
Since it's not intended to be used.
2020-02-17 21:10:34 -05:00
Tom Rothamel 2e6c8d66d8 Gut the software renderer.
As Ren'Py become more dependent on GL for functionality and
performance, the purpose of the software renderer is to provide
error messages to players.

As a result, support for fullscreen mode and a custom mouse has
been removed.
2020-02-17 21:09:45 -05:00
Tom Rothamel 9a38052e2c no-set-mode: Move post_init into Interface, where pygame.display.init is. 2020-02-17 21:09:45 -05:00
Tom Rothamel d2aebbeccd no-set-mode: Initialize interface.fullscreen. 2020-02-17 21:09:45 -05:00
Tom Rothamel f86c19dfe8 Merge pull request #2118 from jsfehler/patch-1
no-set-mode: Fix typos in core.py
2020-02-17 01:47:24 -05:00
Tom Rothamel dee9d1d915 no-set-mode: Implement the resize method for gl.
This is called to trigger a resize, which update then handles.
2020-02-17 01:39:00 -05:00
Tom Rothamel adbd29b218 no-set-mode: Remove uses of kill_textures_and_surfaces. 2020-02-17 01:29:56 -05:00
Joshua Fehler 9acefd5d87 Fix typos in core.py 2020-02-16 22:22:09 -05:00
Tom Rothamel 34563e8fe8 no-set-mode: Document the Renderer API.
This was an exercise in clearly expressing what the renderer API
is expected to do.
2020-02-16 21:15:22 -05:00
Tom Rothamel 1557f25505 Avoid deiniting rtt and environ. 2020-02-15 21:43:35 -05:00
Tom Rothamel 608a84cfd3 no-set-mode: Take the size from pygame_sdl2. 2020-02-15 00:31:17 -05:00
Tom Rothamel 88f35b0626 Begin moving to a world where the drawable manages fullscreen mode and size.
This is a much better fit for modern computers, as it means that Ren'Py
can use the window that has been resized for it, rather than having to
restart the video system whenever a resize occurs.
2020-02-14 23:35:05 -05:00
Tom Rothamel 7aa847828e r-b: Do not quit when APP_TERMINATE happens.
The update to the newest SDL on Androd seems to call terminate,
even when the app might come back to life. It's okay to let the
OS kill us, so we do that.
2020-02-13 23:12:29 -05:00
Sylvain Beucler c4e05b949c Match extractible filenames case-insensitively 2020-02-13 18:23:33 +01:00
GimmiRuski d0bf65314f Add splashscreen and presplash documentation 2020-02-13 18:17:58 +01:00
Beuc c85609e711 doc: reference im.AlphaMask in AlphaMask
It took me forever to spot that there are 2 functions with the same name, and the first one in the documentation (which we find through Ctrl+F) did not mention that.
2020-02-13 16:05:50 +01:00
Tom Rothamel a23d1c0c9f Merge pull request #2047 from Andykl/curry-name
Curry name
2020-02-12 22:39:11 -05:00
Tom Rothamel d7c94a14d4 Merge pull request #2111 from Andykl/li-at-list
li: Allow to type comma-separated at list without brackets
2020-02-12 22:37:44 -05:00
Tom Rothamel 045e9beddd r-b: Android wants to run in fullscreen. 2020-02-10 20:39:06 -05:00
Tom Rothamel 3a2dc707bd tq: Make the language picker conditional on fonts being available.
This makes the preferences menu available on Android.
2020-02-09 17:08:26 -05:00
Tom Rothamel 263855a574 r-d: Include the Python library with Android. 2020-02-06 02:01:58 -05:00
Tom Rothamel 3e0ad6d3ad Reduce TODO scanning from O(n^2) to O(n). 2020-02-05 22:57:23 -05:00
Tom Rothamel 8bd55a40a8 Limit how many characters are scanned for TODOs.
So that a single long line doesn't hang building a distro.

Fixes #2110.
2020-02-05 22:41:43 -05:00
Tom Rothamel d6889d52fb py3: Fix reverse iteration.
This fixes a regression introduced in 17b8f03429.
2020-02-05 22:17:51 -05:00
Andy_kl 3209856fd1 li: Allow to type comma-separated at list without brackets 2020-02-06 05:05:12 +03:00
Tom Rothamel e36a583f98 py3: Fix some encoding issues. 2020-02-05 02:53:06 -05:00
Tom Rothamel fbff752054 r-d: Make everything android-specific conditional on renpy.android.
This had mostly been true, but there were a few places where
if the android module had been importable was what mattered.
This has been fixed by moving to a unified Python library.
2020-02-04 02:47:10 -05:00
Tom Rothamel 0113d0a2dc Fix unicode issue when distributing. 2020-02-03 05:01:49 -05:00
Tom Rothamel 40e396860b Use lower-case names in the image location picker. 2020-02-02 01:31:27 -05:00
Andy_kl 0565b02301 Fix regression 2020-02-02 07:57:35 +03:00
Andy_kl 16374acda3 Added pretty repr for defaultdict and OrderedDict 2020-02-02 07:52:50 +03:00
Andy_kl c3c99eebd2 Added possibility to disable Unicode escaping in repr and add console command to toggle it. 2020-02-02 07:52:45 +03:00
Andy_kl f0feb4d7ac Use Python3-like sets repr. 2020-02-02 07:52:29 +03:00
Sylvain Beucler e51f8f1d4c Generate image placeholder previews on build 2020-01-30 21:54:41 +01:00
Joshua Fehler 35aeb61716 Fix typo in nvl_mode.rst 2020-01-30 15:07:00 -05:00
Sylvain Beucler 297c748061 Revert "web: Avoid the use of float arguments."
This work-around was specific to Emterpreter, which is obsoleted by ASYNCIFY.

This reverts commit dce59141a7.
2020-01-28 11:42:26 +01:00
RenpyRemix 95a9b9d148 Removed tuple of tuples in knots 2020-01-27 18:08:05 +00:00
Sylvain Beucler 49e4581fea Use time-based file pruning so long animations don't enter a download-flush loop 2020-01-24 20:58:05 +01:00
Sylvain Beucler 4b7e9b2bc3 Document principle of operation 2020-01-24 19:21:47 +01:00
Beuc b64e9fa0ae doc: fix config.predict_statements default value 2020-01-24 17:11:04 +01:00
Tom Rothamel d1bcbf11fd r-b: Ensure the right launcher program is distributed everywhere. 2020-01-24 00:34:57 -05:00
RenpyRemix e61cdc4f18 Catmull-Rom from ATL knots
Very basic (static elasticity) Catmull-Rom implementation to work with knots in ATL. Slight tweak to allow a knot to be a tuple of tuples and minor documentation changes.
2020-01-22 19:58:40 +00:00
Andy_kl 6b10c9b795 Encode and decode the text during copypaste 2020-01-21 08:02:36 +03:00
Andy_kl f7caa1f402 Remove copied field missed in 0b450d9a 2020-01-21 06:55:26 +03:00
Andy_kl 6dd8e92744 Fix problem with loss index_expression during copy 2020-01-21 06:51:02 +03:00
Andy_kl 9b7bfecbb8 Fix the problem when SL for index refers to tuple member 2020-01-21 06:49:35 +03:00
Tom Rothamel ba2fe63818 Fix printing the packages remaining to be built. 2020-01-19 23:14:34 -05:00
Tom Rothamel 72a8b8c686 Re-enable dmg creation. 2020-01-19 23:13:50 -05:00
Tom Rothamel 209b8d84d6 r-b: Deal with launcher.exe->renpy.exe change, fix mac build. 2020-01-19 22:52:52 -05:00
Sylvain Beucler bd4254cded Music support 2020-01-18 18:59:15 +01:00
Tom Rothamel dd22b51977 doc: Update rot13 example.
Now that rot13 isn't a codec.
2020-01-17 23:11:34 -05:00
Tom Rothamel 37a04188b0 Fix rot-13. 2020-01-15 23:08:12 -05:00
Tom Rothamel 0e649e43aa r-b: Start distributing the windows version. 2020-01-15 01:09:20 -05:00
Tom Rothamel 58592890ed r-b: Start work on distributing renpy-build Ren'Py. 2020-01-14 00:19:57 -05:00
Tom Rothamel ed39c16c4a py2: Json.dump outputs bytes on py2, str in py3. 2020-01-13 20:21:32 -05:00
Andy_kl 0d13b41c0f Print exception which caused on write_rpyc 2020-01-12 14:04:35 +03:00
Tom Rothamel 997905e714 Remove renpy.sh.
This is the start of integrating the renpy-build results into the
Ren'Py build process. As part of this, renpy.sh has been moved into
renpy-build, and is copied here as the dependences are built.
2020-01-11 16:40:58 -05:00
Sylvain Beucler 5f24680a72 Exclude video files from game.zip because porters tend not to do it 2020-01-11 13:56:20 +01:00
Sylvain Beucler 1eccf76695 Use same-size image placeholders 2020-01-11 13:05:29 +01:00
Tom Rothamel 4605113fbd Merge pull request #2084 from Moshibit/master
update old variable names in gui.rpy
2020-01-10 23:26:25 -05:00
Sylvain Beucler d8f98f3cef Decrease default minimum size 2020-01-04 17:13:59 +01:00
Sylvain Beucler 0a650d2491 DynamicImage support 2020-01-04 17:13:09 +01:00
Sylvain Beucler ebd622560b Index image downloads based on requested path; delay downloads pruning 2020-01-04 13:59:15 +01:00
Tom Rothamel 926b4aa498 Merge pull request #2069 from Andykl/doc-fix
Fix mistake in doc string
2020-01-03 20:37:58 -05:00
Tom Rothamel 4b41c44b8a gl2: Avoid multiplying by reverse twice when rendering to texture.
Multiplication by the reverse matrix is now done entirely in GL2Draw.
2020-01-01 00:50:48 -05:00
Tom Rothamel d4f0b12bec gl2: Make triangle indexes unsigned, to double the number in a mesh. 2020-01-01 00:49:58 -05:00
Tom Rothamel ee3730c65f Remove Mesh.copy.
It isn't used, and needs to be maintained - so out it goes.
2019-12-30 01:05:17 -05:00
Tom Rothamel db94e90382 gl2: Copy the # of points in a polygon. 2019-12-30 01:04:57 -05:00
Tom Rothamel f22339accd gl2: Add support for meshes allocated outside of Ren'Py.
That is, zero-copy support for live2d and other mesh frameworks.
2019-12-29 21:59:29 -05:00
Tom Rothamel c2206245ed py2: Use cPickle as pickle.
For performance reasons.
2019-12-29 15:27:04 -05:00
Tom Rothamel 05589d8c9c Boxes should not use the xfill/yfill behavior unless given.
They had been filling when given a minimum or size, which isn't
right.

Fixes #2081.
2019-12-29 15:11:58 -05:00
Tom Rothamel 5b9a630117 Only copy a MusicContext when it changes.
When a game uses a lot of Movies, it can create a ton of channels.
Copying those changes had been taking a lot of time, hence this fix.
2019-12-29 14:44:18 -05:00
Tom Rothamel d07c3e0a16 Autoreload now can handle music files without a restart. 2019-12-29 12:17:27 -05:00
Moshibit 5d22e41c7b update old variable names 2019-12-28 19:37:17 -06:00
Moshibit ed518fd8d4 update old variable names 2019-12-28 19:31:55 -06:00
Moshibit bb17d7f87b update old variable names 2019-12-28 19:20:50 -06:00
Moshibit 15c243daec update old variable names 2019-12-28 18:56:24 -06:00
Moshibit d17657c2d7 Merge pull request #9 from renpy/master
update from renpy master
2019-12-28 18:19:43 -06:00
Tom Rothamel 2e50eec6c3 Drop non-voice volumes when self-voicing is enabled.
Per #2079.

The idea here is that music may often not be mixed with the
thought of self voicing in mind, and so it makes sense to drop
the music and sound mixers when self-voicing is enabled. The
amount to drop by is controllable from the accessibility menu,
for games where this is not desired.
2019-12-28 12:30:51 -05:00
Tom Rothamel 56a4ee81bc Allow Ren'Py to reload images without having to reload everything. 2019-12-28 01:41:20 -05:00
Tom Rothamel a11b2e3977 Add renpy.flush_cache_file.
This removes a the image manipulators that depend on a file from the
image cache when one of the files that are depended on change. This
is also a first draft of the function needed to load files from the
web on the fly.
2019-12-27 21:44:43 +01:00
Tom Rothamel 1a14756ebb gl2: Add Mesh2, a 2D mesh.
Apart from being faster in some circumstances, this is close to
what other platforms (ie, Live2D) use internally, so at some point
we can avoid copying over that data.
2019-12-27 11:53:52 -05:00
Tom Rothamel 2e790dd00b gl2: Sererate out 3d meshes from the Mesh base class.
This is preparation for  a second class that handles only 2d meshes,
which are expected to be most of them.
2019-12-27 01:44:29 -05:00
Tom Rothamel 74b36c6e28 gl2: Remove crop_to_rectangle.
It wasn't used, and isn't going to be used.
2019-12-26 21:05:25 -05:00
Tom Rothamel 793488bdf8 Add renpy.flush_cache_file.
This removes a the image manipulators that depend on a file from the
image cache when one of the files that are depended on change. This
is also a first draft of the function needed to load files from the
web on the fly.
2019-12-25 14:16:34 -05:00
Tom Rothamel 2b6379694e Add the {alt} text tag, making text self-voiced.
Fixes #2074.
2019-12-25 07:44:53 -05:00
Tom Rothamel 3578438623 media: Remove unnecessary thread initialization. 2019-12-24 16:23:44 -05:00
Tom Rothamel 74464fe55d media: Redo media locking and name management.
There was a problem reported whenre Py_DECREF could cause arbitrary
pauses to occur. Now, the names stored inside renpysound are C strings,
rather than Python strings, and so they can be deallocated without
risk of triggering the garbage collector.

Locking has also been somewhat simplified - theree are now two
locks, the audio and name lock, with rules of each. The functions
now do not grab the GIL automatically, as there's no need.
2019-12-24 16:19:56 -05:00
Tom Rothamel e2c63af520 py3: Fix trace. 2019-12-24 15:30:18 -05:00
Tom Rothamel b14a932643 Check in uguu. 2019-12-23 23:52:20 -05:00
Tom Rothamel 08e798ba13 Merge pull request #2062 from Moshibit/master
fix spanish translation and fix documentation
2019-12-23 13:27:29 -05:00
Tom Rothamel 0effdebca9 Remove gl2geometry.
This has been obsoleted by gl2mesh, gl2polygon, and gl2model.
2019-12-22 18:46:40 -05:00
Tom Rothamel caae5a7856 Stop generating renpy.angle.
Now that it's been combined with renpy.gl, there's no need for the
second package.
2019-12-22 18:45:43 -05:00
Tom Rothamel 2f2f236f4a gl2: Use the renderer name to determine gl2es and angle usage. 2019-12-22 18:11:40 -05:00
Tom Rothamel 4fe63ded98 gl2: Remove gl2debug.
It wasn't being used since it caused crashes.
2019-12-22 18:07:18 -05:00
Tom Rothamel c32556c09d Remove a debug print. 2019-12-21 15:15:33 -05:00
Tom Rothamel 47098746d0 Improve Ren'Py running on windows.
Especially the modern Ren'Py that assumes a utf-8 internal encoding.
2019-12-21 01:11:09 -05:00
Tom Rothamel f775088aa3 Remove obsolete modules from Setup. 2019-12-21 01:10:48 -05:00
Beuc 1f59c54ab8 start/stop_predict_screen: fix English 2019-12-19 22:01:40 +01:00
Tom Rothamel ddb8c8c068 gl1: Remove support for OpenGL 1.x, renpy.angle, and non-SDL2 EGL.
This is part of the ongoing modernization program. OpenGL 1.x is
now hopelessly obsolete, so it's gone. SDL2 now supports creating
contexts for us, so we'll use it to manage the EGL path.
2019-12-16 00:45:00 -05:00
Tom Rothamel 9c344ca5da gl1: Remove the dependency on glew.
Now that we have uguu, we use it for the older gl versions as
well. This lets us use SDL to handle all GL contect initialization.
2019-12-15 20:55:27 -05:00
Sylvain Beucler 1ee6f9892a Exclude game/gui/ from downloads to mitigate GUI blacks on start-up (will be configurable later) 2019-12-14 20:41:14 +01:00
Sylvain Beucler 28bab6a226 Warn when image cannot be reloaded, document limitation with manipulated images 2019-12-14 20:35:35 +01:00
Sylvain Beucler b570cf8b38 Rewrite .zip filtering to avoid MemoryError with large files 2019-12-14 20:34:37 +01:00
Sylvain Beucler daa6c48df2 Fix case sensitivity 2019-12-14 20:32:34 +01:00
Sylvain Beucler 6866c21621 Improve error handling 2019-12-14 20:24:29 +01:00
Sylvain Beucler f549935cbb Handle duplicate images and avoid concurrency issues in simulation mode 2019-12-14 20:20:41 +01:00
Sylvain Beucler 7f2fc1a675 First code review
- Use \n separator in renpyweb_remote_files.txt
- Move download code to a new module
- load_core() now throws a DownloadNeeded exception which is caught by Image.load(), calling renpy.webloader.enqueue()
- renpyweb_remote_files.txt is now only processed if downloading is enabled
2019-12-14 20:14:39 +01:00
Sylvain Beucler 2273212809 Support multiple search paths 2019-12-14 20:11:19 +01:00
Sylvain Beucler b81969f1dc Rename dl.png to _dl.png for namespacing reasons
following Renpytom request
2019-12-14 20:10:42 +01:00
Sylvain Beucler a8f3a108a0 Better error handling 2019-12-14 20:03:09 +01:00
Sylvain Beucler 41ba770ecf First testable version 2019-12-14 19:59:17 +01:00
Sylvain Beucler 4c1e048efb First proof-of-concept 2019-12-14 19:56:05 +01:00
Tom Rothamel f8004957c9 uguu: Move to the renpy.uguu package.
This is in preparation for sharing uguu between gl and gl1, so the
dependency on GLEW (and perhaps the renpy.angle package) can go
away.
2019-12-14 13:28:41 -05:00
Tom Rothamel e8ddb39a98 Mark uguugl functions as __stdcall.
This should be the right calling convention for windows.
2019-12-14 12:45:23 -05:00
Tom Rothamel e2cab9b115 Build against the RENPY_BUILD fribidi. 2019-12-14 10:37:44 -05:00
Moshibit 9b5943d12f Update tutorial_video.rpy 2019-12-11 09:27:15 -06:00
Moshibit 80e3c89513 Update tutorial_video.rpy 2019-12-11 09:26:49 -06:00
Moshibit d5d6194a2b Update indepth_transitions.rpy 2019-12-11 09:24:50 -06:00
Moshibit da26b18e73 fix doc string 2019-12-11 09:21:47 -06:00
Moshibit edfb482acb Fix mistakes 2019-12-11 09:00:44 -06:00
Moshibit dec513667f fix documentation 2019-12-11 08:50:58 -06:00
Moshibit e5e5890d3c fix documentation 2019-12-11 08:40:09 -06:00
Tom Rothamel c5dc781b05 Add a Setup file that includes the source for each module.
This is used by renpy-build to compile Ren'Py statically.
2019-12-09 21:07:05 -05:00
Moshibit af467d7d8c minor fixes and quoted keywords 2019-12-08 09:02:30 -06:00
Moshibit a8c505305e quoted keywords 2019-12-08 08:27:00 -06:00
Moshibit 31ef127e98 quoted keywords 2019-12-08 08:17:55 -06:00
Moshibit 14241f5ebf minor fixes 2019-12-08 08:13:49 -06:00
Moshibit 64a55d6556 Quoted Keywords 2019-12-08 08:09:51 -06:00
Moshibit b026b49d43 Quoted Keywords 2019-12-08 07:22:02 -06:00
Moshibit 5eefa10b86 quoted keywords 2019-12-07 11:11:59 -06:00
Moshibit d86475a16a quoted keywords 2019-12-07 11:03:38 -06:00
Moshibit 17af380e31 quoted Keywords 2019-12-06 09:23:46 -06:00
Moshibit a1943bb644 quotedKeywords 2019-12-06 09:01:02 -06:00
Moshibit cffab0d9dc quoted keywords 2019-12-05 09:17:55 -06:00
Moshibit 21cd48616b minor fixes 2019-12-05 08:27:35 -06:00
Moshibit d68ca61ab7 Use of single quotes in the Keywords. 2019-12-05 07:57:15 -06:00
Tom Rothamel 9985d24aed Add a command to generate files without actually building. 2019-12-03 21:00:56 -05:00
Andy_kl 00544ab0bf Fix mistake in doc string 2019-12-03 01:14:06 +03:00
Moshibit 9fd78e4000 fixes and quoted keywords 2019-11-30 10:07:30 -06:00
Moshibit ab03e69b6b Use of single quotes in the Keywords. 2019-11-30 08:45:03 -06:00
Moshibit d00cad3d79 Merge pull request #8 from renpy/master
update from renpy master
2019-11-30 08:19:23 -06:00
Tom Rothamel 82ac0a694f Merge pull request #2066 from Andykl/if-action
Do not raise error when Timer has None as the action
2019-11-29 23:12:59 -05:00
Tom Rothamel 5d642ce01d Let renpy.dynamic take keyword arguments.
Fixes #2068.
2019-11-28 12:07:55 -05:00
Tom Rothamel 7d23dfa1de py3: Assume future exists in the pythonpath. 2019-11-27 23:52:36 -05:00
Tom Rothamel ef5f0ed5ab py3: Ensure sys.modules, __name__, and __path__ all use native str. 2019-11-26 21:56:03 -05:00
Tom Rothamel da2fa5d7ec py3: Add compatible .keys, .values, and .items methods to RevertableDict. 2019-11-26 20:25:37 -05:00
Tom Rothamel 57e16e506d py3: Add the 'rpy python 3' statement.
This compiles python in a .rpy file in a way that is more compatible
with Python 3. (It enables Python 3 division, and will enable Python3
.items(), .keys(), and .values().)
2019-11-26 19:37:49 -05:00
Andy_kl 863fab3880 Do not raise error when Timer has None as the action 2019-11-26 22:58:47 +03:00
Tom Rothamel 180cb0e4dd py3: Get the launcher starting up in Python 3. 2019-11-25 17:49:33 -05:00
Tom Rothamel be3643b9c9 gl2: Improve mesh-space clipping.
* Clip offset per-child.
* Clip render-to-texture.
2019-11-23 23:25:01 -05:00
Tom Rothamel ba6b9e223d gl2: Implement clipping in mesh coordinates.
This eliminates the need to transform the mesh back to viewport
coordiates before clipping, and hence should improve accuracy by
skipping that step.
2019-11-23 00:07:53 -05:00
Tom Rothamel 8c3809d3e2 gl2: There are 3 vertices per triangle. 2019-11-22 01:46:01 -05:00
Tom Rothamel 328a2c6b05 gl2: Get mesh-based gl2 to the point of running.
It doesn't render anything, yet - but it's at least starting up and
able to run to the point of displaying a blank window.
2019-11-21 23:36:48 -05:00
Tom Rothamel 6d8690834f gl2: Move the model methods over to gl2model. 2019-11-21 01:01:47 -05:00
Tom Rothamel 025bcd1c36 Name 7.4.0. 2019-11-18 21:35:19 -05:00
Tom Rothamel 666a24fd0b py3: Write the RPYC2_HEADER in binary. 2019-11-18 01:00:08 -05:00
Tom Rothamel 0809c9f07b py3: Pass unicode to strftime. 2019-11-18 00:58:36 -05:00
Tom Rothamel d379e0e2fe Ensure xminimum and yminimum are never None.
They always should be at least 0, and None makes some of the math
wrong.
2019-11-17 23:49:32 -05:00
Tom Rothamel eedd357fe9 py3: Add sort keys to sorts where some elements are not orderable. 2019-11-17 21:30:34 -05:00
Moshibit aed7ff7ae6 minor fix in spanish translation 2019-11-17 20:21:31 -06:00
Moshibit 2ffa24514d Merge pull request #7 from renpy/master
Update from renpy/master
2019-11-17 20:11:54 -06:00
Tom Rothamel 9d595931e2 py3: Export null from display.transform to display.motion.
This cleans up after a change in imports.
2019-11-17 20:24:24 -05:00
Tom Rothamel d810c73d81 py3: Move to using the PyGILState APIs.
These are reentrant ways of getting the GIL.
2019-11-17 20:22:13 -05:00
Tom Rothamel 32e111099e py3: Fix a sort-first issue in focus, add index0 helper for this. 2019-11-17 19:39:30 -05:00
Tom Rothamel bbb846bd3b py3: Be stricter about double-locking of threads.
Python 3.8 was producing an error when trying to swap to the
current thread, so we make sure it doesn't do that.
2019-11-17 17:41:41 -05:00
Tom Rothamel e7175509d2 py3: Remove the hex codec on Py3. 2019-11-17 12:44:10 -05:00
Tom Rothamel 1ebb3ff5ed py3: Temporarily disable Py3 const analysis.
This is because a Python3-compatible version needs to be written.
2019-11-17 12:43:21 -05:00
Tom Rothamel 193cf9a37c py3: Remove ur string prefix. 2019-11-17 12:42:45 -05:00
Tom Rothamel 957980866f py3: Remove obsolete file alias. 2019-11-17 12:42:14 -05:00
Tom Rothamel 5fecf8aa88 py3: object.__new__ does not take arguments. 2019-11-17 12:41:41 -05:00
Tom Rothamel 17b8f03429 py3: Simplify some of the use of ranges in renpy.display.core. 2019-11-17 12:40:27 -05:00
Tom Rothamel 88dee147c4 py3: Check that android is importing correctly.
A temporary thing, until I can figure out why android is being
created as an implicit namespace package.
2019-11-17 12:36:19 -05:00
Tom Rothamel dc3c21a216 py3: Remove method binding magic for Transform.render.
It wasn't working in python3, and the little performance it adds
isn't really worth the weirdness.
2019-11-17 12:32:27 -05:00
Tom Rothamel e971a7e90f py3: Support python3 in renpy.compat.
Mostly by including py3 versions of the names it exports.
2019-11-17 12:29:06 -05:00
Tom Rothamel f246611838 py3: Write the BOM directly.
Now that we're using unicode strings and unicode files, we can't
use codecs.BOM, which is a byte string.
2019-11-17 12:28:03 -05:00
Tom Rothamel f2bebb42f3 py3: Access function name through func.__name__. 2019-11-17 12:26:09 -05:00
Tom Rothamel cb15f18415 py3: Fix comprehension syntax for 00splines.rpy. 2019-11-17 12:25:20 -05:00
Tom Rothamel ce40000f77 py2: Changes required to get renpy.gl working. 2019-11-17 12:24:40 -05:00
Tom Rothamel f0465baebe py3: Ensure that comparisons used comparable types. 2019-11-17 12:23:22 -05:00
Tom Rothamel a51c9b714b py3: Use new names for modules and functions. 2019-11-17 12:21:41 -05:00
Tom Rothamel aa3979f0f9 py3: Various bytes->unicode related changes. 2019-11-17 12:17:54 -05:00
Tom Rothamel 82c2e05fe4 py3: Support Python 2 and 3 in python.py
Other than changes in methods and the removal of ur strings, this
deals with the Py2 ast using byte strings, while Py3 uses unicode
strings.
2019-11-17 12:13:13 -05:00
Tom Rothamel b3ca90f6ac py3: Use unicode to access os.environ. 2019-11-17 12:09:05 -05:00
Tom Rothamel 1d3a46beef py3: Remove uses of .iter{items,keys,values} and xrange. 2019-11-17 12:05:17 -05:00
Tom Rothamel 8fe528c531 py3: Ensure hashlib hashes are only given bytes. 2019-11-17 11:49:55 -05:00
Tom Rothamel c2beee395b py3: Futurize renpy.audio. 2019-11-17 11:38:49 -05:00
Tom Rothamel 5684b75112 Allow renpy to import even if _renpy is missing.
This makes building from scratch easier.
2019-11-17 11:38:04 -05:00
Tom Rothamel 58cf37ddf5 py3: Add support for building under and for Python 3. 2019-11-17 11:25:40 -05:00
Tom Rothamel 08388537aa py3: Futurize generate_styles. 2019-11-17 11:22:58 -05:00
Tom Rothamel 275be03abf py3: Dict iteration in pyx.
Cython implements .iteritems, .itervalues, and .iterkeys for dicts
in a way that works with Python 3 - so long as it knows that it's
dealing with a dict type. This add some annotations to help it out.
2019-11-17 00:41:32 -05:00
Tom Rothamel 25f8ac8c51 py3: Futurize renpy.translation. 2019-11-16 23:33:30 -05:00
Tom Rothamel bfdc64f78b py3: Futurize python in renpy.text. 2019-11-16 23:21:18 -05:00
Tom Rothamel 3cc1eae159 py3: Futurize python in renpy.gl, renpy.sl2, and renpy.test. 2019-11-16 23:01:25 -05:00
Tom Rothamel fd2a63be15 py3: Futurize renpy.display package. 2019-11-16 22:16:02 -05:00
Tom Rothamel 52e447f8b7 py3: Futurize the rest of the renpy package. 2019-11-16 20:42:48 -05:00
Tom Rothamel d6a9a3c2dc py3: Convert to future up to character.py 2019-11-15 01:48:07 -05:00
Tom Rothamel 4755f10ccb py3: Start moving from six to future via renpy.compat.
This is the start of a series of changes that will embrace future's
philosophy - that Python 2/3 source should be as close to Python 3
as possible - and even extended a bit, like with dictviews.

We do have to pick and choose with future - it's important that
Ren'Py remain performant over the transition period - but things
like using sys.modules to map modules to their new Python 3
locations does appeal to me.
2019-11-15 00:16:57 -05:00
Tom Rothamel 78b3bf83f0 py3: Do not reload compat modules. 2019-11-14 22:13:58 -05:00
Tom Rothamel 1ecd8c5ff0 py3: Move dictviews into renpy.compat namespace. 2019-11-14 00:51:56 -05:00
Tom Rothamel 3de8416040 py3: Trigger .items() change differently.
It now triggers on: from __future__ import with_statement, division.

This should be a bit safer, because with_statement is obsolete - even if
it is used by any Python, it can be removed without changing the
semantics of the program. (We can't trigger _just_ on it, as all
old .rpycs are compiled with that flag.)
2019-11-13 19:20:29 -05:00
Tom Rothamel dbd318587c py3: Allow .items(), .keys(), and .views() to return views.
Right now, this is opted into when "from __future__ import division"
is given, and lets us program using Python 3's dict semantics while
still working in Python 2.
2019-11-13 03:11:21 -05:00
Tom Rothamel 4e703f6fbe py3: Add a function to patch built-in types.
Probably the only way py3 Ren'Py is going to look acceptable is
to support .items(), and the only way to do that is to patch Python
2.7 to replace the method with one that returns the appropriate
proxy.

While we're at it, we can re-add iteritems() and itervalues(),
makng those accessible to older code via dict.
2019-11-12 01:34:36 -05:00
Tom Rothamel 7c030c771b gl2: Implement scaling for model.
And use it to test subsurface.
2019-11-11 22:55:24 -05:00
Tom Rothamel 33e617da15 gl2: Add the Model class. 2019-11-11 02:01:12 -05:00
Tom Rothamel e0da79fc79 Only duplicate the child of a DynamicDisplayable if it changes. 2019-11-10 12:57:33 -05:00
Tom Rothamel ed5fb83c57 matrix: Add a scale constructor. 2019-11-10 12:52:55 -05:00
Tom Rothamel 303517a6de Make the matrix constructors into methods on Matrix.
With each one having a python and cython equivalentd, since cpdef
isn't allowed for static methods.
2019-11-09 22:23:25 -05:00
Tom Rothamel 40bd76ef64 gl2: Add a mesh-rectangle intersection method.
Saves memory by not actually having to make the polygon.
2019-11-09 00:51:25 -05:00
Tom Rothamel 1636a5679c Disable autosave while at a splashscreen.
Fixes #2045.
2019-11-08 23:50:31 -05:00
Tom Rothamel b9677d28ed Add the _autosave variable.
This is a variable that determines if autosaving is allowed.
2019-11-08 23:50:17 -05:00
Tom Rothamel 52aeaf1e64 Merge pull request #2054 from Andykl/fix-2053
Wrap actions box on overlap in exception screen.
2019-11-08 22:39:43 -05:00
Tom Rothamel c2f969441c Merge pull request #2052 from Moshibit/master
Spanish translation update
2019-11-07 22:32:29 -05:00
Tom Rothamel 02bfd59c48 gl2: Extract model out into its own file. 2019-11-06 22:10:33 -05:00
Tom Rothamel 635de64568 gl2: Remove the Mesh/Data distinction.
Now a Mesh contains the geometry data, and we'll have Model to
contain the transformation and other data.
2019-11-05 22:11:13 -05:00
Tom Rothamel b085a319d2 Allow matrix multiplication of a polygon. 2019-11-05 01:42:36 -05:00
Andy_kl 94838b1054 Wrap actions box on overlap in exception screen. 2019-11-05 03:18:50 +03:00
Moshibit a7aca69514 translation update 2019-11-04 15:02:11 -06:00
Moshibit f4c2dd91f1 Merge pull request #6 from renpy/master
update
2019-11-04 14:53:55 -06:00
Tom Rothamel 071b065442 gl2: Check in gl2meshcrop. 2019-11-04 13:12:15 -05:00
Tom Rothamel 37f8f0cde5 Redo how renpy.config.return_not_found_label works.
Fixes #2051.
2019-11-04 01:48:56 -05:00
Tom Rothamel 0807d0eccc gl2: Support cropping a Mesh with a Polygon. 2019-11-03 09:57:42 -05:00
Tom Rothamel 270f958827 gl2: rename Mesh.texture_rectangle, and add @staticmethod. 2019-11-03 09:51:03 -05:00
Tom Rothamel b7f06e875e gl2: Meshcrop works with floats. 2019-11-02 21:02:53 -04:00
Tom Rothamel f8412a267e gl2: Move Polygon out into a pxd. 2019-11-02 20:58:36 -04:00
Tom Rothamel 95a2200d53 gl2: Move mesh creation to static methods.
And remove some debug code.
2019-11-02 19:45:45 -04:00
Tom Rothamel bd6ad1cafb gl2: Polygon-polygon intersection. 2019-11-02 18:17:36 -04:00
Lezalith 017f5562a7 Input parameters "allow" and "exclude" can take regex
They can either take a string to stick to the default functionality, or can take a RegEx object created by re.compile.
2019-11-02 17:30:19 +01:00
Tom Rothamel 483a732ec8 gl2: Start work on the new 2d-only Polygon class.
This is intended for use as the clip polygon, and hence it doesn't
need 3d support. (The new Mesh implermentation doesn't use this,
as it has its own polygons.)
2019-11-01 23:46:46 -04:00
Tom Rothamel 5e6c6c622e Remove 'import pygame' from _renpy.pyx. 2019-11-01 23:45:47 -04:00
Tom Rothamel bc1966919e gl2: Rename Point -> Point3
To make room for a Point2 struct that will be part of Polygon.
2019-11-01 23:03:40 -04:00
Tom Rothamel c338c413b5 Migrate the new mesh implementation in from glexperiment. 2019-11-01 22:44:05 -04:00
Tom Rothamel 95302be140 Extend the define statement to take indexing, +=, and |=.
These handle common use cases, like setting dictionary entries
and appending to keymaps.
2019-10-31 21:51:34 -04:00
Tom Rothamel 4b4b1503b0 Add config.return_not_found_label.
This provides a way of recovering from "Could not find return label."
2019-10-30 19:49:20 -04:00
Tom Rothamel 7cf5ea96ad Merge pull request #2048 from Andykl/fix-sl2-pass
Add pass parser to all SL statements
2019-10-29 18:13:07 -04:00
Andy_kl 103116dcec Add pass parser to all sl statements 2019-10-29 13:32:17 +03:00
Andy_kl 8be012945f Fix typo in __hash__ 2019-10-29 12:50:45 +03:00
Andy_kl 18992d49a7 Added __name__ field for Curry instances 2019-10-29 12:49:35 +03:00
Tom Rothamel 5201125d82 Remove debugging code. 2019-10-28 22:53:09 -04:00
Tom Rothamel 3c857c6298 Ensure that pickle can load old RevertableSets.
This fixes a regression introduced in  df88bdfd26 that
could break the loading of the persistent file, and probably also save data. Fixes #2046.
2019-10-28 22:51:32 -04:00
Beuc f443cd1d7d Typo 2019-10-28 16:53:32 +01:00
Tom Rothamel 5b72b5dc7b Stop treating renpy.image_size as pure.
It changes it behavior between the init phase and actual runtime,
by erroring out when used on the main thread.
2019-10-27 22:33:49 -04:00
Tom Rothamel 42326e42ea Create a single texture that's used to blit transparent_tile.
This is a performance increase, as it means that a single draw call
can show the entire transparent_tile image, rather than over a dozen.
2019-10-27 22:29:25 -04:00
Tom Rothamel e5ced3a637 Add memory.txt to the list of files that shouldn't be distributed. 2019-10-27 16:41:17 -04:00
Tom Rothamel 6936da7f31 gl: Avoid calling glGenTextures.
This is part of a series of performance improvements when threaded
optimizations are enabled on Nvidia cards. (__GL_THREADED_OPTIMIZATIONS=1
on Linux.)

glGenTextures was taking a long time - 3ms! - to complete. So we
avoid it entirely, and instead allocate the texture numbers
beforehand and clear the textures without deallocating the
numbers.
2019-10-27 02:03:15 -04:00
Tom Rothamel 989d419a06 py3: Fix import of six. 2019-10-26 22:03:02 -04:00
Tom Rothamel d4ca7ae770 Pressing f8 now enables frame profiling, if not enabled already. 2019-10-26 16:10:35 -04:00
Tom Rothamel e5fb4a034c Merge pull request #2042 from joaquingx/improve-documentation
Improve documentation
2019-10-24 19:36:29 -04:00
Tom Rothamel c38efabf2e Merge pull request #2043 from Andykl/namespace-minstore
Added add_to_all_stores function
2019-10-24 19:30:56 -04:00
Lezalith 7957098da8 Input parameters "allow" and "exclude" can take regex 2019-10-24 21:06:36 +02:00
Beuc c1b077ff17 Don't use emscripten.async_call while already in async mode
This particular use case appears to be safe, but I could make Ren'Py crash with more complex async_call-s.
This may also explain some irregular crashes a while ago when letting RenPyWeb run unattended.
This is somewhat similar to running Python in two threads. In doubt, let's avoid.
Moreover, however autosave is run, the browser will freeze a bit, no significant change.
2019-10-24 20:28:19 +02:00
Andy_kl df58da708d Added add_to_all_stores function 2019-10-24 07:08:14 +03:00
Tom Rothamel 6691bb020e py3: Import six from renpy.six. 2019-10-23 23:28:00 -04:00
Joaquin Garmendia Cabrera 0022da41ea make expression example explicit 2019-10-22 23:43:45 -05:00
Joaquin Garmendia Cabrera 87ad417dcc Fix typo in displaying_images 2019-10-22 23:40:39 -05:00
Joaquin Garmendia Cabrera d7cc94d791 Update python equivalents, format text in dialogue 2019-10-22 23:37:45 -05:00
Tom Rothamel a4ea368c14 Cope with the case where a displayable is invalidated during render.
This is possible for certain things like viewports that share an
adjustement, or bars that are rendered before the corresponding
viewport. This detects this case are restores the render to a
useable state.
2019-10-20 12:54:02 -04:00
Tom Rothamel 4095a55c0b py3: Modernize renpy.main to renpy.pyanalysis. 2019-10-19 19:40:57 -04:00
Tom Rothamel c97899ef1a py3: Run modernize on renpy.easy to renpy.log. 2019-10-18 21:51:15 -04:00
Tom Rothamel c400653b7d Merge pull request #2036 from Andykl/py3-revertable-list
[Py3] Updated behavior of RevertableList
2019-10-17 22:23:22 -04:00
Tom Rothamel 40cefb1db6 Manually merge #2036 into maint branch. 2019-10-17 19:34:05 -04:00
Tom Rothamel 8010128dc1 Update changelog and sponsors. 2019-10-16 22:06:58 -04:00
Tom Rothamel 3a3443ac3b Bump version. 2019-10-16 21:58:01 -04:00
Tom Rothamel e75d5d0ca2 Update changelog and sponsors. 2019-10-16 21:42:36 -04:00
Andy_kl 4a1fe5f4a1 Rework presplash processing 2019-10-15 20:37:51 -04:00
Tom Rothamel 56987e4029 lint: Fix error when adding additional information.
Fixes #2040.
2019-10-15 20:37:37 -04:00
Maxwell Paul Brickner ce71caef97 Updated URL to avoid redirect to HTTPS version
Updated URL in readme to use HTTPS instead of HTTP to avoid redirect to HTTPS version.
2019-10-15 20:37:22 -04:00
Tom Rothamel ff07cf4903 Check in entitlements.plist. 2019-10-15 20:36:04 -04:00
Tom Rothamel 93f2ec7a7d Add the audio directory to the launcher and new games. 2019-10-15 20:35:51 -04:00
Tom Rothamel 7754db33f9 Fix reference to self and not renpy.config. 2019-10-15 20:34:25 -04:00
Tom Rothamel e7a7277a91 Add config.exception_handler.
This allows creators to replace Ren'Py's exception handling with
a system of their own design.
2019-10-15 20:32:39 -04:00
Tom Rothamel fe48d45331 lint: Fix error when adding additional information.
Fixes #2040.
2019-10-15 19:57:31 -04:00
Tom Rothamel 40af08b40c py3: Run modernize on renpy.__init__ to renpy.dump 2019-10-15 18:19:43 -04:00
Tom Rothamel 66a3f97be7 Merge pull request #2039 from Andykl/fix-presplash
Rework presplash processing
2019-10-15 00:50:45 -04:00
Andy_kl 369fa14d66 Rework presplash processing 2019-10-15 04:39:04 +03:00
Tom Rothamel 3ec9628080 Reduce the .rpyc compression to 3.
This should improve write/read time in exchange for a minimal
increase in size.
2019-10-14 00:52:53 -04:00
Tom Rothamel 3f605f4c9d py3: Remove use of .encode("zlib") and .decode("zlib"). 2019-10-14 00:36:03 -04:00
Tom Rothamel 995333386b py3: Make archiver.rpy and loader.py Python 3 compatible. 2019-10-13 23:57:40 -04:00
Andy_kl 5e74207bf4 Added useful list methods from Python 3 2019-10-14 04:46:19 +03:00
Andy_kl 1f9219457a Return processing of slice-objects but only for Python 2 2019-10-14 04:39:53 +03:00
Andy_kl 1acc6efb10 Updated processing of slice-objects 2019-10-14 04:34:52 +03:00
Tom Rothamel c50226d56b doc: Fix sidebar glitch.
Fixes #2012.
2019-10-13 19:50:24 -04:00
Tom Rothamel 12ce248952 Merge pull request #2035 from mbrickn/patch-1
Updated URL to avoid redirect to HTTPS version
2019-10-12 16:43:59 -04:00
Maxwell Paul Brickner f47b4ee32e Updated URL to avoid redirect to HTTPS version
Updated URL in readme to use HTTPS instead of HTTP to avoid redirect to HTTPS version.
2019-10-12 16:43:04 -04:00
Tom Rothamel a77b7ba98f Check in entitlements.plist. 2019-10-11 20:15:56 -04:00
Tom Rothamel 28bd3d91b7 Add the audio directory to the launcher and new games. 2019-10-11 20:03:46 -04:00
Tom Rothamel 26d692714f Fix reference to self and not renpy.config. 2019-10-11 01:44:08 -04:00
Tom Rothamel c682e4f406 Add config.exception_handler.
This allows creators to replace Ren'Py's exception handling with
a system of their own design.
2019-10-11 00:13:36 -04:00
Tom Rothamel 54ec9e5c9b Import pygame_sdl2 rather than pygame, in all places. 2019-10-10 23:59:38 -04:00
Tom Rothamel f1b301efa1 Move package path updates into each package.
This is intended to make it possible to import modules on their
own, for code analysis purposes.
2019-10-10 20:54:06 -04:00
Tom Rothamel cf9d238729 Minor changes to improve code analysis. 2019-10-09 20:21:55 -04:00
Tom Rothamel 04179212a2 Bump version. 2019-10-09 20:20:16 -04:00
Tom Rothamel 5a130d4a4d Merge pull request #2020 from wchill/py3_change_file_constructor
[Py3] Use open() instead of file()
2019-10-09 19:32:08 -04:00
Tom Rothamel 2b81c2501a Merge pull request #2019 from wchill/py3_fix_1
[Py3] Import print_function, remove tuple unpacking
2019-10-09 19:31:50 -04:00
Tom Rothamel f87e17d1a7 Merge pull request #2018 from wchill/replace_exec_execfile_reload
[Py3] Replace exec, execfile, reload with Py3 compatible versions
2019-10-09 19:31:29 -04:00
Tom Rothamel f49a04468b Merge pull request #2017 from wchill/py3_ints
[Py3] Make Python 3 integer related changes
2019-10-09 19:30:49 -04:00
Tom Rothamel d337e47e1f Fix changelog. 2019-10-07 21:05:29 -04:00
Tom Rothamel d10d81647b Fix changelog typo. 2019-10-07 20:52:27 -04:00
Tom Rothamel e7708c23fb Merge pull request #2030 from Andykl/fix-dynamic-image
Fix dynamic image
2019-10-07 20:13:05 -04:00
Andy_kl cc45453f4a More correct clear target on prefix change 2019-10-08 03:11:48 +03:00
Andy_kl 4dba39c57a More correct comment 2019-10-08 00:16:09 +03:00
Andy_kl c570d96458 Remove debug print 2019-10-08 00:07:04 +03:00
Andy_kl 0888c1ae1c Set target back if changing the prefix refers to the same image. 2019-10-08 00:04:27 +03:00
Andy_kl 9222ca20c6 Do not lose target after lock 2019-10-07 23:34:11 +03:00
Andy_kl 4ad03d0f98 Set _duplicatable flag before first targeting 2019-10-07 23:31:40 +03:00
Tom Rothamel de33e805d4 Revert glGet of FBO.
This prevents having to query the GPU, which would force a thread
synchronization in a multithreaded GPU driver.
2019-10-06 13:35:04 -04:00
Tom Rothamel dab57aeec3 Update changelog ad documentation. 2019-10-05 21:45:16 -04:00
Tom Rothamel 82caa0a66a Allow "[prefix_]" to be used in non-style DynamicImages..
Fixes #2016.
2019-10-05 21:26:14 -04:00
Tom Rothamel fe3c6908ea Merge pull request #1932 from Andykl/sl2-fixes
CDSL displayables should allow 'if' statements inside self.
2019-10-04 23:26:10 -04:00
Tom Rothamel 0c39b34c79 Merge pull request #2021 from Andykl/fix-translate
Fix line in Russian translate
2019-10-04 23:24:42 -04:00
Tom Rothamel 05b35745a1 lint: Do not pass formatted text into report.
Fixes #2027.
2019-10-04 22:48:31 -04:00
Tom Rothamel 77c04ac67d Fix docstrings for DragGroup. 2019-10-04 21:47:12 -04:00
Tom Rothamel bb4154c25f Perform FLATTEN during the render-to-texture pass.
This prevents it from leaving single-frame artifacts.
2019-10-03 21:59:38 -04:00
Andy_kl d8ad65e912 Fix line 2019-10-03 13:35:00 +03:00
Tom Rothamel be678bd4ba Update changelog. 2019-10-03 01:42:01 -04:00
Tom Rothamel e12c00ee6d Merge pull request #2015 from Andykl/fix-drag-issues
Set the style prefix for dragged set even after update screen
2019-10-03 01:32:25 -04:00
Tom Rothamel b22c4c1379 Drop textures when changing fullscreen mode on windows.
Fixes a bug where obsolete textures are used, causing the wrong
texture to be displayed.
2019-10-03 00:57:39 -04:00
Tom Rothamel 3a58834de0 Fix issues caused by a double-RTT with shared resources. 2019-10-02 23:44:46 -04:00
Eric Ahn 7287bec5d1 Change file constructor to open 2019-10-02 18:39:32 -07:00
Eric Ahn e8325d852a Fix print statements again 2019-10-02 18:38:50 -07:00
Eric Ahn 85bb261af3 Remove tuple unpacking in parameter lists 2019-10-02 18:38:50 -07:00
Eric Ahn 9336778f25 Feature detect reload 2019-10-02 18:27:55 -07:00
Eric Ahn 06543a8d8d Replace reload 2019-10-02 18:23:58 -07:00
Eric Ahn 7e10b963bb Replace exec 2019-10-02 18:23:58 -07:00
Eric Ahn 4d98761abd Replace execfile 2019-10-02 18:23:58 -07:00
Tom Rothamel d2b96c0eab Bump version. 2019-10-02 20:26:12 -04:00
Eric Ahn f452540ad0 Add version check and define the long type if needed 2019-10-02 16:15:02 -07:00
Eric Ahn 2b65a69611 Import the int builtin as long 2019-10-02 15:48:04 -07:00
Eric Ahn 8c37264d84 Remove long constants and use new octal syntax 2019-10-02 15:40:53 -07:00
Eric Ahn 8ab711722c Fix integer division and remove long type 2019-10-02 15:24:42 -07:00
Andy_kl b3b4036955 Update Drag's prefix of the current dragging even after restart_interaction
Per #2014
2019-10-02 23:18:49 +03:00
Andy_kl 544dde6d5c Set the style prefix for dragged set even after update screen
Per #2014
2019-10-02 16:16:00 +03:00
Tom Rothamel 3002a1b019 Merge pull request #2011 from lunalucid/typo-fixes
Some typo fixes on config.rst and displayables.rst
2019-10-01 01:00:02 -04:00
lunalucid 08a621fdcf Some typo fixes on config.rst and displayables.rst 2019-09-30 22:53:06 -06:00
Tom Rothamel 3ba9569ace Allow character to call a function to supply its name.
Fixes #2007.
2019-09-30 22:46:25 -04:00
Tom Rothamel 166807fc76 Update credits. 2019-09-30 19:56:55 -04:00
Tom Rothamel 628a09d187 Merge pull request #2010 from lunalucid/correct-linespacing
Correct preference 'font vertical spacing' to 'font line spacing'
2019-09-30 01:58:16 -04:00
lunalucid e4348c52d6 correct preference 'font vertical spacing' to 'font line spacing' 2019-09-29 22:38:41 -06:00
Tom Rothamel 8f62aac732 Update credits. 2019-09-29 19:39:55 -04:00
Tom Rothamel 9f0a05fc6b Remove manual notarization.
It's now integrated into the app/dmg signing scripts, making it
a walk-away process.
2019-09-29 10:36:38 -04:00
Tom Rothamel d492249835 Merge pull request #2005 from Herpior/viewport-edgescroll-fix
Clear edgescroll timer when mouse moved out of bounds
2019-09-28 21:40:05 -04:00
Tom Rothamel dcfc23d2f3 Fix matrix.is_unit_aligned.
The implementation was wrong, and so it would never return true.
2019-09-28 18:43:37 -04:00
Beuc ad5e11c710 Typos 2019-09-28 10:06:54 +02:00
Tom Rothamel 5354bb0762 Fix a problem that prevents installing the android sdk. 2019-09-28 00:45:36 -04:00
Tom Rothamel f721662ef9 Merge pull request #2006 from renpy/Beuc-patch-1
config.cache_surfaces is False by default
2019-09-27 16:23:24 -04:00
Beuc c6641e53fe config.cache_surfaces is False by default 2019-09-27 22:20:04 +02:00
Roope Herpiö b97b29d894 Clear edgescroll timer when mouse moved out of bounds 2019-09-27 15:08:02 +03:00
Tom Rothamel 32eb7be5a1 Fix name. 2019-09-27 01:24:50 -04:00
Tom Rothamel 0b8bf87eaf doc: Fix changelog and update credits. 2019-09-26 20:12:56 -04:00
Tom Rothamel 857d776538 Remove information about mac signing.
It's best done with renpy/mac-notarization, rather than the
current system.
2019-09-26 18:33:29 -04:00
Tom Rothamel df51f5233f Finish notarization of Ren'Py.
This includes the notarization of the DMG that Ren'Py is
distributed with.
2019-09-24 20:50:50 -04:00
Tom Rothamel aed2625486 Merge pull request #2004 from uyjulian/avoid_spam_threading
Join previous autosave thread before spawning a new one
2019-09-24 01:58:56 -04:00
uyjulian 47271b7af9 Join previous autosave thread before spawning a new one 2019-09-24 00:53:54 -05:00
Tom Rothamel d8050e9f5d Use a tarball for notarization.
Turns out that a .zip can't really represent the extended
attributes used for signing some files properly, but the
tar format can. So we use that to ship things over, and
get a working .dmg.
2019-09-24 01:17:34 -04:00
Tom Rothamel b639171118 Scripts for notarizing Ren'Py. 2019-09-23 22:14:46 -04:00
Tom Rothamel 25e66d3150 More mac codesigning improvements.
* Do not sign the dmg.
* Fix giving the path to the entitlements.
2019-09-21 15:34:41 -04:00
Tom Rothamel dcaa97a70e Improve support for codesigning with entitlements. 2019-09-21 01:08:46 -04:00
Tom Rothamel e0fd8dc4d5 Update changelog and credits. 2019-09-20 00:08:04 -04:00
Tom Rothamel 2cc4bdd407 doc: Mention the Android version change in the changelog. 2019-09-19 23:41:09 -04:00
Tom Rothamel 8ccfb9abc7 Check in updated keywords. 2019-09-19 23:21:41 -04:00
Tom Rothamel 4734fb62f4 Merge pull request #2002 from Herpior/viewport-edgescroll-fix
Fixed bug with edgescroll in viewport
2019-09-19 22:08:25 -04:00
Tom Rothamel 8353120f55 doc: Changelog and sponsors. 2019-09-19 21:17:23 -04:00
Tom Rothamel 5a081b6dc7 doc: Web changelog, from Beuc. 2019-09-19 19:57:16 -04:00
Tom Rothamel 52cdcb699a doc: Changelog. 2019-09-19 02:25:05 -04:00
Tom Rothamel e190596f3d Add backwards compatibility for force_step. 2019-09-19 02:18:14 -04:00
Tom Rothamel 9352339f5b doc: Audio directory. 2019-09-18 01:41:58 -04:00
Tom Rothamel 5c315d02d1 doc: Fix. 2019-09-17 19:43:49 -04:00
Tom Rothamel 86a95abb60 Document AudioData. 2019-09-17 19:42:13 -04:00
Tom Rothamel cc03f54738 Allow audio data to be encapsulated in AudioData. 2019-09-16 23:56:26 -04:00
Tom Rothamel f40ff85436 Include the wave and sunau files with Ren'Py. 2019-09-16 22:25:53 -04:00
Tom Rothamel 3c6918c36f Fix crash caused by non-existent screen in save. 2019-09-15 10:40:35 -04:00
Tom Rothamel 754aec0507 Ensure that InputValue is called when an Input is shown for the first time. 2019-09-14 21:02:31 -04:00
Tom Rothamel 9f800275ad Remove spurious return. 2019-09-14 19:00:28 -04:00
Tom Rothamel cf05311158 Make the name of the screen used by renpy.input configurable. 2019-09-14 18:59:59 -04:00
Tom Rothamel 644d24dcc4 Avoid error if a a substitution doesn't exist during screen prep.
I believe that improvements to screen analysis make text more
predictable, which caused this problem.
2019-09-14 18:59:59 -04:00
Roope Herpiö 87f076e78c Mouse motion events on viewport no longer reset self.edge_last_st unless necessary 2019-09-13 21:11:35 +03:00
Tom Rothamel b0cc98cea2 Merge pull request #1998 from Andykl/missed-ignore
Minor fixes
2019-09-13 14:00:56 -04:00
Tom Rothamel 498ea82ec9 Document how arguments are passed to screens in modern Ren'Py. 2019-09-12 21:41:58 -04:00
Tom Rothamel e587790021 Move the start callbacks after the defaults.
Per #2001.
2019-09-12 01:05:57 -04:00
Tom Rothamel bbaf654ef9 Mark Ren'Py collection types as pure.
More specifically, __renpy__list__, __renpy__set__, and
__renpy__dict__.

Per #1935.
2019-09-11 22:57:29 -04:00
Tom Rothamel 44b5af95ff Merge pull request #2000 from Andykl/fix-drag-issue
Set correct style_prefix for drop object after restart interaction.
2019-09-10 19:44:40 -04:00
Andy_kl 5470f86c39 Set correct style prefix for drop object after restart interaction. 2019-09-11 02:38:44 +03:00
Tom Rothamel 8e04c766de Hide the notify screen on rollback.
Fixes #1951.
2019-09-10 01:17:32 -04:00
Tom Rothamel 82b396d424 The non-screens menu indicates that it shows the window.
Fixes #1981.
2019-09-09 23:27:27 -04:00
Tom Rothamel a0dad58dbf Ignore printable keycodes without unicode.
This should fix a race condition where that could cause unprefixed
key commands (like 'v' or 'a') to trigger if KEYDOWN is present
but the TEXTINPUT hasn't been delivered yet.
2019-09-09 22:57:33 -04:00
Tom Rothamel d28ecb39ff In a multipart statment like menu, call from should use the first part.
Fixes #1996.
2019-09-08 20:28:56 -04:00
Andy_kl 6597edcada Add vibrate to drag alternate 2019-09-09 02:03:19 +03:00
Andy_kl 5c44e738e6 Fix wrong event ignore 2019-09-09 01:49:44 +03:00
Tom Rothamel 7e295d67b5 Call renpy.shown_window from nvl_menu.
Fixes #1934.
2019-09-08 01:26:49 -04:00
Tom Rothamel 61eb81c79d Lock a button's style after _in_current_store.
Fixes #1973.
2019-09-08 01:15:05 -04:00
Tom Rothamel df32d31113 Throw a hard exception when gui.init is called outside of the init phase. 2019-09-08 00:59:07 -04:00
Tom Rothamel 59587015ba doc: Fix incomplete sentence.
Fixes #1962.
2019-09-08 00:55:27 -04:00
Tom Rothamel 312c49f194 Fix #1982. 2019-09-08 00:20:49 -04:00
Tom Rothamel 7c75a79c13 Deal with a problem when a FontGroup is replaced.
Fixes #1994.
2019-09-07 23:56:17 -04:00
Tom Rothamel e6546189eb ffmedia: Fix the mixing of mono files into stereo.
Fixes #1943.
2019-09-07 23:28:11 -04:00
Tom Rothamel 9500f658a3 Merge pull request #1889 from Andykl/change-get-layer
Receive a layer from default_layer in all exports funcs
2019-09-07 11:06:40 -04:00
Tom Rothamel 6d9bcff1f6 Merge pull request #1937 from Moshibit/master
patch - minor fixes
2019-09-07 11:05:57 -04:00
Tom Rothamel 3a352af1e5 Merge pull request #1965 from Beuc/gleshighp
gles: handle GPUs that do not support highp
2019-09-07 11:04:34 -04:00
Tom Rothamel 87b323a3d4 Tweak documentation. 2019-09-07 10:56:37 -04:00
Tom Rothamel 1bf97965b8 Merge pull request #1967 from Andykl/is_init_phase
Added is_init_phase in exports.
2019-09-07 10:55:29 -04:00
Tom Rothamel eafcbf572f Merge pull request #1997 from pionere/sound-fix
fixed sound-queue call_back
2019-09-07 10:54:45 -04:00
pionere 427a1542d8 fixed sound-queue call_back
call queue_empty_callback only if the queue is really empty
2019-09-07 16:37:50 +02:00
pionere ee53f232aa Revert: prevent crash when get_selected is called on a non-existent field 2019-09-07 16:32:17 +02:00
Tom Rothamel 7c03642cb5 Fix tyop that broke itch on mac. 2019-09-06 20:11:40 -04:00
Tom Rothamel 4347c89c15 gl2: Implement is_pixel_opaque. 2019-09-06 01:50:55 -04:00
Tom Rothamel 9783a0a733 gl2: Move the fbo into GLDraw.
This lets the same fbo be shared between the texture system and
things like screenshots and is_pixel_opaque.
2019-09-05 02:29:25 -04:00
Tom Rothamel e5252af42b Automatically voice character menu captions.
Fixes #1991.
2019-09-04 03:37:55 -04:00
Tom Rothamel 094009fa3a gl2: Replace the renderbuffer with a texture.
RGBA renderbuffers don't seem to be supported well on WebGL or
OpenGL ES, at least for the low-end platforms.
2019-09-03 00:17:10 -04:00
Tom Rothamel 6471986ea9 oldgl: Bind a texture to the framebuffer, not a renderbuffer.
Creating RGBA or RGBA8 renderbuffers doesn't seem to be supported
very well (at leeast in webgl), while texture attachments seem to work.
2019-09-02 22:28:29 -04:00
Tom Rothamel ab97732865 oldgl: Use renderbuffer copying to render textures.
This is a backport of a performance improvement from the gl2
branch, where profiling reported that rebinding the framebuffer
was very slow, and simply copying the pixels out is much
faster.
2019-09-01 22:04:49 -04:00
Tom Rothamel 4f90718eaa oldgl: Expose renderbuffer functions. 2019-09-01 22:00:57 -04:00
Tom Rothamel 2aa796d418 glold: Remove support for OpenGL ES 1
This wasn't used for anything, and it's obsolete, so out it goes.
2019-09-01 21:51:46 -04:00
Moshibit e62ee21922 translation correction 2019-08-31 22:47:17 -05:00
Moshibit 218cb677cd Delete indepth_minigame.rpyc 2019-08-31 22:46:44 -05:00
Moshibit fe0e129ad3 translation correction 2019-08-31 22:45:40 -05:00
Moshibit 630ed80eb5 translation correction 2019-08-31 22:33:55 -05:00
Moshibit 2b5d40053d translation correction 2019-08-31 21:48:12 -05:00
Moshibit 8728fd137a translation correction 2019-08-31 21:44:18 -05:00
Moshibit 7b34ec1ba3 translation correction 2019-08-31 21:04:06 -05:00
Moshibit 3f785ee366 Delete indepth_transitions.rpyc 2019-08-31 21:03:36 -05:00
Moshibit 1f9401a602 translation correction 2019-08-31 21:02:32 -05:00
Moshibit 91a0677f67 translation correction 2019-08-31 19:45:36 -05:00
Tom Rothamel 1392fb9239 gl2: Fix order of matrix operations. 2019-08-31 20:42:19 -04:00
Moshibit ac902ee733 translation correction 2019-08-31 19:06:40 -05:00
Tom Rothamel 6031917511 Fix matrix order. 2019-08-31 17:39:41 -04:00
Tom Rothamel 0e6ad371fe Merge pull request #1938 from Andykl/doc-afm_enabled
Doc afm enabled
2019-08-30 21:28:27 -04:00
Tom Rothamel ead5c63eac Merge pull request #1939 from psunbury/patch-1
Added that the default setting are in options.rpy
2019-08-30 21:27:55 -04:00
Tom Rothamel 18827a8ab3 Merge pull request #1952 from Andykl/atl-fix
Fix missed continue
2019-08-30 21:27:31 -04:00
Tom Rothamel 8c81811177 Merge pull request #1955 from jsfehler/pref_typo
Fix typo in common/00preferences.rpy
2019-08-30 21:27:16 -04:00
Tom Rothamel ce634662bd Merge pull request #1969 from renpy/Beuc-doc-python
doc: python: clarify other stores usage
2019-08-30 21:26:59 -04:00
Tom Rothamel 13c32894cf Document renpy.random.shuffle.
Per #1989.
2019-08-29 21:51:13 -04:00
Tom Rothamel 26e0f1617e gl2: Use the reverse matrix to multiple rendered textures. 2019-08-29 21:49:33 -04:00
Tom Rothamel 6754d50c12 Merge pull request #1984 from tdh8316/Korean-translation
Improve Korean translation
2019-08-26 21:39:46 -04:00
Donghyeok Tak ebe8264b1d Cleanup translations 2019-08-25 22:01:52 +09:00
Donghyeok Tak 5c9a1066e3 Improve Korean translation 2019-08-25 21:47:33 +09:00
Tom Rothamel 07a6f3dcbd Compate for audio directory stuff. 2019-08-25 08:27:18 -04:00
Tom Rothamel 3441e0e7f0 Remove pluralization.
Fixes #1983.
2019-08-25 08:14:34 -04:00
Moshibit 3bd9055c5f Add files via upload 2019-08-24 11:41:22 -05:00
Moshibit 2941031b2a Merge pull request #5 from renpy/master
update from renpy/master
2019-08-24 10:26:43 -05:00
Tom Rothamel 627b18a8e8 Merge pull request #1970 from renpy/Beuc-doc-emscripten
doc: reference renpy.emscripten + renpyweb enabling renpy.mobile
2019-08-23 06:45:10 -04:00
Tom Rothamel 681d3a5772 Merge pull request #1972 from Andykl/adjustment-force_step
Adjustment force_step
2019-08-22 05:18:13 -05:00
Tom Rothamel 39be517a0a gl2: Move shaders into the common section.
And introduce a function to register the shaders.
2019-08-20 23:16:28 -04:00
Tom Rothamel 8916575921 Automatically define audio files in the audio namespace. 2019-08-19 00:37:04 -05:00
Tom Rothamel 5288ff876d Use _audio_eval on voice filenames. 2019-08-18 18:36:50 -05:00
Tom Rothamel 067d98cdf0 Improve changes to SelectedIf and SensitiveIf.
This builds on the changes in #1977, so that all Action methods
can be proxied.
2019-08-17 08:58:17 -05:00
Tom Rothamel 65957b3236 Merge pull request #1977 from Andykl/improve-if-actions
Improve SelectedIf and SensitiveIf
2019-08-17 08:37:39 -05:00
Moshibit 726e535f1b corrections 2019-08-16 16:43:37 -05:00
Andy_kl 095a253bf8 Fix doc 2019-08-16 22:48:45 +03:00
Andy_kl d3c36b843e Improve SelectedIf and SensitiveIf 2019-08-16 22:42:17 +03:00
Tom Rothamel b5707d7091 Merge pull request #1953 from Beuc/variants-web
web: set variants according to what the browser runs on
2019-08-16 12:45:22 -05:00
Tom Rothamel 024b0aef81 Merge pull request #1961 from Beuc/fullscreen-web
web: detect when fullscreen status changed externally
2019-08-16 12:44:39 -05:00
Tom Rothamel 365913c267 gl2: Use a depth renderbuffer when rendering-to-texture with depth. 2019-08-15 08:10:13 -04:00
Tom Rothamel a2b8842206 gl2: Optimized path for triangle meshes. 2019-08-14 22:57:56 -04:00
Tom Rothamel dc51db06b1 gl2: If a mesh consists of only one kind of polygon, indicate that. 2019-08-14 22:56:38 -04:00
Tom Rothamel c590c4f956 gl2: Do not give OpenGL precision qualifiers. 2019-08-14 22:53:44 -04:00
Tom Rothamel 3871803088 gl2: Properly name config.depth_size. 2019-08-14 02:44:46 -04:00
Tom Rothamel 40ec6f87ef gl2: Depth buffer and depth testing. 2019-08-14 01:45:29 -04:00
Tom Rothamel 6339c0dfef gl2: Fix reload. 2019-08-10 16:38:24 -04:00
Tom Rothamel 510b7cb909 gl2: Support gles directly, rather than in the preprocessor. 2019-08-10 16:35:53 -04:00
Tom Rothamel 3a011ca2c6 gl2: Allow games to use config.gl2 to opt in. 2019-08-09 21:06:47 -04:00
Andy_kl d12fe12c2b Restore type after rounding 2019-08-09 22:04:23 +03:00
Tom Rothamel 37a128a470 gl2: Remove gl2ftl.pyx, now that a better version is in gl2texture. 2019-08-08 22:12:17 -04:00
Tom Rothamel 9e8b074a16 gl2: Disable gl2debug for now.
I haven't been using it, and it's causing build errors.
2019-08-07 18:31:55 -04:00
Tom Rothamel 3147e71c45 Fix windows build. 2019-08-07 11:22:24 -04:00
Tom Rothamel 60d413f96f gl2: Implement ImageDissolve. 2019-08-05 22:47:59 -04:00
Tom Rothamel 5029e6d078 gl2: Dissolve shader. 2019-08-05 21:59:14 -04:00
Tom Rothamel ef167433f4 gl2: Properly set up textures. 2019-08-05 21:54:00 -04:00
Andy_kl aac1f4c421 Compat this 2019-08-06 04:23:16 +03:00
Andy_kl 0ab0856e37 Doc for this 2019-08-06 04:17:31 +03:00
Andy_kl 760503b124 Added force_step keyword to all Action which uses step. 2019-08-06 04:08:26 +03:00
Andy_kl d16e3eea75 Added round_value process to Viewport 2019-08-06 03:48:44 +03:00
Andy_kl 09fda5505e Added round_value process to Bar 2019-08-06 03:47:03 +03:00
Andy_kl 5d4bb738ef Added force_step keyword and round value to Adjustment 2019-08-06 03:37:33 +03:00
Sylvain Beucler 204a48f577 web: more variants tuning 2019-08-05 14:03:51 +02:00
Beuc 8889ab487d doc: reference renpy.emscripten + renpyweb enabling renpy.mobile 2019-08-05 13:16:24 +02:00
Beuc 06684d692a doc: python: clarify other stores usage
Additional stores are available as local variables in the default 'store' under their name already, consequently 'import store.mystore as mystore' is a no-op
2019-08-05 13:08:57 +02:00
Sylvain Beucler 5f4e6d4ba1 web: set variants according to what the browser runs on 2019-08-05 12:51:52 +02:00
Tom Rothamel 200af0d584 gl2: Add rendering to a Texture. 2019-08-05 03:04:21 -04:00
Tom Rothamel e78828fa3b gl2: Add matrix function generation to Ren'Py. 2019-08-05 03:01:02 -04:00
Tom Rothamel 7e602c256e gl2: Add renpy.display.render.models.
A variable to determine if we are supporting a renderer that
support models (gl2) or quads (sw/gl).
2019-08-04 13:15:48 -04:00
Tom Rothamel 1a8154c78a gl2: Add fields for gl2 to renpy.render. 2019-08-04 12:32:11 -04:00
Tom Rothamel 2d7460bafd gl2: Fix a gc leak through Texture. 2019-08-04 12:21:40 -04:00
Tom Rothamel ae998912f5 gl2: Make renpy.geometry the 'default shader', so it doesn't have to be passed.
While we could have just added it to the tuple of shaders created in
GL2DrawingContext, that would lead to creating a tuple on every
render. So instead, it's added in the shader compiler.
2019-08-04 02:27:49 -04:00
Tom Rothamel e8cd034b7a gl2: Separate Texture and non-texture Models.
Which should make things simpler when determining if a RTT is
required, going forwards.
2019-08-03 16:46:21 -04:00
Andy_kl 900e291cdc Added is_init_phase in exports. 2019-08-03 15:19:18 +03:00
Tom Rothamel cb98d18aa9 gl2: Rename TexturedMesh -> Model. 2019-08-03 02:42:24 -04:00
Tom Rothamel ef4c5aff9e gl2: Do not copy a Polygon, Mesh, or TexturedMesh that didn't change. 2019-08-02 23:00:55 -04:00
Tom Rothamel 6cdcb5dfbc Create a flatten operation type.
This makes RTT entirely the renderer's concern.
2019-08-02 19:39:26 -04:00
Tom Rothamel 797ef0fc25 fix: Duplicate the children of DynamicDisplayable.
Fixes #1966, which causesd a Transform that was added to the
tree of surfaces twice, then rendered in a way that wasn't
cached, to cause a crash.
2019-08-01 22:01:35 -04:00
Tom Rothamel c132df21ca gl2: Dynamically select shader and implement alpha blending. 2019-08-01 02:16:07 -04:00
Tom Rothamel 6ab2df60f4 gl2: Implement texture preloading. 2019-07-31 22:47:05 -04:00
Tom Rothamel 101cb8c348 gl2: Support zero copy texture loading.
At least for the common cases, like loading text into the GPU.
2019-07-31 21:17:54 -04:00
Sylvain Beucler 2f53ddc03e gles: handle GPUs that do not support highp 2019-07-31 15:47:42 +02:00
Tom Rothamel 8a042fe187 gl2: Texture improvements.
* Ask GL for the maximum size.
* Remove the idea of generations - we swap out the loader when a
  generation is obsolete.
* Cache the fbo so changing it is needed less often.
2019-07-31 01:27:02 -04:00
Tom Rothamel f9a61f7567 gl2: Read the maximum texture size from the video card. 2019-07-30 01:11:14 -04:00
Tom Rothamel 79c965ba5d gl2: Deal with precision issues in the barycentric interpolator.
It's the same issue as before - arriving at the same point by
different paths might lead to being outside by a very small
amount, which we don't want.
2019-07-30 00:41:41 -04:00
Tom Rothamel 340db775c5 gl2: Fix method name typo. 2019-07-30 00:34:58 -04:00
Tom Rothamel d1224c0707 gl2: Load large surfaces as tiles. 2019-07-29 08:17:18 -04:00
Tom Rothamel afeb06c1d9 gl2: Change how rectangles work. 2019-07-28 23:32:44 -04:00
Tom Rothamel afad82b082 gl2: The Great Geometry Rewrite (tm)
This improves gl2 Polygons and Meshes by making it clear if a
new object is created or they're updated in place, by supporting
multiplication by matrices directly, and by including the repr
function everywhere.

Really, a quality of life improvement.
2019-07-28 18:33:27 -04:00
Tom Rothamel 2f683b2d69 gl2: Increase the numerical stability of gl2 by dealing with parallel lines. 2019-07-28 00:02:28 -04:00
Beuc d8ec4503a6 doc: fix formatting in sprites.html 2019-07-27 22:51:51 +02:00
Moshibit bb207a7fce Spanish translation correction
short and long must be in English
2019-07-27 11:44:52 -05:00
Sylvain Beucler 629ea6f13f web: detect when fullscreen status changed externally 2019-07-27 15:16:12 +02:00
Tom Rothamel 2a78e0141f gl2: Avoid leaking textures by changing generation too early. 2019-07-27 03:48:03 -04:00
Tom Rothamel 8da9eafd28 gl2: Remove debug print. 2019-07-27 03:28:50 -04:00
Tom Rothamel 1f8e1cacf6 gl2: Use a renderbuffer to load textures.
After extensive profiling my GTX 1060, it appears that using
glFrameBufferTexture2D is unacceptably slow. (300+us for just that
one call). glCopyTexImage seem to be much faster, with realistic
small texture loads (like button images) taking 60us or so.
2019-07-27 03:22:55 -04:00
Tom Rothamel 048f8fea8f gl2: Remove debugging from uguu.
Using KHR_debug gives us the same thing, faster.
2019-07-26 23:47:16 -04:00
Tom Rothamel 229bd5a82d gl2: Enable all debugging. 2019-07-26 23:23:19 -04:00
Tom Rothamel 12405a22d9 gl2: Support using KHR_debug to get error output. 2019-07-26 23:11:25 -04:00
Tom Rothamel 3529d40ba0 Add GetCharacterVolume. 2019-07-25 18:42:54 -04:00
Tom Rothamel 02be00bb78 Add compatibility for tile_ratio to Frame. 2019-07-25 12:36:57 -04:00
Tom Rothamel 189e7d8e4f Merge pull request #1956 from RenpyRemix/master
Add support for tile="integer" to frame. 

This is a version of tiling that always does an integer number of repeats, scaling as necessary to accomplish this.
2019-07-25 12:22:39 -04:00
Tom Rothamel 0956519365 gl2: Fix issues preventing a restart.
* Matrix can now be unpickled.
* deinit -> quit.
2019-07-24 01:32:07 -04:00
Tom Rothamel efbd897832 gl2: Avoid mipmapping, for now.
It changes the look of certainy parts of drawing, and so it needs
to be disabled for now.
2019-07-23 23:56:11 -04:00
Tom Rothamel c6d9b6e0c1 gl2: Fix uninitialized variable. 2019-07-23 23:42:42 -04:00
Tom Rothamel d0bbc81ebf gl2: Return the subsurface when taking a texture subsurface. 2019-07-23 22:52:24 -04:00
Tom Rothamel 662e8227ab gl2: The color used for solid textures should be alpha-premultiplied. 2019-07-23 22:39:47 -04:00
Tom Rothamel 33e3174692 Default to not code-signing for macOS.
Per #1958.
2019-07-23 18:05:40 -04:00
Moshibit dde68dd735 Merge pull request #4 from renpy/master
update from renpy/master
2019-07-23 15:34:15 -05:00
Tom Rothamel 5accb1c3e4 Add repr to texture. 2019-07-23 02:41:34 -04:00
Tom Rothamel 77d8b9b318 gl2: Properly reset the clipping rectangle. 2019-07-23 02:40:32 -04:00
Tom Rothamel 202fc47419 gl2: glEnableVertexAttribArray -> glDisableVertexAttribArray 2019-07-22 21:29:43 -04:00
RenpyRemix 49c0ec0504 Update imagelike.py
Support for tile="integer" in Frame
2019-07-22 23:51:26 +01:00
Tom Rothamel bc437b5e9b gl2: Implement clipping using polygons in the screen space. 2019-07-22 01:15:01 -04:00
Tom Rothamel b4dfcc44cf gl2: Determine if polygons are wound clockwise or counterclockwise.
This might actually change over the lifecycle of a polygon, as the
winding of the polygon changes when it goes from the pygame/Ren'Py
coordinate space to the OpenGL viewport space.

This change means it doesn't matter - polygon intersection can
always occur.
2019-07-22 01:00:00 -04:00
Tom Rothamel 1a98502bdc gl2: Set the number of actual points when restriding a polygon. 2019-07-22 00:52:54 -04:00
Joshua Fehler 977726c3ab Update 00preferences.rpy
Fix typo in common/00preferences.rpy
2019-07-21 23:48:51 -04:00
Tom Rothamel ed9cbfd21c gl2: Support cropping to a viewport-space polygon. 2019-07-21 15:07:46 -04:00
Tom Rothamel 261a0b807d gl2: Redo shaders to minimize allocation. 2019-07-21 01:14:09 -04:00
Tom Rothamel 261718967a gl2: Share the mesh used for ftl. 2019-07-20 23:13:49 -04:00
Moshibit 3e5e77b400 fix code
keyword "menu" cause an exception. Maybe you wanted to put "label" as it usually is after menu
2019-07-20 20:24:36 -05:00
Beuc 7fa4265f15 Remove mistaken file from Moshibit 2019-07-20 23:19:07 +02:00
Andy_kl 995823fbcf Fix missed continue 2019-07-20 23:00:47 +03:00
Tom Rothamel 663961581f Merge pull request #1949 from Andykl/nondevelop-dynamic
Do not raise error if dynamic variable already deleted in pop time.
2019-07-20 01:45:01 -04:00
Tom Rothamel d32946ce53 gl2: Texture loading (and eventually RTT) to its own pass. 2019-07-19 21:15:26 -04:00
Andy_kl 6bd9523780 Do not raise error if dynamic variable already deleted in pop time. 2019-07-20 02:36:48 +03:00
Tom Rothamel b0b49b353e gl2: Fix draw glitches.
These were caused by state that was left behind by the texture
loader.
2019-07-18 23:07:08 -04:00
Tom Rothamel b1b943b456 gl2: Render the Ren'Py surface tree.
This means that we're displaying a partially-correct screen,
rather than just test images.
2019-07-18 02:37:54 -04:00
Tom Rothamel dd5326c205 gl2: Load and display textures. 2019-07-17 22:40:21 -04:00
Tom Rothamel e62cc921c7 gl2: Able to load a surface as a TexturedMesh. 2019-07-16 23:14:41 -04:00
Tom Rothamel d343617616 gl2: Process texure loading through a TextureLoader object. 2019-07-16 02:11:15 -04:00
Tom Rothamel 0cf72637b2 Rename draw.free_memory to draw.kill_textures, unify with deinit.
The differentiation between .deinit() and .quit() was hard to understand.
This change makes it clear - .kill_textures frees all of the OpenGL textures,
while .quit() releases all GL resources.
2019-07-15 22:47:57 -04:00
Tom Rothamel e9312a3604 gl2: Display a solid. 2019-07-14 14:33:52 -04:00
psunbury 39420b940a Added that the default setting are in options.rpy
I spent a lot of time finding where this was set. It would be useful putting what file it is located.
2019-07-13 19:46:56 -07:00
Andy_kl d8655be2c5 Correct renpy.get_skipping returns 2019-07-14 05:18:09 +03:00
Andy_kl c276ac8ec8 Fix spurious skipping value 2019-07-14 05:16:17 +03:00
Andy_kl 37e7060baa Documented preferences.afm_enable 2019-07-14 05:15:44 +03:00
Tom Rothamel b155fa9411 gl2: Minor fixes, now can display a blank screen. 2019-07-13 12:02:58 -04:00
Tom Rothamel 4ef1e05dc8 gl2: Work on texture meshes. 2019-07-13 02:35:17 -04:00
Tom Rothamel da6e5e2c73 gl2: Add shader cache. 2019-07-12 23:29:48 -04:00
Moshibit 95c1cd5ad8 correct radio button 2019-07-12 21:50:40 -05:00
Moshibit f8747f6e38 Delete screens.rpy 2019-07-12 21:47:43 -05:00
Moshibit 450aeb55dc correct radio button 2019-07-12 21:41:14 -05:00
Moshibit 878e2284f8 fix typo 2019-07-12 21:35:09 -05:00
Moshibit a4291ccddb Merge pull request #3 from renpy/master
update from renpy/renpy master
2019-07-12 21:27:04 -05:00
Tom Rothamel 2091161241 Merge pull request #1933 from Queex/patch-1
Missing config prefix for gc_print_unreachable
2019-07-12 09:38:14 -04:00
Ben Wright c8ac8b511f Missing config prefix for gc_print_unreachable 2019-07-12 13:06:09 +01:00
Tom Rothamel ed3182c74c gl2: TexturedMesh fields. 2019-07-12 03:18:04 -04:00
Tom Rothamel 82b0d59f19 gl2: Cut out the old texture code. 2019-07-11 22:42:27 -04:00
Andy_kl 836238de5c CDSL displayables should allow 'if' statements inside self. 2019-07-12 00:06:40 +03:00
Tom Rothamel 60b42fd79b Merge pull request #1929 from Andykl/sl2-fixes
Sl2 fixes
2019-07-11 00:56:24 -04:00
Tom Rothamel ba2c72eaac Allow config.load_failed_label to take a function.
Fixes #1928.
2019-07-10 21:31:46 -04:00
Andy_kl 7751d5603e Fix indention in doc 2019-07-11 02:35:49 +03:00
Andy_kl 6e8d622282 Moved minimum property to position properties 2019-07-11 02:19:51 +03:00
Andy_kl 30b3366168 Documented default_properties 2019-07-11 02:18:37 +03:00
Tom Rothamel 736d9487c5 gl2: Combine the geometry stuff into one file. 2019-07-09 23:15:58 -04:00
Tom Rothamel 7bf7af52b1 gl2: float -> double, so it works with emscripten. 2019-07-08 22:33:46 -04:00
Tom Rothamel be7daf39d5 gl2: Clean as much of we can of gl1 out of gl2draw.pyx. 2019-07-08 02:28:27 -04:00
Tom Rothamel 0faf7810f6 Include gl2 and matrix in the built distributions. 2019-07-07 20:16:53 -04:00
Tom Rothamel bd333803b2 gl2: Log shader cache errors. 2019-07-06 15:04:25 -04:00
Tom Rothamel f24e3f199e gl2: Add modules from glexperiment into Ren'Py. 2019-07-06 03:07:38 -04:00
Tom Rothamel 13a755ae93 IF a pure-python module can't be parsed as utf-8, try it as latin-1. 2019-07-05 22:05:46 -04:00
Tom Rothamel a907cfaa2e Remove gl2 blacklist.
It was not used.
2019-07-05 20:33:34 -04:00
Tom Rothamel b236453972 Convert from using a 2x2 matrix to a 4x4 matrix.
This will eventually let us represent z-rotations
and translations using matrices.
2019-07-05 13:10:47 -04:00
Tom Rothamel 95fe225a8c Merge pull request #1921 from Beuc/sigttin
rapt: prevent gradle from stopping Ren'Py when run in the background
2019-07-04 10:19:39 -04:00
Sylvain Beucler 621fbe9449 rapt: prevent gradle from stopping Ren'Py when run in the background 2019-07-04 15:57:02 +02:00
Tom Rothamel f6029db185 Avoid a with None before a say attribute transition with a layer.
As this would make the transition moot.
2019-07-03 22:23:09 -04:00
Tom Rothamel 38f8e1f16f Document config.keyword_after_python as an incompatible change. 2019-07-02 23:06:01 -04:00
Tom Rothamel ca95350b70 Bump version. 2019-07-02 19:42:21 -04:00
Sylvain Beucler 985b54d284 web: avoid encoding issues in non-UTF-8 environments
e.g. windows korean, cf. renpyweb issue 1
2019-07-02 22:39:30 +02:00
Tom Rothamel 5664e29c7d Sponsor doc. 2019-07-01 22:17:03 -04:00
Tom Rothamel ae61f801f8 Update changelog. 2019-07-01 22:15:40 -04:00
Tom Rothamel cac70f9544 Merge pull request #1915 from Moshibit/master
correction in spanish translation
2019-07-01 22:00:53 -04:00
Tom Rothamel 45b792b4bd Only emulate the platform if asked.
Fixes #1917.
2019-07-01 21:58:33 -04:00
Tom Rothamel 97f578baac Bump version. 2019-07-01 21:14:02 -04:00
Tom Rothamel 2d9c8565be Automatically tag renpyweb. 2019-06-30 23:34:49 -04:00
Tom Rothamel a4596ecfbc Update changelog. 2019-06-30 23:21:09 -04:00
Tom Rothamel 740400db2c Make the preload thread actually do something.
Fixes #1890.
2019-06-30 23:09:05 -04:00
Tom Rothamel b1c6a3a16d Update keywords. 2019-06-30 22:45:44 -04:00
Moshibit 0f90a189f3 Merge pull request #2 from renpy/master
a
2019-06-30 17:49:04 -05:00
Tom Rothamel d427968170 Fix and update translations. 2019-06-30 01:50:00 -04:00
Tom Rothamel 673b1fcb4a Update changelog and sponsor docs. 2019-06-29 22:58:56 -04:00
Tom Rothamel 9a6f7f3975 sl2: Do not update scopes in used screens.
This is a much simpler fix for the problem in a1dd218560,
which is that the wrong scope will be given in a used screen that happens to be
constant.

The realization is that if a used screen is constant, it can't change - and hence
it doesn't need to be given a new scope at all.
2019-06-29 03:04:30 -04:00
Tom Rothamel af5e885e17 Revert "sl2: Store the scopes to provide them to _scope."
This reverts commit a1dd218560.
2019-06-29 02:46:54 -04:00
Tom Rothamel af0314885b Revert "Fix issues with screens and scopes."
This reverts commit df8f27f0d0.
2019-06-29 02:45:50 -04:00
Tom Rothamel e76411a6c9 Merge pull request #1900 from lee-yunseok/lee-yunseok
Update Korean strings.
2019-06-28 16:53:56 -04:00
Tom Rothamel bf9b60aa59 Merge pull request #1910 from Andykl/fixes
Update Russian
2019-06-28 16:53:38 -04:00
Moshibit d9aa172882 Merge pull request #1 from renpy/master
Fix issues with screens and scopes.
2019-06-27 22:08:14 -05:00
Moshibit 79a67705f1 correction 2019-06-27 22:04:06 -05:00
Tom Rothamel df8f27f0d0 Fix issues with screens and scopes.
Fixes #1905, where several bugs got collected into one place. The
main problem is that we need to store the actual values of
non-constant variables that, for example, change durting iteration,
while at the same time allowing things that use the scope to
update when the screen scope changes (from new parameters, or
something like SetScreenVairable).

This uses a method (scope_changed, similar to copy_on_change) to
take things that use the scope out of the cache when a scope change
happens.
2019-06-27 21:44:44 -04:00
Andy_kl d85241bfa7 Update Russian 2019-06-27 11:32:31 +03:00
Tom Rothamel c5cf467274 Fix spurious spaces in Spanish translation.
Fixes #1906.
2019-06-26 21:31:14 -04:00
Tom Rothamel 641a1b4f99 Fix None error in 8c36a9a4a5. 2019-06-25 22:29:14 -04:00
Tom Rothamel 01a0b6ed42 Always initialize the sound system.
To ensure silent movies can play, even if sounds aren't involved.

Fixes #1901.
2019-06-25 20:56:11 -04:00
Tom Rothamel 8c36a9a4a5 Fix double duplication in Transform.
Fixes #1903.
2019-06-25 20:49:22 -04:00
Tom Rothamel bfeb11a7be Merge pull request #1902 from Andykl/has-subblock
Added Lexer.has_subblock method.
2019-06-25 20:33:27 -04:00
Tom Rothamel f937f4bf42 Improve descriptive text.
- Move it to 00acessibility.rpy, where I can find it.
- sv -> alt (The old name still works.)
- Allow the creator to supply a character that's used to display
  descriptive text.
2019-06-25 01:52:14 -04:00
Tom Rothamel ba9accfd5e Process text tags when self_closing_custom_text_tags is set.
The check hadn't included that, which means that text tags would
not be processed when self_closing_custom_text_tags was set, and
custom_text_tags was not.
2019-06-24 19:28:53 -04:00
Andy_kl 0ca1f3ef66 Added Lexer.has_subblock method. 2019-06-24 23:31:40 +03:00
Lee Yunseok d19148f282 Fix typo. 2019-06-24 18:51:07 +09:00
Lee Yunseok 72d7b9ba59 Fix 2019-06-24 18:33:24 +09:00
Lee Yunseok 6231ffe2f3 Update Korean translation for renpyweb. 2019-06-24 18:09:41 +09:00
Lee Yunseok 097c24b140 Korean translation for accessibility in Tutorial, The Question. 2019-06-24 18:09:06 +09:00
Tom Rothamel c49f697b4d Avoid runing the gl test on a restart.
This prevents a with_none call that broke config.end_game_transition.
2019-06-23 10:42:16 -04:00
Tom Rothamel 8fc5225985 focus: Prioritize the highest default_focus value. 2019-06-22 14:59:49 -04:00
Tom Rothamel ac60c3ec9e To fix a conflict, replace default with default_focus. 2019-06-22 13:23:45 -04:00
pionere 7d655595e0 prevent crash when get_selected is called on a non-existent field
A field (especially a global Variable) might not exists at the beginning of the interaction. This causes the application to crash e.g. if the variable is set on the 'action' of a button.
The solution is that the get_selected returns False if the given field does not exists at the moment.
2019-06-22 14:35:41 +02:00
Tom Rothamel 6165d4aa11 Remove 'set' from the list of Ren'Py keywords.
It's used often in Python and expressions, and rarely in
Ren'Py.
2019-06-21 19:10:37 -04:00
Tom Rothamel 5e717b9bbe Improvements to rt run.
* The command is run with os.exec, so that ctrl-C can trigger
  a traceback.
* Command line arguments are passed to rt run in the right order.
2019-06-21 19:10:14 -04:00
Tom Rothamel 90b2f69876 Merge pull request #1897 from Andykl/fix-flatten
Flatten passing the position from child.
2019-06-20 17:18:40 -04:00
Andy_kl adbb05c99d Flatten passing the position from child. 2019-06-20 22:26:57 +03:00
Tom Rothamel ce2b11e7cf Add a random number generator that supports Rollback.
This is now returned by renpy.random.Random, and ensures the
numbers returned by it are deterministic.

Fixes #1893.
2019-06-20 09:58:06 -04:00
Tom Rothamel ae4369d223 Fix bad path to render_for_size. 2019-06-19 15:49:55 -04:00
Tom Rothamel 9a2cf214dc Properly generate the nvl clear UserStatement.
Fixes #1888.
2019-06-19 15:40:38 -04:00
Tom Rothamel 2ac606980a Add a function to render in sizing mode.
This doesn't catch the rendering that's done in sizing mode, but
reuses renders that are already cached at the same size.
2019-06-18 20:17:48 -04:00
Andy_kl 669a25d530 Receive a layer from default_layer in all exports funcs 2019-06-18 22:51:54 +03:00
Tom Rothamel f89de7e332 Set the platform as part of the emulator. 2019-06-17 19:32:21 -04:00
Tom Rothamel 2f12cdf843 Distinguish real and emulated platform.
This is to prep for a change where the emulator can set the platform,
so renpy.android is true under the android emulator.
2019-06-17 19:29:48 -04:00
Tom Rothamel c0ed44651c Pass the text input rectangle through subsurface. 2019-06-17 18:36:16 -04:00
Tom Rothamel ecbe0952c8 Fix the {clear} tag.
There was a regression caused by the UserStatement changes.
2019-06-17 00:03:01 -04:00
Tom Rothamel e48f24d8d1 Bump version. 2019-06-16 19:38:50 -04:00
Tom Rothamel e8b50d55f3 Add an example of a gallery button that's always unlocked.
Per discussion in 1887.
2019-06-16 16:06:52 -04:00
Tom Rothamel fbcdfe8561 Document that Showif creates a displayable.
Addresses #1886.
2019-06-16 13:38:46 -04:00
Tom Rothamel 99524a1033 sl2: Allow a has statement after an if statement with no children.
Addresses #1886.
2019-06-16 13:26:47 -04:00
Tom Rothamel 9781c0d07e Fix spurious spaces in the_question. 2019-06-16 11:58:58 -04:00
Tom Rothamel c09d0142df Package web-presplash.{jpg,png}, ignore oyua_icon.png. 2019-06-16 11:26:25 -04:00
Tom Rothamel 5bb8ae6772 Clean up translations. 2019-06-15 20:57:12 -04:00
Tom Rothamel 7c48ffc3f3 Updateyay igpay atinlay. 2019-06-15 20:56:13 -04:00
Tom Rothamel efec9192b7 Fix spacing. 2019-06-15 20:54:25 -04:00
Tom Rothamel 12b0decd15 Merge pull request #1885 from Moshibit/master
Update common.rpy
2019-06-15 19:54:37 -04:00
Moshibit c0185751d6 Update common.rpy 2019-06-15 18:47:30 -05:00
Moshibit fc06af1d93 Update common.rpy 2019-06-15 18:46:51 -05:00
Moshibit e44d6d14c3 Update common.rpy 2019-06-15 18:41:47 -05:00
Moshibit 7aae8c506f Update common.rpy 2019-06-15 18:31:47 -05:00
Tom Rothamel 2d47ae004e Merge pull request #1884 from Moshibit/master
accessibility message changed to translatable string
2019-06-15 19:11:13 -04:00
Moshibit 148c74a312 change to translatable string 2019-06-15 18:05:30 -05:00
Tom Rothamel 1c34d0643e Merge pull request #1883 from Moshibit/master
corrections in the Spanish translation
2019-06-15 18:53:27 -04:00
Moshibit 196517ac34 Update launcher.rpy 2019-06-15 17:49:24 -05:00
Moshibit 041832a573 Add files via upload 2019-06-15 17:34:28 -05:00
Moshibit 8533a6e089 Add files via upload 2019-06-15 17:32:36 -05:00
Moshibit 610a13bf20 Add files via upload 2019-06-15 17:31:22 -05:00
Tom Rothamel 3e2fbe4554 Screen sensitivity passes timer events.
Fixes #1882.
2019-06-15 11:58:21 -04:00
Tom Rothamel 038ea8fee2 Merge pull request #1880 from mal/screen-sensitivity-scope
Use scope when evalling screen sensitivity
2019-06-15 10:58:39 -04:00
Tom Rothamel f97dc0c0f0 Merge pull request #1881 from Andykl/fix-sluse-report
More sensitive report about inexistent screen in sl use expression
2019-06-15 10:58:11 -04:00
Andy_kl b064ea9a82 More sensitive report about inexistent screen in sl use expression 2019-06-15 17:56:55 +03:00
Mal Graty 3fc13fad93 Use scope when evalling screen sensitivity 2019-06-15 15:49:23 +01:00
Tom Rothamel d86d188dc8 Fix documentation and update sponsors doc. 2019-06-15 00:21:44 -04:00
Tom Rothamel 71beb64a4a Document that tooltip requires equality. 2019-06-14 17:12:53 -04:00
Tom Rothamel 6b27321496 Tweak the error message for a Side with the wrong number of children. 2019-06-13 23:26:06 -04:00
Tom Rothamel 1446c2b31d Merge pull request #1874 from Andykl/fix-side-mistake
Raise exception if Side not completely full at the render
2019-06-13 21:24:29 -04:00
Tom Rothamel 97b844cd9b Merge pull request #1876 from Andykl/fix-adjustment-bug
Fix adjustment bug
2019-06-13 21:23:36 -04:00
Andy_kl a17f63368b Do not redraw if we are sizing 2019-06-13 10:31:48 +03:00
Andy_kl 1bc3945f1d Kill the render is the right way. 2019-06-13 10:28:41 +03:00
Andy_kl 884b7901bf Raise exception if Side not completely full at the render 2019-06-12 08:49:30 +03:00
Tom Rothamel acc48b08ae Avoid redrawing when fixing a per-frame render.
Fixes #1869.
2019-06-11 02:47:34 -04:00
Tom Rothamel b24a2b06db Fix code-typo.
Fixes #1871.
2019-06-10 22:36:50 -04:00
Tom Rothamel ae402797cf Update changelog. 2019-06-09 22:41:45 -04:00
Tom Rothamel 51c726f736 Update changelog. 2019-06-09 22:40:38 -04:00
Tom Rothamel c8cc2b0353 Use a Window's minimums to determine the width and height of its children.
See https://lemmasoft.renai.us/forums/viewtopic.php?f=32&t=55574
2019-06-09 22:33:17 -04:00
Tom Rothamel dd7cdea0c2 Check in updated keywords. 2019-06-09 22:32:58 -04:00
Tom Rothamel ff59a3060d Apply AdjustTimes to images displayed in the gallery.
This makes sure that any ATL or other transforms start running from
the frame where the image is first shown.

Fixes #1867.
2019-06-09 21:39:51 -04:00
Tom Rothamel ae123b383a Fix local variable masking global variable. 2019-06-09 21:08:49 -04:00
Tom Rothamel 1175e65552 Proxy get_tooltip from Confirm to its yes action. 2019-06-09 20:50:10 -04:00
Tom Rothamel a1c1c15a3c Disallow style properties on tooltips. 2019-06-09 20:35:03 -04:00
Tom Rothamel 8d7236b32e cds: Pass the label of the next statement to predict_next.
This is necessary to properly emulate a conditional statement,
where we might go directly to the next statement.
2019-06-09 20:20:38 -04:00
Tom Rothamel 718628e48a Add a get_tooltip method to Action and BarValue.
This allows actions to supply tooltips to buttons and bars,
keeping that logic in one place. Per #1868.
2019-06-09 20:14:32 -04:00
Tom Rothamel 75f666479c Fix prediction problems in character.
Fixes #1853.
2019-06-09 00:00:09 -04:00
Tom Rothamel 63f2f9db47 Make sure we can't save between a menu and it's dialogue.
Fixes #1861.
2019-06-08 23:41:31 -04:00
Tom Rothamel 3c3c8963a3 Document narration and display_menu.
Fixes #1863.
2019-06-08 23:17:37 -04:00
Tom Rothamel 0399767528 cds: Fix prediction.
Fixes #1864.
2019-06-08 23:00:21 -04:00
Tom Rothamel c4ee0e8e5d cds: Allow lexer.renpy_block to deal with empty blocks.
Either by reporting the error, or by creating a block with a pass
statement.
2019-06-08 22:44:14 -04:00
Tom Rothamel 36ed61735d Merge pull request #1862 from Andykl/return-statement-argument
Added return value argument to renpy.return_statement
2019-06-08 19:13:33 -04:00
Tom Rothamel 4af01f3192 Avoid the repeated setting of adjustments when siding for a side.
Fixes #1858.
2019-06-08 01:42:44 -04:00
Tom Rothamel a72e17baea Document android input change. 2019-06-07 23:28:48 -04:00
Tom Rothamel 88728c932c Merge pull request #1855 from nyaatrap/master
Update Japanese
2019-06-06 22:50:46 -04:00
Andy_kl 298bf1d1c3 Added return value argument to renpy.return_statement 2019-06-06 22:01:37 +03:00
Beuc 59cc091828 Typo 2019-06-06 11:19:47 +02:00
Beuc 6aa9d6b920 Typo 2019-06-06 11:18:22 +02:00
Tom Rothamel 3241176e8f Ensure that the render_cache is updated after invalidation.
Before this change, if an invaidation was to occur mid-render,
it was possible the new render would not be added to the cache.

Fixes #1856.

This also defers invalidation when a redraw is going to happen.
2019-06-05 00:56:24 -04:00
Tom Rothamel 0d4d5f6621 accessibility: Cache the opendyslexic font group.
This makes displaying opendyslexic much faster.

Fixes #1857.
2019-06-04 19:16:04 -04:00
nyaatraps badb0e7803 Update Japanese 2019-06-04 17:34:52 +09:00
Tom Rothamel be3af7e868 Merge pull request #1851 from mal/more-say-transition-changes
More say transition changes
2019-06-02 14:20:52 -04:00
Mal Graty eb41a41b3a Clarify sets not lists 2019-06-02 19:20:02 +01:00
Mal Graty d806d99cb7 Both, not hybrid 2019-06-02 19:16:55 +01:00
Tom Rothamel 78e4241bd9 Merge pull request #1849 from Moshibit/master
NVL-mode script for new The Question
2019-06-02 14:13:56 -04:00
Sylvain Beucler e004acf4d0 web: shortcut to build directory 2019-06-02 17:38:00 +02:00
Mal Graty 8d63b60db8 Rework of say transitions 2019-06-02 11:29:45 +01:00
Mal Graty 11a6f292a4 Typo 2019-06-02 09:06:21 +01:00
Moshibit 741d6137d1 Update script.rpy 2019-06-01 22:21:54 -05:00
Tom Rothamel 70fd79df26 Fix server name. 2019-06-01 21:37:35 -04:00
Tom Rothamel 38deac811e Fix typo in function reference. 2019-06-01 20:55:50 -04:00
Moshibit 5827166418 Update thequestion_nvl.rst 2019-06-01 17:16:54 -05:00
Moshibit 9913c4f912 Update thequestion_nvl.rst 2019-06-01 17:12:53 -05:00
Tom Rothamel 35f3824a8f Update credits. 2019-06-01 17:02:28 -04:00
Tom Rothamel 7d1eaf560e Update the name of the version. 2019-06-01 17:00:47 -04:00
Tom Rothamel b762b5267c Merge pull request #1695 from pionere/master
shortcut for change_language
2019-06-01 15:10:24 -04:00
Tom Rothamel 5a7c9f845f Update the world's least useful translation. 2019-06-01 00:07:50 -04:00
Tom Rothamel a1dd218560 sl2: Store the scopes to provide them to _scope.
This fixes:

  screen on_use(a):
      text "[a]"

  screen test:
      fixed:
          fit_first True
          align (0.5, 0.5)
          use on_use(1)

  label start:
      show screen test
      pause
      return
2019-05-31 23:08:57 -04:00
Tom Rothamel 958536e9de Merge pull request #1847 from Moshibit/master
Correction in the tutorial about the use of focus_mask in Android and iOS
2019-05-31 21:52:18 -04:00
Moshibit c1b634d46b correction 2019-05-31 19:51:19 -05:00
Moshibit a0ed43a64f correction 2019-05-31 19:50:18 -05:00
Moshibit 7552aa3518 correction 2019-05-31 19:49:33 -05:00
Moshibit cf0b78f0fb correction 2019-05-31 19:48:31 -05:00
Moshibit f25affd975 correction 2019-05-31 19:47:06 -05:00
Moshibit 471f073051 correction 2019-05-31 19:45:10 -05:00
Tom Rothamel 194b5e1f9b Merge pull request #1846 from DragoonHP/patch-1
Typos fix
2019-05-31 19:13:43 -04:00
DragoonHP 3f70e93f90 Typos fix 2019-05-31 10:35:28 +05:30
Tom Rothamel bdf6db0efa Document incompatible changes. 2019-05-31 00:11:38 -04:00
Tom Rothamel 5429949e82 Changelog. 2019-05-31 00:11:38 -04:00
Tom Rothamel 659bb63a06 Changelog WIP. 2019-05-31 00:11:38 -04:00
Tom Rothamel 6d7b1f9704 cds: Add a predict_next method. 2019-05-31 00:11:38 -04:00
Tom Rothamel 833a80d343 cds: Undo the advance at the end of renpy_statment. 2019-05-31 00:11:38 -04:00
Tom Rothamel 43b43f3688 Merge pull request #1843 from Andykl/fix-custom-tags
Added self closing custom_tags to check_text_tags
2019-05-29 14:24:31 -04:00
Andy_kl 4fcc58a992 Added self closing custom_tags to check_text_tags 2019-05-29 11:04:19 +03:00
Tom Rothamel 57f5872409 Merge pull request #1826 from WKFO/translation-tr
Turkish translation
2019-05-28 22:23:35 -04:00
Tom Rothamel be855c7c37 Merge pull request #1838 from Moshibit/master
Spanish translation update
2019-05-28 22:23:22 -04:00
Tom Rothamel 9a30c95011 Implement Self-closing text tags.
Fixes #1841, closes #1842.
2019-05-28 22:23:06 -04:00
Tom Rothamel de061aea9b Merge pull request #1828 from Andykl/side-render-order
Side render order
2019-05-28 20:24:33 -04:00
Tom Rothamel 50939ee7bd A from clause should not define the global label.
Fixes #1824.
2019-05-28 20:23:02 -04:00
Tom Rothamel 3622a2ee21 Generate translations for screens with a continuation line.
Fixes #1827.
2019-05-28 20:12:18 -04:00
Tom Rothamel 37c4fb3f4b sl2: Allow the as clause to apply to the children of a displayable. 2019-05-28 01:45:35 -04:00
Tom Rothamel f360a53eda sl2: The as clause binds a variable to a displayable. 2019-05-28 01:02:42 -04:00
Tom Rothamel c1add010be cds: Rewrite renpy_block to match documentation. 2019-05-27 11:15:16 -04:00
Tom Rothamel fe816be0d8 Fix eception in Curry.__hash__.
Fixes #1839.
2019-05-27 00:42:47 -04:00
Tom Rothamel 71b6888f10 cds: Document new lexer functions. 2019-05-26 23:10:50 -04:00
Tom Rothamel d3fa22566a cds: Do not advance when catching an error.
Not needed, given sample code in the documentatation.
2019-05-26 02:15:53 -04:00
Tom Rothamel b69c80a40c cds: Switch to using line index rather than number. 2019-05-26 01:36:54 -04:00
Tom Rothamel e8fc4d28b5 cds: Add the ability to catch lexer errors. 2019-05-26 01:33:00 -04:00
Moshibit 96f91895c0 Add files via upload 2019-05-26 00:22:05 -05:00
Tom Rothamel 98241f413c Add repr for SubParse. 2019-05-25 23:46:10 -04:00
Tom Rothamel b62326e52d Allow jumping to SubParses. 2019-05-25 22:53:47 -04:00
WKFO 8116ea4ab7 Complete screens.rpy Turkish translation 2019-05-25 22:31:00 +03:00
Tom Rothamel f7be277b4a Fix parsing of Ren'Py inside creator-defined-statements. 2019-05-25 02:07:14 -04:00
Tom Rothamel 181997f13b Merge pull request #1835 from lee-yunseok/master
Update Korean translation for launcher.
2019-05-24 23:50:14 -04:00
Tom Rothamel c4a854fee3 Merge pull request #1837 from Beuc/patch-french
Update common french translations
2019-05-24 23:49:19 -04:00
Sylvain Beucler db45ab36f6 Update common french translations 2019-05-25 00:33:56 +02:00
WKFO 940be19894 Fix and update Turkish translation 2019-05-24 21:24:09 +03:00
Tom Rothamel 6b5932d45b Untested version of l.renpy_statement() and l.renpy_block()
This also adds predict_all to custom statements, to predict all
children.
2019-05-24 01:29:22 -04:00
Tom Rothamel 59a8b2961b Redo parsing of user statements.
This now uses the main lexer to parse user statements, which means
that we can have multiple-line-long user-defined statements.
2019-05-23 22:57:07 -04:00
Tom Rothamel 45e149bd45 Do not clear the parsed version of a UserStatement.
This will move the parse from runtime to compile time.
2019-05-22 22:54:09 -04:00
Lee Yunseok 58c6089985 Fix 2019-05-22 18:18:53 +09:00
Tom Rothamel 31f5e76674 Add the current user statement to the lexer. 2019-05-22 01:42:12 -04:00
Lee Yunseok fd0337eb0e Update Korean translation 2019-05-22 13:57:49 +09:00
Lee Yunseok 96a2d7c1d4 Merge pull request #22 from renpy/master
Latest
2019-05-22 13:12:29 +09:00
Tom Rothamel 3cc58e2f8f Merge pull request #1832 from Andykl/russian-translation
Mark error_handling interpolates as translatable and updated russian translation
2019-05-21 22:08:12 -04:00
Tom Rothamel 1345469e70 Merge pull request #1834 from Beuc/patch-unify_tl_source_comment
translation: unify base path in string source comments
2019-05-21 16:46:55 -04:00
Sylvain Beucler 7836c91a27 translation: unify base path in string source comments 2019-05-21 18:45:26 +02:00
Tom Rothamel e79aaba585 Merge pull request #1833 from Andykl/webbrowser-default
Prevent open IE in Windows if help-file not exists
2019-05-21 01:10:26 -04:00
Lee Yunseok b17ccdb53c Merge pull request #21 from renpy/master
Latest
2019-05-21 07:03:19 +09:00
Andy_kl e3453fd798 Updated [what] strings in other translates 2019-05-20 22:53:06 +03:00
WKFO 14dc8ff79a Add tranlsator info, commit progress 2019-05-20 22:06:54 +03:00
Andy_kl 074760e752 Doc this 2019-05-20 09:55:14 +03:00
Andy_kl 6e5d1ea3ef Do not open browser if help file not exist
This is fix Windows bug when IE opens anyway
2019-05-20 09:41:54 +03:00
Andy_kl 66da3f20d8 Update russian for last commit 2019-05-20 08:48:31 +03:00
Andy_kl ca6211cf0b Mark error_handling interpolates as translatable 2019-05-20 08:41:04 +03:00
Andy_kl 68f2b4ece9 Fix Beta string 2019-05-20 08:06:00 +03:00
Andy_kl 1f68d3222f Update 2019-05-20 07:50:44 +03:00
Tom Rothamel a6259de3e1 Merge pull request #1820 from Andykl/mode-keywords
Mode keywords for call screen, menu and say statements
2019-05-20 00:17:18 -04:00
Tom Rothamel 8610b89d75 Merge pull request #1831 from Moshibit/master
Corrections in translation
2019-05-20 00:08:55 -04:00
Moshibit 7e6d48f09e Add files via upload 2019-05-19 21:37:17 -05:00
Moshibit f94347bc78 Add files via upload 2019-05-19 21:29:33 -05:00
Moshibit 8aec8cbac5 Add files via upload 2019-05-19 20:59:23 -05:00
Beuc c744404550 launcher: choose_directory: returns default=True on Cancel (tkinter route) 2019-05-19 23:23:41 +02:00
WKFO 03205d6619 Turkish tranlation update 2019-05-19 20:52:03 +03:00
Tom Rothamel ebd904ce5f Add the ability to run something after a UserStatement.
This is a second quasi-statement that runs after a UserStatement
and everything inside its blocks have run.
2019-05-19 09:31:19 -04:00
Andy_kl 5956adccbf Added doc 2019-05-19 07:25:09 +03:00
Moshibit 5fdbdfa12a Add files via upload 2019-05-18 23:10:53 -05:00
Andy_kl 3dd71cc5c4 Added _zorder keyword for show_screen 2019-05-19 06:46:24 +03:00
Andy_kl ea3b05c6e4 Doc this 2019-05-19 06:25:13 +03:00
Moshibit 4aaddc39cb Add files via upload 2019-05-18 22:08:22 -05:00
Andy_kl e8739ffbbb Added keep_side_render_order to compat last commit 2019-05-19 05:21:24 +03:00
Andy_kl 4d664092ce Added sorting of children according to their order in positions. 2019-05-19 05:19:38 +03:00
Andy_kl 848aa6dfaa Except eol in python statement 2019-05-19 02:11:16 +03:00
Moshibit 170ddd9a87 Add files via upload 2019-05-18 17:51:26 -05:00
Andy_kl 7f88a1ce49 Added handlers for _mode and _with_none in menu arguments 2019-05-19 01:36:48 +03:00
Tom Rothamel d273689cc0 ftfont: Set up the face in bounds().
This fixes an error where the bounds were using the wrong size,
and hence caching a glyph of the wrong size, leading to drawing
problems.
2019-05-18 18:25:51 -04:00
Andy_kl 5e1449abd1 Apply a6b21ec78f to parse menu. 2019-05-18 23:44:50 +03:00
Beuc 184d72c595 the_question: typo in french translation 2019-05-18 22:08:24 +02:00
WKFO db88ae7e0d Initial Turkish translation 2019-05-18 17:56:21 +03:00
Tom Rothamel f22bd471e0 Add config.disable_input. 2019-05-17 02:05:29 -04:00
Tom Rothamel b85beccc9e lint: Update to match FontGroup changes.
Fixes #1823.
2019-05-16 21:36:40 -04:00
Tom Rothamel f4e6765b42 Allow a list of events to be given as part of the on statement. 2019-05-16 02:33:09 -04:00
Tom Rothamel dae24f264f console: Allow jump to jump to qualified local labels.
Fixes #1822.
2019-05-15 22:35:53 -04:00
Tom Rothamel def807b3d2 Invalidate displayables when an ajdustment is updated.
This makes the changes take affect during the current frame, rather
than the next one.

Fixes #1818.
2019-05-15 01:49:29 -04:00
Tom Rothamel 92536e4597 Merge pull request #1821 from lee-yunseok/master
Apply #ea50512 for Korean
2019-05-14 18:14:43 -04:00
Lee Yunseok d68b3bd2e8 Apply #ea50512 for Korean 2019-05-15 07:10:26 +09:00
Lee Yunseok 5c79afe2b4 Merge pull request #20 from renpy/master
Keep going to latest
2019-05-15 06:47:38 +09:00
Tom Rothamel ea50512e2c Update Android strings. 2019-05-14 12:52:04 -04:00
Andy_kl ca8508626d Added underscore handlers for _mode and _with_none
This has a higher priority.
2019-05-14 05:54:58 +03:00
Andy_kl a55c758fb0 Added _mode as a keyword to call screen 2019-05-14 04:15:12 +03:00
Tom Rothamel b1b3f8ce4e Merge pull request #1810 from mal/screen-sensitivity
Suppress hover/click-capture if screen insensitive
2019-05-12 19:41:31 -04:00
Tom Rothamel 63c4f5fe56 gl2: Resynchronize with gl1. 2019-05-11 09:57:31 -04:00
Tom Rothamel 2bb6e6c0db Use Framebuffer Objects wherever one is available. 2019-05-10 17:54:09 -04:00
Tom Rothamel c0761dc8f3 Clean the nv_list when the language changes. 2019-05-10 01:31:37 -04:00
Tom Rothamel 99e31f1456 Set the language when a new context is created.
This prevents a spurious change in language, and hnce fixes #1794.
2019-05-10 01:23:35 -04:00
Mal Graty 5ac3a985a9 Document screen's new sensitive property 2019-05-09 19:36:10 +01:00
Tom Rothamel 3249a34569 Add the web variant.
Which provides another way to detect emscripten.
2019-05-09 01:24:18 -04:00
Tom Rothamel 3b74892f65 sl2: Properties on the first line do not prevent a block.
Fixes a regression introduced by b0ee6fe392.
2019-05-08 23:01:30 -04:00
Tom Rothamel 723bf1bd75 Merge pull request #1809 from mal/tweak-capitialise-flag
Capitialise first character only with !c
2019-05-07 22:10:27 -04:00
Tom Rothamel 66acb87adc Merge pull request #1722 from lee-yunseok/master
Add Korean translation for Ren'Py Tutorial
2019-05-07 22:10:12 -04:00
Mal Graty 1cda55d17e Standardise docs on lowercase/uppercase 2019-05-07 21:57:11 +01:00
Mal Graty 76305e05f3 Update docs to highlight !cl usage 2019-05-07 21:55:33 +01:00
Tom Rothamel ff94f1e23b Merge pull request #1814 from Andykl/sl-indention-fix
Raise indention error for misspelled indent after keyword
2019-05-06 21:57:27 -04:00
Andy_kl b0ee6fe392 Raise indention error for misspelled indent after keyword 2019-05-07 04:56:19 +03:00
Tom Rothamel cbb1f084f9 Merge pull request #1812 from Andykl/fix-sl2
Check longer operators earlier.
2019-05-06 20:59:13 -04:00
Andy_kl 35d4deb772 Check longer operators earlier. 2019-05-07 00:13:03 +03:00
Tom Rothamel eb69715e57 Make sure renpy.py is distributed.
This is necessary for the Android and iOS distributions, at least.
It's not needed for web, but won't hurt much.
2019-05-05 01:31:40 -04:00
Tom Rothamel ded3e4da37 Remove always_opaque.
Now that Android and iOS should support focus_mask, always_opaque
isn't necessary.
2019-05-04 23:54:25 -04:00
Tom Rothamel 585778022e Use the render-to-texture path to do is_pixel_opaque.
This should enable Ren'Py to support focus_mask on Android.
2019-05-04 23:44:04 -04:00
Tom Rothamel c178092b58 Remove the GL blacklist.
The newest entry on it is from ~2010, so it's not necessary
anymore.
2019-05-04 22:21:58 -04:00
Lee Yunseok 2361a4939a Final 2019-05-04 09:51:39 +09:00
Lee Yunseok 869d45e27e Pretty 2019-05-04 09:36:14 +09:00
Tom Rothamel 679f4abf47 web: Add to the Ren'Py distribtion. 2019-05-03 20:29:55 -04:00
Tom Rothamel 402c2116a7 Bump version. 2019-05-03 20:28:43 -04:00
Mal Graty 461bddf7f3 Capitialise first character, leave rest of string 2019-05-03 22:48:49 +01:00
Mal Graty bf95f63448 Suppress hover/click-capture if screen insensitive 2019-05-03 16:11:53 +01:00
Lee Yunseok 9b043f465b Fix typo. 2019-05-03 16:08:12 +09:00
Lee Yunseok 3fef0c7dfa Add translate font for system_font 2019-05-03 15:32:23 +09:00
Lee Yunseok 8885ff568c Add translate font for system_font 2019-05-03 15:31:59 +09:00
Lee Yunseok 7a1b8f57c6 Complete tutorial_director.rpy 2019-05-03 15:31:33 +09:00
Lee Yunseok fe0af1652a Complete 2019-05-03 14:25:50 +09:00
Lee Yunseok c22f5108f2 Fix 2019-05-03 13:38:38 +09:00
Lee Yunseok 5e4ec6a6de Complete indepth_style.rpy and follow e6ccf5d 2019-05-03 13:36:11 +09:00
Lee Yunseok dade0aa1c7 Apply e6ccf5d 2019-05-03 12:43:57 +09:00
Lee Yunseok e6ccf5d616 Clearly 2019-05-03 12:20:37 +09:00
Lee Yunseok f6191eb56c Resolve 2019-05-03 12:17:04 +09:00
Lee Yunseok ea40d51cee Merge branch 'renpy-master' 2019-05-03 12:14:37 +09:00
Lee Yunseok ab2a0ec79f Merge branch 'master' of https://github.com/renpy/renpy into renpy-master 2019-05-03 12:14:09 +09:00
Lee Yunseok 290bd11f62 Apply Spanish 2019-05-03 12:06:09 +09:00
Lee Yunseok 3997812327 Quicksave 2019-05-03 12:01:27 +09:00
Lee Yunseok 3af6ebed21 More like Korean 2019-05-03 12:01:18 +09:00
Tom Rothamel 5534516253 Take background screenshots when polling events.
This prevents constant animation from preventing autosaves from
happening.
2019-05-02 22:50:06 -04:00
Lee Yunseok 71a970a891 Complete Transition Gallery 2019-05-03 10:31:56 +09:00
Lee Yunseok 222d3de08e Quicksave. 2019-05-02 11:53:57 +09:00
Lee Yunseok 5a09cec3d2 Complete GUI Customization 2019-05-02 11:53:29 +09:00
Tom Rothamel a445a7b000 Screens take a sensitive property.
If False, than the screen does not respond to input.

Fixes #1755.
2019-05-01 22:16:20 -04:00
Lee Yunseok 9e7c8315f0 Complete tutorial_screen_displayables.rpy 2019-05-02 11:13:09 +09:00
Lee Yunseok 87b909af10 Fix typo. 2019-05-02 11:12:52 +09:00
Lee Yunseok 21806de3b4 Quicksave. 2019-05-02 10:48:56 +09:00
Tom Rothamel 601594e047 Text interpolations support !c, !u, and !l.
For capitalization, upper case, and lower case.
2019-04-30 23:31:45 -04:00
Tom Rothamel cedff0527f Merge pull request #1808 from Andykl/fix-console
Do short repr for defaultdict and OrderedDict
2019-04-30 16:59:14 -04:00
Andy_kl 2b1f812051 Do short repr for defaultdict and OrderedDict 2019-04-30 23:57:41 +03:00
Tom Rothamel c85c917d12 Merge pull request #1803 from Moshibit/master
Corrections in the Spanish translation of the tutorial
2019-04-30 00:16:18 -04:00
Lee Yunseok 9e33789ad7 Quicksave 2019-04-30 11:59:08 +09:00
Lee Yunseok 0aa7c869b1 Fix typo. 2019-04-29 14:08:09 +09:00
Lee Yunseok 20cccd239c Quicksave 2019-04-29 14:05:59 +09:00
Tom Rothamel f2040ea6d5 On emscripten, force a redraw after is_pixel_opaque.
This fixes an issue with emscripten where it flips GL buffers
without Ren'Py explicitly asking for it.
2019-04-28 18:03:38 -04:00
Sylvain Beucler 7602e726f2 web: self.redraw_period=1.0 re-introduced audio glitch 2019-04-28 19:53:24 +02:00
Tom Rothamel dce59141a7 web: Avoid the use of float arguments.
This is because of a bug in emscripten, see
https://github.com/emscripten-core/emscripten/issues/6759 for
the details.
2019-04-28 13:09:11 -04:00
Sylvain Beucler 8dfafd617b web: use FBO and GLES 2019-04-28 15:01:44 +02:00
Sylvain Beucler a28829662c web: Fix 'TypeError: coercing to Unicode: need string or buffer, NoneType found' 2019-04-28 14:22:33 +02:00
Tom Rothamel 9665ee9226 Add config.equal_mono.
This changes mono support so there's two channels at 100%, rather
than each channel getting 50% of the energy.
2019-04-27 23:21:47 -04:00
Tom Rothamel b79419ea2f Support for equal_mono. 2019-04-27 22:28:22 -04:00
Tom Rothamel b2787cc61d Clear the history list on language change.
Fixes #1797.
2019-04-27 02:57:06 -04:00
Moshibit 8c45a9a1ec Add files via upload 2019-04-27 00:08:59 -05:00
Lee Yunseok e964ed219a Quicksave 2019-04-27 09:01:27 +09:00
Lee Yunseok 22f0c1969a More like korean. 2019-04-27 09:00:55 +09:00
Tom Rothamel fc45dca4c8 Merge pull request #1798 from Moshibit/master
Add Spanish translation for Ren'Py Tutorial
2019-04-26 17:12:14 -04:00
Lee Yunseok dfc7ae23ae Patently 2019-04-26 10:20:46 +09:00
Lee Yunseok 6811cc5592 Complete Minigames and CDDs 2019-04-26 10:20:05 +09:00
Tom Rothamel be4d4290a8 Rename the internal copy of OpenDyslexic.
This is so it doesn't interfere with a game that already includes
a copy.
2019-04-25 18:58:52 -04:00
Lee Yunseok 71760b5f16 Complete Simple Displayables 2019-04-25 09:27:24 +09:00
Tom Rothamel 59c49a6512 Documentation tweak to config.reload_modules. 2019-04-24 17:56:51 -04:00
Tom Rothamel 6fedb10d30 Merge pull request #1801 from mal/reload-modules
Python module reloading support
2019-04-24 17:55:15 -04:00
Tom Rothamel 5eb650d3fb Merge pull request #1802 from mal/master
Keep vanilla python's late import binding
2019-04-24 17:53:57 -04:00
Mal Graty 8c2d509b9c Keep vanilla python's late import binding 2019-04-24 19:41:25 +01:00
Mal Graty 1eee09bb9e Document config.reload_modules 2019-04-24 19:13:06 +01:00
Sylvain Beucler bacc645355 renpyweb: link to a controlled donation URL 2019-04-24 18:45:39 +02:00
Sylvain Beucler db83f8462d renpyweb: more sound tuning
No real user feedback despite dedicated test URLs, so using my system as reference.
2019-04-24 18:40:51 +02:00
Sylvain Beucler 4ee3026cad renpyweb: consistent capitalization 2019-04-24 18:38:08 +02:00
Lee Yunseok f664258d10 Complete Character Objects 2019-04-24 12:43:30 +09:00
Tom Rothamel cc6594d068 web: Fix tyop. 2019-04-23 22:34:21 -04:00
Tom Rothamel 3469504ffd web: Since Popen doesn't exist, do not modify the class. 2019-04-23 22:33:38 -04:00
Tom Rothamel 7954d1d9cd web: Serve built games through a local webserver. 2019-04-23 20:22:03 -04:00
Sylvain Beucler 8706d19545 Typo in French translation 2019-04-23 21:50:38 +02:00
Mal Graty 666370ac7f Python module reloading support 2019-04-23 19:03:08 +01:00
Tom Rothamel 88722cc03b web: Set the title of the generated page based on display_name. 2019-04-22 21:20:00 -04:00
Tom Rothamel 64171052ac Default display_name to config.name.
It seems like a closer match to what display_name is used for.
2019-04-22 21:17:15 -04:00
Tom Rothamel 793a2b2250 web: One click build of a web app. 2019-04-22 02:08:45 -04:00
Moshibit d16e1e71b8 Add files via upload 2019-04-21 16:48:25 -05:00
Moshibit cf56ebc008 Delete common.rpyc 2019-04-21 14:50:30 -05:00
Moshibit 26166cfdd8 Delete 01example.rpyc 2019-04-21 14:50:01 -05:00
Moshibit c5f60655d3 Add files via upload
Update translations.
2019-04-21 14:49:14 -05:00
Tom Rothamel 0ef5e6650e web: Tweak wording of the web screen, add Beuc's info. 2019-04-21 11:43:13 -04:00
Moshibit 036bdc4afe Add files via upload 2019-04-21 01:46:10 -05:00
Moshibit 33d8c014ec Add files via upload 2019-04-21 00:51:20 -05:00
Moshibit 1b193e6884 Add files via upload 2019-04-20 23:50:22 -05:00
Moshibit d6b7786f60 Add files via upload 2019-04-20 18:04:49 -05:00
Tom Rothamel a1bcb09260 web: Interface for creating a web project. 2019-04-20 16:10:50 -04:00
Moshibit d05704c7c7 Add files via upload 2019-04-20 13:40:11 -05:00
Tom Rothamel 68af2f3db2 Shrink the spacer sizes.
This provides a little extra room as we add the Web button to
the launcher.
2019-04-20 12:23:36 -04:00
Tom Rothamel 9b6ab94970 Add SimpleHTTPServer to the list of modules Ren'Py imports. 2019-04-20 10:37:00 -04:00
Tom Rothamel 51abcae5d4 Revert "Log startup timings to the Javascript console."
This reverts commit 045b6cc227.
2019-04-20 01:35:44 -04:00
Tom Rothamel 79e9d81173 web: Distribute compiled Ren'Py files as part of the web distribution.
This includes the .pyo files, and also creates a main.py to start
the game up.
2019-04-20 01:03:22 -04:00
Tom Rothamel 4e60a996dd Merge pull request #1796 from jbeich/bsdarm
Unbreak ARM build on BSDs
2019-04-19 17:01:11 -04:00
Jan Beich 15738d1dfb Unbreak ARM build on BSDs
In file included from ffmedia.c:13:
/usr/include/malloc.h:3:2: error: "<malloc.h> has been replaced by <stdlib.h>"
 #error "<malloc.h> has been replaced by <stdlib.h>"
  ^
2019-04-19 20:01:23 +00:00
Moshibit c37c44d227 Add files via upload 2019-04-19 08:39:03 -05:00
Tom Rothamel 045b6cc227 Log startup timings to the Javascript console. 2019-04-18 22:53:00 -04:00
Moshibit 56f86495fb Add files via upload 2019-04-18 20:56:40 -05:00
Moshibit 576b02d124 Add files via upload 2019-04-17 23:18:42 -05:00
Moshibit b5b7673e8b Add files via upload 2019-04-17 23:05:41 -05:00
Moshibit 455274bbaa Add files via upload 2019-04-17 21:40:04 -05:00
Tom Rothamel 0b492357d9 Fixes to get compiling on PC. 2019-04-17 22:38:59 -04:00
Tom Rothamel fb0149d0dc Merge branch 'web'
Based on @beuc's patches.
2019-04-17 21:58:45 -04:00
Tom Rothamel e7184c3a11 Minor cleanups. 2019-04-17 21:40:08 -04:00
Tom Rothamel 963dba7cc6 Minor cleanups. 2019-04-17 21:36:18 -04:00
Tom Rothamel 087f618326 Revert "web: Remove threading from pgrender.py"
This reverts commit 8dc57697bf.
2019-04-17 21:28:27 -04:00
Tom Rothamel 4c2be41c63 Revert "web: Replace uses of float with double in the gl renderer."
This reverts commit 86bab3977e.
2019-04-17 20:27:36 -04:00
Moshibit d23d5d91e3 Add files via upload 2019-04-17 19:09:34 -05:00
Tom Rothamel 7f8a07a8a5 web: Ifdef changes to renpysound_core.c 2019-04-17 02:38:53 -04:00
Tom Rothamel 173eaf6029 web: Use ifdefs to separate emscripten code in ffmpeg. 2019-04-17 01:07:17 -04:00
Tom Rothamel 8d0830f66f web: Remove threading in ffmedia.c
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-17 00:07:52 -04:00
Moshibit 584f7a0be7 Add files via upload 2019-04-16 21:50:40 -05:00
Tom Rothamel e210147343 Only force a checkpoint if one hasn't been forced already.
This improves things because forced checkpoints would prevent
rollforward data from being saved.
2019-04-16 01:35:59 -04:00
Tom Rothamel e4b33e595a Force a checkpoint after a print statement occurs.
This prevents the console from rolling back past the python block
it's in.
2019-04-15 23:05:56 -04:00
Tom Rothamel 53d08e0f2d Threadless image prediciton. 2019-04-15 01:50:16 -04:00
Tom Rothamel 84c53d3d9c Revert "web: Remove threading in savelocation.py (and a call to renpy.sync?)"
This reverts commit fe2ccc43e2.
2019-04-15 01:50:16 -04:00
Tom Rothamel 2962b5c398 Revert "web: Remove threading in main.py."
This reverts commit 030d9d2dbf.
2019-04-15 01:50:16 -04:00
Tom Rothamel 0ebfae81c9 Revert some changes from loadsave.py. 2019-04-15 01:50:16 -04:00
Tom Rothamel 5dc0372228 Revert "web: Remove threading from render.pyx"
This reverts commit 02ded280af.
2019-04-15 01:50:16 -04:00
Tom Rothamel 82780c57ee Revert "web: Remove threading from presplash."
This reverts commit d6ba807878.
2019-04-15 01:50:16 -04:00
Tom Rothamel 305215823d Revert "web: Remove threading from im.py"
This reverts commit 3c12d7ddb5.
2019-04-15 01:50:16 -04:00
Tom Rothamel 38440bf843 Do not take background screenshots when in emscripten. 2019-04-15 01:50:16 -04:00
Tom Rothamel 3596a59a54 Revert "web: Remove threading in core.py"
This reverts commit 626a5b03a1.
2019-04-15 01:50:16 -04:00
Tom Rothamel 5aaf1f8ef4 Revert "web: Remove threading in debug.py"
This reverts commit 7da19e215f.
2019-04-15 01:50:16 -04:00
Tom Rothamel 398c8a3053 Revert "web: Remove threading in audio.py"
This reverts commit 7a11cb35eb.
2019-04-15 01:50:16 -04:00
Tom Rothamel cfa560d8fa Revert "web: Patch out use of the subprocess module."
This reverts commit e4aa46e7fe.
2019-04-15 01:50:16 -04:00
Tom Rothamel 46fe772cc5 Revert "web: Remove threading from loader.py,"
This reverts commit c0281a41de.
2019-04-15 01:50:16 -04:00
Moshibit 9149a5c941 Add files via upload 2019-04-15 00:45:16 -05:00
Moshibit ce50d6e3f1 Add files via upload 2019-04-15 00:09:51 -05:00
Moshibit f015cda018 Add files via upload 2019-04-15 00:02:19 -05:00
Sylvain Beucler 069ac8e6c3 web: audio: use larger buffer/latency to work-around sound jitter 2019-04-14 23:19:27 +02:00
Moshibit e2ad4d5a3c Add files via upload 2019-04-14 00:08:22 -05:00
Moshibit 3239f0d5bb Add files via upload 2019-04-14 00:04:54 -05:00
Moshibit 7ac80c1a4f Add files via upload 2019-04-14 00:04:17 -05:00
Tom Rothamel eda749e44a Avoid running expressions with side effects when predicting.
See https://twitter.com/SakuraRiver/status/1117201035217358848 .
2019-04-13 21:34:37 -04:00
Moshibit 5da79e86ae Add files via upload 2019-04-13 20:12:14 -05:00
Tom Rothamel dc73065241 Web packaging changes. 2019-04-12 23:59:26 -04:00
Tom Rothamel 55992074c1 Allow building when the .exe files are missing. 2019-04-12 23:57:22 -04:00
Moshibit ba79f7986c Add files via upload 2019-04-12 14:17:21 -05:00
Tom Rothamel 5a0e3da293 sl2: Fix regression in 49c92600bf.
Layouts weren't being parsed in layout mode, which lead to all
sorts of problems.
2019-04-12 09:57:03 -04:00
Lee Yunseok a0100cee00 Complete indepth_translations.rpy 2019-04-12 10:08:09 +09:00
Lee Yunseok 626b249179 Complete Input and Interpolation 2019-04-12 09:47:09 +09:00
Lee Yunseok 2620c313b2 Complete Choices and Python 2019-04-12 09:32:49 +09:00
Tom Rothamel d7a2bd7bdf Add config.load_failed_label.
This is a label that is jumped if the load fails, to give the game
a chance at recovering.

Fixes #1792.
2019-04-11 20:15:57 -04:00
Lee Yunseok 022eb2cdb6 Complete Music and Sound Effects 2019-04-12 09:05:36 +09:00
Lee Yunseok 0efa611034 Complete Transitions 2019-04-12 08:37:57 +09:00
Lee Yunseok 1d87d8ae8a Complete Positioning Images 2019-04-12 08:03:56 +09:00
Moshibit aa43d1828a Add files via upload 2019-04-11 17:31:14 -05:00
Moshibit 21d90dbd55 Add files via upload 2019-04-10 23:18:22 -05:00
Tom Rothamel 4b8026fdd7 Use RENPY_STATIC to control the static build.
This lets us enable and disable static building on a per-platform
basis.
2019-04-10 22:54:27 -04:00
Tom Rothamel 73b8629724 Compat last. 2019-04-10 10:17:04 -04:00
Tom Rothamel 79f0037afc sl2: Report when a non-constant keyword argument follows a python statement.
Fixes #1791.
2019-04-10 09:39:37 -04:00
Tom Rothamel 49c92600bf sl2: Parsing can reject keyword arguments. 2019-04-10 02:59:24 -04:00
Moshibit f594f51ada Add files via upload 2019-04-10 01:22:58 -05:00
Tom Rothamel 254c5b6a2a Make it possible to determine if an SL2 statement supports python. 2019-04-09 20:40:51 -04:00
Tom Rothamel 7568ae3146 Document the supported Python version.
Fixes #1789.
2019-04-08 21:35:41 -04:00
Moshibit 1d7f7353c8 Add files via upload 2019-04-08 15:42:18 -05:00
Moshibit ad4756039d Add files via upload 2019-04-07 16:00:10 -05:00
Tom Rothamel dc30cc39aa Add config.notify. 2019-04-07 10:05:04 -04:00
Tom Rothamel 2720ab3615 Add compatibility for the change in #1774. 2019-04-06 23:08:16 -04:00
Tom Rothamel d7a8c5fb96 Merge pull request #1774 from mal/extend-say-attribute-trans-callback
Extend say_attribute_transition_callback with canonical tag list
2019-04-06 22:45:35 -04:00
Tom Rothamel 49baa6e6cb Script to upload to itch.io. 2019-04-06 04:27:01 -04:00
Tom Rothamel b5abd9f4c4 Merge pull request #1785 from kobaltcore/bmfont-kerning-support
Add ability to parse kerning messages of BMFont fonts
2019-04-04 17:55:44 -04:00
Lee Yunseok 5414417288 Complete Adding Images 2019-04-04 11:10:58 +09:00
Tom Rothamel 98d104b9ec Shortcut creating vc_version.py for build processes. 2019-04-03 01:32:49 -04:00
Tom Rothamel f5e001ac99 web: Mitigate busy script warnings from the browser.
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel fe2ccc43e2 web: Remove threading in savelocation.py (and a call to renpy.sync?)
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel 030d9d2dbf web: Remove threading in main.py.
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel 011c3147dc web: Remove threading from loadsave.py,
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel c0281a41de web: Remove threading from loader.py,
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel 02ded280af web: Remove threading from render.pyx
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel d6ba807878 web: Remove threading from presplash.
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel 8dc57697bf web: Remove threading from pgrender.py
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel 3c12d7ddb5 web: Remove threading from im.py
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel c851968def web: Download a screenshot once it's been taken.
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel 626a5b03a1 web: Remove threading in core.py
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel 7da19e215f web: Remove threading in debug.py
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel 7a11cb35eb web: Remove threading in audio.py
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel d2981c59cd web: Remove threading in renpysound_core.c
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 02:03:39 -04:00
Tom Rothamel e4aa46e7fe web: Patch out use of the subprocess module.
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 00:07:48 -04:00
Tom Rothamel c56aea9dc8 web: Fix up source for static loading.
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 00:06:40 -04:00
Tom Rothamel 86bab3977e web: Replace uses of float with double in the gl renderer.
Originally-by: Sylvain Beucler <beuc@beuc.net>
2019-04-02 00:03:14 -04:00
Tom Rothamel 2b03eb6c39 Add the ability to build a web package. 2019-04-01 23:04:11 -04:00
Tom Rothamel 7f33118758 Bump version. 2019-04-01 19:25:56 -04:00
Tom Rothamel 1bea3fc006 Update changelog and credits, fix docs. 2019-03-31 10:37:27 -04:00
Lee Yunseok 242cad6882 Complete Writing Dialogues 2019-03-31 15:20:32 +09:00
Tom Rothamel 9608615542 android: Set the searchpath _after_ clearing it. 2019-03-30 19:44:09 -04:00
Tom Rothamel 9ddff5d7a5 android: Prioritize files on disk over files in the APK. 2019-03-30 19:41:41 -04:00
Tom Rothamel e623134867 Predict the proper image in resolve_say_attributes.
Fixes #1175.
2019-03-30 14:30:57 -04:00
Tom Rothamel 77e428c9a1 Include temporary attributes when generating translations.
Fixes #1784.
2019-03-30 14:22:38 -04:00
Tom Rothamel 03c951c4a4 itch: Download butler and use the downloaded copy.
Fixes #1782.
2019-03-30 13:26:46 -04:00
Tom Rothamel d9fb4a4234 Update sponsors doc. 2019-03-29 23:29:43 -04:00
Tom Rothamel 571aff3eb1 Update changelog. 2019-03-29 22:20:37 -04:00
Moshibit 7b1e96300f Add files via upload 2019-03-29 15:16:03 -06:00
kobaltcore 0f00705da7 Add ability to parse kerning messages of BMFont fonts
This allows the BMFont object to understand "kerning" lines embedded within BMFont definitions.
The kerning information is added to the existing "self.kerns" property.
2019-03-29 18:14:40 +01:00
Lee Yunseok 81701dd905 Complete Screen Basics 2019-03-29 16:00:10 +09:00
Tom Rothamel 9d9f2c2a75 Correct the priority order of crop vs (corner1, corner2). 2019-03-28 23:23:37 -04:00
Tom Rothamel ce2fa71356 Adjust the accessibility message. 2019-03-28 18:55:09 -04:00
Lee Yunseok 34df516053 More naturally. 2019-03-28 17:11:39 +09:00
Lee Yunseok a69fcedecb Half of the tutorial_screens.rpy 2019-03-28 17:07:43 +09:00
Tom Rothamel e315006136 Add the accessibility menu. 2019-03-27 21:15:41 -04:00
Tom Rothamel a2bf4f3452 Resize a side if the displayabls that comprise it change size. 2019-03-27 21:13:57 -04:00
Tom Rothamel f9a2d1153a Add accessability preferences. 2019-03-27 00:44:41 -04:00
Lee Yunseok 80b4113801 Complete Transform Properties 2019-03-27 13:00:19 +09:00
Tom Rothamel 33f9cef572 renpy.free_memory frees fonts.
As intended.
2019-03-26 22:36:47 -04:00
Tom Rothamel c3a1c8d7ff Add bars to error handling. 2019-03-25 22:29:05 -04:00
Tom Rothamel 565956e966 Allow bar values to call an action when they change something. 2019-03-25 22:12:44 -04:00
Tom Rothamel 4eb84611fe More work on the accessibility menu. 2019-03-24 13:16:29 -04:00
Moshibit 69f3c01442 Add files via upload 2019-03-24 11:12:07 -06:00
Moshibit f205b611b5 Add files via upload 2019-03-24 10:53:24 -06:00
Tom Rothamel fad22b3631 Start work on the accessibility screen. 2019-03-24 11:36:02 -04:00
Tom Rothamel 176309152f Shrink _label_text in most places. 2019-03-24 11:32:42 -04:00
Tom Rothamel 1bf0e75bc1 Add preferences to adjust ftfont size and spacing. 2019-03-23 22:53:39 -04:00
Moshibit 8266095feb Add files via upload 2019-03-23 15:14:20 -06:00
Moshibit e2843c06ba Add files via upload 2019-03-23 12:26:37 -06:00
Tom Rothamel 28d5f5fc39 Fix issue with #1780. 2019-03-22 18:24:07 -04:00
Tom Rothamel a6b21ec78f Merge pull request #1781 from Andykl/fix-lexer-eob
Perform re-create Lexer.eob on revert
2019-03-21 22:25:35 -04:00
Andy_kl 62bac5aa0e Performed re-create Lexer.eob on revert 2019-03-21 19:03:41 +03:00
Tom Rothamel 843b10851f Fix bad .pop() in #1780. 2019-03-20 23:21:48 -04:00
Tom Rothamel c5f15b5c6a Merge pull request #1780 from Meithal/clean
GC optimizations
2019-03-20 23:20:31 -04:00
Meithal ebd8baba00 GC optimizations 2019-03-21 03:58:30 +01:00
Tom Rothamel 464ae528b1 Dejavusans font transform. 2019-03-20 02:04:08 -04:00
Tom Rothamel 884de6f4c3 Add additonal font scaling options.
There is a way to scale the size per font file, and a way to scale the
vertical extent by font file. The main reason for these is to provide
a way to rescale opendyslexic to fit in the same space as DejaVuSans.
2019-03-19 00:50:19 -04:00
Tom Rothamel 414b1a36c7 Add OpenDyslexic files. 2019-03-18 23:58:18 -04:00
Tom Rothamel 8b1168b621 Add font transform support.
This is an accesibility function that can turn one font into
another font, or a font group. It's currently being used to
enable OpenDyslexic when it's needed.
2019-03-18 23:51:33 -04:00
Tom Rothamel 8526cc1ba3 Rewrite FontGroup.
It's now O(1) in operation, at the cost of increasing the size of the
FontGroup. There's also the option to specify a default font, and
it's possible to add a FontGroup to a FontGroup.
2019-03-18 22:43:19 -04:00
Moshibit 5870b6cd1f Add files via upload 2019-03-17 21:21:18 -06:00
Tom Rothamel 7b2f7d7e85 Set steam=None if steam fails to initialize.
This fixes #1772.
2019-03-17 18:31:32 -04:00
Tom Rothamel cbff654273 Bump version. 2019-03-17 17:36:02 -04:00
Tom Rothamel 7cad0e9e06 Fix typo in changelog. 2019-03-17 13:44:10 -04:00
Mal Graty a7471bba03 Extend say_attribute_transition_callback with tags
This provides context to the callback about the image it's affecting
with the transition. This can be used in isolation, or with the current
state to intelligently utilise a transition based upon the
tags/attributes of the image being displayed.
2019-03-17 15:40:33 +00:00
Moshibit 44c11a7803 Add files via upload 2019-03-16 20:31:21 -06:00
Tom Rothamel 210935c4c6 Fix docs. 2019-03-16 21:32:05 -04:00
Tom Rothamel 412cbda546 Update credits and sponsors. 2019-03-16 21:04:39 -04:00
Tom Rothamel 553e80d12e Update changelog. 2019-03-16 20:49:58 -04:00
Tom Rothamel 5dd3af6a0a console: Properly parse jump command.
Fixes #1767.
2019-03-16 20:23:36 -04:00
Tom Rothamel 879d97a93b sl2: Propagate transform state to the right place.
Fixes #1769.
2019-03-16 11:10:55 -04:00
Tom Rothamel c5325bb61e Arguments to extend override older arguments.
Fixed #1768.
2019-03-15 22:32:08 -04:00
Tom Rothamel 5a708e86d0 Ensure a __ne__ method exists for each __eq__ method. 2019-03-14 20:54:29 -04:00
Lee Yunseok 04dc9efc9a 535 2019-03-14 16:21:40 +09:00
Lee Yunseok c6061da3f4 Complete Transforms and Animation 2019-03-14 16:06:20 +09:00
Lee Yunseok dc7a8c9e23 #1763 2019-03-14 14:59:24 +09:00
Tom Rothamel 3a52fd76e5 Merge pull request #1766 from Enerccio/rpe-enviroment-loading
added RENPY_SEARCHPATH environment variable
2019-03-14 00:03:28 -04:00
Tom Rothamel 4e24239322 Document iOS image files. 2019-03-14 00:02:18 -04:00
Tom Rothamel d2bdc159bd Ignore iOS files. 2019-03-13 22:49:03 -04:00
Tom Rothamel 49e804eb50 Update the changelog. 2019-03-13 22:43:06 -04:00
Tom Rothamel 209564d2d2 Set _voice.auto_filename.
Fixes #1765.
2019-03-13 21:09:10 -04:00
Tom Rothamel 56b42f7f8a Remain in rollback until an interaction occurs.
This makes it more reliable to detect rollbacks and loads, and avoid
triggering code when they happen.
2019-03-13 20:27:25 -04:00
Enerccio fb1a01c37f added RENPY_SEARCHPATH environment variable 2019-03-13 18:24:46 +01:00
Lee Yunseok 0ed01f34fe Fixed 2019-03-13 12:26:56 +09:00
Lee Yunseok ffa93d746f 163 2019-03-13 12:04:35 +09:00
Lee Yunseok c9dc8a9e72 More better 2019-03-13 11:54:34 +09:00
Lee Yunseok 9c9816d203 More better 2019-03-13 11:53:50 +09:00
Tom Rothamel 1d1c53e2d5 Generate iOS images when needed. 2019-03-12 21:23:37 -04:00
Tom Rothamel 0604e61151 Add iOS icons. 2019-03-12 21:16:43 -04:00
Moshibit 19f69717de Add files via upload 2019-03-12 11:50:18 -06:00
Lee Yunseok 82e493a7f3 More friendly 2019-03-12 09:35:09 +09:00
Lee Yunseok 04428ab0de Complete Player Experience 2019-03-12 09:30:44 +09:00
Lee Yunseok 1c7989e063 Added: Korean button 2019-03-12 09:29:56 +09:00
Tom Rothamel f8232ed24a Doc config.say_attribute_transition_callback. 2019-03-11 02:02:18 -04:00
Tom Rothamel efafa4e9e6 Add config.say_attribute_transition_callback.
This is a callback that returns the say attribute transition to use,
allowing it to be changed in more complex ways.
2019-03-10 22:46:59 -04:00
Lee Yunseok 52a584846b Merge pull request #18 from renpy/master
Keep going to latest.
2019-03-11 10:47:21 +09:00
Lee Yunseok 3c0f563cc1 Complete Building Distributions 2019-03-11 10:38:38 +09:00
Lee Yunseok 139e731a01 Complete Video Playback 2019-03-11 10:13:42 +09:00
Lee Yunseok bfc8e67c22 Pause for confirm 2019-03-11 09:57:35 +09:00
Moshibit 5a7856cb26 Add files via upload 2019-03-10 10:48:41 -06:00
Tom Rothamel 48130761d7 Open save_dump.txt in the same location as other error files.
This prevents a crash on mac when it's opened in /.
2019-03-10 03:02:01 -04:00
Lee Yunseok e9afa2be3c Fixed: Typos 2019-03-10 14:56:40 +09:00
Lee Yunseok c68749dbe6 Complete Position Properties 2019-03-10 14:56:04 +09:00
Lee Yunseok 8e2a93acec More Ko friendly 2019-03-10 14:55:23 +09:00
Tom Rothamel 95daa0251f Properly quote % in profiling data. 2019-03-09 22:42:05 -05:00
Tom Rothamel 31c3efa9bc Prevent logging from crashing Ren'Py if a spurious % appears. 2019-03-09 21:21:16 -05:00
Tom Rothamel 34875f0011 Pass names and versions when creating iOS project. 2019-03-09 15:12:59 -05:00
Moshibit 78c61e45c5 Add files via upload 2019-03-09 09:06:25 -06:00
Tom Rothamel 4f78eeed28 DynamicImages that take a scope should consider that in equality.
That's because when a scope is involved, it's possible for two
DynamicImages with the same name to be different, even if the
name is the same.

This can cause problems with displayable reuse in screens.

Fixes #1759.
2019-03-08 20:19:20 -05:00
Tom Rothamel 8b80e916a7 Changelog. 2019-03-07 09:21:46 -05:00
Tom Rothamel b810238038 Merge pull request #1758 from Moshibit/patch-4
correct button
2019-03-07 08:45:43 -05:00
Tom Rothamel 7808826773 Fix roll-forward not working through menus.
Fixes #1754.
2019-03-06 23:31:46 -05:00
Lee Yunseok 8849de1017 Merge pull request #17 from renpy/master
Keep going to latest.
2019-03-07 09:08:39 +09:00
Lee Yunseok 30483c2afa More ko friendly 2019-03-07 09:04:53 +09:00
Lee Yunseok 0a05d88963 Save temporary 2019-03-07 09:02:11 +09:00
Lee Yunseok 4fc5076178 Some work. 2019-03-07 08:35:41 +09:00
Lee Yunseok ee47b1e8f8 Fix typo. 2019-03-07 08:22:13 +09:00
Lee Yunseok 5b3b5ba974 Complete NVL-Mode 2019-03-07 07:59:36 +09:00
Lee Yunseok b8e374628a More better. 2019-03-07 07:58:07 +09:00
Moshibit 782f89510b Add files via upload 2019-03-06 10:35:27 -06:00
Moshibit ec8147408b correct button 2019-03-06 09:22:44 -06:00
Tom Rothamel 92d89ea508 Merge pull request #1756 from fchapoton/patch-1
fix an illegal raise False
2019-03-05 18:08:16 -05:00
Tom Rothamel 1ebae688db Merge pull request #1757 from Moshibit/patch-3
correct buttons
2019-03-05 18:07:50 -05:00
Moshibit 927370ebfc Add files via upload 2019-03-05 14:14:27 -06:00
Moshibit 7afe53fb81 correct buttons 2019-03-05 13:40:31 -06:00
Moshibit 9eb1c06659 Add files via upload 2019-03-05 13:19:32 -06:00
Frédéric Chapoton f6e7f67faa fix an illegal raise False
changed to return False

found by https://lgtm.com/projects/g/renpy/renpy/
2019-03-05 19:48:10 +01:00
Tom Rothamel f96d677d4a Bump version to 7.2.1. 2019-03-04 19:15:11 -05:00
Tom Rothamel dd115f186f Remove spurious character. 2019-03-04 19:14:26 -05:00
Tom Rothamel 344079de86 Fix changelog. 2019-03-03 21:16:41 -05:00
Tom Rothamel 47c53e90b4 Force begin rollback at menu and call screen.
This ensures that saves will load at those statements, even in
the presence of fast skipping.

Fixes #1751.
2019-03-03 12:19:45 -05:00
Tom Rothamel bd07fa6abb Defer SHOW->UPDATE until the screen has been drawn.
Calls to renpy.restart_interaction were causing the screen to
restart early, which means that the show events never were
dispatched, and the update event would overwrite it.

Fixes #1753.
2019-03-03 11:15:22 -05:00
Moshibit 8f1d3636d5 Merge pull request #4 from Moshibit/Moshibit-patch-3
Add files via upload
2019-03-03 09:30:21 -06:00
Moshibit 07886362c5 Add files via upload 2019-03-03 09:29:31 -06:00
Moshibit 85c58d5220 Add files via upload 2019-03-03 09:20:46 -06:00
Tom Rothamel 203fdbcc84 Fix User Interface Statement documentation.
Fixes #1752.
2019-03-03 00:33:33 -05:00
Tom Rothamel a47e9ae043 Round .subsurface arguments to integers.
This is more correct, and fixes a bug where inaccuracy could cause
is_pixel_opaque to fail because the 1x1 it wants was rounded down
to 0x1.
2019-03-02 23:21:22 -05:00
Tom Rothamel 6c09b387a3 Document lint functions as functions.
Rather than in the .rst file.
2019-03-01 21:53:28 -05:00
Tom Rothamel 8969d18c91 Merge pull request #1747 from Andykl/CDSfixs
Documentation corrections
2019-03-01 20:13:33 -05:00
Tom Rothamel 828bc67064 Merge pull request #1750 from kevinturner/patch-2
Remove MPEG-1 from renpy.movie_cutscene()
2019-03-01 19:47:16 -05:00
Kevin Turner de01c76882 Remove MPEG-1 from renpy.movie_cutscene()
renpy.movie_cutscene() can play any Ren'Py compatible movie file, but the documentation had not been updated to reflect this.
2019-02-28 01:47:20 -05:00
Tom Rothamel b32c618886 Update version in changelog. 2019-02-28 00:59:34 -05:00
Andy_kl 7be9a851c3 Added docs for lint functions 2019-02-27 22:52:03 +03:00
Andy_kl 38e83e3401 Improved CDS description 2019-02-27 19:14:28 +03:00
Tom Rothamel 5876764730 Merge pull request #1748 from Moshibit/master
Add Spanish translation for The Question
2019-02-27 10:22:16 -05:00
Tom Rothamel 31677e806f Merge branch 'master' into master 2019-02-27 10:21:59 -05:00
Tom Rothamel 4d26e052a1 Merge pull request #1745 from Moshibit/patch-2
Update common.rpy
2019-02-27 10:19:52 -05:00
Andy_kl bcda13f128 Added documentation for simple_expression and delimited_python 2019-02-27 17:12:30 +03:00
Tom Rothamel eeee5afd4d Bump version to 7.2. 2019-02-26 23:22:15 -05:00
Andy_kl 121ba27204 Documentation for some of the Lexer methods. 2019-02-27 02:05:41 +03:00
Moshibit d76c325b3b Add Spanish traslation for The Question 2019-02-26 12:59:30 -06:00
Moshibit 9b35295a6d Update screens.rpy 2019-02-26 12:44:19 -06:00
Andy_kl 572c915b06 Added missing "expression" 2019-02-26 16:48:16 +03:00
Andy_kl 520a4016db Small fix 2019-02-26 16:25:58 +03:00
Andy_kl 16b85e42ac Typos fixed 2019-02-26 16:12:20 +03:00
Tom Rothamel fc54469606 Merge pull request #1746 from AXYPB/master
Documentation corrections
2019-02-26 02:24:25 -05:00
Moshibit 7226cf3998 Add files via upload 2019-02-26 01:22:40 -06:00
Craig Donson a260ed5880 Documentation corrections 2019-02-26 02:21:36 -05:00
Moshibit 2224208aa7 Add files via upload 2019-02-26 00:23:27 -06:00
Moshibit 6846b42612 Update common.rpy
translation correction
2019-02-25 23:55:58 -06:00
Tom Rothamel 69a648b23c Merge pull request #1744 from Moshibit/patch-1
Update screens.rpy
2019-02-26 00:50:26 -05:00
Moshibit 5f5fd90731 Update screens.rpy 2019-02-25 23:48:30 -06:00
Tom Rothamel b0d4fca4f0 Allow nvl=True to be passed as an argument to menu.
This makes Ren'Py use nvl_menu instead of menu.
2019-02-25 23:54:19 -05:00
Tom Rothamel 1a50cfff71 Separate checking redraws and processing redraws.
This is because checking redraws happens once per event, but
we might handle multiple events before the redraw itself occurs.
After process_redraws happens, the Renders are in an invalid state
until the next draw_screen.

When in this invalid state, if the inspector is called, a crash
occurs.
2019-02-25 20:46:35 -05:00
Tom Rothamel 9d6ff18e15 Document new screen statements. 2019-02-24 20:51:53 -05:00
Moshibit 7fb674ca11 Delete script.rpyc 2019-02-24 19:32:23 -06:00
Moshibit a32d9e0be0 Delete screens.rpyc 2019-02-24 19:32:14 -06:00
Moshibit 7315e353a8 Delete options.rpyc 2019-02-24 19:32:07 -06:00
Moshibit 3590a545e7 Delete common.rpyc 2019-02-24 19:31:59 -06:00
Moshibit 4ac857581d Add files via upload 2019-02-24 19:31:22 -06:00
Moshibit 383fe6195c Add files via upload 2019-02-24 19:29:38 -06:00
Moshibit a22ad60b0f Merge pull request #2 from Moshibit/Moshibit-patch-2
Update common.rpy
2019-02-24 19:17:04 -06:00
Tom Rothamel 322811168a Update the changelog. 2019-02-24 19:58:23 -05:00
Tom Rothamel eded9b0c79 Update keywords. 2019-02-24 18:49:12 -05:00
Tom Rothamel 810835020b Bring back renpy.pause(hard=True) with a suitable disclaimer. 2019-02-24 16:34:14 -05:00
Tom Rothamel cfdf3d57f4 Merge pull request #1741 from Andykl/DateFormatFix
Date format changed to correct in Russian translation
2019-02-24 15:41:22 -05:00
Tom Rothamel 6e4b805cae Undocument rarely used arguments to renpy.pause.
Including hard=True.
2019-02-24 12:37:59 -05:00
Moshibit 704573db42 Update common.rpy
correction of translation error
2019-02-24 11:26:02 -06:00
Tom Rothamel c1292d4975 Allow show screen and hide screen to take a width clause.
Show would parse it but ignore it, which was bad. Now it just
works the same as with the usual show and hide statements.
2019-02-24 12:21:27 -05:00
Andy_kl ffd35663a6 Date format changed to correct in Russian translation 2019-02-24 13:48:27 +03:00
Tom Rothamel 2eea4a442c sl2: Add use expression as a statement. 2019-02-24 02:15:43 -05:00
Tom Rothamel be6d14d740 Propertly set _main for sl2 add with transform.
Fixes a problem where the scope would not be updated correctly when
a transform was involved.

Fixes #1740.
2019-02-23 22:22:06 -05:00
Tom Rothamel eff4c21cfe Drag/DragGroup zorder rewrite.
This moves from trying to maintain the zorder, to just sorting
the children any time it changes. This makes it possible to
persist the zorder through interaction restarts in a sensible
way.

Fixes #1727.
2019-02-23 19:37:17 -05:00
Tom Rothamel 919c0a7f0d Merge pull request #1739 from mal/issue-1738
Fix speaking_attribute suppression
2019-02-23 10:17:46 -05:00
Mal Graty 432acfcf9e Fix speaking_attribute suppression
Switch back to prepending temporary_attrs with speaking_attribute so
that temporary say attributes have the chance to suppress the
speaking_attribute.

The use case for this is catering for infrequent lines of a character's
internal monologue, for which they are responsible, but do not actively
speak.
2019-02-23 11:06:06 +00:00
Tom Rothamel eab5170ae1 Attributes should only be restored if temporary attributes are present. 2019-02-23 01:59:12 -05:00
Tom Rothamel ad4f4095fd Only restore attributes if the attributes have changed.
Fixes #1737.
2019-02-23 01:35:43 -05:00
Tom Rothamel 94ee41646d Only set config.missing_{scene,show,hide} if None. 2019-02-23 01:23:05 -05:00
Tom Rothamel 46bafe91ae Merge pull request #1726 from AXYPB/master
Documentation corrections
2019-02-22 17:11:51 -05:00
Tom Rothamel 0cfdf68f7d Merge pull request #1735 from mal/augment-dont-replace-speaking-attr
Let temp attrs and speaking attr to work together
2019-02-22 17:11:23 -05:00
Mal Graty 18713b60f2 Let temp attrs and speaking attr to work together 2019-02-22 09:52:21 +00:00
Tom Rothamel 5adfccf53f Explicit test for attrs being None.
Fixes #1734.
2019-02-21 23:10:07 -05:00
Tom Rothamel eb0d1c8bfd Merge pull request #1733 from mal/fix-outline-stepping
Fix positional stepping when scaling outlines
2019-02-21 22:33:11 -05:00
Mal Graty 1e9d6bd519 Fix position stepping when scaling outlines 2019-02-21 19:11:39 +00:00
Tom Rothamel f5c1e108c5 Implement the outline_scaling style property.
This controls if the outlines are scaled using the current stepped
approach or a new linear approach.
2019-02-20 22:30:18 -05:00
Tom Rothamel 2b0691233e When adjusting spacing, try to keep the baselines aligned. 2019-02-20 21:55:25 -05:00
Tom Rothamel 065a46caa4 Adjust baseline as the text scales. 2019-02-20 12:35:15 -05:00
Craig Donson 5ebc270420 Further corrections 2019-02-20 05:18:02 -05:00
Tom Rothamel c4fb7c44dd Add renpy.is_skipping.
A documented way to know if skipping is going on.
2019-02-19 20:01:51 -05:00
Tom Rothamel df9be4a293 Release a grab when the associated displayable can't be focused.
Fixes #1728.
2019-02-19 19:37:52 -05:00
Tom Rothamel b639e0bca5 Update changelog. 2019-02-18 21:27:19 -05:00
Tom Rothamel 6aaf8b6ce9 Accept copy and paste in launcher input. 2019-02-18 20:40:41 -05:00
Tom Rothamel 15cf4341c3 Explictly remove temporary say attributes.
This fixes a problem with layeredimages for which "foo red happy"
and "foo red happy speaking" will both be defined. In that case,
"show foo red happy" won't remove speaking, and so we need to
do an explicit "show red happy -speaking".
2019-02-17 22:52:29 -05:00
Tom Rothamel 2bec7e4a73 Store the width and heigh passed to render().
Used by 115aae01dc, forgot to check
it in.
2019-02-17 21:40:04 -05:00
Tom Rothamel 6a94806b29 Check in data used when creating test projects. 2019-02-17 21:12:28 -05:00
Craig Donson 184006e7b8 Documentation corrections 2019-02-17 20:03:33 -05:00
Tom Rothamel 115aae01dc xmaxiuum and xymaximum shouldn't restrict where a drag can be moved.
We had been using the width and height offered to the drag as
the places where it can move. However, those are affected by
any xmaximum or ymaximum in effect.

This changes that so the original width and height are stored an
passed to the drag.
2019-02-17 14:39:18 -05:00
Tom Rothamel 00e71e3247 Merge pull request #1715 from Andykl/InputCopypaste
Added ability to input do copy paste
2019-02-17 12:32:06 -05:00
Andy_kl 4c0f25a53d Moved scrap calls to direct use 2019-02-17 20:30:57 +03:00
Tom Rothamel 482a3526df Merge pull request #1724 from Andykl/PlacementImprove
renpy.get_placement improve
2019-02-17 12:11:46 -05:00
Andy_kl 77dbe13a50 Doc last 2019-02-17 20:07:20 +03:00
Andy_kl ea305245f3 A small addition for renpy.get_placement 2019-02-17 20:06:01 +03:00
Tom Rothamel 2924a35b0d Merge pull request #1723 from Andykl/GetAttrsImprove
Added ability to specify if_hidden for renpy.get_attributes
2019-02-17 11:50:32 -05:00
Andy_kl d8b15aa717 Added ability to specify if_hidden for renpy.get_attributes 2019-02-17 19:48:55 +03:00
Tom Rothamel 13ef80181a Add a script to manage temporary tests. 2019-02-17 10:38:38 -05:00
Lee Yunseok fccac2a76f Merge pull request #16 from renpy/master
Keep going to latest
2019-02-17 18:22:09 +09:00
Lee Yunseok e04a38d417 Apply #30225b7 2019-02-17 18:20:21 +09:00
Tom Rothamel fc1392a0a3 Avoid displaying the CTC screen for 0 seconds. (As with {nw}.) 2019-02-16 18:09:36 -05:00
Tom Rothamel deedb038c2 Fix broken extend. 2019-02-16 17:59:19 -05:00
Tom Rothamel 31a0355299 Doc fix. 2019-02-16 17:53:13 -05:00
Tom Rothamel c243915cdb Document say with temporary attributes. 2019-02-16 13:59:25 -05:00
Tom Rothamel 27c6fe0e71 Update changelog. 2019-02-16 13:43:05 -05:00
Tom Rothamel 838d87ab66 Use the max_window_size in Preference
This makes sure that we can't create a window too big to fit on the
user's monitor.

It aso now highlights the Window preference when it's as big as it
can be, even if less than 100% of the game's size.

Fixes #1716.
2019-02-16 13:26:26 -05:00
Tom Rothamel 488a2ff7b8 Compute and store the maximum window size. 2019-02-16 13:24:49 -05:00
Tom Rothamel 5a2b42f0c4 Update credits. 2019-02-16 10:34:42 -05:00
Tom Rothamel ae138402ec Update sponsors. 2019-02-16 10:31:49 -05:00
Tom Rothamel 26f60f8b09 Do not show the ctc screen when interact=False. 2019-02-16 10:29:39 -05:00
Tom Rothamel 871bc9a9bb Allow the interact argument to be passed to a say-with-arguments. 2019-02-16 10:07:42 -05:00
Tom Rothamel 4c3891538a Document several lexer methods.
* .arguments
* .image_name_component
* .label_name
* .delimited_python
2019-02-16 09:52:07 -05:00
Tom Rothamel 7af27638a3 Do not begin a new rollback while in _after_load.
We don't want the after_load block to be a distinct part of the
game for the purpose of rollback, as it might come and go and
hence block roll-forward.

Fixes #1718.
2019-02-16 01:34:23 -05:00
Tom Rothamel fba8fb6cd7 Give a space segment an ascent of 1.
This prevents it from triggering a case that's meant for
DisplayableSegments. Fixes #1719.
2019-02-15 23:29:51 -05:00
Tom Rothamel bcf2734f53 Round up the size of the generated texture when doing a render-to-texture.
Having that extra pixel guarantees all the data is present, preventing
a blank (black or white) line from appearing at the bottom of the screen
during dissolves.
2019-02-15 21:31:22 -05:00
Tom Rothamel 80d4796c04 Fix translations after 30225b7de0 2019-02-14 22:34:03 -05:00
Tom Rothamel 8529993ffb Script for altering translations after minor text changes. 2019-02-14 22:33:32 -05:00
Tom Rothamel 718b0d7eb8 gc: Prevent reference counting loop through Render. 2019-02-14 02:42:36 -05:00
Tom Rothamel 21f654e559 gc: Avoid reference counting loop in ast.fix_missing_locations 2019-02-14 02:35:38 -05:00
Tom Rothamel a8c4c34782 gc: Fix reference loop in merge_slide. 2019-02-14 00:13:57 -05:00
Tom Rothamel 79a099315f Add temporary say attributes to the changelog. 2019-02-13 21:21:16 -05:00
Tom Rothamel 6136404adc Add window auto show and window auto hide statements. 2019-02-12 23:40:40 -05:00
Tom Rothamel 38de45259f Allow force_autosave to block until the save is done. 2019-02-12 20:20:04 -05:00
Tom Rothamel 331738b11f MoveTransition should indicate it creates a MultiBox with layers.
Some other part of Ren'Py will raise IgnoreLayers, and if the
root widget doesn't understand layers, this will be wrong.
2019-02-12 01:01:01 -05:00
Tom Rothamel dd6f482fcd Rewrite say attribute handling to support temporary attributes. 2019-02-11 23:12:01 -05:00
Tom Rothamel 9f770ce6fe Make the layer optional in most ShownImageInfo methods. 2019-02-11 23:12:01 -05:00
Beuc 75c6df852f doc: savelocation.sync() is for syncing HOME 2019-02-11 22:44:13 +01:00
Tom Rothamel 748228581b Merge pull request #1714 from shayneofficer/patch-2
Update tutorial_quickstart.rpy
2019-02-11 01:57:58 -05:00
Tom Rothamel b6ff60ac91 Merge pull request #1713 from shayneofficer/patch-1
Update examples.rpy
2019-02-11 01:57:51 -05:00
Tom Rothamel a2315537a3 Parse temporary image attributes as part of a say statement. 2019-02-10 21:28:25 -05:00
Andy_kl 2f7aea3bff Renamed keyword 2019-02-11 03:23:13 +03:00
Andy_kl a66f7f1716 Added doc 2019-02-11 02:47:33 +03:00
Andy_kl be28c4c8cb Added copypaste for console 2019-02-11 02:16:24 +03:00
Andy_kl 09e7296dac Added screenlang keywords 2019-02-11 02:15:12 +03:00
Andy_kl ed60700636 Initial 2019-02-11 02:15:04 +03:00
Shayne Officer 30225b7de0 Update tutorial_quickstart.rpy 2019-02-09 22:24:12 -06:00
Shayne Officer 0ba59c4a3c Update examples.rpy
Just fixing a typo, higlight to highlight
2019-02-09 22:15:10 -06:00
Tom Rothamel 0c6648cc69 Allow text images to participate in ruby layout.
Fixes #1704.
2019-02-09 12:49:50 -05:00
Tom Rothamel 3537d4df09 Update Pig Latin. 2019-02-08 08:26:00 -05:00
Tom Rothamel cfa1053331 Tweak formatting of the error handling screen. 2019-02-08 08:24:26 -05:00
Tom Rothamel 735f355aa9 Support copying errors/tracebacks via Markdown. 2019-02-08 08:20:42 -05:00
Tom Rothamel 88722c18dc Update the changelog. 2019-02-06 23:47:24 -05:00
Tom Rothamel b4a9d9e163 Optionally provide additional arguments to the ctc screen. 2019-02-06 23:31:12 -05:00
Tom Rothamel 54e8c63b3a Allow passing of arguments in a way that not all keyword arguments need be consumed.
The goal of this is to allow the transparent addition of new arguments
to screens, without the old screens needing to be updated.
2019-02-06 23:25:39 -05:00
Tom Rothamel de0d21b377 Do not quite the display on a resize.
Instead, we let set_mode do it if and when it proves necessary.
2019-02-06 10:28:07 -05:00
Tom Rothamel 3980e65920 Ignore spurious event when leaving fullscreen. 2019-02-06 02:59:05 -05:00
Tom Rothamel 6be0f498e4 Allow add_from to deal with calls to a local label.
Fixes #1709.
2019-02-05 17:36:40 -05:00
Tom Rothamel 957e79dd88 Make sure that the periodic thread can wait deadlocked.
Fixes a case where Ren'Py won't quit.
2019-02-05 02:05:31 -05:00
Tom Rothamel b33d61e52a Use the y coordinate to determine the baseline.
Fixes #1706 again.
2019-02-04 22:05:31 -05:00
Tom Rothamel f61dc75199 Document renpy.BASELINE. 2019-02-04 02:05:42 -05:00
Tom Rothamel b7a67d50ef Add yanchor renpy.BASELINE.
This lets us line the text's baseline up with other things.

Fixes #1706.
2019-02-03 23:55:03 -05:00
Tom Rothamel efe919e875 Predict images used by Movie. 2019-02-03 20:28:04 -05:00
Tom Rothamel 0aeba7e272 Add start_image to Movie.
This is an image that is displayed before the first frame of
the movie has been rendered.
2019-02-03 20:28:04 -05:00
Tom Rothamel e735f8a566 Merge pull request #1707 from xavi-mat/master
Doc fix: gui.font_size -> gui.text_size
2019-02-03 19:55:27 -05:00
xavi-mat a02b5347bf correction
gui.font_size -> gui.text_size
2019-02-03 22:29:21 +01:00
Tom Rothamel 408e5dc02b Ensure menu arguments always exist. 2019-02-02 10:31:41 -05:00
Tom Rothamel 0c5012f835 Clean up the renpysound api. 2019-02-01 23:47:46 -05:00
Tom Rothamel 7d1b9e2e80 Document renpysound.
This is intended to become a replaceable interface that can allow
for decoding of audio in a platform-specific manner.
2019-02-01 22:21:32 -05:00
Tom Rothamel 2ea71b8240 Update credits. 2019-01-31 23:33:35 -05:00
Tom Rothamel f0c304eb52 Fix typo. 2019-01-31 23:32:16 -05:00
Tom Rothamel d4ebdc2c2e Update keywords. 2019-01-31 23:21:48 -05:00
Tom Rothamel 32f373f8f8 Document menu set again. 2019-01-31 23:18:42 -05:00
Lee Yunseok a9e9344310 Merge pull request #15 from renpy/master
Keep going to latest
2019-01-31 06:04:59 +00:00
Tom Rothamel 2813e5ce01 Document menu arguments. 2019-01-31 00:31:28 -05:00
Tom Rothamel d584e370a1 Initialize the slideshow field on the gallery object. 2019-01-30 22:35:16 -05:00
Tom Rothamel ee28b54c6c menu: Filter item_arguments when a set is used. 2019-01-30 01:12:01 -05:00
Tom Rothamel 2b914b040f Boldly fix bug #1701.
Which pertained to say with menu arguments not removing the argument
corresponding to the menu caption.

Fixes #1701.
2019-01-29 23:15:28 -05:00
Tom Rothamel 5845ee32f8 Update changelog for 7.1.4. 2019-01-29 09:06:03 -05:00
Tom Rothamel 5ceb63ffec Merge pull request #1685 from Beuc/patch-1
Doc fixes
2019-01-28 21:34:00 -05:00
Tom Rothamel 1c4281923c Merge pull request #1689 from Beuc/patch-2
doc fix: layer_at_list -> show_layer_at
2019-01-28 21:33:49 -05:00
Tom Rothamel 61c3e38bb5 Avoid resizing a maximized window. 2019-01-28 01:45:46 -05:00
Tom Rothamel 9a38109af6 Change the FULLSCREEN flag, rather than closing and repopening video.
Fixes #1665, along with an update to pygame_sdl2.
2019-01-27 19:17:45 -05:00
Tom Rothamel d7cdc62eb8 Remain fullscreen when the mouse changes desktops. 2019-01-27 11:17:50 -05:00
Tom Rothamel 697a7906ef li: Groups now support the multiple attribute.
When given, the attributes are defined without the group - that
means that auto can be used to define multiple attributes, of
which any of them can be selected at once.
2019-01-27 01:23:55 -05:00
Tom Rothamel 4c59d32bea Add allow_duplicate_labels to be defined early. 2019-01-26 10:13:46 -05:00
Tom Rothamel 3c8fd80503 Add config.allow_duplicate_labels.
A variable that does what it says on the tin, allowing the same
variable to be defined twice in one script.
2019-01-25 23:38:40 -05:00
Tom Rothamel 80c7516e9a Check the name after running prior early python blocks. 2019-01-25 22:35:14 -05:00
Tom Rothamel 4242b7dab4 Fix creating a new file. 2019-01-25 19:08:24 -05:00
Tom Rothamel 136150b8e4 Set a default thumbnail size. 2019-01-25 11:27:49 -05:00
Tom Rothamel fde8daca3e Merge pull request #1698 from Beuc/patch-5
hw_video: use consistent platform testing
2019-01-24 08:32:26 -05:00
Tom Rothamel b8fe298e8e Automatically clear screenshots when a checkpoint occurs.
This is a compromise between the 6.99 and 7.x behavior. In the older
stuff, we would never automatically clear the screenshot, meaning
if a game called renpy.take_screenshot, it could grow stale.

In the newer behavior, we would clear it after each interaction,
even meanigless ones, like an implie with.

This uses renpy.checkpoint to clear the screenshot, which is a proxy
for the game state meaningfully advancing. In addition, this behavior
can be disabled by setting config.auto_clear_screenshot to False.

Fixes #1680.
2019-01-23 23:41:30 -05:00
Tom Rothamel beb82cc52a Merge pull request #1696 from Beuc/patch-3
Comment typo
2019-01-23 22:13:09 -05:00
Tom Rothamel e888f64795 Merge pull request #1697 from Beuc/patch-4
doc: hints for supported mobile video formats
2019-01-23 22:12:55 -05:00
Beuc 811977793d hw_video: use consistent platform testing 2019-01-23 18:13:37 +01:00
Beuc 185a3898d0 doc: hints for supported mobile video formats 2019-01-23 18:08:24 +01:00
Tom Rothamel 92e0375108 Allow the creator to configure the steam popup position.
Fixes #1686.
2019-01-22 22:10:28 -05:00
Beuc c741220b8b Comment typo 2019-01-23 01:10:58 +01:00
pionere 9c12fc9c06 shortcut for change_language 2019-01-22 09:39:01 +01:00
Tom Rothamel 2d9f3000a4 Fix inverted test in imagefonts. 2019-01-21 23:51:48 -05:00
Tom Rothamel f44796fd5b If an action argument isn't comparable, say it's not equal.
Fixes #1693.
2019-01-21 22:25:06 -05:00
Tom Rothamel 4c1fa7b36d Start input mode after setting the text rectangle. 2019-01-21 22:02:03 -05:00
Tom Rothamel 867e8ad144 Rename some of the gl2 files.
This allows static and semi-static linking, of the sort that we
do on Android and iOS.
2019-01-21 00:42:55 -05:00
Tom Rothamel e218adf0fd Allow arguments to be passed to individual menu choices.
This uses the syntax:

menu:
    "Choice 1" (1, color="#f00"):
        pass
    "Choice 2" (2, color="#0ff") if unlocked:
        pass
2019-01-20 18:37:35 -05:00
Tom Rothamel fe29d69ccb Add config.menu_arguments_callback.
This is something like config.say_arguments_callback, except for
menus.
2019-01-18 22:56:22 -05:00
Tom Rothamel 7d63a35734 Allow the menu statement to take arguments. 2019-01-18 22:40:04 -05:00
Beuc 3d7533552d doc fix: layer_at_list -> show_layer_at 2019-01-17 17:14:52 +01:00
Tom Rothamel b539e047ed Use the original list of items when checking the menu set.
Fixes #1688.
2019-01-17 02:02:20 -05:00
Tom Rothamel bcd35bd79e Drop version to 7.1.4.
As I plan to make a fix release before 7.2 hits.
2019-01-16 17:55:16 -05:00
Beuc bc49ab7d78 Doc fixes 2019-01-16 13:17:49 +01:00
Tom Rothamel 5eee3ba007 Cause a new rollback to begin if needed to match a rollforward.
Fixes #1671.
2019-01-15 23:22:37 -05:00
Tom Rothamel 6e6841c500 Add a loop parameter to Movie.
This makes it easy to display non-looping movies that stop when
they are done.
2019-01-15 23:22:37 -05:00
Tom Rothamel cb5fecc9b0 Merge pull request #1679 from mal/song-2
Fast im.Blur implementation
2019-01-15 21:59:30 -05:00
lee-yunseok cc4d33e213 Ko translation for the tutorial #1 2019-01-15 16:56:27 +09:00
lee-yunseok ed3d151916 optimized 2019-01-15 16:54:30 +09:00
Tom Rothamel d75828e35b Fix video fallback when not playing. 2019-01-15 01:29:07 -05:00
Lee Yunseok 9087ab53bd Merge pull request #14 from renpy/master
Keep going to latest
2019-01-15 15:27:10 +09:00
Tom Rothamel b1a5d587e7 launcher: Restore interface.error handling.
Per #1684.
2019-01-14 22:18:00 -05:00
Tom Rothamel da92428cb9 Handle errors downloading and parsing channels.json.
Fixes #1684.
2019-01-14 00:07:09 -05:00
Tom Rothamel cd47441420 steam: Re-set DYLD_INSERT_LIBRARIES before invoking Ren'Py proper.
This works around an issue in Steam where the injected libraries
change the variable to STEAM_DYLD_INSERT_LIBRARIES, which means
python never sees it and the overlay doesn't load.
2019-01-13 19:57:53 -05:00
Tom Rothamel f9deff6bc5 Update copyright for 2019. 2019-01-12 13:37:18 -05:00
Tom Rothamel 854c08f1a5 Automatically pick the copyright year. 2019-01-12 13:34:33 -05:00
Tom Rothamel 5e45ed9cf4 Add keyup and keydown modifiers. 2019-01-11 21:57:11 -05:00
Tom Rothamel 62637db772 Remove size / 2 limitation.
Fixes #1661.
2019-01-11 18:57:52 -05:00
Tom Rothamel c75855e7e5 On Android, read files out of the public directory.
Fixes #1664.
2019-01-10 22:24:41 -05:00
Tom Rothamel f2dcd5af8e Prevent a crash when generating a 9:16 screen.
Fixes #1682.
2019-01-10 22:24:08 -05:00
Tom Rothamel de67f53409 Include SDL_opengles2 when required. 2019-01-09 22:54:53 -05:00
Tom Rothamel 361787a3f3 Support clicking cancel in tkaskdir.
Fixes #1678.
2019-01-09 02:05:32 -05:00
Tom Rothamel 7cc5b5db73 Error out if an attribut isn't present on lint. 2019-01-08 23:43:44 -05:00
Tom Rothamel 2bd87a931f Add a flag to the displayable arguments if lint is happening. 2019-01-08 21:24:28 -05:00
Lee Yunseok 306d3b16a6 Merge pull request #13 from renpy/master
Keep going to latest
2019-01-08 13:53:39 +09:00
Mal Graty 3e73f0d8e9 Wire blur into renpy.display.im 2019-01-07 21:31:05 +00:00
Mal Graty 231daa4e60 Cython wrappers for linear and gaussian blurs 2019-01-07 21:31:05 +00:00
Mal Graty 920d21d518 Linear and gaussian blur implementations 2019-01-07 21:31:05 +00:00
Tom Rothamel 6ddd1f2234 menu: Do not create a ChoiceReturn when the value is None.
This restores the behavior of config.narrator_menu=False, at least for
games that use screens that support the old way of doing it.
2019-01-06 18:58:04 -05:00
Tom Rothamel 958a48199a Add the caret property to screen language. 2019-01-05 16:28:06 -05:00
Tom Rothamel 78bfc2c43d Display Movie's image argument if the movie stops playing.
Fixes #1677.
2019-01-04 22:46:38 -05:00
Tom Rothamel 83f6c56f0a Report an error if the displayable with id "what" doesn't have what as its text.
This detects a problem where the creator passed something else to
text, and had a hard-to-diagnose problem. ie:

    text ("!" + what) id "what"

will cause weird tag errors.
2019-01-03 19:56:31 -05:00
Lee Yunseok e04d2046de Merge pull request #12 from renpy/master
Keep going to latest
2019-01-01 17:33:40 +09:00
Tom Rothamel ee64a7b592 Remove TODO. 2018-12-31 23:52:48 -05:00
Tom Rothamel 26e582a70f tutorial: Update the French and Russian translations.
To include 1674.
2018-12-31 22:57:36 -05:00
Tom Rothamel 6896ad9bce Fix typo.
Fixes #1674.
2018-12-31 22:41:23 -05:00
Tom Rothamel 74ca5c9de8 Merge pull request #1675 from Beuc/patch-1
emscripten: tidy platform detection
2018-12-30 14:21:14 -05:00
Sylvain Beucler 8a327eacea emscripten: tidy platform detection 2018-12-30 18:42:16 +01:00
Tom Rothamel f25fcacd44 Clear the say attributes once they are consumed.
This prevents them from being re-consumed by empty_window if it's called.
2018-12-29 00:17:09 -05:00
Tom Rothamel 6445f3a9c5 Fix functions that are documented more than once.
Fixes #1669.
2018-12-23 00:05:35 -05:00
Tom Rothamel 90ba612afa Look for and report duplicate functions. 2018-12-22 22:48:54 -05:00
Tom Rothamel 6a5363f747 Import opengl through sdl2. 2018-12-18 10:34:40 -05:00
Tom Rothamel 3d2079f665 Ensure renpy.play can never loop a sound. 2018-12-11 22:13:17 -05:00
Tom Rothamel 372216ef08 Signal when data is written.
This is a rewrite of #1631, to put all the emscripten changes into
a single function.
2018-12-10 17:55:49 -05:00
Tom Rothamel 4ec44cf1ff Merge pull request #1660 from Beuc/patch-3
update_path: support static Python modules
2018-12-10 17:48:49 -05:00
Tom Rothamel e62bef8e6f Merge pull request #1662 from Beuc/patch-4
Remove unused import
2018-12-10 17:48:14 -05:00
Beuc 689cedd191 Remove unused import 2018-12-09 13:27:43 +01:00
Sylvain Beucler 475abc4218 update_path: support static Python modules 2018-12-08 14:55:32 +01:00
Tom Rothamel 863535cca4 Filter text tags when computer the length of AFM text.
Fixes #1659.
2018-12-04 22:09:45 -05:00
Tom Rothamel c7fb7a40df Do not pickle six. 2018-12-04 00:31:20 -05:00
Tom Rothamel ff81f1dc1a Merge pull request #1596 from wchill/py3_compat_exceptions
[Py3] Make exceptions both python2 and python3 compatible
2018-11-29 22:12:23 -05:00
Tom Rothamel d5248ad00d Merge pull request #1597 from wchill/use_print_function
[Py3] Use print function in pure python files
2018-11-29 22:12:09 -05:00
Tom Rothamel c34ca2acb4 Overwrite obsolete android packaging page.
Fixes renpy/rapt#7.
2018-11-28 01:15:27 -05:00
Tom Rothamel eb36cc693d Merge pull request #1653 from Beuc/patch-2
Explicitely close audio on quit
2018-11-27 18:29:56 -05:00
Tom Rothamel fc0328f609 Prevent a corrupt RPC file from taking down Ren'Py. 2018-11-26 20:46:54 -05:00
Tom Rothamel 6ad657ca30 Duplicate the child of a transform when the transform is duplicated.
Fixes #1654.
2018-11-25 23:07:31 -05:00
Beuc f779d3af59 Explicitely close audio on quit
With Emscripten, this tells the browser to stop calling the audio callback.
2018-11-25 13:14:41 +01:00
Tom Rothamel 89a116330a Make ftfont explicity mark glyphs as non-drawing.
Rather than using <0 width to imply it, which is a problem as fonts
seem to have 0 or negative width characters.

Fixes #1652.
2018-11-24 23:45:53 -05:00
Tom Rothamel 71ca7d3cb8 Merge pull request #1632 from Beuc/patch-7
emscripten: presplash specific handling
2018-11-24 20:45:33 -05:00
Tom Rothamel 211d35681f Merge pull request #1642 from Beuc/patch-2
audio: fix deadlock on quit
2018-11-24 20:45:03 -05:00
Tom Rothamel 18ad931283 Merge pull request #1651 from musiyenko/master
Fixed some typos
2018-11-23 22:36:55 -05:00
Tom Rothamel 005a524123 lint: Report screens that do not have parameter lists.
This should prevent people from making this mistake.
2018-11-23 10:08:03 -05:00
Sergey Musiyenko e9d30afc29 Fixed a typo 2018-11-22 14:48:42 +01:00
Sergey Musiyenko ee39d4cc73 Fixed a typo 2018-11-22 14:48:02 +01:00
Sergey Musiyenko 34e294e35c Fixed a typo 2018-11-22 14:47:14 +01:00
Sergey Musiyenko fd3f50d223 Fixed a typo 2018-11-22 14:45:51 +01:00
Tom Rothamel 4d7a93f09e Alow user statements to supply translation strings. 2018-11-22 01:09:21 -05:00
Tom Rothamel 0382e17b35 Better document reserved filenames. 2018-11-21 21:12:51 -05:00
Tom Rothamel 02b0627051 Shorten output that goes to the console.
Unless the creator chooses long output.
2018-11-20 23:30:35 -05:00
Lee Yunseok 6accdd39aa Merge pull request #11 from renpy/master
Latest
2018-11-20 21:34:17 +09:00
Tom Rothamel 373e6359f0 gl2: Remove non-NPOT textures. 2018-11-19 23:59:11 -05:00
Tom Rothamel 380f7824c5 gl2: egl2 -> gles2 renaming. 2018-11-19 11:31:50 -05:00
Tom Rothamel 6bd05879ce gl2: Allow the player to choose between gl2 and gles2 renderers.
This uses the same codebase and same modules, and just chooses by
asking OpenGL for the right kind of context at runtime.
2018-11-18 22:05:16 -05:00
Tom Rothamel fa6efc44a8 Bump version to 7.2.0. 2018-11-18 11:27:23 -05:00
Tom Rothamel e563889ef9 Merge branch 'gl2'. 2018-11-18 11:24:41 -05:00
Tom Rothamel f2376c02e8 Changelog 7.1.3. 2018-11-18 10:49:45 -05:00
Tom Rothamel ec9e1c2aa5 Bump version. 2018-11-18 01:20:03 -05:00
Tom Rothamel 6e880b2ba7 Fix incorrectly set default language. 2018-11-18 01:17:33 -05:00
Tom Rothamel 44e8dd8ab3 Remove the use of glew from the gl2 renderer. 2018-11-17 18:16:01 -05:00
Tom Rothamel 1943682bc6 Make gltexture use uguugl.
This also entailed some simplifications that make sense for modern
GL environments. We now exclusively use GL_RGBA, and we require the
third texture.
2018-11-17 18:09:09 -05:00
Tom Rothamel e43f8af2c3 gl2: Make glenviron_shader use uguugl. 2018-11-17 00:30:57 -05:00
Tom Rothamel ed342d27ac gl2: Make glrtt_fbo use uguugl. 2018-11-16 23:55:09 -05:00
Tom Rothamel c75ee1bf5f Merge branch 'master' into gl2 2018-11-16 21:28:01 -05:00
Beuc b42d2ab892 audio: fix deadlock on quit 2018-11-16 09:25:03 +01:00
Tom Rothamel 09002e2ef0 Update credits and changelog. 2018-11-15 22:59:58 -05:00
Tom Rothamel a876b05b10 Update sponsors doc. 2018-11-15 22:55:26 -05:00
Tom Rothamel 909258735f Fix translations. 2018-11-15 22:52:27 -05:00
Tom Rothamel 77ec342d5a Fix typo in source string. 2018-11-15 22:24:29 -05:00
Tom Rothamel 27d393af8a Check in obsolete.rpy files.
This is to prevent Ren'Py from causing problems if it deletes a
.rpy file when the .rpyc file is present, where the translation
is available in multiple files.
2018-11-15 22:21:47 -05:00
Tom Rothamel 871f361e16 Revert 3f474a4262 2018-11-15 22:21:16 -05:00
Tom Rothamel 3e9b85acfe Merge pull request #1640 from lee-yunseok/master
Fixes Korean translations for the latest launcher.
2018-11-15 21:35:41 -05:00
Tom Rothamel 3f474a4262 Merge pull request #1639 from Beuc/patch-1
Explicitely close audio on quit
2018-11-15 21:34:50 -05:00
Tom Rothamel 144d1b84ce Merge pull request #1638 from zedraxlo/master
chinese update, with new font
2018-11-15 21:17:08 -05:00
Lee Yunseok 6ebe6f429a Minor updates for the Korean translation. 2018-11-16 10:58:21 +09:00
Lee Yunseok 7a378931af Fix a mistake and add comments for android build tab. 2018-11-16 10:42:19 +09:00
Lee Yunseok f9cf932b67 Fix korean translations for the latest 2018-11-16 09:52:58 +09:00
Lee Yunseok 7222495537 Remove duplicate translations 2018-11-16 08:53:46 +09:00
Lee Yunseok c96ecd4bb5 Just remove whitespace 2018-11-16 08:34:56 +09:00
Lee Yunseok 42f399986f Fix korean translation 2018-11-16 08:27:24 +09:00
Lee Yunseok 1f14415c05 Merge pull request #10 from renpy/master
Latest
2018-11-16 05:55:48 +09:00
Beuc 2973209767 Explicitely close audio on quit
With Emscripten, this tells the browser to stop calling the audio callback.
2018-11-15 15:51:21 +01:00
zedraxlo 2a40cf1617 fix typo 2018-11-15 22:00:08 +08:00
zedraxlo 28f5980cae update chinese for "The Question"
tchinese just for test font.
2018-11-15 21:56:41 +08:00
zedraxlo 5a808ecb20 update language select for chinese 2018-11-15 21:54:17 +08:00
zedraxlo a45523559b Update style.rpy 2018-11-15 21:53:11 +08:00
zedraxlo b9051524e8 Update style.rpy 2018-11-15 21:52:52 +08:00
zedraxlo 2b4d3b7c68 Delete DroidSansFallback.ttf 2018-11-15 21:51:58 +08:00
zedraxlo ef2e2cc112 New font for chinese
SourceHanSans-Light-Lite, based on SourceHanSansCN-Light, which contain General specification Chinese table (China Mainland) 1st-order table (3500 characters) and Common Chinese character standard font table (Taiwan) (aka A-order table) (4808 characters), have already tested in "The Question" and launcher.
2018-11-15 21:51:21 +08:00
zedraxlo fc60b8d568 Merge pull request #2 from zedraxlo/patch-1
Patch 1
2018-11-15 21:44:04 +08:00
zedraxlo caa675948d Delete DroidSansFallback.txt 2018-11-15 21:42:35 +08:00
zedraxlo 0e7cb38637 Update screens.rpy 2018-11-15 18:09:46 +08:00
zedraxlo c169afb6f3 Update screens.rpy 2018-11-15 18:05:07 +08:00
zedraxlo 8578df7ca4 Update gui.rpy 2018-11-15 17:52:37 +08:00
zedraxlo e6a199e60b Update screens.rpy 2018-11-15 17:16:43 +08:00
zedraxlo 8612b3bf3b Update screens.rpy 2018-11-15 17:15:45 +08:00
zedraxlo dd82a2ffbb fix typo 2018-11-15 14:01:19 +08:00
Tom Rothamel 59f905327a Merge pull request #1636 from zedraxlo/master
SChinese update.
2018-11-15 00:56:22 -05:00
zedraxlo b22855e039 Merge pull request #1 from zedraxlo/patch-2
Patch 2
2018-11-15 13:52:15 +08:00
zedraxlo 2f4999fcbc Update options.rpy 2018-11-15 13:49:12 +08:00
zedraxlo e657fbe20b Delete obsolete.rpy 2018-11-15 13:42:14 +08:00
zedraxlo 8bbf879c68 Update launcher.rpy 2018-11-15 13:25:16 +08:00
zedraxlo 3635ffdedd fix typo 2018-11-15 12:43:01 +08:00
Tom Rothamel 71bbddf06b Automatic translation fixes. 2018-11-14 23:01:23 -05:00
Tom Rothamel 22bcfd5415 Merge pull request #1623 from lee-yunseok/master
Fix Korean typos in the launcher. Add Korean translation for The Question.
2018-11-14 22:59:23 -05:00
Tom Rothamel 8d3d5cbfc0 Merge branch 'master' into master 2018-11-14 22:59:09 -05:00
Tom Rothamel 2beb1b7ace Do not pass attributes to layerdimage children.
Chances are, the children will not understand the arguments,
and hence will error out.

Fixes #1635.
2018-11-14 22:52:32 -05:00
zedraxlo 20b09ba2f5 Update error.rpy 2018-11-15 11:39:51 +08:00
zedraxlo 96e5cb7457 Update developer.rpy 2018-11-15 11:29:38 +08:00
zedraxlo d5b98efce6 Update common.rpy 2018-11-15 11:24:18 +08:00
zedraxlo a5b8e1ff02 Update common.rpy 2018-11-15 11:14:37 +08:00
Tom Rothamel 99578871c5 Fix code typo.
Fixes #1634.
2018-11-13 20:58:25 -05:00
Tom Rothamel 88e9793cce Revert "Make sure we don't distribute gl2 by mistake."
This reverts commit 5df0bb9fbd.
2018-11-13 20:55:04 -05:00
Tom Rothamel c7c127ef04 Merge branch 'master' into gl2 2018-11-13 20:54:25 -05:00
Tom Rothamel 5df0bb9fbd Make sure we don't distribute gl2 by mistake. 2018-11-13 20:48:09 -05:00
Lee Yunseok 1bb5716b63 Salt 2018-11-13 16:44:53 +09:00
Lee Yunseok a812fc4f56 Minor fixes in the Korean translation. 2018-11-13 16:35:38 +09:00
Lee Yunseok edbccb3783 Fix Korean translation for The Question 2018-11-13 16:22:08 +09:00
Tom Rothamel 181d28e0e7 gl2: Convert gldraw.pyx to uguu. 2018-11-13 00:33:24 -05:00
Tom Rothamel c649ffe23b gl2: Build uguu as part of Ren'Py. 2018-11-12 00:56:17 -05:00
Tom Rothamel 4de956940f Add uguu to Ren'Py. 2018-11-11 22:23:48 -05:00
Tom Rothamel f9e9acedd5 gl2: Start work by copying over renpy.gl. 2018-11-11 13:18:31 -05:00
Lee Yunseok 7b24be5d29 Add Korean translation for The Question. 2018-11-11 16:10:52 +09:00
Tom Rothamel 664b1ff6ec Add renpy.skip_sounds. 2018-11-11 01:09:13 -05:00
Tom Rothamel 9c08339f9a Merge pull request #1630 from Beuc/patch-5
Fixes to French translation
2018-11-10 17:53:32 -05:00
Sylvain Beucler 35416aab22 emscripten: presplash specific handling 2018-11-10 21:23:50 +01:00
Sylvain Beucler 29e8269de7 Fixes to French translation
replicated from 53261a7a52
2018-11-10 20:01:48 +01:00
Tom Rothamel e2556bf9c4 Make pop_current_screen properly update the _current_screen. 2018-11-10 10:53:53 -05:00
Tom Rothamel b159a34e44 Elide the filename when assigning names to statements. 2018-11-09 17:47:50 -05:00
Tom Rothamel 63efa20467 Update the error handling styles at init 9999.
This allows the styles to change to deal with the actual size
of the screen.
2018-11-09 01:23:58 -05:00
Tom Rothamel 17b943693c Allow error handling hyperlink functions to be pickled.
Fixes #1626.
2018-11-09 01:16:54 -05:00
Tom Rothamel 8e09177b6e Ensure the full path to a directory exists in DirectoryPackage.
Fixes #1627.
2018-11-08 22:31:47 -05:00
Tom Rothamel ddaf9f3de3 Check in keywords. 2018-11-08 02:02:15 -05:00
Tom Rothamel 8900d6f3df Update changelog. 2018-11-07 20:48:46 -05:00
Tom Rothamel 2e2f2ea460 Merge pull request #1625 from Beuc/patch-4
Fixes to French translation
2018-11-07 20:28:39 -05:00
Tom Rothamel adb928e234 Merge pull request #1624 from Beuc/patch-3
Fix missing spaces in the_question's screens.rpy
2018-11-07 20:27:56 -05:00
Beuc 53261a7a52 Fixes to French translation 2018-11-07 17:06:17 +01:00
Beuc 2e6f61e673 Fix missing spaces in the_question's screens.rpy 2018-11-07 16:04:31 +01:00
Lee Yunseok afce996d0e Fix typo. 2018-11-07 20:10:15 +09:00
Lee Yunseok 170351a81a Merge pull request #9 from renpy/master
Keep going to latest...
2018-11-07 20:09:17 +09:00
Tom Rothamel 1392cd9dad Allow FilePageNext and FilePagePrevious to choose if they go to auto and quick.
Fixes #1621.
2018-11-07 02:09:49 -05:00
Tom Rothamel c2be31d5de Merge pull request #1622 from Andykl/Transalion_Fix
Fix typos in Russian translate
2018-11-06 12:24:38 -05:00
Andy_kl e419711493 Fix typos in Russian translate 2018-11-06 17:37:43 +03:00
Tom Rothamel c734c5cda1 Merge pull request #1619 from Andykl/Launcher_Adds
Updated working of input screen for launcher
2018-11-05 22:00:28 -05:00
Tom Rothamel bde048b359 Merge pull request #1620 from Andykl/Rework_variable_viewer
Added button which hides deleted variables to the Variable Viewer.
2018-11-04 18:50:08 -05:00
Tom Rothamel 9878ccec4b Store the game version in _version and the json. 2018-11-04 17:41:10 -05:00
Andy_kl 30d8911abf Added button which hides deleted variables to the Variable Viewer. 2018-11-04 23:57:23 +03:00
Tom Rothamel d9ab291a68 Move absolute into minstore and mark as pure. 2018-11-04 12:53:39 -05:00
Tom Rothamel 1bc29461d1 Movie can now take a single movie with color and mask data side by side.
This should prevent movie sprites from going out of sync, by
taking both the color and mask data from a single file.

Fixes #1515.
2018-11-03 17:39:40 -04:00
Tom Rothamel f2e62c571c Document that screens can take positional arguments. 2018-11-03 17:39:40 -04:00
Andy_kl 0208328307 Updated russian translate 2018-11-03 21:38:27 +03:00
Andy_kl 3ee71e9b0d Added text-tag comment for translators. 2018-11-03 21:37:42 +03:00
Andy_kl d83788fa23 Added uppercase letters for translation name 2018-11-03 20:58:21 +03:00
Andy_kl 3c2cebacef Added underscore and space in the names of projects and files 2018-11-03 20:54:17 +03:00
Tom Rothamel 834b9fa1d1 Define centerd and vcentered normally.
Fixes #1347.
2018-11-03 13:17:51 -04:00
Tom Rothamel 9dd55e7b66 Merge pull request #1618 from Andykl/Fix_1161
Fix #1161
2018-11-03 13:16:57 -04:00
Tom Rothamel 857a8a65a2 Update sponsor docs. 2018-11-03 13:04:35 -04:00
Andy_kl dc58e6e8c8 Revert "Fix #1161"
This reverts commit c6dd267772.
2018-11-03 20:00:47 +03:00
Andy_kl 7f8101e2ee Revert "Fix #1045"
This reverts commit c2895f465c.
2018-11-03 19:59:07 +03:00
Andy_kl f7b389a5bc Updated working of input screen 2018-11-03 09:52:07 +03:00
Andy_kl c2895f465c Fix #1045 2018-11-03 06:43:08 +03:00
Andy_kl 075ba4bc49 Fix #1347 2018-11-03 06:41:36 +03:00
Andy_kl c6dd267772 Fix #1161 2018-11-03 04:53:58 +03:00
Tom Rothamel 06443a5f2e Fix typo. 2018-11-02 17:15:29 -04:00
Tom Rothamel ed564397d2 Merge pull request #1615 from Andykl/Fix_Issues
Fix issues with quick_menu on phones and performance encoding.
2018-11-01 22:12:47 -04:00
Andy_kl 66ef5ba2cf Fix #1360 2018-11-01 20:47:17 +03:00
Andy_kl fed3430d76 Fix #1603 2018-11-01 19:12:25 +03:00
Tom Rothamel cca4bf016c Set the compatibility channel looping properly. 2018-10-31 23:34:10 -04:00
Tom Rothamel 432ba06a48 Fix audio crash in moonlight walks. 2018-10-30 23:17:44 -04:00
Tom Rothamel 92fb4098b2 Update changelog. 2018-10-30 22:48:22 -04:00
Tom Rothamel a4340f7798 Merge pull request #1574 from Andykl/Drag_Changes
Extension of the Drag'n'Drop functional
2018-10-30 21:52:18 -04:00
Tom Rothamel 80ec5ad31e Merge pull request #1584 from Andykl/UserStatement_change
Changes in register_statement
2018-10-30 21:52:00 -04:00
Tom Rothamel df4d653b86 Merge pull request #1600 from vollschauer/master
Add delay to renpy.sound.set_volume
2018-10-30 21:50:37 -04:00
Andy_kl bcfa6d126b Doc this 2018-10-31 03:39:34 +03:00
Tom Rothamel 92bd507781 Update the credits. 2018-10-30 00:18:36 -04:00
Tom Rothamel b6966bdc21 Update changelog. 2018-10-30 00:04:27 -04:00
Tom Rothamel 6f5c8975b6 Minor cleanups for the last PR. 2018-10-29 22:38:54 -04:00
Tom Rothamel 35b60303ff Merge pull request #1610 from Andykl/UserLanguage
Added stuff for autodetect language by user's locale
2018-10-29 22:21:08 -04:00
Tom Rothamel 969e269f4d Merge pull request #1611 from KosMos-pv/master
Add missing history_allow_tags set to tutorial and The question.
2018-10-29 21:53:09 -04:00
Konstantin Mozheyko 291af49bc9 Add missing history_allow_tags set to tutorial and The question. 2018-10-29 15:00:20 +02:00
Tom Rothamel ffa33a8f29 Merge pull request #1609 from Beuc/patch-2
emscripten: detect and start configuring accordingly
2018-10-28 23:48:57 -04:00
Tom Rothamel 10e3acf760 Merge pull request #1608 from Beuc/patch-1
Rename IMG_SavePNG* to avoid conflict with PygameSDL2's
2018-10-28 23:48:36 -04:00
Andy_kl 93a9b9deee Doc last 2018-10-29 06:41:51 +03:00
Tom Rothamel 37604894e4 Lint now properly checks images for existence, even in superset cases. 2018-10-28 23:35:58 -04:00
Andy_kl 67717ef9b7 Added configuration variables to control language autodetect. 2018-10-29 06:20:03 +03:00
Andy_kl 43534a758c Added function for detect user locale 2018-10-29 06:14:06 +03:00
Sylvain Beucler bf8e70485d emscripten: detect and start configuring accordingly 2018-10-28 21:51:35 +01:00
Sylvain Beucler b3af65d7ab Rename IMG_SavePNG* to avoid conflict with PygameSDL2's during static linking 2018-10-28 21:15:39 +01:00
Tom Rothamel 6b7260fe39 Report and error out on extraneous arguments.
Because of changes that have been made over the past few years,
it was possible to write:

    show eileen happy but with random attributes appended

And Ren'Py would take it. That was never intended, and this closes
off this case.
2018-10-28 00:59:16 -04:00
Tom Rothamel 4809c16cd9 lint: Have show deal with layeredimages.
It now considers the available attributes when checking the
image.

Fixes #1604.
2018-10-27 23:13:11 -04:00
Tom Rothamel df0e0086c7 Draw underline and strikethrough when a glyph's width is zero.
Fixes #1605.
2018-10-26 22:22:41 -04:00
Tom Rothamel abd01eb734 Create phone choice images.
Fixes renpy/rapt#16.
2018-10-25 21:22:05 -04:00
Tom Rothamel 4818e43632 Allow shift keys in the emulator.
This lets one do shift+I, to inspect styles in small or touch mode.
2018-10-25 21:17:58 -04:00
Tom Rothamel a3ed117153 Lower version to 7.1.2. 2018-10-24 21:26:30 -04:00
Tom Rothamel f73acbdf9f Merge pull request #1602 from ShehriyarQureshi/master
Add checks for tags that require value
2018-10-24 19:07:33 -04:00
Lee Yunseok 4df7cafe93 Merge pull request #8 from renpy/master
Keep going to latest
2018-10-24 22:14:22 +09:00
Shehriyar Qureshi 0b0c97e2ec Add checks for tags that require value
Some tags that require value, when supplied none, raise python's
exceptions which might be hard to interpret.

Added simple checks to those tags to see if the supplied value is
empty. Raises exception that is easier to read than the ones
Python raises.
2018-10-24 09:49:51 +05:00
Tom Rothamel ffbe373dbb Display the text tag and string when parsing a text tag fails.
Fixes #1598.
2018-10-23 22:30:14 -04:00
Tom Rothamel 3f0e21b174 Merge pull request #1599 from fblampe/master
translation: Translated more strings to German, fixed ellipses.
2018-10-22 18:39:05 -04:00
Unknown d521e79b46 Add delay to renpy.sound.set_volume 2018-10-21 20:17:24 +02:00
Tom Rothamel f725485412 Indicate we require a 64-bit Java. 2018-10-21 11:04:20 -04:00
Felix Lampe e7015b9b88 translation: Translated more strings to German, fixed ellipses. 2018-10-21 14:22:59 +02:00
Tom Rothamel 4b74d34580 gui: Add gui.choice_button_text_insensitive_color 2018-10-21 01:05:26 -04:00
Tom Rothamel 9ca2db8869 Document config.menu_include_disabled. 2018-10-21 00:34:23 -04:00
Tom Rothamel 274934d356 Compat menu actions. 2018-10-20 22:58:51 -04:00
Tom Rothamel 56fe28955a Add config.menu_include_disabled.
This causes Ren'Py to include disabled menu items as part of the
a menu, rather than removing them entirely.
2018-10-19 21:49:50 -04:00
Eric Ahn bb7759c9f3 Fix print in remaining files 2018-10-19 13:45:00 -07:00
Eric Ahn 7415ca19f8 Use print function in pure python files 2018-10-19 12:56:58 -07:00
Eric Ahn d542b05287 Make exceptions both python2 and python3 compatible 2018-10-19 12:13:14 -07:00
Tom Rothamel ba06e9538b Add requirements to the documentation. 2018-10-18 21:05:31 -04:00
Tom Rothamel e117adb219 Clear kwargs and args from being set inappropriatey.
This is an attempt to fix a bug in Planet Stronghold 2 that was
caused by kwargs being set when it should not have been.
2018-10-18 00:50:33 -04:00
Tom Rothamel 27aa12a5f0 Include the current Ren'Py version in a savefile. 2018-10-17 11:14:35 -04:00
Tom Rothamel 25c39eebf9 Changelog last. 2018-10-17 02:01:56 -04:00
Tom Rothamel 4b4aa38455 Add SetLocalVariable and ToggleLocalVariable
These make it possible to set variables in the local context of a
used screen.
2018-10-16 21:47:47 -04:00
Tom Rothamel c468f8c60e ShowIf should not pass focus when it's hiding.
Fixes #1592.
2018-10-15 23:16:37 -04:00
Tom Rothamel 1d8643045a Merge pull request #1594 from Andykl/Directly_At
Added the ability to specify a transform directly in the SL
2018-10-14 08:38:14 -04:00
Tom Rothamel 51e79498f0 Merge pull request #1577 from Andykl/Displayable_Changes
Avoid skipping displayables with redefined __bool__
2018-10-13 19:37:48 -04:00
Tom Rothamel 06590beca2 Merge pull request #1593 from XelaPy/patch-1
Adds "transpose" keyword to SL2 vpgrid.
2018-10-13 09:39:46 -04:00
Andy_kl 496d5d1c14 Doc for this 2018-10-13 16:18:30 +03:00
Tom Rothamel 96a6f9556c Start the 7.1.2 changelog. 2018-10-12 23:16:44 -04:00
Andy_kl 1ae6255301 Move creating ATLTransform in SLBlock 2018-10-12 21:45:20 +03:00
Andy_kl 207c9ad79b Mark constant for atl_transform 2018-10-12 19:12:18 +03:00
Andy_kl 788ee0399a Rework it 2018-10-12 19:01:01 +03:00
Andy_kl ee1027a8da Added the ability to specify a transform directly in the SL 2018-10-12 18:09:32 +03:00
Xela b3a528ddcc Adds "transpose" keyword to SL2 vpgrid.
Fixes #1560
2018-10-12 15:31:42 +03:00
Tom Rothamel 19204d0f82 Force the size of FriBidiChr to 4 bytes on all problems.
Fixes a problem where on windows it was corrupting RTL text into
garbage.
2018-10-12 01:41:52 -04:00
Tom Rothamel 8f0c7df619 Start the 7.2 series. 2018-10-11 17:06:39 -04:00
Tom Rothamel 41e9f86d1d Update sponsors list. 2018-10-10 00:16:46 -04:00
Tom Rothamel f3bee22ae7 Changelog last. 2018-10-08 23:02:22 -04:00
Tom Rothamel 0923ca9880 SetVariable and ToggleVariable now take fields along with variables. 2018-10-08 20:05:34 -04:00
Lee Yunseok b9a0975a71 Merge pull request #7 from renpy/master
Keep going to latest
2018-10-09 06:00:42 +09:00
Tom Rothamel abef9ac3f9 Automatically determine the version number to use. 2018-10-06 12:55:20 -04:00
Tom Rothamel 966adf6821 Distribute checks that checksums.txt exists, refuses to run if so. 2018-10-06 11:49:15 -04:00
Tom Rothamel 99d8a021c6 Changelog. 2018-10-06 08:32:55 -04:00
Tom Rothamel 6f379ca291 Add the new string to Android. 2018-10-06 08:20:15 -04:00
Tom Rothamel 326f8532f6 distribute: Sign by default. 2018-10-03 22:54:40 -04:00
Tom Rothamel 63a9c3943c Fix typos in changelog. 2018-10-03 22:50:08 -04:00
Tom Rothamel 8bf108be2e Update incompatible. 2018-10-02 21:11:53 -04:00
Tom Rothamel 20fa4cb41d New icon background for the_question. 2018-10-01 22:43:33 -04:00
Tom Rothamel 16c9e776b2 Fix the sense of the version test. 2018-10-01 22:42:06 -04:00
Lee Yunseok 7dc4f335eb Merge pull request #6 from renpy/master
Keep going to latest
2018-10-01 18:15:05 +09:00
Tom Rothamel 866ee50498 Chain translates even if a module isn't loaded.
Fixes #1569.
2018-09-30 14:49:01 -04:00
Andy_kl 1789b5a2ca More correctly check of the block value 2018-09-29 20:50:32 +03:00
Andy_kl bc121ac0cc Added "possible" value for block argument 2018-09-29 20:27:50 +03:00
Andy_kl a2e8a536b4 Added init_priority for register_statement 2018-09-29 20:07:29 +03:00
Tom Rothamel 018887163f Update changelog. 2018-09-29 02:56:30 -04:00
Tom Rothamel 0ad2f6b847 Store the locations of displaybales in text.
Fixes #1582.
2018-09-28 23:23:08 -04:00
Tom Rothamel a5222719b0 window auto treats menu-with-caption differently. 2018-09-27 10:31:04 -04:00
Tom Rothamel d1f5ab37d9 Give menu-with-caption a different statement name.
This then lets us treat it differently for the purpose of window
auto.
2018-09-27 10:29:00 -04:00
Tom Rothamel 5c0ab50d22 Place displayables-in-text on every frame.
Fixes #1573.
2018-09-26 23:01:54 -04:00
Tom Rothamel f2a824e2ef Changelog android. 2018-09-26 01:36:19 -04:00
Tom Rothamel 7e30c7ee0a Restart the interaction after taking a screenshot.
Fixes #1581.
2018-09-25 02:23:34 -04:00
Tom Rothamel 31e85a14c2 Dcoument the history fix. 2018-09-24 21:27:05 -04:00
Tom Rothamel a9dfb15d14 Set motion.null properly.
Fixes #1578. This is used to transfer an animation if no frame would
otherwise have been shown - a rare case.
2018-09-23 23:45:59 -04:00
Tom Rothamel a1f0fbaa19 Give the tutorial a valid version number.
Fixes #1580. Fixes #1579.
2018-09-23 16:38:06 -04:00
Tom Rothamel 52083b2be9 Handle zero-width characters in Ren'Py for image fonts. 2018-09-22 13:33:07 -04:00
Tom Rothamel 40d481b72f Handle all of the zero-width characters in Ren'Py's freetype support. 2018-09-22 13:24:10 -04:00
Andy_kl a6a97a3f4f Avoid skipping displayables with redefined __bool__ 2018-09-22 11:36:32 +03:00
Tom Rothamel 6985e14737 Make menus respect window show/hide/auto.
This addresses #1576, by keeping the window up all the time, as
it should have been.
2018-09-22 01:28:09 -04:00
Tom Rothamel 5e567f040b Do not substitute history text.
It has already been substituted, so we don't want to do it again.

Fixes #1575. Fixes #1516.
2018-09-21 01:02:21 -04:00
Tom Rothamel 6a1873be1a Expose the substitute property for label. 2018-09-20 22:45:06 -04:00
Andy_kl 715899ade4 Added drop_allowable property for Drag class 2018-09-20 07:13:49 +03:00
Andy_kl d829d1ab2f Added min_overlap property 2018-09-20 04:51:16 +03:00
Andy_kl 2069612eff Fix typo 2018-09-20 04:11:30 +03:00
Tom Rothamel 8add50b930 Merge pull request #1568 from lee-yunseok/master
Fix a little bit in Korean comments.
2018-09-19 16:33:03 -05:00
Tom Rothamel a9c4b72bb0 Wrap error handling writes to stdout in exception handling.
At least one computer has been having problems with stdout on
windows, so we want to error handle this.
2018-09-18 20:53:52 -04:00
Tom Rothamel e52eb6fead Fix doc typo. 2018-09-18 20:44:16 -04:00
Tom Rothamel 01b37552f6 Translate the current update status. 2018-09-18 20:39:58 -04:00
Tom Rothamel ea31af9bc2 Remove russian obsolete.rpy.
It duplicates translations found in other files - something went
wrong with #1570.
2018-09-18 20:35:46 -04:00
Tom Rothamel e5a3cff41e Merge pull request #1570 from Ria-kon/master
Russian update 7.1.0
2018-09-17 16:12:27 -05:00
Ria-kon 70881c90a4 Russian update 7.0.1. 2018-09-16 23:01:01 +03:00
Tom Rothamel 607a1acc00 Add nestled-close as an option for ctc_position. 2018-09-16 12:22:14 -04:00
Tom Rothamel 53ffeed805 Allow multiple segments to be passed to CTC, internally. 2018-09-16 12:12:00 -04:00
Tom Rothamel 0ae0bf4c0d Handle the CB (contingient break) breaking class.
This is used by displayables embedded in text. The unicode standard
allows us to handle this however we want, so we break unless there
is a non-breaking-space before or after the CB. (including ZWNBSP).
2018-09-15 23:42:07 -04:00
Tom Rothamel 8f40cf2da5 Use U+FFFC to represent displayables in text.
This is the OBJECT REPLACEMENT CHARACTER, which is useful because
it creates a character of breaking class CB, which allows Ren'Py
to decide if it wants to put a break before or after the object.
2018-09-15 23:39:01 -04:00
Tom Rothamel 08dba61bd9 Add alternate click to Drag.
This seems like it would make sense for things like a Minecraft-like
crafting system.

Fixes #1567.
2018-09-14 23:17:11 -04:00
Lee Yunseok 41fce3426d Merge pull request #5 from renpy/master
Keep going to latest.
2018-09-15 08:43:53 +09:00
Lee Yunseok 057ea1ea2c Fix some comments. 2018-09-15 08:42:11 +09:00
Tom Rothamel 8baaa7654f Changelog 7.1.1. 2018-09-13 21:11:09 -04:00
Tom Rothamel 14bf26efd6 Voice fixes.
* Always compute and use the tlid.
* Handle the sustain preference before an interaction, rather
  than after it.

Fixes #1566.
2018-09-13 00:09:38 -04:00
Tom Rothamel 8ad281048b Bump version. 2018-09-12 01:21:29 -04:00
Tom Rothamel 1b169672ba Add fribidi-src to the source archive.
This should address #1562, though I'll check for the nightly to
see that the build completed.
2018-09-11 18:34:25 -04:00
Tom Rothamel 4b4c3b73a3 Do not use ruby top text when computing typewriter blits. 2018-09-10 19:40:49 -04:00
Tom Rothamel 9270013b9a Fix the combination of ART and Knuth-Plass. 2018-09-09 21:38:30 -04:00
Tom Rothamel 0f618bc54f Log the Ren'Py version in android.txt. 2018-09-08 11:45:37 -04:00
Tom Rothamel 06979f6ade sl2: Give vpgrid its transpose property. 2018-09-08 11:19:22 -04:00
Tom Rothamel b4ff687efe Fix parsing of r at the end of a line. 2018-09-07 23:37:12 -04:00
Tom Rothamel 5c5408a490 Sponsors and keywords. 2018-09-07 10:03:30 -04:00
Tom Rothamel 492cacca02 Add the activated property to Drag.
This lets a function run when the user clicks on the drag.
2018-09-07 00:53:59 -04:00
Tom Rothamel 1fabbf4976 Credits and changelog. 2018-09-06 00:22:59 -04:00
Tom Rothamel 87bf27a7bb Mark prototype/gradlew as executable. 2018-09-05 01:31:51 -04:00
Tom Rothamel 1af96ca83c After applying retain_after_load, keep the flag set.
Fixes #1527.
2018-09-05 01:08:33 -04:00
Tom Rothamel 41f1124052 Remove Context.translate_block_language.
Which was never used. Fixes #1554.
2018-09-04 20:55:35 -04:00
Lee Yunseok cd33c95cc9 Merge pull request #4 from renpy/master
Keep going with latest.
2018-09-05 03:40:19 +09:00
Tom Rothamel c5adab69df Merge pull request #1552 from lee-yunseok/master
Update Korean translations.
2018-09-03 23:26:58 -05:00
Tom Rothamel ce980ddb2c li: Ensure that an attribute is only chosen once.
A bug was causing choose_attribute to return the same attribute
more than once, which prevents the rest of Ren'Py from selecting
the image.

Fixes #1514.
2018-09-03 15:42:52 -04:00
Tom Rothamel 09b25592b6 Retain attributes on an exact match of a layeredimage.
This now checkes the image, instead of the tag, for a
_choose_attributes method. If one exists, an exact match
is ignored, and attributes are retained.

Fixes #1517.
2018-09-03 15:30:14 -04:00
Tom Rothamel d78d035402 Merge pull request #1535 from bvtsang/typofix
to used the same -> to use the same
2018-09-03 10:05:38 -05:00
Tom Rothamel 79fe07c44b Merge pull request #1558 from Andykl/FixInteract
Prevent doing unused computing
2018-09-03 10:04:12 -05:00
Andy_kl 91f69320fc Prevent doing unused computing 2018-09-03 17:58:10 +03:00
Andykl 56eeec5b94 Merge pull request #2 from renpy/master
!
2018-09-03 17:44:26 +03:00
Tom Rothamel 22a9900fad Fix raw strings.
This was broken by image attribytes, where r'' would have  the r
parsed as an image attribute.
2018-09-02 22:10:59 -04:00
Tom Rothamel 282676a653 Fix with statement.
Fixes #1543.
2018-09-02 11:25:38 -04:00
Tom Rothamel d72bf5e411 Merge pull request #1557 from Andykl/Transition-fix
Transition fix
2018-09-02 10:17:43 -05:00
Andy_kl 83ca8571f0 Fix typo 2018-09-02 18:04:15 +03:00
Andy_kl d42c73389a Fix typo 2018-09-02 17:43:48 +03:00
Andykl 8bb870a5c5 Merge pull request #1 from renpy/master
!
2018-09-02 17:39:04 +03:00
Tom Rothamel 3013bab470 Fix typo. 2018-09-02 10:35:43 -04:00
Tom Rothamel 55d3d1fe40 Update .gitignore. 2018-09-02 10:35:13 -04:00
Tom Rothamel a8f3a64d64 Add back in sphinx/source/keywords.rpy
Fixes #1551.
2018-09-02 09:24:06 -04:00
Tom Rothamel 4d320baaa2 Android proofreading. 2018-09-02 02:12:40 -04:00
Tom Rothamel 9deb0a3759 Changelog say-with-attributes. 2018-09-02 00:47:26 -04:00
Tom Rothamel 8fff014801 Compat last. 2018-09-01 23:15:29 -04:00
Tom Rothamel 98b85feab3 Use the side image to resolve say attributes of an image that isn't shown. 2018-09-01 23:14:08 -04:00
Tom Rothamel fec0c06576 get_side_image uses the tag default layer. 2018-09-01 22:33:53 -04:00
Tom Rothamel 97d5a4a753 Compat last change. 2018-08-31 21:18:54 -04:00
Tom Rothamel 8679023013 Add the ability to reject relative paths. 2018-08-31 21:17:29 -04:00
Lee Yunseok 1e0293e6a0 Merge pull request #3 from renpy/master
Merge from original branch
2018-09-01 08:02:41 +09:00
Lee Yunseok fe32eb3149 Fix missing strings. 2018-08-30 01:52:58 +09:00
Tom Rothamel 01f536fc69 Change to a release build by default. 2018-08-28 22:24:38 -04:00
Lee Yunseok ce9e41f1bf Fix typo. 2018-08-28 00:17:10 +09:00
Tom Rothamel 6390253c45 Add config.context_callback.
A way to call a python function on each new context.
2018-08-26 23:11:07 -04:00
Lee Yunseok 328d176365 Fix typo. 2018-08-27 09:40:55 +09:00
Lee Yunseok fccb1e76cb Fix missing strings. 2018-08-27 09:37:14 +09:00
Lee Yunseok e98e37aec0 Salt. 2018-08-27 09:28:30 +09:00
Lee Yunseok 7001b18315 Update Korean strings. 2018-08-27 09:25:03 +09:00
Lee Yunseok 5a01bccdad Update Korean strings. 2018-08-27 08:50:55 +09:00
Lee Yunseok f42aa482f3 Update Korean strings. 2018-08-27 08:16:59 +09:00
Lee Yunseok 48708bf46b Fix typo. 2018-08-27 07:21:34 +09:00
Lee Yunseok 348b9c33be Fix typo. 2018-08-27 07:21:10 +09:00
Lee Yunseok 298595ac8e Fix typo. 2018-08-27 07:20:47 +09:00
Lee Yunseok 7dbe133be8 Fix typo. 2018-08-27 07:20:26 +09:00
Lee Yunseok 4912e024c6 Fix typo. 2018-08-27 07:19:56 +09:00
Lee Yunseok 2505e07ab0 Fix typo. 2018-08-27 07:19:25 +09:00
Lee Yunseok 982acd905a Fix typo. 2018-08-27 07:19:04 +09:00
Lee Yunseok 3baa13fc88 Fix typo. 2018-08-27 07:18:33 +09:00
Lee Yunseok 871abf17d7 Fix typo. 2018-08-27 07:18:01 +09:00
Lee Yunseok 72fb8332e5 Fix typo. 2018-08-27 07:17:39 +09:00
Lee Yunseok 30662cda80 Fix typo. 2018-08-27 07:17:12 +09:00
Lee Yunseok e5f5ce0352 Fix typo. 2018-08-27 07:16:47 +09:00
Lee Yunseok a1325997af Fix typo. 2018-08-27 07:16:06 +09:00
Lee Yunseok 96a92e7894 Fix typo. 2018-08-27 07:15:39 +09:00
Lee Yunseok 532fae9cf1 Fix typo. 2018-08-27 07:15:10 +09:00
Lee Yunseok b65965869c Fix typo. 2018-08-27 07:13:55 +09:00
Lee Yunseok 0498b77b72 Fix typo. 2018-08-27 07:13:17 +09:00
Lee Yunseok 93c4da4259 Update Korean Strings. 2018-08-27 05:54:07 +09:00
Lee Yunseok 037ce66e1c Merge pull request #2 from renpy/master
latest
2018-08-27 05:41:54 +09:00
Tom Rothamel 5dd5b3b4eb Update translations. 2018-08-26 00:44:53 -04:00
Tom Rothamel 67872949f1 Run python code before initiing system styles.
This lets the python code change the system styles.
2018-08-26 00:44:24 -04:00
Tom Rothamel 54999085ad Report translation errors. 2018-08-26 00:38:11 -04:00
Tom Rothamel bc2065041f Fix Korean translation. 2018-08-26 00:35:28 -04:00
Tom Rothamel 8321cd4a7f Update the android translations. 2018-08-25 20:33:19 -04:00
Lee Yunseok 32f295d33a Merge pull request #1 from renpy/master
d
2018-08-26 08:24:04 +09:00
Tom Rothamel e5f6d76726 Merge pull request #1550 from sbrn10/master
Update Korean translations for Ren'py 7
2018-08-23 01:01:30 -05:00
philat 619485cd5f Merge pull request #1 from sbrn10/sbrn10-patch-1
Update Korean translations for Ren'py 7
2018-08-23 14:49:33 +09:00
philat 27a20774ae Update screens.rpy 2018-08-23 14:44:47 +09:00
philat bd77fad010 Update common.rpy 2018-08-23 14:44:20 +09:00
philat a3e09f09a0 Update Korean translations for Ren'py 7 2018-08-23 14:40:01 +09:00
philat b3e1022338 Update screens.rpy 2018-08-23 14:31:55 +09:00
Tom Rothamel 93c87209f7 Fix Motion.
It has broken at some point in the past, probably back when None
stopped being a value for xanchor and yanchor.
2018-08-21 21:47:34 -04:00
Tom Rothamel 4f01e83fb9 Merge branch 'master' of github.com:renpy/renpy 2018-08-20 10:33:23 -04:00
Tom Rothamel bbe63fb04f Allow TextButton to take text_ prefixed properties. 2018-08-20 09:29:33 -05:00
Tom Rothamel 10a6c01e6a Merge pull request #1540 from jsfehler/expose_buttons
Expose ImageButton and TextButton displayables
2018-08-19 08:36:14 -05:00
Tom Rothamel 42619ec25c Merge pull request #1542 from lee-yunseok/patch-1
Update translating_renpy.rst
2018-08-19 08:35:31 -05:00
Tom Rothamel 0d780e24d7 Mark gradlew as executable. 2018-08-17 09:49:23 -05:00
Tom Rothamel 154cde899e Use ** when adding in kwargs. 2018-08-16 21:21:29 -05:00
Tom Rothamel 9272f013b6 Include arguments when generating say translations.
Fixes #1541.
2018-08-16 20:26:37 -05:00
Tom Rothamel ffbe29151b Update the changelog. 2018-08-15 23:38:40 -04:00
Tom Rothamel 88abd4a30a Don't tag python-for-android.
Which we stopped using awhile back.
2018-08-15 21:51:50 -04:00
Tom Rothamel 689e680258 Change the name of 7.1 2018-08-15 21:39:55 -04:00
Tom Rothamel 95b5cf4da8 Check in the changelog. 2018-08-15 21:10:56 -04:00
Tom Rothamel e61c798146 Changelog android. 2018-08-15 01:34:18 -04:00
Tom Rothamel a2b8da104b Update android documentation. 2018-08-14 22:35:48 -04:00
Lee Yunseok cf35745027 Update translating_renpy.rst
Just Ren'PY to Ren'Py.
2018-08-14 15:31:17 +09:00
Tom Rothamel d45ae50925 Allow spacing to be adjusted in a single direction.
Fixes #1525.
2018-08-14 00:32:43 -04:00
Joshua Fehler 9f750d8706 Expose ImageButton and TextButton displayables 2018-08-13 19:34:55 -04:00
Tom Rothamel a674fa2a10 Bump the version and update keywords. 2018-08-13 00:08:48 -04:00
Tom Rothamel 76f9ed2ac0 Update pig latin translation. 2018-08-12 19:48:38 -04:00
Tom Rothamel 7e27fbf968 Support for translating Android. 2018-08-12 19:45:45 -04:00
Tom Rothamel 712e0f00f9 Clarify JDK 8 is needed. 2018-08-12 08:53:05 -04:00
Tom Rothamel fcebe42b31 Use ca certificates when downloading android. 2018-08-12 08:52:00 -04:00
Tom Rothamel d845c7b357 Avoid saving on suspend while at the main menu. 2018-08-09 23:04:46 -04:00
Bryan Tsang 262694e6aa to used the same -> to use the same 2018-08-08 22:59:15 -07:00
Tom Rothamel d829d14393 Allow substitution in LayeredImageProxy. 2018-08-09 01:40:53 -04:00
Tom Rothamel 6fe1487ac2 Fix documentation for speaking attribute. 2018-08-08 23:01:22 -04:00
Tom Rothamel 9e3149b984 id: Make scanning for blacklisted image tags an O(n) operation.
Since O(n**2) is bad.
2018-08-07 09:48:06 -04:00
Tom Rothamel 08ac3e484b Document box_wrap_spacing. 2018-08-07 08:33:24 -04:00
Tom Rothamel 3c2054e3b2 Merge pull request #1522 from Andykl/Box-wrap_spacing
Added new box_wrap_spacing style property
2018-08-06 07:31:01 -04:00
Tom Rothamel d438b764d6 Change the android params. 2018-08-04 22:54:35 -04:00
Tom Rothamel d2550f31d7 Pass parameters through an ImageReference. 2018-08-03 09:53:18 -04:00
Tom Rothamel 226fb7ded0 Update RAPT. 2018-08-03 01:17:22 -04:00
Tom Rothamel e820270f5d Remove the target version question. 2018-08-01 22:16:31 -04:00
Tom Rothamel 8f5046a5a9 New regexps for android-specific icons. 2018-07-26 23:48:24 -04:00
Tom Rothamel eba56d7fb2 Change the android icons for The Question. 2018-07-26 23:44:06 -04:00
Tom Rothamel 39e76d7249 Merge pull request #1520 from AXYPB/master
Typo corrections in documentation
2018-07-25 16:33:05 -04:00
Craig Donson 6ba17709fd Typo correction in Displayables documentation 2018-07-25 10:27:33 -04:00
Craig Donson 223e7b6cf0 Typo corrections in docstrings 2018-07-25 10:27:09 -04:00
Tom Rothamel a687b678f5 Merge pull request #1524 from Saltome/patch-1
game_menu() no longer ignores screen parameter.
2018-07-24 17:07:19 -04:00
Saltome 659cd40846 game_menu() no longer ignores screen parameter.
The screen argument needs to be passed as a keyword.
2018-07-24 22:44:32 +02:00
Craig Donson dbd7cc05dd Escape @ symbols in font indexes 2018-07-23 23:39:50 -04:00
Craig Donson ce14610ec2 Typo corrections 2018-07-23 18:39:29 -04:00
Tom Rothamel bae6f8551d Document the language_tailor function. 2018-07-21 22:06:43 -04:00
Andy_kl d368c98744 Added new box_wrap_spacing style property 2018-07-21 07:28:59 +05:00
Craig Donson 27dab57802 Typo corrections 2018-07-19 11:40:52 -04:00
Tom Rothamel e73c81ccc6 Merge pull request #1513 from AXYPB/master
Typo corrections in documentation
2018-07-15 15:02:24 -04:00
Craig Donson 90d1edb3c9 Typo corrections 2018-07-15 11:56:03 -04:00
Craig Donson 8f5231ff81 Correct capitalization of "Python" 2018-07-15 11:55:55 -04:00
Tom Rothamel abe4b61f79 Merge pull request #1512 from Moshibit/master
Fix typo
2018-07-14 09:24:20 -04:00
Tom Rothamel 6e649e3548 Merge pull request #1511 from AXYPB/master
Typo corrections in documentation
2018-07-13 17:08:58 -04:00
Craig Donson 7e6972f5c4 Correct capitalization of "Python" 2018-07-13 07:14:00 -04:00
Craig Donson fdc0cef96b Typo corrections in documentation 2018-07-13 04:14:56 -04:00
Moshibit 9213472a67 Merge pull request #1 from Moshibit/Moshibit-patch-1
Update gui.rpy
2018-07-12 23:41:00 -05:00
Moshibit f122fa4b8b Update gui.rpy
fix typo
2018-07-12 23:36:34 -05:00
Tom Rothamel db2e8038e2 Update the piglatin translation. 2018-07-12 22:17:28 -04:00
Tom Rothamel 8aa234c790 Update the credits and changelog. 2018-07-12 21:40:24 -04:00
Tom Rothamel 36f4bb2048 Update sponsor list. 2018-07-11 23:37:07 -04:00
Tom Rothamel c9ffdaf1f2 Remove fribidi charset conversions.
As we don't use them.
2018-07-11 00:49:32 -04:00
Tom Rothamel fe9af97b34 Convert directly from Python's unicode to Fribidi's unicode.
This prevents a security flaw in the fribidi charset conversion
code.

Fixes #1509.
2018-07-11 00:17:48 -04:00
Tom Rothamel 4a9efc0cab Include a private copy of fribidi.
The non-glib version has been unmainted outside of Ren'Py,
but it's a much better version for us to use. So instead,
cut it down and include it.
2018-07-10 19:17:20 -04:00
Tom Rothamel 4185bbd0b3 Use an unverified SSL context to pull the list of channels.
This fixes the updater, when run under renpython.
2018-07-09 22:04:25 -04:00
Tom Rothamel 05f91a70d2 Update comment. 2018-07-08 22:56:44 -04:00
Tom Rothamel 58e8413e79 Merge pull request #1506 from AXYPB/master
Typo corrections in documentation
2018-07-08 22:16:05 -04:00
Craig Donson 498dfd5cbb Typo corrections in documentation 2018-07-08 20:23:09 -04:00
Tom Rothamel 99cd6a3b91 Merge pull request #1504 from Beuc/patch-2
render: typos in docstring
2018-07-08 18:12:17 -04:00
Sylvain Beucler a74578635b render: typos in docstring 2018-07-08 12:37:51 +02:00
Tom Rothamel b36dd59710 Include dependencies for requests.
(But not requests itself.)
2018-07-06 18:07:37 -04:00
Tom Rothamel 2f7c9328ad Changelog. 2018-07-06 02:38:28 -04:00
Tom Rothamel 8ed3b8e009 Do not post a TIMEVENT when a TIMEEVENT is ignored.
Ignoring a TIMEEVENT is reasonable to do - it makes sense for a
modal to be able to cancel out things like a pause. Such ignoring
should not post a second TIMEEVENT, as that trigers constant
processing of TIMEEEVENTS.

Fixes #1502.
2018-07-05 19:45:45 -04:00
Tom Rothamel 7a613e6b7b Use os.pathsep to split RENPY_DEPS_INSTALL.
(If :: is not given.)

Fixes #1499.
2018-07-04 12:44:58 -04:00
Tom Rothamel 9f16b1457e Fix the optimization of visit_all. 2018-07-03 22:23:27 -04:00
Tom Rothamel ba5951eddd Revert "Only visit children once in visit_all."
This reverts commit 160b2eb1f6.
2018-07-03 22:15:17 -04:00
Tom Rothamel 32d0153dc7 Fix problems with renpy.log during startup.
Fixes #1491 in a slightly different way.
2018-07-03 20:15:06 -04:00
Tom Rothamel 160b2eb1f6 Only visit children once in visit_all. 2018-07-03 10:53:36 -04:00
Tom Rothamel e7e2f4a505 Call per_interact on syle children of Window, Bar, and Frame.
This lets DynamicDisplayables be used here (and in ImageButtons, etc),
while ensuring the DD updates properly.
2018-07-03 10:53:36 -04:00
Tom Rothamel 9ce4be18be Merge pull request #1492 from AXYPB/master
Documentation corrections
2018-07-02 17:11:30 -04:00
Craig Donson 4bcec62df0 Typo correction 2018-07-02 16:57:36 -04:00
Tom Rothamel 68f1f37064 Fix typo. 2018-07-01 23:11:31 -04:00
Tom Rothamel ce8a034d6d Expose renpy.translate_string.
This allows Ren'Py to translate a string into a foreign language,
without changing the language as whole.
2018-07-01 21:00:36 -04:00
Tom Rothamel 6d38f66fc7 Apply pngcrush to launcher images. 2018-07-01 09:51:09 -04:00
Tom Rothamel 1dede9828f Fix documentation. 2018-07-01 09:51:09 -04:00
Tom Rothamel 59f276dac0 Update credits. 2018-07-01 09:51:09 -04:00
Tom Rothamel e877db4b48 Merge pull request #1494 from MuhdNurHidayat/malay-in-latin-script-translation
Add Malay translation (part 1)
2018-07-01 09:37:01 -04:00
Muhammad Nur Hidayat Yasuyoshi (MNH48.com) 3455b1a78b Add Malay 2018-07-01 01:10:56 +08:00
Muhammad Nur Hidayat Yasuyoshi (MNH48.com) 4bc6cb9a84 Add Malay translation for Launcher (#2)
* Created directory for Malay language
* Translated all files to Malay language
2018-06-30 20:48:54 +08:00
Muhammad Nur Hidayat Yasuyoshi (MNH48.com) 60c6555d7e Add Malay translation for The Question (#1)
* Created directory for Malay
* Translated the files to Malay
* Added Malay into the screen menu
2018-06-30 20:33:33 +08:00
Craig Donson bca06bf124 Typo corrections 2018-06-29 22:40:56 -04:00
Tom Rothamel 21fabf6c06 Check in sponsors doc. 2018-06-29 19:32:40 -04:00
Tom Rothamel 849b9e677b Update changelog. 2018-06-28 23:33:50 -04:00
Tom Rothamel e6d67a3291 Check in an updates project.json. 2018-06-28 19:12:50 -04:00
Tom Rothamel 51a33656e1 Say supplys actual attributes to renpy.show.
This fixes an issue where foo -bar computes foo, then shows foo,
retaining bar.

Fixes #1488.
2018-06-27 23:01:47 -04:00
Tom Rothamel af8839f0f9 File actions can take slot=True to ignore the page. 2018-06-26 22:33:29 -04:00
Tom Rothamel ae62a57a33 Ensure a button can't be selected & inactive.
It's just inactive. Fixes #1490.
2018-06-25 19:08:28 -04:00
Tom Rothamel a8664fe73e Document _quit_slot. 2018-06-24 11:56:05 -04:00
Tom Rothamel a540d81abb Remove unused config variable. 2018-06-24 11:52:15 -04:00
Tom Rothamel 861ef10609 Reset the screenshot at the end of a full interaction, not a restart. 2018-06-24 11:41:57 -04:00
Tom Rothamel e281635b47 Call the quit label from renpy.quit.
This ensures it's called in all/more cases.
2018-06-24 11:36:03 -04:00
Tom Rothamel 275906938f Move the quit slot code to renpy.quit.
This means that all places where Ren'Py quits should try to run
this quit code.
2018-06-24 10:59:42 -04:00
Tom Rothamel 2a027f6adb Lose the screenshot after an interaction in a non-rollback context.
This prevents a problem where if take_screenshot isn't explicitly
called before a save, the wrong screenshot can be saved.
2018-06-23 23:59:50 -04:00
Tom Rothamel 1d2ad923a7 Report when screens use each other in an infinite loop. 2018-06-23 11:53:42 -04:00
Tom Rothamel 659d294492 Do not allow a screen to be nested in a screen. 2018-06-23 11:47:03 -04:00
Tom Rothamel 41573ccb0a Add config.quit_slot. 2018-06-22 23:20:00 -04:00
Tom Rothamel cf851317c1 Merge pull request #1479 from AXYPB/master
Documentation corrections
2018-06-22 21:41:52 -04:00
Tom Rothamel 0eb69138dc update: Remove the channel preference. 2018-06-22 01:40:37 -04:00
Tom Rothamel af4e629403 updater: New update flow.
This removes the confirm step from the launcher update, since the
channel is being explicity selected and the version presented.
2018-06-21 23:57:15 -04:00
Tom Rothamel faf3e49d49 update: New channel selection screen. 2018-06-21 23:34:06 -04:00
Craig Donson d7de9b6c04 Correct misplaced line in translation page 2018-06-21 11:13:17 -04:00
Tom Rothamel 92e41d68b6 update: Pick the correct location for nightly DLC. 2018-06-20 18:08:48 -04:00
Tom Rothamel c7f3c14763 updater: Add a fuction to let the launcher get the updater state. 2018-06-20 17:54:47 -04:00
Tom Rothamel 9a327a4f3d Include the base name in current.json, so we can tell if we're
on a nightly build.
2018-06-20 02:56:53 -04:00
Tom Rothamel cf0cb707d6 Take the update simulation from the environment. 2018-06-20 01:17:46 -04:00
Tom Rothamel eef75d5c68 Add image attribute viewer. 2018-06-19 01:39:00 -04:00
Tom Rothamel c13ae210c9 Update changelog. 2018-06-18 20:38:31 -04:00
Tom Rothamel 6c3689aec7 Changelog. 2018-06-18 01:42:24 -04:00
Tom Rothamel 8ee5a066f2 Gallery make_buttons inherit from None.
Fixes #1485.
2018-06-17 14:36:22 -04:00
Tom Rothamel f40e61dfdf py3: Add from __future__ import print_function to all files. 2018-06-16 13:20:44 -04:00
Tom Rothamel d1cdeddfaa py3: Script to add from __future__ print_function to everything. 2018-06-16 13:20:08 -04:00
Tom Rothamel f9d1d90535 Always call slow_done from the event method.
This prevents slow done from being called in a context where the
events are disabled, like the old side of a transition.

Fixes #1484.
2018-06-15 23:03:45 -04:00
Tom Rothamel 3fcf9b2074 Consider displayable prefix when finding auto images.
Fixes #1478.
2018-06-15 00:55:29 -04:00
Tom Rothamel 2e0669f12c Use eval_who in scry.
Fixes #1477.
2018-06-14 22:28:15 -04:00
Tom Rothamel c6a3a4a8f2 Take the state from a child transform.
Just like we take the execution state.

Fixes #1483.
2018-06-14 00:18:01 -04:00
Tom Rothamel 0d329d2b36 Ignore files not representable in the system encoding.
Fixes #1481.
2018-06-13 02:51:11 -04:00
Tom Rothamel ebb8c29b86 monologue: Document NVL-mode. 2018-06-12 09:25:19 -04:00
Tom Rothamel 6f5eb07ca7 Use correct lexer for layered image errors.
Fixes #1482.
2018-06-12 01:47:36 -04:00
Tom Rothamel 9f2bf54ed0 Catch and ignore errors during scry.
This prevents problems with something like:

   define a = Character(None, kind=nvl)

   a "1"
   b "2"

Where b is not defined, and hence the scry would fail.
2018-06-11 23:15:30 -04:00
Tom Rothamel 6d63384046 Doc the basic monologue support. 2018-06-10 22:24:17 -04:00
Tom Rothamel 531cfb1520 Add rpy monologue. 2018-06-10 22:23:52 -04:00
Tom Rothamel 4c9f55bef5 Merge pull request #1480 from maxlefou/master
More french typo/grammar fixes
2018-06-09 11:11:51 -04:00
Max le Fou 93c30aeeb5 More french translation fixes
This time for the launcher
2018-06-09 14:58:08 +02:00
Max le Fou ac7007d93f More french translation fixes
Adds french translation fixes for "the question"
2018-06-09 14:29:29 +02:00
Tom Rothamel a1607a96fa tqs: Make delimiter configurable. 2018-06-09 02:34:33 -04:00
Tom Rothamel e89d31dac9 tqs: Initial implementation. 2018-06-08 23:03:12 -04:00
Tom Rothamel d65e95d2f5 tqs: Change return type. 2018-06-08 02:33:59 -04:00
Tom Rothamel d366fee5cf Add support for parsing triple-quoted strings. 2018-06-07 10:15:55 -04:00
Tom Rothamel 0f7c241ae4 Merge pull request #1475 from maxlefou/master
Grammar and typo corrections (french)
2018-06-07 00:34:20 -04:00
Tom Rothamel 13016045ac tl: Fix a missing alternate translation. 2018-06-06 22:29:37 -04:00
Tom Rothamel 023ed52b99 Prevent synchro start from blocking.
* When a channel is muted.
* When sound is queued then immediately dequeued.

This fixes a bug that occured when a muted sound channel didn't
start, and hence stopped a movie from synchro-starting at the
same time.
2018-06-06 03:22:42 -04:00
Tom Rothamel a5d027e4dd Explicitly set the paused flag. 2018-06-05 23:25:27 -04:00
Craig Donson 64a8f04002 Grammar corrections 2018-06-05 10:43:49 -04:00
Craig Donson c4d81a327b Unify "init time" 2018-06-05 10:43:39 -04:00
Tom Rothamel 5dc58ccd5a Add :func:renpy.transform_text, a function to transform text without
touching text tags or interpolation.
2018-06-04 22:24:06 -04:00
Tom Rothamel 329b7a7d2c Add chinese translated docs. 2018-06-04 01:47:55 -04:00
Tom Rothamel 44fc36ed44 Add access to image attributes. 2018-06-04 01:13:08 -04:00
Tom Rothamel 3527945daf Merge branch 'master' of github.com:renpy/renpy 2018-06-02 09:12:18 -04:00
Tom Rothamel 5dfa2aedc8 Merge pull request #1476 from AXYPB/master
Corrections to layered image documentation
2018-06-02 09:12:09 -04:00
Tom Rothamel 84606a2d70 Bump version. 2018-06-02 09:10:33 -04:00
Craig Donson da3a60ce3d Add backticks 2018-06-02 08:58:53 -04:00
Craig Donson 41ef5aac5b Correct corrupted dash characters 2018-06-02 08:56:54 -04:00
Max le Fou 044bdb321c Grammar and typo corrections (french)
Grammar and typo corrections in the french version of the tutorial
2018-06-02 14:42:58 +02:00
Tom Rothamel d5b8b8ca53 Merge pull request #1472 from AXYPB/master
Minor documentation corrections
2018-05-31 02:24:06 -04:00
Craig Donson 820647de5f Correction to Unicode capitalization 2018-05-31 00:30:26 -04:00
Craig Donson 0eaaff325c Corrections to Python capitalization and backticks 2018-05-30 10:17:51 -04:00
Craig Donson 6b0b672546 Change to UTF-8 encoding 2018-05-30 10:14:26 -04:00
Tom Rothamel 787a053e8d doc: Fix ypos. 2018-05-30 09:23:45 -04:00
Craig Donson 392a3fead1 Minor documentation corrections 2018-05-30 03:19:14 -04:00
Tom Rothamel f1fbbc740d doc: Fix encoding issues and other errors. 2018-05-29 11:41:17 -04:00
Tom Rothamel db9ffb706e Update docs. 2018-05-29 09:40:53 -04:00
Tom Rothamel ccfdb991ac Translate file page name input values.
Fixes #1470.
2018-05-28 12:41:29 -04:00
Tom Rothamel 891eea363c doc: True -> true. 2018-05-28 12:18:24 -04:00
Tom Rothamel c472ecdddc Merge pull request #1469 from AXYPB/master
Additional documentation corrections
2018-05-28 12:17:30 -04:00
Tom Rothamel 8da9a6c415 Update translations. 2018-05-27 16:58:48 -04:00
Tom Rothamel a4058b8c5f Update the piglatin translation. 2018-05-27 16:34:45 -04:00
Craig Donson 099c372b28 Additional documentation corrections 2018-05-27 16:30:25 -04:00
Tom Rothamel ec16d57d3f Merge pull request #1468 from Ria-kon/master
Small fix for Tutorial
2018-05-26 23:35:39 -04:00
Ria-kon 327653a924 Fix for French Tutorial 2018-05-27 01:20:11 +03:00
Ria-kon 9d189e3386 Updating Russian Tutorial... 2018-05-27 01:18:51 +03:00
Ria-kon a345a887a0 Slightleft ruines every translation =) 2018-05-27 01:09:05 +03:00
Tom Rothamel 190aae94e4 Use _choose_attributes to select an image.
This is done a bit earlier now, when trying to find the attributes,
rather than checking that the attributes are okay. This makes it
possible to have multiple layeredimages in which one is the prefix
of the next, so long as no attributes overlap.
2018-05-26 10:51:54 -04:00
Tom Rothamel d154a4041b Do not choose an image with unknown attributes.
This makes it possible to have both a layered image and special
poses, and the layered image will only be chosen if a special
pose isn't used.
2018-05-26 10:46:47 -04:00
Tom Rothamel 0e4830a49a from __future__ import print_function 2018-05-26 03:14:39 -04:00
Tom Rothamel 9ae1aed773 Check file alt translations. 2018-05-25 00:05:03 -04:00
Tom Rothamel f043a4270c Merge pull request #1466 from jsfehler/invocation_typo
Fix typo in comments
2018-05-24 18:55:01 -04:00
Joshua Fehler 1aa0b2d0c3 Fix typo in comments 2018-05-23 20:20:50 -04:00
Tom Rothamel e68e1b17e3 Set text as focusable iff it contains an {a tag. 2018-05-23 02:25:56 -04:00
Tom Rothamel 775c1510a3 Allow focus to return to a hyperlink when an interaction starts. 2018-05-22 22:44:36 -04:00
Tom Rothamel 801b3ae6cf Do not greedy rollback past the rollback limit.
This prevents greedy rollback from violaing the limit imposed
by renpy.block_rollback.
2018-05-21 09:55:51 -04:00
Tom Rothamel b4a7e0d599 Purge the rollback log when in the main menu.
Purging it blocks all rollback, including to the current
statement. This ensures the player can never roll back before
label start.
2018-05-21 09:55:51 -04:00
Tom Rothamel 1cfed994f7 Merge pull request #1463 from AXYPB/master
Additional documentation corrections
2018-05-21 02:38:46 -04:00
Tom Rothamel 80bb98dd41 Remove special handling of labels during rollback.
This has the potential of causing things to rollback too far, or
to the wrong place.
2018-05-20 16:20:15 -04:00
Tom Rothamel 20b8fbaf14 Greedy rollback goes to a hard checkpoint.
This makes more of the game available to the id.
2018-05-20 02:34:43 -04:00
Tom Rothamel 1eb9780871 Update return nodes on script edit.
This helps with the return from _after_load when the director
first loads.
2018-05-20 02:25:31 -04:00
Tom Rothamel c79ef6f498 When a node is added, roll back to before it.
Fixes an issue editing the first appearance of Sylvie in The Question.
2018-05-19 22:31:38 -04:00
Craig P. Donson cdc3738eca Update README.rst
Correct capitalizations
2018-05-19 13:24:08 -04:00
Tom Rothamel 8cfbe4af8f Make contexts printable. 2018-05-18 22:55:43 -04:00
Tom Rothamel 9dc8d62d4a Fix docs.
Fix #1462.
2018-05-18 08:19:56 -04:00
Craig P. Donson d547c37f44 Update developer_tools.rst 2018-05-17 23:34:50 -04:00
Craig P. Donson e7aebe5e70 Update developer_tools.rst
Typo corrections
2018-05-17 23:34:23 -04:00
Craig P. Donson cd325c80d5 Update store_variables.rst
Typo corrections;
Correct capitalization of True and False
2018-05-17 23:31:10 -04:00
Craig P. Donson f8b7c730df Update config.rst
Correct capitalization of True, False, and Python
2018-05-17 23:27:41 -04:00
Craig P. Donson 2d5b3265da Update screen_optimization.rst
Formatting corrections
2018-05-17 23:23:57 -04:00
Craig P. Donson 97760df1a4 Update screen_special.rst
Typo corrections;
Correct capitalization of True and False
2018-05-17 23:21:35 -04:00
Craig P. Donson b8c72be304 Update screens.rst
Formatting corrections;
Correct capitalization of True, False, and Python;
Remove potentially erroneous statement in Default documentation
2018-05-17 23:17:52 -04:00
Craig P. Donson 7b9f1955f1 Update style_properties.rst
Correct capitalization;
Add hyperlinks to style properties
2018-05-17 23:00:53 -04:00
Craig P. Donson e1c512a982 Update style.rst
Formatting corrections
2018-05-17 22:42:26 -04:00
Craig P. Donson c05ca5de4a Update atl.rst
Formatting corrections
2018-05-17 22:36:03 -04:00
Craig P. Donson 4c14b6c939 Update transition.py
Correct capitalization of True and False
2018-05-17 22:28:15 -04:00
Craig P. Donson 1526535ec7 Update text.rst
Change hyperlink for FontGroup
2018-05-17 22:15:03 -04:00
Craig P. Donson f49faf1796 Update side_image.rst
Formatting corrections
2018-05-17 22:11:12 -04:00
Craig P. Donson 2125065ec7 Update input.rst
Typo corrections
2018-05-17 22:02:34 -04:00
Craig P. Donson e7ee26c1a3 Update character.py
Formatting corrections
2018-05-17 21:56:44 -04:00
Craig P. Donson f36712bfc3 Update voice.rst
Formatting corrections
2018-05-17 21:47:50 -04:00
Craig P. Donson bebbde3529 Update dialogue.rst 2018-05-17 19:53:48 -04:00
Craig P. Donson 8771c7e877 Update dialogue.rst
Add indentation to window statements
2018-05-17 19:51:36 -04:00
Craig P. Donson d99f80125d Update dialogue.rst 2018-05-17 19:47:47 -04:00
Craig P. Donson d553f7aade Update exports.py
Correct capitalization of True and False
2018-05-17 19:41:26 -04:00
Craig P. Donson ee813131c0 Update exports.py
Formatting correction; needs verification
2018-05-17 19:32:46 -04:00
Craig P. Donson 802b8ac98a Update displaying_images.rst
Formatting corrections
2018-05-17 19:26:43 -04:00
Craig P. Donson ade8bfed6f Update menus.rst
Formatting corrections
2018-05-17 19:19:57 -04:00
Craig P. Donson 935a086a46 Update python.rst
Formatting corrections
2018-05-17 19:18:05 -04:00
Craig P. Donson 429c8ed498 Update conditional.rst
Formatting corrections
2018-05-17 19:12:15 -04:00
Craig P. Donson a0654e7259 Update audio.rst
Typo corrections
2018-05-17 18:36:47 -04:00
Craig P. Donson 76b866f03a Update movie.rst 2018-05-17 18:26:06 -04:00
Craig P. Donson a919a65a5a Update movie.rst
Typo corrections
2018-05-17 18:25:48 -04:00
Craig P. Donson 4db0ca5ff8 Update voice.rst
Formatting corrections
2018-05-17 18:17:59 -04:00
Craig P. Donson 16b2d4a611 Update 00voice.rpy
Formatting corrections
2018-05-17 18:16:13 -04:00
Craig P. Donson 7f5c514ebc Update script.py
Correct capitalization of True and False
2018-05-17 18:05:17 -04:00
Craig P. Donson 9c5103d28d Update label.rst
Typo corrections;
Change reference to PEP 3102 to a hyperlink
2018-05-17 18:00:46 -04:00
Craig P. Donson 47f811540e Update statement_equivalents.rst
Typo corrections; 
Change names of Python functions to hyperlinks
2018-05-17 17:08:30 -04:00
Craig P. Donson 580e81cc45 Update text.rst
Typo and formatting corrections
2018-05-17 17:07:12 -04:00
Craig P. Donson ed6e3e867d Update chromeos.rst
Typo corrections
2018-05-17 16:51:03 -04:00
Craig P. Donson f77370a3c9 Update iap.rst
Typo corrections; consistency with Amazon Appstore branding
2018-05-17 16:48:35 -04:00
Craig P. Donson 9600ed33da Update custom_text_tags.rst
Formatting corrections
2018-05-17 16:46:18 -04:00
Craig P. Donson 147273950e Update self_voicing.rst
Typo corrections
2018-05-17 16:45:40 -04:00
Craig P. Donson 7ed037e13e Update changelog.rst
Typo corrections to 7.0 changelog
2018-05-17 16:36:46 -04:00
Craig P. Donson 80bdfd0f4d Update problems.rst
Correct formatting
2018-05-17 16:28:13 -04:00
Craig P. Donson 893a4c7837 Update raspi.rst
Typo corrections
2018-05-17 16:24:27 -04:00
Craig P. Donson 2588029806 Update font.py
Correct docstring for renpy.register_sfont()
2018-05-17 16:16:38 -04:00
Tom Rothamel a84109b296 Merge pull request #1461 from AXYPB/master
Documentation corrections
2018-05-17 10:51:38 -04:00
Craig P. Donson 508ef78a7b Update layeredimage.rst
Typo corrections
2018-05-17 10:30:57 -04:00
Craig P. Donson b94ece9bba Update config.rst
Correct reference to `preference-variables`
2018-05-17 09:46:04 -04:00
Tom Rothamel 52702a6f77 Force a checkpoint when blocking rollback.
So the rollback has a place to stop at.
2018-05-16 22:24:05 -04:00
Tom Rothamel fc0b94ab37 Merge pull request #1456 from xavi-mat/master
Update Spanish translation
2018-05-16 01:01:51 -04:00
Tom Rothamel 7a10005dc6 id: Make it easier to debug the statement. 2018-05-14 17:58:58 -04:00
xavi-mat cef338c242 Update developer.rpy
Small changes: capitalized titles
2018-05-14 03:17:48 +02:00
xavi-mat 0cbb2e99c4 Update common.rpy
It seems this line is throwing an error:
```# 00action_file.rpy:417
old "Load slot %s: [text]"
new "Cargar partida %s: [text]"```
2018-05-14 03:07:08 +02:00
xavi-mat 8274fdd270 Update Spanish translation
Spanish translation should be complete now.
2018-05-14 02:21:18 +02:00
Tom Rothamel 90e6228360 Fix the list of attributes from a visual novel. 2018-05-13 19:59:13 -04:00
Tom Rothamel f2d6ae644a Showing a movie sprite that is already showing will now re-play the movie. 2018-05-13 18:44:05 -04:00
Tom Rothamel 6a84eac9d2 Fix documentation. 2018-05-13 14:14:38 -04:00
Tom Rothamel 890d92274c Fix bad link. 2018-05-13 01:20:07 -04:00
Tom Rothamel 4fe5d526d0 Document LayeredImageProxy. 2018-05-13 01:17:24 -04:00
Tom Rothamel 559c657349 Add LayeredImageProxy.
This is a way of proxying attributes between layered image,
perhaps with a transformation as well.
2018-05-12 23:45:58 -04:00
Tom Rothamel 8da0b588f8 Add a function that returns the raw registered image. 2018-05-12 21:07:58 -04:00
Tom Rothamel 99093c5333 Add functions to better access the showing and hidden tags. 2018-05-11 22:57:36 -04:00
Tom Rothamel 05c23a4aff Update sponsors. 2018-05-11 18:33:18 -04:00
Tom Rothamel 7731085dc6 Do not framedrop when playing a movie sprite with a mask.
Fixes #1455. I believe the issue there was that if a frame was
dropped from the main or mask movies, the two would get out of
sync. This prevents that entirely.
2018-05-10 22:08:09 -04:00
Tom Rothamel bc82a255c6 Add the ability to playback video without framedropping.
This is to support the fix for #1445.
2018-05-10 22:04:27 -04:00
Tom Rothamel 32237ba6de Update Java URL.
And in general, make it clear what people need to succeed.
2018-05-10 02:22:30 -04:00
Tom Rothamel f1cfb3c69a Update credits. 2018-05-09 20:45:25 -04:00
Tom Rothamel 78d3088360 Force black in a few places, rather than forcing transparency. 2018-05-08 22:49:26 -04:00
Tom Rothamel 8c0caa9f17 Update translations. 2018-05-07 23:25:13 -04:00
Tom Rothamel 6608288eef Update changelog. 2018-05-07 23:25:13 -04:00
Tom Rothamel 087f4aaa5b Merge pull request #1449 from Alexandre-T/master
French translation of "The Question" game.
2018-05-07 19:45:54 -04:00
Tom Rothamel 6e8835a5b7 Store the scope in the new cache when using a screen. 2018-05-06 19:21:35 -04:00
Tom Rothamel 213359d212 More compatible version of the gl test.
This should work better now that Dissolve has alpha=True.
2018-05-05 13:34:12 -04:00
Tom Rothamel 6ac58511a0 Enable the zipping of files > 2GB. 2018-05-05 10:28:10 -04:00
Tom Rothamel dec7b962ea Document Displayable Prefix 2018-05-05 08:47:07 -04:00
Tom Rothamel 2cf0f96b0d Add config.displayable_prefix
This lets creators make their own displayables available in the
same way that image files, images, and colors are.
2018-05-04 22:26:15 -04:00
Alexandre-T 4cc5e00745 Merge remote-tracking branch 'upstream/master' 2018-05-04 19:48:03 +02:00
Tom Rothamel e649c46e60 Remove debug print. 2018-05-03 18:47:27 -04:00
Tom Rothamel 173fcc32e1 Treat RUBY_ALT like RUBY_TOP everywhere.
Fixes an issue where RUBY_ALT would leave blank space,
and perhaps other possible problems.
2018-05-03 18:46:26 -04:00
Tom Rothamel f5f9809b95 Remove usage of style. 2018-05-03 01:21:49 -04:00
Tom Rothamel 0f0da971ec Document alternate ruby text. 2018-05-03 01:10:21 -04:00
Tom Rothamel d53f49ad5d Add support for alternative ruby text.
This allows two blocks of ruby text to appear at once, such as
one above the text and one below it. The use case this is intended
to support is a project that would like both a translation and
pronunciation guide at the same time.
2018-05-02 22:17:37 -04:00
Tom Rothamel 57dfe4fbf3 doc: Changelog and doc sl2 index. 2018-05-02 10:27:44 -04:00
Alexandre-T 32d4e453e7 French translation of "The Question" game. 2018-05-02 09:23:06 +02:00
Tom Rothamel c3f5cf4245 Merge pull request #1448 from Alexandre-T/master
French translation of the tutorial.
2018-05-01 17:15:26 -04:00
Alexandre-T 1d040a5ad3 French translation of the tutorial. 2018-05-01 18:11:56 +02:00
Tom Rothamel b118b6b629 Allow the Rollback action to be given arguments. 2018-04-30 21:14:50 -04:00
Tom Rothamel 3af70a67f6 Add the scroll action. 2018-04-29 17:43:59 -04:00
Tom Rothamel 9415995ba0 li: Document poses and some FAQs. 2018-04-29 12:25:53 -04:00
Tom Rothamel 4602d1cb8d li: Document variant and prefix. 2018-04-29 11:45:38 -04:00
Tom Rothamel cb774b625c li: Add the prefix and variant properties to group.
The prefix property gives a prefix that applies to attributes
defined within the group.

The variant property adds an additional section to file and
image names defined within the group.
2018-04-29 01:48:06 -04:00
Tom Rothamel 49c995d1c4 li: Improve parsing.
Using l.keyword() and l.name() rather than l.match, so we don't
match prefixes improperly.
2018-04-29 00:39:51 -04:00
Tom Rothamel f0396aeeb4 li: Add attribute_function.
This is a function that can add (or perhaps, remove) attributes
after the attributes have been selected or before attributes have
been shown.
2018-04-29 00:31:00 -04:00
Tom Rothamel c35086e4a5 Fix doc typo. 2018-04-28 12:50:19 -04:00
Tom Rothamel 9d52a1e626 li: Document if_also->if_all, if_any. 2018-04-28 12:31:20 -04:00
Tom Rothamel 4074f45c6d li: An attribute can take the null keyword.
For now, this just adds a Null displayable, but that might change
in the future. Semantically, it lets the creator declare an
attribute that exists for the use of if_all, if_any, if_not,
and the upcoming attribute modifier function.
2018-04-28 12:06:57 -04:00
Tom Rothamel 409bab07bb Merge pull request #1443 from Alexandre-T/master
LiveComposite replaced by Composite in tutorial and its translations.
2018-04-28 09:01:30 -04:00
Alexandre-T 8771045493 LiveComposite replaced by Composite in tutorial and its translations. 2018-04-28 08:33:17 +02:00
Tom Rothamel db679ca2b3 Dissolve now defaults to alpha=True
The idea is to let the same dissolves be used throughout Ren'Py,
rather than having alpha/noalpha versions of each.
2018-04-28 01:36:06 -04:00
Tom Rothamel 5328f81e20 Document dict transitions. 2018-04-28 01:11:06 -04:00
Tom Rothamel 1c42c156d5 Allow renpy.transition to take a dict transition. 2018-04-28 01:10:38 -04:00
Tom Rothamel 766b158684 Allow the with statement/clause to take a dict of layer transitions.
With this change, writing:

    define dis = { "master" : Dissolve(0.5, alpha=True) }

will apply the dissolve operation to the master layer, as if

    $ renpy.transition(Dissolve(0.5, alpha=True), layer="master")

had been called instead.
2018-04-27 22:45:46 -04:00
Tom Rothamel 5d74e7396b Explicitly select the new console-syle rollback labels.
Since they're not useful outside of the console, and trying
to auto-select breaks after_load.

Fixes #1439.
2018-04-27 01:30:15 -04:00
Tom Rothamel ba832e5e3d Fix signature of render.
Per #1442. Keeping open, so after 7.0 I can evaluate and see if
the opaque optimization even matters anymore, or should be
removed.
2018-04-26 08:55:46 -04:00
Tom Rothamel bbf9f36c47 Implement eval for non-default stores.
Fixes #1441.
2018-04-26 01:43:34 -04:00
Tom Rothamel 83620695dc li: Evaluate expressions using store.eval.
This ensures that expressions are transformed and evaluated in
the right scope.

Fixes #1438, points 2 and 3.
2018-04-25 22:32:52 -04:00
Tom Rothamel 3861f19fa1 Rewrite checking and ordering image attributes.
The main reason for this is so that the _list_attributes and
_choose_attributes functions are used with a multi-part image
name.

Now that it's possible to list attributes from multiple places,
we have to combine them. A topological sort on the order of
attributes is used for this.
2018-04-25 01:06:48 -04:00
Tom Rothamel 21f3e5635c li: Fixed how auto works with an layerd image with a multi-part name. 2018-04-25 01:06:02 -04:00
Tom Rothamel 87f2ed02d4 Change the type of renpy.image.image_attributes.
This doesn't affect Ren'Py, but will make it possible to pull attributes
from a displayable.
2018-04-24 22:45:10 -04:00
Tom Rothamel b393f1fd98 Remove debug print. 2018-04-24 09:02:51 -04:00
Tom Rothamel 748ada5378 li: Move displayable wrapping to a method. 2018-04-23 23:52:53 -04:00
Tom Rothamel 437b742163 li: Some changes.
* if_also becomes if_all.
* if_any has been added.
* if_any, if_all, and if_not have been added to conditions.
* The image takes style properties, not transition properties.

And the code has been cleaned up to remove some duplication.
2018-04-23 23:12:05 -04:00
Tom Rothamel 2232421843 Fix problem with a missing oldtutorial. 2018-04-22 22:10:44 -04:00
Tom Rothamel 8912a0a73a Minor fixes to translations. 2018-04-22 16:21:34 -04:00
Tom Rothamel 73bd716090 Update piglatin. 2018-04-22 16:21:01 -04:00
Tom Rothamel cc272addc2 Merge pull request #1434 from nyaatrap/master
Update japanese
2018-04-22 16:20:28 -04:00
Tom Rothamel c2f626d3c7 Update changelog. 2018-04-22 16:19:50 -04:00
Tom Rothamel fbe4a4e7e2 ShowTransient couldn't take positional arguments.
As it would try to pass transition twice.
2018-04-22 16:16:09 -04:00
nyaatraps b28eebff4f Update japanese 2018-04-22 16:06:43 +09:00
Tom Rothamel 3368cfe3ab Document incompatible changes, add fix to changelog. 2018-04-21 23:26:48 -04:00
Joshua Fehler f82c2e9f28 Replace 'open()' with 'with open()' 2018-02-25 13:41:50 -05:00
864 changed files with 198145 additions and 36745 deletions
+29 -1
View File
@@ -1,3 +1,15 @@
# macOS-related files
.DS_Store
.AppleDouble
.LSOverride
# Windows-related files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
[Dd]esktop.ini
*.rpyc
*.rpyb
*.rpymc
@@ -31,8 +43,12 @@ styles.txt
/*testing*
/screenshot*
/renpy.exe
/renpy-32.exe
/renpy.sh
/lib
/lib.old
/lib2
/lib3
/doc
/.pydevproject
/.pydevproject.bak
@@ -79,7 +95,19 @@ renpy/vc_version.py
doc-web
sphinx/source/inc
sphinx/source/keywords.py
sphinx/source/thequestion.rst
tutorial/game/tutorial_director.rpy
launcher/theme
module/emscripten-static/
web/
cubism
glexperiment
live2d
rapt2
rapt3
renios2
renios3
notarized
CubismSdkForNative-4-*.zip
+20 -12
View File
@@ -11,14 +11,14 @@ on feature branches.
Getting Started
===============
Ren'Py depends on a number of python modules written in Cython and C. For
changes to Ren'Py that only involve python modules, you can use the modules
Ren'Py depends on a number of Python modules written in Cython and C. For
changes to Ren'Py that only involve Python modules, you can use the modules
found in the latest nightly build. Otherwise, you'll have to compile the
modules yourself.
The development scripts assume a POSIX-like platform. The scripts should run
on Linux or Mac OS X, and can be made to run on Windows using an environment
like Msys.
on Linux or macOS, and can be made to run on Windows using an environment
like MSYS.
Nightly Build
-------------
@@ -52,7 +52,7 @@ the command::
apt-get install virtualenvwrapper python-dev libavcodec-dev libavformat-dev \
libavresample-dev libswresample-dev libswscale-dev libfreetype6-dev libglew1.6-dev \
libfribidi-dev libsdl2-dev libsdl2-image-dev libsdl2-gfx-dev \
libsdl2-mixer-dev libsdl2-ttf-dev libjpeg-turbo8-dev
libsdl2-mixer-dev libsdl2-ttf-dev libjpeg-dev
We strongly suggest installing the Ren'Py modules into a Python
virtualenv. To create a new virtualenv, open a new terminal and run::
@@ -63,9 +63,9 @@ To return to this virtualenv later, run::
workon renpy
After activating the virtualenv, install cython::
After activating the virtualenv, install cython, future, and six::
pip install -U cython
pip install -U cython future six
Then, install pygame_sdl2 by running the following commands::
@@ -76,10 +76,11 @@ Then, install pygame_sdl2 by running the following commands::
python setup.py install_headers
popd
Next, set RENPY_DEPS_INSTALL To a \::-separated list of paths containing the
dependencies, and RENPY_CYTHON to the name of the cython command::
Next, set RENPY_DEPS_INSTALL To a \:-separated (\;-separated on Windows)
list of paths containing the dependencies, and RENPY_CYTHON to the name
of the cython command::
export RENPY_DEPS_INSTALL="/usr::/usr/lib/x86_64-linux-gnu/"
export RENPY_DEPS_INSTALL="/usr:/usr/lib/$(uname -m)-linux-gnu/"
export RENPY_CYTHON=cython
Finally, use setup.py in the Ren'Py ``module`` directory to compile and
@@ -103,7 +104,7 @@ Building
Building the documentation requires Ren'Py to work. You'll either need to
link in a nightly build, or compile the modules as described above. You'll
also need the `Sphinx <http://sphinx-doc.org/>`_ documentation generator.
also need the `Sphinx <https://www.sphinx-doc.org>`_ documentation generator.
If you have pip working, install Sphinx using::
pip install -U sphinx
@@ -123,7 +124,7 @@ not edit the files in sphinx/source/inc directly, as they will be overwritten.
Docstrings may include tags on the first few lines:
\:doc: `section` `kind`
Indicates that this functions should be documented. `section` gives
Indicates that this function should be documented. `section` gives
the name of the include file the function will be documented in, while
`kind` indicates the kind of object to be documented (one of ``function``,
``method`` or ``class``. If omitted, `kind` will be auto-detected.
@@ -163,3 +164,10 @@ Contributing
For bug fixes, documentation improvements, and simple changes, just
make a pull request. For more complex changes, it might make sense
to file an issue first so we can discuss the design.
License
=======
For the complete licensing terms, please read:
https://www.renpy.org/doc/html/license.html
+24
View File
@@ -19,3 +19,27 @@ Translation to the Russian language. Most of translation provided by Project
Gardares, especially Ria-kon.
* Project Gardares <guardares@gmail.com>
Malay
---------
Translation to the Malay language. This will be translated to both writing
systems used in Malay, namely the Latin-based Rumi script system and the
Arabic-based Jawi script system, to provide compatibility in some areas where
there is still exist Malay people who still cannot read their language in the
newer Rumi script system, or refused to use it. The translation is being made
as general and native as possible to cover the entire region that uses Malay
language, this means native words take precedence over loanwords if and only if
both native and loanwords exist and both are suitable in the context of use.
* Muhammad Nur Hidayat (MNH48) <translation@mnh48.moe>
Turkish
---------
Translation to the Turkish language. Some terms and abbreviations (especially
those related to coding) are deliberately left untranslated (or the original words
are provided in brackets) to avoid confusion, relying on their common use in
Turkish language and among Turkish developers.
* Arda Güler (WKFO) <ardaguler09@gmail.com>
+3 -7
View File
@@ -6,15 +6,13 @@ import os
import subprocess
import sys
from renpy import version_tuple # @UnresolvedImport
from renpy import version_tuple # @UnresolvedImport
SOURCE = [
"/home/tom/ab/renpy",
"/home/tom/ab/android/",
"/home/tom/ab/android/python-for-android",
"/home/tom/ab/ripe/renios",
"/home/tom/ab/renpy-deps",
"/home/tom/ab/renpy-build",
"/home/tom/ab/pygame_sdl2",
"/home/tom/ab/renpy-build/renpyweb",
]
version = ".".join(str(i) for i in version_tuple)
@@ -95,7 +93,6 @@ if tag:
subprocess.check_call([ "git", "tag", "-a", tag, "-m", "Tagging Ren'Py + " + version + " release." ])
os.chdir("/home/tom/ab/renpy/dl")
for i in links:
@@ -106,7 +103,6 @@ for i in links:
os.chdir("/home/tom/ab/website")
subprocess.check_call("./upload.sh")
os.chdir("/home/tom/ab/renpy/sphinx")
if args.release:
subprocess.check_call("./upload.sh")
+1
View File
@@ -12,4 +12,5 @@ if [ "$1" != "" ]; then
ln -s "$1/lib" "$ROOT/lib"
ln -s "$1/renpy.app" "$ROOT"
ln -s "$1/renpy.exe" "$ROOT"
ln -s "$1/renpy.sh" "$ROOT"
fi
+53 -26
View File
@@ -9,6 +9,13 @@ import compileall
import shutil
import subprocess
import argparse
import time
try:
# reload is built-in in Python 2, in importlib in Python 3
reload
except NameError:
from importlib import reload
if not sys.flags.optimize:
raise Exception("Optimization disabled.")
@@ -22,37 +29,37 @@ def copy_tutorial_file(src, dest):
"# end-tutorial-only" comments are omitted from the copy.
"""
sf = open(src, "rb")
df = open(dest, "wb")
# True if we want to copy the line.
copy = True
for l in sf:
if "# tutorial-only" in l:
copy = False
elif "# end-tutorial-only" in l:
copy = True
else:
if copy:
df.write(l)
sf.close()
df.close()
with open(src, "rb") as sf, open(dest, "wb") as df:
for l in sf:
if "# tutorial-only" in l:
copy = False
elif "# end-tutorial-only" in l:
copy = True
else:
if copy:
df.write(l)
def main():
start = time.time()
if not sys.flags.optimize:
raise Exception("Not running with python optimization.")
ap = argparse.ArgumentParser()
ap.add_argument("version")
ap.add_argument("version", nargs="?")
ap.add_argument("--fast", action="store_true")
ap.add_argument("--pygame", action="store", default=None)
ap.add_argument("--no-rapt", action="store_true")
ap.add_argument("--variant", action="store")
ap.add_argument("--sign", action="store_true")
ap.add_argument("--sign", action="store_true", default=True)
ap.add_argument("--nosign", action="store_false", dest="sign")
ap.add_argument("--notarized", action="store_true", dest="notarized")
ap.add_argument("--vc-version-only", action="store_true")
args = ap.parse_args()
@@ -66,7 +73,10 @@ def main():
# file has changed, bump it by 1.
import renpy
match_version = ".".join(str(i) for i in renpy.version_tuple[:2]) # @UndefinedVariable
if args.version is None:
args.version = ".".join(str(i) for i in renpy.version_tuple[:-1]) # @UndefinedVariable
match_version = ".".join(str(i) for i in renpy.version_tuple[:2]) # @UndefinedVariable
s = subprocess.check_output([ "git", "describe", "--tags", "--dirty", "--match", "start-" + match_version ])
parts = s.strip().split("-")
@@ -80,17 +90,26 @@ def main():
vc_version += 1
with open("renpy/vc_version.py", "w") as f:
f.write("vc_version = {}".format(vc_version))
import socket
official = socket.gethostname() == "eileen"
nightly = args.version and "nightly" in args.version
f.write("vc_version = {}\n".format(vc_version))
f.write("official = {}\n".format(official))
f.write("nightly = {}\n".format(nightly))
if args.vc_version_only:
return
try:
reload(sys.modules['renpy.vc_version']) # @UndefinedVariable
reload(sys.modules['renpy.vc_version']) # @UndefinedVariable
except:
import renpy.vc_version # @UnusedImport
import renpy.vc_version # @UnusedImport
reload(sys.modules['renpy'])
# Check that the versions match.
full_version = renpy.version_only # @UndefinedVariable
full_version = renpy.version_only # @UndefinedVariable
if "-" not in args.version \
and not full_version.startswith(args.version):
raise Exception("The command-line and Ren'Py versions do not match.")
@@ -103,6 +122,9 @@ def main():
if args.variant:
destination += "-" + args.variant
if os.path.exists(os.path.join(destination, "checksums.txt")):
raise Exception("The checksums.txt file exists.")
print("Version {} ({})".format(args.version, full_version))
# Perhaps autobuild.
@@ -126,8 +148,8 @@ def main():
sys.path.insert(0, os.path.join(ROOT, "rapt", "buildlib"))
import rapt.interface # @UnresolvedImport
import rapt.build # @UnresolvedImport
import rapt.interface # @UnresolvedImport
import rapt.build # @UnresolvedImport
interface = rapt.interface.Interface()
rapt.build.distclean(interface)
@@ -164,6 +186,12 @@ def main():
destination,
]
if args.notarized:
cmd.extend([
"--macapp",
"notarized/out",
])
print()
subprocess.check_call(cmd)
@@ -210,7 +238,7 @@ def main():
sys.stdout.write("Creating -sdk.7z")
p = subprocess.Popen([ "7z", "a", sdk +".7z", sdk], stdout=subprocess.PIPE)
p = subprocess.Popen([ "7z", "a", sdk + ".7z", sdk], stdout=subprocess.PIPE)
for i, _l in enumerate(p.stdout):
if i % 10 != 0:
continue
@@ -239,8 +267,7 @@ def main():
print()
if not (args.fast or args.sign):
print("For a final-ish release, remember to use --sign so we're signed on the mac.")
print("Distribute took {:.0f} seconds.".format(time.time() - start))
if __name__ == "__main__":
+5 -3
View File
@@ -122,7 +122,7 @@ define gui.namebox_height = None
define gui.namebox_borders = Borders(5, 5, 5, 5)
## If True, the background of the namebox will be tiled, if False, the background
## if the namebox will be scaled.
## of the namebox will be scaled.
define gui.namebox_tile = False
@@ -212,6 +212,7 @@ define gui.choice_button_text_size = gui.text_size
define gui.choice_button_text_xalign = 0.5
define gui.choice_button_text_idle_color = "#cccccc"
define gui.choice_button_text_hover_color = "#ffffff"
define gui.choice_button_text_insensitive_color = "#444444"
## File Slot Buttons ###########################################################
@@ -434,13 +435,14 @@ init python:
## Adjust the location of the textbox.
gui.textbox_height = gui.scale(240)
gui.name_xpos = gui.scale(80)
gui.text_xpos = gui.scale(90)
gui.text_width = gui.scale(1100)
gui.dialogue_xpos = gui.scale(90)
gui.dialogue_width = gui.scale(1100)
## Change the size and spacing of various things.
gui.slider_size = gui.scale(36)
gui.choice_button_width = gui.scale(1240)
gui.choice_button_text_size = gui.scale(30)
gui.navigation_spacing = gui.scale(20)
gui.pref_button_spacing = gui.scale(10)
+3 -9
View File
@@ -44,9 +44,9 @@ define build.name = "gui"
## Sounds and music ############################################################
## These three variables control which mixers are shown to the player
## by default. Setting one of these to False will hide the appropriate
## mixer.
## These three variables control, among other things, which mixers are
## shown to the player by default. Setting one of these to False will
## hide the appropriate mixer.
define config.has_sound = True
define config.has_music = True
@@ -199,12 +199,6 @@ init python:
build.documentation('*.html')
build.documentation('*.txt')
## Set this to a string containing your Apple Developer ID Application
## to enable codesigning on the Mac. Be sure to change it to your own
## Apple-issued ID.
# define build.mac_identity = "Developer ID Application: Guy Shy (XHTE5H7Z42)"
## 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
+30 -29
View File
@@ -323,12 +323,14 @@ screen navigation():
textbutton _("About") action ShowMenu("about")
if renpy.variant("pc"):
if renpy.variant("pc") or (renpy.variant("web") and not renpy.variant("mobile")):
## Help isn't necessary or relevant to mobile devices.
textbutton _("Help") action ShowMenu("help")
## The quit button is banned on iOS and unnecessary on Android.
if renpy.variant("pc"):
## The quit button is banned on iOS and unnecessary on Android and Web.
textbutton _("Quit") action Quit(confirm=not main_menu)
@@ -354,13 +356,11 @@ screen main_menu():
## This ensures that any other menu screen is replaced.
tag menu
style_prefix "main_menu"
add gui.main_menu_background
## This empty frame darkens the main menu.
frame:
pass
style "main_menu_frame"
## The use statement includes another screen inside this one. The actual
## contents of the main menu are in the navigation screen.
@@ -369,6 +369,8 @@ screen main_menu():
if gui.show_name:
vbox:
style "main_menu_vbox"
text "[config.name!t]":
style "main_menu_title"
@@ -564,10 +566,6 @@ screen about():
text _("Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]")
## This is redefined in options.rpy to add text to the about screen.
define gui.about = ""
style about_label is gui_label
style about_label_text is gui_label_text
style about_text is gui_text
@@ -725,7 +723,7 @@ screen preferences():
hbox:
box_wrap True
if renpy.variant("pc"):
if renpy.variant("pc") or renpy.variant("web"):
vbox:
style_prefix "radio"
@@ -843,7 +841,7 @@ style radio_vbox:
style radio_button:
properties gui.button_properties("radio_button")
foreground "gui/button/check_[prefix_]foreground.png"
foreground "gui/button/radio_[prefix_]foreground.png"
style radio_button_text:
properties gui.button_text_properties("radio_button")
@@ -904,13 +902,15 @@ screen history():
label h.who:
style "history_name"
substitute False
## Take the color of the who text from the Character, if set.
if "color" in h.who_args:
text_color h.who_args["color"]
$ what = renpy.filter_text_tags(h.what, allow=gui.history_allow_tags)
text what
text what:
substitute False
if not _history_list:
label _("The dialogue history is empty.")
@@ -919,7 +919,7 @@ screen history():
## This determines what tags are allowed to be displayed on the history
## screen.
define gui.history_allow_tags = set()
define gui.history_allow_tags = { "alt", "noalt" }
style history_window is empty
@@ -1044,6 +1044,10 @@ screen keyboard_help():
label "V"
text _("Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}.")
hbox:
label "Shift+A"
text _("Opens the accessibility menu.")
screen mouse_help():
@@ -1419,16 +1423,18 @@ screen quick_menu():
zorder 100
hbox:
style_prefix "quick"
if quick_menu:
xalign 0.5
yalign 1.0
hbox:
style_prefix "quick"
textbutton _("Back") action Rollback()
textbutton _("Skip") action Skip() alternate Skip(fast=True, confirm=True)
textbutton _("Auto") action Preference("auto-forward", "toggle")
textbutton _("Menu") action ShowMenu()
xalign 0.5
yalign 1.0
textbutton _("Back") action Rollback()
textbutton _("Skip") action Skip() alternate Skip(fast=True, confirm=True)
textbutton _("Auto") action Preference("auto-forward", "toggle")
textbutton _("Menu") action ShowMenu()
style window:
@@ -1437,7 +1443,7 @@ style window:
style radio_button:
variant "small"
foreground "gui/phone/button/check_[prefix_]foreground.png"
foreground "gui/phone/button/radio_[prefix_]foreground.png"
style check_button:
variant "small"
@@ -1503,15 +1509,10 @@ style vslider:
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:
style slider_vbox:
variant "small"
xsize None
style slider_pref_slider:
style slider_slider:
variant "small"
xsize gui.scale(600)
+2 -2
View File
@@ -996,14 +996,14 @@ def GetArgv(optionlist=None, commandlist=None, addoldfile=1, addnewfile=1, addfo
if item[0] == '"':
while item[-1] != '"':
if not tmplist:
raise RuntimeError, "Unterminated quoted argument"
raise RuntimeError("Unterminated quoted argument")
item = item + ' ' + tmplist[0]
del tmplist[0]
item = item[1:-1]
if item[0] == "'":
while item[-1] != "'":
if not tmplist:
raise RuntimeError, "Unterminated quoted argument"
raise RuntimeError("Unterminated quoted argument")
item = item + ' ' + tmplist[0]
del tmplist[0]
item = item[1:-1]
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+25 -16
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -23,24 +23,34 @@ label add_file:
python hide:
import os
import codecs
filename = ""
while True:
filename = interface.input(
_("FILENAME"),
_("Enter the name of the script file to create."),
allow=interface.FILENAME_LETTERS,
cancel=Jump("navigation"),
default=filename,
)
filename = filename.strip()
if not filename:
interface.error(_("The file name may not be empty."), label=None)
continue
filename = interface.input(_("FILENAME"), _("Enter the name of the script file to create."), filename="withslash", cancel=Jump("navigation"))
if "." in filename and not filename.endswith(".rpy"):
interface.error(_("The filename must have the .rpy extension."), label=None)
continue
elif "." not in filename:
filename += ".rpy"
if "." in filename and not filename.endswith(".rpy"):
interface.error(_("The filename must have the .rpy extension."), label="navigation")
elif "." not in filename:
filename += ".rpy"
path = os.path.join(project.current.gamedir, filename)
dir = os.path.dirname(path)
path = os.path.join(project.current.gamedir, filename)
dir = os.path.dirname(path)
if os.path.exists(path):
interface.error(_("The file already exists."), label=None)
continue
if os.path.exists(path):
interface.error(_("The file already exists."), label="navigation")
contents = u"\uFEFF"
contents += _("# Ren'Py automatically loads all script files ending with .rpy. To use this\n# file, define a label and jump to it from another file.\n")
contents += "\n"
break
try:
os.makedirs(dir)
@@ -54,4 +64,3 @@ label add_file:
f.write(contents.encode("utf-8"))
jump navigation_refresh
+157 -91
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -19,19 +19,25 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
default persistent.android_bundle = False
init python:
ANDROID_NO_RAPT = 0
ANDROID_NO_JDK = 1
ANDROID_NO_SDK = 2
ANDROID_NO_KEY = 3
ANDROID_NO_CONFIG = 4
ANDROID_OK = 5
ANDROID_NO_BUNDLE_KEY = 4
ANDROID_NO_CONFIG = 5
ANDROID_NO_BUNDLE = 6
ANDROID_OK = 7
NO_RAPT_TEXT = _("To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher.")
NO_JDK_TEXT = _("A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher.")
NO_JDK_TEXT = _("A 64-bit/x64 Java 8 Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}download and install the JDK{/a}, then restart the Ren'Py launcher.")
NO_SDK_TEXT = _("RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this.")
NO_KEY_TEXT = _("RAPT has been installed, but a key hasn't been configured. Please create a new key, or restore android.keystore.")
NO_BUNDLE_KEY_TEXT = _("RAPT has been installed, but a bundle key hasn't been configured. Please create a new key, or restore bundle.keystore.")
NO_CONFIG_TEXT = _("The current project has not been configured. Use \"Configure\" to configure it before building.")
NO_BUNDLE_TEXT = _("Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores).")
OK_TEXT = _("Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device.")
PHONE_TEXT = _("Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button.")
@@ -45,9 +51,14 @@ init python:
BUILD_AND_INSTALL_TEXT = _("Builds the Android package, and installs it on an Android device connected to your computer.")
BUILD_INSTALL_AND_LAUNCH_TEXT = _("Builds the Android package, installs it on an Android device connected to your computer, then launches the app on your device.")
CONNECT_TEXT = _("Connects to an Android device running ADB in TCP/IP mode.")
DISCONNECT_TEXT = _("Disconnects from an Android device running ADB in TCP/IP mode.")
LOGCAT_TEXT = _("Retrieves the log from the Android device and writes it to a file.")
LIST_DEVICES_TEXT = _("Lists the connected devices.")
PAIR_TEXT = _("Pairs with a device over Wi-Fi, on Android 11+.")
CONNECT_TEXT = _("Connects to a device over Wi-Fi, on Android 11+.")
DISCONNECT_TEXT = _("Disconnects a device connected over Wi-Fi.")
PLAY_BUNDLE_TEXT = _("Builds an Android App Bundle (ABB), intended to be uploaded to Google Play. This can include up to 2GB of data.")
UNIVERSAL_APK_TEXT = _("Builds a Universal APK package, intended for sideloading and stores other than Google Play. This can include up to 2GB of data.")
import subprocess
@@ -83,6 +94,8 @@ init python:
import rapt.interface
rapt.plat.renpy = True
rapt.plat.translate = __
else:
rapt = None
@@ -95,14 +108,17 @@ init python:
return ANDROID_NO_RAPT
if renpy.windows and not "JAVA_HOME" in os.environ:
return ANDROID_NO_JDK
if not os.path.exists(rapt.plat.path("android-sdk/platforms/" + rapt.plat.target)):
if not os.path.exists(rapt.plat.adb):
return ANDROID_NO_SDK
if not os.path.exists(rapt.plat.path("android.keystore")):
return ANDROID_NO_KEY
if not os.path.exists(rapt.plat.path("local.properties")):
if not os.path.exists(rapt.plat.path("project/local.properties")):
return ANDROID_NO_KEY
if not os.path.exists(rapt.plat.path("project/bundle.properties")):
return ANDROID_NO_BUNDLE_KEY
if not os.path.exists(os.path.join(project.current.path, ".android.json")):
return ANDROID_NO_CONFIG
if persistent.android_bundle is None:
return ANDROID_NO_BUNDLE
return ANDROID_OK
@@ -119,8 +135,12 @@ init python:
return NO_SDK_TEXT
if state == ANDROID_NO_KEY:
return NO_KEY_TEXT
if state == ANDROID_NO_BUNDLE_KEY:
return NO_BUNDLE_KEY_TEXT
if state == ANDROID_NO_CONFIG:
return NO_CONFIG_TEXT
if state == ANDROID_NO_BUNDLE:
return NO_BUNDLE_TEXT
if state == ANDROID_OK:
return OK_TEXT
@@ -161,7 +181,7 @@ init python:
filename = os.path.join(p.path, ".android.json")
with open(filename, "r") as f:
with open(filename, "rb") as f:
android_json = json.load(f)
old_android_json = dict(android_json)
@@ -182,11 +202,11 @@ init python:
if android_json != old_android_json:
with open(filename, "w") as f:
with open(filename, "wb") as f:
json.dump(android_json, f)
def android_build(command, p=None, gui=True, launch=False, destination=None, opendir=False):
def android_build(p=None, gui=True, bundle=False, install=False, launch=False, destination=None, opendir=False):
"""
This actually builds the package.
"""
@@ -265,7 +285,11 @@ init python:
with interface.nolinks():
rapt.build.build(rapt_interface, dist, command, launch=launch, finished=finished)
rapt.build.build(rapt_interface, dist, bundle=bundle, install=install, launch=launch, finished=finished, permissions=p.dump['build']['android_permissions'])
def android_build_argument(cmd):
return cmd + project.current.data["android_build"]
@@ -361,7 +385,6 @@ screen android:
frame style "l_indent":
has vbox
textbutton _("Install SDK & Create Keys"):
action AndroidIfState(state, ANDROID_NO_SDK, Jump("android_installsdk"))
hovered tt.Action(INSTALL_SDK_TEXT)
@@ -370,6 +393,20 @@ screen android:
action AndroidIfState(state, ANDROID_NO_CONFIG, Jump("android_configure"))
hovered tt.Action(CONFIGURE_TEXT)
add SPACER
textbutton _("Play Bundle"):
action SetField(persistent, "android_bundle", True)
hovered tt.Action(PLAY_BUNDLE_TEXT)
style "l_checkbox"
textbutton _("Universal APK"):
action SetField(persistent, "android_bundle", False)
hovered tt.Action(UNIVERSAL_APK_TEXT)
style "l_checkbox"
add SPACER
textbutton _("Build Package"):
action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build"))
hovered tt.Action(BUILD_TEXT)
@@ -382,7 +419,19 @@ screen android:
action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_install_and_launch"))
hovered tt.Action(BUILD_INSTALL_AND_LAUNCH_TEXT)
add SPACER
# add SPACER
# add SEPARATOR2
# Right side.
frame:
style "l_indent"
xmaximum ONEHALF
xfill True
has vbox
add SEPARATOR2
frame:
@@ -397,27 +446,29 @@ screen android:
has vbox
textbutton _("Remote ADB Connect"):
action AndroidIfState(state, ANDROID_OK, Jump("android_connect"))
hovered tt.Action(CONNECT_TEXT)
textbutton _("Remote ADB Disconnect"):
action AndroidIfState(state, ANDROID_OK, Jump("android_disconnect"))
hovered tt.Action(DISCONNECT_TEXT)
textbutton _("Logcat"):
action AndroidIfState(state, ANDROID_NO_KEY, Jump("logcat"))
hovered tt.Action(LOGCAT_TEXT)
textbutton _("List Devices"):
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_list_devices"))
hovered tt.Action(LIST_DEVICES_TEXT)
# Right side.
frame:
style "l_indent"
xmaximum ONEHALF
xfill True
textbutton _("Wi-Fi Debugging Pair"):
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_pair"))
hovered tt.Action(PAIR_TEXT)
has vbox
textbutton _("Wi-Fi Debugging Connect"):
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_connect"))
hovered tt.Action(CONNECT_TEXT)
textbutton _("Wi-Fi Debugging Disconnect"):
action AndroidIfState(state, ANDROID_NO_KEY, Jump("android_disconnect"))
hovered tt.Action(DISCONNECT_TEXT)
add SPACER
add SEPARATOR2
frame:
@@ -469,74 +520,20 @@ label android_configure:
label android_build:
$ android_build([ 'release' ], opendir=True)
$ android_build(bundle=persistent.android_bundle, opendir=True)
jump android
label android_build_and_install:
$ android_build([ 'release', 'install' ])
$ android_build(bundle=persistent.android_bundle, install=True, opendir=True)
jump android
label android_build_install_and_launch:
$ android_build([ 'release', 'install' ], launch=True)
jump android
label android_connect:
python hide:
if persistent.connect_address is not None:
address = persistent.connect_address
else:
address = ""
while True:
address = interface.input(
_("Remote ADB Address"),
_("Please enter the IP address and port number to connect to, in the form \"192.168.1.143:5555\". Consult your device's documentation to determine if it supports remote ADB, and if so, the address and port to use."),
default=address,
cancel=Jump("android"),
)
address = address.strip()
try:
host, port = address.split(":")
except:
interface.error(_("Invalid remote ADB address"), _("The address must contain one exactly one ':'."), label=None)
continue
if " " in host:
interface.error(_("Invalid remote ADB address"), _("The host may not contain whitespace."), label=None)
continue
try:
int(port)
except:
interface.error(_("Invalid remote ADB address"), _("The port must be a number."), label=None)
continue
break
persistent.connect_address = address
rapt_interface = MobileInterface("android")
rapt.build.connect(rapt_interface, address)
jump android
label android_disconnect:
python hide:
rapt_interface = MobileInterface("android")
rapt.build.disconnect(rapt_interface)
$ android_build(bundle=persistent.android_bundle, install=True, launch=True, opendir=True)
jump android
@@ -551,22 +548,91 @@ label logcat:
jump android
label android_list_devices:
python hide:
cc = ConsoleCommand()
cc.add(rapt.plat.adb, "devices")
cc.run()
jump android
label android_pair:
python hide:
pairing_code = interface.input(
_("Wi-Fi Pairing Code"),
_("If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."),
sanitize=False,
cancel=Jump("android"),
)
host = interface.input(
_("Pairing Host & Port"),
_("If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."),
sanitize=False,
cancel=Jump("android"),
)
cc = ConsoleCommand()
cc.add(rapt.plat.adb, "pair", host, pairing_code)
cc.run()
jump android
label android_connect:
python hide:
host = interface.input(
_("IP Address & Port"),
_("If supported, this can be found in 'Developer options', 'Wireless debugging'."),
sanitize=False,
cancel=Jump("android"),
)
cc = ConsoleCommand()
cc.add(rapt.plat.adb, "connect", host)
cc.run()
jump android
label android_disconnect:
python hide:
host = interface.input(
_("IP Address & Port"),
_("This can be found in 'List Devices'."),
sanitize=False,
cancel=Jump("android"),
)
cc = ConsoleCommand()
cc.add(rapt.plat.adb, "disconnect", host)
cc.run()
jump android
init python:
def android_build_command():
ap = renpy.arguments.ArgumentParser()
ap.add_argument("android_project", help="The path to the project directory.")
ap.add_argument("ant_commands", help="Commands to pass to ant. (Try 'release' 'install'.)", nargs='+')
ap.add_argument("--launch", action="store_true", help="Launches the app after build and install compete.")
ap.add_argument("--bundle", action="store_true", help="Builds an android app bundle.")
ap.add_argument("--install", action="store_true", help="Installs the app on a device.")
ap.add_argument("--launch", action="store_true", help="Launches the app after build and install complete. Implies --install.")
ap.add_argument("--destination", "--dest", default=None, action="store", help="The directory where the packaged files should be placed.")
args = ap.parse_args()
if args.launch:
args.install = True
p = project.Project(args.android_project)
android_build(args.ant_commands, p=p, gui=False, launch=args.launch, destination=args.destination)
android_build(p=p, gui=False, bundle=args.bundle, install=args.install, launch=args.launch, destination=args.destination)
return False
renpy.arguments.register_command("android_build", android_build_command)
+64
View File
@@ -0,0 +1,64 @@
# This file contains strings used by RAPT, so the Ren'Py translation framework
# can find them. It's automatically generated by rapt/update_translations.py, and
# hence should not be changed by hand.
init python hide:
__("{} is not a directory.")
__("{} does not contain a Ren'Py game.")
__("{} does not contain a Ren'Py game.")
__("Run configure before attempting to build the app.")
__("Updating project.")
__("Creating assets directory.")
__("Packaging internal data.")
__("I'm using Gradle to build the package.")
__("The build seems to have failed.")
__("I'm installing the bundle.")
__("Installing the bundle appears to have failed.")
__("Launching app.")
__("Launching the app appears to have failed.")
__("The build seems to have succeeded.")
__("What is the full name of your application? This name will appear in the list of installed applications.")
__("What is the short name of your application? This name will be used in the launcher, and for application shortcuts.")
__("What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot.")
__("The package name may not be empty.")
__("The package name may not contain spaces.")
__("The package name must contain at least one dot.")
__("The package name may not contain two dots in a row, or begin or end with a dot.")
__("Each part of the package name must start with a letter, and contain only letters, numbers, and underscores.")
__("{} is a Java keyword, and can't be used as part of a package name.")
__("What is the application's version?\n\nThis should be the human-readable version that you would present to a person. It must contain only numbers and dots.")
__("The version number must contain only numbers and dots.")
__("How much RAM do you want to allocate to Gradle?\n\nThis must be a positive integer number.")
__("The RAM size must contain only numbers.")
__("How would you like your application to be displayed?")
__("In landscape orientation.")
__("In portrait orientation.")
__("In the user's preferred orientation.")
__("Do you want to automatically update the Java source code?")
__("Yes. This is the best choice for most projects.")
__("No. This may require manual updates when Ren'Py or the project configuration changes.")
__("Unknown configuration variable: {}")
__("I'm compiling a short test program, to see if you have a working JDK on your system.")
__("I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Without a working JDK, I can't continue.")
__("The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\n{a=https://adoptium.net/?variant=openjdk8}https://adoptium.net/?variant=openjdk8{/a}\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java.")
__("The JDK is present and working. Good!")
__("The Android SDK has already been unpacked.")
__("Do you accept the Android SDK Terms and Conditions?")
__("I'm downloading the Android SDK. This might take a while.")
__("I'm extracting the Android SDK.")
__("I've finished unpacking the Android SDK.")
__("I'm about to download and install the required Android packages. This might take a while.")
__("I was unable to accept the Android licenses.")
__("I was unable to accept the Android licenses.")
__("I was unable to install the required Android packages.")
__("I've finished installing the required Android packages.")
__("Please enter your name or the name of your organization.")
__("I can create an application signing key for you. This key is required to create Universal APK for sideloading and stores other than Google Play.\n\nDo you want to create a key?")
__("I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?")
__("Could not create android.keystore. Is keytool in your path?")
__("I've finished creating android.keystore. Please back it up, and keep it in a safe place.")
__("I can create a bundle signing key for you. This key is required to build an Android App Bundle (AAB) for upload to Google Play.\n\nDo you want to create a key?")
__("I will create the key in the bundle.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of bundle.keystore, and keep it in a safe place?")
__("Could not create bundle.keystore. Is keytool in your path?")
__("It looks like you're ready to start packaging games.")
+4 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -28,8 +28,9 @@ init python in archiver:
import sys
import random
import glob
import zlib
from cPickle import dumps, HIGHEST_PROTOCOL
from pickle import dumps, HIGHEST_PROTOCOL
class Archive(object):
@@ -76,7 +77,7 @@ init python in archiver:
indexoff = self.f.tell()
self.f.write(dumps(self.index, HIGHEST_PROTOCOL).encode("zlib"))
self.f.write(zlib.compress(dumps(self.index, HIGHEST_PROTOCOL)))
self.f.seek(0)
self.f.write(b"RPA-3.0 %016x %08x\n" % (indexoff, self.key))
+107 -47
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -19,7 +19,6 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# http://www.csn.ul.ie/~caolan/publink/winresdump/winresdump/doc/pefile.html
# Contains a reasonable description of the format.
@@ -28,7 +27,7 @@ from __future__ import print_function
import struct
import sys
import array
import pefile # @UnresolvedImport
import pefile # @UnresolvedImport
# This class performs various operations on memory-loaded binary files,
# including modifications.
@@ -37,24 +36,24 @@ import pefile # @UnresolvedImport
class BinFile(object):
def set_u32(self, addr, value):
self.a[addr+0] = (value >> 0) & 0xff
self.a[addr+1] = (value >> 8) & 0xff
self.a[addr+2] = (value >> 16) & 0xff
self.a[addr+3] = (value >> 24) & 0xff
self.a[addr + 0] = (value >> 0) & 0xff
self.a[addr + 1] = (value >> 8) & 0xff
self.a[addr + 2] = (value >> 16) & 0xff
self.a[addr + 3] = (value >> 24) & 0xff
def u32(self):
addr = self.addr
rv = self.a[addr]
rv |= self.a[addr+1] << 8
rv |= self.a[addr+2] << 16
rv |= self.a[addr+3] << 24
rv |= self.a[addr + 1] << 8
rv |= self.a[addr + 2] << 16
rv |= self.a[addr + 3] << 24
self.addr += 4
return rv
def u16(self):
addr = self.addr
rv = self.a[addr]
rv |= self.a[addr+1] << 8
rv |= self.a[addr + 1] << 8
self.addr += 2
return rv
@@ -78,8 +77,8 @@ class BinFile(object):
def tostring(self):
return self.a.tostring()
def substring(self, start, len): # @ReservedAssignment
return self.a[start:start+len].tostring()
def substring(self, start, len): # @ReservedAssignment
return self.a[start:start + len].tostring()
def __init__(self, data):
self.a = array.array(b'B')
@@ -89,6 +88,7 @@ class BinFile(object):
# These functions parse data out of the file. In these functions, offset is
# relative to the start of the file.
# The virtual address of the resource segment.
resource_virtual = 0
@@ -116,10 +116,10 @@ def parse_data(bf, offset):
def parse_directory(bf, offset):
bf.seek(offset)
char = bf.u32() # @UnusedVariable
timedate = bf.u32() # @UnusedVariable
major = bf.u16() # @UnusedVariable
minor = bf.u16() # @UnusedVariable
char = bf.u32() # @UnusedVariable
timedate = bf.u32() # @UnusedVariable
major = bf.u16() # @UnusedVariable
minor = bf.u16() # @UnusedVariable
n_named = bf.u16()
n_id = bf.u16()
@@ -241,7 +241,7 @@ class Packer(object):
def load_icon(fn):
f = BinFile(file(fn, "rb").read())
f = BinFile(open(fn, "rb").read())
f.seek(0)
f.u16()
@@ -268,14 +268,17 @@ def load_icon(fn):
if not f.u32():
f.set_u32(offset + 20, 0)
rv[3][i + 1] = { 0 : (1252, f.substring(offset, size)) }
#rv[3][i + 1] = { 0 : (1252, f.substring(offset, size)) }
#I do not have justification for the 0x0409 entry ID, other than copying what other files do. Same for codepage of 0
rv[3][i + 1] = { 1033 : (0, f.substring(offset, size)) }
group += struct.pack("BBBBHHIH", width, height, colors, reserved,
planes, bpp, size, i + 1)
f.seek(addr)
rv[14] = { 1 : { 0 : (1252, group) } }
#rv[14] = { 1 : { 0 : (1252, group) } }
rv[14] = { 1 : { 1033 : (0, group) } }
return rv
@@ -301,9 +304,24 @@ def change_icons(oldexe, icofn):
physize = rsrc_section.SizeOfRawData
virsize = rsrc_section.Misc_VirtualSize
f = file(oldexe, "rb")
f.seek(base)
f = open(oldexe, "rb")
basedata = f.read(base)
data = f.read(physize)
#Symbol table, I could not understand so well
# Some analysis and the little I could find on how the symbol tables were layed out show that the PE table is in two sections. One is
# a list of NumberOfSymbols*(18 bytes) symbol entries, followed immediately by a string table who's length is specified in the 4 bytes following the symbol structure list
#Again, the information *seems* to indicate that this will always follow the entire block of all sections (so be at the end of the file)
######
# As a related note, apparently this flag has been deprecated, but appears to be set (I think ..) in the renpy.exe that is used to build from..
# no idea of a consequence, just an observation
# https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#characteristics , see "IMAGE_FILE_LINE_NUMS_STRIPPED" :
# COFF line numbers have been removed. This flag is deprecated and should be zero.
# In renpy.exe, this 2-byte flag is @ 0x096 and 0x097 in little-endian
######
f.close()
bf = BinFile(data)
@@ -315,44 +333,86 @@ def change_icons(oldexe, icofn):
rsrc = Packer().pack(resources)
alignment = pe.OPTIONAL_HEADER.SectionAlignment
newExactSize = len(rsrc)
# print "Alignment is", alignment
#From note about flags above regarding image flags. These two should be 0
pe.FILE_HEADER.Characteristics = pe.FILE_HEADER.Characteristics & (~pefile.IMAGE_CHARACTERISTICS["IMAGE_FILE_LINE_NUMS_STRIPPED"])
pe.FILE_HEADER.Characteristics = pe.FILE_HEADER.Characteristics & (~pefile.IMAGE_CHARACTERISTICS["IMAGE_FILE_LOCAL_SYMS_STRIPPED"])
#Per docs, symbol table can just be removed
#https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#coff-file-header-object-and-image see "PointerToSymbolTable" and "NumberOfSymbols "
pe.FILE_HEADER.PointerToSymbolTable = 0
pe.FILE_HEADER.NumberOfSymbols = 0
if len(rsrc) % alignment:
pad = alignment - (len(rsrc) % alignment)
padding = b"RENPYVNE" * (pad / 8 + 1)
#####
# Alignment requirements as I understand them
#
# SectionAlignment (misnomer.. 'memory' alignment) = 4096
# FileAlignment = 512
#
# Section, SizeOfRawData = multiple of FileAlignment (On Disk size)
# Scetion, VirtualSize is NOT aligned to any specific number, and rwdata may be > than this due to its alignment requirement (In memory size)
#
# the resource section should be padded out to meet the alignment requirement of SizeOfRawData = multiple of FileAlignment (So, in the file, since on disk)
#
#####
# RVA table virt address and size = that in the section header
#
#####
# SizeOfImage must be aligned to SectionAlignment (memory alignment)
# There is NO padding needed, the image size number simply needs to be aligned to >= the
memoryalignment = pe.OPTIONAL_HEADER.SectionAlignment
filealignment = pe.OPTIONAL_HEADER.FileAlignment
rsrc_section.Misc_VirtualSize = newExactSize
rsrc_section.Misc_PhysicalAddress = newExactSize
rsrc_section.Misc = newExactSize
#Size of resource section (and pointer, but we're not changing anything 'above' resource) is the same as virtual address in the section table
# https://docs.microsoft.com/en-us/windows/win32/debug/pe-format#optional-header-data-directories-image-only
pe.OPTIONAL_HEADER.DATA_DIRECTORY[2].Size = rsrc_section.Misc_VirtualSize
#Alignment for raw data
if len(rsrc) % filealignment:
pad = filealignment - (len(rsrc) % filealignment)
padding = b"\0" * (pad)
padding = padding[:pad]
rsrc += padding
rsrc_section.SizeOfRawData = len(rsrc)
newsize = len(rsrc)
rsrc_section.Misc_VirtualSize += newsize - virsize
rsrc_section.Misc_PhysicalAddress += newsize - virsize
rsrc_section.Misc += newsize - virsize
rsrc_section.SizeOfRawData += newsize - physize
#Image size is the memory size of all sections + all headers, padded to memory alignment.
#There's alread a header size, and this isn't changing headers, so just add.
#imageSize = pe.OPTIONAL_HEADER.ImageBase + pe.OPTIONAL_HEADER.SizeOfHeaders
imageSize = pe.OPTIONAL_HEADER.SizeOfHeaders
for s in pe.sections:
sectionSize = s.Misc_VirtualSize
#Align every section, so add padding to size
pad = 0
if sectionSize % memoryalignment:
pad = memoryalignment - (sectionSize % memoryalignment)
imageSize += (sectionSize + pad)
pad = 0
if imageSize % memoryalignment:
pad = memoryalignment - (imageSize % memoryalignment)
pe.OPTIONAL_HEADER.SizeOfImage = imageSize + pad
pe.OPTIONAL_HEADER.SizeOfInitializedData += newsize - physize
# Resource size.
pe.OPTIONAL_HEADER.DATA_DIRECTORY[2].Size += newsize - virsize
#The symbol table is simply left off. Its size DOES factor into ImageSize, but we didn't calculate it above, so fine
#Correctly checksum the file. The entire file is involved in the calculation, so a new PE object must be generated for the calculation to work against
newFile = pe.write()[:base] + rsrc
newpe = pefile.PE(data=newFile)
newpe.OPTIONAL_HEADER.CheckSum = newpe.generate_checksum()
# Compute the total size of the image.
total_size = 0
return newpe.write()
for i in pe.sections:
sec_size = i.Misc_VirtualSize
sec_size = sec_size - (sec_size % alignment) + alignment
total_size += sec_size
pe.OPTIONAL_HEADER.SizeOfImage = total_size
return pe.write()[:base] + rsrc
if __name__ == "__main__":
f = file(sys.argv[3], "wb")
f = open(sys.argv[3], "wb")
f.write(change_icons(sys.argv[1], sys.argv[2]))
f.close()
+59 -5
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -19,8 +19,25 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
if renpy.windows:
import EasyDialogsWin as EasyDialogs
else:
EasyDialogs = None
pyobjus = None
if renpy.macintosh:
try:
import pyobjus
except:
pass
def directory_is_writable(path):
test = os.path.join(path, "renpy test do not use")
@@ -51,6 +68,7 @@ init python:
if path:
default_path = path
path = None
else:
try:
default_path = os.path.dirname(os.path.abspath(config.renpy_base))
@@ -66,11 +84,46 @@ init python:
else:
path = None
elif pyobjus:
from pyobjus import autoclass
from pyobjus.dylib_manager import load_framework, INCLUDE
load_framework(INCLUDE.AppKit)
NSURL = autoclass('NSURL')
NSOpenPanel = autoclass('NSOpenPanel')
panel = NSOpenPanel.openPanel()
panel.setCanChooseDirectories_(True)
panel.setCanChooseFiles_(False)
panel.setCanCreateDirectories_(True)
if default_path:
url = NSURL.fileURLWithPath_(default_path)
panel.setDirectoryURL_(url)
if panel.runModal():
path = panel.filename().UTF8String().decode("utf-8")
else:
path = None
else:
try:
cmd = [ "/usr/bin/python", os.path.join(config.gamedir, "tkaskdir.py"), renpy.fsencode(default_path) ]
if renpy.macintosh:
# tkinter is broken on Python 3, so use it as a last resort - maybe apple fixed it?
system_pythons = [ "/usr/bin/python2", "/usr/bin/python", "/usr/bin/python3" ]
else:
system_pythons = [ "/usr/bin/python3", "/usr/bin/python2", "/usr/bin/python" ]
for system_python in system_pythons:
if os.path.exists(system_python):
break
else:
system_python = system_pythons[0]
cmd = [ system_python, os.path.join(config.gamedir, "tkaskdir.py"), renpy.fsencode(default_path) ]
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)
choice = p.stdout.read()
@@ -84,17 +137,18 @@ init python:
choice = ""
path = None
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python-tk or tkinter package."), label=None)
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."), label=None)
if code:
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python-tk or tkinter package."), label=None)
interface.error(_("Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."), label=None)
elif choice:
path = choice.decode("utf-8")
is_default = False
if path is None:
# Path being None or "" means nothing was selected.
if not path:
path = default_path
is_default = True
+4 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -24,6 +24,7 @@ init python:
import codecs
import re
import sys
import future.utils
def theme_names():
"""
@@ -97,7 +98,7 @@ init python:
return
renpy.style.restore(style_backup)
exec theme_data.THEME[theme][scheme] in globals()
future.utils.exec_(theme_data.THEME[theme][scheme], globals(), globals())
# Rebuild the style cache.
renpy.style.rebuild(False)
@@ -504,7 +505,7 @@ label choose_theme_callable:
call screen choose_theme
python hide:
with interface.error_handling("changing the theme"):
with interface.error_handling(_("changing the theme")):
switch_theme()
return
+17 -10
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -34,7 +34,7 @@ init python:
if renpy.macintosh:
fn = "console.command"
nl = "\n"
prefix = "#!/bin/bash"
prefix = "#!/bin/sh"
elif renpy.windows:
fn = "console.bat"
nl = "\r\n"
@@ -49,7 +49,6 @@ init python:
self.f = open(self.fn, "wb")
self.nl = nl
self.f.write(renpy.fsencode(prefix) + nl)
def add(self, *args):
@@ -60,25 +59,33 @@ init python:
args = [ '"{}"'.format(renpy.fsencode(i)) for i in args]
self.f.write(" ".join(args) + self.nl)
def write(self, *args):
"""
Adds a command to be run.
"""
args = [ '{}'.format(renpy.fsencode(i)) for i in args]
self.f.write(" ".join(args) + self.nl)
def run(self):
"""
Runs the queued up commands.
"""
if renpy.windows:
self.add("pause")
self.write("pause")
elif renpy.linux:
self.add("echo", "Press enter to close this window...")
self.add("read")
self.write("read")
self.f.close()
os.chmod(self.fn, 0o755)
if renpy.windows:
subprocess.Popen([ renpy.fsencode(self.fn) ], shell=True)
elif renpy.macintosh:
subprocess.Popen([ "open", "-a", "Terminal", renpy.fsencode(self.fn) ])
if renpy.linux:
command = renpy.fsencode('"{}"'.format(self.fn.replace("\"", "\\\"")))
subprocess.Popen([ "x-terminal-emulator", "-e", command ])
else:
subprocess.Popen([ "x-terminal-emulator", "-e", renpy.fsencode(self.fn) ])
command = renpy.fsencode(self.fn)
os.startfile(command)
interface.interaction(_("INFORMATION"), _("The command is being run in a new operating system console window."), pause=2.5)
+175 -73
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -308,22 +308,18 @@ init python in distribute:
def mac_lib_transform(self, app, duplicate):
"""
Moves the mac lib into position. If duplicate is set, the
Creates a new file list that has lib/darwin-x86_64 and lib/pythonlib2.7
copied into the mac app, the latter iff it's not duplicated elsewhere.
copied into the mac app, the latter iff it's not duplicated elsewhere or
duplicate is set.
"""
for f in list(self):
if f.name.startswith("lib/darwin-x86_64/lib/python2.7"):
name = app + "/Contents/MacOS/lib/darwin-x86_64/Lib" + f.name[31:]
if f.name.startswith("lib/python2.7") and (not duplicate):
name = app + "/Contents/Resources/" + f.name
elif f.name.startswith("lib/pythonlib2.7") and (not duplicate):
name = app + "/Contents/MacOS/lib/darwin-x86_64/Lib" + f.name[16:]
elif f.name.startswith("lib/darwin-x86_64"):
name = app + "/Contents/MacOS/" + f.name
elif f.name.startswith("lib/mac-x86_64"):
name = app + "/Contents/MacOS/" + f.name[15:]
else:
continue
@@ -373,7 +369,7 @@ init python in distribute:
This manages the process of building distributions.
"""
def __init__(self, project, destination=None, reporter=None, packages=None, build_update=True, open_directory=False, noarchive=False, packagedest=None, report_success=True):
def __init__(self, project, destination=None, reporter=None, packages=None, build_update=True, open_directory=False, noarchive=False, packagedest=None, report_success=True, scan=True, macapp=None):
"""
Distributes `project`.
@@ -404,6 +400,10 @@ init python in distribute:
`report_success`
If true, we report that the build succeeded.
`macapp`
If given, the path to a macapp that's used instead of
the macapp
"""
# A map from a package to a unique update version hash.
@@ -437,12 +437,26 @@ init python in distribute:
# Logfile.
self.log = open(self.temp_filename("distribute.txt"), "w")
# The path to the mac app.
self.macapp = macapp
# Start by scanning the project, to get the data and build
# dictionaries.
data = project.data
self.reporter.info(_("Scanning project files..."))
project.update_dump(force=True, gui=False, compile=project.data['force_recompile'])
if scan:
self.reporter.info(_("Scanning project files..."))
project.update_dump(force=True, gui=False, compile=project.data['force_recompile'])
if project.data['force_recompile']:
import compileall
compileall.compile_dir(
os.path.join(config.renpy_base, "renpy"),
ddir="renpy/",
force=True,
quiet=True,
)
if project.dump.get("error", False):
raise Exception("Could not get build data from the project. Please ensure the project runs.")
@@ -485,6 +499,7 @@ init python in distribute:
# The various executables, which change names based on self.executable_name.
self.app = self.executable_name + ".app"
self.exe = self.executable_name + ".exe"
self.exe32 = self.executable_name + "-32.exe"
self.sh = self.executable_name + ".sh"
self.py = self.executable_name + ".py"
@@ -523,6 +538,10 @@ init python in distribute:
# Build the mac app and windows exes.
self.add_mac_files()
self.add_windows_files()
self.add_main_py()
# Add the main.py.
self.add_main_py()
# Add generated/special files.
if build['renpy']:
@@ -533,6 +552,9 @@ init python in distribute:
# Assign the x-bit as necessary.
self.mark_executable()
# Merge file lists, as needed.
self.merge_file_lists()
# Rename the executable-like files.
if not build['renpy']:
self.rename()
@@ -603,15 +625,24 @@ init python in distribute:
match_name = name
for pattern, file_list in patterns:
if match(match_name, pattern):
# When we have ('test/**', None), avoid excluding test.
if (not file_list) and is_dir:
new_pattern = pattern.rstrip("*")
if (pattern != new_pattern) and match(match_name, new_pattern):
continue
break
else:
print >> self.log, match_name.encode("utf-8"), "doesn't match anything."
print(str(match_name), "doesn't match anything.", file=self.log)
pattern = None
file_list = None
print >> self.log, match_name.encode("utf-8"), "matches", pattern, "(" + str(file_list) + ")."
print(str(match_name), "matches", str(pattern), "(" + str(file_list) + ").", file=self.log)
if file_list is None:
return
@@ -631,6 +662,17 @@ init python in distribute:
for fn in os.listdir(directory):
walk(fn, os.path.join(directory, fn))
def merge_file_lists(self):
"""
For each (old, new) in self.build['merge'], merge the old list
into the new list.
"""
for old, new in self.build['merge']:
self.file_lists[new] = FileList.merge([
self.file_lists[old],
self.file_lists[new]])
def rescan(self, oldlist, directory):
"""
Scans `directory`, and produces a filelist from it. Returns the
@@ -781,7 +823,7 @@ init python in distribute:
script_version_txt = self.temp_filename("script_version.txt")
with open(script_version_txt, "w") as f:
f.write(repr(renpy.renpy.version_tuple[:-1]))
f.write(unicode(repr(renpy.renpy.version_tuple[:-1])))
self.add_file("all", "game/script_version.txt", script_version_txt)
@@ -792,7 +834,7 @@ init python in distribute:
tfn = self.temp_filename(list_name + "_hash.txt")
with open(tfn, "w") as tf:
with open(tfn, "wb") as tf:
tf.write(self.file_lists[list_name].hash(self))
self.add_file("binary", "launcher/game/" + list_name + "_hash.txt", tfn)
@@ -805,6 +847,7 @@ init python in distribute:
self.add_file_list_hash("rapt")
self.add_file_list_hash("renios")
self.add_file_list_hash("web")
tmp_fn = self.temp_filename("renpy.py")
@@ -812,7 +855,7 @@ init python in distribute:
data = f.read()
with open(tmp_fn, "wb") as f:
f.write("#!/usr/bin/env python2\n")
f.write(b"#!/usr/bin/env python2\n")
f.write(data)
self.add_file("source_only", "renpy.py", tmp_fn, True)
@@ -833,7 +876,7 @@ init python in distribute:
CFBundleName=display_name,
CFBundlePackageType="APPL",
CFBundleShortVersionString=version,
CFBundleVersion="1.0.{0}".format(int(time.time())),
CFBundleVersion=time.strftime("%Y.%m%d.%H%M%S"),
LSApplicationCategoryType="public.app-category.simulation-games",
CFBundleDocumentTypes = [
{
@@ -849,11 +892,14 @@ init python in distribute:
"UTTypeTagSpecification" : { "public.filename-extension" : [ "rpy" ] }
},
],
NSHighResolutionCapable=True,
)
if self.build.get('allow_integrated_gpu', False):
plist["NSSupportsAutomaticGraphicsSwitching"] = True
plist.update(self.build.get("mac_info_plist", { }))
rv = self.temp_filename("Info.plist")
plistlib.writePlist(plist, rv)
return rv
@@ -863,27 +909,29 @@ init python in distribute:
if self.build['renpy']:
windows = 'binary'
linux = 'binary'
linux_i686 = 'binary'
mac = 'binary'
raspi = 'raspi'
else:
windows = 'windows'
linux = 'linux'
linux_i686 = 'linux_i686'
mac = 'mac'
raspi = 'linux'
self.add_file(
linux,
linux_i686,
"lib/linux-i686/" + self.executable_name,
os.path.join(config.renpy_base, "lib/linux-i686/pythonw"),
os.path.join(config.renpy_base, "lib/linux-i686/renpy"),
True)
self.add_file(
linux,
"lib/linux-x86_64/" + self.executable_name,
os.path.join(config.renpy_base, "lib/linux-x86_64/pythonw"),
os.path.join(config.renpy_base, "lib/linux-x86_64/renpy"),
True)
armfn = os.path.join(config.renpy_base, "lib/linux-armv7l/pythonw")
armfn = os.path.join(config.renpy_base, "lib/linux-armv7l/renpy")
if os.path.exists(armfn):
@@ -896,14 +944,10 @@ init python in distribute:
self.add_file(
mac,
"lib/darwin-x86_64/" + self.executable_name,
os.path.join(config.renpy_base, "lib/darwin-x86_64/pythonw"),
"lib/mac-x86_64/" + self.executable_name,
os.path.join(config.renpy_base, "lib/mac-x86_64/renpy"),
True)
# self.add_file(
# windows,
# "lib/windows-i686/" + self.executable_name + ".exe",
# os.path.join(config.renpy_base, "lib/windows-i686/renpy.exe"))
def add_mac_files(self):
"""
@@ -923,7 +967,9 @@ init python in distribute:
plist_fn = self.write_plist()
self.add_file(filelist, contents + "/Info.plist", plist_fn)
self.add_file(filelist, contents + "/MacOS/" + self.executable_name, os.path.join(config.renpy_base, "renpy.sh"))
self.add_file(filelist,
contents + "/MacOS/" + self.executable_name,
os.path.join(config.renpy_base, "lib/mac-x86_64/renpy"))
custom_fn = os.path.join(self.project.path, "icon.icns")
default_fn = os.path.join(config.renpy_base, "launcher/icon.icns")
@@ -938,16 +984,10 @@ init python in distribute:
self.add_directory(filelist, resources)
self.add_file(filelist, resources + "/icon.icns", icon_fn)
self.add_directory(filelist, contents + "/MacOS/lib")
self.add_directory(filelist, contents + "/MacOS/lib/darwin-x86_64")
self.add_directory(filelist, contents + "/MacOS/lib/darwin-x86_64/Lib")
self.add_directory(filelist, contents + "/MacOS/lib/darwin-x86_64/Modules")
sfn = self.temp_filename("Setup")
with open(sfn, "wb") as f:
pass
self.add_file(filelist, contents + "/MacOS/lib/darwin-x86_64/Modules/Setup", sfn)
if not self.build['renpy']:
self.add_directory(filelist, contents + "/MacOS/lib")
self.add_directory(filelist, contents + "/MacOS/lib/mac-x86_64")
self.add_directory(filelist, contents + "/Resources/lib/python2.7")
self.file_lists[filelist].mac_lib_transform(self.app, self.build['renpy'])
@@ -958,29 +998,53 @@ init python in distribute:
if self.build['renpy']:
windows = 'binary'
windows_i686 = 'binary'
else:
windows = 'windows'
windows_i686 = 'windows_i686'
icon_fn = os.path.join(self.project.path, "icon.ico")
old_exe_fn = os.path.join(config.renpy_base, "renpy.exe")
old_main_fn = os.path.join(config.renpy_base, "lib/windows-i686/renpy.exe")
if os.path.exists(icon_fn):
exe_fn = self.temp_filename("renpy.exe")
main_fn = self.temp_filename("main.exe")
with open(exe_fn, "wb") as f:
f.write(change_icons(old_exe_fn, icon_fn))
def write_exe(src, dst, tmp, fl):
"""
Write the exe found at `src` (taken as relative to renpy-base)
as `dst` (in the distribution). `tmp` is the name of a tempfile
that is written if one is needed.
"""
with open(main_fn, "wb") as f:
f.write(change_icons(old_main_fn, icon_fn))
if fl == "windows_i686":
should_change_icon = self.build["change_icon_i686"]
else:
should_change_icon = True
else:
exe_fn = old_exe_fn
main_fn = old_main_fn
src = os.path.join(config.renpy_base, src)
tmp = self.temp_filename(tmp)
self.add_file(windows, self.exe, exe_fn)
self.add_file(windows, "lib/windows-i686/" + self.exe, main_fn)
if should_change_icon and os.path.exists(icon_fn) and os.path.exists(src):
with open(tmp, "wb") as f:
f.write(change_icons(src, icon_fn))
else:
tmp = src
if os.path.exists(tmp):
self.add_file(fl, dst, tmp)
if self.build["include_i686"]:
write_exe("lib/windows-i686/renpy.exe", self.exe32, self.exe32, windows_i686)
write_exe("lib/windows-i686/pythonw.exe", "lib/windows-i686/pythonw.exe", "pythonw-32.exe", windows_i686)
write_exe("lib/windows-x86_64/renpy.exe", self.exe, self.exe, windows)
write_exe("lib/windows-x86_64/pythonw.exe", "lib/windows-x86_64/pythonw.exe", "pythonw-64.exe", windows)
def add_main_py(self):
if self.build['renpy']:
return
self.add_file("web", "main.py", os.path.join(config.renpy_base, "renpy.py"))
def mark_executable(self):
"""
@@ -1026,7 +1090,7 @@ init python in distribute:
cmd = [ renpy.fsencode(i.format(**kwargs)) for i in command ]
# print "\"" + "\" \"".join(cmd) + "\""
# print("\"" + "\" \"".join(cmd) + "\"")
try:
import sys, os
@@ -1045,6 +1109,9 @@ init python in distribute:
Signs the mac app contained in appzip.
"""
if self.macapp:
return self.rescan(fl, self.macapp)
identity = self.build.get('mac_identity', None)
if identity is None:
@@ -1080,6 +1147,7 @@ init python in distribute:
self.build["mac_codesign_command"],
identity=identity,
app=os.path.join(dn, self.app),
entitlements=os.path.join(config.gamedir, "entitlements.plist"),
)
# Rescan the signed app.
@@ -1095,7 +1163,7 @@ init python in distribute:
identity = self.build.get('mac_identity', None)
if identity is None:
raise Exception("Creating an unsigned DMG is not supported. Please set build.mac_identity.")
identity = ''
self.run(
_("Creating the Macintosh DMG..."),
@@ -1106,14 +1174,39 @@ init python in distribute:
dmg=dmg,
)
self.run(
_("Signing the Macintosh DMG..."),
self.build["mac_codesign_dmg_command"],
identity=identity,
volname=volname,
sourcedir=sourcedir,
dmg=dmg,
)
if self.build.get("mac_codesign_dmg_command", None):
self.run(
_("Signing the Macintosh DMG..."),
self.build["mac_codesign_dmg_command"],
identity=identity,
volname=volname,
sourcedir=sourcedir,
dmg=dmg,
)
def workaround_mac_notarization(self, fl):
"""
This works around mac notarization by compressing the unsigned,
un-notarized, binaries in lib/mac-x86_64.
"""
fl = fl.copy()
for f in fl:
if "/lib/mac-x86_64/" in f.name:
with open(f.path, "rb") as inf:
data = inf.read()
tempfile = self.temp_filename(os.path.basename(f.name) + ".macho")
with open(tempfile, "wb") as outf:
outf.write(b"RENPY" + data)
f.name += ".macho"
f.path = tempfile
return fl
def prepare_file_list(self, format, file_lists):
"""
@@ -1221,7 +1314,7 @@ init python in distribute:
self.update_versions[variant] = fl.hash(self)
update = { variant : { "version" : self.update_versions[variant], "files" : update_files, "directories" : update_directories, "xbit" : update_xbit } }
update = { variant : { "version" : self.update_versions[variant], "base_name" : self.base_name, "files" : update_files, "directories" : update_directories, "xbit" : update_xbit } }
update_fn = os.path.join(self.destination, filename + ".update.json")
@@ -1251,7 +1344,7 @@ init python in distribute:
file_hash, old_fl_hash = self.build_cache.get(full_filename, ("", ""))
if (not directory) and old_fl_hash == fl_hash:
if (not directory) and (old_fl_hash == fl_hash) and not(self.build['renpy'] and (variant == "sdk")):
if file_hash:
self.build_cache[full_filename] = (file_hash, fl_hash)
@@ -1292,6 +1385,9 @@ init python in distribute:
shutil.rmtree(path)
pkg = DMGPackage(path, make_dmg)
fl = self.workaround_mac_notarization(fl)
elif directory:
pkg = DirectoryPackage(path)
@@ -1332,6 +1428,11 @@ init python in distribute:
index = { }
# Ren'Py 7.4.1 forgot to include mac zsync, so it needs to be downloaded before the update
# can occur.
if self.build['renpy']:
index["monkeypatch"] = "def mac_fix():\n import renpy\n if not renpy.macintosh:\n return\n\n import os\n mac = os.path.join(renpy.config.renpy_base, \"lib\", \"mac-x86_64\")\n zsync = os.path.join(mac, \"zsync\")\n\n if not os.path.isdir(mac):\n return\n\n if os.path.isdir(zsync):\n return\n\n import requests\n\n response = requests.get(\"https://www.renpy.org/dl/mac-fix/zsync\")\n\n with open(zsync + \".new\", \"w\") as f:\n f.write(response.content)\n \n os.chmod(zsync + \".new\", 0o755)\n os.rename(zsync + \".new\", zsync)\n\nmac_fix()\n"
def add_variant(variant):
digest = self.build_cache[self.base_name + "-" + variant + ".update"][0]
@@ -1396,13 +1497,13 @@ init python in distribute:
def dump(self):
for k, v in sorted(self.file_lists.items()):
print
print k + ":"
print()
print(k + ":")
v.sort()
for i in v:
print " ", i.name, "xbit" if i.executable else ""
print(" ", i.name, "xbit" if i.executable else "")
class GuiReporter(object):
"""
@@ -1441,7 +1542,7 @@ init python in distribute:
what = what.replace("[", "{")
what = what.replace("]", "}")
what = what.format(**kwargs)
print what
print(what)
def progress(self, what, done, total, **kwargs):
what = what.replace("[", "{")
@@ -1462,6 +1563,7 @@ init python in distribute:
ap.add_argument("--no-update", default=True, action="store_false", dest="build_update", help="Prevents updates from being built.")
ap.add_argument("--package", action="append", help="If given, a package to build. Defaults to building all packages.")
ap.add_argument("--no-archive", action="store_true", help="If given, files will not be added to archives.")
ap.add_argument("--macapp", default=None, action="store", help="If given, the path to a signed and notarized mac app.")
ap.add_argument("project", help="The path to the project directory.")
args = ap.parse_args()
@@ -1473,7 +1575,7 @@ init python in distribute:
else:
packages = None
Distributor(p, destination=args.destination, reporter=TextReporter(), packages=packages, build_update=args.build_update, noarchive=args.no_archive, packagedest=args.packagedest)
Distributor(p, destination=args.destination, reporter=TextReporter(), packages=packages, build_update=args.build_update, noarchive=args.no_archive, packagedest=args.packagedest, macapp=args.macapp)
return False
@@ -1492,4 +1594,4 @@ label distribute:
)
jump front_page
jump post_build
+3 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -276,6 +276,8 @@ label build_distributions:
call build_update_dump
label post_build:
if not project.current.dump["build"]["directory_name"]:
jump build_missing
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+20 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -21,11 +21,27 @@
init python:
import urllib2
import urllib.request
import os
import threading
import time
ssl_context_cache = None
def ssl_context():
"""
Returns the SSL context.
"""
global ssl_context_cache
if ssl_context_cache is None:
import ssl
import certifi
ssl_context_cache = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH, cafile=certifi.where())
return ssl_context_cache
class Downloader(object):
def __init__(self, url, dest):
@@ -56,7 +72,8 @@ init python:
try:
# Open the URL.
self.urlfile = urllib2.urlopen(url)
self.urlfile = urllib.request.urlopen(url, context=ssl_context())
t = threading.Thread(target=self.thread)
t.daemon = True
+10 -43
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -173,39 +173,6 @@ init 1 python in editor:
fei.append(e)
# Editra.
ED = _("A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input.")
EDL = _("A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython.")
if renpy.windows:
dlc = "editra-windows"
installed = os.path.exists(os.path.join(config.basedir, "editra/editra.exe"))
description = ED
error_message = None
elif renpy.macintosh:
dlc = "editra-mac"
installed = os.path.exists(os.path.join(config.basedir, "editra/Editra-mac.app"))
description = ED
error_message = None
else:
dlc = "editra-linux"
installed = os.path.exists(os.path.join(config.basedir, "editra/Editra"))
description = EDL
error_message = _("This may have occured because wxPython is not installed on this system.")
e = FancyEditorInfo(
1,
"Editra",
description,
dlc,
_("Up to 22 MB download required."),
error_message)
e.installed = e.installed and installed
fei.append(e)
# jEdit
fei.append(FancyEditorInfo(
2,
@@ -223,7 +190,7 @@ init 1 python in editor:
None))
for k in editors:
if k in [ "Atom", "Editra", "jEdit", "System Editor", "None" ]:
if k in [ "Atom", "jEdit", "System Editor", "None" ]:
continue
fei.append(FancyEditorInfo(
@@ -266,13 +233,13 @@ init 1 python in editor:
if i.name == persistent.editor:
if i.installed and i.name in editors:
ei = editors[i.name]
os.environ[b"RENPY_EDIT_PY"] = renpy.fsencode(os.path.abspath(ei.filename))
os.environ["RENPY_EDIT_PY"] = renpy.fsencode(os.path.abspath(ei.filename))
error_message = i.error_message
break
else:
persistent.editor = None
os.environ.pop(b"RENPY_EDIT_PY", None)
os.environ.pop("RENPY_EDIT_PY", None)
renpy.editor.init()
@@ -362,7 +329,7 @@ init 1 python in editor:
return True
fn = project.current.unelide_filename(self.filename)
return os.path.exists(fn)
return os.path.exists(renpy.fsencode(fn))
def __call__(self):
@@ -382,7 +349,7 @@ init 1 python in editor:
e.open(fn, line=self.line)
e.end()
except Exception, e:
except Exception as e:
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
@@ -410,7 +377,7 @@ init 1 python in editor:
if not self.check:
return True
return os.path.exists(self.filename)
return os.path.exists(renpy.fsencode(self.filename))
def __call__(self):
@@ -428,7 +395,7 @@ init 1 python in editor:
e.open(self.filename, line=self.line)
e.end()
except Exception, e:
except Exception as e:
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
@@ -466,7 +433,7 @@ init 1 python in editor:
e.end()
except Exception, e:
except Exception as e:
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
@@ -489,7 +456,7 @@ init 1 python in editor:
e.open_project(project.current.path)
e.end()
except Exception, e:
except Exception as e:
exception = traceback.format_exception_only(type(e), e)[-1][:-1]
renpy.invoke_in_new_context(interface.error, _("An exception occured while launching the text editor:\n[exception!q]"), error_message, exception=exception)
+8
View File
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
</dict>
</plist>
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,91 +0,0 @@
네이버 나눔글꼴의 지적 재산권은 NHN에 있습니다.
네이버 나눔글꼴은 개인 및 기업 사용자를 포함한 모든 사용자에게 무료로 제공되며
자유롭게 수정하고 재배포하실 수 있습니다.
단, 글꼴 자체를 유료로 판매하는 것은 금지하며, 네이버 나눔글꼴 라이선스 전문을 포함하기만 한다면
자유롭게 다른 소프트웨어에 번들하여 유료로 판매하거나 또는 재 배포하실 수도 있습니다.
네이버 나눔글꼴 라이선스 전문을 포함하기 어려울 경우,
나눔글꼴의 출처 표기를 부탁 드립니다. 예) 이 페이지에는 네이버에서 제공한 나눔글꼴이 적용되어 있습니다
네이버 나눔글꼴을 사용한 인쇄물, 광고물(온라인 포함)의 이미지는 나눔글꼴 프로모션을 위해 활용될 수 있습니다.
이를 원치 않는 사용자는 언제든지 당사에 요청하실 수 있습니다.
정확한 사용 조건은 아래 네이버 나눔글꼴 라이선스 전문을 참고하시기 바랍니다.
Copyright (c) 2010, NHN Corporation (http://www.nhncorp.com),
with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic, NanumMyeongjo,
Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen, Naver NanumPen
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
SIL OPEN FONT LICENSE
Version 1.1 - 26 February 2007
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects,
to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework
in which fonts may be shared and improved in partnership with others.
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold
by themselves.
The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided
that any reserved names are not used by derivative works.
The fonts and derivatives, however, cannot be released under any other type of license.
The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such.
This may include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting, or substituting ? in part or in whole ?
any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge,
embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,in Original or Modified Versions,
may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software,
provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files,
human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields
can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written
permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented
to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise
any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit
written permission.
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed
under any other license. The requirement for fonts to remain under this license does not apply to any document created using
the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT.
IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE
OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
Binary file not shown.
+14 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -23,6 +23,8 @@ define PROJECT_ADJUSTMENT = ui.adjustment()
init python:
import datetime
import os
import subprocess
@@ -195,8 +197,8 @@ screen front_page_project:
textbutton _("game") action OpenDirectory("game")
textbutton _("base") action OpenDirectory(".")
textbutton _("images") action OpenDirectory("game/images")
textbutton _("audio") action OpenDirectory("game/audio")
textbutton _("gui") action OpenDirectory("game/gui")
# textbutton _("save") action None style "l_list"
vbox:
if persistent.show_edit_funcs:
@@ -249,6 +251,7 @@ screen front_page_project:
textbutton _("Android") action Jump("android")
textbutton _("iOS") action Jump("ios")
textbutton _("Web") + " " + _("(Beta)") action Jump("web")
textbutton _("Generate Translations") action Jump("translate")
textbutton _("Extract Dialogue") action Jump("extract_dialogue")
@@ -259,7 +262,16 @@ label start:
show screen bottom_info
$ dmgcheck()
jump expression renpy.session.pop("launcher_start_label", "front_page")
default persistent.has_update = False
label front_page:
if persistent.daily_update_check and ((not persistent.last_update_check) or (datetime.date.today() > persistent.last_update_check)):
python hide:
persistent.last_update_check = datetime.date.today()
renpy.invoke_in_thread(fetch_update_channels)
call screen front_page
jump front_page
+33 -34
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -309,7 +309,8 @@ label change_gui:
project_name = project.current.name
mode = interface.choice(
_("{b}Warning{/b}\nContinuing will overwrite customized bar, button, save slot, scrollbar, and slider images.\n\nWhat would you like to do?"),
__("{b}Warning{/b}\nContinuing will overwrite customized bar, button, save slot, scrollbar, and slider images.\n\nWhat would you like to do?") +
__("{size=-4}\n\nThis will not overwrite gui/main_menu.png, gui/game_menu.png, and gui/window_icon.png, but will create files that do not exist.{/size}"),
[
("change", _("Choose new colors, then regenerate image files.")),
("regenerate", _("Regenerate the image files using the colors in gui.rpy.")),
@@ -327,25 +328,6 @@ label new_gui_project:
python:
gui_new = True
project_name = interface.input(
_("PROJECT NAME"),
_("Please enter the name of your project:"),
filename=True,
cancel=Jump("front_page"))
project_name = project_name.strip()
if not project_name:
interface.error(_("The project name may not be empty."))
project_dir = os.path.join(persistent.projects_directory, project_name)
if project.manager.get(project_name) is not None:
interface.error(_("[project_name!q] already exists. Please choose a different project name."), project_name=project_name)
if os.path.exists(project_dir):
interface.error(_("[project_dir!q] already exists. Please choose a different project name."), project_dir=project_dir)
gui_replace_images = True
gui_replace_code = True
gui_update_code = True
@@ -369,20 +351,37 @@ label gui_project_size:
if gui_size == "custom":
gui_width = ""
while True:
gui_width = interface.input(
_("WIDTH"),
_("Please enter the width of your game, in pixels."),
cancel=Jump("front_page"),
allow=interface.DIGITS_LETTERS,
)
gui_width = interface.input(_("WIDTH"), _("Please enter the width of your game, in pixels."), cancel=Jump("front_page"))
try:
gui_width = int(gui_width)
except:
interface.error(_("The width must be a number."), label=None)
continue
break
try:
gui_width = int(gui_width)
except:
interface.error(_("The width must be a number."))
gui_height = ""
while True:
gui_height = interface.input(
_("HEIGHT"),
_("Please enter the height of your game, in pixels."),
cancel=Jump("front_page"),
allow=interface.DIGITS_LETTERS,
)
gui_height = interface.input(_("HEIGHT"), _("Please enter the height of your game, in pixels."), cancel=Jump("front_page"))
try:
gui_height = int(gui_height)
except:
interface.error(_("The height must be a number."))
try:
gui_height = int(gui_height)
except:
interface.error(_("The height must be a number."), label=None)
continue
break
gui_size = (gui_width, gui_height)
@@ -428,11 +427,11 @@ label gui_project_common:
else:
interface.processing(_("Updating the project..."))
with interface.error_handling("creating a new project"):
with interface.error_handling(_("creating a new project")):
gui7.generate_gui(p)
# Activate the project.
with interface.error_handling("activating the new project"):
with interface.error_handling(_("activating the new project")):
project.manager.scan()
project.Select(project.manager.get(project_name))()
+6 -4
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -36,10 +36,12 @@ def generate_gui(p):
CodeGenerator(p).copy_script("script.rpy")
CodeGenerator(p).copy_files()
images = os.path.join(p.prefix, "images")
for dn in [ "images", "audio" ]:
if not os.path.exists(images):
os.mkdir(images)
fulldn = os.path.join(p.prefix, dn)
if not os.path.exists(fulldn):
os.mkdir(fulldn)
def generate_gui_command():
+7 -4
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -280,8 +280,8 @@ class CodeGenerator(object):
for l in self.lines:
l = re.sub(ur'_\((\".*?\")\)', replace, l)
l = re.sub(ur'_\((\'.*?\')\)', replace, l)
l = re.sub(r'_\((\".*?\")\)', replace, l)
l = re.sub(r'_\((\'.*?\')\)', replace, l)
lines.append(l)
@@ -323,6 +323,9 @@ class CodeGenerator(object):
m = re.match(r'## ?([ *]*)(.*)', s)
if m is None:
raise Exception("Comment translation doesn't start with '## ': {}".format(s))
prefix = m.group(1)
empty = ' ' * len(prefix)
rest = m.group(2)
@@ -372,7 +375,7 @@ class CodeGenerator(object):
if os.path.exists(dst):
return
language = renpy.store._preferences.language # @UndefinedVariable
language = renpy.store._preferences.language # @UndefinedVariable
if language is None:
language = "None"
+5 -12
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -25,6 +25,7 @@ import os
from renpy.store import config
import renpy.display
class ImageGenerator(object):
def __init__(self, parameters):
@@ -199,7 +200,6 @@ class ImageGenerator(object):
self.generate_image("textbox", X, Y, self.boring_color.opacity(.8))
YSIZE = 240
YBORDER = 5
@@ -237,7 +237,6 @@ class ImageGenerator(object):
(YSIZE, 1.0),
]
self.generate_image("nvl", X, Y, self.boring_color.opacity(.8))
X = [
@@ -252,8 +251,6 @@ class ImageGenerator(object):
self.generate_image("phone/nvl", X, Y, self.boring_color.opacity(.8))
def generate_choice_button(self):
XSIZE = 790
XINSIDE = 100
@@ -277,6 +274,8 @@ class ImageGenerator(object):
self.generate_image("button/choice_idle_background", X, Y, self.boring_color.opacity(.8))
self.generate_image("button/choice_hover_background", X, Y, self.accent_color.opacity(.95))
self.generate_image("phone/button/choice_idle_background", X, Y, self.boring_color.opacity(.8))
self.generate_image("phone/button/choice_hover_background", X, Y, self.accent_color.opacity(.95))
def generate_overlay(self):
@@ -288,7 +287,6 @@ class ImageGenerator(object):
line_width = self.scale_int(3)
if self.p.light:
opacity = 0.9
else:
@@ -332,7 +330,6 @@ class ImageGenerator(object):
s.subsurface((border, border, width - 2 * border, height - 2 * border)).fill(self.boring_color)
self.save(s, "frame")
def generate_quick_buttons(self):
width = self.scale_int(100)
height = self.scale_int(30)
@@ -379,7 +376,6 @@ class ImageGenerator(object):
self.generate_image("notify", X, Y, self.boring_color.opacity(.8))
def generate_icon(self):
icon_fn = os.path.join(config.renpy_base, "launcher", "game", "gui7", "icon.png")
@@ -406,7 +402,6 @@ class ImageGenerator(object):
self.save(surf, "window_icon", overwrite=False)
def generate_menus(self):
s = self.make_surface(self.width, self.height)
s.fill(self.menu_color)
@@ -414,7 +409,6 @@ class ImageGenerator(object):
self.save(s, "main_menu", overwrite=False)
self.save(s, "game_menu", overwrite=False)
def generate_all(self):
self.generate_textbox()
self.generate_choice_button()
@@ -427,6 +421,7 @@ class ImageGenerator(object):
self.generate_menus()
self.generate_icon()
if __name__ == "__main__":
import argparse
@@ -439,5 +434,3 @@ if __name__ == "__main__":
args = ap.parse_args()
ImageGenerator(args.prefix, args.width, args.height).generate_all()
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 687 B

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

+189
View File
@@ -0,0 +1,189 @@
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
import fnmatch
import re
import zipfile
def install_from_zip(name, zipglob, patterns):
# Determine the filename matching the zipglob, and put it into filename.
filenames = [ i for i in os.listdir(config.renpy_base) if fnmatch.fnmatch(i.lower(), zipglob.lower()) ]
if not filenames:
interface.error(
_("Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."),
label="install",
name=name,
zipglob=zipglob,
)
filenames.sort(key=lambda a : a.lower())
filename = filenames[-1]
# The zipfile.
zf = zipfile.ZipFile(os.path.join(config.renpy_base, filename))
for fn in zf.namelist():
matchfn = fn.replace("\\", "/")
dstfn = None
renpy.write_log(fn)
for src, dst in patterns:
if re.match(src, matchfn):
dstfn = re.sub(src, dst, matchfn)
break
if not dstfn:
continue
dstfn = os.path.join(config.renpy_base, dstfn)
if not os.path.exists(os.path.dirname(dstfn)):
try:
os.makedirs(os.path.dirname(dstfn))
except:
pass
renpy.write_log(fn + " -> " + dstfn)
data = zf.read(fn)
with open(dstfn, "wb") as f:
f.write(data)
try:
os.chmod(dstfn, 0o755)
except:
pass
interface.info(_("Successfully installed [name!t]."), name=name)
label install_live2d:
python hide:
patterns = [
(r".*/Core/dll/linux/x86_64/(libLive2DCubismCore.so)", r"lib/linux-x86_64/\1"),
(r".*/Core/dll/windows/x86_64/(Live2DCubismCore.dll)", r"lib/windows-x86_64/\1"),
(r".*/Core/dll/windows/x86/(Live2DCubismCore.dll)", r"lib/windows-i686/\1"),
(r".*/Core/dll/macos/(libLive2DCubismCore.dylib)", r"lib/mac-x86_64/\1"),
(r".*/Core/dll/experimental/rpi/(libLive2DCubismCore.so)", r"lib/linux-armv7l/\1"),
(r".*/Core/dll/android/(armeabi-v7a/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
(r".*/Core/dll/android/(arm64-v8a/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
# This doesn't exist yet.
# (r".*/Core/dll/android/(x86_64/libLive2DCubismCore.so)", r"rapt/prototype/renpyandroid/src/main/jniLibs/\1"),
]
install_from_zip("Live2D Cubism SDK for Native", "CubismSdkForNative-4-*.zip", patterns)
jump front_page
screen install():
frame:
style_group "l"
style "l_root"
window:
has vbox
label _("Install Libraries")
add HALF_SPACER
hbox:
frame:
style "l_indent"
xfill True
viewport:
scrollbars "vertical"
mousewheel True
has vbox
text _("This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed.")
add HALF_SPACER
add SPACER
textbutton _("Install Live2D Cubism SDK for Native"):
action Jump("install_live2d")
add HALF_SPACER
frame:
style "l_indent"
has vbox
text _("The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc.")
add SPACER
text _("Live2D in Ren'Py doesn't support the Web, Android x86_64 (including emulators and Chrome OS), and must be added to iOS projects manually. Live2D must be reinstalled after upgrading Ren'Py or installing Android support.")
add SPACER
if not achievement.has_steam:
textbutton _("Install Steam Support"):
action Jump("install_steam")
add HALF_SPACER
frame:
style "l_indent"
has vbox
text _("Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}.")
else:
textbutton _("Install Steam Support")
add HALF_SPACER
frame:
style "l_indent"
has vbox
text _("Steam support has already been installed.")
textbutton _("Cancel") action Return(False) style "l_left_button"
textbutton _("Open Ren'Py SDK Directory") action OpenDirectory(config.renpy_base, absolute=True) style "l_right_button"
timer 2.0 action renpy.restart_interaction repeat True
label install:
call screen install
jump preferences
label install_steam:
$ add_dlc("steam", restart=True)
jump install
+39 -12
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -126,7 +126,10 @@ screen bottom_info:
xalign 1.0
if ability.can_update:
textbutton _("update") action Jump("update") style "l_link"
textbutton _("update") action Jump("update") style "l_link":
if persistent.has_update:
text_color "#F96854"
text_hover_color Color("#F96854").tint(.8)
textbutton _("preferences") style "l_link" action Jump("preferences")
textbutton _("quit") style "l_link" action Quit(confirm=False)
@@ -251,7 +254,13 @@ screen launcher_input:
add SPACER
input style "l_default" value ScreenVariableInputValue("value", returnable=True) size 24 xalign 0.5 color INPUT_COLOR
input style "l_default":
value ScreenVariableInputValue("value", returnable=True)
size 24
xalign 0.5
color INPUT_COLOR
allow allow
copypaste True
if filename:
add SPACER
@@ -376,15 +385,28 @@ init python in interface:
As an example of usage::
with interface.error_handling("opening the log file"):
with interface.error_handling(_("opening the log file")):
f = open("log.txt", "w")
"""
store._ignore_action = Jump(label)
yield
store._ignore_action = Jump("front_page")
try:
yield
except Exception as e:
renpy.renpy.error.report_exception(e, editor=False)
def input(title, message, filename=False, sanitize=True, cancel=None, default=""):
error(_("While [what!qt], an error occured:"),
_("[exception!q]"),
what=what,
label=label,
exception=traceback.format_exception_only(type(e), e)[-1][:-1])
import string
DIGITS_LETTERS = string.digits
PROJECT_LETTERS = string.digits + string.ascii_letters + " _"
FILENAME_LETTERS = PROJECT_LETTERS + "\\/"
TRANSLATE_LETTERS = string.ascii_letters + string.digits + "_"
def input(title, message, filename=False, sanitize=True, cancel=None, allow=None, default=""):
"""
Requests typewritten input from the user.
"""
@@ -393,7 +415,15 @@ init python in interface:
while True:
rv = renpy.call_screen("launcher_input", title=title, message=message, filename=filename, cancel=cancel, default=rv)
rv = renpy.call_screen(
"launcher_input",
title=title,
message=message,
filename=filename or (allow in [PROJECT_LETTERS, FILENAME_LETTERS]),
allow=allow,
cancel=cancel,
default=rv
)
if sanitize:
if ("[" in rv) or ("{" in rv):
@@ -507,6 +537,3 @@ init python in interface:
"""
return common(_("CHOICE"), store.QUESTION_COLOR, message, choices=choices, selected=selected, **kwargs)
+72 -28
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -58,6 +58,7 @@ init python:
if RENIOS_PATH:
import renios.create
import renios.image
def IOSState():
if not RENIOS_PATH:
@@ -104,12 +105,15 @@ init python:
xcode_name_cache[s] = s
return s
def xcode_project(p=None):
def xcode_project(p=None, target=None):
"""
Return the path to the Xcode project corresponding to `p`, or the current
project if `p` is None
"""
if target is not None:
return target
if p is None:
p = project.current
@@ -118,12 +122,22 @@ init python:
return os.path.join(persistent.xcode_projects_directory, xcode_name(p.name))
def ios_create(p=None, gui=True):
def ios_create(p=None, gui=True, target=None):
project.current.update_dump(force=True, gui=gui)
dest = xcode_project(p)
name = project.current.dump.get("name", None)
version = project.current.dump.get("version", None)
dest = xcode_project(p, target)
if gui:
iface = MobileInterface("ios")
else:
iface = rapt.interface.Interface()
if os.path.exists(dest):
interface.yesno(_("The Xcode project already exists. Would you like to rename the old project, and replace it with a new one?"), no=Jump("ios"))
if not iface.yesno(_("The Xcode project already exists. Would you like to rename the old project, and replace it with a new one?")):
return
i = 0
while True:
@@ -134,12 +148,11 @@ init python:
os.rename(dest, backup)
iface = MobileInterface("ios")
renios.create.create_project(iface, dest)
renios.create.create_project(iface, dest, name, version)
ios_populate(p, gui=gui)
ios_populate(p, gui=gui, target=target)
def ios_populate(p=None, gui=True):
def ios_populate(p=None, gui=True, target=None):
"""
This actually builds the package.
"""
@@ -149,7 +162,7 @@ init python:
if p is None:
p = project.current
dist = os.path.join(xcode_project(p), "base")
dist = os.path.join(xcode_project(p, target), "base")
if os.path.exists(dist):
shutil.rmtree(dist)
@@ -187,11 +200,20 @@ init python:
os.unlink(py_fn)
ios_image(p, "ios-icon.png", "Media.xcassets/AppIcon.appiconset", True, target)
# ios_image(p, "ios-launchimage.png", "Media.xcassets/LaunchImage.launchimage", False, target)
def ios_image(p, source, destination, scale, target):
source = os.path.join(p.path, source)
destination = os.path.join(xcode_project(p, target), destination)
renios.image.generate(source, destination, scale)
def launch_xcode():
dist = xcode_project(None)
base = os.path.basename(dist)
xcodeproj = "{}/{}.xcodeproj".format(dist, base)
name = project.current.dump.get("name", None)
xcodeproj = "{}/{}.xcodeproj".format(dist, name)
subprocess.call([ 'open', renpy.fsencode(xcodeproj) ])
@@ -278,22 +300,6 @@ screen ios:
action IOSIfState(state, IOS_OK, launch_xcode)
hovered tt.Action(IOS_XCODE_TEXT)
# textbutton _("Configure"):
# action AndroidIfState(state, ANDROID_NO_CONFIG, Jump("android_configure"))
# hovered tt.Action(CONFIGURE_TEXT)
#
# textbutton _("Build Package"):
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build"))
# hovered tt.Action(BUILD_TEXT)
#
# textbutton _("Build & Install"):
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_and_install"))
# hovered tt.Action(BUILD_AND_INSTALL_TEXT)
#
# textbutton _("Build, Install & Launch"):
# action AndroidIfState(state, ANDROID_OK, AndroidBuild("android_build_install_and_launch"))
# hovered tt.Action(BUILD_INSTALL_AND_LAUNCH_TEXT)
add SPACER
add SEPARATOR2
@@ -330,6 +336,10 @@ screen ios:
add SPACER
text _("There are known issues with the iOS simulator on Apple Silicon. Please test on x86_64 or iOS devices.")
add SPACER
if tt.value:
text tt.value
else:
@@ -372,3 +382,37 @@ label update_xcode_project:
$ ios_populate(None, True)
jump ios
init python:
def ios_create_command():
ap = renpy.arguments.ArgumentParser()
ap.add_argument("project", help="The path to the Ren'Py project.")
ap.add_argument("destination", help="The path the iOS project that will be created.")
args = ap.parse_args()
p = project.Project(args.project)
ios_create(p, False, args.destination)
return False
renpy.arguments.register_command("ios_create", ios_create_command)
def ios_populate_command():
ap = renpy.arguments.ArgumentParser()
ap.add_argument("project", help="The path to the Ren'Py project.")
ap.add_argument("destination", help="The path the iOS project that will be created.")
args = ap.parse_args()
p = project.Project(args.project)
ios_populate(p, False, args.destination)
return False
renpy.arguments.register_command("ios_populate", ios_populate_command)
+49 -15
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -23,23 +23,57 @@ init python:
def find_itch_butler():
import os
if renpy.windows:
rv = os.path.join(os.environ.get("APPDATA", ""), "Roaming", "itch", "bin", "butler.exe")
if not os.path.exists(rv):
rv = os.path.join(os.environ.get("APPDATA", ""), "itch", "bin", "butler.exe")
platform = "windows-amd64"
exe = "butler.exe"
elif renpy.macintosh:
rv = os.path.join(os.environ.get("HOME", ""), "Library", "Application Support", "itch", "bin", "butler")
platform = "darwin-amd64"
exe = "butler"
else:
rv = os.path.join(os.environ.get("HOME", ""), ".config", "itch", "bin", "butler")
platform = "linux-amd64"
exe = "butler"
if not os.path.exists(rv):
return None
dn = os.path.join(config.renpy_base, "tmp", "butler-" + platform)
zip = os.path.join(dn, "butler.zip")
exe = os.path.join(dn, exe)
if os.path.exists(exe):
return exe
interface.processing(_("Downloading the itch.io butler."))
try:
os.makedirs(dn)
except:
pass
import urllib2
with interface.error_handling(_("Downloading the itch.io butler.")):
url = "https://broth.itch.ovh/butler/{}/LATEST/archive/default".format(platform)
req = urllib2.Request(url, headers={'User-Agent' : "Renpy"})
response = urllib2.urlopen(req, context=ssl_context())
with open(zip, "wb") as f:
while True:
data = response.read(1024 * 1024)
if not data:
break
f.write(data)
import zipfile
with zipfile.ZipFile(zip) as zf:
zf.extractall(dn)
try:
os.chmod(exe, 0o755)
except:
pass
return exe
return rv
label itch:
@@ -48,6 +82,8 @@ label itch:
python hide:
butler = find_itch_butler()
build = project.current.dump["build"]
destination = build["destination"]
@@ -100,8 +136,6 @@ label itch:
label="build_distributions"
)
butler = find_itch_butler()
if not butler:
interface.error(
_("The butler program was not found."),
+55
View File
@@ -0,0 +1,55 @@
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python hide:
import os
macapp = os.path.join(config.renpy_base, "renpy.app/Contents/MacOS")
maclib = os.path.join(config.renpy_base, "lib/mac-x86_64")
if os.path.exists(maclib):
for fn in os.listdir(maclib):
try:
fn = os.path.join(maclib, fn)
if fn.endswith(".macho"):
nfn = fn.rpartition(".")[0]
with open(fn, "rb") as f:
f.read(5)
data = f.read()
with open(nfn, "wb") as f:
f.write(data)
os.chmod(nfn, 0o755)
os.unlink(fn)
except:
pass
macpython = os.path.join(maclib, "python")
if sys.executable.startswith(macapp) and os.path.exists(macpython):
sys.executable = macpython
+10 -7
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -84,13 +84,14 @@ init -1 python:
self.info_msg = ""
with open(self.filename, "w"):
with open(self.filename, "w") as f:
f.write(renpy.version() + "\n")
pass
def log(self, msg):
with open(self.filename, "a") as f:
f.write("\n")
f.write(msg)
f.write(unicode(msg))
f.write("\n")
def info(self, prompt):
@@ -169,7 +170,7 @@ init -1 python:
self.cmd = cmd
f = open(self.filename, "a")
f = open(self.filename, "ab")
f.write("\n\n\n")
@@ -189,11 +190,12 @@ init -1 python:
interface.processing(self.info_msg, show_screen=True, cancel=cancel_action)
kwargs = { }
if yes:
kwargs["stdin"] = subprocess.PIPE
try:
self.process = subprocess.Popen(cmd, cwd=renpy.fsencode(RAPT_PATH), stdout=f, stderr=f, startupinfo=startupinfo, **kwargs)
self.process = subprocess.Popen(cmd, cwd=renpy.fsencode(RAPT_PATH), stdout=f, stderr=f, stdin=subprocess.PIPE, startupinfo=startupinfo, **kwargs)
# avoid SIGTTIN caused by e.g. gradle doing empty read on terminal stdin
if not yes:
self.process.stdin.close()
except:
import traceback
traceback.print_exc(file=f)
@@ -214,6 +216,7 @@ init -1 python:
if yes and self.yes_thread:
self.run_yes = False
self.yes_thread.join()
self.process.stdin.close()
self.process = None
self.yes_thread = None
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+42 -37
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -62,28 +62,52 @@ label new_project:
if persistent.projects_directory is None:
$ interface.error(_("The projects directory could not be set. Giving up."))
if not persistent.legacy:
python:
if persistent.legacy:
python:
check_language_support()
gui_kind = interface.choice(
_("Which interface would you like to use? The new GUI has a modern look, supports wide screens and mobile devices, and is easier to customize. Legacy themes might be necessary to work with older example code.\n\n[language_support!t]\n\nIf in doubt, choose the new GUI, then click Continue on the bottom-right."),
[ ( 'new_gui_project', _("New GUI Interface") ), ( 'new_theme_project', _("Legacy Theme Interface")) ],
"new_gui_project",
cancel=Jump("front_page"),
)
else:
new_project_language = (_preferences.language or "english").title()
gui_kind = "new_gui_project"
# When translating this, feel free to replace [new_project_language] with the translation of your language.
$ interface.info(_("You will be creating an [new_project_language] language project. Change the launcher language in preferences to create a project in another language."))
jump new_gui_project
# When translating this, feel free to replace [new_project_language] with the translation of your language.
interface.info(_("You will be creating an [new_project_language]{#this substitution may be localized} language project. Change the launcher language in preferences to create a project in another language."))
python:
check_language_support()
gui_kind = interface.choice(
_("Which interface would you like to use? The new GUI has a modern look, supports wide screens and mobile devices, and is easier to customize. Legacy themes might be necessary to work with older example code.\n\n[language_support!t]\n\nIf in doubt, choose the new GUI, then click Continue on the bottom-right."),
[ ( 'new_gui_project', _("New GUI Interface") ), ( 'new_theme_project', _("Legacy Theme Interface")) ],
"new_gui_project",
cancel=Jump("front_page"),
project_name = ""
while True:
project_name = interface.input(
_("PROJECT NAME"),
_("Please enter the name of your project:"),
allow=interface.PROJECT_LETTERS,
cancel=Jump("front_page"),
default=project_name,
)
renpy.jump(gui_kind)
project_name = project_name.strip()
if not project_name:
interface.error(_("The project name may not be empty."), label=None)
continue
project_dir = os.path.join(persistent.projects_directory, project_name)
if project.manager.get(project_name) is not None:
interface.error(_("[project_name!q] already exists. Please choose a different project name."), project_name=project_name, label=None)
continue
if os.path.exists(project_dir):
interface.error(_("[project_dir!q] already exists. Please choose a different project name."), project_dir=project_dir, label=None)
continue
break
jump expression gui_kind
screen select_template:
@@ -125,25 +149,6 @@ screen select_template:
label new_theme_project:
python hide:
project_name = interface.input(
_("PROJECT NAME"),
_("Please enter the name of your project:"),
filename=True,
cancel=Jump("front_page"))
project_name = project_name.strip()
if not project_name:
interface.error(_("The project name may not be empty."))
project_dir = os.path.join(persistent.projects_directory, project_name)
if project.manager.get(project_name) is not None:
interface.error(_("[project_name!q] already exists. Please choose a different project name."), project_name=project_name)
if os.path.exists(project_dir):
interface.error(_("[project_dir!q] already exists. Please choose a different project name."), project_dir=project_dir)
if len(project.manager.templates) == 1:
template = project.manager.templates[0]
else:
@@ -151,7 +156,7 @@ label new_theme_project:
template_path = template.path
with interface.error_handling("creating a new project"):
with interface.error_handling(_("creating a new project")):
shutil.copytree(template_path, project_dir, symlinks=False)
# Delete the tmp directory, if it exists.
@@ -179,7 +184,7 @@ label new_theme_project:
shutil.copy(src, dst)
# Activate the project.
with interface.error_handling("activating the new project"):
with interface.error_handling(_("activating the new project")):
project.manager.scan()
project.Select(project.manager.get(project_name))()
+19 -23
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -183,9 +183,7 @@ init -1 python hide:
config.sound = False
config.quit_action = Quit(confirm=False)
config.gl_resize = False
config.window_icon = "images/logo.png"
config.windows_icon = "images/logo32.png"
config.has_autosave = False
config.log_enable = False
config.mouse_hide_time = None
@@ -248,8 +246,8 @@ init python:
# Mac signing options.
import os
build.mac_identity = os.environ.get("RENPY_MAC_IDENTITY", None)
build.mac_codesign_command = [ "/home/tom/ab/renpy-deps/mac/mac_sign_client.sh", "{identity}", "{app}" ]
build.mac_create_dmg_command = [ "/home/tom/ab/renpy-deps/mac/mac_dmg_client.sh", "{identity}", "{volname}", "{sourcedir}", "{dmg}" ]
build.mac_codesign_command = [ config.renpy_base + "/scripts/mac/mac_sign_client.sh", "{identity}", "{app}" ]
build.mac_create_dmg_command = [ config.renpy_base + "/scripts/mac/mac_dmg_client.sh", "{identity}", "{volname}", "{sourcedir}", "{dmg}" ]
build.mac_codesign_dmg_command = [ "/bin/true" ]
@@ -285,7 +283,9 @@ init python:
except:
pass
build.classify_renpy("rapt/**/libLive2DCubismCore.so", None)
build.classify_renpy("rapt/**", "rapt")
build.executable("rapt/prototype/gradlew")
build.classify_renpy("renios/prototype/base/", None)
build.classify_renpy("renios/prototype/prototype.xcodeproj/*.xcworkspace/", None)
@@ -296,6 +296,9 @@ init python:
build.classify_renpy("renios/version.txt", "renios")
build.classify_renpy("renios/", "renios")
build.classify_renpy("web/game.zip", None)
build.classify_renpy("web/**", "web")
build.classify_renpy("**.old", None)
build.classify_renpy("**.new", None)
build.classify_renpy("**.bak", None)
@@ -304,6 +307,7 @@ init python:
build.classify_renpy("**/log.txt", None)
build.classify_renpy("**/traceback.txt", None)
build.classify_renpy("**/errors.txt", None)
build.classify_renpy("**/steam_appid.txt", None)
build.classify_renpy("**/saves/", None)
build.classify_renpy("**/tmp/", None)
build.classify_renpy("**/.Editra", None)
@@ -366,12 +370,12 @@ init python:
build.classify_renpy("module/pysdlsound/", "source")
build.classify_renpy("module/pysdlsound/*.py", "source")
build.classify_renpy("module/pysdlsound/*.pyx", "source")
build.classify_renpy("module/fribidi-src/**", "source")
# all-platforms binary.
build.classify_renpy("lib/**/_renpysteam*", None)
build.classify_renpy("lib/**/*steam_api*", None)
build.classify_renpy("lib/*/renpy", None)
build.classify_renpy("lib/*/renpy.exe", None)
build.classify_renpy("lib/**/_renpysteam*", "steam")
build.classify_renpy("lib/**/*steam_api*", "steam")
build.classify_renpy("lib/**/*Live2D*", None)
build.classify_renpy("lib/linux-armv7l/", "raspi")
build.classify_renpy("lib/linux-armv7l/**", "raspi")
build.classify_renpy("lib/**", "binary")
@@ -381,35 +385,23 @@ init python:
# jedit rules.
build.classify_renpy("jedit/**", "jedit")
# editra rules.
build.classify_renpy("editra/", "editra-all")
build.classify_renpy("editra/Editra.edit.py", "editra-all")
build.classify_renpy("editra/Editra/**", "editra-linux editra-windows")
build.classify_renpy("editra/Editra-mac.app/**", "editra-mac")
build.classify_renpy("editra/lib/**", "editra-windows")
build.classify_renpy("editra/editra.exe", "editra-windows")
build.executable("editra/Editra/Editra")
# Packages.
build.packages = [ ]
build.package("sdk", "zip tar.bz2 dmg", "source binary")
build.package("source", "tar.bz2", "source source_only", update=False)
build.package("raspi", "tar.bz2", "raspi", dlc=True, update=False)
build.package("steam", "zip", "steam", dlc=True)
build.package("jedit", "zip", "jedit", dlc=True)
build.package("editra-linux", "tar.bz2", "editra-all editra-linux", dlc=True)
build.package("editra-mac", "zip", "editra-all editra-mac", dlc=True)
build.package("editra-windows", "zip", "editra-all editra-windows", dlc=True)
build.package("atom-linux", "tar.bz2", "atom-all atom-linux", dlc=True)
build.package("atom-mac", "zip", "atom-all atom-mac", dlc=True)
build.package("atom-windows", "zip", "atom-all atom-windows", dlc=True)
build.package("rapt", "zip", "rapt", dlc=True)
build.package("renios", "zip", "renios", dlc=True)
build.package("web", "zip", "web", dlc=True)
# Enable the special launcher translation mode.
@@ -417,3 +409,7 @@ define config.translate_launcher = True
# Reduce the rate of screen updates.
default preferences.gl_powersave = True
# Disable steam.
python early:
config.enable_steam = False
+42 -22
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -28,14 +28,22 @@ init python in distribute:
import struct
import stat
import shutil
import sys
import threading
from renpy import six
from zipfile import crc32
# Since the long type doesn't exist on py3, define it here
if six.PY3:
long = int
zlib.Z_DEFAULT_COMPRESSION = 5
class ZipFile(zipfile.ZipFile):
def write_with_info(self, zinfo, filename):
"""Put the bytes from filename into the archive under the name
arcname."""
@@ -66,8 +74,13 @@ init python in distribute:
# Must overwrite CRC and sizes with correct data later
zinfo.CRC = CRC = 0
zinfo.compress_size = compress_size = 0
zinfo.file_size = file_size = 0
self.fp.write(zinfo.FileHeader())
file_size = 0
zip64 = self._allowZip64 and \
zinfo.file_size * 1.05 > zipfile.ZIP64_LIMIT
self.fp.write(zinfo.FileHeader(zip64))
if zinfo.compress_type == zipfile.ZIP_DEFLATED:
cmpr = zlib.compressobj(zlib.Z_DEFAULT_COMPRESSION,
zlib.DEFLATED, -15)
@@ -92,11 +105,19 @@ init python in distribute:
zinfo.compress_size = file_size
zinfo.CRC = CRC
zinfo.file_size = file_size
if not zip64 and self._allowZip64:
if file_size > zipfile.ZIP64_LIMIT:
raise RuntimeError('File size has increased during compressing')
if compress_size > zipfile.ZIP64_LIMIT:
raise RuntimeError('Compressed size larger than uncompressed size')
# Seek backwards and write CRC and file sizes
position = self.fp.tell() # Preserve current position in file
self.fp.seek(zinfo.header_offset + 14, 0)
self.fp.write(struct.pack("<LLL", zinfo.CRC, zinfo.compress_size,
zinfo.file_size))
self.fp.seek(zinfo.header_offset, 0)
self.fp.write(zinfo.FileHeader(zip64))
self.fp.seek(position, 0)
self.filelist.append(zinfo)
self.NameToInfo[zinfo.filename] = zinfo
@@ -142,9 +163,9 @@ init python in distribute:
zi.create_system = 3
if xbit:
zi.external_attr = long(0100755) << 16
zi.external_attr = long(0o100755) << 16
else:
zi.external_attr = long(0100644) << 16
zi.external_attr = long(0o100644) << 16
self.zipfile.write_with_info(zi, path)
@@ -156,7 +177,7 @@ init python in distribute:
zi.date_time = self.get_date_time(path)
zi.compress_type = zipfile.ZIP_STORED
zi.create_system = 3
zi.external_attr = (long(0040755) << 16) | 0x10
zi.external_attr = (long(0o040755) << 16) | 0x10
self.zipfile.write_with_info(zi, path)
@@ -187,9 +208,9 @@ init python in distribute:
info.type = tarfile.DIRTYPE
if xbit:
info.mode = 0755
info.mode = 0o755
else:
info.mode = 0644
info.mode = 0o644
info.uid = 1000
info.gid = 1000
@@ -253,10 +274,14 @@ init python in distribute:
def mkdir(self, path):
if not os.path.isdir(path):
os.mkdir(path, 0755)
os.makedirs(path, 0o755)
def __init__(self, path):
self.path = path
if os.path.isdir(path):
shutil.rmtree(path)
self.mkdir(path)
def add_file(self, name, path, xbit):
@@ -264,14 +289,13 @@ init python in distribute:
# If this is not a directory, ensure all parent directories
# have been created
if not os.path.isdir(os.path.dirname(fn)):
os.makedirs(os.path.dirname(fn), 0755)
shutil.copy2(path, fn)
self.mkdir(os.path.dirname(fn))
shutil.copy(path, fn)
if xbit:
os.chmod(fn, 0755)
os.chmod(fn, 0o755)
else:
os.chmod(fn, 0644)
os.chmod(fn, 0o644)
def add_directory(self, name, path):
fn = os.path.join(self.path, name)
@@ -376,14 +400,10 @@ init python in distribute:
break
t += 1
print(t, " ".join(sorted([ i.what for i in alive ])))
print("\r " + str(t) + " " + " ".join(sorted([ i.what for i in alive ])))
time.sleep(1)
for i in parallel_threads:
if i.done:
i.done()
+733 -899
View File
File diff suppressed because it is too large Load Diff
+37 -37
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -20,11 +20,6 @@
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
init python:
if persistent.gl_enable is None:
persistent.gl_enable = True
config.gl_enable = persistent.gl_enable
if persistent.show_edit_funcs is None:
persistent.show_edit_funcs = True
@@ -41,7 +36,12 @@ init python:
rv = [ ( "English", None) ]
for i in languages:
rv.append((i.replace("_", " ").title(), i))
rv.append((i.title(), i))
for i in (("Schinese", "schinese"), ("Tchinese", "tchinese")):
if i in rv:
rv.remove(i)
rv.append(({"schinese": "Simplified Chinese", "tchinese": "Traditional Chinese"}.get(i[1]), i[1]))
rv.sort()
@@ -53,9 +53,15 @@ init python:
show_legacy = os.path.exists(os.path.join(config.renpy_base, "templates", "english", "game", "script.rpy"))
class RestartAtPreferences(Action):
def __call__(self):
renpy.session["launcher_start_label"] = "preferences"
renpy.utter_restart()
default persistent.legacy = False
default persistent.force_new_tutorial = False
default persistent.sponsor_message = True
default persistent.daily_update_check = False
screen preferences:
@@ -129,22 +135,21 @@ screen preferences:
add SPACER
if ability.can_update:
add SEPARATOR2
# Update URL selection.
add SEPARATOR2
frame:
style "l_indent"
yminimum 75
has vbox
frame:
style "l_indent"
yminimum 75
has vbox
text _("Actions:")
text _("Update Channel:")
add HALF_SPACER
add HALF_SPACER
textbutton _("Install libraries") style "l_nonbox" action Jump("install")
textbutton _("Open launcher project") style "l_nonbox" action [ project.Select("launcher"), Jump("front_page") ]
textbutton _("Reset window size") style "l_nonbox" action Preference("display", 1.0)
frame style "l_indent":
textbutton persistent.update_channel action Jump("update_preference")
frame:
style "l_indent"
@@ -178,7 +183,6 @@ screen preferences:
add HALF_SPACER
textbutton _("Hardware rendering") style "l_checkbox" action ToggleField(persistent, "gl_enable")
textbutton _("Show edit file section") style "l_checkbox" action ToggleField(persistent, "show_edit_funcs")
textbutton _("Large fonts") style "l_checkbox" action [ ToggleField(persistent, "large_print"), renpy.utter_restart ]
@@ -198,29 +202,25 @@ screen preferences:
textbutton _("Sponsor message") style "l_checkbox" action ToggleField(persistent, "sponsor_message")
frame:
style "l_indent"
xmaximum ONETHIRD
xfill True
has vbox
add SEPARATOR2
frame:
style "l_indent"
yminimum 75
has vbox
text _("Actions:")
if ability.can_update:
textbutton _("Daily check for update") style "l_checkbox" action [ToggleField(persistent, "daily_update_check"), SetField(persistent, "last_update_check", None)] selected persistent.daily_update_check
add HALF_SPACER
textbutton _("Open launcher project") style "l_nonbox" action [ project.Select("launcher"), Jump("front_page") ]
textbutton _("Default theme") style "l_checkbox" action [SetField(persistent, "theme", None), RestartAtPreferences() ]
# textbutton _("Clear theme") style "l_checkbox" action [SetField(persistent, "theme", "clear", None), RestartAtPreferences() ]
textbutton _("Dark theme") style "l_checkbox" action [SetField(persistent, "theme", "dark", None), RestartAtPreferences()]
textbutton _("Custom theme") style "l_checkbox" action [SetField(persistent, "theme", "custom", None), RestartAtPreferences()]
if translations:
add SPACER
if translations:
frame:
style "l_indent"
xmaximum ONETHIRD
xfill True
has vbox
# Text editor selection.
add SEPARATOR2
+40 -13
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -22,15 +22,10 @@
# Code that manages projects.
init python:
if renpy.windows:
import EasyDialogsWin as EasyDialogs
else:
EasyDialogs = None
import os
init python in project:
from store import persistent, config, Action, renpy, _preferences
from store import persistent, config, Action, renpy, _preferences, MultiPersistent
import store.util as util
import store.interface as interface
@@ -41,6 +36,8 @@ init python in project:
import re
import tempfile
multipersistent = MultiPersistent("launcher.renpy.org")
if persistent.blurb is None:
persistent.blurb = 0
@@ -104,15 +101,13 @@ init python in project:
def load_data(self):
try:
f = open(os.path.join(self.path, "project.json"), "rb")
self.data = json.load(f)
f.close()
with open(os.path.join(self.path, "project.json"), "rb") as f:
self.data = json.load(f)
except:
self.data = { }
self.update_data()
def save_data(self):
"""
Saves the project data.
@@ -131,6 +126,7 @@ init python in project:
data.setdefault("packages", [ "pc", "mac" ])
data.setdefault("add_from", True)
data.setdefault("force_recompile", True)
data.setdefault("android_build", "Release")
if "renamed_all" not in data:
dp = data["packages"]
@@ -258,6 +254,8 @@ init python in project:
if persistent.navigate_library:
cmd.append("--json-dump-common")
cmd.append("--errors-in-editor")
environ = dict(os.environ)
environ["RENPY_LAUNCHER_LANGUAGE"] = _preferences.language or "english"
environ.update(env)
@@ -336,12 +334,14 @@ init python in project:
for l, line in enumerate(data):
l += 1
line = line[:1024]
try:
line = line.decode("utf-8")
except:
continue
m = re.search(ur".*#\s*TODO(\s*:\s*|\s+)(.*)", line, re.I)
m = re.search(r"#\s*TODO(\s*:\s*|\s+)(.*)", line, re.I)
if m is None:
continue
@@ -363,6 +363,8 @@ init python in project:
Unelides the filename relative to the project base.
"""
fn = os.path.normpath(fn)
fn1 = os.path.join(self.path, fn)
if os.path.exists(fn1):
return fn1
@@ -430,9 +432,18 @@ init python in project:
global current
if persistent.projects_directory is None:
if multipersistent.projects_directory is not None:
persistent.projects_directory = multipersistent.projects_directory
if (persistent.projects_directory is not None) and not os.path.isdir(persistent.projects_directory):
persistent.projects_directory = None
if persistent.projects_directory is not None:
if multipersistent.projects_directory is None:
multipersistent.projects_directory = persistent.projects_directory
multipersistent.save()
self.projects_directory = persistent.projects_directory
self.projects = [ ]
@@ -589,6 +600,9 @@ init python in project:
if language is None:
rv = p
elif rv is None:
rv = p
elif os.path.exists(os.path.join(p.path, "game", "tl", _preferences.language)):
rv = p
@@ -749,6 +763,14 @@ init 10 python:
if not directory_is_writable(persistent.projects_directory):
persistent.projects_directory = None
label after_load:
python:
if project.current is not None:
project.current.update_dump()
return
###############################################################################
# Code to choose the projects directory.
@@ -764,6 +786,8 @@ label choose_projects_directory:
interface.info(_("Ren'Py has set the projects directory to:"), "[path!q]", path=path)
persistent.projects_directory = path
project.multipersistent.projects_directory = path
project.multipersistent.save()
project.manager.scan()
@@ -778,6 +802,8 @@ init python:
args = ap.parse_args()
persistent.projects_directory = renpy.fsdecode(args.projects)
project.multipersistent.projects_directory = persistent.projects_directory
project.multipersistent.save()
renpy.save_persistent()
return False
@@ -788,7 +814,8 @@ init python:
ap = renpy.arguments.ArgumentParser()
args = ap.parse_args()
print renpy.fsencode(persistent.projects_directory)
if persistent.projects_directory is not None:
print(persistent.projects_directory)
return False
+152 -13
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -56,11 +56,11 @@ init -1 python:
PATTERN = "images/pattern.png"
# A displayable used for the background of everything.
BACKGROUND = "images/background.png"
BACKGROUND = "background"
# A displayable used for the background of windows
# containing commands, preferences, and navigation info.
WINDOW = Frame("images/window.png", 0, 0, tile=True)
WINDOW = Frame("window", 0, 0, tile=True)
# A displayable used for the background of the projects list.
PROJECTS_WINDOW = Null()
@@ -77,9 +77,146 @@ init -1 python:
# The color of input text.
INPUT_COLOR = "#d86b45"
if persistent.theme == 'dark':
# The color of non-interactive text.
TEXT = "#ababab"
# Colors for buttons in various states.
IDLE = "#709cbe"
HOVER = "#d86b45"
DISABLED = "#7f7f7f"
# Colors for reversed text buttons (selected list entries).
REVERSE_IDLE = "#78a5c5"
REVERSE_HOVER = "#d86b45"
REVERSE_TEXT = "#0a0a0a"
# Colors for the scrollbar thumb.
SCROLLBAR_IDLE = "#282828"
SCROLLBAR_HOVER = "#d86b45"
# An image used as a separator pattern.
PATTERN = "images/pattern.png"
# A displayable used for the background of everything.
BACKGROUND = Fixed(Solid(REVERSE_TEXT), xsize=800, ysize=600)
# A displayable used for the background of the projects list.
PROJECTS_WINDOW = Null()
# A displayable used the background of information boxes.
INFO_WINDOW = "#101010"
# Colors for the titles of information boxes.
ERROR_COLOR = "#d15353"
INFO_COLOR = "#ababab"
INTERACTION_COLOR = "#d19753"
QUESTION_COLOR = "#d19753"
# The color of input text.
INPUT_COLOR = "#d86b45"
# A displayable used for the background of windows
# containing commands, preferences, and navigation info.
WINDOW = Frame(Fixed(Solid(REVERSE_IDLE, xsize=4, xalign=0), Solid(INFO_WINDOW, xsize=794, xalign=1.0), xsize=800, ysize=600), 0, 0, tile=True)
elif persistent.theme == 'clear':
# The color of non-interactive text.
TEXT = "#545454"
# Colors for buttons in various states.
IDLE = "#42637b"
HOVER = "#d86b45"
DISABLED = "#808080"
# Colors for reversed text buttons (selected list entries).
REVERSE_IDLE = "#78a5c5"
REVERSE_HOVER = "#d86b45"
REVERSE_TEXT = "#ffffff"
# Colors for the scrollbar thumb.
SCROLLBAR_IDLE = "#dfdfdf"
SCROLLBAR_HOVER = "#d86b45"
# An image used as a separator pattern.
PATTERN = "images/pattern.png"
# A displayable used for the background of everything.
BACKGROUND = Fixed(Solid(REVERSE_TEXT), xsize=800, ysize=600)
# A displayable used for the background of the projects list.
PROJECTS_WINDOW = Null()
# A displayable used the background of information boxes.
INFO_WINDOW = "#f9f9f9"
# Colors for the titles of information boxes.
ERROR_COLOR = "#d15353"
INFO_COLOR = "#545454"
INTERACTION_COLOR = "#d19753"
QUESTION_COLOR = "#d19753"
# The color of input text.
INPUT_COLOR = "#d86b45"
# A displayable used for the background of windows
# containing commands, preferences, and navigation info.
WINDOW = Frame(Fixed(Solid(REVERSE_IDLE, xsize=4, xalign=0), Solid(INFO_WINDOW, xsize=794, xalign=1.0), xsize=800, ysize=600), 0, 0, tile=True)
elif renpy.exists("skin.rpy") and persistent.theme == 'custom':
# The color of non-interactive text.
TEXT = custom_text
# Colors for buttons in various states.
IDLE = custom_idle
HOVER = custom_hover
DISABLED = custom_disable
# Colors for reversed text buttons (selected list entries).
REVERSE_IDLE = custom_reverse_idle
REVERSE_HOVER = reverse_hover
REVERSE_TEXT = custom_reverse_text
# Colors for the scrollbar thumb.
SCROLLBAR_IDLE = custom_scrollbar_idle
SCROLLBAR_HOVER = custom_scrollbar_hover
# An image used as a separator pattern.
PATTERN = custom_pattern
# A displayable used for the background of everything.
BACKGROUND = custom_background
# A displayable used for the background of the projects list.
PROJECTS_WINDOW = custom_projects_window
# A displayable used the background of information boxes.
INFO_WINDOW = custom_info_window
# Colors for the titles of information boxes.
ERROR_COLOR = custom_error_color
INFO_COLOR = custom_info_color
INTERACTION_COLOR = custom_interaction_color
QUESTION_COLOR = custom_question_color
# The color of input text.
INPUT_COLOR = custom_imput_color
# A displayable used for the background of windows
# containing commands, preferences, and navigation info.
WINDOW = custom_window
init 1 python:
if not renpy.has_image('scrollbar_center'):
renpy.image('scrollbar_center', Fixed(Solid(REVERSE_TEXT, area=(2, 2, 2, 4)), Solid(REVERSE_TEXT, area=(8, 2, 2, 4)), Solid(REVERSE_TEXT, area=(14, 2, 2, 4)), xysize=(18, 8)))
if not renpy.has_image('vscrollbar_center'):
renpy.image('vscrollbar_center', Fixed(Solid(REVERSE_TEXT, area=(2, 2, 4, 2)), Solid(REVERSE_TEXT, area=(2, 8, 4, 2)), Solid(REVERSE_TEXT, area=(2, 14, 4, 2)), xysize=(8, 18)))
def size(n):
"""
Adjusts the font size if we're in large-print mode.
@@ -109,10 +246,10 @@ init 1 python:
SEPARATOR = Frame(PATTERN, 0, 0, tile=True, ymaximum=5, yalign=1.0)
SEPARATOR2 = Frame(PATTERN, 0, 0, tile=True, ymaximum=10, yalign=1.0)
SPACER_HEIGHT = 12
SPACER_HEIGHT = 8
SPACER = Null(height=SPACER_HEIGHT)
HALF_SPACER_HEIGHT = 6
HALF_SPACER_HEIGHT = 4
HALF_SPACER = Null(height=HALF_SPACER_HEIGHT)
# DIVIDING THE SCREEN
@@ -121,10 +258,13 @@ init 1 python:
ONEHALF = 377
def checkbox(full, color):
if full:
return im.Twocolor("images/checkbox_full.png", color, color, style="l_checkbox_box")
if renpy.has_image('checkbox_full'):
check = im.Twocolor(''.join(["images/checkbox_", "full" if full else "empty", ".png"]), color, color)
else:
return im.Twocolor("images/checkbox_empty.png", color, color, style="l_checkbox_box")
check = Fixed(Solid(color, xsize=1, xalign=.0), Solid(color, xsize=1, xalign=1.0), Solid(color, ysize=1, yalign=.0), Solid(color, ysize=1, yalign=1.0), xsize=10, ysize=10)
if full:
check = Fixed(check, Solid(color, xsize=6, ysize=6, align=(.5, .5)), xsize=10, ysize=10)
return At(check, l_checkbox_box)
@@ -259,11 +399,11 @@ style l_list2_text is l_list_text
style l_vscrollbar is l_default:
thumb Fixed(
Solid(SCROLLBAR_IDLE, xmaximum=8, xalign=0.5),
Image("images/vscrollbar_center.png", xalign=0.5, yalign=0.5),
Transform('vscrollbar_center', xalign=0.5, yalign=0.5),
xmaximum = SCROLLBAR_SIZE)
hover_thumb Fixed(
Solid(SCROLLBAR_HOVER, xmaximum=8, xalign=0.5),
Image("images/vscrollbar_center.png", xalign=0.5, yalign=0.5),
Transform('vscrollbar_center', xalign=0.5, yalign=0.5),
xmaximum = SCROLLBAR_SIZE)
xmaximum SCROLLBAR_SIZE
bar_vertical True
@@ -341,9 +481,8 @@ style l_checkbox is l_button:
selected_hover_background checkbox(True, HOVER)
insensitive_background checkbox(False, DISABLED)
style l_checkbox_box:
yanchor 0.5
ypos 11
transform l_checkbox_box:
ycenter 11
style l_checkbox_text is l_button_text:
selected_font light_font()
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
+3 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -534,7 +534,7 @@ init python in theme_data:
THEME_FUNCTIONS.add(function)
THEME_SCREEN_OPERATIONS[theme] = roundrect_screen_ops
for scheme, colors in ROUNDRECT_SCHEMES.iteritems():
for scheme, colors in ROUNDRECT_SCHEMES.items():
subs = dict(colors)
subs["function"] = function
subs["theme"] = theme
@@ -587,7 +587,7 @@ init python in theme_data:
THEME_SCREEN_OPERATIONS["A White Tulip"] = awt_screen_ops
for scheme, colors in ROUNDRECT_SCHEMES.iteritems():
for scheme, colors in ROUNDRECT_SCHEMES.items():
subs = dict(colors)
subs["scheme"] = scheme
+40 -17
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# Copyright 2004-2018 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2021 Tom Rothamel <pytom@bishoujo.us>
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
@@ -26,25 +26,48 @@
import sys
# Python3 and Python2-style imports.
try:
from tkinter import Tk
from tkinter.filedialog import askdirectory
except ImportError:
from Tkinter import Tk
from tkFileDialog import askdirectory
# Binary mode stdout for python3.
try:
sys.stdout = sys.stdout.buffer
except:
pass
# Gtk generally has better support than TKinter on various Linux distributions
def gtk_select_directory(title):
dialog = Gtk.FileChooserNative(title=title,
action=Gtk.FileChooserAction.SELECT_FOLDER)
# Create the TK canvas.
dialog.run()
if __name__ == "__main__":
return dialog.get_filename()
# Fall back to TKinter if Gtk isn't available
def tk_select_directory(initialdir, title):
root = Tk()
root.withdraw()
result = askdirectory(initialdir=sys.argv[1], parent=root, title="Select Ren'Py Projects Directory")
sys.stdout.write(result.encode("utf8"))
return askdirectory(initialdir=initialdir, parent=root, title=title)
try:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
def select_directory(title):
result = gtk_select_directory(title)
return result if result else ''
except:
# Python3 and Python2-style imports.
try:
from tkinter import Tk
from tkinter.filedialog import askdirectory
except ImportError:
from Tkinter import Tk
from tkFileDialog import askdirectory
def select_directory(title):
return tk_select_directory(title, sys.argv[1])
if __name__ == '__main__':
directory = select_directory('Select Ren\'Py Projects Directory')
sys.stdout.write(directory)
+2 -2
View File
@@ -102,8 +102,8 @@ translate arabic strings:
new "يتم تهيئة [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "الرجاء ضغط الزر او تحريك [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "الرجاء ضغط الزر او تحريك [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+1 -1
View File
@@ -138,7 +138,7 @@ translate arabic strings:
new "## حجم الخط الذي يحيط بصندوق اسم الشخصية, الاحجام بالترتيب هي اليسار, الأعلى, اليمين, و الأسفل."
# gui.rpy:127
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## عندما يتم اختيار True سيتم تكرار الخلفية حتى تغطي الصندوق, عند اختيار False سيتم تمديد الصورة لتغطي الصندوق."
# gui.rpy:132
+4 -4
View File
@@ -34,8 +34,8 @@ translate arabic strings:
new "لبناء ملفات الأندرويد, الرجاء تحميل RAPT, ثم فك الضغط عن الملف ووضعه في مجلد رينباي. قد تحتاج لإعادة تشغيل رينباي ليعمل بشكل صحيح."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "تحتاج لنسخة برمجية من جافا تعتمد الـ 32-بت لتستطيع إنشاء ملفات الأندرويد على نظام الوندوز. حزمة JDK تختلف عن JRE, قد تكون الجافا لديك موجوده لكنها تفتقد الـ JDK. \n\n الرجاء {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}تحميل و تنصيب JDK{/a} ثم إعادة تشغيل رينباي"
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "تحتاج لنسخة برمجية من جافا تعتمد الـ 32-بت لتستطيع إنشاء ملفات الأندرويد على نظام الوندوز. حزمة JDK تختلف عن JRE, قد تكون الجافا لديك موجوده لكنها تفتقد الـ JDK. \n\n الرجاء {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}تحميل و تنصيب JDK{/a} ثم إعادة تشغيل رينباي"
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
@@ -606,8 +606,8 @@ translate arabic strings:
new "خطأ"
# interface.rpy:356
old "While [what!q], an error occured:"
new "حصل خطأ أثناء [what!q]"
old "While [what!qt], an error occured:"
new "حصل خطأ أثناء [what!qt]"
# interface.rpy:356
old "[exception!q]"
+2 -2
View File
@@ -102,8 +102,8 @@ translate finnish strings:
new "Kalibroidaan [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Paina tai liikuta [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Paina tai liikuta [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+2 -2
View File
@@ -138,8 +138,8 @@ translate finnish strings:
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
# gui.rpy:127
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
new "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
# gui.rpy:132
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
+4 -4
View File
@@ -34,8 +34,8 @@ translate finnish strings:
new "Luodaksesi Android-sovelluksia, ole hyvä ja lataa RAPT, pura se, ja aseta se Ren'Py kansioon. Tämän jälkeen käynnistä Ren'Py uudelleen."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "32-bittinen Javan kehitystyökalu vaaditaan Android-sovellusten luomiseen Windowsilla. JDK on erilainen kuin JRE, joten on mahdollista, että sinulla on Java ilman JDK:ta.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}Lataa ja asenna JDK{/a}, ja sen jälkeen käynnistä Ren'Py uudelleen."
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "32-bittinen Javan kehitystyökalu vaaditaan Android-sovellusten luomiseen Windowsilla. JDK on erilainen kuin JRE, joten on mahdollista, että sinulla on Java ilman JDK:ta.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}Lataa ja asenna JDK{/a}, ja sen jälkeen käynnistä Ren'Py uudelleen."
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
@@ -606,8 +606,8 @@ translate finnish strings:
new "VIRHE"
# interface.rpy:356
old "While [what!q], an error occured:"
new "Kun [what!q], tapahtui virhe:"
old "While [what!qt], an error occured:"
new "Kun [what!qt], tapahtui virhe:"
# interface.rpy:356
old "[exception!q]"
+461 -9
View File
@@ -1,5 +1,4 @@

translate french strings:
translate french strings:
# 00action_file.rpy:26
old "{#weekday}Monday"
@@ -187,7 +186,7 @@ translate french strings:
# 00gui.rpy:233
old "Are you sure you want to end the replay?"
new "Êtes-vous sûr de vouloir mettre arrêter la rediffusion ?"
new "Êtes-vous sûr de vouloir arrêter la rediffusion ?"
# 00gui.rpy:234
old "Are you sure you want to begin skipping?"
@@ -207,15 +206,15 @@ translate french strings:
# 00library.rpy:142
old "Self-voicing disabled."
new "Vocalisation automatique désactivée."
new "Lecture vocale désactivée."
# 00library.rpy:143
old "Clipboard voicing enabled. "
new "Vocalisation du contenu du presse-papier activée. "
new "Lecture vocale vers presse-papier activée. "
# 00library.rpy:144
old "Self-voicing enabled. "
new "Vocalisation automatique activée. "
new "Lecture vocale activée. "
# 00library.rpy:179
old "Skip Mode"
@@ -227,15 +226,15 @@ translate french strings:
# 00preferences.rpy:422
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "Vocalisation du contenu du presse-papier activée. Pressez « Maj+C » pour la désactiver."
new "Lecture vocale vers presse-papier activée. Pressez « Maj+C » pour la désactiver."
# 00preferences.rpy:424
old "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
new "La vocalisation automatique veut dire « [renpy.display.tts.last] ». Pressez « Alt+Maj+V » pour la désactiver."
new "La lecture vocale veut dire « [renpy.display.tts.last] ». Pressez « Alt+Maj+V » pour la désactiver."
# 00preferences.rpy:426
old "Self-voicing enabled. Press 'v' to disable."
new "Vocalisation automatique activée. Pressez « v » pour la désactiver."
new "Lecture vocale activée. Pressez « v » pour la désactiver."
# 00iap.rpy:217
old "Contacting App Store\nPlease Wait..."
@@ -333,3 +332,456 @@ translate french strings:
old "return"
new "retour"
translate french strings:
# renpy/common/00accessibility.rpy:76
old "Font Override"
new "Forcer la police"
# renpy/common/00accessibility.rpy:80
old "Default"
new "Par défaut"
# renpy/common/00accessibility.rpy:84
old "DejaVu Sans"
new "DejaVu Sans"
# renpy/common/00accessibility.rpy:88
old "Opendyslexic"
new "Opendyslexic"
# renpy/common/00accessibility.rpy:94
old "Text Size Scaling"
new "Redimensionnement du texte"
# renpy/common/00accessibility.rpy:100
old "Reset"
new "Réinitaliser"
# renpy/common/00accessibility.rpy:105
old "Line Spacing Scaling"
new "Espacement vertical"
# renpy/common/00accessibility.rpy:117
old "Self-Voicing"
new "Lecture vocale"
# renpy/common/00accessibility.rpy:121
old "Off"
new "Désactivée"
# renpy/common/00accessibility.rpy:125
old "Text-to-speech"
new "Synthèse vocale"
# renpy/common/00accessibility.rpy:129
old "Clipboard"
new "Presse-papier"
# renpy/common/00accessibility.rpy:133
old "Debug"
new "Débogage"
# renpy/common/00accessibility.rpy:32
old "bar"
new "barre"
# renpy/common/00accessibility.rpy:33
old "selected"
new "sélectionné"
# renpy/common/00accessibility.rpy:34
old "viewport"
new "viewport"
# renpy/common/00accessibility.rpy:35
old "horizontal scroll"
new "barre de scrolling horizontal"
# renpy/common/00accessibility.rpy:36
old "vertical scroll"
new "barre de scrolling vertical"
# renpy/common/00accessibility.rpy:37
old "activate"
new "activer"
# renpy/common/00accessibility.rpy:38
old "deactivate"
new "désactiver"
# renpy/common/00accessibility.rpy:39
old "increase"
new "augmenter"
# renpy/common/00accessibility.rpy:40
old "decrease"
new "diminuer"
# renpy/common/00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "Baisse de volume pendant la lecture vocale"
# renpy/common/00accessibility.rpy:202
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 "Les options de ce menu ont pour objectif d'augmenter l'accessibilité. Elles peuvent ne pas fonctionner sur tous les jeux, et certaines combinations d'options peuvent rendre le jeu injouable. Le problème ne vient pas du jeu ou du moteur. Pour de meilleurs résultats en changeant la police, essayez de maintenir le texte de la même taille qu'avant."
# renpy/common/00action_file.rpy:353
old "Save slot %s: [text]"
new "Sauvegarder %s: [text]"
# renpy/common/00action_file.rpy:434
old "Load slot %s: [text]"
new "Charger %s: [text]"
# renpy/common/00action_file.rpy:487
old "Delete slot [text]"
new "Supprimer slot [text]"
# renpy/common/00action_file.rpy:566
old "File page auto"
new "Page auto"
# renpy/common/00action_file.rpy:568
old "File page quick"
new "Page rapide"
# renpy/common/00action_file.rpy:570
old "File page [text]"
new "Page [text]"
# renpy/common/00action_file.rpy:769
old "Next file page."
new "Page suivante."
# renpy/common/00action_file.rpy:841
old "Previous file page."
new "Page précédente."
# renpy/common/00action_file.rpy:920
old "Quick save."
new "Sauvegarde rapide."
# renpy/common/00action_file.rpy:939
old "Quick load."
new "Chargement rapide."
# renpy/common/00action_other.rpy:375
old "Language [text]"
new "Langue [text]"
# renpy/common/00director.rpy:708
old "The interactive director is not enabled here."
new "Le réalisateur interactif n'est pas activé ici."
# renpy/common/00director.rpy:1481
old "⬆"
new "⬆"
# renpy/common/00director.rpy:1487
old "⬇"
new "⬇"
# renpy/common/00director.rpy:1551
old "Done"
new "Fait"
# 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 "(attributs)"
# 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 "(fichier)"
# renpy/common/00director.rpy:1631
old "Change"
new "Changer"
# renpy/common/00director.rpy:1633
old "Add"
new "Ajouter"
# renpy/common/00director.rpy:1639
old "Remove"
new "Retirer"
# 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 "Attributs :"
# renpy/common/00director.rpy:1729
old "Transforms:"
new "Transforms :"
# renpy/common/00director.rpy:1748
old "Behind:"
new "Sous :"
# 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 "Fichier audio :"
# renpy/common/00keymap.rpy:300
old "Failed to save screenshot as %s."
new "Échec de sauvegarde de la capture d'écran %s."
# renpy/common/00preferences.rpy:240
old "display"
new "affichage"
# renpy/common/00preferences.rpy:252
old "transitions"
new "transitions"
# renpy/common/00preferences.rpy:261
old "skip transitions"
new "passer les transitions"
# renpy/common/00preferences.rpy:263
old "video sprites"
new "sprites vidéo"
# renpy/common/00preferences.rpy:272
old "show empty window"
new "afficher fenêtre vide"
# renpy/common/00preferences.rpy:281
old "text speed"
new "vitesse du texte"
# renpy/common/00preferences.rpy:289
old "joystick"
new "joystick"
# renpy/common/00preferences.rpy:289
old "joystick..."
new "joystick..."
# renpy/common/00preferences.rpy:296
old "skip"
new "passer"
# renpy/common/00preferences.rpy:299
old "skip unseen [text]"
new "passer [text] non lus"
# renpy/common/00preferences.rpy:304
old "skip unseen text"
new "passer le texte non lu"
# renpy/common/00preferences.rpy:306
old "begin skipping"
new "commencer à passer"
# renpy/common/00preferences.rpy:310
old "after choices"
new "après les choix"
# renpy/common/00preferences.rpy:317
old "skip after choices"
new "passer après les choix"
# renpy/common/00preferences.rpy:319
old "auto-forward time"
new "avancée du temps automatique"
# renpy/common/00preferences.rpy:333
old "auto-forward"
new "avancée automatique"
# renpy/common/00preferences.rpy:340
old "Auto forward"
new "Avancée automatique"
# renpy/common/00preferences.rpy:343
old "auto-forward after click"
new "avancée automatique après un clic"
# renpy/common/00preferences.rpy:352
old "automatic move"
new "mouvement automatique"
# renpy/common/00preferences.rpy:361
old "wait for voice"
new "attendre la voix"
# renpy/common/00preferences.rpy:370
old "voice sustain"
new "maintien de la voix"
# renpy/common/00preferences.rpy:379
old "self voicing"
new "lecture vocale"
# renpy/common/00preferences.rpy:388
old "self voicing volume drop"
new "baisse de volume pendant la lecture vocale"
# renpy/common/00preferences.rpy:396
old "clipboard voicing"
new "voix par presse-papier"
# renpy/common/00preferences.rpy:405
old "debug voicing"
new "voix de debug"
# renpy/common/00preferences.rpy:414
old "emphasize audio"
new "mise en valeur de l'audio"
# renpy/common/00preferences.rpy:423
old "rollback side"
new "côté de rollback"
# renpy/common/00preferences.rpy:433
old "gl powersave"
new "gl économie d'énergie"
# renpy/common/00preferences.rpy:439
old "gl framerate"
new "gl images par seconde"
# renpy/common/00preferences.rpy:442
old "gl tearing"
new "gl tearing"
# renpy/common/00preferences.rpy:445
old "font transform"
new "apparence de la police"
# renpy/common/00preferences.rpy:448
old "font size"
new "taille de police"
# renpy/common/00preferences.rpy:456
old "font line spacing"
new "taille d'espaces"
# renpy/common/00preferences.rpy:464
old "system cursor"
new "curseur système"
# renpy/common/00preferences.rpy:484
old "music volume"
new "volume de la musique"
# renpy/common/00preferences.rpy:485
old "sound volume"
new "volume du son"
# renpy/common/00preferences.rpy:486
old "voice volume"
new "volume des voix"
# renpy/common/00preferences.rpy:487
old "mute music"
new "couper la musique"
# renpy/common/00preferences.rpy:488
old "mute sound"
new "couper le son"
# renpy/common/00preferences.rpy:489
old "mute voice"
new "couper les voix"
# renpy/common/00preferences.rpy:490
old "mute all"
new "couper tout"
# renpy/common/_developer/developer.rpym:43
old "Interactive Director (D)"
new "Réalisateur interactif (D)"
# renpy/common/_developer/developer.rpym:57
old "Show Image Load Log (F4)"
new "Montrer le log ne chargement des images (F4)"
# renpy/common/_developer/developer.rpym:60
old "Hide Image Load Log (F4)"
new "Masquer le log de chargement des images (F4)"
# renpy/common/_developer/developer.rpym:63
old "Image Attributes"
new "Attributs d'image"
# renpy/common/_developer/developer.rpym:90
old "[name] [attributes] (hidden)"
new "[name] [attributes] (masqué)"
# renpy/common/_developer/developer.rpym:94
old "[name] [attributes]"
new "[name] [attributes]"
# renpy/common/_developer/developer.rpym:154
old "Hide deleted"
new "Masquer les supprimés"
# renpy/common/_developer/developer.rpym:154
old "Show deleted"
new "Montrer les supprimés"
# renpy/common/_developer/developer.rpym:506
old "Type to filter: "
new "Type à filtrer : "
# renpy/common/_developer/developer.rpym:631
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "Textures : [tex_count] ([tex_size_mb:.1f] MB)"
# renpy/common/_developer/developer.rpym:635
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "Cache d'images : [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/00preferences.rpy:480
old "renderer menu"
new "menu de rendu"
# renpy/common/00preferences.rpy:483
old "accessibility menu"
new "menu d'accessibilité"
# renpy/common/00accessibility.rpy:180
old "High Contrast Text"
new "Texte en contraste élevé (surbrillance)"
# renpy/common/00preferences.rpy:493
old "high contrast text"
new "texte en contraste élevé"
+32 -14
View File
@@ -1,5 +1,4 @@

translate french strings:
translate french strings:
# _developer/developer.rpym:38
old "Developer Menu"
@@ -99,7 +98,7 @@ translate french strings:
# _developer/inspector.rpym:139
old "displayable:"
new "affichable:"
new "affichable :"
# _developer/inspector.rpym:145
old " (no properties affect the displayable)"
@@ -131,15 +130,15 @@ translate french strings:
# 00console.rpy:403
old "commands:\n"
new "commandes:\n"
new "commandes :\n"
# 00console.rpy:413
old " <renpy script statement>: run the statement\n"
new " <renpy script statement>: Exécuter cette déclaration\n"
new " <renpy script statement> : Exécuter cette déclaration\n"
# 00console.rpy:415
old " <python expression or statement>: run the expression or statement"
new " <python expression or statement>: Exécuter cette expression ou cette déclaration"
new " <python expression or statement> : Exécuter cette expression ou cette déclaration"
# 00console.rpy:423
old "clear: clear the console history"
@@ -147,33 +146,52 @@ translate french strings:
# 00console.rpy:427
old "exit: exit the console"
new "exit: quitter la console"
new "exit : quitter la console"
# 00console.rpy:435
old "load <slot>: loads the game from slot"
new "load <slot>: charger la partie de cet emplacement"
new "load <slot> : charger la partie de cet emplacement"
# 00console.rpy:448
old "save <slot>: saves the game in slot"
new "save <slot>: sauvegarder la partie dans cet emplacement "
new "save <slot> : sauvegarder la partie dans cet emplacement "
# 00console.rpy:459
old "reload: reloads the game, refreshing the scripts"
new "reload: Recharge le jeu, rafraîchit les scripts"
new "reload : Recharge le jeu, rafraîchit les scripts"
# 00console.rpy:467
old "watch <expression>: watch a python expression"
new "watch <expression>: surveiller une expression Python"
new "watch <expression> : surveiller une expression Python"
# 00console.rpy:493
old "unwatch <expression>: stop watching an expression"
new "unwatch <expression>: Arrêter la surveillance dune expression Python"
new "unwatch <expression> : arrêter la surveillance dune expression Python"
# 00console.rpy:519
old "unwatchall: stop watching all expressions"
new "unwatchall: Arrêter de surveiller toutes les expressions"
new "unwatchall : arrêter de surveiller toutes les expressions"
# 00console.rpy:536
old "jump <label>: jumps to label"
new "jump <label>: Saute jusquau label"
new "jump <label> : saute jusquau label"
# renpy/common/00console.rpy:814
old "watch <expression>: 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 <expression> : surveille une expression python\n watch short: raccourcit la représentation des expressions (par défaut)\n watch long : affiche la totalité des expressions surveillées"
# renpy/common/00console.rpy:917
old "short: Shorten the representation of objects on the console (default)."
new "short : Raccourcit la représentation des objets sur la console (par défaut)."
# renpy/common/00console.rpy:921
old "long: Print the full representation of objects on the console."
new "long : Affiche la representation entière des objets dans la console."
# renpy/common/00console.rpy:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape : Active l'échappage des symboles unicode dans les chaînes de caractères unicode."
# renpy/common/00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape : Désactive l'échappage des symboles unicode dans les chaînes de caractères unicode et les affiche telles quelles (par défaut)."
+119 -5
View File
@@ -1,5 +1,4 @@

translate french strings:
translate french strings:
# 00gltest.rpy:64
old "Graphics Acceleration"
@@ -102,8 +101,8 @@ translate french strings:
new "Calibrage de [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Pressez ou déplacez le [kind] [control!r]."
old "Press or move the [control!s] [kind]."
new "Pressez ou déplacez le [kind] [control!s]."
# 00gamepad.rpy:66
old "Skip (A)"
@@ -171,9 +170,124 @@ translate french strings:
# _errorhandling.rpym:608
old "Opens the errors.txt file in a text editor."
new "Ouvrir le fihchier « errors.txt » dans un éditeur de texte."
new "Ouvrir le fichier « errors.txt » dans un éditeur de texte."
# _errorhandling.rpym:612
old "Copies the errors.txt file to the clipboard."
new "Copie le contenu du fichier « errors.txt » dans le presse-papier."
# renpy/common/_errorhandling.rpym:542
old "Copy BBCode"
new "Copier en BBCode"
# renpy/common/_errorhandling.rpym:544
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "Copie le fichier traceback.txt dans le presse-papier au format BBcode pour les forums tels que https://lemmasoft.renai.us/."
# renpy/common/_errorhandling.rpym:546
old "Copy Markdown"
new "Copier en Markdown"
# renpy/common/_errorhandling.rpym:548
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
new "Copie le fichier traceback.txt dans le presse-papier au format Markdown pour Discord."
# renpy/common/_errorhandling.rpym:606
old "Ignores the exception, allowing you to continue."
new "Ignore lexception, cela vous autorise à poursuivre"
# renpy/common/_errorhandling.rpym:617
old "Console"
new "Console"
# renpy/common/_errorhandling.rpym:619
old "Opens a console to allow debugging the problem."
new "Ouvre une console pour débuguer le problème."
# renpy/common/_errorhandling.rpym:683
old "Copies the errors.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "Copie le fichier errors.txt dans le presse-papier au format BBcode pour les forums tels que https://lemmasoft.renai.us/."
# renpy/common/_errorhandling.rpym:687
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
new "Copie le fichier errors.txt dans le presse-papier au format Markdown pour Discord."
# renpy/common/00gltest.rpy:89
old "Renderer"
new "Moteur de rendu"
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "Forcer le moteur de rendu GL"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "Forcer le moteur de rendu ANGLE"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
new "Forcer le moteur de rendu GLES"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
new "Forcer le moteur de rendu GL2"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
new "Forcer le moteur de rendu ANGLE2"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
new "Forcer le moteur de rendu GLES2"
# renpy/common/00gltest.rpy:136
old "Enable (No Blocklist)"
new "Activer (Sans Blocklist)"
# renpy/common/00gltest.rpy:159
old "Powersave"
new "Économie d'énergie"
# renpy/common/00gltest.rpy:173
old "Framerate"
new "Images par seconde"
# renpy/common/00gltest.rpy:177
old "Screen"
new "Écran"
# 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:249
old "This game requires use of GL2 that can't be initialised."
new "Ce jeu nécessite l'usage de GL2, qui ne peut pas être initialisé."
# 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 "Le fichier {a=edit:1:log.txt}log.txt{/a} peut contenir des informations pour vous aider à déterminer ce qui ne va pas avec votre ordinateur."
# renpy/common/00gltest.rpy:264
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "Plus de détails sur comment réparer ça dans la {a=[url]}documentation{/a}."
# renpy/common/00gltest.rpy:281
old "Change render options"
new "Changer les options de rendu"
# renpy/common/00gamepad.rpy:58
old "Press or move the '[control!s]' [kind]."
new "Appuyez sur le [kind] '[control!s]'."
# renpy/common/_errorhandling.rpym:542
old "Open"
new "Ouvrir"
+49 -3
View File
@@ -1,5 +1,4 @@

translate french strings:
translate french strings:
# gui.rpy:2
old "## Initialization"
@@ -138,7 +137,7 @@ translate french strings:
new "## Les bordures de la zone contenant le nom du personnage dans lordre suivant gauche, haut, droite, bas."
# gui.rpy:127
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## Si « True » (vrai), larrière plan de zone du nom sera en mosaïque, si « False »(faux), larrière plan de la zone du nom sera mis à l’échelle."
# gui.rpy:132
@@ -409,3 +408,50 @@ translate french strings:
old "## Quick buttons."
new "## Bouton daccès rapide."
# gui/game/gui.rpy:5
old "## The init offset statement causes the initialization statements in this file to run before init statements in any other file."
new "## L'instruction init offset fait exécuter les instructions d'initialisation de ce fichier tavant les instructions init des autres fichiers."
# gui/game/gui.rpy:17
old "## GUI Configuration Variables"
new "## Variables de Configuration du GUI"
# gui/game/gui.rpy:165
old "## The color of button text in various states."
new "## La couleur du texte des boutons dans différents états."
# gui/game/gui.rpy:171
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
new "## L'alignement horizontal du texte des boutons. (0.0 est à gauche, 0.5 est au centre, 1.0 est à droite)."
# gui/game/gui.rpy:276
old "## The position of the main menu text."
new "## La position du texte du menu principal."
# gui/game/gui.rpy:285
old "## Generic frames."
new "## Frames génériques."
# gui/game/gui.rpy:305
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
new "## Le GUI par défaut utilise uniquement des sliders et des barres de scrolling verticales. Toutes les autres barres ne sont utilisées que dans des screens écrits par l'utilisateur."
# gui/game/gui.rpy:366
old "## The maximum number of NVL-mode entries Ren'Py will display. When more entries than this are to be show, the oldest entry will be removed."
new "## Le nombre maximum d'entrées en mode NVL que Ren'Py affichera. Quand plus d'entrées sont affichées, les plus anciennes seront retirées."
# gui/game/gui.rpy:402
old "## Localization"
new "## Localisation (traduction et adaptation aux langues et cultures)"
# gui/game/gui.rpy:404
old "## This controls where a line break is permitted. The default is suitable for most languages. A list of available values can be found at https://www.renpy.org/doc/html/style_properties.html#style-property-language"
new "## Ceci contrôle où un saut de ligne est autorisé. La valeur par défaut convient à la plupart des langues. Une liste des valeurs disponible peut être trouvée sur https://www.renpy.org/doc/html/style_properties.html#style-property-language"
# gui/game/gui.rpy:412
old "## Mobile devices"
new "## Appareils mobiles"
# gui/game/gui.rpy:441
old "## Change the size and spacing of various things."
new "## Changer la taille et l'espacement de diverses choses."
+713 -27
View File
@@ -1,5 +1,4 @@

translate french strings:
translate french strings:
# about.rpy:39
old "[version!q]"
@@ -23,7 +22,7 @@ translate french strings:
# add_file.rpy:39
old "The file already exists."
new "Le fichier éxiste déjà."
new "Le fichier existe déjà."
# add_file.rpy:42
old "# Ren'Py automatically loads all script files ending with .rpy. To use this\n# file, define a label and jump to it from another file.\n"
@@ -31,11 +30,11 @@ translate french strings:
# android.rpy:30
old "To build Android packages, please download RAPT, unzip it, and place it into the Ren'Py directory. Then restart the Ren'Py launcher."
new "Pour compiler les paquets Android, veuillez télécharger RAPT, le décompresser et le placer dans le répertoir de RenPy. Ensuite, redémarrez le lanceur RenPy."
new "Pour compiler les paquets Android, veuillez télécharger RAPT, le décompresser et le placer dans le répertoire de RenPy. Ensuite, redémarrez le lanceur RenPy."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Un Kit de Développement Java (JDK) 32 bits est nécessaire pour compiler les paquets Android depuis Windows. Le JDK nest pas la même chose que le JRE, il est possible que Java soit installé sur votre machine sans le JDK.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}Téléchargez et installez le JDK{/a}, puis relancez le lanceur RenPy."
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Un Kit de Développement Java (JDK) 32 bits est nécessaire pour compiler les paquets Android depuis Windows. Le JDK nest pas la même chose que le JRE, il est possible que Java soit installé sur votre machine sans le JDK.\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}Téléchargez et installez le JDK{/a}, puis relancez le lanceur RenPy."
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
@@ -51,7 +50,7 @@ translate french strings:
# android.rpy:35
old "Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device."
new "Choisissez « Compiler »(build) pour compiler le projet actuel ou connectez un appareil Android et choisissez « Compiler et installer » (Build & Install) pour linstaller sur lappareil."
new "Choisissez « Compiler » (build) pour compiler le projet actuel ou connectez un appareil Android et choisissez « Compiler et installer » (Build & Install) pour linstaller sur lappareil."
# android.rpy:37
old "Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
@@ -59,11 +58,11 @@ translate french strings:
# android.rpy:38
old "Attempts to emulate an Android tablet.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "Tentative d’émulation d'une tablette Android.\n\nLe contact est émulé par la souris, mails uniquement lorsque le bouton est pressé. La barre despace correspond au bouton menu et la touche PageUp correspond au bouton retour."
new "Tentative d’émulation d'une tablette Android.\n\nLe contact est émulé par la souris, mais uniquement lorsque le bouton est pressé. La barre despace correspond au bouton menu et la touche PageUp correspond au bouton retour."
# android.rpy:39
old "Attempts to emulate a televison-based Android console, like the OUYA or Fire TV.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "Attempts to emulate a televison-based Android console, like the OUYA or Fire TV.\n\nController input is mapped to the arrow keys, Enter is mapped to the select button, Escape is mapped to the menu button, and PageUp is mapped to the back button."
new "Tentative d’émulation d'une console télé basée sur Android, comme OUYA ou Fire TV.\n\n Le contrôleur est émulé par les touches fléchées, le bouton select par la touche Entrée, le bouton menu par la touche Echap, et le bouton retour par la touche PageUp."
# android.rpy:41
old "Downloads and installs the Android SDK and supporting packages. Optionally, generates the keys required to sign the package."
@@ -71,7 +70,7 @@ translate french strings:
# android.rpy:42
old "Configures the package name, version, and other information about this project."
new "Configure le nom du packet, sa version et dautres informations à propos de ce projet."
new "Configure le nom du paquet, sa version et dautres informations à propos de ce projet."
# android.rpy:43
old "Opens the file containing the Google Play keys in the editor.\n\nThis is only needed if the application is using an expansion APK. Read the documentation for more details."
@@ -87,7 +86,7 @@ translate french strings:
# android.rpy:46
old "Builds the Android package, installs it on an Android device connected to your computer, then launches the app on your device."
new "Compile le paquet Android, linstalle sur lappareil Android connécté à votre ordinateur et lance lapplication sur lappareil."
new "Compile le paquet Android, linstalle sur lappareil Android connecté à votre ordinateur et lance lapplication sur lappareil."
# android.rpy:48
old "Connects to an Android device running ADB in TCP/IP mode."
@@ -239,7 +238,7 @@ translate french strings:
# distribute.rpy:459
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
new "La compilation de la distribution a échoué :\n\nLe variable « build.directory_name » ne doit pas contenir despace, ni de virgule, ni de point-virgule."
new "La compilation de la distribution a échoué :\n\nLa variable « build.directory_name » ne doit pas contenir despace, ni de virgule, ni de point-virgule."
# distribute.rpy:504
old "No packages are selected, so there's nothing to do."
@@ -251,7 +250,7 @@ translate french strings:
# distribute.rpy:569
old "All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."
new "Tous les paquets ont été contruits.\n\nDu fait de labsence de systèmes de permissions sur Windows, il nest pas possible de reconstruire les paquets construits sur GNU-Linux ou Mac OS sur Windows."
new "Tous les paquets ont été construits.\n\nDu fait de labsence de systèmes de permissions sur Windows, il nest pas possible de reconstruire les paquets construits sur GNU-Linux ou Mac OS sur Windows."
# distribute.rpy:752
old "Archiving files..."
@@ -259,7 +258,7 @@ translate french strings:
# distribute.rpy:1050
old "Unpacking the Macintosh application for signing..."
new "Décompression de lapplication Machintosh pour calcul de la signature..."
new "Décompression de lapplication Macintosh pour calcul de la signature..."
# distribute.rpy:1060
old "Signing the Macintosh application..."
@@ -287,7 +286,7 @@ translate french strings:
# distribute_gui.rpy:157
old "Build Distributions: [project.current.name!q]"
new "Construction des packets : [project.current.name!q]"
new "Construction des paquets : [project.current.name!q]"
# distribute_gui.rpy:171
old "Directory Name:"
@@ -319,7 +318,7 @@ translate french strings:
# distribute_gui.rpy:215
old "Build Packages:"
new "Compiler les packets :"
new "Compiler les paquets :"
# distribute_gui.rpy:234
old "Options:"
@@ -347,7 +346,7 @@ translate french strings:
# distribute_gui.rpy:271
old "Errors were detected when running the project. Please ensure the project runs without errors before building distributions."
new "Des erreurs ont été détectées lors de lexécution du projet. Assurez-vous quil n'y ait plus derreur avant de compiler les paquets."
new "Des erreurs ont été détectées lors de lexécution du projet. Assurez-vous quil n'y ait plus derreurs avant de compiler les paquets."
# distribute_gui.rpy:288
old "Your project does not contain build information. Would you like to add build information to the end of options.rpy?"
@@ -355,11 +354,11 @@ translate french strings:
# editor.rpy:150
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input."
new "{b}Recommendé.{/b} Un éditeur en version beta avec une interface simple et des fonctionnalités dassistance au développement. Editra manque pour le moment du support pour les textes en chinois, japonais et coréen."
new "{b}Recommandé.{/b} Un éditeur en version beta avec une interface simple et des fonctionnalités dassistance au développement. Editra manque pour le moment du support pour les textes en chinois, japonais et coréen."
# editor.rpy:151
old "{b}Recommended.{/b} A beta editor with an easy to use interface and features that aid in development, such as spell-checking. Editra currently lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
new "{b}Recommendé.{/b} Un éditeur en version beta avec une interface simple et des fonctionnalités dassistance au développement. Editra manque pour le moment du support pour les textes en chinois, japonais et coréen. Sur GNU-Linux, Editra nécessite wxPython."
new "{b}Recommandé.{/b} Un éditeur en version beta avec une interface simple et des fonctionnalités dassistance au développement. Editra manque pour le moment du support pour les textes en chinois, japonais et coréen. Sur GNU-Linux, Editra nécessite wxPython."
# editor.rpy:167
old "This may have occured because wxPython is not installed on this system."
@@ -523,7 +522,7 @@ translate french strings:
# gui7.rpy:236
old "Select Accent and Background Colors"
new "Selectionner les couleurs des surbrillances et des arrière-plans"
new "Sélectionner les couleurs des surbrillances et des arrière-plans"
# gui7.rpy:250
old "Please click on the color scheme you wish to use, then click Continue. These colors can be changed and customized later."
@@ -606,8 +605,8 @@ translate french strings:
new "ERREUR"
# interface.rpy:356
old "While [what!q], an error occured:"
new "Pendant que [what!q], une erreur est survenue :"
old "While [what!qt], an error occured:"
new "Pendant que [what!qt], une erreur est survenue :"
# interface.rpy:356
old "[exception!q]"
@@ -819,7 +818,7 @@ translate french strings:
# navigation.rpy:249
old "No TODO comments found.\n\nTo create one, include \"# TODO\" in your script."
new "Aucun commentaire «TODO» trouvé.\n\nPour en créer un, écrivez \"# TODO\" dans le script."
new "Aucun commentaire « TODO » trouvé.\n\nPour en créer un, écrivez \"# TODO\" dans le script."
# navigation.rpy:256
old "The list of names is empty."
@@ -919,7 +918,7 @@ translate french strings:
# preferences.rpy:173
old "Show templates"
new "Afficher les modèles"
new "Afficher les modèles"
# preferences.rpy:174
old "Show edit file section"
@@ -979,7 +978,7 @@ translate french strings:
# project.rpy:597
old "Please choose the projects directory using the directory chooser.\n{b}The directory chooser may have opened behind this window.{/b}"
new "Choisissez le répertoire de projets avec le sélectionneur de fichier.\n{b}Il se peut que le sélectionneur de fichier souvre derière cette fenêtre.{/b}"
new "Choisissez le répertoire de projets avec le sélectionneur de fichier.\n{b}Il se peut que le sélectionneur de fichier souvre derrière cette fenêtre.{/b}"
# project.rpy:597
old "This launcher will scan for projects in this directory, will create new projects in this directory, and will place built projects into this directory."
@@ -1107,7 +1106,7 @@ translate french strings:
# updater.rpy:97
old "{b}Recommended.{/b} The version of Ren'Py that should be used in all newly-released games."
new "{b}Recommendé.{/b} La version de RenPy qui devrait être utilisée pour tous les jeux récemment sortis."
new "{b}Recommandé.{/b} La version de RenPy qui devrait être utilisée pour tous les jeux récemment sortis."
# updater.rpy:102
old "Prerelease"
@@ -1115,7 +1114,7 @@ translate french strings:
# updater.rpy:108
old "A preview of the next version of Ren'Py that can be used for testing and taking advantage of new features, but not for final releases of games."
new "Un aperçu de la prochaine version de RenPy qui peut être utilisée pour faire des tests et profiter de toutes nouvelles fonctionnalitées, mais par pour créer de nouveaux jeux."
new "Un aperçu de la prochaine version de RenPy qui peut être utilisée pour faire des tests et profiter de toutes nouvelles fonctionnalités, mais pas pour créer de nouveaux jeux."
# updater.rpy:114
old "Experimental"
@@ -1185,3 +1184,690 @@ translate french strings:
old "Proceed"
new "Continuer"
# game/add_file.rpy:37
old "The file name may not be empty."
new "Le nom de fichier ne peut pas être vide."
# game/android.rpy:31
old "A 64-bit/x64 Java 8 Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Un kit de développement Java 8 64-bit/x64 est requis pour construire des paquets Android depuis Windows. Le JDK est différent du JRE, donc il est possible d'avoir Java sans avoir le JDK.\n\n{a=https://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot}Téléchargez et installez le JDK{/a}, puis redémarrez Ren'Py."
# game/android.rpy:50
old "Selects the Debug build, which can be accessed through Android Studio. Changing between debug and release builds requires an uninstall from your device."
new "Selectionne le build de Debug, qui peut être atteint depuis Android Studio. Passer d'un build debug à un build release nécessitera une désinstallation sur votre appareil."
# game/android.rpy:51
old "Selects the Release build, which can be uploaded to stores. Changing between debug and release builds requires an uninstall from your device."
new "Sélectionne le build de Release, qui peut être posté sur des magasins d'applications. Passer d'un build debug à un build release nécessitera une désinstallation sur votre appareil."
# game/android.rpy:313
old "Android: [project.current.display_name!q]"
new "Android : [project.current.display_name!q]"
# game/androidstrings.rpy:7
old "{} is not a directory."
new "{} n'est pas un répertoire."
# game/androidstrings.rpy:8
old "{} does not contain a Ren'Py game."
new "{} ne contient pas un jeu Ren'Py."
# game/androidstrings.rpy:9
old "Run configure before attempting to build the app."
new "Lancez la configuration avant d'essayer de construire l'app."
# game/androidstrings.rpy:10
old "Google Play support is enabled, but build.google_play_key is not defined."
new "Le support Google Play est activé, mais build.google_play_key n'est pas défini."
# game/androidstrings.rpy:11
old "Updating project."
new "Mise à jour du projet."
# game/androidstrings.rpy:12
old "Creating assets directory."
new "Création du répertoire d'assets."
# game/androidstrings.rpy:13
old "Creating expansion file."
new "Création du fihier d'expansion."
# game/androidstrings.rpy:14
old "Packaging internal data."
new "Paquetage des données internes."
# game/androidstrings.rpy:15
old "I'm using Gradle to build the package."
new "J'utilise Gradle pour construire le package."
# game/androidstrings.rpy:16
old "Uploading expansion file."
new "Téléversement du fichier d'expansion."
# game/androidstrings.rpy:17
old "The build seems to have failed."
new "Le build semble avoir échoué."
# game/androidstrings.rpy:18
old "Launching app."
new "Lancement de l'app."
# game/androidstrings.rpy:19
old "The build seems to have succeeded."
new "Le build semble avoir réussi."
# game/androidstrings.rpy:20
old "The arm64-v8a version works on newer Android devices, the armeabi-v7a version works on older devices, and the x86_64 version works on the simulator and chromebooks."
new "La version arm64-v8a fonctionne sur les appareils Android les plus récents, la version armeabi-v7a fonctionne sur les plus anciens, et la version x86_64 version fonctionne sur les simulateurs et chromebooks."
# game/androidstrings.rpy:21
old "The universal version works everywhere but is larger."
new "La version universelle fonctionne partout mais pèse plus lourd."
# game/androidstrings.rpy:22
old "What is the full name of your application? This name will appear in the list of installed applications."
new "quel est le nom complet de votre application ? Ce nom apparaîtra dans la liste des applications installées."
# game/androidstrings.rpy:23
old "What is the short name of your application? This name will be used in the launcher, and for application shortcuts."
new "Quel est le nom court de votre application ? Ce nom sera utilisé dans le launcher, et pour les raccourcis d'application."
# game/androidstrings.rpy:24
old "What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot."
new "Quel est le nom du package?\n\nIl est généralement de la forme com.domain.program ou com.domain.email.program. Il doit uniquement contenir des lettres ASCII et des points. Il doit contenir au moins un point."
# game/androidstrings.rpy:25
old "The package name may not be empty."
new "Le nom du package ne peut pas être vide."
# game/androidstrings.rpy:26
old "The package name may not contain spaces."
new "Le nom de package ne peut pas contenir d'espaces."
# game/androidstrings.rpy:27
old "The package name must contain at least one dot."
new "Le nom du package doit contenir au moins un point."
# game/androidstrings.rpy:28
old "The package name may not contain two dots in a row, or begin or end with a dot."
new "Le nom du package ne peut pas contenir deux points de suite, ni commencer ni finir par un point."
# game/androidstrings.rpy:29
old "Each part of the package name must start with a letter, and contain only letters, numbers, and underscores."
new "Chaque partie du nom de package doit commencer par une lettre, et ne contenir que des lettres, chiffres, et tirets de soulignement."
# game/androidstrings.rpy:30
old "{} is a Java keyword, and can't be used as part of a package name."
new "{} est un mot-clé Java, et ne peut pas faire partie d'un nom de package."
# game/androidstrings.rpy:31
old "What is the application's version?\n\nThis should be the human-readable version that you would present to a person. It must contain only numbers and dots."
new "Quelle est la version de l'application ?\n\nCe devrait être la version lisible par un humain que vous présentez à une personne. Il doit contenir uniquement des chiffres et des points."
# game/androidstrings.rpy:32
old "The version number must contain only numbers and dots."
new "Le numéro de version ne peut contenir que des nombres et des points."
# game/androidstrings.rpy:33
old "What is the version code?\n\nThis must be a positive integer number, and the value should increase between versions."
new "Quel est le code de version ?\n\nCe doit être un nombre entier positif, et la valeur devrait augmenter entre les versions."
# game/androidstrings.rpy:34
old "The numeric version must contain only numbers."
new "Le numéro de version ne peut contenir que des chiffres."
# game/androidstrings.rpy:35
old "How would you like your application to be displayed?"
new "Comment voulez-vous que l'application soit affichée ?"
# game/androidstrings.rpy:36
old "In landscape orientation."
new "En orientation paysage."
# game/androidstrings.rpy:37
old "In portrait orientation."
new "En orientation portrait."
# game/androidstrings.rpy:38
old "In the user's preferred orientation."
new "Dans l'orientation préférée de l'utilisateur."
# game/androidstrings.rpy:39
old "Which app store would you like to support in-app purchasing through?"
new "Sur quel magasin d'applications voulez-vous vous baser pour les achats dans l'application ?"
# game/androidstrings.rpy:40
old "Google Play."
new "Google Play."
# game/androidstrings.rpy:41
old "Amazon App Store."
new "Amazon App Store."
# game/androidstrings.rpy:42
old "Both, in one app."
new "Les deux, en une seule app."
# game/androidstrings.rpy:43
old "Neither."
new "Aucun."
# game/androidstrings.rpy:44
old "Would you like to create an expansion APK?"
new "Voulez-vous créer un APK d'expansion ?"
# game/androidstrings.rpy:45
old "Automatically installing expansion APKs {a=https://issuetracker.google.com/issues/160942333}may not work on Android 11{/a}."
new "Les APK d'expansion s'installant automatiquement {a=https://issuetracker.google.com/issues/160942333}peuvent ne pas fonctionner sur Android 11{/a}."
# game/androidstrings.rpy:46
old "No. Size limit of 100 MB on Google Play, but can be distributed through other stores and sideloaded."
new "Non. Limite de taille de 100 MB sur Google Play, mais il peut être distribué sur d'autres magasins et installé directement."
# game/androidstrings.rpy:47
old "Yes. 2 GB size limit, but won't work outside of Google Play. (Read the documentation to get this to work.)"
new "Oui. Limite de taille de 2 GB, mais ne marchera pas en-dehors de Google Play. (Lisez la documentation pour le faire marcher.)"
# game/androidstrings.rpy:48
old "Do you want to allow the app to access the Internet?"
new "Voulez-vous autoriser l'app à accéder à Internet ?"
# game/androidstrings.rpy:49
old "Do you want to automatically update the Java source code?"
new "Voulez-vous mettre à jour le code source de Java automatiquement ?"
# game/androidstrings.rpy:50
old "Yes. This is the best choice for most projects."
new "Oui. C'est le meilleur choix pour la plupart des projets."
# game/androidstrings.rpy:51
old "No. This may require manual updates when Ren'Py or the project configuration changes."
new "Non. Cela pourra nécessiter des mises à jour manuelles quand Ren'Py ou la configuration du projet changeront."
# game/androidstrings.rpy:52
old "Unknown configuration variable: {}"
new "Variable de configuration inconnue : {}"
# game/androidstrings.rpy:53
old "I'm compiling a short test program, to see if you have a working JDK on your system."
new "Je compile un petit programme de test, pour voir si un JDK fonctionnel est installé sur votre système."
# game/androidstrings.rpy:54
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Without a working JDK, I can't continue."
new "L'usage de javac pour compiler un programme de test a échoué. Si vous n'avez pas encore installé le JDK, téléchargez-le :\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nLe JDK est différent du JRE, il est donc possible que vous ayiez Java sans avoir le JDK. Sans un JDK en état de marche, je ne peux pas continuer."
# game/androidstrings.rpy:55
old "The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
new "La version de Java sur votre ordinateur n'a pas l'air d'être JDK 8, qui est la seule version supportée par le SDK Android. Si vous avez besoin d'installer JDK 8, vous pouvez le télécharger depuis :\n\nhttps://adoptopenjdk.net/?variant=openjdk8&jvmVariant=hotspot\n\nVous pouvez aussi aussi modifier la variable d'environnement JAVA_HOME pour utiliiser une différente version de Java."
# game/androidstrings.rpy:56
old "The JDK is present and working. Good!"
new "Le JDK est présent et il marche. Super !"
# game/androidstrings.rpy:57
old "The Android SDK has already been unpacked."
new "Le SDK Android a été dépaqueté."
# game/androidstrings.rpy:58
old "Do you accept the Android SDK Terms and Conditions?"
new "Acceptez-vous les termes et conditions du SDK Android ?"
# game/androidstrings.rpy:59
old "I'm downloading the Android SDK. This might take a while."
new "Je télécharge le SDK Android, ce qui peut prendre un moment."
# game/androidstrings.rpy:60
old "I'm extracting the Android SDK."
new "J'extrais le SDK Android."
# game/androidstrings.rpy:61
old "I've finished unpacking the Android SDK."
new "J'ai terminé d'extraire le SDK Android."
# game/androidstrings.rpy:62
old "I'm about to download and install the required Android packages. This might take a while."
new "Je suis sur le point de télécharger et d'installer les paquets Android requis, ce qui peut prendre un moment."
# game/androidstrings.rpy:63
old "I was unable to accept the Android licenses."
new "L'acceptation des licences Android."
# game/androidstrings.rpy:65
old "I was unable to install the required Android packages."
new "L'installation des paquets Android requis a échoué."
# game/androidstrings.rpy:66
old "I've finished installing the required Android packages."
new "L'installation des paquets Android requis est terminée."
# game/androidstrings.rpy:67
old "You set the keystore yourself, so I'll assume it's how you want it."
new "Vous avez vous-même spécifié un keystore, donc je vais supposer que vous le voulez."
# game/androidstrings.rpy:68
old "You've already created an Android keystore, so I won't create a new one for you."
new "Vous avez déjà créé un keystore Android, donc je ne vais pas en créer un pour vous."
# game/androidstrings.rpy:69
old "I can create an application signing key for you. Signing an application with this key allows it to be placed in the Android Market and other app stores.\n\nDo you want to create a key?"
new "Je peux créer une clé de signature d'application pour vous. Signer une application avec cette clé lui permet d'être placée sur l'Android Market et d'autres magasins d'applications.\n\nVoulez-vous crer une clé ?"
# game/androidstrings.rpy:70
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "Je vais créer une clé dans le fichier android.keystore.\n\nVous devez créer une sauvegarde de ce fichier. Si vous le perdez, vous ne pourrez plus mettre à jour votre application.\n\nVous devez aussi garder cette clé secrète. Si de mauvaises personnes y ont accès, ils pourraient faire de fausses versions de votre application, et potentiellement voler les données de vos utilisateurs.\n\nAllez-vous faire une sauvegarde de android.keystore, et le arder dans un endroit sûr ?"
# game/androidstrings.rpy:71
old "Please enter your name or the name of your organization."
new "Entrez votre nom ou celui de votre organisation."
# game/androidstrings.rpy:72
old "Could not create android.keystore. Is keytool in your path?"
new "Impossible de créer android.keystore. Est-ce que le keytool est dans votre PATH ?"
# game/androidstrings.rpy:73
old "I've finished creating android.keystore. Please back it up, and keep it in a safe place."
new "J'ai terminé la création de android.keystore. Faites-en une sauvegarde, et gardez-le secret."
# game/androidstrings.rpy:74
old "It looks like you're ready to start packaging games."
new "Il semblerait que vous êtes prêt à commencer à empaqueter des jeux."
# game/choose_directory.rpy:140
old "Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."
new "Ren'Py n'a pas été capable de lancer python avec tkinter pour choisir le répertoire. Installer le package python3-tk ou tkinter."
# game/choose_directory.rpy:158
old "The selected projects directory is not writable."
new "Le répertoire de projets sélectionné n'est pas ouvert en écriture."
# game/choose_theme.rpy:508
old "changing the theme"
new "changer le thème"
# game/distribute.rpy:1126
old "Signing the Macintosh application...\n(This may take a long time.)"
new "Signature de l'application Macintosh...\n(Ceci peut prendre longtemps.)"
# game/distribute_gui.rpy:157
old "Build Distributions: [project.current.display_name!q]"
new "Construire les Distributions : [project.current.display_name!q]"
# game/dmgcheck.rpy:50
old "Ren'Py is running from a read only folder. Some functionality will not work."
new "Ren'Py est lancé depuis un dossier en lecture seule. Certaines fonctionnalités ne fonctionneront pas."
# game/dmgcheck.rpy:50
old "This is probably because Ren'Py is running directly from a Macintosh drive image. To fix this, quit this launcher, copy the entire %s folder somewhere else on your computer, and run Ren'Py again."
new "C'est probablement parce que Ren'Py est lancé directement depuis une image disque Macintosh. Quittez le lanceur, copier le dossier %s entier quelque part d'autre sur votre ordinateur et relancez Ren'Py."
# game/editor.rpy:152
old "(Recommended) A modern and approachable text editor."
new "(Recommandé) Un éditeur de texte moderne et ergonomique."
# game/editor.rpy:164
old "Up to 150 MB download required."
new "Jusqu'à 150 MB requis pour le téléchargement."
# game/editor.rpy:186
old "System Editor"
new "Éditeur de texte du système"
# game/editor.rpy:202
old "None"
new "Aucun"
# game/editor.rpy:305
old "Edit [text]."
new "Modifier [text]."
# game/front_page.rpy:91
old "PROJECTS:"
new "PROJETS :"
# game/front_page.rpy:198
old "audio"
new "audio"
# game/front_page.rpy:215
old "Open project"
new "Ouvrir le projet"
# game/front_page.rpy:221
old "Actions"
new "Actions"
# game/front_page.rpy:252
old "Web"
new "Web"
# game/front_page.rpy:252
old "(Beta)"
new "(Béta)"
# game/gui7.rpy:339
old "Custom. The GUI is optimized for a 16:9 aspect ratio."
new "Personnalisé. Le GUI est optimié pour un ratio de cadre 16:9."
# game/gui7.rpy:355
old "WIDTH"
new "LARGEUR"
# game/gui7.rpy:355
old "Please enter the width of your game, in pixels."
new "Entrez la largeur de votre jeu, en pixels."
# game/gui7.rpy:365
old "The width must be a number."
new "La largeur doit être un nombre."
# game/gui7.rpy:371
old "HEIGHT"
new "HAUTEUR"
# game/gui7.rpy:371
old "Please enter the height of your game, in pixels."
new "Entrez la hauteur de votre jeu, en pixels."
# game/gui7.rpy:381
old "The height must be a number."
new "La hauteur doit être un nombre."
# game/gui7.rpy:429
old "creating a new project"
new "création d'un nouveau projet"
# game/gui7.rpy:433
old "activating the new project"
new "activation du nouevau projet"
# game/install.rpy:33
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
new "Impossible d'installer [name!t], car aucunun fichier correspondant à [zipglob] n'a été trouvé dans le répertoire de Ren'Py."
# game/install.rpy:76
old "Successfully installed [name!t]."
new "Installé [name!t] avec succès."
# game/install.rpy:110
old "Install Libraries"
new "Installer les Bibliothèques"
# game/install.rpy:125
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
new "Ce menu vous permet d'installer des bibliothèques qui ne peuvent pas être distribuées avec Ren'Py. Certaines peuvent requérir d'accepter une licence tierce avant d'être utilisées ou distribuées."
# game/install.rpy:131
old "Install Live2D Cubism SDK for Native"
new "Installer le SDK Live2D Cubism for Native"
# game/install.rpy:140
old "The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc."
new "Le {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}SDK Cubism for Native{/a} ajoute le support pour l'affichage de modèles Live2D. Placez CubismSdkForNative-4-{i}version{/i}.zip dans le répertoire de Ren'Py, puis cliquez sur Installer. Publier un jeu avec Live2D nécessite d'accepter une licence de Live2D, Inc."
# game/install.rpy:144
old "Live2D in Ren'Py doesn't support the Web, Android x86_64 (including emulators and Chrome OS), and must be added to iOS projects manually. Live2D must be reinstalled after upgrading Ren'Py or installing Android support."
new "Live2D dans Ren'Py ne supporte pas le Web, Android x86_64 (y compris les émulateurs et Chrome OS), et doit être ajouté aux projets iOS manuellement. Live2D doit être réinstallé après avoir mis à jour Ren'Py ou installé le support Android."
# game/install.rpy:151
old "Install Steam Support"
new "Installer le upport Steam"
# game/install.rpy:160
old "Before installing Steam support, please make sure you are a {a=https://partner.steamgames.com/}Steam partner{/a}."
new "Avant d'installer le support Steam, vérifiez que vous êtes bien un {a=https://partner.steamgames.com/}partenaire Steam{/a}."
# game/install.rpy:172
old "Steam support has already been installed."
new "Le support Steam a déjà été installé."
# game/install.rpy:176
old "Open Ren'Py SDK Directory"
new "Ouvrir le répertoire de Ren'Py"
# game/interface.rpy:136
old "Ren'Py Sponsor Information"
new "Information sur les sponsors de Ren'Py Sponsor"
# game/interface.rpy:372
old "opening the log file"
new "ouverture du fichier log"
# game/ios.rpy:233
old "iOS: [project.current.display_name!q]"
new "iOS : [project.current.display_name!q]"
# game/itch.rpy:43
old "Downloading the itch.io butler."
new "Téléchargement du butler itch.io."
# game/navigation.rpy:168
old "Navigate: [project.current.display_name!q]"
new "Explorer : [project.current.display_name!q]"
# game/new_project.rpy:81
old "You will be creating an [new_project_language]{#this substitution may be localized} language project. Change the launcher language in preferences to create a project in another language."
new "Vous allez créer un projet en [new_project_language]{#this substitution may be localized}. Changez la langue du launcher dans les préférences pour créer un projet dans une autre langue."
# game/preferences.rpy:143
old "Install libraries"
new "Installer les bibliothèques"
# game/preferences.rpy:145
old "Reset window size"
new "Réinisialiser la taille de la fenêtre"
# game/preferences.rpy:188
old "Force new tutorial"
new "Forcer le nouveau tutoriel"
# game/preferences.rpy:192
old "Legacy options"
new "Options de compatibilité"
# game/preferences.rpy:197
old "Sponsor message"
new "Message des sponsors"
# game/preferences.rpy:199
old "Dark theme"
new "Thème sombre"
# game/translations.rpy:91
old "Translations: [project.current.display_name!q]"
new "Traductions : [project.current.display_name!q]"
# game/translations.rpy:342
old "Extract Dialogue: [project.current.display_name!q]"
new "Extraire les dialogues : [project.current.display_name!q]"
# game/updater.rpy:101
old "The update channel controls the version of Ren'Py the updater will download."
new "Les canaux de mise à jour contrôlent la version de Ren'Py qui sera téléchargée."
# game/updater.rpy:110
old "• This version is installed and up-to-date."
new "• Cette version est installée et à jour."
# game/updater.rpy:118
old "%B %d, %Y"
new "%d %B %Y"
# game/updater.rpy:188
old "Fetching the list of update channels"
new "Vérification de la liste des canaux de mise à jour"
# game/updater.rpy:193
old "downloading the list of update channels"
new "téléchargement de la liste des canaux de mise à jour"
# game/updater.rpy:196
old "parsing the list of update channels"
new "compulsion de la liste des canaux de mise à jour"
# game/web.rpy:242
old "Preparing progressive download"
new "Préparation du téléchargement progressif"
# game/web.rpy:277
old "Web: [project.current.display_name!q]"
new "Web : [project.current.display_name!q]"
# game/web.rpy:307
old "Build Web Application"
new "Construire l'application Web"
# game/web.rpy:308
old "Build and Open in Browser"
new "Construire et ouvrir dans le navigateur"
# game/web.rpy:309
old "Open in Browser"
new "Ouvrir dans le navigateur"
# game/web.rpy:310
old "Open build directory"
new "Ouvrir le répertoire des distributions"
# game/web.rpy:314
old "Support:"
new "Support :"
# game/web.rpy:322
old "RenPyWeb Home"
new "Accueil RenPyWeb"
# game/web.rpy:323
old "Beuc's Patreon"
new "Patreon de Beuc"
# game/web.rpy:341
old "Images and musics can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
new "Les images et musiques peuvent être téléchargées pendant le jeu. Un fichier 'progressive_download.txt' sera créé pour contrôler cette fonctionnalité."
# game/web.rpy:345
old "Current limitations in the web platform mean that loading large images, audio files, or movies may cause audio or framerate glitches, and lower performance in general."
new "Les limitations actuelles de la platforme web implique que changer de gros images, fichiers audio ou films peuvent causer des bugs audio ou des pertes de fps, et une baisse de performance en général."
# game/web.rpy:354
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
new "Avant l'empaquetage des apps web, vous devrez télécharger RenPyWeb, le support web de Ren'Py. Voulez-vous télécharger RenPyWeb maintenant ?"
# game/preferences.rpy:206
old "Default theme"
new "Thème par défaut"
# game/preferences.rpy:209
old "Custom theme"
new "Thème personnalisé"
# game/web.rpy:330
old "Images and music can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
new "Les images et la musique peuvent être téléchargées pendant le jeu. Un fichier 'progressive_download.txt' sera créé pour configurer cette fonction."
# game/web.rpy:334
old "Current limitations in the web platform mean that loading large images may cause audio or framerate glitches, and lower performance in general. Movies aren't supported."
new "Les limitations actuelles de la platforme web signifient que le chargement de grandes images peuvent causer des bugs audio ou des saccades. Les objets 'Movies' ne sont pas supportés."
# game/web.rpy:338
old "There are known issues with Safari and other Webkit-based browsers that may prevent games from running."
new "Des bugs connus avec Safari et d'autres navigateurs basés sur Webkit peuvent empêcher des jeux de fonctionner."
# game/android.rpy:38
old "Please select if you want a Play Bundle (for Google Play), or a Universal APK (for sideloading and other app stores)."
new "Faites le choix entre un Play Bundle (pour Google Play), ou un Universal APK (pour d'autres librairies d'applications)."
# game/android.rpy:53
old "Pairs with a device over Wi-Fi, on Android 11+."
new "Appaire un autre appareil par Wi-Fi, sur Android 11+."
# game/android.rpy:54
old "Connects to a device over Wi-Fi, on Android 11+."
new "Se connecte à un appareil par Wi-Fi, sur Android 11+."
# game/android.rpy:56
old "Builds an Android App Bundle (ABB), intended to be uploaded to Google Play. This can include up to 2GB of data."
new "Construit un Android App Bundle (ABB), fait pour être uploadé sur Google Play. Peut inclure jusqu'à 2GB de données."
# game/android.rpy:57
old "Builds a Universal APK package, intended for sideloading and stores other than Google Play. This can include up to 2GB of data."
new "Construit un paquet Universal APK, fait pour d'autres librairies que Google Play. Peut inclure jusqu'à 2GB de données."
# game/android.rpy:384
old "Play Bundle"
new "Play Bundle"
# game/android.rpy:388
old "Universal APK"
new "Universal APK"
# game/android.rpy:445
old "Wi-Fi Debugging Pair"
new "Debug d'appairage Wi-Fi"
# game/android.rpy:449
old "Wi-Fi Debugging Connect"
new "Debug de connexion Wi-Fi"
# game/android.rpy:537
old "Wi-Fi Pairing Code"
new "Code d'appairage Wi-Fi"
# game/android.rpy:537
old "If supported, this can be found in 'Developer options', 'Wireless debugging', 'Pair device with pairing code'."
new "Si supporté, peut être trouvé dans 'Options de développement', 'Débogage sans fil', 'Appairer appareil avec un code'."
# game/android.rpy:544
old "Pairing Host & Port"
new "Hôte d'appairage & Port"
# game/android.rpy:560
old "IP Address & Port"
new "Addresse IP & Port"
# game/android.rpy:560
old "If supported, this can be found in 'Developer options', 'Wireless debugging'."
new "Si supporté, peut être trouvé dans 'Options de développement', 'Débogage sans fil'."
# game/gui7.rpy:311
old "{size=-4}\n\nThis will not overwrite gui/main_menu.png, gui/game_menu.png, and gui/window_icon.png, but will create files that do not exist.{/size}"
new "{size=-4}\n\nCeci ne remplacera pas gui/main_menu.png, gui/game_menu.png, ou gui/window_icon.png, mais créera des fichiers s'ils n'existent pas.{/size}"
# game/ios.rpy:339
old "There are known issues with the iOS simulator on Apple Silicon. Please test on x86_64 or iOS devices."
new "Des erreurs sont rapportées sur le simulateur d'iOS sur Apple Silicon. Préférez des appareils x86_64 ou iOS."
# game/android.rpy:38
old "RAPT has been installed, but a bundle key hasn't been configured. Please create a new key, or restore bundle.keystore."
new "RAPT a été installé, mais aucune clé de paquet n'a été configurée. Créez une nouvelle clé, ou restaurez bundle.keystore."
# game/androidstrings.rpy:16
old "I'm installing the bundle."
new "J'installe le paquet."
# game/androidstrings.rpy:30
old "How much RAM do you want to allocate to Gradle?\n\nThis must be a positive integer number."
new "Combien de RAM voulez-vous allouer à Gradle ?\n\nEntrez un nombre entier positif."
# game/androidstrings.rpy:31
old "The RAM size must contain only numbers."
new "La taille de RAM ne doit contenir que des chiffres."
# game/androidstrings.rpy:55
old "I can create an application signing key for you. This key is required to create Universal APK for sideloading and stores other than Google Play.\n\nDo you want to create a key?"
new "Je paux vous créer une clé de signature d'application. Cette clé est nécessaire pour créer des Universal APK pour des autres stores que Google Play.\n\nVoulez-vous créer une clé ?"
# game/androidstrings.rpy:59
old "I can create a bundle signing key for you. This key is required to build an Android App Bundle (AAB) for upload to Google Play.\n\nDo you want to create a key?"
new "Je peux vous créer une clé de signature de paquets. Cette clé est nécessaire pour construire un Android App Bundle (AAB) pour uploader sur Google Play.\n\nVoulez-vous créer une clé ?"
# game/androidstrings.rpy:60
old "I will create the key in the bundle.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of bundle.keystore, and keep it in a safe place?"
new "Je vais créer la clé dans le fichier bundle.keystore.\n\nVous devez conserver ce fichier. Sans lui, vous ne pourrez plus mettre à jour votre application.\n\nVous devez aussi la garder cachée. Si des malotrus accèdent à ce fichier, ils pourront faire des faussez versions de votre application, et potentiellement voler les données des utilisateurs.\n\nAllez-vous faire une sauvegarde de bundle.keystore, et le garder bien caché ?"
# game/androidstrings.rpy:61
old "Could not create bundle.keystore. Is keytool in your path?"
new "Impossible de créer bundle.keystore. Est-ce que le keytool est dans votre path ?"
# game/preferences.rpy:206
old "Daily check for update"
new "Vérification quotidienne des mises à jour"
+1 -3
View File
@@ -1,5 +1,4 @@

translate french strings:
translate french strings:
# _layout/classic_joystick_preferences.rpym:94
old "Joystick Mapping"
@@ -24,4 +23,3 @@ translate french strings:
# _compat/gamemenu.rpym:362
old "Next"
new "Suivant"
+20 -10
View File
@@ -1,5 +1,4 @@

translate french strings:
translate french strings:
# options.rpy:1
old "## This file contains options that can be changed to customize your game."
@@ -35,19 +34,19 @@ translate french strings:
# options.rpy:31
old "## Text that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
new "## Text qui est placé dans l’écran « À propos ». Pour insérer une ligne vide entre deux paragraphes écrivez \\n\\n."
new "## Texte qui est placé dans l’écran « À propos ». Pour insérer une ligne vide entre deux paragraphes écrivez \\n\\n."
# options.rpy:37
old "## A short name for the game used for executables and directories in the built distribution. This must be ASCII-only, and must not contain spaces, colons, or semicolons."
new "## Un nom court pour le jeu qui sera utilisé pour les répertoires et le nom de lexécutable. Il ne doit contenir que des caractères ASCII et ne doit pas contenir despace, de virgules ou de points-virgule."
new "## Un nom court pour le jeu qui sera utilisé pour les répertoires et le nom de lexécutable. Il ne doit contenir que des caractères ASCII et ne doit pas contenir despace, de virgules ou de points-virgules."
# options.rpy:44
old "## Sounds and music"
new "## Sons et musiques"
# options.rpy:46
old "## These three variables control which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
new "## Ces trois variables contrôlent quels mixeurs sont affichés au joueur par défaut. Configurer lun de ceux-ci à False (Faux) cachera le mixeur concerné."
# gui/game/options.rpy:47
old "## These three variables control, among other things, which mixers are shown to the player by default. Setting one of these to False will hide the appropriate mixer."
new "## Ces trois variables contrôlent, entre autres, quels mixeurs sont affichés au joueur par défaut. Configurer lun de ceux-ci à False (Faux) cachera le mixeur concerné."
# options.rpy:55
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
@@ -63,7 +62,7 @@ translate french strings:
# options.rpy:71
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
new "## Ces varaibles configurent les transitions qui sont utilisées quand certains événements surviennent. Chaque variable peuvent être configurée pour une transition. La valeur None indique quaucune transition ne doit être utilisée."
new "## Ces variables configurent les transitions qui sont utilisées quand certains événements surviennent. Chaque variable peuvent être configurée pour une transition. La valeur None indique quaucune transition ne doit être utilisée."
# options.rpy:75
old "## Entering or exiting the game menu."
@@ -107,7 +106,7 @@ translate french strings:
# options.rpy:123
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
new "## Le délai davancée automatique. Des nombres importants entraîne une longue attente. Des valeurs réputées correctes sont comprises dans une plage allant de 0 à 30."
new "## Le délai davancée automatique. Des nombres importants entraînent une longue attente. Des valeurs réputées correctes sont comprises dans une plage allant de 0 à 30."
# options.rpy:129
old "## Save directory"
@@ -115,7 +114,7 @@ translate french strings:
# options.rpy:131
old "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
new "## Ces valeurs, dépendant de la plateforme, détermine lemplacement où RenPy stockera les fichiers de sauvegarde. Les fichiers de sauvegardes seront stockés dans :"
new "## Ces valeurs, dépendant de la plateforme, déterminent lemplacement où RenPy stockera les fichiers de sauvegarde. Les fichiers de sauvegardes seront stockés dans :"
# options.rpy:134
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
@@ -193,3 +192,14 @@ translate french strings:
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## Le nom dutilisateur et du projet associé au projet itch.io, séparé par un slash."
# gui/game/options.rpy:31
old "## Text that is placed on the game's about screen. Place the text between the triple-quotes, and leave a blank line between paragraphs."
new "## Texte placé sur l'écran \"À propos\" du jeu. Placez le texte entre triples guillemets, et laissez une ligne entre les paragraphes."
# gui/game/options.rpy:82
old "## Between screens of the game menu."
new "## Entre les écrans du menu du jeu."
# gui/game/options.rpy:152
old "## Icon"
new "## Icône"
+87 -9
View File
@@ -1,5 +1,4 @@

translate french strings:
translate french strings:
# screens.rpy:9
old "## Styles"
@@ -63,7 +62,7 @@ translate french strings:
# screens.rpy:246
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## Les menus rapides sont affiché dans le jeu pour permettre un accès rapide à certaines fonctions."
new "## Les menus rapides sont affichés dans le jeu pour permettre un accès rapide à certaines fonctions."
# screens.rpy:261
old "Back"
@@ -135,7 +134,7 @@ translate french strings:
# screens.rpy:332
old "## Help isn't necessary or relevant to mobile devices."
new "## L'aide nest ni nécessaire ni pertinante sur les appareils mobiles."
new "## L'aide nest ni nécessaire ni pertinente sur les appareils mobiles."
# screens.rpy:333
old "Help"
@@ -239,7 +238,7 @@ translate french strings:
# screens.rpy:613
old "## This ensures the input will get the enter event before any of the buttons do."
new "## Cette instruction sassure que l’évenement enter aura lieu avant que lun des boutons ne fonctionne."
new "## Cette instruction sassure que l’évènement enter aura lieu avant que lun des boutons ne fonctionne."
# screens.rpy:629
old "## The grid of file slots."
@@ -279,7 +278,7 @@ translate french strings:
# screens.rpy:713
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## L’écran de préférence permet au joueur de configurer le jeu pour mieux correspondre à ses attentes."
new "## L’écran de préférences permet au joueur de configurer le jeu pour mieux correspondre à ses attentes."
# screens.rpy:716
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
@@ -299,7 +298,7 @@ translate french strings:
# screens.rpy:744
old "Rollback Side"
new "Sens dannulation"
new "Rembobinage côté"
# screens.rpy:745
old "Disable"
@@ -495,7 +494,7 @@ translate french strings:
# screens.rpy:1062
old "Molette vers le haut\nBouton de retour en arrière"
new "Mouse Wheel Up\nClick Rollback Side"
new "Mouse Wheel Up\nClic du côté rembobinage"
# screens.rpy:1066
old "Mouse Wheel Down"
@@ -627,7 +626,7 @@ translate french strings:
# screens.rpy:1344
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## Ce paramètre controle le maximum dentrée dans le mode NVL qui peuvent être affichée simultanément."
new "## Ce paramètre contrôle le maximum dentrée dans le mode NVL qui peuvent être affichée simultanément."
# screens.rpy:1406
old "## Mobile Variants"
@@ -641,3 +640,82 @@ translate french strings:
old "Menu"
new "Menu"
# gui/game/screens.rpy:114
old "## If there's a side image, display it above the text. Do not display on the phone variant - there's no room."
new "## Si il y a une side image, l'afficher au-dessus du texte. Ne pas l'afficher sur la version téléphone - pas assez de place."
# gui/game/screens.rpy:120
old "## Make the namebox available for styling through the Character object."
new "## Rendre la boîte du nom personnalisable à travers l'objet Character."
# gui/game/screens.rpy:172
old "## https://www.renpy.org/doc/html/screen_special.html#input"
new "## https://www.renpy.org/doc/html/screen_special.html#input"
# gui/game/screens.rpy:205
old "## https://www.renpy.org/doc/html/screen_special.html#choice"
new "## https://www.renpy.org/doc/html/screen_special.html#choice"
# gui/game/screens.rpy:245
old "## Ensure this appears on top of other screens."
new "## Assure qu'il apparaît au-dessus des autres screens."
# gui/game/screens.rpy:284
old "## Main and Game Menu Screens"
new "## Screens du menu principal et du menu de jeu"
# gui/game/screens.rpy:333
old "## The quit button is banned on iOS and unnecessary on Android and Web."
new "## Le bouton pour quitter est banni sur iOS et inutile sur Android et sur le Web."
# gui/game/screens.rpy:352
old "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
new "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
# gui/game/screens.rpy:356
old "## This ensures that any other menu screen is replaced."
new "## Ceci assure que tout autre screen de menu est remplacé."
# gui/game/screens.rpy:361
old "## This empty frame darkens the main menu."
new "## Cette frame vide obscurcit le menu principal."
# gui/game/screens.rpy:433
old "## Reserve space for the navigation section."
new "## Réserve de l'expace pour la section de navigation."
# gui/game/screens.rpy:612
old "## The page name, which can be edited by clicking on a button."
new "## Le nom de la page, qui peut être modifié en cliquant sur un bouton."
# gui/game/screens.rpy:669
old "## range(1, 10) gives the numbers from 1 to 9."
new "## range(1, 10) donne les nombres de 1 à 9."
# gui/game/screens.rpy:919
old "## This determines what tags are allowed to be displayed on the history screen."
new "## Ceci détermine quels tags peuvent être affichés sur le screen de l'historique."
# gui/game/screens.rpy:1063
old "Mouse Wheel Up\nClick Rollback Side"
new "Molette vers le haut\nClic sur le côté du Rollback"
# gui/game/screens.rpy:1078
old "Left Trigger\nLeft Shoulder"
new "Gâchettes gauche"
# gui/game/screens.rpy:1135
old "## https://www.renpy.org/doc/html/screen_special.html#confirm"
new "## https://www.renpy.org/doc/html/screen_special.html#confirm"
# gui/game/screens.rpy:1244
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
new "## Nous devons utiliser une police qui a le glyphe BLACK RIGHT-POINTING SMALL TRIANGLE."
# gui/game/screens.rpy:1292
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
new "## https://www.renpy.org/doc/html/screen_special.html#nvl"
# gui/game/screens.rpy:1049
old "Opens the accessibility menu."
new "Ouvre le menu d'accessibilité."
+1 -1
View File
@@ -12,6 +12,6 @@ label start:
e "Vous venez de créer un nouveau jeu Ren'Py."
e "Après avoir ajouté une histoire, des images et de la musique, vous pouvez le présenter au monde entier!"
e "Après avoir ajouté une histoire, des images et de la musique, vous pourrez le présenter au monde entier !"
return
+2 -2
View File
@@ -102,8 +102,8 @@ translate german strings:
new "Calibrating [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Press or move the [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Press or move the [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+2 -2
View File
@@ -138,8 +138,8 @@ translate german strings:
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
# gui.rpy:127
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
new "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
# gui.rpy:132
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
+33 -21
View File
@@ -7,7 +7,7 @@ translate german strings:
# about.rpy:43
old "View license"
new "Lizenz ansehen"
new "Lizenz anzeigen"
# add_file.rpy:28
old "FILENAME"
@@ -15,7 +15,7 @@ translate german strings:
# add_file.rpy:28
old "Enter the name of the script file to create."
new "Geben Sie den Namen der Script-Datei ein, um sie zu erstellen."
new "Geben Sie den Namen der zu erstellenden Script-Datei ein."
# add_file.rpy:31
old "The filename must have the .rpy extension."
@@ -34,8 +34,8 @@ translate german strings:
new "Um eine Android-Datei zu erstellen, laden Sie bitte RAPT herunter, entpacken Sie es und platzieren Sie es im RenPy Verzeichnis. Starten Sie dann bitte RenPy neu."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Ein 32-bit Java-Development-Kit wird benötigt, um Android-Packages auf Windows zu erstellen. Das JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java ohne das JDK installiert haben.\n\nBitte {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}laden Sie das JDK herunter und installieren Sie es{/a}, dann starten Sie den RenPy-Launcher neu."
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Ein x86 Java-Development-Kit wird benötigt, um Android-Packages auf Windows zu erstellen. Das JDK unterscheidet sich vom JRE, daher ist es möglich, dass Sie Java ohne das JDK installiert haben.\n\nBitte {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}laden Sie das JDK herunter und installieren Sie es{/a}, dann starten Sie den RenPy-Launcher neu."
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
@@ -235,7 +235,7 @@ translate german strings:
# distribute.rpy:443
old "Scanning project files..."
new "Projektdateien werden geprüft"
new "Projektdateien werden geprüft..."
# distribute.rpy:459
old "Building distributions failed:\n\nThe build.directory_name variable may not include the space, colon, or semicolon characters."
@@ -247,7 +247,7 @@ translate german strings:
# distribute.rpy:516
old "Scanning Ren'Py files..."
new "RenPy-Dateien werden geprüft"
new "RenPy-Dateien werden geprüft..."
# distribute.rpy:569
old "All packages have been built.\n\nDue to the presence of permission information, unpacking and repacking the Linux and Macintosh distributions on Windows is not supported."
@@ -255,7 +255,7 @@ translate german strings:
# distribute.rpy:752
old "Archiving files..."
new "Dateien werden archiviert"
new "Dateien werden archiviert..."
# distribute.rpy:1050
old "Unpacking the Macintosh application for signing..."
@@ -335,7 +335,7 @@ translate german strings:
# distribute_gui.rpy:242
old "Force Recompile"
new "Force Recompile"
new "Neu kompilieren"
# distribute_gui.rpy:246
old "Build"
@@ -409,6 +409,10 @@ translate german strings:
old "Open [text] directory."
new "Open [text] directory."
# front_page.rpy:91
old "PROJECTS:"
new "PROJEKTE:"
# front_page.rpy:93
old "refresh"
new "Aktualisieren"
@@ -469,6 +473,10 @@ translate german strings:
old "All script files"
new "Alle Dateien"
# front_page.rpy:221
old "Actions"
new "Aktionen"
# front_page.rpy:223
old "Navigate Script"
new "Skript navigieren"
@@ -479,7 +487,7 @@ translate german strings:
# front_page.rpy:237
old "Change/Update GUI"
new "Change/Update GUI"
new "GUI anpassen/aktualisieren"
# front_page.rpy:239
old "Change Theme"
@@ -487,7 +495,7 @@ translate german strings:
# front_page.rpy:242
old "Delete Persistent"
new "Persistent-Dateien löschen"
new "Persistenz-Dateien löschen"
# front_page.rpy:251
old "Build Distributions"
@@ -511,11 +519,11 @@ translate german strings:
# front_page.rpy:272
old "Checking script for potential problems..."
new "Überprüft Script auf potentielle Probleme"
new "Überprüfe Script auf potentielle Probleme..."
# front_page.rpy:287
old "Deleting persistent data..."
new "Löscht Persistent-Dateien"
new "Lösche Persistent-Dateien..."
# front_page.rpy:295
old "Recompiling all rpy files into rpyc files..."
@@ -606,8 +614,8 @@ translate german strings:
new "FEHLER"
# interface.rpy:356
old "While [what!q], an error occured:"
new "Während [what!q] ist ein Fehler aufgetreten:"
old "While [what!qt], an error occured:"
new "Während [what!qt] ist ein Fehler aufgetreten:"
# interface.rpy:356
old "[exception!q]"
@@ -879,7 +887,7 @@ translate german strings:
# preferences.rpy:94
old "Projects directory: [text]"
new "Projects directory: [text]"
new "Projektverzeichnis: [text]"
# preferences.rpy:96
old "Not Set"
@@ -891,7 +899,7 @@ translate german strings:
# preferences.rpy:117
old "Text editor: [text]"
new "Text editor: [text]"
new "Texteditor: [text]"
# preferences.rpy:133
old "Update Channel:"
@@ -923,11 +931,15 @@ translate german strings:
# preferences.rpy:174
old "Show edit file section"
new "Show edit file section"
new "'Dateien bearbeiten' anzeigen"
# preferences.rpy:175
old "Large fonts"
new "Large fonts"
new "Große Schriftarten"
# preferences.rpy:182
old "Sponsor message"
new "Sponsoren-Hinweis"
# preferences.rpy:178
old "Console output"
@@ -967,7 +979,7 @@ translate german strings:
# project.rpy:242
old "Ren'Py is scanning the project..."
new "RenPy scannt das Projekt"
new "RenPy scannt das Projekt..."
# project.rpy:568
old "Launching"
@@ -1031,7 +1043,7 @@ translate german strings:
# translations.rpy:224
old "Ren'Py is generating translations...."
new "RenPy erstellt Übersetzungen"
new "RenPy erstellt Übersetzungen..."
# translations.rpy:235
old "Ren'Py has finished generating [language] translations."
@@ -1087,7 +1099,7 @@ translate german strings:
# translations.rpy:374
old "Ren'Py is extracting dialogue...."
new "RenPy extrahiert Dialoge"
new "RenPy extrahiert Dialoge..."
# translations.rpy:378
old "Ren'Py has finished extracting dialogue. The extracted dialogue can be found in dialogue.[persistent.dialogue_format] in the base directory."
+2 -2
View File
@@ -102,8 +102,8 @@ translate greek strings:
new "Ρυθμίζεται το [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Πατήστε ή κουνήστε το [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Πατήστε ή κουνήστε το [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+2 -2
View File
@@ -138,8 +138,8 @@ translate greek strings:
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
# gui.rpy:127
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
new "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
# gui.rpy:132
old "## The placement of dialogue relative to the textbox. These can be a whole number of pixels relative to the left or top side of the textbox, or 0.5 to center."
+4 -4
View File
@@ -34,8 +34,8 @@ translate greek strings:
new "Για να χτίσετε πακέτα για το Android, παρακαλούμε κατεβάστε το RAPT και τοποθετήστε το στον φάκελο της Ren'Py. Κατόπιν αυτού, επανεκκινήστε τον Εκκινητή."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Αν εργάζεστε σε Windows, για τη δημιουργία πακέτων Android, απαιτείται ένα 32-bit Java Development Kit. Το JDK είναι διαφορετικό του JRE, οπότε μπορεί να έχετε Java χωρίς όμως να έχετε το JDK. Παρακαλoύμε λοιπόν να {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html} κατεβάσετε κι εγκαταστήσετε από εδώ το JDK{/a} και κατόπιν να επανεκκινήσετε τον Εκκινητή της Ren'Py. "
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Αν εργάζεστε σε Windows, για τη δημιουργία πακέτων Android, απαιτείται ένα x86 Java Development Kit. Το JDK είναι διαφορετικό του JRE, οπότε μπορεί να έχετε Java χωρίς όμως να έχετε το JDK. Παρακαλoύμε λοιπόν να {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html} κατεβάσετε κι εγκαταστήσετε από εδώ το JDK{/a} και κατόπιν να επανεκκινήσετε τον Εκκινητή της Ren'Py. "
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
@@ -606,8 +606,8 @@ translate greek strings:
new "ΣΦΑΛΜΑ"
# interface.rpy:356
old "While [what!q], an error occured:"
new "Ενόσω [what!q], συνέβη ένα σφάλμα:"
old "While [what!qt], an error occured:"
new "Ενόσω [what!qt], συνέβη ένα σφάλμα:"
# interface.rpy:356
old "[exception!q]"
+2 -2
View File
@@ -101,8 +101,8 @@
new "Mengkalibrasi [nama] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Tekan atau gerakan [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Tekan atau gerakan [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+1 -1
View File
@@ -138,7 +138,7 @@ translate indonesian strings:
new "## Tepi kotak bersisi urutan nama karakter, di kiri, atas, kanan, bawah."
# gui.rpy:127
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## Jika Benar, latar dari kotaknama akan di beri judul, jika Salah, latar dari kotaknama akan di ukur ulang."
# gui.rpy:132
+5 -6
View File
@@ -34,8 +34,8 @@ translate indonesian strings:
new "Untuk membuat package Android, silahkan download RAPT, unzip/extrak, dan taruh di direktori Ren,Py. Dan restart launcher Ren'Py."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Java Development Kit 32-bit di perlukan untuk membuat package Android di Windows, JDK itu berbeda dari JRE, jadi sangat mungkin kamu memiliki java tanpa JDK\n\nTolong {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}Download dan install JDK{/a}, lalu restart launcher Ren'Py "
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Java Development Kit 32-bit di perlukan untuk membuat package Android di Windows, JDK itu berbeda dari JRE, jadi sangat mungkin kamu memiliki java tanpa JDK\n\nTolong {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}Download dan install JDK{/a}, lalu restart launcher Ren'Py "
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
@@ -606,8 +606,8 @@ translate indonesian strings:
new "ERROR"
# interface.rpy:356
old "While [what!q], an error occured:"
new "Kesalahan terjadi ketika : [what!q] adalah :"
old "While [what!qt], an error occured:"
new "Kesalahan terjadi ketika : [what!qt] adalah :"
# interface.rpy:356
old "[exception!q]"
@@ -1253,7 +1253,7 @@ translate indonesian strings:
new "Navigasi: [project.current.display_name!q]"
# new_project.rpy:71
old "You will be creating an [new_project_language] language project. Change the launcher language in preferences to create a project in another language."
old "You will be creating an [new_project_language]{#this substitution may be localized} language project. Change the launcher language in preferences to create a project in another language."
new "Kamu akan membuat bahasa proyek : [new_project_language]. Ganti bahasa launcher di pengaturan untuk membuat proyek dalam bahasa lain."
# preferences.rpy:187
@@ -1271,4 +1271,3 @@ translate indonesian strings:
# translations.rpy:343
old "Extract Dialogue: [project.current.display_name!q]"
new "Extrak Dialog: [project.current.display_name!q]"
+2 -2
View File
@@ -102,8 +102,8 @@ translate italian strings:
new "Calibrazione [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Premi o muovi [control!r] [kind]."
old "Press or move the [control!s] [kind]."
new "Premi o muovi [control!s] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
+1 -1
View File
@@ -138,7 +138,7 @@ translate italian strings:
new "## I bordi del riquadro che contiene il nome del personaggio, in questo ordine: sinistro, superiore, destro, inferiore."
# gui.rpy:127
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## Se 'True', lo sfondo di namebox sarà tassellato (ripetuto come una piastrella). Se 'False' sarà invece scalato."
# gui.rpy:132
+4 -4
View File
@@ -34,8 +34,8 @@ translate italian strings:
new "Per compilare un pacchetto di Android si prega di scaricare RAPT, estrarlo, posizionarlo nella cartella di Ren'Py e riavviare il launcher di Ren'Py."
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "La versione a 32-bit del Java Development Kit é necessaria per compilare pacchetti Android su Windows. Il JDK é diverso dal JRE ed é quindi possibile che tu abbia installato Java senza però aver installato il JDK.\n\nSi prega di {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}scaricare ed installare il JDK{/a} e, successivamente, riavviare il launcher di Ren'Py."
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "La versione a 32-bit del Java Development Kit é necessaria per compilare pacchetti Android su Windows. Il JDK é diverso dal JRE ed é quindi possibile che tu abbia installato Java senza però aver installato il JDK.\n\nSi prega di {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}scaricare ed installare il JDK{/a} e, successivamente, riavviare il launcher di Ren'Py."
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
@@ -606,8 +606,8 @@ translate italian strings:
new "ERRORE"
# interface.rpy:356
old "While [what!q], an error occured:"
new "Durante [what!q], si é verificato un errore:"
old "While [what!qt], an error occured:"
new "Durante [what!qt], si é verificato un errore:"
# interface.rpy:356
old "[exception!q]"
+357 -7
View File
@@ -386,31 +386,31 @@ translate japanese strings:
# 00director.rpy:1576
old "Statement:"
new "Statement(命令):"
new "ステートメント:"
# 00director.rpy:1597
old "Tag:"
new "Tagタグ:"
new "画像タグ:"
# 00director.rpy:1613
old "Attributes:"
new "Attributes属性:"
new "画像属性:"
# 00director.rpy:1631
old "Transforms:"
new "Transforms(画像変形):"
new "変換:"
# 00director.rpy:1650
old "Behind:"
new "Behind(裏に表示:"
new "背後に表示:"
# 00director.rpy:1669
old "Transition:"
new "Transition(遷移演出):"
new "トランジション:"
# 00director.rpy:1687
old "Channel:"
new "ャンセル"
new "ャンネル:"
# 00director.rpy:1705
old "Audio Filename:"
@@ -439,3 +439,353 @@ translate japanese strings:
old "{size_mb:,.1f} MB in {count} textures."
new "{size_mb:,.1f} MB in {count} textures."
translate japanese strings:
# 00action_file.rpy:344
old "Save slot %s: [text]"
new "スロット%s: [text]にセーブ"
# 00action_file.rpy:417
old "Load slot %s: [text]"
new "スロット%s: [text]をロード"
# 00action_file.rpy:459
old "Delete slot [text]"
new "スロット[text]を削除"
# 00action_file.rpy:539
old "File page auto"
new "オートファイルページ"
# 00action_file.rpy:541
old "File page quick"
new "クイックファイルページ"
# 00action_file.rpy:543
old "File page [text]"
new "ファイルページ[text]"
# 00action_file.rpy:733
old "Next file page."
new "次のファイルページ"
# 00action_file.rpy:797
old "Previous file page."
new "前のファイルページ"
# 00action_file.rpy:876
old "Quick save."
new "クイックセーブ"
# 00action_file.rpy:895
old "Quick load."
new "クイックロード"
# 00action_other.rpy:344
old "Language [text]"
new "言語 [text]"
# 00director.rpy:1476
old "⬆"
new "⬆"
# 00director.rpy:1482
old "⬇"
new "⬇"
# 00library.rpy:150
old "bar"
new "バー"
# 00library.rpy:151
old "selected"
new "選択中"
# 00library.rpy:152
old "viewport"
new "ビューポート"
# 00library.rpy:153
old "horizontal scroll"
new "水平スクロール"
# 00library.rpy:154
old "vertical scroll"
new "垂直スクロール"
# 00library.rpy:155
old "activate"
new "有効"
# 00library.rpy:156
old "deactivate"
new "無効"
# 00library.rpy:157
old "increase"
new "増加"
# 00library.rpy:158
old "decrease"
new "減少"
# 00preferences.rpy:207
old "display"
new "表示"
# 00preferences.rpy:219
old "transitions"
new "トランジション"
# 00preferences.rpy:228
old "skip transitions"
new "トランジションをスキップ"
# 00preferences.rpy:230
old "video sprites"
new "ビデオ スプライト"
# 00preferences.rpy:239
old "show empty window"
new "空のウィンドウを表示"
# 00preferences.rpy:248
old "text speed"
new "テキストスピード"
# 00preferences.rpy:256
old "joystick"
new "ジョイスティック"
# 00preferences.rpy:256
old "joystick..."
new "ジョイスティック..."
# 00preferences.rpy:263
old "skip"
new "スキップ"
# 00preferences.rpy:266
old "skip unseen [text]"
new "未読の[text]をスキップ"
# 00preferences.rpy:271
old "skip unseen text"
new "未読のテキストをスキップ"
# 00preferences.rpy:273
old "begin skipping"
new "スキップ開始"
# 00preferences.rpy:277
old "after choices"
new "選択肢後"
# 00preferences.rpy:284
old "skip after choices"
new "選択肢後もスキップ"
# 00preferences.rpy:286
old "auto-forward time"
new "オート待ち時間"
# 00preferences.rpy:300
old "auto-forward"
new "オート送り"
# 00preferences.rpy:307
old "Auto forward"
new "オート送り"
# 00preferences.rpy:310
old "auto-forward after click"
new "クリック後もオート"
# 00preferences.rpy:319
old "automatic move"
new "自動ムービー"
# 00preferences.rpy:328
old "wait for voice"
new "ボイスを待つ"
# 00preferences.rpy:337
old "voice sustain"
new "voice sustain"
# 00preferences.rpy:346
old "self voicing"
new "セルフボイシング"
# 00preferences.rpy:355
old "clipboard voicing"
new "クリップボードボイシング"
# 00preferences.rpy:364
old "debug voicing"
new "ボイシングのデバッグ"
# 00preferences.rpy:373
old "emphasize audio"
new "オーディオの強調"
# 00preferences.rpy:382
old "rollback side"
new "ロールバックサイド"
# 00preferences.rpy:392
old "gl powersave"
new "GLパワーセーブ"
# 00preferences.rpy:398
old "gl framerate"
new "GLフレームレート"
# 00preferences.rpy:401
old "gl tearing"
new "GLティアリング"
# 00preferences.rpy:413
old "music volume"
new "音楽の音量"
# 00preferences.rpy:414
old "sound volume"
new "効果音の音量"
# 00preferences.rpy:415
old "voice volume"
new "ボイスの音量"
# 00preferences.rpy:416
old "mute music"
new "音楽をミュート"
# 00preferences.rpy:417
old "mute sound"
new "効果音をミュート"
# 00preferences.rpy:418
old "mute voice"
new "ボイスをミュート"
# 00preferences.rpy:419
old "mute all"
new "音声を全てミュート"
# _developer\developer.rpym:57
old "Show Image Load Log (F4)"
new "画像ロードログを表示する (F4)"
# _developer\developer.rpym:60
old "Hide Image Load Log (F4)"
new "画像ロードログを隠す (F4)"
# _developer\developer.rpym:447
old "Type to filter: "
new "フィルタして検索: "
# _developer\developer.rpym:575
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "テクスチャー: [tex_count] ([tex_size_mb:.1f] MB)"
# _developer\developer.rpym:579
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "イメージキャッシュ: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# renpy/common/00accessibility.rpy:76
old "Font Override"
new "フォントオーバーライド"
# renpy/common/00accessibility.rpy:80
old "Default"
new "デフォルト"
# renpy/common/00accessibility.rpy:84
old "DejaVu Sans"
new "DejaVu Sans"
# renpy/common/00accessibility.rpy:88
old "Opendyslexic"
new "Opendyslexic"
# renpy/common/00accessibility.rpy:94
old "Text Size Scaling"
new "テキストサイズのスケーリング"
# renpy/common/00accessibility.rpy:100
old "Reset"
new "リセット"
# renpy/common/00accessibility.rpy:105
old "Line Spacing Scaling"
new "行間のスケーリング"
# renpy/common/00accessibility.rpy:117
old "Self-Voicing"
new "セルフボイシング"
# renpy/common/00accessibility.rpy:121
old "Off"
new "オフ"
# renpy/common/00accessibility.rpy:125
old "Text-to-speech"
new "テキストを読む"
# renpy/common/00accessibility.rpy:129
old "Clipboard"
new "クリップボード"
# renpy/common/00accessibility.rpy:133
old "Debug"
new "デバッグ"
# renpy/common/00accessibility.rpy:191
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 "このメニューのオプションはアクセス性を改善するためのものです。すべてのゲームで動作するわけではなく、特定の組合せではゲームを正常にレンダリングしないでしょう。これはゲームやエンジンの問題ではありません。フォント変更時に最良の結果を得るには、テキストサイズをオリジナルのままにしてください。"
# renpy/common/00preferences.rpy:430
old "font transform"
new "フォント変換"
# renpy/common/00preferences.rpy:433
old "font size"
new "フォントサイズ"
# renpy/common/00preferences.rpy:441
old "font line spacing"
new "フォントの行間"
# renpy/common/_developer/developer.rpym:63
old "Image Attributes"
new "画像属性"
# renpy/common/_developer/developer.rpym:90
old "[name] [attributes] (hidden)"
new "[name] [attributes] (hidden)"
# renpy/common/_developer/developer.rpym:94
old "[name] [attributes]"
new "[name] [attributes]"
# renpy/common/_developer/developer.rpym:154
old "Hide deleted"
new "消去済みを隠す"
# renpy/common/_developer/developer.rpym:154
old "Show deleted"
new "消去済みを表示する"
translate japanese strings:
# renpy/common/00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "自己発話音量"
# renpy/common/00preferences.rpy:384
old "self voicing volume drop"
new "セルフボイシングボリュームを下げる"
+23
View File
@@ -177,3 +177,26 @@ translate japanese strings:
old "jump <label>: jumps to label"
new "jump <ラベル>: ラベルにジャンプ"
# renpy/common/00console.rpy:685
old "short: Shorten the representation of objects on the console (default)."
new "short: コンソール上のオブジェクトを短く表現する(デフォルト)"
# renpy/common/00console.rpy:690
old "long: Print the full representation of objects on the console."
new "long: コンソール上のオブジェクトを全て表現する"
translate japanese strings:
# renpy/common/00console.rpy:814
old "watch <expression>: 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 <expression>: python式をウォッチ\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:925
old "escape: Enables escaping of unicode symbols in unicode strings."
new "escape: ユニコード文字列中でのユニコードシンボルのエスケープを有効化"
# renpy/common/00console.rpy:929
old "unescape: Disables escaping of unicode symbols in unicode strings and print it as is (default)."
new "unescape: ユニコード文字列中でのユニコードシンボルのエスケープを無効化し (default) として表示"
+93 -2
View File
@@ -102,8 +102,8 @@ translate japanese strings:
new "キャリブレート [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "[control!r] [kind] を押すか、倒すかしてください。"
old "Press or move the [control!s] [kind]."
new "[control!s] [kind] を押すか、倒すかしてください。"
# 00gamepad.rpy:66
old "Skip (A)"
@@ -203,7 +203,98 @@ translate japanese strings:
translate japanese strings:
# 00gltest.rpy:70
old "Renderer"
new "レンダラー"
# 00gltest.rpy:89
old "NPOT"
new "NPOT"
# 00gltest.rpy:131
old "Powersave"
new "パワーセーブ"
# 00gltest.rpy:145
old "Framerate"
new "フレームレート"
# 00gltest.rpy:149
old "Screen"
new "スクリーン"
# 00gltest.rpy:153
old "60"
new "60"
# 00gltest.rpy:157
old "30"
new "30"
# 00gltest.rpy:163
old "Tearing"
new "ティアリング"
# renpy/common/_errorhandling.rpym:542
old "Copy BBCode"
new "BBCode でコピー"
# renpy/common/_errorhandling.rpym:544
old "Copies the traceback.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "クリップボードに traceback.txt を https://lemmasoft.renai.us/ 等のフォーラムに適した BBcode 形式でコピーする。"
# renpy/common/_errorhandling.rpym:546
old "Copy Markdown"
new "Markdown でコピー"
# renpy/common/_errorhandling.rpym:548
old "Copies the traceback.txt file to the clipboard as Markdown for Discord."
new "クリップボードに traceback.txt を Discord に適した Markdown 形式でコピーする。"
# renpy/common/_errorhandling.rpym:683
old "Copies the errors.txt file to the clipboard as BBcode for forums like https://lemmasoft.renai.us/."
new "クリップボードに errors.txt を https://lemmasoft.renai.us/ 等のフォーラムに適した BBcode 形式でコピーする。"
# renpy/common/_errorhandling.rpym:687
old "Copies the errors.txt file to the clipboard as Markdown for Discord."
new "クリップボードに errors.txt を Discord に適した Markdown 形式でコピーする。"
translate japanese strings:
# renpy/common/00gltest.rpy:100
old "Force GL Renderer"
new "GLレンダリングを強制"
# renpy/common/00gltest.rpy:105
old "Force ANGLE Renderer"
new "ANGLEレンダリングを強制"
# renpy/common/00gltest.rpy:110
old "Force GLES Renderer"
new "GLESレンダリングを強制"
# renpy/common/00gltest.rpy:116
old "Force GL2 Renderer"
new "GL2レンダリングを強制"
# renpy/common/00gltest.rpy:121
old "Force ANGLE2 Renderer"
new "ANGLE2レンダリングを強制"
# renpy/common/00gltest.rpy:126
old "Force GLES2 Renderer"
new "GLES2レンダリングを強制"
# renpy/common/00gltest.rpy:245
old "This game requires use of GL2 that can't be initialised."
new "このゲームはGL2を必要としますが初期化できません。"
# renpy/common/00gltest.rpy:256
old "More details on how to fix this can be found in the {a=[url]}documentation{/a}."
new "詳しい修正方法は{a=[url]}documentation{/a}を参照してください。"
# renpy/common/00gltest.rpy:273
old "Change render options"
new "レンダリング設定を変更"
+9 -9
View File
@@ -7,7 +7,7 @@ translate japanese strings:
# gui.rpy:5
old "## The init offset statement causes the init code in this file to run before init code in any other file."
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset は、このファイルの init コードを他のファイルよりも先に実行しています。"
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset ステートメントは、このファイルの init コードを他のファイルよりも先に実行しています。"
# gui.rpy:9
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
@@ -35,15 +35,15 @@ translate japanese strings:
# gui.rpy:32
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## スモールカラー。明るさを調節する必要のあるクイックメニューなどの小さなテキストボタンに使います。"
new "## スモールカラー。クイックメニューなどの、明るさを調節する必要のある小さなテキストボタンに使います。"
# gui.rpy:36
old "## The color that is used for buttons and bars that are hovered."
new "## hover(フォーカス中)のテキストボタンのカラー。また、バーの充足部分(左側)・hover のスライダーのつまみ等の画像を再生成するときにも使われます。"
new "## hover(フォーカス中)のテキストボタンのカラー。また、バーの充足部分(左側)スライダーのつまみ等の画像を再生成するときにも使われます。"
# gui.rpy:39
old "## The color used for a text button when it is selected but not focused. A button is selected if it is the current screen or preference value."
new "## selected(選択中)のテキストボタンのカラー。ボタンは、現在の環境設定の値や表示中のスクリーンと一致するものが選択中になります。"
new "## selected(選択中)のテキストボタンのカラー。ボタン現在のスクリーンであったり、環境設定の値と一致したりすると、ボタンは選択中になります。"
# gui.rpy:43
old "## The color used for a text button when it cannot be selected."
@@ -51,11 +51,11 @@ translate japanese strings:
# gui.rpy:46
old "## Colors used for the portions of bars that are not filled in. These are not used directly, but are used when re-generating bar image files."
new "## バーの非充足部分(右側)やスライダーの背景部分のカラー。バーやスライダーのカラーは、ゲームでは直接使われず GUI を変更・更新した場合の画像生成に使われます。"
new "## バーの非充足部分(右側)やスライダーの背景部分のカラー。バーやスライダーのカラーは直接使われず GUI を変更・更新した場合の画像生成に使われます。"
# gui.rpy:51
old "## The colors used for dialogue and menu choice text."
new "## 次の text_color は台詞や選択肢のテキストのカラーです。その次の interface_text_color はヒストリーやヘルプなどそれ以外のテキストのカラーです。"
new "## text_color は台詞や選択肢のテキストのカラーです。interface_text_color はヒストリーやヘルプなどそれ以外のテキストのカラーです。"
# gui.rpy:56
old "## Fonts and Font Sizes"
@@ -142,7 +142,7 @@ translate japanese strings:
new "## ネームボックスのボーダーのサイズ。左、上、右、下の順で指定します。ボックスのサイズは、その中に表示されるキャラクター名のサイズから更にボーダー分拡張したサイズになります。"
# gui.rpy:127
old "## If True, the background of the namebox will be tiled, if False, the background if the namebox will be scaled."
old "## If True, the background of the namebox will be tiled, if False, the background of the namebox will be scaled."
new "## True に設定すると、ネームボックスの背景画像をスケーリングではなくタイリングで表示します。"
# gui.rpy:132
@@ -284,7 +284,7 @@ radio と check は環境設定の各項目のボタン(デフォルトでは
# gui.rpy:279
old "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
new "## 以下の変数は、インターフェースのコンポーネントを収納するフレームを制御します。フレームは、ウィンドウやオーバーレイが用いられない場面で使われます。"
new "## 以下の変数は、インターフェースのコンポーネントを収納するフレームを制御します。フレームは、ウィンドウやオーバーレイが用意されていない場面で使われます。"
# gui.rpy:282
old "## Generic frames that are introduced by player code."
@@ -450,7 +450,7 @@ translate japanese strings:
# gui.rpy:5
old "## The init offset statement causes the initialization statements in this file to run before init statements in any other file."
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset により、このファイルの init 文は他のファイルの init 文よりも先に実行されます。"
new "## このファイルは GUI をカスタマイズする基本的なオプションを記載しています。次の init offset ステートメントにより、このファイルの init 文は他のファイルの init 文よりも先に実行されます。"
# gui.rpy:282
old "## Generic frames."
+482 -13
View File
@@ -34,8 +34,8 @@ translate japanese strings:
new "Android パッケージをビルドするには、RAPT をダウンロード・展開し、Ren'Py のディレクトリーに設置して下さい。その後、Ren'Py を再起動して下さい。"
# android.rpy:31
old "A 32-bit Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Windows では、Android パッケージのビルドに 32-bit の Java 開発キットが必要です。JDK は JRE とは異なるため、JDK が無くても Java が利用できます。\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/index.html}JDK のダウンロードとインストール{/a}を行い、Ren'Py ランチャーを再起動して下さい。"
old "An x86 Java Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "Windows では、Android パッケージのビルドに 32-bit の Java 開発キットが必要です。JDK は JRE とは異なるため、JDK が無くても Java が利用できます。\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}JDK{/a}のダウンロードとインストールを行い、Ren'Py ランチャーを再起動して下さい。"
# android.rpy:32
old "RAPT has been installed, but you'll need to install the Android SDK before you can build Android packages. Choose Install SDK to do this."
@@ -51,7 +51,7 @@ translate japanese strings:
# android.rpy:35
old "Choose \"Build\" to build the current project, or attach an Android device and choose \"Build & Install\" to build and install it on the device."
new "「ビルド」を選択して現在のプロジェクトをビルドするか、Android デバイスを接続して「ビルド & インストール」を選択し、ビルド後そのデバイスにインストールしてください。"
new "「ビルド」を選択して現在のプロジェクトをビルドするか、Android デバイスを接続して「ビルドインストール」を選択し、そのデバイスにインストールしてください。"
# android.rpy:37
old "Attempts to emulate an Android phone.\n\nTouch input is emulated through the mouse, but only when the button is held down. Escape is mapped to the menu button, and PageUp is mapped to the back button."
@@ -135,7 +135,7 @@ translate japanese strings:
# android.rpy:365
old "Configure"
new "設定"
new "構成の設定"
# android.rpy:369
old "Build Package"
@@ -143,7 +143,7 @@ translate japanese strings:
# android.rpy:373
old "Build & Install"
new "ビルド & インストール"
new "ビルドインストール"
# android.rpy:377
old "Build, Install & Launch"
@@ -606,8 +606,8 @@ translate japanese strings:
new "エラー"
# interface.rpy:356
old "While [what!q], an error occured:"
new "[what!q] 中にエラーが発生しました:"
old "While [what!qt], an error occured:"
new "[what!qt] 中にエラーが発生しました:"
# interface.rpy:356
old "[exception!q]"
@@ -623,7 +623,7 @@ translate japanese strings:
# interface.rpy:386
old "File and directory names must consist of ASCII characters."
new "ファイル、ディレクトリー名はアスキーコードの文字列で構成される必要があります。"
new "ファイル、ディレクトリー名はアスキーコードの文字列でなければなりません。"
# interface.rpy:454
old "PROCESSING"
@@ -1011,7 +1011,7 @@ translate japanese strings:
# translations.rpy:170
old "Merge String Translations"
new "文字列の翻訳を合"
new "文字列の翻訳を合"
# translations.rpy:175
old "Replace existing translations"
@@ -1027,7 +1027,7 @@ translate japanese strings:
# translations.rpy:200
old "The extract command allows you to extract string translations from an existing project into a temporary file.\n\nThe merge command merges extracted translations into another project."
new "抽出コマンドは、既存のプロジェクトから文字列の翻訳(台詞以外の翻訳)を一時ファイルとして抽出します。\n\n合コマンドは、抽出した翻訳をのプロジェクトに合します。"
new "抽出コマンドは、のプロジェクトから文字列の翻訳(台詞以外の翻訳)を一時ファイルとして抽出します。\n\n合コマンドは、抽出した翻訳をのプロジェクトに合します。"
# translations.rpy:224
old "Ren'Py is generating translations...."
@@ -1047,11 +1047,11 @@ translate japanese strings:
# translations.rpy:271
old "Ren'Py is merging string translations..."
new "Ren'Py は文字列の翻訳を合しています…"
new "Ren'Py は文字列の翻訳を合しています…"
# translations.rpy:274
old "Ren'Py has finished merging [language] string translations."
new "Ren'Py は [language] の文字列の翻訳を合しました。"
new "Ren'Py は [language] の文字列の翻訳を合しました。"
# translations.rpy:282
old "Updating default interface translations..."
@@ -1221,7 +1221,7 @@ translate japanese strings:
new "ナビゲーション: [project.current.display_name!q]"
# new_project.rpy:71
old "You will be creating an [new_project_language] language project. Change the launcher language in preferences to create a project in another language."
old "You will be creating an [new_project_language]{#this substitution may be localized} language project. Change the launcher language in preferences to create a project in another language."
new "日本語のプロジェクトを作成します。別の言語のプロジェクトを作成するには、設定でランチャーの言語を変更してください。"
# preferences.rpy:187
@@ -1283,3 +1283,472 @@ translate japanese strings:
old "The height must be a number."
new "画面の高さは数字でなければなりません。"
translate japanese strings:
# editor.rpy:152
old "(Recommended) A modern and approachable text editor."
new "(推奨)モダンで親しみやすいテキストエディターです。"
# editor.rpy:164
old "Up to 150 MB download required."
new "最大 150 MB のダウンロードが必要です。"
# editor.rpy:178
old "A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input."
new "成熟したエディターです。Editra は中国語・韓国語・日本語の入力に必要な IME のサポートに欠陥があります。"
# editor.rpy:179
old "A mature editor. Editra lacks the IME support required for Chinese, Japanese, and Korean text input. On Linux, Editra requires wxPython."
new "成熟したエディターです。Editra は中国語・韓国語・日本語の入力に必要な IME のサポートに欠陥があります。Linux では Editra は wxpython を必要とします。"
# editor.rpy:219
old "System Editor"
new "システムエディタ―"
# editor.rpy:235
old "None"
new "無効"
# editor.rpy:338
old "Edit [text]."
new "Edit [text]."
# front_page.rpy:215
old "Open project"
new "プロジェクトを開く"
# front_page.rpy:221
old "Actions"
new "アクション"
translate japanese strings:
# game/add_file.rpy:37
old "The file name may not be empty."
new "ファイル名が与えられていません。"
# game/android.rpy:31
old "A 64-bit/x64 Java 8 Development Kit is required to build Android packages on Windows. The JDK is different from the JRE, so it's possible you have Java without having the JDK.\n\nPlease {a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}download and install the JDK{/a}, then restart the Ren'Py launcher."
new "ウィンドウズでアンドロイドパッケージをビルドするには、 64-bit/x64 Java 8 Development Kit が必要になります。 JDK は JRE とは違うもので、Java には含まれていません。\n\n{a=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}JDK{/a}をダンロード、インストールしてから Ren'Py ランチャーを再起動してください。"
# game/android.rpy:50
old "Selects the Debug build, which can be accessed through Android Studio. Changing between debug and release builds requires an uninstall from your device."
new "Android Studio からアクセスできるデバッグビルドを選択する。 デバッグビルドとリリースビルドを切り替えるには、デバイスからアンインストールする必要があります。"
# game/android.rpy:51
old "Selects the Release build, which can be uploaded to stores. Changing between debug and release builds requires an uninstall from your device."
new "ストアへアップロード可能なリリースビルドを選択する。 デバッグビルドとリリースビルドを切り替えるには、デバイスからアンインストールする必要があります。"
# game/androidstrings.rpy:7
old "{} is not a directory."
new "{} はディレクトリーではありません。"
# game/androidstrings.rpy:8
old "{} does not contain a Ren'Py game."
new "{} に Ren'Py のゲームは含まれていません。"
# game/androidstrings.rpy:9
old "Run configure before attempting to build the app."
new "アプリをビルドする前に構成を変更する。"
# game/androidstrings.rpy:10
old "Google Play support is enabled, but build.google_play_key is not defined."
new "Google Play サポートは有効になりましたが、 build.google_play_key が定義されていません。"
# game/androidstrings.rpy:11
old "Updating project."
new "プロジェクトを更新しています。"
# game/androidstrings.rpy:12
old "Creating assets directory."
new "アセットディレクトリーを作成しています"
# game/androidstrings.rpy:13
old "Creating expansion file."
new "拡張ファイルを作成しています。"
# game/androidstrings.rpy:14
old "Packaging internal data."
new "内部データをパッケージングしています。"
# game/androidstrings.rpy:15
old "I'm using Gradle to build the package."
new "パッケージのビルドに Gradle を使用しています。"
# game/androidstrings.rpy:16
old "Uploading expansion file."
new "拡張ファイルをアップロードしています。"
# game/androidstrings.rpy:17
old "The build seems to have failed."
new "ビルドに失敗したようです"
# game/androidstrings.rpy:18
old "Launching app."
new "アプリを起動しています。"
# game/androidstrings.rpy:19
old "The build seems to have succeeded."
new "ビルドに成功したようです。"
# game/androidstrings.rpy:20
old "The arm64-v8a version works on newer Android devices, the armeabi-v7a version works on older devices, and the x86_64 version works on the simulator and chromebooks."
new "arm64-v8a version は新しいアンドロイドデバイスで動きます。 armeabi-v7a version は古いデバイスで動きます。 the x86_64 version はシミュレーターやクロームブックで動きます。"
# game/androidstrings.rpy:21
old "What is the full name of your application? This name will appear in the list of installed applications."
new "アプリのフルネームはなんですか? フルネームはインストール済みアプリの一覧に表示されます。"
# game/androidstrings.rpy:22
old "What is the short name of your application? This name will be used in the launcher, and for application shortcuts."
new "アプリのショートネームは何ですか? ショートネームはランチャーやショートカットで使われます。"
# game/androidstrings.rpy:23
old "What is the name of the package?\n\nThis is usually of the form com.domain.program or com.domain.email.program. It may only contain ASCII letters and dots. It must contain at least one dot."
new "パッケージ名はなんですか?\n\nこれは通常 com.domain.program や com.domain.email.program の形を取ります。 ASCII 文字とドットのみで構成され、最低一つのドットを含まなければなりません。"
# game/androidstrings.rpy:24
old "The package name may not be empty."
new "パッケージ名が与えられていません。"
# game/androidstrings.rpy:25
old "The package name may not contain spaces."
new "パッケージ名はスペースを含んではいけません。"
# game/androidstrings.rpy:26
old "The package name must contain at least one dot."
new "パッケージ名は最低一つのドットを含まなければなりません。"
# game/androidstrings.rpy:27
old "The package name may not contain two dots in a row, or begin or end with a dot."
new "パッケージ名は2つのドットが連続したり、最初や最後がドットになってはいけません。"
# game/androidstrings.rpy:28
old "Each part of the package name must start with a letter, and contain only letters, numbers, and underscores."
new "パッケージ名の各部分は文字から始めまり、文字・数字・アンダースコアのみを使用しなければなりません"
# game/androidstrings.rpy:29
old "{} is a Java keyword, and can't be used as part of a package name."
new "{} は Java のキーワードのため、パッケージ名に使用することはできません。."
# game/androidstrings.rpy:30
old "What is the application's version?\n\nThis should be the human-readable version that you would present to a person. It must contain only numbers and dots."
new "アプリケーションのバージョンはなんですか?\n\nバージョンは他の人に分かりやすい名前にします。数字とドットのみが使用できます。"
# game/androidstrings.rpy:31
old "The version number must contain only numbers and dots."
new "バージョンナンバーは数字とドットのみが使用できます。"
# game/androidstrings.rpy:32
old "What is the version code?\n\nThis must be a positive integer number, and the value should increase between versions."
new "バージョンコードは何ですか?\n\nこれは正の整数で、バージョンが上がるごとに増えていきます。"
# game/androidstrings.rpy:33
old "The numeric version must contain only numbers."
new "バージョンコードは数字のみが使用できます。"
# game/androidstrings.rpy:34
old "How would you like your application to be displayed?"
new "どのようにアプリケーションを表示したいですか?"
# game/androidstrings.rpy:35
old "In landscape orientation."
new "ランドスケープ(横向き)"
# game/androidstrings.rpy:36
old "In portrait orientation."
new "ポートレイト(縦向き)"
# game/androidstrings.rpy:37
old "In the user's preferred orientation."
new "ユーザーが選択した向き"
# game/androidstrings.rpy:38
old "Which app store would you like to support in-app purchasing through?"
new "アプリ内課金をどのアプリストアに対応させますか?"
# game/androidstrings.rpy:39
old "Google Play."
new "Google Play"
# game/androidstrings.rpy:40
old "Amazon App Store."
new "Amazon App Store"
# game/androidstrings.rpy:41
old "Both, in one app."
new "一つのアプリで両方とも"
# game/androidstrings.rpy:42
old "Neither."
new "どちらも対応させない"
# game/androidstrings.rpy:43
old "Would you like to create an expansion APK?"
new "APK 拡張ファイルを作成しますか?"
# game/androidstrings.rpy:44
old "No. Size limit of 100 MB on Google Play, but can be distributed through other stores and sideloaded."
new "いいえ。Google Play では100MBのサイズ制限がありますが、他のストアを通したり、直接配布することが可能です。"
# game/androidstrings.rpy:45
old "Yes. 2 GB size limit, but won't work outside of Google Play. (Read the documentation to get this to work.)"
new "はい。2GBのサイズまで作成できますが、 Google Play 以外では動きません。(ドキュメンテーションを参照してください。)"
# game/androidstrings.rpy:46
old "Do you want to allow the app to access the Internet?"
new "アプリのインターネット接続を許可しますか?"
# game/androidstrings.rpy:47
old "Do you want to automatically update the generated project?"
new "作成したプロジェクトを自動的に更新させますか?"
# game/androidstrings.rpy:48
old "Yes. This is the best choice for most projects."
new "はい。多くのプロジェクトで最良の選択です。"
# game/androidstrings.rpy:49
old "No. This may require manual updates when Ren'Py or the project configuration changes."
new "いいえ。Ren'Py やプロジェクトの構成が変更されるごとに、手動でアップデートする必要があります。"
# game/androidstrings.rpy:50
old "Unknown configuration variable: {}"
new "未知の構成変数: {}"
# game/androidstrings.rpy:51
old "I'm compiling a short test program, to see if you have a working JDK on your system."
new "小さなテストプログラムをコンパイルして、あなたのシステムで JDK が動作するか確認しています。"
# game/androidstrings.rpy:52
old "I was unable to use javac to compile a test file. If you haven't installed the Java Development Kit yet, please download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nThe JDK is different from the JRE, so it's possible you have Java without having the JDK. Without a working JDK, I can't continue."
new "テストファイルのコンパイルに javac が利用できません。Java Development Kit をダウンロードしていないなら、\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nからダウンロードしてください。 JDK は JRE とは違うもので、Java には含まれていません。JDK がなければ継続できません。"
# game/androidstrings.rpy:53
old "The version of Java on your computer does not appear to be JDK 8, which is the only version supported by the Android SDK. If you need to install JDK 8, you can download it from:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nYou can also set the JAVA_HOME environment variable to use a different version of Java."
new "あなたのコンピューターにある Java のバージョンは JDK 8 ではないようです。JDK 8 は Android SDK がサポートする唯一のバージョンです。JDK 8 は:\n\nhttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html\n\nからダウンロードできます。 異なるバージョンの JAVA を使う場合は、JAVA_HOME の環境変数を設定します。"
# game/androidstrings.rpy:54
old "The JDK is present and working. Good!"
new "JDK が動作することを確認しました。"
# game/androidstrings.rpy:55
old "The Android SDK has already been unpacked."
new "Android SDK の解凍は完了しています。"
# game/androidstrings.rpy:56
old "Do you accept the Android SDK Terms and Conditions?"
new "Android SDK の契約内容・条件を承諾しますか?"
# game/androidstrings.rpy:57
old "I'm downloading the Android SDK. This might take a while."
new "Android SDK をダウンロードしています。この処理にはしばらくかかります。"
# game/androidstrings.rpy:58
old "I'm extracting the Android SDK."
new "Android SDK を解凍しています。"
# game/androidstrings.rpy:59
old "I've finished unpacking the Android SDK."
new "Android SDK の解凍を完了しました。"
# game/androidstrings.rpy:60
old "I'm about to download and install the required Android packages. This might take a while."
new "必要な Android パッケージをダウンロードしてインストールしようとしています。この処理にはしばらくかかります。"
# game/androidstrings.rpy:61
old "I was unable to accept the Android licenses."
new "Android ライセンスを承諾出来ませんでした。"
# game/androidstrings.rpy:62
old "I was unable to install the required Android packages."
new "必要な Android パッケージをインストールできませんでした。"
# game/androidstrings.rpy:63
old "I've finished installing the required Android packages."
new "必要な Android パッケージのインストールが終了しました。"
# game/androidstrings.rpy:64
old "You set the keystore yourself, so I'll assume it's how you want it."
new "keystore が設定されているため、あなた自身で設定したいのだと判断しました。"
# game/androidstrings.rpy:65
old "You've already created an Android keystore, so I won't create a new one for you."
new "Android keystore が既に作成済みのため、新しい keystore の作成は行いません。"
# game/androidstrings.rpy:66
old "I can create an application signing key for you. Signing an application with this key allows it to be placed in the Android Market and other app stores.\n\nDo you want to create a key?"
new "アプリケーションに署名するキーを発行できます。このキーでアプリケーションに署名すると、アンドロイドマーケットや他のストアで配布できるようになります。\n\nキーを作成しますか?"
# game/androidstrings.rpy:67
old "I will create the key in the android.keystore file.\n\nYou need to back this file up. If you lose it, you will not be able to upgrade your application.\n\nYou also need to keep the key safe. If evil people get this file, they could make fake versions of your application, and potentially steal your users' data.\n\nWill you make a backup of android.keystore, and keep it in a safe place?"
new "android.keystore ファイルを作成します。\n\nこのファイルはバックアップしてください。もし失くした場合はアプリをアップグレードすることが出来なくなります。\n\nまた、このファイルは安全な場所に保管してください。このファイルが悪意のある人間の手に渡ると、アプリのフェイクバージョンを作られたり、ユーザーデータを盗まれる恐れがあります。\n\nandroid.keystore のバックアップを作成し、安全な場所に保存しますか?"
# game/androidstrings.rpy:68
old "Please enter your name or the name of your organization."
new "あなたの名前か組織名を入力してください。"
# game/androidstrings.rpy:69
old "Could not create android.keystore. Is keytool in your path?"
new "android.keystore を作成できませんでした。keytool があなたのパスに存在しますか?"
# game/androidstrings.rpy:70
old "I've finished creating android.keystore. Please back it up, and keep it in a safe place."
new "android.keystore の作成を終了しました。 このファイルをバックアップして、安全な場所に保管してください。"
# game/androidstrings.rpy:71
old "It looks like you're ready to start packaging games."
new "ゲームのパッケージングの準備が整ったようです。"
# game/choose_theme.rpy:507
old "changing the theme"
new "テーマを変更しています。"
# game/front_page.rpy:252
old "Web"
new "Web"
# game/front_page.rpy:252
old "(Beta)"
new "(Beta)"
# game/front_page.rpy:198
old "audio"
new "audio"
# game/gui7.rpy:429
old "creating a new project"
new "新しいプロジェクトを作成しています。"
# game/gui7.rpy:433
old "activating the new project"
new "新しいプロジェクトを認証しています。"
# game/interface.rpy:372
old "opening the log file"
new "ログファイルを開いています。"
# game/itch.rpy:43
old "Downloading the itch.io butler."
new "itch.io butler をダウンロードしています。"
# game/updater.rpy:101
old "The update channel controls the version of Ren'Py the updater will download."
new "アップロードチャンネルはアップデーターのバージョンをコントロールします。"
# game/updater.rpy:110
old "• This version is installed and up-to-date."
new "• このバージョンは最新の状態でインストールされています。"
# game/updater.rpy:118
old "%B %d, %Y"
new "%B %d, %Y"
# game/updater.rpy:188
old "Fetching the list of update channels"
new "アップデートチャンネルのリストを取得しています。"
# game/updater.rpy:194
old "downloading the list of update channels"
new "アップデートチャンネルのリストをダウンロードしています。"
# game/updater.rpy:198
old "parsing the list of update channels"
new "アップデートチャンネルのリストを解析しています。"
# game/web.rpy:118
old "Web: [project.current.display_name!q]"
new "Web: [project.current.display_name!q]"
# game/web.rpy:148
old "Build Web Application"
new "ウェブアプリケーションをビルドする"
# game/web.rpy:149
old "Build and Open in Browser"
new "ビルドしてブラウザで開く"
# game/web.rpy:150
old "Open in Browser"
new "ブラウザで開く"
# game/web.rpy:151
old "Open build directory"
new "ビルドしたディレクトリーを開く"
# game/web.rpy:155
old "Support:"
new "サポート:"
# game/web.rpy:163
old "RenPyWeb Home"
new "RenPyWeb ホーム"
# game/web.rpy:164
old "Beuc's Patreon"
new "Beuc's Patreon"
# game/web.rpy:182
old "Ren'Py web applications require the entire game to be downloaded to the player's computer before it can start."
new "Ren'Py ウェブアプリケーションは、ゲームをスタートする前に、プレイヤーのコンピューターにデータを全てダウンロードする必要があります。"
# game/web.rpy:186
old "Current limitations in the web platform mean that loading large images, audio files, or movies may cause audio or framerate glitches, and lower performance in general."
new "現在のウェブプラットホームの限界により、一般的なパフォーマンスの低下や、大きな画像・音声・動画ファイルのロードによる音声やフレームレートの異常が発生します。"
# game/web.rpy:195
old "Before packaging web apps, you'll need to download RenPyWeb, Ren'Py's web support. Would you like to download RenPyWeb now?"
new "ウェブアプリをパッケージングするために、RenPyWeb (Ren'Py's web support) をダウンロードする必要があります。 RenPyWeb をダウンロードしますか?"
translate japanese strings:
# game/androidstrings.rpy:47
old "Do you want to automatically update the Java source code?"
new "Javaのソースコードを自動的に更新したいですか?"
# game/choose_directory.rpy:93
old "Ren'Py was unable to run python with tkinter to choose the directory. Please install the python3-tk or tkinter package."
new "Ren'Pyはpythonでtkinterkを実行してディレクトリを選択できません。python3-tkまたはtkinterパッケージをインストールしてください。"
# game/install.rpy:33
old "Could not install [name!t], as a file matching [zipglob] was not found in the Ren'Py SDK directory."
new "Ren'Py SDKディレクトリに[zipglob]にマッチするファイルが見つからなかったため、[name!t]をインストールできませんでした。"
# game/install.rpy:76
old "Successfully installed [name!t]."
new "[name!t]のインストールに成功しました。"
# game/install.rpy:104
old "Install Libraries"
new "ライブラリのインストール"
# game/install.rpy:119
old "This screen allows you to install libraries that can't be distributed with Ren'Py. Some of these libraries may require you to agree to a third-party license before being used or distributed."
new "この画面ではRen'pyと共に配布できないライブラリをダウンロードします。これらのライブラリの一部は使用や配布前にサードパーティーのライセンスに同意が必要です。"
# game/install.rpy:134
old "The {a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Cubism SDK for Native{/a} adds support for displaying Live2D models. Place CubismSdkForNative-4-{i}version{/i}.zip in the Ren'Py SDK directory, and then click Install. Distributing a game with Live2D requires you to accept a license from Live2D, Inc."
new "{a=https://www.live2d.com/en/download/cubism-sdk/download-native/}Custom SDK for Native {/a}はLive2Dモデルの表示サポートを追加します。Ren'Py SDK ディレクトリにCubismSdkForNative-4-{i}version{/i}.zipを置き、クリックしてインストールしてください。Live2Dと共にゲームを配布するには Live2D Inc.のライセンスに同意が必要です。"
# game/install.rpy:138
old "Open Ren'Py SDK Directory"
new "Ren'Py SDKディレクトリを開く"
# game/preferences.rpy:138
old "Install libraries"
new "ライブラリのインストール"
# game/preferences.rpy:140
old "Reset window size"
new "ウィンドウサイズリセット"
# game/web.rpy:242
old "Preparing progressive download"
new "プログレッシブダウンロードの準備"
# game/web.rpy:341
old "Images and musics can be downloaded while playing. A 'progressive_download.txt' file will be created so you can configure this behavior."
new "画像と音声がプレイ中にダウンロード可能です。 'progressive_download.txt' ファイルが作成されるのでこれを編集して振舞を設定できます。"
+15 -8
View File
@@ -15,7 +15,7 @@ translate japanese strings:
# options.rpy:12
old "## A human-readable name of the game. This is used to set the default window title, and shows up in the interface and error reports."
new "## 人が読みやすいゲーム名。ゲーム名はデフォルトのウィンドウタイトルに使われる他、インターフェースやエラーリポートにも表示されます。"
new "## 人の目で読み取れるゲーム名。ゲーム名はデフォルトのウィンドウタイトルに使われる他、インターフェースやエラーリポートにも表示されます。"
# options.rpy:15
old "## The _() surrounding the string marks it as eligible for translation."
@@ -51,19 +51,19 @@ translate japanese strings:
# options.rpy:55
old "## To allow the user to play a test sound on the sound or voice channel, uncomment a line below and use it to set a sample sound to play."
new "## サウンドやボイスの設定画面でユーザーがテストサウンドを再生できるようにしたい場合、以下の行をアンコメントしてサンプルサウンドを指定します。"
new "## サウンドやボイスの設定画面でユーザーがテストサウンドを再生可能にする場合、以下の行をアンコメントしてサンプルサウンドを指定します。"
# options.rpy:62
old "## Uncomment the following line to set an audio file that will be played while the player is at the main menu. This file will continue playing into the game, until it is stopped or another file is played."
new "## 次の行をアンコメントしてオーディオファイルを指定すると、メインメニューで再生することができます。このファイルは、停止するか他の音楽が再生されない限りゲーム中で流れ続けます。"
new "## 次の行をアンコメントしてオーディオファイルを指定すると、メインメニューで再生されます。このファイルは、停止するか他の音楽が再生されない限りゲーム中で流れ続けます。"
# options.rpy:69
old "## Transitions"
new "## トランジション(画面遷移効果)"
new "## トランジション"
# options.rpy:71
old "## These variables set transitions that are used when certain events occur. Each variable should be set to a transition, or None to indicate that no transition should be used."
new "## 以下の変数は、メニュー切り替えなどのイベントに対するトランジションを設定します。各変数にはトランジションオブジェクトを指定します。トランジションを使わない場合は None に設定します。"
new "## 以下の変数は、メニュー切り替えなどのイベントに対するトランジションを設定します。各変数にはトランジションを指定します。トランジションを使わない場合は None に設定します。"
# options.rpy:75
old "## Entering or exiting the game menu."
@@ -79,7 +79,7 @@ translate japanese strings:
# options.rpy:91
old "## A variable to set the transition used when the game starts does not exist. Instead, use a with statement after showing the initial scene."
new "## メインメニューからゲームを開始する時のトランジションは、ここでは設定できません。代わりに、ゲーム開始後の最初のシーンで with ステートメント(文)を使ってください。"
new "## メインメニューからゲームを開始する時のトランジションは、ここでは設定できません。代わりに、ゲーム開始後の最初のシーンで with ステートメントを使ってください。"
# options.rpy:96
old "## Window management"
@@ -91,7 +91,7 @@ translate japanese strings:
# options.rpy:103
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## ゲーム開始後は、\"window show\"、\"window hide\"、\"window auto\" ステートメントで変更することができます。"
new "## ゲーム開始後でも \"window show\"、\"window hide\"、\"window auto\" ステートメントで変更することができます。"
# options.rpy:109
old "## Transitions used to show and hide the dialogue window"
@@ -199,7 +199,7 @@ translate japanese strings:
# options.rpy:196
old "## Set this to a string containing your Apple Developer ID Application to enable codesigning on the Mac. Be sure to change it to your own Apple-issued ID."
new "## Mac のコード署名を有効にするため Apple Developer ID アプリケーション を含む文字列を設定します。必ず Apple が発行したあなたの ID に変更してください。"
new "## Mac のコード署名を有効にするため Apple Developer ID アプリケーション を含む文字列を設定します。必ず Apple が発行したあなたの ID に変更してください。"
translate japanese strings:
@@ -208,3 +208,10 @@ translate japanese strings:
old "## Between screens of the game menu."
new "## ゲームメニューのスクリーンを切り替える時のトランジション。"
translate japanese strings:
# options.rpy:31
old "## Text that is placed on the game's about screen. Place the text between the triple-quotes, and leave a blank line between paragraphs."
new "## About(バージョン情報)スクリーンに表示されるテキスト。トリプルクオートの間にテキストを入力します。段落の間には空行を挿入して下さい。"
+12 -8
View File
@@ -19,7 +19,7 @@ translate japanese strings:
# screens.rpy:98
old "## This screen must create a text displayable with id \"what\", as Ren'Py uses this to manage text display. It can also create displayables with id \"who\" and id \"window\" to apply style properties."
new "## このスクリーンは、テキストを表示するために \"what\" のIDを持つ text displayable(表示可能オブジェクト)を必ず作成しなければなりません。また、スタイルのプロパティを適用するために、ID \"who\" とID \"window\" を持つ text displayable も作成するといいでしょう。"
new "## このスクリーンは、テキストを表示するために \"what\" のIDを持つ text displayable を必ず作成しなければなりません。また、スタイルのプロパティを適用するために、ID \"who\" とID \"window\" を持つ text displayable も作成するといいでしょう。"
# screens.rpy:102
old "## https://www.renpy.org/doc/html/screen_special.html#say"
@@ -39,7 +39,7 @@ translate japanese strings:
# screens.rpy:174
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## このスクリーンは input のパラメーター を受け付けるために \"input\" をIDに持つ input displayable(表示可能オブジェクト)を作成する必要があります。"
new "## このスクリーンは input のパラメーター を受け付けるために \"input\" をIDに持つ input displayable を作成する必要があります。"
# screens.rpy:177
old "## http://www.renpy.org/doc/html/screen_special.html#input"
@@ -51,7 +51,7 @@ translate japanese strings:
# screens.rpy:207
old "## This screen is used to display the in-game choices presented by the menu statement. The one parameter, items, is a list of objects, each with caption and action fields."
new "## このスクリーンは、ゲーム内の選択肢を表示するに使います。items のパラメーターは caption(選択肢のテキスト)と action(クリック時の実行内容)を要素に持つオブジェクトのリスト(配列)です。"
new "## このスクリーンは、ゲーム内の選択肢を表示する menu ステートメントに使います。items のパラメーターは caption(選択肢のテキスト)と action(クリック時の実行内容)を要素に持つオブジェクトのリスト(配列)です。"
# screens.rpy:211
old "## http://www.renpy.org/doc/html/screen_special.html#choice"
@@ -67,7 +67,7 @@ translate japanese strings:
# screens.rpy:246
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## クイックメニューはゲーム中つねに表示されるスクリーンで、ゲーム外の機能に素早くアクセスすることができます。"
new "## クイックメニューはゲーム中に常時表示されるスクリーンで、ゲーム外の機能に素早くアクセスすることができます。"
# screens.rpy:251
old "## Ensure this appears on top of other screens."
@@ -166,7 +166,7 @@ translate japanese strings:
# screens.rpy:352
old "## Used to display the main menu when Ren'Py starts."
new "## Ren'py が起動した時に表示されるメインメニューを表示するスクリーンです。"
new "## Ren'Py が起動した時に表示されるメインメニューを表示するスクリーンです。"
# screens.rpy:354
old "## http://www.renpy.org/doc/html/screen_special.html#main-menu"
@@ -182,7 +182,7 @@ translate japanese strings:
# screens.rpy:369
old "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## use は、他のスクリーンを現在のスクリーンの内に表示するのに使います。メインメニューの実際のコンテンツは navigation(ナビゲーション)スクリーンです。"
new "## use ステートメントは、他のスクリーンを現在のスクリーンの内に表示するのに使います。メインメニューの実際のコンテンツは navigation(ナビゲーション)スクリーンです。"
# screens.rpy:413
old "## Game Menu screen"
@@ -218,7 +218,7 @@ translate japanese strings:
# screens.rpy:551
old "## This use statement includes the game_menu screen inside this one. The vbox child is then included inside the viewport inside the game_menu screen."
new "## 次の use は game_menu(ゲームメニュー)スクリーンをこのスクリーンの内に表示しています。use 文の子(内包されたオブジェクト)の vbox は game_menu スクリーンの中の viewport に配置されます。"
new "## 次の use ステートメントは game_menu(ゲームメニュー)スクリーンをこのスクリーンの内に表示しています。use 文の子(内包されたオブジェクト)の vbox は game_menu スクリーンの中の viewport に配置されます。"
# screens.rpy:561
old "Version [config.version!t]\n"
@@ -561,7 +561,7 @@ translate japanese strings:
# screens.rpy:1124
old "## Additional screens"
new "## 追加スクリーン"
new "## 付加的なスクリーン"
# screens.rpy:1128
old "## Confirm screen"
@@ -694,3 +694,7 @@ translate japanese strings:
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
new "## https://www.renpy.org/doc/html/screen_special.html#nvl"
# gui/game/screens.rpy:333
old "## The quit button is banned on iOS and unnecessary on Android and Web."
new "## 終了ボタンはiOSでは使用できません。また、AndroidやWebでは必要ありません。"
+7 -13
View File
@@ -5,13 +5,13 @@
# まず最初に、ゲームに使うキャラクター(台詞を表示するオブジェクト)を定義します。
# 最初のパラメーターは、テキストウィンドウに表示されるキャラクターの名前です。
# 一番目のパラメーターは、テキストウィンドウに表示されるキャラクターの名前です。
# color のパラメーターを追加すると、キャラクターの名前を色付けできます。
define e = Character('Eileen', color="#c8ffc8")
# label ステートメント(命令文)はゲームの処理をまとめてラベル付けします。
# label ステートメント(文)はゲームの処理をまとめてラベル付けします。
# ラベル間の移動は jump ステートメントか call ステートメントを使います。
# ゲームは start ラベルからスタートします。
@@ -20,12 +20,12 @@ label start:
# 背景を表示します。デフォルトではプレースホルダー(仮画像)を使用しますが、
# images ディレクトリーにファイル(ファイル名は "bg room.png" や "bg room.jpg"
# を追加すると表示することができます。
# を追加することで表示できます。
scene bg room
# スプライト(立ち絵)を表示します。ここではプレースホルダーを使用していますが、
# images ディレクトリーに "eileen happy.png" と命名したファイルを追加すると
# images ディレクトリーに "eileen happy.png" などと命名したファイルを追加すると
# 表示することができます。
# at ステートメントは画像の表示する位置を調整します。
@@ -39,19 +39,13 @@ label start:
with dissolve
# 音楽を再生します。ここではタグを利用して無音を再生していますが、
# game ディレクトリーに "music.ogg" と命名したファイルを追加すると
# play music "music.ogg" の形で再生することができます。
# 音楽を再生します。
# game ディレクトリーに "music.ogg" などのファイルを追加すると再生できます。
# 効果音を再生する時は play audio "filename" を使用します。
# play music とは違って複数の効果音を同時に再生することができます。
play music "<silence .5>"
# play music "music.ogg"
# 以下は台詞を表示します。
"Hello, world."
e "Ren'Py の新しいゲームを作成しました。"
e "ストーリー、画像、音楽を追加すれば、世界にリリースすることができます!"
+1 -1
View File
@@ -1,5 +1,5 @@
init python:
translate_font("japanese", "MTLc3m.ttf")
translate_font("japanese", "SourceHanSansLite.ttf")
translate_define("japanese", "gui.language", "'japanese-normal'")
translate japanese python:
+520 -65
View File
@@ -1,229 +1,548 @@

translate korean strings:
translate korean strings:
# 00action_file.rpy:26
old "{#weekday}Monday"
new "{#weekday}Monday"
new "{#weekday}월요일"
# 00action_file.rpy:26
old "{#weekday}Tuesday"
new "{#weekday}Tuesday"
new "{#weekday}화요일"
# 00action_file.rpy:26
old "{#weekday}Wednesday"
new "{#weekday}Wednesday"
new "{#weekday}수요일"
# 00action_file.rpy:26
old "{#weekday}Thursday"
new "{#weekday}Thursday"
new "{#weekday}목요일"
# 00action_file.rpy:26
old "{#weekday}Friday"
new "{#weekday}Friday"
new "{#weekday}금요일"
# 00action_file.rpy:26
old "{#weekday}Saturday"
new "{#weekday}Saturday"
new "{#weekday}토요일"
# 00action_file.rpy:26
old "{#weekday}Sunday"
new "{#weekday}Sunday"
new "{#weekday}일요일"
# 00action_file.rpy:37
old "{#weekday_short}Mon"
new "{#weekday_short}Mon"
new "{#weekday_short}"
# 00action_file.rpy:37
old "{#weekday_short}Tue"
new "{#weekday_short}Tue"
new "{#weekday_short}"
# 00action_file.rpy:37
old "{#weekday_short}Wed"
new "{#weekday_short}Wed"
new "{#weekday_short}"
# 00action_file.rpy:37
old "{#weekday_short}Thu"
new "{#weekday_short}Thu"
new "{#weekday_short}"
# 00action_file.rpy:37
old "{#weekday_short}Fri"
new "{#weekday_short}Fri"
new "{#weekday_short}"
# 00action_file.rpy:37
old "{#weekday_short}Sat"
new "{#weekday_short}Sat"
new "{#weekday_short}"
# 00action_file.rpy:37
old "{#weekday_short}Sun"
new "{#weekday_short}Sun"
new "{#weekday_short}"
# 00action_file.rpy:47
old "{#month}January"
new "{#month}January"
new "{#month}1월"
# 00action_file.rpy:47
old "{#month}February"
new "{#month}February"
new "{#month}2월"
# 00action_file.rpy:47
old "{#month}March"
new "{#month}March"
new "{#month}3월"
# 00action_file.rpy:47
old "{#month}April"
new "{#month}April"
new "{#month}4월"
# 00action_file.rpy:47
old "{#month}May"
new "{#month}May"
new "{#month}5월"
# 00action_file.rpy:47
old "{#month}June"
new "{#month}June"
new "{#month}6월"
# 00action_file.rpy:47
old "{#month}July"
new "{#month}July"
new "{#month}7월"
# 00action_file.rpy:47
old "{#month}August"
new "{#month}August"
new "{#month}8월"
# 00action_file.rpy:47
old "{#month}September"
new "{#month}September"
new "{#month}9월"
# 00action_file.rpy:47
old "{#month}October"
new "{#month}October"
new "{#month}10월"
# 00action_file.rpy:47
old "{#month}November"
new "{#month}November"
new "{#month}11월"
# 00action_file.rpy:47
old "{#month}December"
new "{#month}December"
new "{#month}12월"
# 00action_file.rpy:63
old "{#month_short}Jan"
new "{#month_short}Jan"
new "{#month_short}1월"
# 00action_file.rpy:63
old "{#month_short}Feb"
new "{#month_short}Feb"
new "{#month_short}2월"
# 00action_file.rpy:63
old "{#month_short}Mar"
new "{#month_short}Mar"
new "{#month_short}3월"
# 00action_file.rpy:63
old "{#month_short}Apr"
new "{#month_short}Apr"
new "{#month_short}4월"
# 00action_file.rpy:63
old "{#month_short}May"
new "{#month_short}May"
new "{#month_short}5월"
# 00action_file.rpy:63
old "{#month_short}Jun"
new "{#month_short}Jun"
new "{#month_short}6월"
# 00action_file.rpy:63
old "{#month_short}Jul"
new "{#month_short}Jul"
new "{#month_short}7월"
# 00action_file.rpy:63
old "{#month_short}Aug"
new "{#month_short}Aug"
new "{#month_short}8월"
# 00action_file.rpy:63
old "{#month_short}Sep"
new "{#month_short}Sep"
new "{#month_short}9월"
# 00action_file.rpy:63
old "{#month_short}Oct"
new "{#month_short}Oct"
new "{#month_short}10월"
# 00action_file.rpy:63
old "{#month_short}Nov"
new "{#month_short}Nov"
new "{#month_short}11월"
# 00action_file.rpy:63
old "{#month_short}Dec"
new "{#month_short}Dec"
new "{#month_short}12월"
# 00action_file.rpy:235
# 00action_file.rpy:240
old "%b %d, %H:%M"
new "%b %d %H:%M"
# 00action_file.rpy:820
# 00action_file.rpy:353
old "Save slot %s: [text]"
new "%s 슬롯에 저장: [text]"
# 00action_file.rpy:434
old "Load slot %s: [text]"
new "%s 슬롯 불러오기: [text]"
# 00action_file.rpy:487
old "Delete slot [text]"
new "[text] 슬롯 삭제"
# 00action_file.rpy:569
old "File page auto"
new "자동 파일 페이지"
# 00action_file.rpy:571
old "File page quick"
new "빠른 파일 페이지"
# 00action_file.rpy:573
old "File page [text]"
new "[text] 파일 페이지"
# 00action_file.rpy:763
old "Next file page."
new "다음 파일 페이지."
# 00action_file.rpy:827
old "Previous file page."
new "이전 파일 페이지."
# 00action_file.rpy:889
old "Quick save complete."
new "퀵세이브 완료."
# 00gui.rpy:227
# 00action_file.rpy:907
old "Quick save."
new "빠른 저장."
# 00action_file.rpy:926
old "Quick load."
new "빠른 불러오기."
# 00action_other.rpy:355
old "Language [text]"
new "[text] 언어"
# 00director.rpy:708
old "The interactive director is not enabled here."
new "인터렉티브 디렉터는 여기에서 사용할 수 없습니다."
# 00director.rpy:1481
old "⬆"
new "⬆"
# 00director.rpy:1487
old "⬇"
new "⬇"
# 00director.rpy:1551
old "Done"
new "완료"
# 00director.rpy:1561
old "(statement)"
new "(명령문)"
# 00director.rpy:1562
old "(tag)"
new "(태그)"
# 00director.rpy:1563
old "(attributes)"
new "(속성)"
# 00director.rpy:1564
old "(transform)"
new "(변환)"
# 00director.rpy:1589
old "(transition)"
new "(전환)"
# 00director.rpy:1601
old "(channel)"
new "(채널)"
# 00director.rpy:1602
old "(filename)"
new "(파일이름)"
# 00director.rpy:1631
old "Change"
new "교체"
# 00director.rpy:1633
old "Add"
new "추가"
# 00director.rpy:1636
old "Cancel"
new "취소"
# 00director.rpy:1639
old "Remove"
new "제거"
# 00director.rpy:1674
old "Statement:"
new "명령문:"
# 00director.rpy:1695
old "Tag:"
new "태그:"
# 00director.rpy:1711
old "Attributes:"
new "속성:"
# 00director.rpy:1729
old "Transforms:"
new "변환:"
# 00director.rpy:1748
old "Behind:"
new "뒤에:"
# 00director.rpy:1767
old "Transition:"
new "전환:"
# 00director.rpy:1785
old "Channel:"
new "채널:"
# 00director.rpy:1803
old "Audio Filename:"
new "오디오 파일이름:"
# 00gui.rpy:370
old "Are you sure?"
new "정말입니까?"
# 00gui.rpy:228
# 00gui.rpy:371
old "Are you sure you want to delete this save?"
new "이 세이브 파일을 지우겠습니까?"
# 00gui.rpy:229
# 00gui.rpy:372
old "Are you sure you want to overwrite your save?"
new "이 세이브 파일에 덮어쓰겠습니까?"
# 00gui.rpy:230
# 00gui.rpy:373
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "불러오기를 하면 저장하지 않은 데이터를 잃게 됩니다.\n파일을 불러올까요?"
# 00gui.rpy:231
# 00gui.rpy:374
old "Are you sure you want to quit?"
new "종료하겠습니까?"
# 00gui.rpy:232
# 00gui.rpy:375
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "메인 메뉴로 돌아가겠습니까?\n저장하지 않은 데이터는 잃게 됩니다."
# 00gui.rpy:233
# 00gui.rpy:376
old "Are you sure you want to end the replay?"
new "Are you sure you want to end the replay?"
new "리플레이를 종료하겠습니까?"
# 00gui.rpy:234
# 00gui.rpy:377
old "Are you sure you want to begin skipping?"
new "스킵을 시작하겠습니까?"
# 00gui.rpy:235
# 00gui.rpy:378
old "Are you sure you want to skip to the next choice?"
new "다음 선택지가 나타날 때까지 스킵하겠습니까?"
# 00gui.rpy:236
# 00gui.rpy:379
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?"
new "다음 선택지가 나타날 때까지 본 적이 없는 대사까지 모두 스킵하겠습니까?"
# 00keymap.rpy:250
# 00keymap.rpy:258
old "Failed to save screenshot as %s."
new "%s 에 스크린샷 저장을 실패했습니다."
# 00keymap.rpy:270
old "Saved screenshot as %s."
new "스크린샷을 %s 에 저장했습니다."
# 00library.rpy:142
# 00library.rpy:146
old "Self-voicing disabled."
new "Self-voicing disabled."
new "대사 읽기를 끕니다."
# 00library.rpy:143
# 00library.rpy:147
old "Clipboard voicing enabled. "
new "Clipboard voicing enabled. "
new "대사 복사하기를 켭니다. "
# 00library.rpy:144
# 00library.rpy:148
old "Self-voicing enabled. "
new "Self-voicing enabled. "
new "대사 읽기를 켭니다. "
# 00library.rpy:179
# 00library.rpy:150
old "bar"
new "바"
# 00library.rpy:151
old "selected"
new "선택된"
# 00library.rpy:152
old "viewport"
new "뷰포트"
# 00library.rpy:153
old "horizontal scroll"
new "수평 스크롤"
# 00library.rpy:154
old "vertical scroll"
new "수직 스크롤"
# 00library.rpy:155
old "activate"
new "활성화"
# 00library.rpy:156
old "deactivate"
new "비활성화"
# 00library.rpy:157
old "increase"
new "증가"
# 00library.rpy:158
old "decrease"
new "감소"
# 00library.rpy:193
old "Skip Mode"
new "스킵 모드"
# 00preferences.rpy:207
old "display"
new "화면 모드"
# 00preferences.rpy:219
old "transitions"
new "화면 전환"
# 00preferences.rpy:228
old "skip transitions"
new "화면 전환 스킵"
# 00preferences.rpy:230
old "video sprites"
new "비디오 스프라이트"
# 00preferences.rpy:239
old "show empty window"
new "빈 창 보이기"
# 00preferences.rpy:248
old "text speed"
new "텍스트 속도"
# 00preferences.rpy:256
old "joystick"
new "조이스틱"
# 00preferences.rpy:256
old "joystick..."
new "조이스틱..."
# 00preferences.rpy:263
old "skip"
new "스킵"
# 00preferences.rpy:266
old "skip unseen [text]"
new "읽지 않은 [text] 스킵"
# 00preferences.rpy:271
old "skip unseen text"
new "읽지 않은 텍스트까지 모두 스킵"
# 00preferences.rpy:273
old "begin skipping"
new "스킵 시작"
# 00preferences.rpy:277
old "after choices"
new "선택지 이후에도 스킵"
# 00preferences.rpy:284
old "skip after choices"
new "선택후 스킵"
# 00preferences.rpy:286
old "auto-forward time"
new "자동 진행 시간"
# 00preferences.rpy:300
old "auto-forward"
new "자동 진행"
# 00preferences.rpy:307
old "Auto forward"
new "자동 진행"
# 00preferences.rpy:310
old "auto-forward after click"
new "클릭후 자동 진행"
# 00preferences.rpy:319
old "automatic move"
new "자동 이동"
# 00preferences.rpy:328
old "wait for voice"
new "음성 기다리기"
# 00preferences.rpy:337
old "voice sustain"
new "음성 지속"
# 00preferences.rpy:346
old "self voicing"
new "대사 읽기"
# 00preferences.rpy:355
old "clipboard voicing"
new "대사 복사하기"
# 00preferences.rpy:364
old "debug voicing"
new "음성 디버그"
# 00preferences.rpy:373
old "emphasize audio"
new "오디오 강조"
# 00preferences.rpy:382
old "rollback side"
new "롤백 클릭 옵션"
# 00preferences.rpy:392
old "gl powersave"
new "GL 절전"
# 00preferences.rpy:398
old "gl framerate"
new "GL 프레임 속도"
# 00preferences.rpy:401
old "gl tearing"
new "GL 티어링"
# 00preferences.rpy:413
old "music volume"
new "배경음악 크기"
# 00preferences.rpy:414
old "sound volume"
new "효과음 크기"
# 00preferences.rpy:415
old "voice volume"
new "음성 크기"
# 00preferences.rpy:416
old "mute music"
new "배경음악 크기"
# 00preferences.rpy:417
old "mute sound"
new "효과음 끄기"
# 00preferences.rpy:418
old "mute voice"
new "음성 끄기"
# 00preferences.rpy:419
old "mute all"
new "모두 음소거"
# 00library.rpy:262
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}."
new "이 프로그램은 MIT 라이선스와 GNU 라이선스를 포함한 여러 가지 라이선스의 적용을 받는 오픈소스 소프트웨어를 포함하고 있습니다. {a=https://www.renpy.org/l/license}이곳{/a}에서 포함된 모든 소프트웨어와 그 소스코드를 확인할 수 있습니다."
# 00preferences.rpy:422
old "Clipboard voicing enabled. Press 'shift+C' to disable."
@@ -231,15 +550,71 @@ translate korean strings:
# 00preferences.rpy:424
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."
new "대사 읽기 기능이 \"[renpy.display.tts.last]\" 를(을) 말할 것입니다. 'alt+shift+V'를 누르면 비활성화됩니다."
# 00preferences.rpy:426
old "Self-voicing enabled. Press 'v' to disable."
new "대사 읽기 기능을 실행했습니다. 'v' 키를 눌러 종료합니다."
# _compat\gamemenu.rpym:198
old "Empty Slot."
new "빈 슬롯"
# _compat\gamemenu.rpym:355
old "Previous"
new "이전"
# _compat\gamemenu.rpym:362
old "Next"
new "다음"
# _developer\developer.rpym:43
old "Interactive Director (D)"
new "인터렉티브 디렉터 (D)"
# _developer\developer.rpym:57
old "Show Image Load Log (F4)"
new "이미지 불러오기 목록을 표시하기 (F4)"
# _developer\developer.rpym:60
old "Hide Image Load Log (F4)"
new "이미지 불러오기 목록을 숨기기 (F4)"
# _developer\developer.rpym:63
old "Image Attributes"
new "이미지 속성"
# _developer\developer.rpym:90
old "[name] [attributes] (hidden)"
new "[name] [attributes] (hidden)"
# _developer\developer.rpym:94
old "[name] [attributes]"
new "[name] [attributes]"
# _developer\developer.rpym:489
old "Type to filter: "
new "필터: "
# _developer\developer.rpym:617
old "Textures: [tex_count] ([tex_size_mb:.1f] MB)"
new "텍스쳐: [tex_count] ([tex_size_mb:.1f] MB)"
# _developer\developer.rpym:621
old "Image cache: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
new "이미지 캐시: [cache_pct:.1f]% ([cache_size_mb:.1f] MB)"
# _layout\classic_load_save.rpym:170
old "a"
new "a"
# _layout\classic_load_save.rpym:179
old "q"
new "q"
# 00iap.rpy:217
old "Contacting App Store\nPlease Wait..."
new "Contacting App Store\nPlease Wait..."
new "앱스토어와 통신 중\n잠시만 기다려주십시오..."
# 00updater.rpy:367
old "The Ren'Py Updater is not supported on mobile devices."
@@ -333,3 +708,83 @@ translate korean strings:
old "return"
new "돌아가기"
# _developer\developer.rpym:154
old "Hide deleted"
new "삭제항목 숨기기"
# _developer\developer.rpym:154
old "Show deleted"
new "삭제항목 보이기"
# 00accessibility.rpy:128
old "Font Override"
new "글꼴 덮어쓰기"
# 00accessibility.rpy:132
old "Default"
new "기본"
# 00accessibility.rpy:136
old "DejaVu Sans"
new "DejaVu Sans"
# 00accessibility.rpy:140
old "Opendyslexic"
new "Opendyslexic"
# 00accessibility.rpy:146
old "Text Size Scaling"
new "글자 크기 조절"
# 00accessibility.rpy:152
old "Reset"
new "초기화"
# 00accessibility.rpy:158
old "Line Spacing Scaling"
new "줄 간격 조절"
# 00accessibility.rpy:171
old "Self-Voicing"
new "대사 읽기"
# 00accessibility.rpy:175
old "Off"
new "끄기"
# 00accessibility.rpy:179
old "Text-to-speech"
new "텍스트 음성 변환"
# 00accessibility.rpy:183
old "Clipboard"
new "클립보드"
# 00accessibility.rpy:193
old "Self-Voicing Volume Drop"
new "대사 읽기 음소거"
# 00accessibility.rpy:202
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 "이 메뉴의 옵션은 접근성을 향상시키기 위한 것입니다. 모든 게임에서 작동하지 않을 수 있고 일부 옵션 조합은 게임을 플레이할 수 없게 만들 수 있으며 이러한 경우 게임이나 엔진의 문제가 아닙니다. 글꼴을 변경할 때 최상의 결과를 얻으려면 글자 크기를 원래대로 유지하십시오."
# 00preferences.rpy:388
old "self voicing volume drop"
new "대사 읽기 음소거"
# 00preferences.rpy:430
old "font transform"
new "글꼴 변형"
# 00preferences.rpy:433
old "font size"
new "글꼴 크기"
# 00preferences.rpy:441
old "font line spacing"
new "글꼴 줄 간격"
# 00preferences.rpy:464
old "system cursor"
new "시스템 커서"

Some files were not shown because too many files have changed in this diff Show More