Compare commits

...

3078 Commits

Author SHA1 Message Date
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
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
Tom Rothamel 3ff9f2d135 Update the changelog. 2018-04-21 22:34:16 -04:00
Tom Rothamel b5306f1065 Update sponsor documentation. 2018-04-21 11:24:12 -04:00
Tom Rothamel 4396d146e2 id: The director should not hide TIMEEVENTS.
Fixes #1432, and the director blocking the notify window from hiding itself.
2018-04-21 08:54:59 -04:00
Tom Rothamel be5f03e7b5 li: Documentation. 2018-04-20 23:51:26 -04:00
Tom Rothamel 647459ef70 li: More documentation. 2018-04-20 23:27:34 -04:00
Tom Rothamel be57f1070d Allow groups to take if_also and if_not. 2018-04-20 22:41:47 -04:00
Tom Rothamel 17840ad937 Use come-from to implement non-greedy rollback.
This fixes a problem in the code:

  default x = False

  label start:
      $ x = True
      "[ x ]"

When accessing the console. The problem is that the changes to rollback
in 6.14 cause there to only be one Rollback here, which is right after
label start. This means that when in the console, x loses its changed
value.

To fix this, when doing a non-greedy rollback, we rollback the minimum
we can, then start executing forwards until we reach the current
statement. This was implemented by adding a "come from" feature
to the context - when a statement is started, the current come
from is checked, and a label is called if it's been reached.
2018-04-20 00:22:50 -04:00
Tom Rothamel dfbb649dfb Fix typo. 2018-04-20 00:22:02 -04:00
Tom Rothamel 21456342c2 li: Turn auto and default into keywords.
It just reads better without True scattered all over the place,
signifying very little.
2018-04-19 23:23:30 -04:00
Tom Rothamel cf1f140ff6 li: Documentation. 2018-04-19 23:06:25 -04:00
Tom Rothamel 9a74b97bbe li: Parse properties on the first line of a group. 2018-04-19 23:03:37 -04:00
Tom Rothamel fd47a942fe Rename to LayeredImage/layeredimage. 2018-04-19 02:23:51 -04:00
Tom Rothamel e22256d631 li: Document layered images.
Which is the final name, at least for the moment.
2018-04-19 02:20:22 -04:00
Tom Rothamel 16782c5847 Fix the SetField documentation. 2018-04-19 02:18:43 -04:00
Tom Rothamel 43e6b37d43 id: Filter prefixed tags.
Layer images tend to use displayables with names like eileen_mouth_smile,
which have the real image name, eileen, as a prefix. We don't want these
cluttering up the id, so filter tags like this out.
2018-04-19 00:11:27 -04:00
Tom Rothamel 0e6a32cbf2 li: Move to the layerimage namespace.
There are a few twiddleable settings here, so they should be in a
public namespace.
2018-04-18 23:44:08 -04:00
Tom Rothamel 0c0bde2315 li: Same change, for the image name. 2018-04-18 23:37:52 -04:00
Tom Rothamel 70e7c38e7e li: Change the pattern for auto-attribute-image names.
We've gone from "eileen mouth happy" to "eileen_mouth_happy". This
is to prevent potential problems - with the spaces, it's possible
for the images that are used in a LayerImage to conflict with
the image itself, causing huge problems.

When there is an underscore in the name, that's mitigated.
2018-04-18 23:33:53 -04:00
Tom Rothamel 2d9c11430f Report an error if an image refers to itself. 2018-04-18 22:54:47 -04:00
Tom Rothamel 14f84a9329 ai(li): rename AttributeImage to LayerImage. 2018-04-18 01:17:55 -04:00
Tom Rothamel d9cdb6e8e1 Expose Composite, Crop, Tile.
Fixes #1433.
Fixes #1430.
2018-04-17 08:35:15 -04:00
Tom Rothamel 18c25fd601 ai: Allow a value for predict_all. 2018-04-17 01:42:03 -04:00
Tom Rothamel ca759eb72e ai: Add if_also and if_not.
These clauses allow attributes (or implementations of attributes) to
interact with each other.
2018-04-17 01:28:49 -04:00
Tom Rothamel 559d57f4cc id: Allow the user to move the id to the bottom of the screen. 2018-04-16 20:18:16 -04:00
Tom Rothamel 27c821c010 Fix accidental translation of the Russian director. 2018-04-16 18:51:54 -04:00
Tom Rothamel 3a064847d2 Add keywords.
* Index from sl2 for.
* Always from ai.
2018-04-16 02:22:03 -04:00
Tom Rothamel 8dc1124dbf ai: Add the always statement.
A convenient and fast way to include a displayable that must
always be there.
2018-04-16 02:17:42 -04:00
Tom Rothamel cd5d9a28ba sl2: Add an index expression to for.
This makes it possible to change which entry in the cache corresponds
to an entry in the list being iterated over, which can fix certain
problems where those don't match up.
2018-04-16 01:43:49 -04:00
Tom Rothamel 61447a9f83 ai: Report and display unknown attributes. 2018-04-15 17:52:40 -04:00
Tom Rothamel 6db5afa132 ai: Fix and improve _list_attributes.
It now has the correct API, and also handles sorting the
attributes in a sensible manner.
2018-04-15 15:22:35 -04:00
Tom Rothamel efa6d28f83 Automatic definition of attributes in groups. 2018-04-15 14:05:37 -04:00
Tom Rothamel dba7363be7 Move images to being defined at the start of init zero. 2018-04-15 13:22:23 -04:00
Tom Rothamel ef254d5a7d Land AttributeImage.
This was originally developed at https://github.com/renpy/ai .
2018-04-14 15:07:19 -04:00
Tom Rothamel ee3e9fcf30 Update changelog for Ren'Py 7.0. 2018-04-14 00:10:08 -04:00
Tom Rothamel a06262c2b3 Fix typo.
Fixes #1429.
2018-04-13 16:55:07 -04:00
Tom Rothamel 779a5472d4 Update keywords. 2018-04-13 16:53:41 -04:00
Tom Rothamel d1c16835c2 Include attributeimage keywords. 2018-04-12 22:29:42 -04:00
Tom Rothamel d68d7e205f Don't try to distribute oldtutorial or templates. 2018-04-09 08:29:55 -04:00
Tom Rothamel 0ffbe3cc0a Allow the launcher to detect the presence and absence of the old
templates and tutorial.
2018-04-08 19:27:06 -04:00
Tom Rothamel f0bfc27267 Remove the files for the old tutorial and legacy templates.
We've been on the new stuff for a year now, and I've gotten (mostly)
good feedback on everything. So it's time to shrink the distribution
by removing this legacy content.

Thanks to everyone who contributed this - your contributions will
live on in git and the Ren'Py 6 downloads.
2018-04-08 19:21:09 -04:00
Tom Rothamel 20e50a9e06 Fix translate None instead of translate russian. 2018-04-08 08:39:15 -04:00
Tom Rothamel c67f88b7f3 Update the screen before checking _handles_event, for non-transient screens.
Fixes #1426.

During skipping, a normal screen was never updated, which means
that the hide handler was not called. This changes it so we force
an update if need be, provided the screen is not transient.

Why not transient? It's because a transient screen is used for
the window in with_none, and updating that screen is expensive
for the 90% of time it isn't seen.
2018-04-08 01:28:47 -04:00
Tom Rothamel 16feb53d14 Improve duplicate translation errors. 2018-04-06 22:40:09 -04:00
Tom Rothamel 3f34041ae7 Bump version. 2018-04-06 22:39:50 -04:00
Tom Rothamel 7bbe41d5a8 Rename LiveDisplayable to just Displayable. 2018-04-03 22:56:27 -04:00
Tom Rothamel 06b09b071f Improve AlphaMask.
AlphaMask now renders the mask displayable in an area the same
size as its child, allowing the mask displayable to move in
normal ways using ATL.
2018-04-03 22:47:20 -04:00
Tom Rothamel 75b8959b5d Document fewer image manipulators, and explain why they're obsolete.
Per the discussion in #1425.
2018-04-03 21:04:53 -04:00
Tom Rothamel bf24051c6e Merge pull request #1423 from el-unicorn/translate_template_pt_options
Translate comments from templates/portuguese/options.rpy from spanish/english to portuguese
2018-04-03 01:19:46 -04:00
Tom Rothamel 6c83a1fae0 Only look at ev.unicode during KEYDOWN.
Fixes #1424.
2018-04-02 21:17:15 -04:00
el-unicorn d9818f533b translate comments from options.rpy from spanish/english to portuguese 2018-04-01 21:03:45 -03:00
Tom Rothamel e1e2337538 Add Changelog. 2018-03-30 17:41:44 -04:00
Tom Rothamel 93be27613b Make selected save slot buttons work propertly.
That is, we should highlight the latest save slot while it is
idle.
2018-03-30 09:19:28 -04:00
Tom Rothamel ee381010a5 Use the right serial number for a for statement cache. 2018-03-29 23:19:58 -04:00
Tom Rothamel 8eb3c854a2 Improve behavior WRT retain-after-load. 2018-03-29 14:27:51 -04:00
Tom Rothamel 458de8bedd Roll back ever been changed.
This fixes a problem caused by default getting confused due to
ever_been_changed being set once, but then defaults not getting
set since it doesn't change after a rollback.
2018-03-29 02:48:41 -04:00
Tom Rothamel 924dd5865e Begin the stores after a rollback.
This should prevent problems with rolling back to the prior state
of the current game, rather than the prior state of the old game.
2018-03-29 01:55:36 -04:00
Tom Rothamel c5820c424f Fix auto window showing the interaction after rollback.
Not the bug I was shooting for.
2018-03-29 01:14:45 -04:00
Tom Rothamel c7195c8a0e Bump version. 2018-03-28 20:11:21 -04:00
Tom Rothamel 3d62b916b3 Update credits and sponsors. 2018-03-27 20:39:12 -04:00
Tom Rothamel be60218612 Add gui.button_image_extension. 2018-03-27 18:04:18 -04:00
Tom Rothamel 4faf0213a5 Merge pull request #1416 from Andykl/master
Fix wrong predict in DynamicDisplayable
2018-03-27 15:25:23 -04:00
Andy_kl ea3560e685 Fix wrong predict in DynamicDisplayable 2018-03-27 23:25:34 +05:00
Tom Rothamel e657dfac90 Default only updates a variable if it hasn't been loaded from a save. 2018-03-27 14:06:26 -04:00
Tom Rothamel 8c3cbe1f15 Fix miss_cache load/save problems. 2018-03-26 21:43:14 -04:00
Tom Rothamel 6c02eaeda5 Let enter dismiss the gui color select screen. 2018-03-25 20:23:05 -04:00
Tom Rothamel f49f183151 Wait for images to finish generating.
This is a reasonable way to fix the problem in #1415, which
I'm theorizing is happening because the game was launched
before the images are finished generating.
2018-03-25 20:06:25 -04:00
Tom Rothamel 6ad3465c2e Encode system font to utf-8. 2018-03-25 20:03:36 -04:00
Tom Rothamel 5a57136e64 Merge pull request #1415 from Ria-kon/master
Russian TTS Update
2018-03-25 17:42:57 -04:00
Tom Rothamel 5f8d202a42 Fix crash with Preferences("Joystick...").
Per #1415.
2018-03-25 17:40:22 -04:00
Tom Rothamel 31a554404b Prevent warp from causing infinite loops. 2018-03-25 14:49:14 -04:00
Tom Rothamel 8fa8ce5f8a Stop playing musing when music is queued during fast-skip.
This prevents queued music from being built up before it's
presented to the player.
2018-03-25 14:43:32 -04:00
Tom Rothamel c86debcf09 More warp fixes. 2018-03-25 14:37:52 -04:00
Tom Rothamel 5d7883b899 Improve warp.
* It will now process music and show screen / hide screen statements.
* It tries to intelligently pick parent statements.
2018-03-25 14:20:11 -04:00
Tom Rothamel 6ba8ec4f3d Disable angle when not on windows. 2018-03-25 12:29:48 -04:00
Tom Rothamel 8eda1e345b Warp after start.
This lets Ren'Py set up defaults before the warp happens.

Fixes #1413.
2018-03-25 10:56:40 -04:00
Ria-kon 3bb8ae2f5e Russian Tutorial Update 2018-03-25 11:03:34 +03:00
Ria-kon dafb7daba5 Russian The Question update 2018-03-25 11:01:19 +03:00
Ria-kon fc23814e1d First try. Tutorial 2018-03-25 10:36:30 +03:00
Ria-kon 56bbe5df9d First try. The Question 2018-03-25 10:35:12 +03:00
Ria-kon 578873a17a First try 2018-03-25 10:07:43 +03:00
Tom Rothamel b18b390496 Fix double-documentation. 2018-03-24 22:24:59 -04:00
Tom Rothamel bbd977ad69 Changelog the self-voicing changes.
Per #1356.
2018-03-22 21:42:41 -04:00
Tom Rothamel 9057d67dc5 Improve tts for launcher. 2018-03-22 01:48:43 -04:00
Tom Rothamel 698dd9e060 Improve tts functionality and translatability. 2018-03-21 22:40:40 -04:00
Tom Rothamel 00390f3f10 Update pig latin translation. 2018-03-21 22:33:11 -04:00
Tom Rothamel b71d7a8c38 More self-voicing translation support. 2018-03-21 22:17:48 -04:00
Tom Rothamel 2b2e247d19 Improve auto-voice translation. 2018-03-21 21:44:51 -04:00
Tom Rothamel 44b842d491 Update changelog. 2018-03-20 20:15:33 -04:00
Tom Rothamel 7044b9d448 Allow more names to be redefined without lint warnings.
Fixes #1411.
2018-03-19 23:40:13 -04:00
Tom Rothamel d5d4f11a6a Lower zip compression to 5.
This should reduce build times in exchange for a small size
increase, which is usually worth it.
2018-03-18 14:15:57 -04:00
Tom Rothamel 521e5d612d Remove spurious print. 2018-03-18 12:18:17 -04:00
Tom Rothamel 4c09beca76 :x 2018-03-18 11:37:51 -04:00
Tom Rothamel 44d0b20ddd Update changelog. 2018-03-17 23:15:47 -04:00
Tom Rothamel 95861477ea Initialize the number of seen translates before init time.
Why not? It's well-defined.
2018-03-17 11:21:38 -04:00
Tom Rothamel 8e584ed658 Update the piglatin translation. 2018-03-16 22:41:37 -04:00
Tom Rothamel 81b71049f8 Do not specially handle a shift-alt key that types something.
Fixes Norwegian text input.
2018-03-16 22:39:43 -04:00
Tom Rothamel ada808a881 Fix doc example. 2018-03-16 09:44:32 -04:00
Tom Rothamel 60756f97b0 Bound surface access. 2018-03-15 21:28:10 -04:00
Tom Rothamel 23a9d5be6f Call _choose_attributes when attributes have been determined.
This is intended to support AttributeImage when used as a side
image, as it lets Ren'Py search for the right side image and
then get its attributes.
2018-03-15 01:26:59 -04:00
Tom Rothamel b054d6e449 Use the alternate tlid for autovoice. 2018-03-15 00:23:32 -04:00
Tom Rothamel 65a36a4190 Make the from statement introduce an alternate TL identifier.
The from clause, since it's added automatically, shouldn't change
the game semantics. Unfortunately, this wasn't the case - adding
a from clause would change the translation identifier.

Since games could rely on this behavior without knowing it, we had
to split the difference. Now, when a label begins with an _, it
introduces an alternate tlid. If the main tlid exists, it's used.
Otherwise, the alternate tlid is tried.

Generation uses the main tlid.
2018-03-14 22:54:30 -04:00
Tom Rothamel 4d2f7988d9 Revert "Local label fixes."
This reverts commit 00997f8db1.
2018-03-14 20:49:54 -04:00
Tom Rothamel bc9be0c280 Revert "Make global labels scopeless."
This reverts commit 41ad34cb95.
2018-03-14 20:49:51 -04:00
Tom Rothamel a7b895a63f Revert "Update labels doc."
This reverts commit 3919ad0176.
2018-03-14 20:49:47 -04:00
Tom Rothamel 8cc4cddc73 Fix compatibility with older games. 2018-03-14 11:47:16 -04:00
Tom Rothamel 09ba6c6f50 Only repeat show, replace, and update.
Hide and replaced are triggered multiple times, but should only
be delivered once each.
2018-03-14 11:47:16 -04:00
Tom Rothamel 9d6f1f667c Merge pull request #1406 from eevee/relax-atl-interpolation
Allow interpolating to any prop-only ATL transform
2018-03-13 18:36:42 -04:00
Tom Rothamel bcd8e4831c Merge pull request #1407 from kevinturner/master
Fix typo in "renpy.get_attributes" doc
2018-03-13 18:35:37 -04:00
Tom Rothamel 1868e7b6ae Can't rollback when config.rollback_enabled = False.
Fixes #1405.
2018-03-13 03:04:55 -04:00
Tom Rothamel 1b2e4c21b4 Make the list of events to deliver configurable. 2018-03-13 02:32:17 -04:00
Kevin Turner 4e08656c4e Fix typo in "renpy.get_attributes" doc
Saying that this returns "None" when an image is showing instead of when it isn't makes this function incredibly confusing at first sight.
2018-03-12 14:18:56 -04:00
Tom Rothamel a8a84451ca Deliver certain transform events each time one happens. 2018-03-12 10:38:38 -04:00
Eevee (Lexy Munroe) 2e81fb434a Relax ATL interpolation restrictions slightly
A transform can only be interpolated if it contains plain property
assignments.  Previously, this required putting them all on one line;
but semantically this is the same as putting each one on its own line,
so there's no reason not to allow that too.
2018-03-12 04:03:27 -07:00
Tom Rothamel 720515d210 Use a predicted screen when changing screens in a tag.
This should be a slight performance improvement.
2018-03-12 02:05:44 -04:00
Tom Rothamel f69c46c7e6 Separate the screen cache into generations.
This fixes a problem where the cache of a screen could contain
a transform in the old state. What's more, since the cache was
persisting between screens, showing two screens with the same
tag would use the (long obsolete) cached data, and hide the
old screen.

By breaking things up into old and new generations, a transform
not used in the new generation will "go away", and be reset when
shown again.
2018-03-11 16:47:10 -04:00
Tom Rothamel 927b53f4d8 Update and edit changelog. 2018-03-10 16:03:11 -05:00
Tom Rothamel 8d791b7cda Check for editra.exe. 2018-03-10 04:16:27 -05:00
Tom Rothamel a47ba45137 Update the changelog. 2018-03-09 17:47:24 -05:00
Tom Rothamel 3919ad0176 Update labels doc. 2018-03-09 02:00:11 -05:00
Tom Rothamel 33e894d70f Fix a problem with side images persisting when interact=False.
This was a weird one, resolved by resetting the side image during
the next interaction or with None.

Fixes #1380. Thank you, Glitchy.
2018-03-08 23:21:12 -05:00
Tom Rothamel 41ad34cb95 Make global labels scopeless.
This simplifies the current confusing behavior, and brings it
back to what had been documented.
2018-03-08 01:52:23 -05:00
Tom Rothamel 80f8ebf3ae Write files.txt into the base directory.
This ensures it goes into someplace writable.
2018-03-07 21:31:51 -05:00
Tom Rothamel 00997f8db1 Local label fixes.
* Ignore global labels beginning with _.
* Change the documentation to match global label scope.

Fixes #1398.
2018-03-07 00:57:48 -05:00
Tom Rothamel 309da53b84 Add renpy.get_say_image_tag()
As discussed on discord, this gets the image tag of the currently
speaking character.
2018-03-06 21:24:09 -05:00
Tom Rothamel 858701d4d9 Fix docs.
Fixes #1401.
2018-03-05 23:37:05 -05:00
Tom Rothamel 79bba2695e Fix the movie documentation.
The channel isn't needed, so don't include it in examples.

Per #1402.
2018-03-05 22:59:21 -05:00
Tom Rothamel 2539d9218f Document that Dynamic displayables don't particpate in changes.
And also what they're meant for, design-wise.

Per #1394.
2018-03-04 19:02:41 -05:00
Tom Rothamel 1957680283 Merge pull request #1388 from mbrickn/patch-2
Updated URLs to use https when possible. (Readme file only)
2018-03-04 15:47:19 -05:00
Tom Rothamel 1681c2a8ee Merge pull request #1393 from Ria-kon/master
Russian Update 6.99.14.2
2018-03-04 15:46:44 -05:00
Tom Rothamel 9243ed8622 Merge pull request #1396 from eevee/call-screen-with
call_screen() shouldn't pass along _with_none
2018-03-04 15:46:06 -05:00
Tom Rothamel 603de90bad Merge pull request #1395 from eevee/sfont-baseline
Allow specifying the baseline for an SFont
2018-03-04 15:37:23 -05:00
Tom Rothamel f25d1919df Prevent the predict coroutine from being run twice. 2018-03-04 14:25:46 -05:00
Tom Rothamel 3306f9184d Run Python hide statements inside a function context.
This works around an issue with the python compiler, where it seems
to emit incorrect code when compiling for the outermost context,
code that has an assumption that the locas and globals are the
same thing, when in a hide block, they're not.

Fixes #1397.
2018-03-04 14:18:03 -05:00
Tom Rothamel 805bb33363 Infrastructure for compiling python hide differently. 2018-03-04 01:02:51 -05:00
Tom Rothamel efa6bf1aff Add pagekeys to viewports in the new GUI.
This is for accessibility, it makes the interface more useable
with just a keyboard.
2018-03-03 20:58:06 -05:00
Eevee (Lexy Munroe) 5a207310b3 call_screen() shouldn't pass along _with_none 2018-03-03 17:18:11 -08:00
Eevee (Lexy Munroe) 30b8f03cbb Allow specifying the baseline for an SFont 2018-03-03 16:39:19 -08:00
Tom Rothamel fa669d8bf1 Read multipersistent data in binary mode. 2018-03-03 12:21:23 -05:00
Tom Rothamel bf1b6ca143 Ignore the ctrl modifier on ctrl, etc.
This fixes a problem with newer SDL (or maybe X, etc - an upgraded
Ubuntu seems related) where pressing CTRL causes the modifier to
be added as part of the KEYDOWN event.
2018-03-02 22:49:29 -05:00
Tom Rothamel 83f59262f8 Add the play_callback argument to Movie.
This will let creators do things like queue up a transition movie
followed by a looping new stable state.
2018-03-02 22:04:56 -05:00
Ria-kon 0e3d6944c1 Russian Update 6.99.14.2 2018-03-03 02:59:18 +02:00
Tom Rothamel 0572210e2e Only cycle the storedicts on log.begin.
Previously, the storedicts were being cycled on log.complete(),
which is called during a save as well as normal statement begin.
When cycled, the storedicts would record the information while
in the save context, and restore it.

This was causing problems with suppress_overlay, and less likely
other problems.

Fixes #1383.
2018-03-02 02:21:22 -05:00
Tom Rothamel 8b5a01ac2d Begin a rollback whenever a context runs.
Attempts to fix #1383. The idea is that all the symptoms there
seem to be caused by suppress_overlay being set wrong, and
it might be set wrong because a rollback is happening.
2018-03-01 19:31:51 -05:00
Tom Rothamel 7df540679e Update sponsor list. 2018-02-26 23:23:56 -05:00
Tom Rothamel 0b8d92b5a8 Properly offset the mouse.
This undoes the effect of the optimization where we only draw
the bounding box of non-transparent pixels.

Fixes #1384.
2018-02-26 01:44:35 -05:00
Tom Rothamel 6ebf2597c4 Do not include the version in the channel name.
Fixes #1379.
2018-02-25 13:34:00 -05:00
Tom Rothamel 4abe1e987e Include tmp directory in atom.
Atom uses tmp as the name of a library it depends on. Fixes #1391.
2018-02-24 23:52:08 -05:00
Tom Rothamel 37e9b31448 Write navigation.json atomically.
If it exists, it'll be valid and contain complete information.
2018-02-24 14:35:58 -05:00
Tom Rothamel 769aa0aa45 Write navigation.json into game/saves.
This will make it more available to editors, as it becomes
possible to find it automatically. Since game/saves has been
excluded from being shipped, it should also not be a problem
for distro or vcs.
2018-02-24 14:27:46 -05:00
Tom Rothamel 71bbe96381 Update credits. 2018-02-23 23:43:52 -05:00
Tom Rothamel afbe3a36cf Add an Open project button.
This opens the project as a whole in the text editor, if
the editor itself supports that.
2018-02-23 00:49:06 -05:00
Tom Rothamel 5c1893ca6e Allow the updater to deal with files longer than PATH_MAX on windows.
(This is done by prefixing them with \\?\ )
2018-02-22 01:20:03 -05:00
Tom Rothamel a2c6c3b8a1 Fix Atom classification. 2018-02-21 20:53:09 -05:00
Tom Rothamel 899be4fb74 Adjust atom packaging. 2018-02-21 03:00:14 -05:00
Maxwell Paul Brickner 6364cf535c Updated URLs to use https when possible.
I updated urls to use https when possible to avoid redirects.
2018-02-19 11:18:29 -05:00
Tom Rothamel acaf075bd8 Add new keywords. 2018-02-18 18:19:35 -05:00
Tom Rothamel 7ebe89289e Document NVL-mode functions.
Fixes #1381.
2018-02-16 20:45:31 -05:00
Tom Rothamel d2190ba2e8 Fix some incorrect multiple_say documentation.
Fixes #1385.
2018-02-15 23:09:01 -05:00
Tom Rothamel 54e83e5aa3 Fix spurious code in the question. 2018-02-13 18:40:57 -05:00
Tom Rothamel 0d25fd45ab Escape keywords. 2018-02-13 12:46:56 -05:00
Tom Rothamel 86f5321f9d Fix keyword generation. 2018-02-12 22:14:28 -05:00
Tom Rothamel 8223af20d6 Read more keywords from Ren'Py. 2018-02-11 12:38:11 -05:00
Tom Rothamel d1f0c0fa57 Autocompute a property regex. 2018-02-11 01:40:48 -05:00
Tom Rothamel a5affb2b80 Change how we represent screen language keywords.
This new representation takes up alot less space in memory,
and will also facilitate creating more compact regular
expressions.
2018-02-10 20:46:24 -05:00
Tom Rothamel 1f575ba4ec Distribute Atom with Ren'Py.
(But not the final version, so don't expect this to work, nightly
build fans.)
2018-02-10 20:09:42 -05:00
Tom Rothamel 59241f0e06 Add Atom support to the launcher. 2018-02-09 19:49:46 -05:00
Tom Rothamel 44b1be900e Minor editor changes to get ready to support atom. 2018-02-08 18:59:02 -05:00
Tom Rothamel 3846bcdeb9 Remove extraneous debug raise.
Fixes #1357.
2018-02-08 17:23:56 -05:00
Tom Rothamel 1fd121025b Add docs when adding Ren'Py. 2018-02-06 11:59:59 -05:00
Tom Rothamel 8b9bc52af2 Bump the version to 6.99.14.2. 2018-02-05 19:09:23 -05:00
Tom Rothamel b61b929451 Fix typo. 2018-02-05 01:17:12 -05:00
Tom Rothamel 96635b6a71 Add missing version number. 2018-02-05 01:14:57 -05:00
Tom Rothamel 06f0b2939b Update keywords for 6.99.14.1. 2018-02-04 19:19:00 -05:00
Tom Rothamel 4cc03dec87 Add a warning to myself. 2018-02-04 12:51:59 -05:00
Tom Rothamel 45882282ee Update the changelog and credits. 2018-02-04 05:47:35 -05:00
Tom Rothamel 88723fc975 Merge pull request #1371 from xavi-mat/master
Update Spanish translation
2018-02-03 14:38:27 -05:00
xavi-mat 434af61a4b Update "Shoulder" Button.
Translating "Shoulder" button as "Botón sup. frontal. der./izq."
2018-02-03 16:26:53 +01:00
Tom Rothamel a6adfa3d3a Merge pull request #1373 from Enerccio/master
Add mouse_drop property, to indicate that the drop shold follow the mouse pointer, and not maximum overlap.
2018-02-02 17:54:16 -05:00
Enerccio 35f015a0df mouse_drop keyword in sl2 2018-02-01 22:14:10 +01:00
Enerccio f9bf56ff43 Mouse drop keyword change in screenlang 2018-02-01 22:13:23 +01:00
Enerccio e4a4d3f686 fixed <= and updated the name 2018-02-01 22:09:15 +01:00
Peter Vanusanik cdcb23e4a6 drag & drop change 2018-02-01 21:53:54 +01:00
Tom Rothamel e850ec89e0 Fix documentation warnings.
All fixed, except :orphan: (which is wrong) and some duplications.
2018-02-01 01:26:10 -05:00
Tom Rothamel 5fce2cb1d6 Fix various minor documentation problems. 2018-02-01 00:34:58 -05:00
Tom Rothamel 14162cc1e8 Fix typo.
Fixes #1372.
2018-01-31 22:12:05 -05:00
xavi-mat e68b5829ff Two new strings in the las nightly
Addindg "System Editor" and "None", from the last nightly.
2018-01-31 18:04:43 +01:00
xavi-mat 65831c85ae Better 'labels' than 'Etiquetas'
Spanish translation "Eqtiquetas" could be confused with 'tags'. It's better to leave this untranslated (in the script, the developer must write the word "label" anyway)
2018-01-31 17:54:11 +01:00
xavi-mat fb0f30821e small error 2018-01-31 17:37:47 +01:00
xavi-mat 20bccb3c0c Update Spanish translation 2018-01-31 17:23:07 +01:00
Tom Rothamel 2ebe05011c doc: Add missing clause.
Fixes #1367
2018-01-30 22:26:45 -05:00
Tom Rothamel f814e767f6 Merge pull request #1370 from Ria-kon/master
Russian update 6.99.14.1 (2
2018-01-30 18:52:24 -05:00
Ria-kon bb6f8ada97 Update for 6.99.14.1 2018-01-30 06:04:55 +02:00
Ria-kon 22808f0b0b Make "System Editor" and "None" translatable 2018-01-30 06:01:07 +02:00
Tom Rothamel bda9ed1e68 Merge pull request #1369 from Ria-kon/master
Russian 6.99.14.1
2018-01-29 19:59:46 -05:00
Tom Rothamel 6f900ad68f Update Pig Latin translation. 2018-01-29 18:39:59 -05:00
Tom Rothamel eb771529cf Redo the front page of the launcher.
Add an actions section, with Navigate Script as the first button
inside it. The idea behind this is that many people didn't
realize it was a button they could click.
2018-01-29 18:27:19 -05:00
Ria-kon 4bdce24c9d Russian 6.99.14.1 2018-01-29 07:16:17 +02:00
Tom Rothamel 82a7087921 Disable imagemap caching. 2018-01-28 19:20:24 -05:00
Tom Rothamel ec952189a0 Only predict ConditionSwitch when predicting.
This prevents the ConditionSwitch code from slowing things down
when a prediction fails.
2018-01-28 17:50:16 -05:00
Tom Rothamel 740b5e95ed Fix DynamicDisplayable list prediction.
DD could return a list for prediction, but it would always
be taken as a displayable and fail. This fixes that, and makes
the new predict_all behavior do something.
2018-01-28 11:47:41 -05:00
Tom Rothamel 6931ddd519 FPS meter displays and toggles gl powersave. 2018-01-26 17:46:13 -05:00
Tom Rothamel 6671add453 Remove the auto option for gl powersave, default to enable.
Not having it tends to spin the fans on people's laptops,
while enabling it doesn't really seem to have much effect,
as it just increases the framerate on otherwise-static
screens.
2018-01-26 17:36:49 -05:00
Tom Rothamel 36ef77c7c8 Remove debug print. 2018-01-26 17:33:08 -05:00
Tom Rothamel b0da5817c1 Round the fps to one decimal. 2018-01-25 21:07:15 -05:00
Tom Rothamel 6a4449b91b Invalidate the cache rather than redrawing on per_frame screens.
This fixes a problem where we'd update a screen, and something in
it would cause a redraw, that caused us to redraw the screen...
which means we'd never go into low frameratem mode.
2018-01-25 21:00:14 -05:00
Tom Rothamel eedd113144 Prevent Ren'Py from getting stuck in high performance mode.
We had this loop where (not can_block) set needs_redraw, and
needs_redraw indirectly set (not can_block).
2018-01-25 19:55:07 -05:00
Tom Rothamel 324ddd5eb8 Do not flip the screen if a fullscreen video has no surface.
See #1364.
2018-01-25 01:55:54 -05:00
Tom Rothamel 3865ec78d1 Show the size of the last 2 generations of the cache. 2018-01-24 23:46:51 -05:00
Tom Rothamel 5676868a7d Update the generation of a cache entry on a fast hit. 2018-01-24 23:46:16 -05:00
Tom Rothamel 7ecb5de1c8 Display the size of the current and last generation in the cache. 2018-01-24 23:17:17 -05:00
Tom Rothamel c9200efeab Update keywords for release. 2018-01-24 02:30:01 -05:00
Tom Rothamel a5ac108cb2 Fix the display of the cache size. 2018-01-24 02:24:02 -05:00
Tom Rothamel 807cc096ba Make sure we leave idle_frame even if we can block. 2018-01-24 01:43:14 -05:00
Tom Rothamel 6e3e866e8f Do not do expensive prediction in high-redraw scenarios.
This prevents the framerate from glitching out due to prediction
when the screen should be redrawn. (We'll still get a small
glitch when the screen is static, but that shouldn't
be visible.)
2018-01-24 01:34:47 -05:00
Tom Rothamel 1533aa06ee Global experimental flag.
Used to enable features that aren't ready for prime time, but
should be on for testing.
2018-01-23 23:45:48 -05:00
Tom Rothamel 0e8eb0be71 Better repr for Frame. 2018-01-23 23:34:19 -05:00
Tom Rothamel e2f617406d Pre-fill the loadable cache.
Should prevent blocking disk access, at least in some places.
2018-01-23 22:24:06 -05:00
Tom Rothamel cdbbc8255f Predict the overlay screen and _transparent_tile.png. 2018-01-23 21:59:07 -05:00
Tom Rothamel 9359e7bea7 F4 shows the image load log. 2018-01-23 21:00:11 -05:00
Tom Rothamel 8b88d8eed8 Move the image load log to a per-frame screen.
And include the texture info.
2018-01-23 20:45:51 -05:00
Tom Rothamel 08a2b348bf Run the launcher in powersave mode. 2018-01-23 20:39:44 -05:00
Tom Rothamel 5cf5b22b86 Hide the memory profile function behind RENPY_EXPERIMENTAL. 2018-01-23 19:54:10 -05:00
Tom Rothamel a2ecbc1cf8 Allow renpy.start_predict and renpy.stop_predict to take wildcards. 2018-01-23 19:51:51 -05:00
Tom Rothamel 4e4cdb4988 Add the renpy.list_images function.
This returns a list of the images Ren'Py knows about.
2018-01-23 19:17:13 -05:00
Tom Rothamel 9a48079332 Remove debug prints. 2018-01-23 02:32:24 -05:00
Tom Rothamel 47139d57c7 Add a predict_all parameter to ConditionSwitch and ShowingSwitch.
This cases Ren'Py to predict all displayables, not just the
currently selected one. It could be used, for example, to make
a ConditionSwitch that predicts all possible emotions of a
character.
2018-01-23 02:24:37 -05:00
Tom Rothamel 4d4e9a07cd Release the GIL when calling glGlear.
Since we could plausibly block in this function.
2018-01-23 01:51:55 -05:00
Tom Rothamel a1745cd7f2 Always optimize image bounds. 2018-01-23 00:39:33 -05:00
Tom Rothamel 8ae732dda0 Document image caching changes. 2018-01-23 00:21:25 -05:00
Tom Rothamel b44c9ed8cb Change and compat cache defaults. 2018-01-23 00:20:53 -05:00
Tom Rothamel bd53625a27 Load textures into the GPU during idle frames.
This actually helps to reduce some memory consumption, as we can
toss the premultiplied texture early and rely on OpenGL to keep a
copy of the texture for us in video RAM or wherever OpenGL keeps
things.
2018-01-22 20:20:32 -05:00
Tom Rothamel 8ca2410b21 Move the idle frame events into their own method. 2018-01-22 20:16:15 -05:00
Tom Rothamel 56d26cfaec Set the cache size in megabytes. 2018-01-22 20:11:55 -05:00
Tom Rothamel 9ead3c6e84 Deincrementalize the size of the image cache.
With the new texture stuff, it's hard to maintain the cache size
incrementally, but it's really fast to compute it each time the
size is needed.
2018-01-22 13:41:09 -05:00
Tom Rothamel 3a843ecaf7 Kill a cache entry that has not a surface or texture. 2018-01-22 01:03:09 -05:00
Tom Rothamel aad8489565 Convert surface-only textures to real textures in a background thread. 2018-01-22 00:49:02 -05:00
Tom Rothamel 9f95a34fb4 Allow Ren'Py to report a traceback on an open from main thread. 2018-01-22 00:06:14 -05:00
Tom Rothamel f3b78279d5 Only error out from predicting if on the main thread.
This means that loading a sound or movie from the predictor thread
goes through fine.
2018-01-22 00:05:11 -05:00
Tom Rothamel d1fdd39a9d Document the maxsize transform property. 2018-01-22 00:02:07 -05:00
Tom Rothamel 0bc24ac5cd Add a maxsize transform property.
This transforms an image to be smaller than a certian maximum size
while maintaining the image's aspect ratio.
2018-01-21 14:57:22 -05:00
Tom Rothamel 6e4ad90083 Refuse to open files while predicting.
Predicting takes place in the main thread, and can be expensive. We
don't want to hit the disk while predicting, so we check for that
case and abort the prediction, rather than taking the slowdown.
2018-01-21 14:18:43 -05:00
Tom Rothamel 7fc24e51ef Fix loading older nvl mode saves. 2018-01-20 22:47:03 -05:00
Tom Rothamel 9812c00db4 Fix an issue with default_bounds not being set.
See #1359.
2018-01-20 15:23:29 -05:00
Tom Rothamel 1cf362e84b Allow the cache to return a texture or a render.
This is used by the gl mouse code, which requires a texture to
work properly.
2018-01-20 13:54:55 -05:00
Tom Rothamel 0cf66407e9 Changelog optimize_image_bounds. 2018-01-19 20:13:58 -05:00
Tom Rothamel ec9dd801ce Optimize texture boundaries.
When loading an image, we scan for the bounding box of the
non-transparent sections, and only load that box into the
texture. This is a big win for common patterns, like photoshop
layers converted into pngs.
2018-01-19 02:10:08 -05:00
Tom Rothamel 81843a7ea1 Start 6.99.14 changelog. 2018-01-18 22:37:28 -05:00
Tom Rothamel e22b0b5e0c Copy context.music.
Per https://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=47659
2018-01-17 21:21:02 -05:00
Tom Rothamel 49f44735f1 Include the time traceback.txt and errors.txt were created.
To make it easier to deal with stale files.
2018-01-17 20:23:38 -05:00
Tom Rothamel 452e879199 Add _drag.
Which fixes some problems with the layout of the image load log if
default is redefined.
2018-01-16 22:51:44 -05:00
Tom Rothamel e07e396d77 Use a Frame rather than an im.Tile for the developer background.
It's better, and reduces cache pressure.
2018-01-16 21:24:05 -05:00
Tom Rothamel eaf12a4089 Recycle the Python cache. 2018-01-16 01:45:25 -05:00
Tom Rothamel 31be06e1c5 Bump version to 6.14.1. 2018-01-15 23:32:13 -05:00
Tom Rothamel 9651db244c Merge pull request #1354 from Ria-kon/master
Fixes for changelog (doc)
2018-01-15 16:51:12 -05:00
Ria-kon 34c27ece40 Fixes for changelog (doc)
`config.loadable` callback => `config.loadable_callback`
targer => target
2018-01-15 20:51:06 +02:00
Tom Rothamel 3f5082d231 Ensure ATL functions process hide events.
Fixes #1351.
2018-01-14 22:12:30 -05:00
Tom Rothamel 4edced0a43 Update changelog and doc gc variables. 2018-01-14 12:43:05 -05:00
Tom Rothamel db38debae4 Improve how we print the the garbage. 2018-01-13 12:42:23 -05:00
Tom Rothamel 0730ee873d Fix unparameterized ATL. 2018-01-13 12:31:22 -05:00
Tom Rothamel 7f73e7f97b Predict save slot screenshots when a file page action is visible. 2018-01-13 10:25:51 -05:00
Tom Rothamel a2d61c3fa6 Scan the load/save file metadata. 2018-01-13 00:38:38 -05:00
Tom Rothamel c3b9db09ed Add a way of printing objects that the GC collects. 2018-01-12 23:36:00 -05:00
Tom Rothamel 397b950c79 Remove a reference cycle in ATLTransform.
This gets rid of quite a bit of memory leaking, making it much less
likely we'll need to trigger the garbage collectors.
2018-01-12 23:11:38 -05:00
Tom Rothamel e78543345f Do not always collect all generations.
Due to a mistake in understanding the GC semantics, a managed GC
would collect all generations. Now it only collects the first and
second generations.
2018-01-12 22:25:03 -05:00
Tom Rothamel 9b8e99f0f6 Remove incorrect screen duplication.
Fixes #1346.
2018-01-11 00:48:13 -05:00
Tom Rothamel a4966719a9 Update credits. 2018-01-10 21:42:15 -05:00
Tom Rothamel 7bbd577de0 Allow 0 and N to be generated in build.name.
Fixes #1343.
2018-01-09 23:40:49 -05:00
Tom Rothamel 5a8a553033 Fix translations. 2018-01-09 20:48:19 -05:00
Tom Rothamel 1924806be3 Update Arabic translation. (from Maissara Moustafa) 2018-01-09 20:41:31 -05:00
Tom Rothamel 6577f2c5f5 Check in keywords.py. 2018-01-08 22:27:23 -05:00
Tom Rothamel 8b3c353ffe Update sponsors. 2018-01-08 21:50:26 -05:00
Tom Rothamel 8b162210ce Update piglatin translation. 2018-01-08 21:20:06 -05:00
Tom Rothamel 7afa69ffc4 Document pagekeys and arrowkeys on viewport. 2018-01-08 01:58:53 -05:00
Tom Rothamel 9766746081 Add viewport pagekeys.
These make it possible to hit pageup and pagedown to scroll a
viewport.
2018-01-08 01:43:00 -05:00
Tom Rothamel 3eb0bcbc3e Update copyright to 2018. 2018-01-07 18:47:32 -05:00
Tom Rothamel 28afc8c53f Point out that decreasing config.rollback_length might hurt things.
Fixes #1334.
2018-01-07 18:40:11 -05:00
Tom Rothamel 1cbe298507 Changelog previous change. 2018-01-07 18:22:35 -05:00
Tom Rothamel 007e370698 Use the current time to seed screen language serial numbers.
This fixes a problem where, if screens are present in two or more
files, two nodes can be created with the same serial number. These
could then cause caching problems, or one displyable being replaced
with another, when switching from one screen to the other.

Fixes #1340.
2018-01-07 18:05:06 -05:00
Tom Rothamel 16dcc85c6a Deal with .rpt files not having a translation_loc.
Fixes #1339.
2018-01-06 13:13:07 -05:00
Tom Rothamel 4109c03983 Update credits. 2018-01-06 12:10:16 -05:00
Tom Rothamel f332b2dcec Start the prediction thread each time an interaction begins.
This ensures the cache gets cleared out at least once per interaction,
preventing Ren'Py from leaking memory.
2018-01-05 22:23:47 -05:00
Tom Rothamel e531f0d4f8 Munge fields in strings. 2018-01-05 01:14:04 -05:00
Tom Rothamel 7923ffed13 Merge pull request #1338 from vollschauer/master
Update config.rst
2018-01-04 16:22:32 -05:00
vollschauer ddc4915a84 Update config.rst
Fix typo...
2018-01-04 15:40:07 +01:00
Tom Rothamel cd667b20e7 Typecheck all sl2 caches.
Prr the comment on aa0708b331.
2018-01-04 02:56:22 -05:00
Tom Rothamel e8e42ca24b Use config.game_main_transition with MainMenu action.
Takes the first half of #1336.
2018-01-03 22:06:51 -05:00
Tom Rothamel 85cbb14988 Ensure GC runs once per interaction.
This ensures that repeated skipping won't starve Ren'Py of garbage
collection entirely, which is probably bug #1324.
2017-12-31 13:46:58 -05:00
Tom Rothamel 503553aa14 Make _return dynamic when _after_load is called.
This prevents the call to the _after_load label from affecting
the value of _return in the game proper, which should be
preserved over a save and load.

Fixes #1330.
2017-12-31 13:23:38 -05:00
Tom Rothamel c4ce604cbd Ensure that all GC generations trigger. 2017-12-30 22:27:57 -05:00
Tom Rothamel 1195b6c0a8 Move string munging into list_logical_lines, so it works everywhere.
Fixes #883.
2017-12-30 03:02:12 -05:00
Tom Rothamel 2b68bf032b Munge interpolated variable names. 2017-12-29 23:07:01 -05:00
Tom Rothamel 7f504c0c1b Rename config.zap_transient to config.fast_unhandled_event.
Which better diagnoses its purpose.
2017-12-28 20:56:11 -05:00
Tom Rothamel 7dfe21a39c Update credits for 6.99.14. 2017-12-27 19:54:04 -05:00
Tom Rothamel 8b1689edf1 Build docs as part of the release process. 2017-12-26 20:03:38 -05:00
Tom Rothamel 037c3fe0c4 Rework zap_transient.
It now causes Ren'Py to check to see if anything handles the hide
or replace event, and only dispatches the event if something does,
which is much safer than ignoring it every time.

Fixes #1325.
2017-12-26 19:42:14 -05:00
Tom Rothamel e34e8982e9 Add _handles_event to displayables. 2017-12-25 23:11:23 -05:00
Tom Rothamel 12247a6f24 ATL: Add _handles_event. 2017-12-25 23:11:23 -05:00
Tom Rothamel 771a160961 Merge pull request #1322 from morganwillcock/transclude
Fix typo in transclude docs
2017-12-25 12:37:49 -05:00
Tom Rothamel d2cce402b8 Merge pull request #1323 from Ria-kon/master
Translation for Image Location Picker filter
2017-12-25 12:36:14 -05:00
Morgan Willcock 05d38841dc Fix typo 2017-12-24 21:14:49 +00:00
Tom Rothamel c7b4474152 Normalize script filenames to use / instead of \.
/\
  /  \
  /  \
 /_  _\
   ||
2017-12-24 14:31:09 -05:00
Tom Rothamel 7157b157ab Normalize filenames before placing them into the loader. 2017-12-24 13:04:01 -05:00
Tom Rothamel 163ff6d052 Encode stdout/stderr to utf-8.
This prevents problems on Windows with unknown encodings when running
from the console.
2017-12-24 13:03:10 -05:00
Ria-kon ff8a08dee7 Translation for Image Location Picker filter 2017-12-24 17:46:29 +02:00
Tom Rothamel fbb97de6b4 Add the ability to filter the image location picker by typing. 2017-12-23 14:04:56 -05:00
Tom Rothamel 6fbb0160d4 Reduce the viewport size to something more reasonable. 2017-12-23 10:22:02 -05:00
Tom Rothamel f021135492 Redo how we fill the image location picker.
Also adds support for .jpg files.
2017-12-23 00:35:20 -05:00
Tom Rothamel 8f5a38eec6 Limit text to representable sizes. 2017-12-23 00:31:59 -05:00
Tom Rothamel c8a16adcd5 Merge pull request #1321 from Ria-kon/master
Image Location Picker must support .webp
2017-12-22 16:21:00 -05:00
Ria-kon 98164f3bf9 Image Location Picker must support .webp 2017-12-22 13:49:43 +02:00
Tom Rothamel 5dc5d941b2 Don't log to stdout when purging unreachable.
Fixes #1320.
2017-12-21 22:25:26 -05:00
Tom Rothamel dbc0e80dda Arabic/RTL gui. 2017-12-21 00:56:57 -05:00
Tom Rothamel 1c175cdf02 Remove gui.scale when copying over script.rpym (or script.rpy). 2017-12-21 00:52:03 -05:00
Tom Rothamel d64ed91127 Merge branch 'master' of github.com:renpy/renpy 2017-12-20 20:44:39 -05:00
Tom Rothamel d7b0e9e750 Merge pull request #1319 from Ria-kon/master
Russian translation update
2017-12-20 20:44:35 -05:00
Tom Rothamel 0d433e6f6c Document config.cache_surfaces. 2017-12-20 01:37:07 -05:00
Tom Rothamel 37b6f6638c Remove debug print. 2017-12-20 01:24:53 -05:00
Tom Rothamel e47de64789 Fix caching of compiled pyexprs.
The previous approach was failing to work for quite a few reasons,
so this is basically a rewrite that actually caches something.
2017-12-19 23:27:46 -05:00
Ria-kon c725f8ce2f Moving strings from common to developer
...and deleting obsolete strings
2017-12-19 17:09:16 +02:00
Ria-kon c5c97dbd1c Small fixes for tutorial 2017-12-19 17:06:23 +02:00
Tom Rothamel 26c7a2b2d3 doc: Clarify images in directories. 2017-12-19 00:34:46 -05:00
Tom Rothamel bf530a2c37 Fix a problem with DictItems.as_dict()
This would cause the old dict to drop one item, which would fail
to be restored when the StoreBackup come into play before a load,
causing pickling problems.
2017-12-18 22:48:33 -05:00
Tom Rothamel 34b873e137 Add the layer property to screens documentation. 2017-12-18 19:30:22 -05:00
Tom Rothamel 7ee0bec11d Allow ParameterizeText to take translatables strings.
Fixes #1297.
2017-12-17 23:58:35 -05:00
Tom Rothamel b0309f80bf Do not require the interface object to size text.
This means that text sizing can occur before Ren'Py starts
the interface on iOS and Android.

Fixes #1316.
2017-12-17 19:21:11 -05:00
Tom Rothamel 0c0a57f257 Allow RENPY_PERFORMANCE_TEST to disable the performance test. 2017-12-17 18:54:29 -05:00
Tom Rothamel 219963df89 multiple: Adjust style names in NVL-mode. 2017-12-17 00:40:29 -05:00
Tom Rothamel 06298aad77 multiple: fixes. 2017-12-17 00:34:21 -05:00
Tom Rothamel 9ac14d3bcd Update changelog for Ren'Py 6.99.14. 2017-12-16 22:04:32 -05:00
Tom Rothamel ff57fcfe46 Bump version to 6.99.14.
Since yeah, this is worth it.
2017-12-16 11:34:43 -05:00
Tom Rothamel 697cc17900 Avoid double printing of errors to the log and stdout. 2017-12-16 11:29:29 -05:00
Tom Rothamel e844957de8 Try to diagnose pickling problems. 2017-12-15 23:29:10 -05:00
Tom Rothamel 89a0d76b5d Prevent opening the log from causing infinite recursion on Android. 2017-12-15 22:21:34 -05:00
Tom Rothamel 6ed0a7202f Document multiple dialogue. 2017-12-14 23:24:40 -05:00
Tom Rothamel 07189ebac1 Document gui preferences. 2017-12-14 01:57:17 -05:00
Tom Rothamel b252a7b576 Add gui.TogglePreference. 2017-12-14 01:54:47 -05:00
Tom Rothamel 3429ca7ee6 Add advanced GUI documentation. 2017-12-13 22:43:06 -05:00
Tom Rothamel b781b8ccc3 Add a new gui preference system.
This integrates with gui.rebuild, and make it possible to do things
like:

   define gui.accent_color = gui.preference("accent_color", "#f00")

or

   style say_dialogue:
       italic gui.preference("italic", False)

Gui preferences are set with:

   textbutton "Blue" action gui.SetPreference("accent_color", "#00f")
2017-12-13 00:52:02 -05:00
Tom Rothamel dff2b5e90d Re-run gui defines when gui.rebuild is called. 2017-12-12 23:45:07 -05:00
Tom Rothamel 6fd218b452 Change how default in the gui namespace works.
It does the same thing as define, except only once at init time.
This means that after re-running the GUI defines, they'll get
the updated value of a default gui variable.
2017-12-12 23:02:13 -05:00
Tom Rothamel 8032bad2bd Add gui.rebuild. 2017-12-12 22:42:30 -05:00
Tom Rothamel da7e1cbed3 Improve module pickling.
Ren'Py now reports a more useful error if config.developer is true,
and suppresses the error if it's false.
2017-12-11 23:24:36 -05:00
Tom Rothamel 3b6cf82b8a Always call choose_attributes if present.
This fixes an issue with AttributeImage where if we did:

show foo bar
show foo at right

The attributes would all go away.

Fixes #1293.
2017-12-11 22:01:00 -05:00
Tom Rothamel e31bfa7c0c Use scrollbars to set child_size.
Based on #1311.
2017-12-10 21:26:49 -05:00
Tom Rothamel 826d6a1b97 Compat out GC changes. 2017-12-10 14:01:54 -05:00
Tom Rothamel 90402e3ee1 Same change, but on the style inspector side. 2017-12-09 23:26:33 -05:00
Tom Rothamel 6c750637e7 Add style property priority.
The resolves obvious ambiguities in styles, like making xpos take
priority over xalign. (This is to fix an issue with gui.rpy where
we can supply both xalign and xpos.)
2017-12-09 22:45:56 -05:00
Tom Rothamel d59eb4e55c Custom statements can now define a label. 2017-12-09 01:11:19 -05:00
Tom Rothamel 0995a94959 Apply translations before removing !t.
Fixes #1294.
2017-12-08 22:37:03 -05:00
Tom Rothamel 8e2e857a85 multiple: Add multiple support to NVL. 2017-12-08 01:35:53 -05:00
Tom Rothamel 33f896c06e Do an expensive prediction step once per frame, even if we need to redraw.
By limiting how long we spend in expensive prediction, we can do it
even when we're drawing text.
2017-12-07 22:20:50 -05:00
Tom Rothamel 2f573d1d12 Fix the style.inspect order.
This will better match build_style(), in the case of an ambiguous
style.
2017-12-07 20:40:58 -05:00
Tom Rothamel cba1e797a3 Use the tag of the screen when finding a screen to replace.
This allows us to have multiple instances of the same screen
with different tags up at once, as is done in multiple text
mode.
2017-12-07 01:59:10 -05:00
Tom Rothamel 939af5b140 multiple: Use the screen tag when looking up the what displayable. 2017-12-07 01:58:25 -05:00
Tom Rothamel e49be306f5 multiple: Use styles to distinguish multiple dialogue.
This should often let us use multiple dialogue without having to
come up with all new screens and characters.
2017-12-07 00:53:21 -05:00
Tom Rothamel 737d1e69ed multiple: Pass things down through display_say and show_display_say. 2017-12-06 23:58:22 -05:00
Tom Rothamel 0db019cfd4 multiple: Support for generating multiple from a character argument. 2017-12-06 20:45:48 -05:00
Tom Rothamel 701dd434fc Abort all slow text on the screen at once. 2017-12-06 01:14:40 -05:00
Tom Rothamel aa0708b331 Ensure that SL2 caches are of the correct type.
Fixes #1313 and then some.
2017-12-05 21:33:40 -05:00
Tom Rothamel cd1f80f4be Avoid taking states from the target of an ImageReference.
This fixes a problem that occurred when we had:

image a a:
   zoom .5

image a b:
   zoom .5

show a a
pause
show a b:
   xoffset 10

The first zoom would be taken from a a, and put into the new
transform created by the show statement, and then we'd have
a b also contribute it's zoom, and so we'd have a .25 zoom
total.
2017-12-04 22:22:08 -05:00
Tom Rothamel 51556030d0 Document slow_abortable. 2017-12-04 17:54:52 -05:00
Tom Rothamel 741a7786da Compat config.zap_transient. 2017-12-04 00:01:37 -05:00
Tom Rothamel cf290d3447 Include sphinx source in the source distribution. 2017-12-03 22:51:20 -05:00
Tom Rothamel 0e6da9b140 Various VC updates & set version to 6.99.13.1. 2017-12-03 17:06:19 -05:00
Tom Rothamel d19abf3af1 Remove generated docs from version control. 2017-12-03 16:47:55 -05:00
Tom Rothamel ed3573068c Avoid writing .android.json if it hasn't changed. 2017-12-03 12:38:05 -05:00
Tom Rothamel 738c8672c4 Merge pull request #1312 from elizagamedev/bugfix/text-layout
Fix major text segment layout regression.
2017-12-03 01:27:12 -05:00
Eliza Velasquez bf8aaa3bd0 Fix major text segment layout regression.
0777826d introduces some major regressions, including breaking the
behavior of `{w}` and `{p}` tags, hyperlinks, and ruby text. This commit
correctly copies over the necessary information from `splits_from` in
the `Layout` constructor (as far as I can tell), and preserves the value
of `start_segment` in `Layout` objects so that it can be copied
properly.
2017-12-03 01:21:26 -05:00
Tom Rothamel b644aa274e Update docs. 2017-12-03 00:38:47 -05:00
Tom Rothamel af333b071f Fix get_focus. 2017-12-02 23:08:07 -05:00
Tom Rothamel 31d55cb65e New tooltip system.
Fixes #1309.
2017-12-02 22:36:57 -05:00
Tom Rothamel 4285cf6dcb Add a tooltip attribute to all displayables. 2017-12-01 22:33:01 -05:00
Tom Rothamel 22a1a4b5dc Delay expensive work (gc and prediction) until the fourth frame
from an interaction.

The second frame might start late, so this lets us make up time
before it begins in earnest.
2017-12-01 21:53:21 -05:00
Tom Rothamel 54b962454f Prevent the audio periodic thread from blocking the main thread.
It seems like when an android phone goes to sleep, it's possible
for something in the audio thread to block. That was causing the
audio periodic thread to block, and since the recent changes, the
main thread as well.

Now, we use a separate condition to tell the periodic thread to
run, so if the periodic thread is blocked, the main thread will
always make progress.

This probably also can improve performance of the main thread
in some rare cases.

Fixes #1301.
2017-11-30 23:02:43 -05:00
Tom Rothamel b6cb2d8bdc Import _ssl.
This ensures it's distributed on Windows.
2017-11-29 20:23:07 -05:00
Tom Rothamel efdf1c8976 GC: Gc during idle time in a frame. 2017-11-28 22:54:07 -05:00
Tom Rothamel 7ff29461ef Disable gc debugging on quit.
Stops pointless reporting from moving away interesting messages.
2017-11-28 22:54:07 -05:00
Tom Rothamel 15a3b308d4 Merge pull request #1307 from Ria-kon/master
Russian translation (_choose_renderer)
2017-11-28 16:47:23 -05:00
Ria-kon 55ac0b9b7e Add files via upload 2017-11-28 22:39:31 +02:00
Ria-kon 2e4dd7a3e3 Small fix in The Question
Russians do this stuff only if this was in a quotation.
Like:
-Hello?
-What do you need?
-Oh, nothing.
-But you say "Hello?"!
-Just kidding.
2017-11-28 22:38:26 +02:00
Tom Rothamel a88eb1346b Fix issue with keywords and slcontext. 2017-11-27 23:38:23 -05:00
Tom Rothamel df56d4bb55 Eliminate reference cycles through Displayable._main. 2017-11-27 06:41:32 -05:00
Tom Rothamel 59aebd730f Eliminate reference cycles through SL scope. 2017-11-27 06:40:00 -05:00
Tom Rothamel 12b7ba39bb Add a way of finding memory cycles. 2017-11-27 06:14:50 -05:00
Tom Rothamel dc9575c833 Use an environment variable to disable stdio redirection.
(So we can use debuy prints to help profile.)
2017-11-27 06:05:07 -05:00
Tom Rothamel 0de81e177b If the refresh rate is zero, use 60.
Fixes #1306.
2017-11-27 05:58:55 -05:00
Tom Rothamel acbcc9f944 Remove reference loop in screen scopes. 2017-11-26 21:39:15 -05:00
Tom Rothamel 46be6434f6 Prevent reference cycle involving SLContext.
This makes the garbage collector run even less often.
2017-11-26 21:30:48 -05:00
Tom Rothamel 6bf5562817 Tune GC.
The garbage collector was tuned to run too frequently, to the point
where it would run during every .subsurface() call. This bumps up
the threshold significantly, preventing most GC.
2017-11-26 21:25:45 -05:00
Tom Rothamel c5d28f1c57 When a color value is in error, report the value to ease debugging. 2017-11-26 13:15:49 -05:00
Tom Rothamel 33f696ee50 Make the_question version translatable. 2017-11-26 13:15:49 -05:00
Tom Rothamel 8685b8f5ea Merge pull request #1302 from Ria-kon/master
Russian The Question (Ren'Py 7 edition)
2017-11-25 20:37:31 -05:00
Tom Rothamel 4d6e5ca9d9 Merge pull request #1295 from elizagamedev/line-ending
id: Use appropriate line endings.
2017-11-25 00:10:25 -05:00
Tom Rothamel 58ec3e4344 GL Performance options. 2017-11-24 09:51:52 -05:00
Tom Rothamel 3033443e8e Remove debug print_stack. 2017-11-24 00:45:41 -05:00
Tom Rothamel 75ce37362d Adjust render cache times.
This prevents the previous commit from causing render cache misses.
2017-11-24 00:45:10 -05:00
Tom Rothamel 7f2b53ec9a Use the first frame of an interacton to base st/at.
This only matters when a frame is very slow - like if a ton of
rendering has to be done, on an unpredicted image load. If
rendering the first frame took .1 seconds, the second frame of
a transform and move would be .1 later than the first.

Now, it's 1 frame later - the .1s becomes time spent before
the first frame, rather than time spend between frames.
2017-11-24 00:23:20 -05:00
Tom Rothamel e97b832367 Redirect newline printing. 2017-11-23 10:49:19 -05:00
Tom Rothamel e707273f3f Prevent prediction from starving framerate.
This limits prediction time to 1ms when can_block  is false,
and ends predictions when an event is pending.
2017-11-23 00:38:21 -05:00
Tom Rothamel e60aa3e532 Change how we do the broken vsync sleep.
Intel chips seem to block on glClear, not the flip, so measuring
the flip speed could add pauses when none are appropriate. We now
only sleep once we accumulate enough fast frames.
x
2017-11-22 23:27:16 -05:00
Tom Rothamel f750bf1409 Do not fill the shift+O console with performance data. 2017-11-22 22:49:49 -05:00
Tom Rothamel cf0b5a0c88 Add config.say_attribute_transition_layer.
This allows the say attribute transition to take place in the background
on the master layer, rather than blocking execution.
2017-11-22 17:19:41 -05:00
Tom Rothamel 6de1a3ceb0 Document the new preferences. 2017-11-21 17:47:46 -05:00
Tom Rothamel 73055a5df3 Expose gl preferences. 2017-11-21 17:37:51 -05:00
Tom Rothamel 2751a774f4 Add gl performance preferences.
* gl_powersave controls the framerate dropping behavior.
* gl_framerate locks the gl framerate.
* gl_tearing determines if tearing is allowed to keep framerate.
2017-11-21 17:34:51 -05:00
Tom Rothamel aded40197e Implement max framerate in terms of can_block. 2017-11-21 13:51:34 -05:00
Tom Rothamel 5f830795b1 Add the gl_performance preference.
This determines if Ren'Py slows down to 5fps if there's no good
reason to keep drawing the screen.
2017-11-21 13:49:04 -05:00
Tom Rothamel 69f6a7bd35 Save fixed preferences. 2017-11-21 13:43:05 -05:00
Tom Rothamel 5f2dfc242b Reuse the DictItems rather than always making new ones. 2017-11-21 02:11:34 -05:00
Tom Rothamel bcd370d497 Avoid beginning and completing rollbacks.
This commit makes Ren'Py smarter about where it starts and ends a
rollback object. Rather then for (essentially) every statement,
it only starts a new rollback after a checkpoint or an interaction
occurs. This makes Ren'Py much faster, to the tune of 1ms or so per
click.

This also avoids beginning or completing a rollback on trivial
statements - right now, BeginTranslate and EndTranslate are the
trival statements that are ignored.
2017-11-20 23:31:31 -05:00
Tom Rothamel 5ad18b72d4 Remove plog. 2017-11-20 23:29:55 -05:00
Ria-kon f26d1b301e Clean useless code 2017-11-21 02:21:36 +02:00
Ria-kon 4d4e61a33e Translation for The Question 2017-11-21 02:20:30 +02:00
Ria-kon 1a7302b480 Changes of UI and translatable text
No examples, but languages
2017-11-21 02:16:50 +02:00
Tom Rothamel d1f065c4b9 Access config in the proper manner. 2017-11-19 19:23:49 -05:00
Tom Rothamel 895ae72c8e Add the outlinecolor text tag. 2017-11-19 18:49:40 -05:00
Tom Rothamel bbd858d79a Add a fast path for showing the empty window.
A character does a lot of text processing on its usual path, none
of which is relevant when the text is empty. So we can skip it.
2017-11-19 15:49:05 -05:00
Tom Rothamel 4d3fcd5ae3 Speed up eval_who.
Saves 10+ms! on the first line of dialogue with a character's
name in it.
2017-11-19 14:46:06 -05:00
Tom Rothamel 5607b3be92 Speed up creation of Glyph objects. 2017-11-19 12:27:25 -05:00
Tom Rothamel 0777826d8c Share segmentation info between renders of the same text. 2017-11-19 11:52:54 -05:00
Tom Rothamel 58508655c7 Avoid repeated gil lock/unlock when making glyphs. 2017-11-19 11:42:51 -05:00
Tom Rothamel dab3c9aac7 Use correct types for tweak_glyph_spacing.
This makes it much faster, as we don't have to create and destroy
Python objects.
2017-11-19 03:44:04 -05:00
Tom Rothamel 515cd28c69 performance: Improve performance logging.
* Better locations for statement start/end.
* PPP can take an optional number.
* Defer formatting.
2017-11-19 00:35:52 -05:00
Tom Rothamel 43bd86cc20 Add a plog for the start of execution of the actual statement. 2017-11-18 22:46:22 -05:00
Tom Rothamel 23cd75fc7b Prevent list compression from blocking complete.
List compression would slice a list, creating a RevertableList,
which would cause complete to restart. This fixes that issue,
saving 70us or so.
2017-11-18 22:28:50 -05:00
Tom Rothamel 28aa83e68a Use a non-RevertableList for log messages.
It won't get revered, and the updates can interfere if something prints
while the list is being processed.
2017-11-18 22:01:13 -05:00
Tom Rothamel 5cc2dd4d83 pydict: Remove commented-out lines. 2017-11-18 15:37:23 -05:00
Tom Rothamel 910d8f1dc0 pydict: Use custom quicksort for dictionary keys.
This speeds things up because we don't need to call functions for
each comparison.

And you get a bonus selection sort, too.
2017-11-18 15:31:05 -05:00
Tom Rothamel d8531fc5b3 Add a cython implementation of the code to find dict changes. 2017-11-18 12:31:48 -05:00
Tom Rothamel dc747cb9ee pydict: Add DictItems
This is a class that keeps the contents of a dictionary around
in sorted order.
2017-11-18 03:26:29 -05:00
Tom Rothamel 022c07c41d Prevent very early log exceptions. 2017-11-18 02:23:25 -05:00
Tom Rothamel 682446794a Add performance logging before peek/wait. 2017-11-18 00:32:25 -05:00
Tom Rothamel c48306290a Share a style that references default.
This is used when we create a displayable with style="default" and
no properties, and saves about 10us each time we do that, which is
multiple times per frame.

This also changes Transform and certain Fixeds to use the default
style, to benefit from this.
2017-11-18 00:19:53 -05:00
Tom Rothamel 0652ae22ba Fix issue with previous commit. 2017-11-18 00:16:19 -05:00
Tom Rothamel 4f6fd81576 Avoid updating an empty say screen on with_none. 2017-11-18 00:11:44 -05:00
Tom Rothamel 010bef8358 Add the PPP function.
This is a global function that can be used to temporarily add
something to the performance log.
2017-11-17 23:59:57 -05:00
Tom Rothamel c048b85d58 Zap transients.
Previously, Ren'Py would check to see if a transient displayable
(often a screen) had a _hide method. They never did, but this
could be very expensive.

Now, Ren'Py will just remove transient screens, avoiding
rendering things for no reason.
2017-11-17 22:09:03 -05:00
Tom Rothamel b5eeffe505 Remove a renpy.plog. 2017-11-17 21:24:37 -05:00
Tom Rothamel d88a3cb492 Cache py_compile.
Compiling python take ~100 us, and it's something we'd have to do
multiple times per frame. This stores the compiled bytecode in
a cache, and tries to compile every PyExpr at parse/load to
seed that cache.
2017-11-17 21:18:20 -05:00
Tom Rothamel 449f9ff05d renpy.performance.log -> renpy.plog. 2017-11-17 19:35:06 -05:00
Tom Rothamel 921f25b39d Tweak profiling. 2017-11-17 01:41:59 -05:00
Tom Rothamel cac10a8781 Make profiling more end-usable. 2017-11-17 01:09:13 -05:00
Tom Rothamel 3b15a8de49 Use _p for about in options. 2017-11-16 22:43:50 -05:00
Tom Rothamel f6ca2bbc2d Perform a full GC on interface start. 2017-11-16 10:29:22 -05:00
Tom Rothamel 520a9c9baf Improve UserStatement repr. 2017-11-16 10:26:17 -05:00
Tom Rothamel 18a8b47f20 Only create REDRAW events if we can block. 2017-11-16 10:11:12 -05:00
Tom Rothamel 2b27055d64 Process frame before events. 2017-11-15 23:59:22 -05:00
Eliza Velasquez 8d6edb5537 id: Use appropriate line endings. 2017-11-15 02:23:34 -05:00
Tom Rothamel c926fb17c2 Use performance log infrastructure. 2017-11-14 17:11:25 -05:00
Tom Rothamel 8218a10968 Add a new performance log infrastructure. 2017-11-14 17:11:11 -05:00
Tom Rothamel 9d296b3a77 Tweak the profiling threshold. 2017-11-14 02:42:31 -05:00
Tom Rothamel 1a9c03897b FPS screen work. 2017-11-14 02:37:48 -05:00
Tom Rothamel 8ad65ddde0 Add a TimeLog class.
This is a log that stores info based on time.
2017-11-13 23:18:13 -05:00
Tom Rothamel 04dce83592 Display fps. 2017-11-13 02:55:43 -05:00
Tom Rothamel 156c4e8af7 Add the performance screen and access to it. 2017-11-12 23:21:47 -05:00
Tom Rothamel f14f2e2194 Add the ToggleScreen action.
This shows a screen if it is not already shown, and hides it if
it's already showing.
2017-11-12 22:54:31 -05:00
Tom Rothamel a71947c9bd Add config.per_frame_screens.
This is really for the FPS-meter, but we can make it available
to creators, too.
2017-11-12 17:52:32 -05:00
Tom Rothamel 59434177cd Add config.gl_clear_color.
This is a variable that lets you set the color of the letterboxes
and pillarboxes used by a GL window that doesn't match the game.
2017-11-12 01:41:59 -05:00
Tom Rothamel 9a89806569 id: Search for the next line when re-adding a line.
When we change a line, remove it, and re-add it, there's no
guarantee the next line is at the line number. (There could be a space
intervening.) So we have to search forward for the next line.
2017-11-11 22:17:03 -05:00
Tom Rothamel 81bfb899b2 Ask the draw object if it's okay to block on input. 2017-11-11 19:20:38 -05:00
Tom Rothamel 76e6eef09c Add renpy.exports.get_on_battery().
It'll be used to control adaptive framerate, but why not expose
it as an API?
2017-11-11 18:45:17 -05:00
Tom Rothamel 505805eb4a Redraw for 4 frames after a screen update.
The idea is that if there's any frame by frame buffering in
the GPU pipeline, this will force what the player wants to
see out onto their screen.
2017-11-11 17:14:03 -05:00
Tom Rothamel 3d4fbb7664 Merge pull request #1292 from nyaatrap/master
Update Japanese translation
2017-11-10 22:44:04 -05:00
nyaatraps 4e8c424d15 Update Japanese translation 2017-11-10 17:45:21 +09:00
Tom Rothamel e99c459374 id: Ignore unimportant nodes.
This mostly includes the label and pass nodes on a call line,
which, when shown, make it look like a return is executing
the call again.
2017-11-10 01:53:08 -05:00
Tom Rothamel 7b95263e88 Better tracking of abnormal execution flow. 2017-11-10 01:41:35 -05:00
Tom Rothamel a2aa839b3a id: Only use old image attributes when changing an image. 2017-11-10 00:22:19 -05:00
Tom Rothamel 97da318e02 Fix issues with elide/unelide_filename.
* Do not add a / when eliding relative pathnames.
  (This is the root cause of #1267 on the mac)
* Search renpy_base when looking to unelide a pathname.
2017-11-09 22:55:15 -05:00
Tom Rothamel 58a594f7cb Update changelog. 2017-11-08 22:16:43 -05:00
Tom Rothamel 58d442e3b2 Allow a DynamicImage with a list for a name will be hashed.
Fixes #1290.
2017-11-07 18:24:35 -05:00
Tom Rothamel ddcd1e5a96 DynamicImage checks renpy.config.missing_image_callback for images. 2017-11-07 01:17:12 -05:00
Tom Rothamel e50d074293 Add im.Data.
This is a new image manipulator that loads raw binary image
data, as might be returned from the requests library.
2017-11-06 22:44:41 -05:00
Tom Rothamel 6a93bdafd4 Add config.loadable_callback. 2017-11-06 21:47:19 -05:00
Tom Rothamel 7be6781557 Remove unnecessary line that caused a crash.
Fixes #1288.
2017-11-05 16:18:47 -05:00
Tom Rothamel b48ab25a2e Import sys. 2017-11-04 11:05:34 -04:00
Tom Rothamel 97daa37db0 Only distribute TLS/SSL if it's used.
We check to see if the module is imported, and do not include
it if it's not going to be used.
2017-11-03 19:22:38 -04:00
Tom Rothamel 34b413a665 Defer importing urllib until it's needed.
This prevents ssl from being pulled in by the Ren'Py standard
library.
2017-11-03 19:21:50 -04:00
Tom Rothamel 7432ca4d5e Document the plain tag and reorganize text tags. 2017-11-01 21:33:11 -04:00
Tom Rothamel 30595959fa Support lowering a drag. 2017-11-01 20:44:23 -04:00
Tom Rothamel 3333790944 Recognize and ignore AltGr on Windows.
On Windows, AltGr generates a pair of events, LCTRL and RALT.
This notices that sequence and prevents skipping from occurring
when it is encountered.
2017-10-31 22:52:37 -04:00
Tom Rothamel f03b8ef631 Input only ignores on LALT, as RALT can be AltGr. 2017-10-31 21:52:34 -04:00
Tom Rothamel fb3eef8a90 Improve locking WRT get_playing.
Fixes a problem with movie playback.
2017-10-30 10:27:03 -04:00
Tom Rothamel 5a9693b3f1 Update changelog. 2017-10-29 13:48:14 -04:00
Tom Rothamel c4be3b1adf Compat ATL multiple events. 2017-10-29 11:38:11 -04:00
Tom Rothamel 4f1a38d4dd Allow ATL to respond to multiple events delivered at once.
This works when a displayable is given the show event and its
button child generates the idle event - both are delivered to
the transform, with the one it supports being what it responds
to.
2017-10-28 18:46:28 -04:00
Tom Rothamel 6b54016265 Merge pull request #1281 from Ria-kon/master
Let's translate gui.nvl_list_length to Russian
2017-10-28 16:25:44 -04:00
Ria-kon f91d2e7d49 Let's translate gui.nvl_list_length 2017-10-28 09:13:59 +03:00
Tom Rothamel 786dbfd717 Use gui.nvl_list_length to set config.nvl_list_lengthj.
This makes this important variable settable in gui.rpy.
2017-10-28 01:19:20 -04:00
Tom Rothamel 6631f2f631 Update the changelog. 2017-10-26 10:23:20 -04:00
Tom Rothamel 3b9fbaf4f4 Fix typo. 2017-10-26 10:14:08 -04:00
Tom Rothamel b51e0326d3 Update credits. 2017-10-25 21:07:08 -04:00
Tom Rothamel 5a82f0ea64 Merge pull request #1279 from Ria-kon/master
Minor russian stylistic update
2017-10-24 19:15:12 -04:00
Tom Rothamel e4e0973a40 Merge pull request #1280 from gregorypease280/patch-1
fix typo
2017-10-24 18:41:02 -04:00
Tom Rothamel 1336cf7727 Add config.preload_fonts. 2017-10-23 21:58:47 -04:00
Tom Rothamel 5240512ec8 Avoid clearing the face cache.
We're going to want to keep it for performance, as it's one of the
few things that loads files from the main thread.
2017-10-23 20:49:30 -04:00
Tom Rothamel 8db07187cd Fix a problem caused when file isn't a class. 2017-10-23 00:24:35 -04:00
Gregory Pease 7144167246 fix typo 2017-10-22 13:58:09 -07:00
Tom Rothamel 9e7349f3df Also monkeypatch the file function. 2017-10-22 15:03:02 -04:00
Tom Rothamel 9a94417b31 Optionally monkeypatch open to catch files opened in the main thread. 2017-10-22 14:59:52 -04:00
Ria-kon 8010c4082a Minor russian stylistic update 2017-10-22 21:59:10 +03:00
Tom Rothamel 1312d5b343 Create music contexts out of the periodic function.
This prevents a problem where creating them in the context can
interfere with rollback.

Fixes #1278.
2017-10-21 15:11:36 -04:00
Tom Rothamel ee1503e54f More locking. 2017-10-21 01:33:23 -04:00
Tom Rothamel f55bd9ed10 Make the audio periodic thread optional. 2017-10-21 01:26:22 -04:00
Tom Rothamel 3d2ae9cb18 Move renpy.audio.periodic into its own thread.
Per #1174.

This is one of the few places where Ren'Py reads from a file,
completely unpredictably. Hence, it's one of the few places
where disk access outside Ren'Py can block the main thread.

Now, audio files are opened in a special thread, leaving the
GUI thread to do its thing.
2017-10-20 22:35:13 -04:00
Tom Rothamel baba291609 Bump version to 7.1. 2017-10-19 17:26:17 -04:00
Tom Rothamel e545031e81 Add protection if .new has already been moved. 2017-10-18 23:19:37 -04:00
Tom Rothamel cddda0f775 Remove debug print. 2017-10-18 14:55:54 -04:00
Tom Rothamel 1d8ad80f59 Sort the result of renpy.list_files. 2017-10-18 01:00:07 -04:00
Tom Rothamel d21b727260 Revert "renpy.dynamic can work with other namespaces."
This reverts commit 5539f384b6.

Backing it out for now, since it's too intrusive for this close
to a release.
2017-10-17 00:16:19 -04:00
Tom Rothamel b6eaf6970f Hide the director when the confirm screen is up. 2017-10-17 00:11:29 -04:00
Tom Rothamel 5539f384b6 renpy.dynamic can work with other namespaces. 2017-10-16 23:15:45 -04:00
Tom Rothamel 97809a5046 Rewrite last commit. 2017-10-16 00:02:37 -04:00
Tom Rothamel 6b14598ed1 Merge pull request #1277 from kevinturner/master
Add OS Functions to Other Functions docs
2017-10-15 23:11:15 -04:00
Kevin Turner e5932425d2 Update "Other Functions" with OS functions
*Now with decent grammar
Some of the more recent 4th-wall breaking visual novels have used these functions to great effect, but they aren't documented anywhere. This will hopefully open them up to more developers.
2017-10-15 21:08:19 -04:00
kevinturner e521da9468 Revert "Update "Other Functions" with OS functions"
This reverts commit 2b0487d7d2.
2017-10-15 21:05:22 -04:00
Kevin Turner 2b0487d7d2 Update "Other Functions" with OS functions
A lot of the more innovative 4th wall breaking VNs to come out recently have started taking advantage of these functions, but they aren't documented anywhere. This will hopefully introduce them to newer Ren'Py users.
2017-10-15 21:02:41 -04:00
Tom Rothamel 5f04f560af Limit the amount of stdout/stderr content kept for the console. 2017-10-15 13:57:40 -04:00
Tom Rothamel e782cc6c3a Limit the size of the console output history.
Performance and memory use reasons.
2017-10-15 13:30:09 -04:00
Tom Rothamel 83c1333486 Fix function inits in load_script and load_module.
Fixes #1274.
2017-10-14 22:01:32 -04:00
Tom Rothamel f18c616326 Fix an issue with single parenthesised tuple patterns.
eg.

        for (name, extra_info, screenshot, time) in renpy.list_saved_games():
             ...
2017-10-14 14:39:58 -04:00
Tom Rothamel 7b89e6e99f Update the changelog. 2017-10-13 22:36:15 -04:00
Tom Rothamel 5c1d6f615f Add renpy.get_attributes. 2017-10-13 20:52:51 -04:00
Tom Rothamel 5228a72d6b Prevent malformed text tags from breaking lint. 2017-10-12 22:42:33 -04:00
Tom Rothamel d632889a84 Move the version of the tutorial main menu. 2017-10-12 20:58:38 -04:00
Tom Rothamel 2504077bf3 Move the title of The Question over on Android. 2017-10-12 20:45:14 -04:00
Tom Rothamel d55f6fff1f Fix error message.
See https://lemmasoft.renai.us/forums/viewtopic.php?p=466791#p466791
2017-10-12 01:15:51 -04:00
Tom Rothamel cf28ad0090 Update the sponsor list. 2017-10-11 21:11:02 -04:00
Tom Rothamel 0b6a7b3b07 Update credits. 2017-10-11 02:10:48 -04:00
Tom Rothamel 07b8ba1dfc Bump context version.
Fixes loading old savegames.
2017-10-10 00:53:35 -04:00
Tom Rothamel 793d16fd9d Document projects.txt in the changelog. 2017-10-09 22:45:14 -04:00
Tom Rothamel 77ee0211f4 Ensure the log initalizes correctly on Android. 2017-10-09 22:44:24 -04:00
Tom Rothamel 99447d5dd6 Include the raspi renpy executable when distributing Ren'Py.
Fixes #1272.
2017-10-09 22:42:35 -04:00
Tom Rothamel ee3088ab87 Track the currently playing movie as part of the context.
Fixes #1268.
2017-10-09 00:38:43 -04:00
Tom Rothamel 447cebeaca Only attempt to load a persistent file that exists.
This prevents a can't load traceback on initial start.
2017-10-08 12:55:44 -04:00
Tom Rothamel 332cc9fb7b Log errors loading the persistent file to log.txt. 2017-10-08 12:44:15 -04:00
Tom Rothamel bf54c9dffe Save RevertableSet in a compatible fashion.
Specifically, compatible with the way it was saved in 6.99.12.4 and
earlier. Since sets are one of the types that's allowed in the
persistent file, this ensures that a persistent file from a new
version of Ren'Py is loadable in an old version.
2017-10-08 12:39:46 -04:00
Tom Rothamel 2413b53f9a Projects.txt changes.
* Look in more places for the projects.txt files. (Like the Ren'Py base.)
* Do not open projects.txt if it does not exist.

See #1271 for discussion of this feature.
2017-10-08 12:37:58 -04:00
Tom Rothamel eaa5c8e167 Merge pull request #1271 from ianLeslie2/featureSpecifyProjectDir
Added feature to renpy launcher allowing you to specify additional di…
2017-10-08 11:40:43 -04:00
theCodeCat 05687df3e0 Reworked extra-directories feature:
- the .txt now needs to be called "projects.txt" instead of "projectPaths.txt"
- the file reading process uses a 'with' statement instead of manually closing
- the naming of variables has been changed to be more in line with the rest of the renpy code
- the behaviour has been changed so that project folders have to be specified directly, instead of specifying the folder one level above it

Since the folder is now specified directly, the "scan_directory" function is no longer sufficient.
To avoid duplicate code, I've created a new function called 'scan_directory_direct' that only checks for a project in the directly specified directory,
and refactored the 'scan_directory' function to call 'scan_directory_direct'.
The code for 'scan_directory_direct' was pretty much just copy-pasted from 'scan_directory', so the behaviour hasn't changed.
2017-10-08 00:49:18 -07:00
Tom Rothamel f3f4d4a139 Merge pull request #1270 from ianLeslie2/directoryBuildFix
Fixed issue with Directory build option.
2017-10-07 23:43:16 -04:00
Tom Rothamel 67096bc1b7 id: Preserve the show statement if Ren'Py cant find the attributes.
Fixes #1267.
2017-10-07 23:41:37 -04:00
Tom Rothamel bc2b2ad154 Minor text changes. 2017-10-07 22:35:35 -04:00
theCodeCat 1762bbddce Added feature to renpy launcher allowing you to specify additional directories that Renpy should scan for projects.
These directories are specified in a file called "projectsPaths.txt" that is placed in the main projects directory.
2017-10-07 18:38:13 -07:00
Tom Rothamel a817a3d78e check_image_attributes accepts the attributes of a defined image. 2017-10-07 15:47:29 -04:00
Tom Rothamel 74d596bf76 scriptedit: Compile is no longer required. 2017-10-07 15:44:33 -04:00
Tom Rothamel 37e8272a02 Increase the director zorder.
So it's above user screens.
2017-10-07 00:39:57 -04:00
Tom Rothamel 4faee5feba Defer parsing the contents of files until needed.
This makes reloading the game while the director is enabled
much much faster.
2017-10-07 00:35:24 -04:00
Tom Rothamel eb24220a88 Fix the ShowTransient documentation. 2017-10-06 22:50:13 -04:00
Tom Rothamel c52de0a72e Remove debug print. 2017-10-06 00:57:24 -04:00
Tom Rothamel 8f836d996d Allow the Call action to take arguments. 2017-10-06 00:50:49 -04:00
Tom Rothamel 286705a21f Treat from_current as a positional-only argment to renpy.call.
This fixes a problem that occured when renpy.call was used to
pass arguments to a label.
2017-10-06 00:42:52 -04:00
Tom Rothamel 3c03950092 Add config.profile_reload.
Mostly for my own use, this gives me information about how long
reloading the game takes.
2017-10-05 17:43:40 -04:00
Tom Rothamel aae9522e9f Merge pull request #1266 from zedraxlo/patch-2
Schinese update.
2017-10-05 12:48:33 -04:00
zedraxlo d54c34ced1 Update launcher.rpy 2017-10-05 14:52:44 +08:00
zedraxlo 0450df707a Update launcher.rpy 2017-10-05 14:35:08 +08:00
zedraxlo 1740f791b1 Update developer.rpy 2017-10-05 14:29:52 +08:00
zedraxlo 5bf8d45516 Update error.rpy 2017-10-05 14:25:42 +08:00
Tom Rothamel 16b5c61639 Update and fix changelog. 2017-10-05 00:48:23 -04:00
Tom Rothamel c8dab118f7 Prevent long-running processes from causing an infinite loop warning. 2017-10-05 00:05:57 -04:00
Tom Rothamel e134f93588 Update the spanish translation.
Per the comment in #1255.
2017-10-04 17:06:32 -04:00
Tom Rothamel 7b9ed3613d Merge pull request #1264 from Ria-kon/master
Update russian launcher
2017-10-04 17:03:10 -04:00
Tom Rothamel f1c821de21 Merge pull request #1263 from zedraxlo/patch-1
Schinese update for launcher.
2017-10-04 17:01:42 -04:00
Ria-kon 46fe80c4c7 Update russian launcher 2017-10-04 17:51:21 +03:00
zedraxlo a8f419e910 Update options.rpy 2017-10-04 16:16:53 +08:00
zedraxlo 96300c844e Update script.rpym 2017-10-04 15:27:52 +08:00
zedraxlo 3da04864ac Update script.rpym
public translation files should not contain the command which translator using when they developing a game.
2017-10-04 15:25:54 +08:00
zedraxlo 0bffd3ba5e Update launcher.rpy 2017-10-04 15:13:20 +08:00
zedraxlo 1eff0b3fca Update error.rpy 2017-10-04 14:59:15 +08:00
zedraxlo 9359e97516 Update common.rpy 2017-10-04 14:55:57 +08:00
zedraxlo 70710f2dd1 Update obsolete.rpy 2017-10-04 14:43:16 +08:00
zedraxlo 83d52c3e86 Update launcher.rpy 2017-10-04 14:42:36 +08:00
zedraxlo 0faac90498 Update common.rpy 2017-10-04 14:31:30 +08:00
zedraxlo 15b8067cf8 Update error.rpy 2017-10-04 14:29:28 +08:00
zedraxlo 859790edcf Update launcher.rpy 2017-10-04 14:16:44 +08:00
zedraxlo dcf56027a7 Update common.rpy 2017-10-04 13:04:37 +08:00
zedraxlo 8f22e5205a Update developer.rpy 2017-10-04 13:00:44 +08:00
zedraxlo 2ce614c44a Update developer.rpy 2017-10-04 12:23:47 +08:00
zedraxlo aab2a5203f Update developer.rpy 2017-10-04 12:23:07 +08:00
zedraxlo 6c5d0e9861 Update common.rpy 2017-10-04 11:59:17 +08:00
zedraxlo 52091f50d3 Update common.rpy 2017-10-04 11:50:24 +08:00
zedraxlo 1e9627e96a Update common.rpy 2017-10-04 11:40:02 +08:00
Tom Rothamel 7319edc96f id: Check that we can add before a line before offering an add.
Fixes #1261.
2017-10-03 22:41:03 -04:00
Tom Rothamel 768c82a5e7 Check to see if we're running from a read only mac dmg. 2017-10-01 22:54:53 -04:00
Tom Rothamel d241c723ae Remove use of genderize.io.
It's down at the moment, when it's up it seems to use https, and when
it's up it's still trying to guess gender from name, which is fraught
with peril.
2017-10-01 10:50:40 -04:00
Tom Rothamel 98b30ba76f Report the error when saving a screenshot fails. 2017-09-30 16:08:21 -04:00
Tom Rothamel 4941d7dcd9 Allow pygame_sdl2 to encode the image save filenames. 2017-09-30 12:58:57 -04:00
Tom Rothamel be9f345529 Expand the clip rectangle by a small amount.
This prevents a numerical stability issue. The clipping rectangle
and the draw rectangle can be the same, but computed in different
ways. This means the clip test can reject a pixel that should be
drawn. Very small offsets prevent this case.

This fixes the symptom of 1px lines appearing in tiled frames.
2017-09-30 01:07:54 -04:00
Tom Rothamel fc0c6556df Update piglatin translation. 2017-09-29 18:50:16 -04:00
Tom Rothamel dc62e7107d Merge pull request #1258 from Ria-kon/master
Update russian to prerelease
2017-09-29 18:41:12 -04:00
Ria-kon e299ca4885 Updating tutorial 2017-09-29 16:47:49 +03:00
Ria-kon 63241161ad Updating launcher 2017-09-29 16:46:52 +03:00
Tom Rothamel 439d760a30 Avoid showing an empty window over the choose renderer screen. 2017-09-28 22:49:04 -04:00
Tom Rothamel b685638090 Create RTT surfaces in a mode that supports NPOT.
Fixes #1252.
2017-09-28 22:36:39 -04:00
Tom Rothamel 42651ecb73 Check in updated 7z.sfx. 2017-09-28 01:17:26 -04:00
Tom Rothamel 67f5b0b53d Deal with the x/ymaximum of a window being a float. 2017-09-28 00:48:34 -04:00
Tom Rothamel 235fe487fd testcases: Tutorial testcases and minor fixes. 2017-09-27 23:46:24 -04:00
Tom Rothamel 5b22577c5d Include the location in an if clause. 2017-09-27 22:49:56 -04:00
Tom Rothamel 60fc2fd611 More testcases and test fixes. 2017-09-27 02:52:24 -04:00
Tom Rothamel 3be2c0302a Scroll the entire length of a viewport. 2017-09-27 02:51:30 -04:00
Tom Rothamel 9ee6ea07bf t7: Replace the eileen flip image with atl.
Fix a ghost.
2017-09-27 01:38:48 -04:00
Tom Rothamel f9632c2bb0 test: More testcases. 2017-09-27 01:28:28 -04:00
Tom Rothamel 6bffc516ea test: Click through decorative transitions.
A quality of life improvement that allows the testing to proceed
faster.
2017-09-27 01:18:56 -04:00
Tom Rothamel eff3facac4 test: Support a scroll command.
This scrolls a bar, until something of interest comes into
view.
2017-09-27 01:14:55 -04:00
Tom Rothamel e2ba0bc391 Add location information to testcase AST nodes. 2017-09-27 00:01:23 -04:00
Tom Rothamel 28d022ab2c Start adding testcases. 2017-09-26 22:59:55 -04:00
Tom Rothamel 404ee250cf Print out test language calls. 2017-09-26 22:58:19 -04:00
Tom Rothamel f82ce3d23a Fix case of tutorial menu option. 2017-09-26 22:57:25 -04:00
Tom Rothamel 56b0cd72eb Fix the mix of outline, underline, and strikethrough. 2017-09-25 22:11:07 -04:00
Tom Rothamel 8b766aa1c4 t7 minigame: Avoid beeping before the ball is released. 2017-09-24 13:50:56 -04:00
Tom Rothamel 38f4f83e05 t7 minigame: Remove obsolete displayables. 2017-09-24 13:47:01 -04:00
Tom Rothamel 5af2e36c58 t7 minigame: Swap names. 2017-09-24 13:40:06 -04:00
Tom Rothamel b4b46a82f1 Remove credits.rst generation. 2017-09-23 11:08:11 -04:00
Tom Rothamel ecf8023085 Restore sphinx Makefile. 2017-09-23 11:04:49 -04:00
theCodeCat 8627103f21 Fixed issue with Directory build option.
Previously, as the files got added to the 'archive', if adding a file required more than one parent folder to be created then the build would fail.
2017-09-23 01:23:15 -07:00
Tom Rothamel 2077f68d14 ATL: Fix single-frame glitch.
We now only show single frames if the we're either at time 0, or
have updated the transform once. (So we don't do it if there's
not a state and the time is not 0.)

Fixes #1254.
2017-09-22 01:24:12 -04:00
Tom Rothamel 33e19de827 atl: Insure interpolators are always given an in-range argument.
Fixes #1253.
2017-09-21 22:44:45 -04:00
Tom Rothamel 2efd257a03 Update documentation. 2017-09-20 23:57:50 -04:00
Tom Rothamel 1c72e79fd9 Add renpy.add_python_directory function.
This provides a way of adding a subdirectory of the game directory
to the python path.
2017-09-20 22:46:46 -04:00
Tom Rothamel 5511d84451 More logging improvements.
* Print errors in opening the log file to stdout.
* Avoid duplicate stdout lines on ios.
* Set stderr/stdout redirect back up if sys is reloaded.
2017-09-20 00:24:29 -04:00
Tom Rothamel 062cccfee2 Fix logging on Android.
The platform.platform issue again.
2017-09-19 23:39:26 -04:00
Tom Rothamel afcf12147d Resolve how voice sustain should work with history.
Discussion on #1228, but relevant to #1251, #1248, and #1245.
2017-09-19 21:49:12 -04:00
Tom Rothamel 65dfcad511 Fix testcase. 2017-09-18 22:51:12 -04:00
Tom Rothamel d6c0102dfe Do not error out when a drag hasn't been placed yet.
Improves #1250.
2017-09-17 23:41:24 -04:00
Tom Rothamel e3129a81f0 Run the voice callback when fast skipping.
Fixes #1251.
2017-09-17 11:13:12 -04:00
Tom Rothamel 16c4fcfdf3 Do not include the filename in sustained dialogue.
Fixes #1228.
2017-09-17 01:07:44 -04:00
Tom Rothamel 39077c5935 Use the emulator to emulate the lack of focus_mask on android/ios. 2017-09-16 19:17:05 -04:00
Tom Rothamel b6e2ac6f58 Add a from_current parameter to renpy.call and Call.
This causes the call to return to the current statement, rather
than to the next statement, making it possible to (carefully)
create asides that can be called from arbitrary points in
the game.
2017-09-16 17:03:42 -04:00
Tom Rothamel 2469557269 Add a Call action. 2017-09-16 15:45:15 -04:00
Tom Rothamel e4a6532c83 Improve the DynamicDisplayable example.
The last one wasn't very good, since it replaces the far better
Tooltip class.
2017-09-16 14:15:22 -04:00
Tom Rothamel 32abb85d93 Deal with init: return.
Previously,

    init:
        return

would lead to return stack corruption that would often be reported
far away from where the problem occured.
2017-09-15 22:40:58 -04:00
Tom Rothamel e5da2bdcb2 Reset a layer transform when first shown.
Made optional by a parameter to the show_layer_at function.

Per the comments on #1225.
2017-09-15 19:53:47 -04:00
Tom Rothamel 39c3b711df textwrap: Properly handle first and rest indent.
This fixes a problem where indents could cause text to be
rendered too wide.
2017-09-15 00:41:39 -04:00
Tom Rothamel edc0673991 Replace a poorly-attested Gagarin quote.
With a much better attested one, and a well attested one from
Teddy Roosevelt.
2017-09-14 18:46:57 -04:00
Tom Rothamel 4b6fff619d Update the credits and sponsors lists. 2017-09-14 00:32:23 -04:00
Tom Rothamel 5d63bce9c9 Remove the credit_items system.
Now that we're taking credits directly.
2017-09-14 00:29:14 -04:00
Tom Rothamel 24d529f440 Transform the render width and height when checking subsurface clipping.
Fixes #1247.
2017-09-13 18:14:48 -04:00
Tom Rothamel 51f70fb6e9 NPOT fix and improvements.
NPOT was rewritten to accept the maximum size texture to use
from the rest of Ren'Py. This ensures that we do not go past
the edge of the screen when doing a copy RTT, something that
causes the texture to be cut off.

As part of this allowed Ren'Py to do a screen-sized RTT
(as is done for Dissolve) in a single operation, by
removing the 1px border that had been present
around textures. This required us to enable GL_CLAMP_TO_EDGE
to effectively provide these borders.

Fixes #1249.
2017-09-12 22:51:47 -04:00
Tom Rothamel 458013cf4d Alphabetize and changelog preference variables. 2017-09-12 01:01:37 -04:00
Tom Rothamel 6926ddb7a9 Add a preference variable page to the documentation. 2017-09-12 00:55:35 -04:00
Tom Rothamel 5d2d4048b2 Fix the voice sustain preference.
Fixes #1248.
2017-09-11 22:40:02 -04:00
Tom Rothamel 26f7b9b584 Remove renpy.layer_at_list from the documentation.
It's a deprecated alternate name for renpy.show_layer_at.
2017-09-11 18:12:14 -04:00
Tom Rothamel 7192b8c9a7 Document show layer at changes. 2017-09-11 18:11:27 -04:00
Tom Rothamel 193a3575bc Compat show layer and atl one frame changes. 2017-09-11 17:56:11 -04:00
Tom Rothamel c068c31049 Set config.script_version for 6.99.12.4 games missing script_version.txt. 2017-09-11 17:55:42 -04:00
Tom Rothamel b54b8c3581 Copy over the layer transforms when creating a new SceneList. 2017-09-11 17:29:16 -04:00
Tom Rothamel 9e98fdbf8b Persist the state of the show layer transform through interactions.
This fixes the issue with show layer at resetting described in #1225.
2017-09-11 17:08:30 -04:00
Tom Rothamel 41d44c7190 Actually use NPOT.
The test to actually engage NPOT was faulty.
2017-09-10 11:22:21 -04:00
Tom Rothamel eafbd2b06f Keep track of the texture generation by texture number.
It seems like resizing the screen can reset glGenTexures, leading
to the scenario where a texture number is allocated twice. By
keeping a map from texture number to texture, we can check
to make sure the generation associated with the texture
matches that associated with the texture number, and prevent
double-deallocation problems.

Fixes #1246.
2017-09-10 11:04:26 -04:00
Tom Rothamel b91edc455b Add Ren'Py contributors to the credits. 2017-09-10 01:26:55 -04:00
Tom Rothamel c929b0ea2e Check in documentation. 2017-09-09 23:17:06 -04:00
Tom Rothamel 21d0fb1f03 Add sponsor list to documentation. 2017-09-09 23:16:47 -04:00
Tom Rothamel 896d6aa277 Do not re-play a sustained voice.
Fixes #1245.
2017-09-09 17:21:05 -04:00
Tom Rothamel 1db71d026c t7: Remove the __ translation marker. 2017-09-08 22:26:13 -04:00
Tom Rothamel a18c027bf5 Remove unnecessary translation. 2017-09-08 22:15:28 -04:00
Tom Rothamel 379ac420c3 Prevent crashing when interpolating non-string variables. 2017-09-08 22:14:54 -04:00
Tom Rothamel 51af0b5774 Only reset atl_st_offset when starting a hide.
Fixes #1243.
2017-09-07 22:20:53 -04:00
Tom Rothamel 1435da0701 Merge pull request #1244 from Ria-kon/master
Translation update for custom resolution and russian
2017-09-07 16:56:01 -04:00
Ria-kon d4938b580a And some more update 2017-09-07 11:20:57 +03:00
Ria-kon 41d616e5a0 Make custom aspect ratio translatable 2017-09-07 11:20:08 +03:00
Tom Rothamel fa18a14952 Update python docs and examples. 2017-09-06 23:08:21 -04:00
Tom Rothamel 9ee3b1883b Merge pull request #1239 from pratomoastan/patch-6
Updated Indonesian Translation screens.rpy#13.2717
2017-09-06 22:41:42 -04:00
Tom Rothamel 7fe1cbcb60 Merge pull request #1238 from pratomoastan/patch-5
Updated Indonesian Translationsoptions.rpy#13.2717
2017-09-06 22:37:26 -04:00
Tom Rothamel 4d03741bcb Merge pull request #1237 from pratomoastan/patch-4
Updated Indonesian Translationlauncher.rpy#13.2717
2017-09-06 22:36:44 -04:00
Tom Rothamel c9cd485398 Merge pull request #1236 from pratomoastan/patch-3
Updated Indonesian Translation gui.rpy #13.2717
2017-09-06 22:36:08 -04:00
Tom Rothamel 34e4253acc Merge pull request #1235 from pratomoastan/patch-2
Updated Indonesian Translation error.rpy #13.2717
2017-09-06 22:35:58 -04:00
Tom Rothamel 0b387485a6 Merge pull request #1234 from pratomoastan/patch-1
Updated Indonesian Translation common.rpy #13.2717
2017-09-06 22:35:50 -04:00
Tom Rothamel 3f5eb24287 Quote special characters as necessary to produced TDF.
Fixes #1240.
2017-09-06 19:23:05 -04:00
Pratomo Asta N 07c4f53f67 Update screens.rpy 2017-09-06 23:00:07 +07:00
Pratomo Asta N 78acbf68ac Update screens.rpy 2017-09-06 22:48:19 +07:00
Pratomo Asta N 4a909fb1f2 Updated Indonesian Translation screens.rpy#13.2717
Translation Now In Sync With The Latest Nightly Version
6.99.13.2717 , #TODO Tag removed , Translated All New Strings
2017-09-06 22:44:54 +07:00
Pratomo Asta N 34faf390d5 Updated Indonesian Translationsoptions.rpy#13.2717
Translation Now In Sync With The Latest Nightly Version
6.99.13.2717 , #TODO Tag removed , Translated All New Strings
2017-09-06 22:42:18 +07:00
Pratomo Asta N 22ec89f208 Updated Indonesian Translationlauncher.rpy#13.2717
Translation Now In Sync With The Latest Nightly Version
6.99.13.2717 , #TODO Tag removed , Translated All New Strings
2017-09-06 22:40:56 +07:00
Pratomo Asta N 53fedcbfa6 Updated Indonesian Translation gui.rpy #13.2717
Translation Now In Sync With The Latest Nightly Version
6.99.13.2717 , #TODO Tag removed , Translated All New Strings
2017-09-06 22:38:50 +07:00
Pratomo Asta N 6f37585549 Updated Indonesian Translation error.rpy #13.2717
Translation Now In Sync With The Latest Nightly Version
6.99.13.2717 , #TODO Tag removed , Translated All New Strings
2017-09-06 22:37:27 +07:00
Pratomo Asta N 342afec44e Updated Indonesian Translation common.rpy #13.2717
Translation Now In Sync With The Latest Nightly Version
6.99.13.2717 , #TODO Tag removed , Translated All New Strings
2017-09-06 22:34:48 +07:00
Tom Rothamel 58ce759f1e Handle a say statement triggering a jump or call.
Also fixes roll forward.
2017-09-06 00:48:24 -04:00
Tom Rothamel e507cf4df2 Prevent pop_nvl_list from being called on rollback/jump. 2017-09-05 22:55:19 -04:00
Tom Rothamel 7eb18c189b Document say-with-arguments? 2017-09-05 22:34:02 -04:00
Tom Rothamel cfda38f7d5 Remove test error. 2017-09-04 21:57:15 -04:00
Tom Rothamel f808de82d5 Document the build packages and itch support. 2017-09-04 20:54:34 -04:00
Tom Rothamel d3980ce7e0 Classify arm linux files as linux. 2017-09-04 20:21:37 -04:00
Tom Rothamel 036aea490b Update the list of platforms to send to itch.
Itch and butler now support tar.bz2 and apk, and also support
automatically flagging platform support. So we now work to get
this right.
2017-09-04 20:15:47 -04:00
Tom Rothamel 75e4d03b6b Rename the steam build to the market build.
It should work just as well on itch.
2017-09-04 18:01:48 -04:00
Tom Rothamel b5249bd9e2 Improve how clipping and subsurface work.
There are two improvements here. The first is that it's now
possible for a render to specify clipping in the x axis, y axis,
or both.

The second is that when taking a subsurface, Ren'Py will not clip
surfaces that fit entirely inside the clipping rectange.

This should completely fix the cut-off text issue from #1113.
2017-09-04 12:26:40 -04:00
Tom Rothamel 4182a11853 Remove the word "code" from a few more places. 2017-09-03 19:53:51 -04:00
Tom Rothamel 13b1ff8fa4 Apply the correct scaling to the error handling screen. 2017-09-03 12:05:06 -04:00
Tom Rothamel b56772e148 Clear atl_st_offset when hiding a transform.
This is a better fix for #1181, since it's only hides that would
change the shown time base.
2017-09-02 22:45:26 -04:00
Tom Rothamel c333ab03e3 Fix documentation error. 2017-09-02 19:55:54 -04:00
Tom Rothamel 73156eaf38 Revert "Do not take atl_st_offset as part of transform state."
This reverts commit 910f00211f.
2017-09-02 19:37:04 -04:00
Tom Rothamel e0b946d9af gui: Ignore gui.text_xalign.
This will set the xalign property on default, which will almost
cerainly cause a ton of problems.

Fixes #1171. Probably.
2017-09-01 21:26:45 -04:00
Tom Rothamel 910f00211f Do not take atl_st_offset as part of transform state.
This causes a problem that atl_st_state could be too high, causing
errors. It also should not be necessary, as st should be set or
reset when the transform is first shown.

Fixes #1181.
2017-09-01 20:53:17 -04:00
Tom Rothamel 08e3c238bd Remove unnecessary change that was breaking transforms. 2017-09-01 01:46:00 -04:00
Tom Rothamel 2eb471c447 Fix translations, boms, and line endings. 2017-09-01 01:44:08 -04:00
Tom Rothamel 1ceeff4d7a Update the fix_translations script. 2017-09-01 01:43:16 -04:00
Tom Rothamel 8bcbaafd8f gui7: Normalize the generated script.rpy.
Specifically, it gets the BOM and \r\n line endings added to it
automatically.

Fixes #1214.
2017-09-01 01:36:12 -04:00
Tom Rothamel f486d5b0e4 Fix issue with nested ATL transform event propagation.
ATL Transforms clear the transform event after it's been
processed. The way Ren'Py handling this, clearing the event
in the child transform would cause a None event to propagate
to the parent.

This fixes the issue, which was reported to me privately in:
https://lemmasoft.renai.us/forums/ucp.php?i=pm&mode=view&f=0&p=260161
2017-08-31 23:04:42 -04:00
Tom Rothamel c94d223b05 Store sustained voice.
Fixes #1228.
2017-08-31 01:23:36 -04:00
Tom Rothamel c13985e6a4 Auto-define images ending in .jpeg.
And make it clear we support .jpg and .jpeg. Fixes #1232.
2017-08-30 18:24:09 -04:00
Tom Rothamel cad60f522b say-with-attributes: Doc. 2017-08-30 01:55:08 -04:00
Tom Rothamel 467d53bb88 say-with-arguments: renpy.config.say_arguments_callback
This is a callback that processes the say arguments before
they are dispatched to characters an other functions.
2017-08-29 22:59:05 -04:00
Tom Rothamel f0c0b55b6b say-with-arguments: Pass arguments through the say function. 2017-08-29 03:01:07 -04:00
Tom Rothamel 548028f5b5 Character changes.
* When a character has the advance=False argument, it will not add
  the saybehavior. This will cause it to wait until a hyperlink
  is clicked.

* When control leaves a character, cleanup code is called. This is
  true for all kinds of cleanup, even on abornormal exits (like
  a hyper-link jump.)
2017-08-29 02:50:54 -04:00
Tom Rothamel 2caf75b366 say-with-arguments: Extend should re-supply arguments. 2017-08-29 02:23:02 -04:00
Tom Rothamel 1f714f5816 say-with-arguments: Pass through to Character.
After this commit, the statment.

  e "Hello World" (what_color="#0f0")

is equivalent to:

  e("Hello World, interact=True, what_color="#0f0")

and with the default implementation of Character/ADVCharacter,

  Character(kind=e, what_color="#0f0")("Hello, World.", interact=True)
2017-08-29 02:04:11 -04:00
Tom Rothamel bdfc9b8f01 say-with-arguments: Parse. 2017-08-29 01:55:24 -04:00
Tom Rothamel a0e218c07d Fix the type of the self-voicing preference. 2017-08-28 21:40:21 -04:00
Tom Rothamel 8e7ffd15a4 Let the game_menu screen take a yinitial parameter.
This lets us pick on a screen by screen basis where the scrolling
starts.
2017-08-28 21:32:38 -04:00
Tom Rothamel b9830f9f63 Shrink the error handling scaling if the width is narrow. 2017-08-27 20:37:34 -04:00
Tom Rothamel c6f8a5d07a Edit language description.
Nice try, comrades.
2017-08-27 20:02:47 -04:00
Tom Rothamel 3fe47e8a4a Allow custom game resolutions. 2017-08-27 19:53:51 -04:00
Tom Rothamel ef2a1ddfcc Merge pull request #1230 from Ria-kon/master
Updating russian translation
2017-08-27 19:19:10 -04:00
Ria-kon d3a3eff724 Russian launcher 2017-08-27 12:05:16 +03:00
Ria-kon da12306077 Updating russian tutorial translation 2017-08-27 12:04:09 +03:00
Ria-kon 43cca19789 Updating russian launcher translationg 2017-08-27 11:59:04 +03:00
Ria-kon 43ba26d7ab Updating russian tutorial 2017-08-27 11:54:05 +03:00
Ria-kon 3c1bb2eea2 Solving ambiguity
So, you can't break line with \" and \'
2017-08-27 11:52:35 +03:00
Ria-kon c1628f1fee Russian credits 2017-08-27 11:49:34 +03:00
Tom Rothamel fa05614341 Add config.hyperlink_sensitive.
This makes it possible to define functions that determine if
hyperlinks are sensitive or not.
2017-08-26 16:16:23 -04:00
Tom Rothamel 656a1444b4 Consume do-nothing hyperlink clicks. 2017-08-25 23:35:08 -04:00
Tom Rothamel 139b88329b Document and changelog the new hyperlink functionality. 2017-08-25 23:02:02 -04:00
Tom Rothamel 6a3aad948f ATL pause 0 now displays for a single frame. 2017-08-24 23:21:13 -04:00
Tom Rothamel 251deaf7ea Fix various documentation problems. 2017-08-24 23:11:35 -04:00
Tom Rothamel 8b429d63ca Document _p. 2017-08-24 19:20:56 -04:00
Tom Rothamel 6f6a4e0b03 Improve the _p function.
* Analyze _p properly.
* Do not add a space after {p}.
2017-08-23 22:41:38 -04:00
Tom Rothamel d3bc966b91 Add the _p function. 2017-08-23 02:28:43 -04:00
Tom Rothamel b6c6de1509 Allow translate string to take functions. 2017-08-23 02:28:17 -04:00
Tom Rothamel ac5b740c90 Avoid double-translating files in the tl/ directory. 2017-08-22 23:22:04 -04:00
Tom Rothamel c03bdcf273 Add a registry of new hyperlink protocols.
This let us add two new protocols, show and showmenu, and allows
creators to add more.
2017-08-22 23:12:34 -04:00
Tom Rothamel 787a7a1f2b Fix problems deallocating textures.
It looks like in the NPOT case, we could have gotten the following
sequence of events:

- Deallocate all textures, but still have old texture objects.
- Create a new texture (with the same number).
- The old texture object is GCed.
- The new texture is deleted, causing rendering errors.

This avoids the deallocation, and hence lets opengl ensure that
texture numbers are unique.
2017-08-22 21:22:50 -04:00
Tom Rothamel 95677e45ac Merge pull request #1063 from gtsalles/master
translate help page from spanish to portuguese
2017-08-22 02:15:42 -04:00
Tom Rothamel ad7172f071 Do not allow operators in say name expressions.
This is because we need to parse:

    e -attribute "Hello, world."

And can't do that if we parse (e-attribute) as one thing.
2017-08-21 21:57:07 -04:00
Tom Rothamel 5f250abd42 launcher: Finish generating a gui7 game.
We had been returning to the front page after generating
translations.
2017-08-20 20:57:21 -04:00
Tom Rothamel 1f498a17b6 Fix bad method name. (Thanks, Arowana.) 2017-08-20 00:34:06 -04:00
Tom Rothamel 442235cfb4 Set renpy.platform on android, iOS, and error conditions. 2017-08-19 20:37:03 -04:00
Tom Rothamel 596183f4a1 Do not reimport pygame.
Fixes a crash, though I'm not sure why this crash is happening. Also
a warning.
2017-08-19 20:37:03 -04:00
Tom Rothamel 78482e4a03 Preserve redirections when reloading sys. 2017-08-19 20:37:03 -04:00
Tom Rothamel b9460b7564 Merge pull request #1211 from vollschauer/master
Add config.intra_transition to options.rpy and update docs
2017-08-19 01:20:12 -04:00
Tom Rothamel 05fb5e31a8 memred: Free NPOT textures.
Yeah. Since we weren't doing that before.
2017-08-18 21:19:32 -04:00
Tom Rothamel 182caf80d9 memred: Texture size toggle buttons. 2017-08-18 02:06:15 -04:00
Tom Rothamel 9bad9c41ac memred: Display the number of textures. 2017-08-17 22:59:10 -04:00
Tom Rothamel a8b9373aa5 Reset the caches on resolution change.
This gets rid of all of the textures that are invalid, preventing
display errors caused by said invalid textures.
2017-08-16 22:56:37 -04:00
Tom Rothamel 6f80a0803e Changelog parsing performance improvements. 2017-08-16 01:25:45 -04:00
Tom Rothamel 29780373e3 Document and compat config.nw_voice. 2017-08-15 22:41:19 -04:00
Tom Rothamel 03e332bf82 Make the nw text tag delay until voice has finished. 2017-08-14 23:49:31 -04:00
Tom Rothamel f1ac19d884 director: Remove test code. 2017-08-14 00:58:59 -04:00
Tom Rothamel 1b550602b8 director: Move to absolute sizing.
The window might get bigger or smaller, but that doesn't mean the text has to.
2017-08-14 00:58:12 -04:00
Tom Rothamel 8b05828654 id: Fix layout. 2017-08-14 00:54:47 -04:00
Tom Rothamel a30e472fad t7: Use a hyperlink to remove some ambiguity. 2017-08-13 20:43:59 -04:00
Tom Rothamel 9568b37001 Add config.hyperlink_protocol. 2017-08-13 20:39:06 -04:00
Tom Rothamel cf51fbf9ce Add jumps and calls to hyperlinks. 2017-08-13 02:14:31 -04:00
Tom Rothamel e7b7230f4f Add a TRANSLATORS file.
Finally keeping in contact with people responsible for each
translation.
2017-08-12 22:40:07 -04:00
Tom Rothamel a32a9daaf7 t7: More translation-related fixes. 2017-08-12 22:36:48 -04:00
Tom Rothamel 94c03a77e1 t7: Properly translate strings containing text tags.
Fixes most of the problems in #1222.
2017-08-12 22:35:35 -04:00
Tom Rothamel f2a6109343 Merge pull request #1222 from Ria-kon/master
Updating russian translation and some more notes.
2017-08-12 21:30:27 -04:00
Tom Rothamel ebeef15ba8 Merge pull request #1223 from nyaatrap/master
update Japanese translation
2017-08-12 20:57:14 -04:00
Tom Rothamel 6d51fbdd61 Fix typo. 2017-08-12 02:18:24 -04:00
Tom Rothamel c28c422c7c memred: Implement npot preference. 2017-08-12 02:15:26 -04:00
Tom Rothamel a206b5315b memred: Add a preference that controls GL NPOT. 2017-08-11 19:33:09 -04:00
Tom Rothamel 9b82969645 memred: NPOT textures.
The idea is that by allowing textures of any size, we can reduce memory
usage by not having to allocate many small textures. (This should also
improve performance and reduce overhead everywhere.)
2017-08-10 23:59:43 -04:00
Tom Rothamel 0dc56f1e92 memred: Increase the max GL texture size to 2048.
This will allow us to create single large NPOT textures.
2017-08-10 23:53:57 -04:00
Tom Rothamel d40d921e02 memred: Add an environment variable to enable modern GL mode. 2017-08-09 23:04:57 -04:00
Tom Rothamel 0fbb71431e memred: Start work on implementing gl_npot. 2017-08-09 22:58:24 -04:00
Tom Rothamel fa20e99ede memred: Add config.cache_surfaces.
Setting this to False tosses surfaces as soon as a texture is
created. This slows down image manipulators (which are getting
fairly obsolete), but should reduce memory usage.
2017-08-09 01:29:15 -04:00
Tom Rothamel 766cf704b8 memred: Move texture conversion into cache.get. 2017-08-08 21:44:02 -04:00
Tom Rothamel 8676273698 Document gui.textbox_height. 2017-08-07 23:08:47 -04:00
Tom Rothamel b823ac8a03 More doc changes. 2017-08-07 22:34:57 -04:00
Tom Rothamel 04b4c57d78 Update docs. 2017-08-07 22:31:39 -04:00
Tom Rothamel 00978380d5 Document xspacing and yspacing.
Fixes #1220.
2017-08-06 23:15:24 -04:00
Tom Rothamel 0a94e2c09c Vpgrid respects xspacing and yspacing. 2017-08-06 20:53:45 -04:00
Tom Rothamel ae12b0d09e Add the xspacing and yspacing style properties to grid.
This lets the creator change the spacing on each access independently.
2017-08-06 20:43:17 -04:00
Tom Rothamel c2e08b49f9 launcher: Fix tmp directory writability test. 2017-08-05 20:44:23 -04:00
Tom Rothamel 7d5e74b55e Do not include path to source file in hashes.
The path doesn't matter, as long as the name and contents are the
same. By not  including the path, w ensure the hash doesn't change,
speeding up builds.
2017-08-05 20:34:48 -04:00
Tom Rothamel 4985aaac26 Use zip command to zip SDK.
The python zlib module has a global lock, which means it can only
compress a single zipfile at once. When building the SDK, we now
use the zip program, which can be run multiple times in parallel.
2017-08-05 20:06:42 -04:00
Tom Rothamel b9939baec8 Build Ren'Py in parallel. 2017-08-05 19:37:55 -04:00
Tom Rothamel 492b3c09b6 Include a profiler with Ren'Py. 2017-08-05 19:37:20 -04:00
nyaatraps f6322881f8 update Japanese translation 2017-08-05 19:49:35 +09:00
Tom Rothamel 7c9b69ae75 Change packaging and document raspi. 2017-08-04 21:52:13 -04:00
Ria-kon 5b5c4d94b6 Update to russian tutorial 2017-08-04 19:44:13 +03:00
Ria-kon 158c17f653 Updating launcher to russian 2017-08-04 19:41:06 +03:00
Tom Rothamel 10d8403f14 Distribute Raspberry Pi files. 2017-08-03 23:17:35 -04:00
Tom Rothamel 86ddf62132 Do not copy screens.rpy from the new tutorial to the English template.
This is obsolete.
2017-08-03 23:03:35 -04:00
Tom Rothamel 5088aa9e41 More of the changelog. 2017-08-02 22:43:34 -04:00
Tom Rothamel becee77162 Start updating changelog. 2017-08-02 00:47:06 -04:00
Tom Rothamel f13469d07a Sort Pig Latin after natural languages.
Since it's kind if weird to be scrolling through the list of languages,
and seeing the weird test language above what you speak.
2017-08-01 19:50:09 -04:00
Tom Rothamel 25f597f985 launcher: Use the right language name.
When creating a new project where everything but that language
has been translated.
2017-08-01 19:47:43 -04:00
Tom Rothamel 6309925924 Fix a problem with bad translated comments. 2017-07-31 23:46:19 -04:00
Tom Rothamel a46422130c launcher: Find the tutorial even if it's not in the projects directory. 2017-07-31 22:00:39 -04:00
Tom Rothamel 47113252a2 launcher: Remind the creator they can change language.
When creating a new project.
2017-07-31 21:54:29 -04:00
Tom Rothamel b192a9faf0 Fix console launch on Windows. 2017-07-31 00:15:24 -04:00
Tom Rothamel 17e2ed9272 t7: Expose Russian translation. 2017-07-30 21:10:30 -04:00
Tom Rothamel 303c4fa813 Address the fourth batch of issues.
https://github.com/renpy/renpy/pull/1183#issuecomment-317060849
2017-07-30 21:00:28 -04:00
Tom Rothamel 9e45dc5993 Address translations notes part 3.
Found at https://github.com/renpy/renpy/pull/1183#issuecomment-316947068
2017-07-30 20:23:46 -04:00
Tom Rothamel 3725de475e Merge branch 'master' into russian-new-tutorial 2017-07-30 17:58:38 -04:00
Tom Rothamel 061b69167a Fix invalidate.
It wouldn't kill parents, making it kinda useless.
2017-07-30 17:57:00 -04:00
Tom Rothamel f1f199f6e2 Tweak size of AlphaDissolve example. 2017-07-29 16:45:05 -04:00
Tom Rothamel 910bcc2c19 Merge pull request #1210 from morganwillcock/vpgrid-doc
vpgrid docs: some typo and formatting fixes, plus some rephrasing of grid terminology
2017-07-29 16:39:06 -04:00
Tom Rothamel 79cf6c2711 return -> jump front_page on various translation routines.
This fixes a problem where Ren'Py would restart, causing the path
to strings.json to change when Ren'Py itself is read-only.
2017-07-29 01:42:38 -04:00
Tom Rothamel 8adab64522 Update testcases for new gui. 2017-07-28 23:57:07 -04:00
Tom Rothamel da8029e687 Test Ren'Py in read-only mode. 2017-07-28 23:39:51 -04:00
Tom Rothamel 0c536eb98d t7: Take advantage of the previous translation. 2017-07-28 17:48:58 -04:00
Tom Rothamel 235368b3d1 Hide the !t from [variable!t].
This lets us translate the tutorial, and present code examples as
if we're not.
2017-07-28 17:47:22 -04:00
Tom Rothamel 4edc5fafb5 Save arguments when saving a screen, apply arguments when reloading.
Fixes #1157.
2017-07-27 22:37:18 -04:00
Tom Rothamel 5567cf5a33 Error handling improvements.
* Make the buttons visible in error handling configurable.
* Use the error handling screen in the launcher.
2017-07-27 01:19:54 -04:00
Tom Rothamel 7d84b85ce0 Add _ignore_action.
This is an action that's run when the player clicks Ignore on the
error handling screen.
2017-07-27 01:07:21 -04:00
Tom Rothamel 1258b9ef64 Flush stdout/stderr when printing to them. 2017-07-26 18:13:35 -04:00
Tom Rothamel f91dde9658 t7: Remove spurious formatting. 2017-07-26 01:08:38 -04:00
Tom Rothamel 7380ee7342 t7: Fix translation issues in the renpy.input section. 2017-07-26 01:00:47 -04:00
Tom Rothamel d293fc4946 Merge branch 'master' of https://github.com/Ria-kon/renpy into russian-new-tutorial 2017-07-26 00:04:57 -04:00
Tom Rothamel 201d8d9fcc Quote notify text.
This prevents a crash where a screenshot directory with a variable
substitution could cause Ren'Py to crash.
2017-07-25 21:35:19 -04:00
Tom Rothamel 960b4d7615 Clear nvl_list if the language changes.
A language change can mess with styles, fonts, and other settings,
so it probably makes sense to clear the NVL-list when it happens.
2017-07-24 23:09:53 -04:00
Tom Rothamel 0bcf690db1 Only record an NVL-mode line if it completes without an exception.
Fixes #1203, since an exception will occur when changing language.
2017-07-24 23:00:24 -04:00
Tom Rothamel d627abe34b Apply character_id_properties to NVL-mode. 2017-07-24 22:58:02 -04:00
Tom Rothamel 0d4f16d45a Update piglatin translations. 2017-07-23 19:46:44 -04:00
Tom Rothamel f30bcbfc1c director: Make translatable. 2017-07-23 19:45:12 -04:00
Tom Rothamel ad6ef591de Use a script to regenerate the piglatin translations. 2017-07-23 19:33:03 -04:00
Tom Rothamel 122ead1f16 Improve and document config.character_id_prefixes. 2017-07-23 03:03:00 -04:00
Tom Rothamel 9e87ebf186 Allow the character to take creator-defined property prefixes.
For example, we can set config.character_id_prefixes to include
"thingy", and then the Character property thingy_color would set
the color property on the widget with id thingy.
2017-07-22 23:43:00 -04:00
Tom Rothamel 25a8e805a3 Gallery fixes.
* Only unlocked_advance an image if we're on the right button.
* Check button and image are in range, give up if not.

Fixes #1179.
2017-07-22 15:17:05 -04:00
Ria-kon 0627fe579d And another update 2017-07-22 19:45:03 +03:00
Ria-kon a2789b85da double with "text text" 2017-07-22 19:35:03 +03:00
Ria-kon c9213c7644 and update for translation 2017-07-22 19:24:49 +03:00
Ria-kon 03cda1481f Fix for some basic notes
Right now fixed notes go alone with +++
2017-07-22 19:22:47 +03:00
Tom Rothamel 6124572dc3 Fix bad method call. 2017-07-21 23:35:44 -04:00
Ria-kon e7f18bb773 http to https and that's all for now 2017-07-21 22:12:09 +03:00
Ria-kon 3b241bcbf4 small fix
with this ".."
2017-07-21 22:06:38 +03:00
Ria-kon d910db55bc Latest launcher translation 2017-07-21 22:04:33 +03:00
Ria-kon 4f9d12377d Proofread done, start noting and check grammar
Notes in comments
2017-07-21 20:14:11 +03:00
Ria-kon e3a9d75669 3 files to proof and more notes 2017-07-21 11:58:29 +03:00
Tom Rothamel f4ed3251e9 Give more infinite loop time when not in developer mode.
Since the player can't do anything about the problem, save reporting
it. Per #1216.
2017-07-21 00:31:58 -04:00
Tom Rothamel 17a24bde55 Fix very old compat code, per #1216. 2017-07-21 00:24:46 -04:00
Andrew Savchenko e602b9a839 Fix compatibility problem with Katawa Shoujo 1.3.1
The game fails to start with renpy-6.99.12.4:

I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/ui_settings.rpy", line 21, in <module>
  File "renpy/common/00compat.rpy", line 134, in _set_script_version
    config.window_auto_hide.remove("call screen")
ValueError: list.remove(x): x not in list

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "/home/rondo/ui_settings.rpyc", line 2, in script
  File "/usr/lib64/python2.7/site-packages/renpy699/renpy/ast.py", line 814, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "/usr/lib64/python2.7/site-packages/renpy699/renpy/python.py", line 1695, in py_exec_bytecode
    exec bytecode in globals, locals
  File "game/ui_settings.rpy", line 21, in <module>
  File "/usr/lib64/python2.7/site-packages/renpy699/renpy/defaultstore.py", line 92, in __setattr__
    renpy.store._set_script_version(value)  # E1101 @UndefinedVariable
  File "renpy/common/00compat.rpy", line 134, in _set_script_version
    config.window_auto_hide.remove("call screen")
  File "/usr/lib64/python2.7/site-packages/renpy699/renpy/python.py", line 610, in do_mutation
    return method(self, *args, **kwargs)
ValueError: list.remove(x): x not in list

This happens because "call screen" element is being unconditionally
removed from config.window_auto_hide list, though it is not always
present there. A simple if check fixes this.
2017-07-21 00:09:24 -04:00
Tom Rothamel d6abf5a78a Remove sets.Set in warp.py.
Per #1037.
2017-07-20 23:14:09 -04:00
Tom Rothamel df88bdfd26 Make RevertableSet inherit from set, rather than sets.Set.
Based on #1037, with an implementation of RevertableSet that can
load older saves.
2017-07-20 23:09:13 -04:00
Tom Rothamel 5cf84727bb Create a RevertableSet when a set literal is encountered. 2017-07-20 22:32:30 -04:00
Tom Rothamel 3bf4e96684 Link to the sponsor information from the launcher.
With a preference to turn it off, since I know people are going
to want to.
2017-07-20 21:38:57 -04:00
Tom Rothamel 0951ae3267 Fix language selection. 2017-07-20 20:40:20 -04:00
Ria-kon 9369352903 Only 4 files needs proofread…
Many notes, i just comment them in pull req
2017-07-21 03:32:06 +03:00
Ria-kon 31e286356e 01example translation
just forgot about it…
2017-07-20 21:35:49 +03:00
Ria-kon b52cf7d771 Quickstart section, interface and some notes
Notes

# e "Of course, there's a lot more to transforms than this. If you want to learn more, you can read the sections on Position Properties, Transforms, and Transform Properties." ### "Transforms and Animation", not "Transforms"
# e "Some games might prompt the player for input." ### "What's your name?" must be translated!!!
# interactive director needs translation!!!
2017-07-20 21:24:16 +03:00
Ria-kon e929f2dcbc Stop with this errors 2017-07-20 12:06:09 +03:00
Ria-kon aead5ae0aa Merge branch 'master' into master 2017-07-20 12:04:27 +03:00
Ria-kon 0665cbafff Resolving… 2017-07-20 12:02:37 +03:00
Ria-kon c25c38654a Https and fix 2 dots in main renpy 2017-07-20 11:53:07 +03:00
Ria-kon 7c7337e8e3 little fix 2017-07-20 11:51:55 +03:00
Ria-kon 60f4cf1964 Russian Translation Ongoing
Nightly version of translation

Notes:
>There is some http changes to https
>"Change the size and spacing of various things.." with 2 dots
>Quick buttons on original was deleted. Is this ok?
>Theme test was deleted cause of commented line with #
2017-07-20 11:33:47 +03:00
Tom Rothamel e4b10e6b6f Display the version of Ren'Py on the error handling screen. 2017-07-19 23:28:19 -04:00
Tom Rothamel c3701f3e01 Fix a bug when the current project is None. 2017-07-19 22:56:32 -04:00
Tom Rothamel ab8c2ab719 doc: Director. 2017-07-19 00:53:31 -04:00
Tom Rothamel 07551daca2 Fix Render.invalidate() (and hence Transform.update() ). 2017-07-18 21:54:29 -04:00
Tom Rothamel 33009207e4 Use documented API to add indexes to Sphinx. 2017-07-17 23:01:35 -04:00
Tom Rothamel 6248c8c431 Make the range of certain preference bars configurable.
This is done by doing things like Preference("text speed", range=100.0)

Fixes #1215.
2017-07-17 22:46:39 -04:00
Tom Rothamel 695e7d4ab5 Choose the new tutorial if there's no translation in the old tutorial. 2017-07-17 02:04:16 -04:00
Tom Rothamel 17d766ecb8 Automatically switch between old and new tutorials.
Based on a new preference, and the presence of translations.
2017-07-17 02:02:40 -04:00
Tom Rothamel 00efd7f536 Replace the old tutorial with t7.
Audentes Fortuna Iuvat.
2017-07-17 01:33:13 -04:00
Tom Rothamel 4f32da4717 launcher: Allow projects.json to give an alternative name for the project.
This lets us call both tutorials "Tutorial".
2017-07-16 23:39:21 -04:00
Tom Rothamel 8c1b6f728b Start distributing tutorial_7. 2017-07-16 18:31:06 -04:00
Tom Rothamel 18c4f3dfa1 t7: Tweak the save directory. 2017-07-16 18:29:25 -04:00
Tom Rothamel 857cd74786 Read in .edit.py source and exec it.
The goal is to make sure the file descriptor doesn't hang around
open, since that seems to be a problem.
2017-07-16 18:17:47 -04:00
Tom Rothamel 4cfdffe837 Properly list line with a triple-quoted string with a single delimiter.
That is, a line like:

    $ test = """ " """
2017-07-15 22:58:05 -04:00
Tom Rothamel cea98df57a Fix extra 'c' at the end of the internal name of a standalone .rpyc file. 2017-07-15 00:58:24 -04:00
Tom Rothamel 5442848274 Fix regression in deleting obsolete .rpyc files. 2017-07-15 00:10:03 -04:00
Tom Rothamel d188aef479 t7: Remove obsolete files. 2017-07-14 22:52:29 -04:00
Tom Rothamel 59a0f2661a Remove spurious code. 2017-07-13 23:28:18 -04:00
Tom Rothamel 1e6f8f5703 gui: Tweak positions of history text. 2017-07-13 23:26:16 -04:00
Tom Rothamel d4f961e15b gui: Strip text tags fron dialogue before showing it on the history screen.
Fixes #1207.
2017-07-13 23:20:38 -04:00
Tom Rothamel 970c4ba129 Add renpy.filter_text_tags.
This is a function that filters the text tags in a string. It
can either keep a whitelist of text tags, or remove a blacklist
of text tags.
2017-07-13 22:19:39 -04:00
Tom Rothamel eef63915a8 Check the types of preferences.
This prevents Ren'Py from getting stuck if a creator assigns the
wrong type to something that gets put into persistent as part of
the preferences.

Fixes #1208.
2017-07-12 23:22:33 -04:00
Tom Rothamel 9f979a9b8c Support picking of NoneType.
That is, types.NoneType itself. We've always been able to pickle
None.
2017-07-12 23:16:20 -04:00
Tom Rothamel b195a993fa t7: Rename imagedissolve images. 2017-07-11 18:39:31 -04:00
Tom Rothamel a256c97619 t7: Tweak various filenames in the tutorial. 2017-07-11 18:25:21 -04:00
vollschauer f665abcaa9 Update options.rpy
Add config.intra_transition = dissolve
2017-07-11 09:46:46 +02:00
Tom Rothamel 53cc29b0d9 t7: Update images and replace main menu. 2017-07-11 01:28:31 -04:00
Tom Rothamel 7f61fe5a85 t7: Distribute. 2017-07-11 00:31:44 -04:00
Tom Rothamel 4cc9d3262d Add build.mac_identity to the default game.
This makes it obvious where to put it if it's needed.
2017-07-10 23:28:23 -04:00
Tom Rothamel ce55be099b t7: Translations. 2017-07-09 23:47:20 -04:00
Morgan Willcock 0c8047f982 Some typo and formatting fixes, plus some rephrasing of grid terminology 2017-07-09 21:18:24 +01:00
Tom Rothamel 7584783dae t7 example: Include the ability to force translation marker display. 2017-07-09 13:16:02 -04:00
Tom Rothamel 02ce795ac0 t7: Update minigame tutorial. 2017-07-08 21:24:51 -04:00
Tom Rothamel 5c420d3593 t7: Proofread. 2017-07-08 12:42:42 -04:00
Tom Rothamel 118cd44ebd t7 example: Quote \n in examples. 2017-07-07 22:15:07 -04:00
Tom Rothamel f21952a79f t7: Proofreading. 2017-07-07 21:28:11 -04:00
Tom Rothamel 361b88e43c t7: Proofreading. 2017-07-07 01:11:47 -04:00
Tom Rothamel 2ab0dd00bf Optionally let self-voicing and AFM co-exist.
Optionally, since using the two when vision-impaired probably
won't work. So it's fine as a dev tool, but it needs to be
hard to invoke in shipping games.
2017-07-07 01:05:38 -04:00
Tom Rothamel eed306be56 code -> script. 2017-07-07 00:08:04 -04:00
Tom Rothamel a2daccbd23 t7 example: Fix string parsing. 2017-07-07 00:07:39 -04:00
Tom Rothamel 5993bf0729 t7: Fix typos. 2017-07-06 19:58:35 -04:00
Tom Rothamel 6475ae558b Add RENPY_TTS_COMMAND.
This makes it possible to have nicer sounding auto-voicing if
you're willing to work hard for it. (It's mostly for me as I
proofread the new tutorial.)
2017-07-06 19:51:48 -04:00
Tom Rothamel 867dc58396 Menu is meant to be redefined. 2017-07-06 01:21:25 -04:00
Tom Rothamel 682ea9a24b t7: Fix mistake. 2017-07-06 01:07:55 -04:00
Tom Rothamel b2aea518f0 t7: Mention the displayable inspector. 2017-07-05 21:54:11 -04:00
Tom Rothamel c5b6a81054 t7: Director example. 2017-07-04 12:50:22 -04:00
Tom Rothamel 518981f35b Fix replace_next for UserStatement with block. 2017-07-04 12:45:49 -04:00
Tom Rothamel d6b37030cb Improve the variable viewer.
- Ignore store._console and other internal namespaces.
- Sort the variables in name order.
2017-07-04 12:41:22 -04:00
vollschauer e1596be19c Update config.rst
doc: add missing config.intra_transition
2017-07-04 17:12:18 +02:00
Tom Rothamel 23b5ac9fd8 id: Bind the 'd' key to launch the interactive director. 2017-07-03 11:38:21 -04:00
Tom Rothamel 285c40ef4f Integrate the director into the developer mode screen.
Also tweak various aspects of the director GUI so it scales a bit
better.
2017-07-03 11:14:30 -04:00
Tom Rothamel e58c5ca7d1 id: Start landing the Interactive Director.
Originally developed at https://github.com/renpy/id .
2017-07-02 19:05:41 -04:00
Tom Rothamel 3bf039f0b7 gui: Use separate images for phone buttons and bars.
This follows out of the last change. Now that the size of buttons
and bars are different on mobile and desktop, it's necessary to
use a second set of images for them.
2017-07-02 18:28:04 -04:00
Tom Rothamel 3391b09f14 gui: Reduce the size of certain interface elements.
This leaves more space for translations and to add interface elements
like new preferences to the default GUI.
2017-07-01 22:17:06 -04:00
Tom Rothamel ec8e7bec81 Brighten up the idle color for the default gui.
This is based on experience with the new GUI.
2017-07-01 11:01:35 -04:00
Tom Rothamel dc79adbb97 t7: Character section. 2017-07-01 01:41:39 -04:00
Tom Rothamel 431b4cffe4 More work on character stuff. 2017-06-30 19:40:55 -04:00
Tom Rothamel 9738e09239 t7: Start work on character demo. 2017-06-29 23:43:37 -04:00
Tom Rothamel 6db84ccfff Fix reused parameter in egl_angle.c 2017-06-29 09:15:22 -04:00
Tom Rothamel c145238cae Merge pull request #1186 from renoa/master
translated error.rpy options.rpy script.rpym
2017-06-29 01:08:50 -04:00
Tom Rothamel bc21c04ea0 Force a checkpoint at start when rolling back from the menu context.
We had been forcing the checkpoint in the menus context, rather than
the main one, which means on a second rollback, we'd keep going and
roll all the way back to before the game start, with disasterous
results.

Fixes #1177.
2017-06-29 00:28:10 -04:00
Tom Rothamel a45c5d35e5 Only report missing screens before use if config.developer is true.
This fixes an issue that shows up in Fault: Silence the Pedant (demo)
where a non-existing screen is analyzed.
2017-06-28 01:23:40 -04:00
Tom Rothamel f212504dbd Fix custom statement. 2017-06-28 01:05:45 -04:00
Tom Rothamel 9538d903bf Tweak the size of the list of tutorials.
The idea is to help the user learn there's more choices if the
scroll bar isn't enough for them.
2017-06-27 23:25:24 -04:00
Tom Rothamel d15067abe2 t7: Remove ui demo.
It's all been moved to other files.
2017-06-27 22:58:46 -04:00
Tom Rothamel 678b60128f t7: Use and Transclude. 2017-06-27 00:46:11 -04:00
Tom Rothamel d598b3aaba t7: Special screen language statements. 2017-06-26 23:35:56 -04:00
Tom Rothamel be5efbf3bd Use a generated tempdir for strings.json if necessary.
That is, if we can't write the Ren'Py temp directory.

Fixes #1195.
2017-06-26 00:57:54 -04:00
Tom Rothamel 99968f3696 Check that the tmpdir is writable. 2017-06-25 23:05:33 -04:00
Tom Rothamel 68154ee730 Revert "Factor out tmpdir."
This reverts commit 174a33cb1d.
2017-06-25 22:50:39 -04:00
Tom Rothamel 174a33cb1d Factor out tmpdir. 2017-06-25 02:01:34 -04:00
Tom Rothamel 5638d35cce Allow the use statement to take a has block. 2017-06-24 23:09:46 -04:00
Tom Rothamel a9feb5c281 Generate the proper filename when run from outside of renpy_base.
Running a command like:

    python renpy/renpy.py renpy/tutorial

would cause Ren'Py to replace all the .rpys wuth .rpycs, which
then confused t7.
2017-06-23 23:57:41 -04:00
Tom Rothamel 2046ac5ce1 When set to auto, change config.developer duting the init phase.
The idea here is that it's always True or False, so code doesn't
have to special-case auto.
2017-06-23 22:34:12 -04:00
Tom Rothamel 247f54f417 Error out if an argument is given to the object constructor. 2017-06-22 20:11:30 -04:00
Tom Rothamel a85cc4f3e3 Support for running novel platforms (like Raspi). 2017-06-22 10:04:40 -04:00
Tom Rothamel 51dfaf034f Add support for an accelerated build on the Raspberry Pi. 2017-06-21 23:20:42 -04:00
Tom Rothamel 78dfaac0da gl: Clear clipping before checking pixel opacity.
Fixes #1205.
2017-06-19 23:38:17 -04:00
Tom Rothamel db3a7e988f Transform.take_state() includes the child displayable.
This deals with a transform that finishes running after setting a
child.
2017-06-19 21:47:33 -04:00
Tom Rothamel 7868f401b2 Translate strings in the examples. 2017-06-19 02:07:05 -04:00
Tom Rothamel 30f07df461 Support loading non-translated files instead of a translation rpy.
For internal tutorial use.
2017-06-19 02:06:33 -04:00
Tom Rothamel 22d11a1a0e Support grabbing dialogue string translations.
Only the simplest cases. This is intended to support example
translations in the tutorial, rather than for use in the
launcher.
2017-06-18 14:48:12 -04:00
Tom Rothamel 859bf91b02 t7: Strip out the translation marker. 2017-06-18 00:41:55 -04:00
Tom Rothamel b4ecbaaf5a t7: Add a preference to show and hide translation markers. 2017-06-17 23:19:05 -04:00
Tom Rothamel 7cc4175160 Tie hiding the mouse directly to movie playback.
This ensures that the mouse is shown if the movie stops playing,
like if the player clicks the "quit" button.
2017-06-16 19:00:10 -04:00
Tom Rothamel 727e173a4a Document when the ctc screen is supplied an argument.
Per #1167.
2017-06-15 19:58:45 -04:00
Tom Rothamel 7a13e96dd0 Do not draw the screeen when a restart_interaction is requested.
This lets on "show" handlers of screens, and other similar things,
have side effects without having a frame in which the old data
is visible.

A fix to the main part of #1199.
2017-06-15 19:43:01 -04:00
Tom Rothamel 7cee7b62e6 Mark defaulted variables as having been changed.
Fixes #1198.
2017-06-14 23:14:23 -04:00
Tom Rothamel 986d120e59 t7: Viewports and vpgrid. 2017-06-13 02:07:37 -04:00
Tom Rothamel e9c279d066 Vpgrid fixes. 2017-06-13 02:07:21 -04:00
Tom Rothamel 5eea714176 Position properties go to the side of a viewport.
In general, it's useless to give the positon properties to a
viewport in a side. So instead, we give those properties to
the side, and let it handle them.
2017-06-12 22:21:37 -04:00
Tom Rothamel 04126b5c50 Fix viewport arrowkeys when the viewport is not fullscreen. 2017-06-12 22:19:57 -04:00
Tom Rothamel a8dafde044 Improve error handling for missing imagebutton images. 2017-06-11 22:27:29 -04:00
Tom Rothamel cb7591ac41 t7: Tweak the look of examples. 2017-06-11 20:42:18 -04:00
Tom Rothamel 42161d8409 Imagmaps no longer require a ground image.
If a ground image is not provided, the idle image is used instead.
2017-06-11 19:59:18 -04:00
Tom Rothamel ed916d8dd7 t7: Error out if an example is left open. 2017-06-11 19:49:05 -04:00
Tom Rothamel 069a449d02 t7: Imagemap demonstration. 2017-06-11 19:32:41 -04:00
Tom Rothamel 48d8312957 Support using lint to report the number of examples. 2017-06-11 11:44:59 -04:00
Tom Rothamel 7c6522668b t7: Bars. 2017-06-10 23:59:11 -04:00
Tom Rothamel bc6227a682 Set the default adjustment page size as described in the docs.
Since it was wrong.
2017-06-10 22:17:48 -04:00
Tom Rothamel 694bba9858 t7: Buttons. 2017-06-10 02:13:43 -04:00
Tom Rothamel 7dd8eb45d5 Mark dict.update as mutating.
How was it not? Fixes #1197.
2017-06-09 22:01:44 -04:00
Tom Rothamel b36c12c8ad Fix variable change. 2017-06-09 01:01:28 -04:00
Tom Rothamel 0d0f7db9d1 gui: Do not fix textbutton height. 2017-06-09 00:54:45 -04:00
Tom Rothamel 8a497ac8be t7: Demonstrate frames and windows. 2017-06-08 01:10:15 -04:00
Tom Rothamel b268d0e768 doc: Better describe why SL is better than UI functions.
Fixes #1196.
2017-06-07 23:12:04 -04:00
Tom Rothamel 06da5ec181 t7: Boxen 2017-06-07 02:18:49 -04:00
Tom Rothamel dbb282530f t7: Don't make regexps out of the keywords and properties.
It wasn't used.
2017-06-07 00:11:20 -04:00
Tom Rothamel cd72b3106f t7: Talk about text in screens. 2017-06-06 18:18:57 -04:00
Tom Rothamel 6881048694 t7: Rely on auto-show of screen examples. 2017-06-06 18:05:12 -04:00
Tom Rothamel 0fac2fb9b7 t7: Automatic transitions when showing an example. 2017-06-06 10:09:44 -04:00
Tom Rothamel f647422eb8 Remove spurious line. 2017-06-06 01:03:07 -04:00
Tom Rothamel 38fbf8a70c gui: Remove unused code from the preferences screen. 2017-06-05 18:35:55 -04:00
Tom Rothamel 973fa232f7 Automatically show and hide screen examples. 2017-06-05 10:10:26 -04:00
Tom Rothamel c35f34e7b7 Tweak wording of the transform examples. 2017-06-05 09:17:06 -04:00
Tom Rothamel 313a33f02b t7: Add statement. 2017-06-05 03:03:18 -04:00
Tom Rothamel ef3dfe818e Fix unlocked_advance for good.
Stupid terrible variable name. Fixes #1179 for good this time.
2017-06-04 22:17:27 -04:00
Tom Rothamel 219e6788ea t7: Properties all displayables share. 2017-06-03 23:13:05 -04:00
Tom Rothamel 04fcc8b5ca t7: Automatically outdent code examples when appropriate. 2017-06-03 11:30:21 -04:00
Tom Rothamel 5f4f2b36f9 t7: Trivial amounts of work on screen displayables. 2017-06-03 00:02:10 -04:00
Tom Rothamel 65fbb1c7f7 t7: Screen properties. 2017-06-02 23:13:32 -04:00
Tom Rothamel 4538d5d427 t7: Passing parameters to screens. 2017-06-02 01:55:10 -04:00
Tom Rothamel 02ef9800f8 t7: More work on screens. 2017-06-02 01:29:50 -04:00
Tom Rothamel 0d628f11a6 t7: What can screens do? 2017-06-02 00:11:25 -04:00
Tom Rothamel 4f8d28ab44 Add an index line to examples. 2017-06-01 22:58:29 -04:00
Tom Rothamel 14e8bda631 t7: Tweak menus. 2017-06-01 01:32:54 -04:00
Tom Rothamel a4f4467a6b Input and Interpolation section. 2017-06-01 01:20:04 -04:00
Tom Rothamel 93971d61d3 Add Brazilian Portugese translation. Courtesy mrstalker@lsf.
Fixes #1190.
2017-05-31 22:24:38 -04:00
Tom Rothamel 3a6b568ca4 t7: Add scrollbar to examples. 2017-05-31 02:11:05 -04:00
Tom Rothamel c908491b70 Viewports and vpgrids take scrollbar_ and vscrollbar_ properties. 2017-05-31 02:08:53 -04:00
Tom Rothamel e089b4ba02 t7: Integrate dialogue into a menu. 2017-05-30 22:48:04 -04:00
Tom Rothamel 3a12cac67f Do not play voice in mode transitions.
Since we don't know what mode we're in during a mode transition,
we can be (and usually are) in a with mode. Since voice doesn't
play in with modes, we don't want to play it during a mode
transition.
2017-05-29 18:33:07 -04:00
Tom Rothamel f6605ec5d7 Hyperlinks support hover_sound and activate_sound. 2017-05-29 16:58:39 -04:00
Tom Rothamel 04aa3100cd t7: Introduce text_ and Character styles. 2017-05-28 17:15:19 -04:00
Tom Rothamel dc27e66d83 t7: A simple guide to positions. 2017-05-28 11:37:21 -04:00
Tom Rothamel 6dc6213885 doc: Fixes to style properties.
* Move order_reverse into Fixed.
* Fix types.
* Fix reStructuredText errors.
2017-05-28 10:16:02 -04:00
Tom Rothamel 30b566750e Report the files DynamicImage searches.
Fixes #1175.
2017-05-27 14:40:09 -04:00
Tom Rothamel 9aecbc4655 sl2: Do not add style properties to screen.
This was a spurious add that caused screen to be over-generous
in the properties it would take.

Fixes #1188.
2017-05-27 09:33:56 -04:00
Tom Rothamel 7f13d20ce5 Initialize renpy.config before renpy.log.
This lets us use renpy.config to configure logging, and still be able
to print wherever we want to.
2017-05-27 09:23:45 -04:00
Tom Rothamel 1379e5793b text: Ensure that zero-width spaces are zero-width.
Even if the font doesn't have the character.
2017-05-26 23:07:42 -04:00
Tom Rothamel cccbd37771 text: Put a zero-width space on empty lines.
Instead of a regular space. Fixes #1187.
2017-05-26 22:59:48 -04:00
Tom Rothamel 39534ae856 t7: Fixed styles. 2017-05-26 02:19:53 -04:00
Tom Rothamel 5e90c359a2 t7: Box style properties. 2017-05-25 22:30:54 -04:00
Tom Rothamel 6b29ddf442 t7: Move xfill into the section on windows and buttons. 2017-05-25 01:06:28 -04:00
Tom Rothamel d55b3b2a79 t7: Finish bar style properties. 2017-05-24 23:43:46 -04:00
Tom Rothamel a7674f37ae t7: Start work on bar style properties. 2017-05-24 19:04:34 -04:00
Tom Rothamel 14ef43b904 t7: Put a visible frame behind the buttons. 2017-05-24 00:20:47 -04:00
Tom Rothamel e443cfbb93 Update the frame image. 2017-05-23 22:51:03 -04:00
Tom Rothamel 9b22604bb3 t7: Check images for the button style demo. 2017-05-23 22:47:35 -04:00
Tom Rothamel c3beadb87c Finish style properties. 2017-05-23 22:21:49 -04:00
Tom Rothamel 013850cb44 t7: Start work on windows and buttons. 2017-05-22 23:45:08 -04:00
Tom Rothamel cf7fc2ea62 t7: Update the video tutorial to use the new example system. 2017-05-22 01:43:20 -04:00
Tom Rothamel 74c23b68c2 t7: Make example size and placement persistent. 2017-05-22 01:10:38 -04:00
Tom Rothamel 2d7ffc69c4 t7: Use classes to represent sections of the script. 2017-05-22 01:10:04 -04:00
Tom Rothamel 5e5c33b310 Doc changes.
The main change is to get things working with intersphinx. We also
further remove some of the sphinx caching.
2017-05-21 23:29:25 -04:00
Tom Rothamel 692fccfbf7 t7: Add a demo of the Frame displayable. 2017-05-21 16:03:08 -04:00
Tom Rothamel 9ec57c2d71 t7: Text style properties. 2017-05-21 10:22:52 -04:00
Tom Rothamel 8f8ffcd704 t7: WIP of text styles. 2017-05-21 02:02:19 -04:00
Tom Rothamel ee1024a657 t7: Text style properties. 2017-05-20 21:58:17 -04:00
Tom Rothamel 71c47169e1 Remove mark_seen in ui.interact().
It's redundant to the call in interact_core.
2017-05-20 12:03:45 -04:00
Tom Rothamel db5d595e77 Mark statements as seen at the end of an interaction.
This fixes #1185, an issue where the skip buttons is insensitive
during the transition.
2017-05-20 11:54:37 -04:00
Tom Rothamel 857fcbb658 t7: New GUI. 2017-05-19 23:20:33 -04:00
Tom Rothamel 5cf9aa977d t7: Style basics. 2017-05-19 22:56:57 -04:00
Tom Rothamel c414046301 Update the character demo. 2017-05-18 23:33:23 -04:00
Tom Rothamel f9a9ee7389 Properly handle multiple escape sequences, like \\n.
Previously, we handled these with replacements, so that the \n
would be replaced before the \\. Now it's first-come, first-served,
just like other languages have it.

Fixes #1184.
2017-05-18 20:57:23 -04:00
Tom Rothamel a595c0926c t7: Text Tags, Escapes, and Interpolation 2017-05-18 01:24:37 -04:00
Tom Rothamel 263424a203 t7: Quote text in examples, move copy button. 2017-05-18 01:12:45 -04:00
Tom Rothamel ec92e51ab0 Fix error reporting regression. 2017-05-18 01:12:25 -04:00
Ria-kon d35092fcb9 typo in screen.rst 2017-05-18 02:53:33 +03:00
Tom Rothamel e57639c65a When unlocked_advance is true, proceed to the first unlocked number.
Fixes #1179.
2017-05-17 17:34:44 -04:00
Tom Rothamel 59b31d33da t7: Add Displayables section. 2017-05-17 01:23:21 -04:00
Tom Rothamel 8b37246ad3 tq: Move the questions in the_question into the menus. 2017-05-16 20:45:50 -04:00
Tom Rothamel cf89b2c143 Document the with clause to the call screen statement. 2017-05-16 20:36:00 -04:00
Tom Rothamel 186c644393 Add with clause to call screen statement. 2017-05-16 02:03:00 -04:00
Tom Rothamel 27666aa54c t7: Minor changes. 2017-05-15 23:20:12 -04:00
Tom Rothamel 3bc064c8ab t7: Add a section walking people how to create a new game. 2017-05-15 22:46:08 -04:00
Tom Rothamel 7e87589097 t7: Main menu work. 2017-05-14 14:10:06 -04:00
Tom Rothamel f218680a36 Update the player section of the quickstart. 2017-05-14 12:56:39 -04:00
Tom Rothamel 4932357ded t7: ATL tutorial. 2017-05-13 13:30:38 -04:00
Tom Rothamel 15f9da870c ATL: More directly implement polar motion.
The previous version did not work well when things moved back and forth.
2017-05-13 12:22:43 -04:00
Tom Rothamel 83bc8bc06b Remove duplicate example load. 2017-05-13 11:53:30 -04:00
Tom Rothamel 2a150ea069 ATL: Automatically enable polar motion when angle changes.
This is what creators (probably) expect, so it makes sense to
do it.
2017-05-13 11:51:30 -04:00
Tom Rothamel 0b352525d7 t7: Examples for transitions. 2017-05-13 01:57:28 -04:00
Tom Rothamel 6595e70d7f t7: Parse examples at init time.
This ensure each example only gets parsed once.
2017-05-13 01:34:15 -04:00
Tom Rothamel 89191baf6a Allow creator-defined statements to run a function at init time.
This is different from the statement itself being run at init
time, as before. This lets the statement run code at init time,
and then also run again later.
2017-05-13 01:19:26 -04:00
Tom Rothamel 16063049a9 t7: More transition examples. 2017-05-12 22:11:05 -04:00
Tom Rothamel bf3a454f88 t7: Add examples. 2017-05-12 10:05:42 -04:00
Tom Rothamel cb479c6316 Allow multi-part examples.
All examples with the same name are grouped together. This makes
it possible to split an example in two and not have to have an
explicit show example statement.
2017-05-12 09:56:09 -04:00
Tom Rothamel e974314094 t7: Update screens to use the new example system. 2017-05-12 01:55:02 -04:00
Tom Rothamel 4c3bb9d58c t7: Finish converting quickstart to use examples. 2017-05-11 18:47:01 -04:00
Tom Rothamel 93e89a1ade t7: Update dialogue section to use examples. 2017-05-10 09:59:44 -04:00
Tom Rothamel 6b17b9ed98 t7: Convert nvlmode to use the example system. 2017-05-10 09:50:46 -04:00
Tom Rothamel 0cf20f5c82 t7: Fix compat with show screen example, for now. 2017-05-10 01:23:16 -04:00
Tom Rothamel 2805a30614 t7: Move ATL to new examples. 2017-05-10 01:22:17 -04:00
Tom Rothamel fd6f66f3e1 t7: Add show example and hide example statements.
This also adds a number of new features, like being able to
show a smaller example, and easily show it at the bottom of
the screen.
2017-05-09 22:32:24 -04:00
Tom Rothamel 149197b169 Fix documentation typo. 2017-05-09 22:24:55 -04:00
Tom Rothamel 814a54167b Parse UserStatements on startup.
This lets the parse function serve to initialize data structures,
which can then run code at init-time.
2017-05-09 22:19:53 -04:00
Tom Rothamel 6fac36ac9b t7: Normalize examples before showing.
Removes excess space at the start and end of a block.
2017-05-09 01:07:27 -04:00
Tom Rothamel d9ff6f6651 t7: Implement the example statement. 2017-05-09 00:57:50 -04:00
Tom Rothamel 2390198773 Code to read an example out of an example statement. 2017-05-08 22:19:28 -04:00
Tom Rothamel fe86b1d711 Fix iterating through children of a UserStatement. 2017-05-08 22:04:26 -04:00
Tom Rothamel da48875876 Allow creator-defined statements to take a block of script. 2017-05-07 23:51:11 -04:00
Tom Rothamel 007754b5d2 t7: Discuss combined position properties. 2017-05-07 18:21:39 -04:00
Tom Rothamel 9d71d7e3ab t7: Split ATL from transform properties, part 1. 2017-05-07 15:08:42 -04:00
Tom Rothamel 53b191c5c9 t7: Mention different kind of screen statements. 2017-05-06 21:49:51 -04:00
Tom Rothamel 45a75b3e5b t7: Add offsets. 2017-05-06 21:42:29 -04:00
Tom Rothamel 1ed47c5b71 t7: Decide if Eileen is moved to the center. 2017-05-05 23:30:27 -04:00
Tom Rothamel 070278d27b t7: Allow copying example code to the clipboard. 2017-05-05 23:17:07 -04:00
Tom Rothamel 958c65b8c6 t7: NVL-mode tutorial. 2017-05-05 22:48:12 -04:00
Tom Rothamel f35032b393 t7: Let examples be placed at the bottom of the NVL-mode screen. 2017-05-05 22:43:35 -04:00
Tom Rothamel 676ca25b90 t7: Move the menu example into the general menus section. 2017-05-05 19:51:34 -04:00
Tom Rothamel 8eea55962c t7: Add the screens tutorial. 2017-05-04 22:53:47 -04:00
Tom Rothamel fc0f091c75 t7: Move tutorial screens between files, comment. 2017-05-04 22:25:18 -04:00
Tom Rothamel fe6c74aa33 t7: More words in screens tutorial. 2017-05-04 00:32:07 -04:00
Tom Rothamel 56ba867caa t7: Add imagemaps to the screens tutorial. 2017-05-03 22:39:39 -04:00
Tom Rothamel 105c56b46d t7: Start work on a screens tutorial. 2017-05-03 00:29:45 -04:00
Tom Rothamel 11d2e94f3e t7: Redo the stats page. 2017-05-02 22:01:41 -04:00
Tom Rothamel 2038625c78 t7: Minor UI improvements. 2017-05-02 21:39:00 -04:00
Tom Rothamel c4aa92e815 t7: Revise ui viewports. 2017-05-01 22:54:23 -04:00
Tom Rothamel f49e69b3d5 t7: Update ui imagemaps. 2017-05-01 22:13:48 -04:00
Tom Rothamel 1d13ab8f84 Merge pull request #1176 from vollschauer/master
Update movie.rst
2017-05-01 18:10:25 -04:00
Tom Rothamel 31a9c2d86d Fix doc mistake. 2017-05-01 17:53:45 -04:00
vollschauer d2d9f1e64e Update movie.rst
fix typo
2017-05-01 12:42:25 +02:00
Tom Rothamel 5f3e8d37c4 t7: Layers. 2017-05-01 01:01:26 -04:00
Tom Rothamel 8606a59b0b Allow MultiBox to clip.
Fixes a problem with the "Layers and Advanced Show" section of the tutorial.
2017-05-01 01:00:47 -04:00
Tom Rothamel 3776f8a5a7 Remove duplication of gui.show_name. 2017-04-30 22:03:43 -04:00
Tom Rothamel 8f5d8fa102 t7: Finish updating the minigame section of the tutorial. 2017-04-29 13:17:08 -04:00
Tom Rothamel b23de4e843 t7: Move to using a screen to show the minigame. 2017-04-29 13:02:42 -04:00
Tom Rothamel 1e2e82492e t7: Resize and rewrite the pong minigame. 2017-04-29 12:50:18 -04:00
Tom Rothamel cba59de5e8 Update indonesian translation, thanks to Pratomo Asta Nugraha. 2017-04-29 00:21:33 -04:00
Tom Rothamel d1e2241562 t7: Include image used by text. 2017-04-28 23:59:48 -04:00
Tom Rothamel 8236eef4e8 t7: Update imageops. 2017-04-28 22:45:00 -04:00
Tom Rothamel 88b75a71f7 t7: Tweak kerning. 2017-04-27 22:50:22 -04:00
Tom Rothamel 064566a827 t7: Main and game menus. 2017-04-27 22:41:52 -04:00
Tom Rothamel 607ecc7d27 t7: Language fixes. 2017-04-27 22:07:58 -04:00
Tom Rothamel e089e1b599 t7: Transitions. 2017-04-27 22:02:33 -04:00
Tom Rothamel 4203210617 t7: Update the tutorial video script. 2017-04-27 18:08:36 -04:00
Tom Rothamel 9028f8100b t7: New video. 2017-04-27 02:23:25 -04:00
Tom Rothamel 9bbfefa633 t7: ATL. 2017-04-26 22:35:37 -04:00
Tom Rothamel f46460bdd2 t7: Add magic circle. 2017-04-26 01:34:25 -04:00
Tom Rothamel f6d22979fe Merge pull request #1168 from Alexandre-T/master
French translation
2017-04-25 22:46:20 -04:00
Tom Rothamel 718bfadc9b Merge pull request #1169 from mbrickn/patch-2
Updated links to use https
2017-04-25 22:45:25 -04:00
Tom Rothamel f770b0f549 parser: Massive speedup in list_logical_lines. 2017-04-25 16:48:19 -04:00
Tom Rothamel c303a9d5a4 parser: Use .join to avoid constantly creating new strings. 2017-04-25 01:19:23 -04:00
Tom Rothamel d6e441d12e parser: Replace the word regexp with a function. 2017-04-25 00:36:12 -04:00
Tom Rothamel da7d80ecd8 Reset the infinite loop timer on each init/python early block.
This should prevent the infinite loop warning unless the init phase
is not making any progress at all.
2017-04-24 18:22:10 -04:00
Tom Rothamel c500dea338 t7: Update the ATL concert scene. 2017-04-23 20:29:27 -04:00
Tom Rothamel 7f3fa272a1 Check in various missing files. 2017-04-23 20:28:57 -04:00
Maxwell Paul Brickner 31a7cfd22f Updated links to use https
Hi! I just changed a link to use https to avoid an automatic redirect. ^ _ ^
2017-04-23 16:32:25 -04:00
Tom Rothamel 823c69d276 t7: Update screen positions. 2017-04-22 21:31:44 -04:00
Tom Rothamel 9920512a81 t7: Update the playing section of the tutorial. 2017-04-22 20:38:30 -04:00
Alexandre Tranchant 4e3803e7f2 French translation 2017-04-22 15:06:07 +02:00
Tom Rothamel bb2136dec2 t7: Examples improvements.
* Put a blank line after each example.
* Strip blank lines at the end of the examples.
2017-04-21 16:58:31 -04:00
Tom Rothamel d620ef0c1e t7: Finalize Writing Dialogue and Adding Images. 2017-04-21 16:57:17 -04:00
Tom Rothamel cc40b62f2a Add logo images. 2017-04-21 16:23:52 -04:00
Tom Rothamel 7cbc8bcbaf t7: Start rewriting images section. 2017-04-21 00:24:51 -04:00
Tom Rothamel 10ac1367a8 t7: Fix multiple examples. 2017-04-21 00:15:10 -04:00
Tom Rothamel 97e718f610 t7: Upscale images used by the quickstart. 2017-04-20 22:39:53 -04:00
Tom Rothamel 6fd158b40e t7: Screen-based examples. 2017-04-20 00:48:08 -04:00
Tom Rothamel fe6c884c42 t7: Use screens for examples. 2017-04-19 23:24:04 -04:00
Tom Rothamel 3992f29583 t7: Initial rework of the example display code. 2017-04-18 22:27:11 -04:00
Tom Rothamel 5ec6b9a67f t7: Redo the example choice screen. 2017-04-18 22:21:29 -04:00
Tom Rothamel bd20345c95 t7: Customize the frame image so it can be used in-game. 2017-04-18 20:54:44 -04:00
Tom Rothamel 209fcb4555 t7: Scale backgrounds to 720p. 2017-04-17 22:43:52 -04:00
Tom Rothamel e7796d4143 Fix printing of strings with % in them. 2017-04-17 22:15:19 -04:00
Tom Rothamel f6bd8398e6 Copy tutorial .rpy files into place. 2017-04-17 22:09:29 -04:00
Tom Rothamel fb890b8c19 Background images. 2017-04-16 23:52:15 -04:00
Tom Rothamel 28f6374e56 Ren'Py 7 version of the tutorial game. 2017-04-16 21:33:29 -04:00
Tom Rothamel a280350bc3 Retranslate static text when the language changes.
Fixes #1159.
2017-04-16 00:15:36 -04:00
Tom Rothamel 40b38e4fc0 Pop dynamic data from non-root contexts while saving.
Fixes #1160.

The problem here is that renpy.retain_after_load will prevent the
rollback that usually occurs on loading - and that rollback was
responsible for getting rid of all of the dynamic data that
is used in the menu context. This code pops the dynamic data
in a more explicit way.
2017-04-15 22:50:39 -04:00
Tom Rothamel d1b82e9944 Add a caution about moving renpy.app. 2017-04-13 23:55:27 -04:00
Tom Rothamel b466e05e04 Default build.script_version to true.
Fixes #1164.
2017-04-13 21:47:42 -04:00
Tom Rothamel 78257229f1 doc: Remove uses of the word "Code" from functions. 2017-04-12 10:17:48 -04:00
Tom Rothamel 049c683002 doc: Remove "Code" from .rst files. 2017-04-12 08:38:59 -04:00
Tom Rothamel 76e729313d doc: Remove use of the word code. 2017-04-12 08:26:44 -04:00
Tom Rothamel 2945227dfe doc typo: creat->create
Clearly mixed up the English word and the UNIX syscall.

Fixes #1163.
2017-04-11 08:13:23 -04:00
Tom Rothamel 552fff58ab doc: Remove code up to store_variables.rst. 2017-04-10 19:57:26 -04:00
Tom Rothamel 29aaf9b367 doc: Remove the word code up to displaying_images.rst. 2017-04-10 07:41:01 -04:00
Tom Rothamel be4a609080 Move the projects.json file over to the new The Question. 2017-04-09 16:47:40 -04:00
Tom Rothamel cdf0451660 Rename the_question. 2017-04-09 15:47:03 -04:00
Tom Rothamel 357ca8bfe0 doc: Generate the script of The Question. 2017-04-09 15:44:21 -04:00
Tom Rothamel 31a356c6a1 doc quickstart: Releasing, Conclusion section.
Done! At least with the first draft.
2017-04-09 12:32:14 -04:00
Tom Rothamel 7d818ef673 Merge pull request #1162 from mbrickn/patch-1
Updated urls linking to renpy.org to use https
2017-04-09 12:05:44 -04:00
Tom Rothamel 398c0aa818 doc quickstart: Supporting Flags using the Default, Python and If Statements 2017-04-09 01:34:16 -04:00
Maxwell Paul Brickner f0fbd5e663 Updated urls linking to renpy.org to use https
Minor change. I just changed URLs to the Renpy website to use https instead of http.

This will make users go directly to the webpages linked, instead of automatically being redirected to the https version by the website. Should be (very slightly) better for user experience! 😊
2017-04-08 17:32:54 -04:00
Tom Rothamel 9239371f7c doc quickstart: Menus, Labels, and Jumps. 2017-04-08 12:15:43 -04:00
Tom Rothamel 8486dc98b9 Ensure _menu and main_menu are always initialized. 2017-04-08 10:46:25 -04:00
Tom Rothamel 2584c8719d Protect access to _menu. 2017-04-08 10:45:14 -04:00
Tom Rothamel b36bfebadf console: Group together consecutive lines of stdout/stderr output. 2017-04-07 22:13:28 -04:00
Tom Rothamel 363175a3b9 console: Initial support for printing stdout/stderr. 2017-04-07 22:02:40 -04:00
Tom Rothamel 3b8b46ea38 console: Support redirection of stdout and stderr. 2017-04-07 21:13:12 -04:00
Tom Rothamel 4e1ec11c20 tq: Add icons. 2017-04-07 20:30:54 -04:00
Tom Rothamel 6b0be391f8 Audit the use of identity and equality in data actions.
All the values are now compared using equality, for efficency
reasons.
2017-04-06 22:17:46 -04:00
Tom Rothamel e33ca662b6 Fix problem with SetField.
The problems was that the field name was not considered when
looking at action equality - so the object could be reused if
only the field changes. (This broke the DSE.)
2017-04-06 22:12:00 -04:00
Tom Rothamel f0f1a0a65f doc: Quickstart, Pause. 2017-04-05 23:45:47 -04:00
Tom Rothamel f89f4ad580 doc: Quickstart, Music and Sound. 2017-04-05 23:42:46 -04:00
Tom Rothamel ced23560d7 Eventually give up if we can't rename persistent into place.
This prevents the game from crashing, at least - in this case,
silent data loss is slightly preferable to a total crash.
2017-04-05 22:27:38 -04:00
Tom Rothamel c9e4c2fcfd doc: Quickstart, transitions and positions sections. 2017-04-04 21:39:31 -04:00
Tom Rothamel d2e49a37d4 doc: Update the images section of the quickstart. 2017-04-04 21:20:10 -04:00
Tom Rothamel a4730bb32e savelocation: Disambiguate tmp files.
This is meant to ensure two processes can write to a single
persistent file without interfering with each other.
2017-04-04 09:32:53 -04:00
Tom Rothamel e337c9c6a6 Ignore missing screens when topologically sorting screens.
When this isn't done, screens that depend on a missing screen are
not included in the topological sort, which makes diagnosing
the missing screen problem much harder.
2017-04-03 23:13:09 -04:00
Tom Rothamel cffb7d990b Fix typo. 2017-04-03 22:42:49 -04:00
Tom Rothamel 611cc04271 Add renpy.get_skipping().
A function that determines if Ren'Py is currently skipping. Since
config.skipping is way too ugly for documentation.

Per discussion in #1158.
2017-04-03 21:57:33 -04:00
Tom Rothamel 81353d52c5 doc: More quickstart images writing. 2017-04-03 00:46:50 -04:00
Tom Rothamel 2328d8f932 doc: Quickstart images section, first half. 2017-04-02 09:19:47 -04:00
Tom Rothamel f1ef42a39e doc: Quickstart character section. 2017-04-01 14:54:28 -04:00
Tom Rothamel 86b501e722 doc: Fix spelling. 2017-04-01 14:35:36 -04:00
Tom Rothamel 647911a2d2 doc: Continue updating quickstart. 2017-04-01 11:11:19 -04:00
Tom Rothamel 7d3b46a361 Update launcher section of quickstart, add some images. 2017-03-31 21:31:23 -04:00
Tom Rothamel 3a9d915355 Add alt_ keybindings to a number of keymap items.
In conjunction with the last commit, this makes it possible to do things
like take screenshots, access the console, and access the developer menu
from screens where an input is present.
2017-03-30 09:32:02 -04:00
Tom Rothamel 396e0dc217 input: Ignore events when alt is held down.
This makes it possible for alt_prefixed events to be passed to
other key handlers.
2017-03-30 09:25:09 -04:00
Tom Rothamel 69f454b118 Select the tutorial language based on the launcher language. 2017-03-30 02:03:59 -04:00
Tom Rothamel e292beef29 Fix filter. 2017-03-29 23:03:42 -04:00
Tom Rothamel 291f1d937b Add a way of filtering the projects.
This will help with documentation.
2017-03-29 22:32:08 -04:00
Tom Rothamel 341dd9c181 doc: Update the launcher section. 2017-03-28 23:42:07 -04:00
Tom Rothamel 955b82da4f Merge pull request #1156 from Ria-kon/master
Updating russian tl for new version
2017-03-28 08:36:03 -04:00
Ria-kon 3298d6cdbd Updating russian tl for new version
Adding legacy options…
2017-03-27 17:34:21 +03:00
Tom Rothamel 32695af4bb launcher: Hide old vs new gui behind persistent.legacy. 2017-03-27 09:38:54 -04:00
Tom Rothamel 83a0c6aeff Launcher: Add a legacy options checkbox.
This will be used to hide the old themes stuff, and could be
used for other things in the future.
2017-03-27 09:31:22 -04:00
Tom Rothamel 945e42be56 tq: Fix spacing. 2017-03-27 09:12:01 -04:00
Tom Rothamel 1c71428027 tq: Use default. 2017-03-26 23:10:15 -04:00
Tom Rothamel 5029d0d2aa tq: Updated art from Mugenjohncel. 2017-03-26 20:31:48 -04:00
Tom Rothamel 0f3f2503af Add config.hyperlink_inherit_size.
Previously, hyperlinks would inherit their size from the style,
which means that we needed different hyperlink styling functions
for each style. Now they inherit size from the enclosing text,
which should make the size correct in more circumstances.
2017-03-25 22:56:58 -04:00
Tom Rothamel af2bc79d04 tq: About screen. 2017-03-25 22:43:16 -04:00
Tom Rothamel c778238d46 Adjust screen colors. 2017-03-24 23:20:39 -04:00
Tom Rothamel 309d7c1efc tq: Main menu images. 2017-03-24 22:38:05 -04:00
Tom Rothamel 87249fce62 Execute the default statement before setting up replay scope. 2017-03-24 00:58:46 -04:00
Tom Rothamel c0081415c7 tq: Respace. 2017-03-23 22:49:45 -04:00
Tom Rothamel fa38d0df16 Ogg to opus. 2017-03-23 22:41:24 -04:00
Tom Rothamel 99d51b7d01 tq: Update image file names. 2017-03-23 08:52:13 -04:00
Tom Rothamel 6f19a8ae15 tq: Quick fixes to make playable. 2017-03-22 18:53:47 -04:00
Tom Rothamel 1c75bb1719 tq: Clean copy of the new script. 2017-03-22 18:37:28 -04:00
Tom Rothamel 21b1186212 More GUI tests. 2017-03-21 22:36:54 -04:00
Tom Rothamel 1dec0e8151 Include slot name in FileLoad()/FileSave() action alts. 2017-03-21 00:00:47 -04:00
Tom Rothamel af71b5cdbb tq: Change version. 2017-03-19 22:13:41 -04:00
Tom Rothamel 88c5159b45 Add the opus file. 2017-03-19 21:22:13 -04:00
Tom Rothamel e86dddf384 Merge pull request #1153 from xavi-mat/master
Minor update Italian translation
2017-03-18 16:37:44 -04:00
xavi-mat 9a232a54ee Minor update Italian translation
Some accents missing.
2017-03-18 11:31:05 +01:00
Tom Rothamel b1bcc92fe3 tq: Credits. 2017-03-18 00:38:30 -04:00
Tom Rothamel 218426be47 Add mugenjohncel's backgrounds. 2017-03-17 23:35:43 -04:00
Tom Rothamel 267dd68323 Produce the proper error message for list * (non-int).
Not sure why this is necessary, but it seems to be.
🤷
2017-03-17 00:27:45 -04:00
Tom Rothamel 16fe766a36 Slightly less complex version of previous merge. 2017-03-17 00:11:28 -04:00
Tom Rothamel ecafc29a99 Merge pull request #1151 from vollschauer/master
Add selected option to PlayCharacterVoice()
2017-03-16 22:31:15 -04:00
Tom Rothamel a6568caaa4 Add sylvie images. 2017-03-15 23:53:40 -04:00
Tom Rothamel 5987e7795d Merge pull request #1152 from Ria-kon/master
Readme.html to russian translation
2017-03-15 18:19:29 -04:00
Tom Rothamel 9779e51c92 Bump version. 2017-03-14 22:22:35 -04:00
Tom Rothamel 1c8d4f0906 Allow Ren'Py to load into the middle of a non-timed pause. 2017-03-14 22:17:07 -04:00
Ria-kon 73b3112ce6 Add README.HTML
I don't know… why am i done this…
2017-03-14 20:59:33 +02:00
Tom Rothamel 8864d3c612 Tweak options. 2017-03-14 00:18:54 -04:00
Tom Rothamel 4b221b0134 Start work on The Question update. 2017-03-13 23:42:17 -04:00
vollschauer 773e00bd75 Add selected option to PlayCharacterVoice() 2017-03-11 19:10:40 +01:00
Tom Rothamel e60f170f7f More gui testcases. 2017-02-28 16:59:47 -05:00
Tom Rothamel 658527c70e Fix crash if target is None. 2017-02-28 10:47:53 -05:00
Renoa 53dcedf4e3 Update options.rpy 2017-02-27 17:23:12 +03:00
Renoa 5093e10843 Update script.rpym 2017-02-27 17:03:27 +03:00
Renoa 9eac3e6df3 Update error.rpy 2017-02-27 17:01:28 +03:00
Renoa 51813c9839 Update error.rpy 2017-02-27 16:52:28 +03:00
Renoa 315ab0552b Update error.rpy 2017-02-27 16:51:18 +03:00
Tom Rothamel c3916309d1 Update changelog. 2017-02-27 02:03:49 -05:00
Tom Rothamel 0169cda030 Normalize all translations. 2017-02-27 00:39:37 -05:00
Tom Rothamel 85cc07cd59 Update the Indonesian translation. 2017-02-27 00:39:05 -05:00
Tom Rothamel ae3f2f1e28 Remove subsurface optimization code.
It was fundamentally broken, since subsurface optimization needs
to be done in screen space and not in subsurface.

Fixes #1146.
2017-02-27 00:13:49 -05:00
Tom Rothamel 784c0ea64e Actually peform non-axis-aligned clipping. 2017-02-26 12:47:38 -05:00
Tom Rothamel 6e33f31c2e Merge pull request #1145 from Ria-kon/master
Polishing russian for 6.99.12.4
2017-02-26 10:53:22 -05:00
Renoa 161e70571a Merge pull request #1 from renpy/master
update to recent version 2017 (6.99)
2017-02-26 16:00:06 +03:00
Ria-kon 670c8fd90d Polishing russian for 6.99.12.4
Script.rpym updated. 
1 sting updated.
2017-02-26 12:33:53 +02:00
Tom Rothamel 6713149432 Complete changelog entry.
Fixes #1144.
2017-02-25 19:21:30 -05:00
Tom Rothamel 3074fe348c Check in updated changelog. 2017-02-25 15:05:09 -05:00
Tom Rothamel 7de3afb6f9 Merge pull request #1143 from renoa/patch-22
Arabic translation for 6.99 launcher.rpy
2017-02-25 14:58:41 -05:00
Tom Rothamel da0996073a Merge pull request #1142 from renoa/patch-18
Arabic translation for 6.99 common.rpy
2017-02-25 14:58:15 -05:00
Tom Rothamel 1c65ddf5fb Merge pull request #1141 from renoa/patch-19
Arabic Translation for 6.99 developer.rpy
2017-02-25 14:58:08 -05:00
Tom Rothamel c3d9f1be66 Merge pull request #1140 from renoa/patch-24
Arabic translation for 6.99 gui.rpy
2017-02-25 14:58:00 -05:00
Renoa a24f5a1669 Update gui.rpy 2017-02-25 12:58:51 +03:00
Renoa 4ef172e640 6.99 update 2017-02-25 11:12:02 +03:00
Renoa 6989a3f311 6.88 2017-02-25 10:19:15 +03:00
Renoa 5f108daab9 6.99 update 2017-02-25 10:16:38 +03:00
Tom Rothamel 0779d7df0e Update changelog. 2017-02-24 22:36:31 -05:00
Tom Rothamel bcf623772e Unconditionally remove hide and replace on rollback or load.
Fixes #1139.
2017-02-24 02:25:44 -05:00
Tom Rothamel aaf47536f9 Merge pull request #1130 from vollschauer/master
Update keymap documentation...
2017-02-23 21:31:15 -05:00
Tom Rothamel 42a8f0dd36 Merge pull request #1134 from Ria-kon/master
Optimization of russian translation
2017-02-23 21:30:37 -05:00
Tom Rothamel 2606ebd93c Add config.self_voicing_stops_afm. 2017-02-22 22:30:20 -05:00
Tom Rothamel 64ed92931f Disable AFM when self-voicing is enabled.
AFM can cause self-voicing to end before it's finished, so it's
best to just shut it down.
2017-02-22 22:26:55 -05:00
Tom Rothamel c20231694b console: rstrip exceptions. 2017-02-22 00:18:35 -05:00
Tom Rothamel 54eb856c8e console: Persist the list of watched expressions. 2017-02-22 00:15:59 -05:00
Tom Rothamel 8e22f31047 console: Store and restore the history.
Per #1126.
2017-02-21 23:34:42 -05:00
Tom Rothamel acfcc27376 Fix the input screen. 2017-02-21 21:00:27 -05:00
Tom Rothamel 3c6d6bc7ad Allow the steam overlay to tell us when to draw the screen. 2017-02-20 21:48:36 -05:00
Tom Rothamel 8ae819aa6b Expose BOverlayNeedsPresent and GetSteamUILanguage. 2017-02-20 21:38:31 -05:00
Ria-kon 3ce21232c4 at last 2017-02-20 13:47:15 +02:00
Ria-kon f640468314 Optimized screens returns 2017-02-20 13:43:00 +02:00
Ria-kon c71c1d0e52 New console updated
-1 line of old translation deleted
+2 new lines translated
+2 lines updated
2017-02-20 13:41:05 +02:00
Tom Rothamel 0c1ee425db Fix version. 2017-02-20 01:28:53 -05:00
Tom Rothamel 9e6802c6e3 Merge branch 'maintenance/6.99.12' 2017-02-20 01:25:35 -05:00
Tom Rothamel fa32e18ddc Apply style_prefix to a viewport's scrollbars. 2017-02-20 01:15:47 -05:00
Tom Rothamel ee2d283c45 Support style inheritance when the style begins with _.
(So that _console_side inherits from _side, for example.)
2017-02-20 00:59:40 -05:00
Tom Rothamel bdfaf53798 console: Display a solid backdrop when can_renpy is false. 2017-02-19 23:58:48 -05:00
Tom Rothamel 909b0cf8e8 console: Redesign. 2017-02-19 23:54:29 -05:00
Tom Rothamel 22108c0072 Support entering the console from the exception handling screen.
Per #1126.
2017-02-19 23:22:21 -05:00
Tom Rothamel 79d251a081 Bump version. 2017-02-19 22:58:53 -05:00
Tom Rothamel 69c241b2e4 Shrink the names of some error screen buttons.
"Open Traceback" -> "Open"
"Copy to Clipboard" -> "Copy"

This adds room for a console button.
2017-02-19 21:52:28 -05:00
Ria-kon 0f1624378c Screens.rpy systemized
Well, -5 bytes =D
2017-02-20 01:51:08 +02:00
Tom Rothamel 5edce5b960 Merge branch 'maintenance/6.99.12' 2017-02-19 12:24:28 -05:00
Tom Rothamel d23d6564a1 Update docs and changelog. 2017-02-19 12:23:56 -05:00
Tom Rothamel 61d2f70d07 audio: Fadeouts now span looping audio by default.
Previously, a fadeout would come to a stop at the end of an audio
track.
2017-02-19 12:03:55 -05:00
Tom Rothamel 0a4eba1810 doc: Fix typo. 2017-02-18 21:33:37 -05:00
Tom Rothamel a50c09610c Document how config.default_afm_enable affects AFM in old games.
Also, update The Question to make use of this.
2017-02-18 21:31:24 -05:00
Tom Rothamel 8e309204f3 Require the presence of _renpybidi for Ren'Py to start.
We've been able to compile it everywhere, so there's no need for
RTL language users to be second-class.
2017-02-18 12:20:25 -05:00
Tom Rothamel f591f137e8 Mention that OpenType is supported. 2017-02-18 12:17:18 -05:00
Tom Rothamel fba7d0549e Only enable the fix on android/arm.
Well, more or less. The fix is only relevant on ARM and android,
and the functions aren't available on mac or windows, so we turn
them off there.
2017-02-18 12:17:09 -05:00
Tom Rothamel 426b68c2eb Align video to 16 byte boundaries.
This fixes #1131, which was a crash on video playback on Android/ARM,
where NEON code can SIGBUS if it it isn't run on an image aligned to
a 16 byte boundary.

(This isn't a problem on iOS, where everything is 16-byte aligned
anyway.)
2017-02-18 12:17:01 -05:00
Ria-kon 9d049b6a21 Commentaries update
1 line translation updated (that was hard)
Now only screens.rpy needed to update with new #, but i do not really want to do this.
2017-02-14 22:09:27 +02:00
Ria-kon 445141dc9b Renovating translation
Especially:
1 more unusing translation deleted
1 more missing translation added to gamepad faq
2017-02-14 20:53:41 +02:00
Ria-kon 55632a1dd1 Delete obsolete.rpy
Systematization of russian translation
2017-02-14 20:50:21 +02:00
Tom Rothamel 47d353c275 Mention that OpenType is supported. 2017-02-13 21:59:09 -05:00
Tom Rothamel bf7c75a739 Only enable the fix on android/arm.
Well, more or less. The fix is only relevant on ARM and android,
and the functions aren't available on mac or windows, so we turn
them off there.
2017-02-13 21:52:21 -05:00
Tom Rothamel 3125526471 Align video to 16 byte boundaries.
This fixes #1131, which was a crash on video playback on Android/ARM,
where NEON code can SIGBUS if it it isn't run on an image aligned to
a 16 byte boundary.

(This isn't a problem on iOS, where everything is 16-byte aligned
anyway.)
2017-02-13 21:36:50 -05:00
vollschauer bf7f88a399 Update 00barvalues.rpy 2017-02-13 09:42:29 +01:00
vollschauer 05505bb524 Update keymap.rst 2017-02-13 09:12:39 +01:00
vollschauer fa26e9dadb Update keymap.rst 2017-02-13 09:09:53 +01:00
Tom Rothamel ab8ce7cb21 Merge branch 'maintenance/6.99.12' 2017-02-12 20:50:25 -05:00
Tom Rothamel d87ffaf88b Document changes to where we search for fonts. 2017-02-12 20:08:32 -05:00
Tom Rothamel 148787f154 Do not search for system fonts while in developer mode.
The idea here is that it's better to error out on the developer's
machine, rather than the player's.
2017-02-12 13:11:45 -05:00
Tom Rothamel 2725d77577 Re-bump version. 2017-02-10 23:06:58 -05:00
Tom Rothamel 71f2d9b3bd Do not update voice information when in the menu context.
This should fix a number of issues that could happen when mixing
voice and menus. Fixes #1127.
2017-02-10 22:53:50 -05:00
Tom Rothamel 1f15a43bd2 Revert "Bump version."
This reverts commit 240b0071b9.
2017-02-09 18:10:09 -05:00
Tom Rothamel 0e289fa3a8 Merge branch 'master' of https://github.com/nyaatrap/renpy into maintenance/6.99.12 2017-02-09 17:44:19 -05:00
Tom Rothamel 95b5b2ac38 Merge branch 'master' of https://github.com/Ria-kon/renpy into maintenance/6.99.12 2017-02-09 17:43:53 -05:00
Ria-kon 7a35d8e1e6 Little improvements to russian translation 2017-02-09 20:47:33 +02:00
nyaatraps 8e2756abcc Update Japanese for 6.99.12.3 2017-02-09 19:01:08 +09:00
Tom Rothamel 8ddc85c9ee Update and fix docs. 2017-02-09 01:53:07 -05:00
Tom Rothamel 7720ceb420 Update docs. 2017-02-08 23:57:26 -05:00
Tom Rothamel b33e9d95b7 gui: Expose all text properties via gui variables. 2017-02-08 23:17:25 -05:00
Tom Rothamel 14f2632c19 Fix documentation. 2017-02-08 22:55:00 -05:00
Tom Rothamel 604c112ba5 Remove u prefix from font name strings when generating a new game. 2017-02-08 22:48:57 -05:00
Tom Rothamel 4e5ec5d529 Change font define names to their new names. 2017-02-08 22:44:57 -05:00
Tom Rothamel 240b0071b9 Bump version. 2017-02-07 23:04:56 -05:00
Tom Rothamel a1c58fa601 Fix the dmg-building command. 2017-02-06 19:45:55 -05:00
Tom Rothamel 89ec650907 Refresh adjustement dependencies when viewport height or width changes.
Fixes #1116, the last part.
2017-02-06 01:45:04 -05:00
Tom Rothamel 834fe89a88 New functions to access image attributes.
These functions check to see if a special method is defined on
a tag image. If that's the case, we use the special methods
rather than the standard way of listing attributes.
2017-02-05 01:57:32 -05:00
Tom Rothamel 862e6c3b4d Document where Function and Return action values go.
Fixes #1123.
2017-02-04 21:31:27 -05:00
Tom Rothamel de5035bd01 Condition last change on renpy.config.developer. 2017-02-03 18:04:45 -05:00
Tom Rothamel bd95c0991d Error out if someone tries to render a displayable early.
Early being before Ren'Py has finished starting.
2017-02-03 18:03:42 -05:00
Tom Rothamel 8dfb6b36df Update changelog. 2017-02-02 01:05:06 -05:00
Tom Rothamel 8855950203 Round the physical size when creating a window.
This helps deal with imprecise DPI calculations.
2017-02-01 21:15:40 -05:00
Tom Rothamel 858b966a91 doc: GUI Changes. 2017-02-01 02:20:30 -05:00
Tom Rothamel 0efe4e731d Change the default encoding of python to the fsencoding.
This is - loosely - to improve compatibility with Python 3 and
the changes introduced in 6.99.12. In Python 3, all strings
entering from the OS will be unicode - and hence, unicode can
be the filesystem encoding.

Before this change, strings from the OS were considered ASCII,
and hence would fail when concatenated to the unicode. Now they're
considered to be in the filesystem encoding, which Ren'Py already
handles properly.

This should work since all the strings in Ren'Py should be in either
unicode, utf-8 (converted explicity to or from unicode), the
filesystem encoding, ASCII (in all relevant codecs, compatible with
the filesystem encoding), or some binary format that's not converted
to unicode.
2017-01-31 22:33:54 -05:00
Tom Rothamel a6b53850c6 Decode the path to sys.executable in the launcher.
This is intended as a fix to #1120.
2017-01-30 22:47:11 -05:00
Tom Rothamel 36bd1e57d2 Fix encoding of the backup directory. 2017-01-30 22:36:32 -05:00
Tom Rothamel 141b8fcfc4 Merge pull request #1121 from xavi-mat/master
Update Italian translation (complete!)
2017-01-29 18:08:28 -05:00
xavi-mat cfc0f32693 Update Italian translation
Complete Italian translation of launcher and GUI
All credits to Lemmasoft Forum member gas
2017-01-28 19:59:58 +01:00
Tom Rothamel d6de72960e UTF-8 encode the game name and version in an error. 2017-01-26 01:27:44 -05:00
Tom Rothamel 0b79af4c23 unique: Finish marking displayables created by _duplicate as unique. 2017-01-25 18:13:27 -05:00
Tom Rothamel 461344d761 unique: Add _unique in files up to layout.py 2017-01-25 01:22:13 -05:00
Tom Rothamel ed8916cd59 unique: Document _unique and _duplicate. 2017-01-25 01:21:49 -05:00
Tom Rothamel 7c86dd5725 Mark newly-created displayables as unique. 2017-01-24 23:38:31 -05:00
Tom Rothamel 9fe019d10e Mark transforms as unique when used in screens.
This prevents unnecessary duplicaion, increasing performance.
2017-01-24 01:49:22 -05:00
Tom Rothamel 30fdd4001f Avoid excess duplication.
It's less needed in ATL (already duplicated) and SL (new displayables).
2017-01-24 01:22:57 -05:00
Tom Rothamel 1850aa6fed Deal with duplicated children in SL transforms.
The problem here is that we could cache the transform but duplicate
the child, and then updat the non-duplicated child. This fixes that.

Fixes #1116.
2017-01-23 00:01:14 -05:00
Tom Rothamel 4cafe19995 Add config.profile_screens with a list of screens to profile. 2017-01-22 23:28:39 -05:00
Tom Rothamel b8d238d9e9 gui docs: Document all of the new text related gui variables. 2017-01-22 01:24:33 -05:00
Tom Rothamel d0446bfcde Minor changes to image location picker. 2017-01-21 12:15:53 -05:00
Tom Rothamel 088411b7d5 Rename various new gui variables. 2017-01-21 02:09:52 -05:00
Tom Rothamel 829eb28c9d Rename some variabls so they don't conflict with text properties. 2017-01-20 23:02:36 -05:00
Tom Rothamel c9963bca41 Fix translation documentation. 2017-01-20 01:00:58 -05:00
Tom Rothamel e7480a53ca Document variable renamings. 2017-01-20 00:59:32 -05:00
Tom Rothamel 3356b20083 Always run config.replace_text when set.
Fixes #1114. Thanks to Doctus for a perfect diagnosis.
2017-01-19 21:55:58 -05:00
Tom Rothamel 967d4e7dee Remove gui aliases.
They shouldn't be necessary, since gui.rpy and screens.rpy should
be updated in lockstep.
2017-01-18 17:59:38 -05:00
Tom Rothamel 954d5a4c9e Improve gui.text_properties.
It's grown a number of features so that more text can be defined
using it.

* It looks at name_text_color, and uses that to set color.
* If accent is true, and color is not set, the color is set to the
  accent color.
* An alias system is in place to deal with variables that changed name.
2017-01-18 17:53:05 -05:00
Tom Rothamel 105c890ec3 gui: Update to use gui.text_properties. 2017-01-18 17:52:20 -05:00
Tom Rothamel f7a64793c3 Start moving over to text_properties. 2017-01-18 00:41:35 -05:00
Tom Rothamel ef5ee16036 Support gui.button_text_outlines and similar variables.
These set the outlines property on button text, which is something
I can see certain games wanting.
2017-01-17 19:06:12 -05:00
Tom Rothamel 9247176f1d Merge pull request #1108 from vollschauer/master
toggle_afm
2017-01-17 00:48:09 -05:00
Tom Rothamel 58e6c0a92c Bump version to 6.99.12.3. 2017-01-16 21:07:06 -05:00
Tom Rothamel 92ee50fa12 Merge pull request #1111 from Ria-kon/master
Russian translation by Project Gardares
2017-01-15 22:27:02 -05:00
Tom Rothamel db7fbbd13d Deal better with subsurfacing axis-aligned non-1:1 renders.
This is a case that actually comes up a lot, basically whenever
text was scaled. Previously, we would blit to a smaller render.
Now we transform the clipping, and subsurface using that. This
is both faster, and also fixes clipping of text when it's not
actually needed.

Fixes #1113.
2017-01-15 22:02:30 -05:00
Ria-kon 549966c69c Update 4. Ready to merge. 2017-01-16 04:46:33 +02:00
Ria-kon 8c395e97c6 Old templates grammar update 2017-01-16 04:15:34 +02:00
Ria-kon a9ca026a51 Tutorial grammar update. 2017-01-16 04:15:17 +02:00
Ria-kon 1ec342a842 Solving out-of-frame at Traceback error 2017-01-15 08:17:22 +02:00
Ria-kon 6824c09055 Grammatical recheck for update 3.
Now can only be some out-of-frames...
2017-01-15 04:46:48 +02:00
Tom Rothamel 6ff9ef375d Add build.script_version.
This is used interally (mostly by the id) to prevent the game from
going into developer mode when distributed.
2017-01-14 17:04:49 -05:00
Ria-kon 9a9cead5a2 Update 3. You can merge or you can test.
Translation of project files polished, now can only test launcher.rpy, but, well, you can merge if 6.99.12.3 tommorow =D
2017-01-14 21:18:19 +02:00
Ria-kon 4223bcde61 No degress for autosaves 2017-01-14 21:08:11 +02:00
Ria-kon 8093ada914 BLACK RIGHT-POINTING SMALL TRIANGLE
String commented (for translation)
2017-01-14 21:00:12 +02:00
Ria-kon 84e238beeb Tutorial update 2017-01-14 09:17:11 +02:00
Ria-kon 803cecc0d7 Update 2. Rusificate the New
New strings added, update tutorial (full translate and bugfixes)
In tutorial now using hack (Cyrillic transliterated to latin), cause of SFonts.
2017-01-14 09:16:20 +02:00
Ria-kon e62bb98611 Deep yofication in tutorial 2017-01-12 14:27:30 +02:00
Ria-kon 31e752489f deep yofication in launcher 2017-01-12 14:20:43 +02:00
Ria-kon 89adf77e93 Yofication and capital letter 2017-01-12 14:15:59 +02:00
Ria-kon fbb6ff7ba0 An error is being simulated
Всё же симулируется, однако
2017-01-12 13:56:10 +02:00
Ria-kon 219bb5f112 wee, 2017-01-12 13:33:45 +02:00
Ria-kon bf6d637dc7 caryoscelus patrol fix
1. Short weekdays improved
2. Renpy now contains free and open-source software, not freeware =D
3. Plurals with coordinats
4. other...
2017-01-12 13:26:05 +02:00
Ria-kon ef39d695dd Update 1. Appearance and fixes 2017-01-12 11:20:20 +02:00
Ria-kon 15c5bfab46 Grammatical update 2017-01-12 11:18:54 +02:00
Ria-kon b48e0f7c68 Grammatical update 2017-01-12 11:17:15 +02:00
Tom Rothamel 67c893fb41 Deal with the start label checkpoint.
We want to roll all the way back to the start label, and after we do
so we want to re-add the checkpoint associated with it.
2017-01-11 23:13:56 -05:00
Ria-kon 4bb2a6ed30 Перевод, обновление 2017-01-10 23:57:16 +02:00
Ria-kon a764827979 Редактирование 2017-01-10 23:56:42 +02:00
Ria-kon 51f35fb994 Ёfication 2017-01-10 23:55:24 +02:00
Tom Rothamel a8801b3099 Make all classes in Ren'Py script inherit from object.
This makes us more compatible with Python 3 semantics, and
prevents things from breaking if someone writes "class Foo:",
rather than "class Foo(object):".
2017-01-10 02:08:13 -05:00
Tom Rothamel 0c32504221 Merge pull request #1110 from SpikyCaterpillar/spiky-widget-stack-in-tb
Include widget stack in traceback when relevant
2017-01-10 00:06:30 -05:00
Spiky Caterpillar 73045e3f3c Include widget stack in traceback when relevant
When a game crashes because of an unclosed layer/widget stack, include the widget stack in the traceback.
2017-01-10 01:50:13 +00:00
Tom Rothamel 9b76083a78 Update copyright for 2017. 2017-01-05 00:39:48 -05:00
Tom Rothamel 4192546ca4 Update copyright script for 2017. 2017-01-05 00:37:42 -05:00
Tom Rothamel bbf12935ec Remove access to quick/auto saves if has_{quick,auto} save is false.
Fixes #1107, at least for newly-generated games.
2017-01-04 20:31:24 -05:00
vollschauer 7dc62e9176 Update 00keymap.rpy 2017-01-04 22:24:06 +01:00
vollschauer dbe4832f99 toggle_afm #2 2017-01-04 20:03:43 +01:00
vollschauer a611786c92 toggle_afm 2017-01-04 17:52:41 +01:00
Tom Rothamel 7df3b52a7d Expicitly add a focus to a Viewport if draggable.
This is helpful if a draggable Viewport is show on a screen with
full-screen focus, like one with dialogue on it.
2017-01-03 23:31:12 -05:00
Tom Rothamel 29b479bab0 Maintain full lines (with comments and whitespace) in lines.
And create an accessor function to get at them.
2017-01-02 01:38:30 -05:00
Tom Rothamel b6849f4373 scriptedit: Support for getting a physical line. 2017-01-01 02:34:56 -05:00
Tom Rothamel 07089c9e4a scriptedit: Do not indent blank lines. 2017-01-01 02:34:33 -05:00
Tom Rothamel 00dd47290f Properly represent blank lines in the lines list.
We were failing to include the full length of blank lines,
which meant that we couldn't remove them.
2017-01-01 02:33:25 -05:00
Tom Rothamel c1805afbb6 Add loop_only to android or ios, fixing them.
Per https://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=41846
2016-12-31 17:46:16 -05:00
Tom Rothamel 96beb70d14 Raise NameError if a variable is not defined during substition.
It's a little more readable.
2016-12-31 17:15:36 -05:00
Tom Rothamel 20f4b482f6 Make the DLC URL support a 4-component version. 2016-12-30 23:33:09 -05:00
Tom Rothamel 2ab455bc06 test: Test Android support in the launcher.
This includes:

* Downloading and installing RAPT, if necessary.
* Installing the SDK and creating a key, if necessary.
* Configuring a game.
* Building an apk.
2016-12-30 02:05:49 -05:00
Tom Rothamel 65b03c3d16 test: Increase typing speed. 2016-12-30 01:57:55 -05:00
Tom Rothamel 441f31742f Support conditional execution of tests. 2016-12-29 22:49:49 -05:00
Tom Rothamel afd5fd994f Update docs. 2016-12-29 22:09:37 -05:00
Tom Rothamel c6c6ed4099 test.sh: Link in testing. 2016-12-29 22:07:18 -05:00
Tom Rothamel e20c30bea5 Trap errors when getting lines to report a traceback. 2016-12-29 22:02:44 -05:00
Tom Rothamel 1789caf4d7 Merge pull request #1103 from morganwillcock/guidocs
Fix typos in new GUI docs
2016-12-28 21:37:37 -05:00
Tom Rothamel 183327eec5 Bump version. 2016-12-28 20:52:54 -05:00
Morgan Willcock 1fb97f90cc Fix more typos...
...including the one I just added.
2016-12-28 12:14:25 +00:00
Morgan Willcock 2fcfede988 HTML color codes can have an alpha component 2016-12-28 11:51:15 +00:00
Tom Rothamel 400175ecb3 Add a list of line log callbacks.
These let code (the id) annotate the line log with arbitrary
information, without requiring the core of Ren'Py to be
changed.
2016-12-28 00:37:09 -05:00
Morgan Willcock 9e47dac5b0 Fix typos in new GUI docs 2016-12-27 17:32:55 +00:00
Tom Rothamel 6fecd67ffd Do not set clipping True for viewports.
It's not needed, since subsurface should handle any case where it is.
2016-12-26 20:46:06 -05:00
Tom Rothamel 321f949c94 Pass focuses from a render with clipping=True. 2016-12-26 20:44:41 -05:00
Tom Rothamel b3ae56970e Support 4+ element versions when making symlinks. 2016-12-23 10:16:11 -05:00
Tom Rothamel 2aaabb3909 Use gpg2 to sign the checksum file. 2016-12-23 09:47:15 -05:00
Tom Rothamel 778cb29761 Update Indonesian translation. 2016-12-23 00:51:31 -05:00
Tom Rothamel aabf85fc59 Update indonesian translation. 2016-12-23 00:15:32 -05:00
Tom Rothamel 19b71be3e0 distribute: Only delete an update file if it exists.
Fixes #1096. Since we can't update the mac app version, we don't
produce the update file, and hence can't delete it later on.
2016-12-22 17:29:08 -05:00
Tom Rothamel b9fb3bd619 Properly pass ui.gamemenus first argument to _game_menu.
Fixes #1097.
2016-12-22 17:04:14 -05:00
Tom Rothamel 1e0de5854d Encode the name parameter to MultiPersistent.
This fixes a problem where we mix unicode and non-unicode, and
Ren'Py crashes. (As described in #1095.)
2016-12-22 00:09:10 -05:00
Tom Rothamel db782d6e16 Support testing multipersistent via test.sh. 2016-12-22 00:04:20 -05:00
Tom Rothamel 3dbff5649d Test script that runs Ren'Py from a non-ascii directory. 2016-12-21 23:54:42 -05:00
Tom Rothamel 44cecf3866 Fix checksum creation. 2016-12-21 02:02:09 -05:00
Tom Rothamel 808ac1fd4f Bump the version to 6.99.13. 2016-12-20 22:29:48 -05:00
Tom Rothamel db593d0614 tl: Updatei indonesian translation. 2016-12-19 21:46:31 -05:00
Tom Rothamel d7979ff798 Empty commit. (Due to renios update.) 2016-12-17 00:47:49 -05:00
Tom Rothamel d619bfa49f Merge pull request #1094 from LuqueDaniel/Upddate-es
Update spanish translation
2016-12-16 01:00:41 -05:00
Tom Rothamel b322666935 Add the QueueEvent action. 2016-12-16 00:23:10 -05:00
Tom Rothamel 6157d3fc5d Support a dismiss_unfocused action.
This dismisses a SayBehavior even when it does not have the
focus.

While in there, made Rollback Side only respond to mouse or
touch events.
2016-12-15 22:13:38 -05:00
Daniel Luque 5571b28eae update-es: fix typo
vacio --> vacío
2016-12-15 21:05:20 +01:00
Daniel Luque ce81d2c30e Update launcher spanish translation 2016-12-15 19:53:26 +01:00
Tom Rothamel 13dd720358 Call init_system_styles from error handling.
This sets the font properly for a translated error screen.

Fixes #1093.
2016-12-13 18:51:19 -05:00
Tom Rothamel 09b1707af5 Fix call to expanduser on mac app screenshots. 2016-12-13 00:24:11 -05:00
Tom Rothamel 92f17e7906 Empty commit to allow for iOS changes. 2016-12-11 14:06:52 -05:00
Tom Rothamel b42d3d51b9 Use correct font for android build. 2016-12-11 11:52:25 -05:00
Tom Rothamel ac0d2a2d28 Merge pull request #1090 from nyaatrap/master
Update Japanese translation
2016-12-10 23:20:27 -05:00
nyaatrap ac9c8c9bb5 Update Japanese translation 2016-12-11 13:16:32 +09:00
Tom Rothamel b805b0b526 Remove debug prints. 2016-12-10 21:57:51 -05:00
Tom Rothamel 4585246ad8 tutorial: Add from to calls. 2016-12-10 21:57:33 -05:00
Tom Rothamel 3b35174ff5 tl/japanese: Set gui.language.
Per #1064.
2016-12-10 21:51:35 -05:00
Tom Rothamel 7d732781e0 gui: Add a define for the language (used to control line-breaking). 2016-12-10 21:49:01 -05:00
Tom Rothamel b16caee9ea Support adding arbitrary code to a translation.
(Not currently documented, as it's not clear there's a good use for
this.)
2016-12-10 21:38:51 -05:00
Tom Rothamel 37049fecf3 Only update defines in gui.rpy. 2016-12-09 21:51:59 -05:00
Tom Rothamel 75ec77ab64 Enable launcher testcases. 2016-12-09 21:50:25 -05:00
Tom Rothamel 87feeb5e51 Merge pull request #1089 from nyaatrap/master
Remove trailing ' from comment for translation
2016-12-08 10:12:56 -05:00
nyaatrap 48bcf1bbf0 Remove trailing ' from comment for translation 2016-12-08 21:37:42 +09:00
Gustavo Carvalho 28caf36653 fix typo 2016-10-28 12:01:23 -03:00
Gustavo Carvalho 968953b294 translate help page from spanish to portuguese 2016-10-28 12:00:32 -03:00
1314 changed files with 190105 additions and 64436 deletions
+11 -1
View File
@@ -49,6 +49,7 @@ styles.txt
/module/build
/module/gen*
/editra
/atom
/launcher/game/theme
/launcher/game/script_version.rpy
@@ -63,10 +64,12 @@ renpy/vc_version.py
/steam_appid.txt
/.coverage
/id
/ai
/interface_7
/htmlcov
/the_question/.android.json
/the_question*/.android.json
/WINDOWS.rst
/old
/*-all/
/*-win/
@@ -74,3 +77,10 @@ renpy/vc_version.py
/*-linux*/
/*-dists/
doc-web
sphinx/source/inc
sphinx/source/thequestion.rst
tutorial/game/tutorial_director.rpy
launcher/theme
module/emscripten-static/
web/
BIN
View File
Binary file not shown.
+12 -11
View File
@@ -2,7 +2,7 @@
The Ren'Py Visual Novel Engine
==============================
http://www.renpy.org
https://www.renpy.org
Ren'Py development takes place on the ``master`` branch, and occasionally
on feature branches.
@@ -11,21 +11,21 @@ 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
-------------
Nightly builds can be downloaded from:
http://nightly.renpy.org
https://nightly.renpy.org
Note that the latest nightly build is at the bottom of the list. Once you've
unpacked the nightly, change into this repository, and run::
@@ -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/x86_64-linux-gnu/"
export RENPY_CYTHON=cython
Finally, use setup.py in the Ren'Py ``module`` directory to compile and
@@ -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.
@@ -154,7 +155,7 @@ Translating
For best practices when it comes to translating the launcher and template
game, please read:
http://lemmasoft.renai.us/forums/viewtopic.php?p=321603#p321603
https://lemmasoft.renai.us/forums/viewtopic.php?p=321603#p321603
Contributing
+45
View File
@@ -0,0 +1,45 @@
This file contains the names, contact information, and notes about each
language Ren'Py is translated in. When you're adding a translation or
taking responsibility for a translation, please send a pull request updating
this file.
Pig Latin
---------
This is an automatically-generated translation that lets me test various
translation mechanisms.
* Tom Rothamel <pytom@bishoujo.us>
Russian
---------
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>
+10 -2
View File
@@ -11,14 +11,14 @@ 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/pygame_sdl2",
"/home/tom/ab/renpyweb",
]
version = ".".join(str(i) for i in version_tuple)
short_version = ".".join(str(i) for i in version_tuple[:3])
short_version = ".".join(str(i) for i in version_tuple[:-1])
print("Version", version)
ap = argparse.ArgumentParser()
@@ -103,7 +103,15 @@ for i in links:
os.unlink(i)
os.symlink(short_version, i)
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")
elif args.prerelease:
subprocess.check_call("./upload_dev.sh")
print("Version", version)
+24 -7
View File
@@ -9,6 +9,7 @@ import compileall
import shutil
import subprocess
import argparse
import time
if not sys.flags.optimize:
raise Exception("Optimization disabled.")
@@ -43,16 +44,21 @@ def copy_tutorial_file(src, dest):
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,6 +72,9 @@ def main():
# file has changed, bump it by 1.
import renpy
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 ])
@@ -82,6 +91,9 @@ def main():
with open("renpy/vc_version.py", "w") as f:
f.write("vc_version = {}".format(vc_version))
if args.vc_version_only:
return
try:
reload(sys.modules['renpy.vc_version']) # @UndefinedVariable
except:
@@ -103,6 +115,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.
@@ -110,9 +125,6 @@ def main():
print("Autobuild...")
subprocess.check_call(["scripts/autobuild.sh"])
# Copy over the screens, to keep them up to date.
copy_tutorial_file("tutorial/game/screens.rpy", "templates/english/game/screens.rpy")
# Compile all the python files.
compileall.compile_dir("renpy/", ddir="renpy/", force=1, quiet=1)
@@ -167,6 +179,12 @@ def main():
destination,
]
if args.notarized:
cmd.extend([
"--macapp",
"notarized/out",
])
print()
subprocess.check_call(cmd)
@@ -242,8 +260,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__":
+51 -36
View File
@@ -1,9 +1,9 @@
################################################################################
################################################################################
## Initialization
################################################################################
## The init offset statement causes the init code in this file to run before
## init code in any other file.
## The init offset statement causes the initialization statements in this file
## to run before init statements in any other file.
init offset = -2
## Calling gui.init resets the styles to sensible default values, and sets the
@@ -27,7 +27,7 @@ init python:
define gui.accent_color = "#00b8c3"
## The color used for a text button when it is neither selected nor hovered.
define gui.idle_color = "#555555"
define gui.idle_color = "#888888"
## The small color is used for small text, which needs to be
## brighter/darker to achieve the same effect.
@@ -56,13 +56,13 @@ define gui.interface_text_color = "#ffffff"
## Fonts and Font Sizes ########################################################
## The font used for in-game text.
define gui.default_font = "DejaVuSans.ttf"
define gui.text_font = "DejaVuSans.ttf"
## The font used for character names.
define gui.name_font = "DejaVuSans.ttf"
define gui.name_text_font = "DejaVuSans.ttf"
## The font used for out-of-game text.
define gui.interface_font = "DejaVuSans.ttf"
define gui.interface_text_font = "DejaVuSans.ttf"
## The size of normal dialogue text.
define gui.text_size = gui.scale(22)
@@ -71,10 +71,10 @@ define gui.text_size = gui.scale(22)
define gui.name_text_size = gui.scale(30)
## The size of text in the game's user interface.
define gui.interface_text_size = gui.scale(24)
define gui.interface_text_size = gui.scale(22)
## The size of labels in the game's user interface.
define gui.label_text_size = gui.scale(28)
define gui.label_text_size = gui.scale(24)
## The size of text on the notify screen.
define gui.notify_text_size = gui.scale(16)
@@ -89,9 +89,6 @@ define gui.title_text_size = gui.scale(50)
define gui.main_menu_background = "gui/main_menu.png"
define gui.game_menu_background = "gui/game_menu.png"
## Should we show the name and version of the game?
define gui.show_name = True
## Dialogue ####################################################################
##
@@ -125,22 +122,22 @@ 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
## 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.
define gui.text_xpos = gui.scale(268)
define gui.text_ypos = gui.scale(50)
define gui.dialogue_xpos = gui.scale(268)
define gui.dialogue_ypos = gui.scale(50)
## The maximum width of dialogue text, in pixels.
define gui.text_width = gui.scale(744)
define gui.dialogue_width = gui.scale(744)
## The horizontal alignment of the dialogue text. This can be 0.0 for
## left-aligned, 0.5 for centered, and 1.0 for right-aligned.
define gui.text_xalign = 0.0
define gui.dialogue_text_xalign = 0.0
## Buttons #####################################################################
@@ -150,7 +147,7 @@ define gui.text_xalign = 0.0
## The width and height of a button, in pixels. If None, Ren'Py computes a size.
define gui.button_width = None
define gui.button_height = gui.scale(36)
define gui.button_height = None
## The borders on each side of the button, in left, top, right, bottom order.
define gui.button_borders = Borders(gui.scale(4), gui.scale(4), gui.scale(4), gui.scale(4))
@@ -160,7 +157,7 @@ define gui.button_borders = Borders(gui.scale(4), gui.scale(4), gui.scale(4), gu
define gui.button_tile = False
## The font used by the button.
define gui.button_text_font = gui.interface_font
define gui.button_text_font = gui.interface_text_font
## The size of the text used by the button.
define gui.button_text_size = gui.interface_text_size
@@ -182,9 +179,9 @@ define gui.button_text_xalign = 0.0
##
## These customizations are used by the default interface:
define gui.radio_button_borders = Borders(gui.scale(25), gui.scale(4), gui.scale(4), gui.scale(4))
define gui.radio_button_borders = Borders(gui.scale(18), gui.scale(4), gui.scale(4), gui.scale(4))
define gui.check_button_borders = Borders(gui.scale(25), gui.scale(4), gui.scale(4), gui.scale(4))
define gui.check_button_borders = Borders(gui.scale(18), gui.scale(4), gui.scale(4), gui.scale(4))
define gui.confirm_button_text_xalign = 0.5
@@ -210,11 +207,12 @@ define gui.choice_button_width = gui.scale(790)
define gui.choice_button_height = None
define gui.choice_button_tile = False
define gui.choice_button_borders = Borders(gui.scale(100), gui.scale(5), gui.scale(100), gui.scale(5))
define gui.choice_button_text_font = gui.default_font
define gui.choice_button_text_font = gui.text_font
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 ###########################################################
@@ -230,6 +228,8 @@ define gui.slot_button_borders = Borders(gui.scale(10), gui.scale(10), gui.scale
define gui.slot_button_text_size = gui.scale(14)
define gui.slot_button_text_xalign = 0.5
define gui.slot_button_text_idle_color = gui.idle_small_color
define gui.slot_button_text_selected_idle_color = gui.selected_color
define gui.slot_button_text_selected_hover_color = gui.hover_color
## The width and height of thumbnails used by the save slots.
define config.thumbnail_width = gui.scale(256)
@@ -273,13 +273,16 @@ define gui.page_spacing = gui.scale(0)
## The spacing between file slots.
define gui.slot_spacing = gui.scale(10)
## The position of the main menu text.
define gui.main_menu_text_xalign = 1.0
## Frames ######################################################################
##
## These variables control the look of frames that can contain user interface
## components when an overlay or window is not present.
## Generic frames that are introduced by player code.
## Generic frames.
define gui.frame_borders = Borders(gui.scale(4), gui.scale(4), gui.scale(4), gui.scale(4))
## The frame that is used as part of the confirm screen.
@@ -300,13 +303,13 @@ define gui.frame_tile = False
## These control the look and size of bars, scrollbars, and sliders.
##
## The default GUI only uses sliders and vertical scrollbars.
## All of the other bars are only used in creator-written code.
## All of the other bars are only used in creator-written screens.
## The height of horizontal bars, scrollbars, and sliders. The width of
## vertical bars, scrollbars, and sliders.
define gui.bar_size = gui.scale(36)
define gui.bar_size = gui.scale(25)
define gui.scrollbar_size = gui.scale(12)
define gui.slider_size = gui.scale(30)
define gui.slider_size = gui.scale(25)
## True if bar images should be tiled. False if they should be linearly scaled.
define gui.bar_tile = False
@@ -341,14 +344,14 @@ define gui.history_height = gui.scale(140)
## The position, width, and alignment of the label giving the name of the
## speaking character.
define gui.history_name_xpos = 150
define gui.history_name_xpos = gui.scale(155)
define gui.history_name_ypos = 0
define gui.history_name_width = gui.scale(150)
define gui.history_name_width = gui.scale(155)
define gui.history_name_xalign = 1.0
## The position, width, and alignment of the dialogue text.
define gui.history_text_xpos = gui.scale(170)
define gui.history_text_ypos = gui.scale(5)
define gui.history_text_ypos = gui.scale(2)
define gui.history_text_width = gui.scale(740)
define gui.history_text_xalign = 0.0
@@ -360,6 +363,10 @@ define gui.history_text_xalign = 0.0
## The borders of the background of the NVL-mode background window.
define gui.nvl_borders = Borders(0, gui.scale(10), 0, gui.scale(20))
## 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.
define gui.nvl_list_length = 6
## The height of an NVL-mode entry. Set this to None to have the entries
## dynamically adjust height.
define gui.nvl_height = gui.scale(115)
@@ -392,6 +399,13 @@ define gui.nvl_thought_xalign = 0.0
define gui.nvl_button_xpos = gui.scale(450)
define gui.nvl_button_xalign = 0.0
## Localization ################################################################
## 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
define gui.language = "unicode"
################################################################################
@@ -414,9 +428,9 @@ init python:
gui.text_size = gui.scale(30)
gui.name_text_size = gui.scale(36)
gui.notify_text_size = gui.scale(25)
gui.interface_text_size = gui.scale(36)
gui.button_text_size = gui.scale(34)
gui.label_text_size = gui.scale(36)
gui.interface_text_size = gui.scale(30)
gui.button_text_size = gui.scale(30)
gui.label_text_size = gui.scale(34)
## Adjust the location of the textbox.
gui.textbox_height = gui.scale(240)
@@ -424,7 +438,9 @@ init python:
gui.text_xpos = gui.scale(90)
gui.text_width = gui.scale(1100)
## Change the size and spacing of items in the game menu.
## Change the size and spacing of various things.
gui.slider_size = gui.scale(36)
gui.choice_button_width = gui.scale(1240)
gui.navigation_spacing = gui.scale(20)
@@ -433,6 +449,8 @@ init python:
gui.history_height = gui.scale(190)
gui.history_text_width = gui.scale(690)
gui.quick_button_text_size = gui.scale(20)
## File button layout.
gui.file_slot_cols = 2
gui.file_slot_rows = 2
@@ -453,8 +471,5 @@ init python:
gui.nvl_button_width = gui.scale(1240)
gui.nvl_button_xpos = gui.scale(20)
## Quick buttons.
gui.quick_button_text_size = gui.scale(20)
+1 -1
View File
@@ -1,4 +1,4 @@
init -100 python in gui:
init -100 python in gui:
def scale(n):
return int(n)
+11 -4
View File
@@ -28,10 +28,11 @@ define gui.show_name = True
define config.version = "1.0"
## Text that is placed on the game's about screen. To insert a blank line
## between paragraphs, write \n\n.
## Text that is placed on the game's about screen. Place the text between
## the triple-quotes, and leave a blank line between paragraphs.
define gui.about = _("")
define gui.about = _p("""
""")
## A short name for the game used for executables and directories in the
@@ -78,6 +79,11 @@ define config.enter_transition = dissolve
define config.exit_transition = dissolve
## Between screens of the game menu.
define config.intra_transition = dissolve
## A transition that is used after a game has been loaded.
define config.after_load_transition = None
@@ -143,7 +149,7 @@ default preferences.afm_time = 15
define config.save_directory = "gui-7"
## Icon ########################################################################'
## Icon ########################################################################
##
## The icon displayed on the taskbar or dock.
@@ -193,6 +199,7 @@ init python:
build.documentation('*.html')
build.documentation('*.txt')
## A Google Play license key is required to download expansion files and
## perform in-app purchases. It can be found on the "Services & APIs" page
## of the Google Play developer console.
+125 -78
View File
@@ -1,4 +1,4 @@
################################################################################
################################################################################
## Initialization
################################################################################
@@ -10,40 +10,34 @@ init offset = -1
################################################################################
style default:
font gui.default_font
size gui.text_size
color gui.text_color
properties gui.text_properties()
language gui.language
style input:
color gui.accent_color
properties gui.text_properties("input", accent=True)
adjust_spacing False
style hyperlink_text:
color gui.accent_color
hover_color gui.hover_color
properties gui.text_properties("hyperlink", accent=True)
hover_underline True
style gui_text:
font gui.interface_font
color gui.interface_text_color
size gui.interface_text_size
properties gui.text_properties("interface")
style button:
properties gui.button_properties("button")
style button_text is gui_text:
properties gui.button_text_properties("button")
properties gui.text_properties("button")
yalign 0.5
style label_text is gui_text:
color gui.accent_color
size gui.label_text_size
properties gui.text_properties("label", accent=True)
style prompt_text is gui_text:
color gui.text_color
size gui.interface_text_size
properties gui.text_properties("prompt")
style bar:
@@ -110,6 +104,7 @@ screen say(who, what):
if who is not None:
window:
id "namebox"
style "namebox"
text who id "who"
@@ -122,6 +117,10 @@ screen say(who, what):
add SideImage() xalign 0.0 yalign 1.0
## Make the namebox available for styling through the Character object.
init python:
config.character_id_prefixes.append('namebox')
style window is default
style say_label is default
style say_dialogue is default
@@ -150,20 +149,16 @@ style namebox:
padding gui.namebox_borders.padding
style say_label:
color gui.accent_color
font gui.name_font
size gui.name_text_size
properties gui.text_properties("name", accent=True)
xalign gui.name_xalign
yalign 0.5
style say_dialogue:
xpos gui.text_xpos
xanchor gui.text_xalign
xsize gui.text_width
ypos gui.text_ypos
properties gui.text_properties("dialogue")
text_align gui.text_xalign
layout ("subtitle" if gui.text_xalign else "tex")
xpos gui.dialogue_xpos
xsize gui.dialogue_width
ypos gui.dialogue_ypos
## Input screen ################################################################
@@ -174,7 +169,7 @@ style say_dialogue:
## This screen must create an input displayable with id "input" to accept
## the various input parameters.
##
## http://www.renpy.org/doc/html/screen_special.html#input
## https://www.renpy.org/doc/html/screen_special.html#input
screen input(prompt):
style_prefix "input"
@@ -182,25 +177,24 @@ screen input(prompt):
window:
vbox:
xpos gui.text_xpos
xanchor gui.text_xalign
ypos gui.text_ypos
xalign gui.dialogue_text_xalign
xpos gui.dialogue_xpos
xsize gui.dialogue_width
ypos gui.dialogue_ypos
text prompt style "input_prompt"
input id "input"
style input_prompt is default
style input_prompt:
xmaximum gui.text_width
xalign gui.text_xalign
text_align gui.text_xalign
xalign gui.dialogue_text_xalign
properties gui.text_properties("input_prompt")
style input:
xmaximum gui.text_width
xalign gui.text_xalign
text_align gui.text_xalign
xalign gui.dialogue_text_xalign
xmaximum gui.dialogue_width
## Choice screen ###############################################################
##
@@ -208,7 +202,7 @@ style input:
## menu statement. The one parameter, items, is a list of objects, each
## with caption and action fields.
##
## http://www.renpy.org/doc/html/screen_special.html#choice
## https://www.renpy.org/doc/html/screen_special.html#choice
screen choice(items):
style_prefix "choice"
@@ -329,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)
@@ -353,7 +349,7 @@ style navigation_button_text:
##
## Used to display the main menu when Ren'Py starts.
##
## http://www.renpy.org/doc/html/screen_special.html#main-menu
## https://www.renpy.org/doc/html/screen_special.html#main-menu
screen main_menu():
@@ -402,14 +398,13 @@ style main_menu_vbox:
yoffset gui.scale(-20)
style main_menu_text:
xalign 1.0
layout "subtitle"
text_align 1.0
color gui.accent_color
properties gui.text_properties("main_menu", accent=True)
style main_menu_title:
size gui.title_text_size
properties gui.text_properties("title")
style main_menu_version:
properties gui.text_properties("version")
## Game Menu screen ############################################################
@@ -421,7 +416,7 @@ style main_menu_title:
## this screen is intended to be used with one or more children, which are
## transcluded (placed) inside it.
screen game_menu(title, scroll=None):
screen game_menu(title, scroll=None, yinitial=0.0):
style_prefix "game_menu"
@@ -445,9 +440,11 @@ screen game_menu(title, scroll=None):
if scroll == "viewport":
viewport:
yinitial yinitial
scrollbars "vertical"
mousewheel True
draggable True
pagekeys True
side_yfill True
@@ -458,11 +455,12 @@ screen game_menu(title, scroll=None):
vpgrid:
cols 1
yinitial 1.0
yinitial yinitial
scrollbars "vertical"
mousewheel True
draggable True
pagekeys True
side_yfill True
@@ -666,9 +664,11 @@ screen file_slots(title):
textbutton _("<") action FilePagePrevious()
textbutton _("{#auto_page}A") action FilePage("auto")
if config.has_autosave:
textbutton _("{#auto_page}A") action FilePage("auto")
textbutton _("{#quick_page}Q") action FilePage("quick")
if config.has_quicksave:
textbutton _("{#quick_page}Q") action FilePage("quick")
## range(1, 10) gives the numbers from 1 to 9.
for page in range(1, 10):
@@ -720,11 +720,6 @@ screen preferences():
tag menu
if renpy.mobile:
$ cols = 2
else:
$ cols = 4
use game_menu(_("Preferences"), scroll="viewport"):
vbox:
@@ -732,7 +727,7 @@ screen preferences():
hbox:
box_wrap True
if renpy.variant("pc"):
if renpy.variant("pc") or renpy.variant("web"):
vbox:
style_prefix "radio"
@@ -850,7 +845,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")
@@ -895,7 +890,7 @@ screen history():
## Avoid predicting this screen, as it can be very large.
predict False
use game_menu(_("History"), scroll=("vpgrid" if gui.history_height else "viewport")):
use game_menu(_("History"), scroll=("vpgrid" if gui.history_height else "viewport"), yinitial=1.0):
style_prefix "history"
@@ -911,17 +906,26 @@ 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"]
text h.what
$ what = renpy.filter_text_tags(h.what, allow=gui.history_allow_tags)
text what:
substitute False
if not _history_list:
label _("The dialogue history is empty.")
## This determines what tags are allowed to be displayed on the history
## screen.
define gui.history_allow_tags = set()
style history_window is empty
style history_name is gui_label
@@ -1082,6 +1086,7 @@ screen gamepad_help():
label _("Right Shoulder")
text _("Rolls forward to later dialogue.")
hbox:
label _("D-Pad, Sticks")
text _("Navigate the interface.")
@@ -1131,7 +1136,7 @@ style help_label_text:
## The confirm screen is called when Ren'Py wants to ask the player a yes or
## no question.
##
## http://www.renpy.org/doc/html/screen_special.html#confirm
## https://www.renpy.org/doc/html/screen_special.html#confirm
screen confirm(message, yes_action, no_action):
@@ -1240,8 +1245,8 @@ style skip_text:
size gui.notify_text_size
style skip_triangle:
# We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE
# glyph in it.
## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE
## glyph in it.
font "DejaVuSans.ttf"
@@ -1258,7 +1263,7 @@ screen notify(message):
style_prefix "notify"
frame at notify_appear:
text message
text "[message!tq]"
timer 3.25 action Hide('notify')
@@ -1281,14 +1286,14 @@ style notify_frame:
padding gui.notify_frame_borders.padding
style notify_text:
size gui.notify_text_size
properties gui.text_properties("notify")
## NVL screen ##################################################################
##
## This screen is used for NVL-mode dialogue and menus.
##
## http://www.renpy.org/doc/html/screen_special.html#nvl
## https://www.renpy.org/doc/html/screen_special.html#nvl
screen nvl(dialogue, items=None):
@@ -1344,7 +1349,7 @@ screen nvl_dialogue(dialogue):
## This controls the maximum number of NVL-mode entries that can be displayed
## at once.
define config.nvl_list_length = 6
define config.nvl_list_length = gui.nvl_list_length
style nvl_window is default
style nvl_entry is default
@@ -1418,22 +1423,32 @@ 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:
variant "small"
background "gui/phone/textbox.png"
style radio_button:
variant "small"
foreground "gui/phone/button/radio_[prefix_]foreground.png"
style check_button:
variant "small"
foreground "gui/phone/button/check_[prefix_]foreground.png"
style nvl_window:
variant "small"
background "gui/phone/nvl.png"
@@ -1458,6 +1473,42 @@ style pref_vbox:
variant "small"
xsize gui.scale(400)
style bar:
variant "small"
ysize gui.bar_size
left_bar Frame("gui/phone/bar/left.png", gui.bar_borders, tile=gui.bar_tile)
right_bar Frame("gui/phone/bar/right.png", gui.bar_borders, tile=gui.bar_tile)
style vbar:
variant "small"
xsize gui.bar_size
top_bar Frame("gui/phone/bar/top.png", gui.vbar_borders, tile=gui.bar_tile)
bottom_bar Frame("gui/phone/bar/bottom.png", gui.vbar_borders, tile=gui.bar_tile)
style scrollbar:
variant "small"
ysize gui.scrollbar_size
base_bar Frame("gui/phone/scrollbar/horizontal_[prefix_]bar.png", gui.scrollbar_borders, tile=gui.scrollbar_tile)
thumb Frame("gui/phone/scrollbar/horizontal_[prefix_]thumb.png", gui.scrollbar_borders, tile=gui.scrollbar_tile)
style vscrollbar:
variant "small"
xsize gui.scrollbar_size
base_bar Frame("gui/phone/scrollbar/vertical_[prefix_]bar.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile)
thumb Frame("gui/phone/scrollbar/vertical_[prefix_]thumb.png", gui.vscrollbar_borders, tile=gui.scrollbar_tile)
style slider:
variant "small"
ysize gui.slider_size
base_bar Frame("gui/phone/slider/horizontal_[prefix_]bar.png", gui.slider_borders, tile=gui.slider_tile)
thumb "gui/phone/slider/horizontal_[prefix_]thumb.png"
style vslider:
variant "small"
xsize gui.slider_size
base_bar Frame("gui/phone/slider/vertical_[prefix_]bar.png", gui.vslider_borders, tile=gui.slider_tile)
thumb "gui/phone/slider/vertical_[prefix_]thumb.png"
style slider_pref_vbox:
variant "small"
xsize None
@@ -1465,7 +1516,3 @@ style slider_pref_vbox:
style slider_pref_slider:
variant "small"
xsize gui.scale(600)
+1 -3
View File
@@ -1,4 +1,4 @@
# The script of the game goes in this file.
# The script of the game goes in this file.
# Declare characters used by this game. The color argument colorizes the
# name of the character.
@@ -24,8 +24,6 @@ label start:
# These display lines of dialogue.
"Hello, world."
e "You've created a new Ren'Py game."
e "Once you add a story, pictures, and music, you can release it to the world!"
+147 -1
View File
@@ -1,4 +1,4 @@
testcase default:
testcase default:
"Start"
pause .6
@@ -11,4 +11,150 @@ testcase default:
click
click
"History"
pause .6
# Test Help.
"Help"
"Keyboard"
# Test About
"About"
# Test Preferences
"Preferences"
"Left"
"Right"
"Disable"
"Unseen Text"
"Unseen Text"
"After Choices"
"After Choices"
"Transitions"
"Transitions"
"Mute All"
"Mute All"
"Save"
"Load"
"Return"
pause .6
run Jump("test")
"In testcase code."
# menu_1
click until "Choice A"
# input
type "Test User\n"
"Name: Test User"
# Nvl
click
click
click
click
click
click until "NVL 6"
# NVL Menu.
"Choice B"
$ renpy.unlink_save("1-1")
"Save"
pause .6
"Save slot 1"
pause .6
"Save slot 1"
"Yes"
"Main Menu"
"Yes"
"Load"
"Load slot 1"
pause .5
"Save"
pause .5
"Load"
"Load slot 1"
"No"
"Return"
# Done.
pause .5
"Done."
"Quit"
define nvle = Character("Eileen", kind=nvl)
label test:
"In testcase code."
menu menu_1:
"This is a menu."
"Choice A":
pass
"Choice B":
pass
label after_menu_1:
$ name = renpy.input("What is your name?")
"Name: [name]"
nvle "NVL 1"
nvle "NVL 2"
nvle "NVL 3"
nvl clear
nvle "NVL 4"
nvle "NVL 5"
nvle "NVL 6"
$ menu = nvl_menu
menu menu_2:
"This is a menu."
"Choice A":
pass
"Choice B":
pass
label after_menu_2:
"Done."
return
+2 -2
View File
@@ -124,7 +124,7 @@ H3 {
<dt>v</dt>
<dd>
Toggles self-voicing mode, which reads text to the user using an os-supplied speech synthesizer. For more
information, please read the <a href="http://www.renpy.org/doc/html/self_voicing.html">self-voicing</a>
information, please read the <a href="https://www.renpy.org/doc/html/self_voicing.html">self-voicing</a>
documentation.
</dd>
<dt>Shift+C</dt>
@@ -171,7 +171,7 @@ H3 {
<h2>Legal Notice</h2>
<p>
This program contains free software licensed under a number of licenses, including the GNU Lesser Public License. A
complete list of software is available at <a href="http://www.renpy.org/doc/html/license.html">http://www.renpy.org/doc/html/license.html</a>.
complete list of software is available at <a href="https://www.renpy.org/doc/html/license.html">https://www.renpy.org/doc/html/license.html</a>.
</p>
</body>
+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-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
+40 -79
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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,7 +28,7 @@ init python:
ANDROID_OK = 5
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=http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html}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_CONFIG_TEXT = _("The current project has not been configured. Use \"Configure\" to configure it before building.")
@@ -45,10 +45,11 @@ 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.")
DEBUG_TEXT = _("Selects the Debug build, which can be accessed through Android Studio. Changing between debug and release builds requires an uninstall from your device.")
RELEASE_TEXT = _("Selects the Release build, which can be uploaded to stores. Changing between debug and release builds requires an uninstall from your device.")
import subprocess
import re
@@ -83,6 +84,8 @@ init python:
import rapt.interface
rapt.plat.renpy = True
rapt.plat.translate = __
else:
rapt = None
@@ -95,11 +98,9 @@ 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(os.path.join(project.current.path, ".android.json")):
return ANDROID_NO_CONFIG
@@ -164,6 +165,8 @@ init python:
with open(filename, "r") as f:
android_json = json.load(f)
old_android_json = dict(android_json)
if "google_play_key" in build:
android_json["google_play_key"] = build["google_play_key"]
else:
@@ -178,9 +181,11 @@ init python:
else:
android_json.pop("google_play_salt", None)
if android_json != old_android_json:
with open(filename, "w") as f:
json.dump(android_json, f)
with open(filename, "w") as f:
json.dump(android_json, f)
def android_build(command, p=None, gui=True, launch=False, destination=None, opendir=False):
"""
@@ -264,6 +269,10 @@ init python:
rapt.build.build(rapt_interface, dist, command, launch=launch, finished=finished)
def android_build_argument(cmd):
return cmd + project.current.data["android_build"]
# The android support can stick unicode into os.environ. Fix that.
init 100 python:
@@ -280,7 +289,7 @@ screen android_process(interface):
text "[ft.text!q]":
size 14
color TEXT
font "Roboto-Light.ttf"
font gui.LIGHT_FONT
xpos 75
ypos 350
@@ -301,7 +310,7 @@ screen android:
has vbox
label _("Android: [project.current.name!q]")
label _("Android: [project.current.display_name!q]")
add HALF_SPACER
@@ -358,6 +367,20 @@ screen android:
has vbox
hbox:
spacing 15
textbutton _("Debug"):
action SetDict(project.current.data, "android_build", "Debug")
hovered tt.Action(DEBUG_TEXT)
textbutton _("Release"):
action SetDict(project.current.data, "android_build", "Release")
hovered tt.Action(RELEASE_TEXT)
add HALF_SPACER
textbutton _("Install SDK & Create Keys"):
action AndroidIfState(state, ANDROID_NO_SDK, Jump("android_installsdk"))
hovered tt.Action(INSTALL_SDK_TEXT)
@@ -393,14 +416,6 @@ 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)
@@ -465,74 +480,20 @@ label android_configure:
label android_build:
$ android_build([ 'release' ], opendir=True)
$ android_build([ android_build_argument("assemble") ], opendir=True)
jump android
label android_build_and_install:
$ android_build([ 'release', 'install' ])
$ android_build([ android_build_argument("install") ])
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([android_build_argument("install") ], launch=True)
jump android
@@ -552,7 +513,7 @@ 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("gradle_commands", help="Commands to pass to gradle. (Try 'installDebug' or 'assembleRelease'.)", nargs='+')
ap.add_argument("--launch", action="store_true", help="Launches the app after build and install compete.")
ap.add_argument("--destination", "--dest", default=None, action="store", help="The directory where the packaged files should be placed.")
@@ -560,7 +521,7 @@ init python:
p = project.Project(args.android_project)
android_build(args.ant_commands, p=p, gui=False, launch=args.launch, destination=args.destination)
android_build(args.gradle_commands, p=p, gui=False, launch=args.launch, destination=args.destination)
return False
+71
View File
@@ -0,0 +1,71 @@
# 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.")
__("Run configure before attempting to build the app.")
__("Google Play support is enabled, but build.google_play_key is not defined.")
__("Updating project.")
__("Creating assets directory.")
__("Creating expansion file.")
__("Packaging internal data.")
__("I'm using Gradle to build the package.")
__("Uploading expansion file.")
__("The build seems to have failed.")
__("Launching app.")
__("The build seems to have succeeded.")
__("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.")
__("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.")
__("What is the version code?\n\nThis must be a positive integer number, and the value should increase between versions.")
__("The numeric version 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.")
__("Which app store would you like to support in-app purchasing through?")
__("Google Play.")
__("Amazon App Store.")
__("Both, in one app.")
__("Neither.")
__("Would you like to create an expansion APK?")
__("No. Size limit of 100 MB on Google Play, but can be distributed through other stores and sideloaded.")
__("Yes. 2 GB size limit, but won't work outside of Google Play. (Read the documentation to get this to work.)")
__("Do you want to allow the app to access the Internet?")
__("Do you want to automatically update the generated project?")
__("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\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.")
__("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.")
__("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 install the required Android packages.")
__("I've finished installing the required Android packages.")
__("You set the keystore yourself, so I'll assume it's how you want it.")
__("You've already created an Android keystore, so I won't create a new one for you.")
__("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?")
__("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\n\You 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?")
__("Please enter your name or the name of your organization.")
__("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.")
__("It looks like you're ready to start packaging games.")
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -317,7 +317,7 @@ def change_icons(oldexe, icofn):
alignment = pe.OPTIONAL_HEADER.SectionAlignment
# print "Alignment is", alignment
# print("Alignment is", alignment)
if len(rsrc) % alignment:
pad = alignment - (len(rsrc) % alignment)
+4 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -51,6 +51,7 @@ init python:
if path:
default_path = path
path = None
else:
try:
default_path = os.path.dirname(os.path.abspath(config.renpy_base))
@@ -94,7 +95,8 @@ init python:
is_default = False
if path is None:
# Path being None or "" means nothing was selected.
if not path:
path = default_path
is_default = True
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -504,7 +504,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
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -75,7 +75,7 @@ init python:
os.chmod(self.fn, 0o755)
if renpy.windows:
subprocess.Popen([ renpy.fsencode(self.fn) ], console=True)
subprocess.Popen([ renpy.fsencode(self.fn) ], shell=True)
elif renpy.macintosh:
subprocess.Popen([ "open", "-a", "Terminal", renpy.fsencode(self.fn) ])
else:
+135 -85
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -174,7 +174,7 @@ init python in distribute:
Update hash with information about this entry.
"""
key = (self.name, self.path, self.directory, self.executable)
key = (self.name, self.directory, self.executable)
hash.update(repr(key))
@@ -373,7 +373,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 +404,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 +441,16 @@ 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.dump.get("error", False):
raise Exception("Could not get build data from the project. Please ensure the project runs.")
@@ -523,6 +531,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']:
@@ -557,6 +569,8 @@ init python in distribute:
p["file_lists"],
dlc=p["dlc"])
wait_parallel_threads()
if self.build_update:
self.finish_updates(build_packages)
@@ -604,12 +618,12 @@ init python in distribute:
if match(match_name, pattern):
break
else:
print >> self.log, match_name.encode("utf-8"), "doesn't match anything."
print(match_name.encode("utf-8"), "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(match_name.encode("utf-8"), "matches", pattern, "(" + str(file_list) + ").", file=self.log)
if file_list is None:
return
@@ -771,15 +785,17 @@ init python in distribute:
if os.path.exists(LICENSE_TXT):
self.add_file("renpy", "renpy/LICENSE.txt", LICENSE_TXT)
if (not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpy"))) and \
(not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpyc"))):
if self.build["script_version"]:
script_version_txt = self.temp_filename("script_version.txt")
if (not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpy"))) and \
(not os.path.exists(os.path.join(self.project.path, "game", "script_version.rpyc"))):
with open(script_version_txt, "w") as f:
f.write(repr(renpy.renpy.version_tuple[:-1]))
script_version_txt = self.temp_filename("script_version.txt")
self.add_file("all", "game/script_version.txt", script_version_txt)
with open(script_version_txt, "w") as f:
f.write(repr(renpy.renpy.version_tuple[:-1]))
self.add_file("all", "game/script_version.txt", script_version_txt)
def add_file_list_hash(self, list_name):
"""
@@ -801,6 +817,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")
@@ -860,10 +877,12 @@ init python in distribute:
windows = 'binary'
linux = 'binary'
mac = 'binary'
raspi = 'raspi'
else:
windows = 'windows'
linux = 'linux'
mac = 'mac'
raspi = 'linux'
self.add_file(
linux,
@@ -877,6 +896,17 @@ init python in distribute:
os.path.join(config.renpy_base, "lib/linux-x86_64/pythonw"),
True)
armfn = os.path.join(config.renpy_base, "lib/linux-armv7l/pythonw")
if os.path.exists(armfn):
self.add_file(
raspi,
"lib/linux-armv7l/" + self.executable_name,
armfn,
True)
self.add_file(
mac,
"lib/darwin-x86_64/" + self.executable_name,
@@ -948,7 +978,7 @@ init python in distribute:
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):
if os.path.exists(icon_fn) and os.path.exists(old_exe_fn):
exe_fn = self.temp_filename("renpy.exe")
main_fn = self.temp_filename("main.exe")
@@ -962,8 +992,16 @@ init python in distribute:
exe_fn = old_exe_fn
main_fn = old_main_fn
self.add_file(windows, self.exe, exe_fn)
self.add_file(windows, "lib/windows-i686/" + self.exe, main_fn)
if os.path.exists(exe_fn):
self.add_file(windows, self.exe, exe_fn)
self.add_file(windows, "lib/windows-i686/" + self.exe, main_fn)
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):
"""
@@ -1009,7 +1047,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
@@ -1028,6 +1066,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:
@@ -1063,6 +1104,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.
@@ -1078,7 +1120,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..."),
@@ -1089,14 +1131,16 @@ 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 prepare_file_list(self, format, file_lists):
"""
@@ -1204,7 +1248,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")
@@ -1234,71 +1278,76 @@ init python in distribute:
file_hash, old_fl_hash = self.build_cache.get(full_filename, ("", ""))
if directory or old_fl_hash != fl_hash:
if (not directory) and (old_fl_hash == fl_hash) and not(self.build['renpy'] and (variant == "sdk")):
if format == "tar.bz2":
pkg = TarPackage(path, "w:bz2")
elif format == "update":
pkg = TarPackage(path, "w", notime=True)
elif format == "zip" or format == "app-zip":
pkg = ZipPackage(path)
elif directory:
pkg = DirectoryPackage(path)
if file_hash:
self.build_cache[full_filename] = (file_hash, fl_hash)
for i, f in enumerate(fl):
self.reporter.progress(_("Writing the [variant] [format] package."), i, len(fl), variant=variant, format=format)
return
if f.directory:
pkg.add_directory(f.name, f.path)
else:
pkg.add_file(f.name, f.path, f.executable)
self.reporter.progress_done()
pkg.close()
if format == "update":
# Build the zsync file.
self.reporter.info(_("Making the [variant] update zsync file."), variant=variant)
cmd = [
updater.zsync_path("zsyncmake"),
"-z",
# -u url to gzipped data - not a local filename!
"-u", filename + ".update.gz",
"-o", os.path.join(self.destination, filename + ".zsync"),
os.path.abspath(path),
]
subprocess.check_call([ renpy.fsencode(i) for i in cmd ])
# Build the sums file. This is a file with an adler32 hash of each 64k block
# of the zsync file. It's used to help us determine how much of the file is
# downloaded.
with open(path, "rb") as src:
with open(renpy.fsencode(os.path.join(self.destination, filename + ".sums")), "wb") as sums:
while True:
data = src.read(65536)
if not data:
break
sums.write(struct.pack("<I", zlib.adler32(data) & 0xffffffff))
def done():
"""
This is called when the build of the package is done, either
in this thread or a background thread.
"""
if self.include_update and not self.build_update and not dlc:
os.unlink(update_fn)
if os.path.exists(update_fn):
os.unlink(update_fn)
if not directory:
file_hash = hash_file(path)
else:
file_hash = ""
if dmg:
self.make_dmg(filename, path, dmg_path)
shutil.rmtree(path)
if file_hash:
self.build_cache[full_filename] = (file_hash, fl_hash)
if format == "tar.bz2":
pkg = TarPackage(path, "w:bz2")
elif format == "update":
pkg = UpdatePackage(path, filename, self.destination)
elif format == "zip" or format == "app-zip":
if self.build['renpy']:
pkg = ExternalZipPackage(path)
else:
pkg = ZipPackage(path)
elif dmg:
def make_dmg():
self.make_dmg(filename, path, dmg_path)
shutil.rmtree(path)
pkg = DMGPackage(path, make_dmg)
elif directory:
pkg = DirectoryPackage(path)
# If we want to build in parallel.
if self.build['renpy']:
pkg = ParallelPackage(pkg, done, variant + "." + format)
done = None
for i, f in enumerate(fl):
self.reporter.progress(_("Writing the [variant] [format] package."), i, len(fl), variant=variant, format=format)
if f.directory:
pkg.add_directory(f.name, f.path)
else:
pkg.add_file(f.name, f.path, f.executable)
self.reporter.progress_done()
if format == "update":
# Build the zsync file.
self.reporter.info(_("Making the [variant] update zsync file."), variant=variant)
pkg.close()
if done is not None:
done()
if file_hash:
self.build_cache[full_filename] = (file_hash, fl_hash)
def finish_updates(self, packages):
"""
@@ -1374,13 +1423,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):
"""
@@ -1419,7 +1468,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("[", "{")
@@ -1440,6 +1489,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()
@@ -1451,7 +1501,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
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -154,7 +154,7 @@ screen build_distributions:
has vbox
label _("Build Distributions: [project.current.name!q]")
label _("Build Distributions: [project.current.display_name!q]")
add HALF_SPACER
+53
View File
@@ -0,0 +1,53 @@
# Copyright 2004-2019 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.
# This file checks to see if we're inside a dmg, and displays an error
# message to the player if we are.
init python:
def dmgcheck():
if not renpy.macintosh:
return
fn = os.path.join(config.renpy_base, "dmgcheck.txt")
try:
if os.path.exists(fn):
os.unlink(fn)
with open(fn, "wb") as f:
f.write("Testing to see if we're in a DMG.\r\n")
os.unlink(fn)
return
except:
# If we're here, we didn't make it through the checks safely. So
# put up a warning message.
interface.info(
message=_("Ren'Py is running from a read only folder. Some functionality will not work."),
submessage=_("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.") % (os.path.basename(config.renpy_base)),
)
+5 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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,7 +56,10 @@ init python:
try:
# Open the URL.
self.urlfile = urllib2.urlopen(url)
import ssl
context = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH, cafile=renpy.loader.transfn("cacert.pem"))
self.urlfile = urllib2.urlopen(url, context=context)
t = threading.Thread(target=self.thread)
t.daemon = True
+73 -11
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -140,19 +140,47 @@ init 1 python in editor:
Creates the list of FancyEditorInfo objects.
"""
import platform
global fancy_editors
scan_all()
fei = fancy_editors = [ ]
# Atom.
AD = _("(Recommended) A modern and approachable text editor.")
if renpy.windows:
dlc = "atom-windows"
installed = os.path.exists(os.path.join(config.basedir, "atom/atom-windows"))
elif renpy.macintosh:
dlc = "atom-mac"
installed = os.path.exists(os.path.join(config.basedir, "atom/Atom.app"))
else:
dlc = "atom-linux"
installed = os.path.exists(os.path.join(config.basedir, "atom/atom-linux-" + platform.machine()))
e = FancyEditorInfo(
0,
"Atom",
AD,
dlc,
_("Up to 150 MB download required."),
None)
e.installed = e.installed and installed
fei.append(e)
# Editra.
ED = _("{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.")
EDL = _("{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.")
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-win32"))
installed = os.path.exists(os.path.join(config.basedir, "editra/editra.exe"))
description = ED
error_message = None
elif renpy.macintosh:
@@ -174,7 +202,7 @@ init 1 python in editor:
_("Up to 22 MB download required."),
error_message)
e.installed = e.installed or installed
e.installed = e.installed and installed
fei.append(e)
@@ -190,12 +218,12 @@ init 1 python in editor:
fei.append(FancyEditorInfo(
3,
"System Editor",
_("System Editor"),
_("Invokes the editor your operating system has associated with .rpy files."),
None))
for k in editors:
if k in [ "Editra", "jEdit", "System Editor", "None" ]:
if k in [ "Atom", "Editra", "jEdit", "System Editor", "None" ]:
continue
fei.append(FancyEditorInfo(
@@ -206,7 +234,7 @@ init 1 python in editor:
fei.append(FancyEditorInfo(
5,
"None",
_("None"),
_("Prevents Ren'Py from opening a text editor."),
None))
@@ -307,7 +335,7 @@ init 1 python in editor:
class Edit(Action):
alt = "Edit [text]."
alt = _("Edit [text].")
def __init__(self, filename, line=None, check=False):
"""
@@ -410,8 +438,6 @@ init 1 python in editor:
Opens all scripts that are part of the current project in a web browser.
"""
alt = "Edit [text]."
def __init__(self):
return
@@ -444,6 +470,42 @@ init 1 python in editor:
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)
class EditProject(Action):
"""
Opens the project's base directory in an editor.
"""
def __call__(self):
if not check_editor():
return
try:
e = renpy.editor.editor
e.begin()
e.open_project(project.current.path)
e.end()
except Exception, 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)
def CanEditProject():
"""
Returns True if EditProject can be used.
"""
try:
e = renpy.editor.editor
return e.has_projects
except:
return False
screen editor:
frame:
Binary file not shown.
Binary file not shown.
+11 -12
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -162,7 +162,7 @@ screen front_page_project_list:
null height 12
textbutton _("Tutorial") action project.Select("tutorial") style "l_list" alt _("Select project [text].")
textbutton _("Tutorial") action project.SelectTutorial() style "l_list" alt _("Select project [text].")
textbutton _("The Question") action project.Select("the_question") style "l_list" alt _("Select project [text].")
@@ -178,7 +178,7 @@ screen front_page_project:
frame style "l_label":
has hbox xfill True
text "[p.name!q]" style "l_label_text"
text "[p.display_name!q]" style "l_label_text"
label _("Active Project") style "l_alternate"
grid 2 1:
@@ -211,18 +211,14 @@ screen front_page_project:
textbutton "gui.rpy" action editor.Edit("game/gui.rpy", check=True)
textbutton "screens.rpy" action editor.Edit("game/screens.rpy", check=True)
textbutton _("All script files") action editor.EditAll()
if editor.CanEditProject():
textbutton _("Open project") action editor.EditProject()
else:
textbutton _("All script files") action editor.EditAll()
add SPACER
add SEPARATOR
add SPACER
frame style "l_indent":
has vbox
textbutton _("Navigate Script") text_size 30 action Jump("navigation")
add SPACER
label _("Actions") style "l_label_small"
grid 2 1:
xfill True
@@ -231,6 +227,7 @@ screen front_page_project:
frame style "l_indent":
has vbox
textbutton _("Navigate Script") action Jump("navigation")
textbutton _("Check Script (Lint)") action Jump("lint")
if project.current.exists("game/gui.rpy"):
@@ -252,6 +249,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")
@@ -260,6 +258,7 @@ label main_menu:
label start:
show screen bottom_info
$ dmgcheck()
label front_page:
call screen front_page
+54 -29
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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,7 +25,7 @@ define gui.asian = False
init -1 python:
import gui7
from gui7 import translate_define, translate_copy
from gui7 import translate_define, translate_copy, translate_code
import os
@@ -63,10 +63,13 @@ init -1 python:
config.language_callbacks[language].append(callback)
def s(s):
return '"' + s + '"'
gui7.translate_copy(language, fullfont, font)
gui7.translate_define(language, "gui.default_font", repr(font))
gui7.translate_define(language, "gui.name_font", repr(font))
gui7.translate_define(language, "gui.interface_font", repr(font))
gui7.translate_define(language, "gui.text_font", s(font))
gui7.translate_define(language, "gui.name_text_font", s(font))
gui7.translate_define(language, "gui.interface_text_font", s(font))
for fn in [ "gui.rpy", "options.rpy", "screens.rpy" ]:
@@ -287,6 +290,7 @@ screen choose_gui_color():
if gui_color:
textbutton _("Continue") action Return(True) style "l_right_button"
key "input_enter" action Return(True)
label change_gui:
@@ -323,25 +327,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
@@ -357,11 +342,49 @@ label gui_project_size:
((1066, 600), "1066x600"),
((1280, 720), "1280x720"),
((1920, 1080), "1920x1080"),
("custom", _("Custom. The GUI is optimized for a 16:9 aspect ratio.")),
],
(1280, 720),
cancel=Jump("front_page"),
)
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,
)
try:
gui_width = int(gui_width)
except:
interface.error(_("The width must be a number."), label=None)
continue
break
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,
)
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)
label gui_project_common:
$ gui_color = (DARK_COLORS[0], "#000000", False)
@@ -403,21 +426,22 @@ 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))()
if gui_new:
call update_renpy_strings
call update_renpy_strings_common
python hide:
if gui.project_system_font:
with open(os.path.join(project.current.gamedir, "tl/None/common.rpym"), "ab") as f:
f.write("define gui.system_font = {!r}\r\n".format(gui.project_system_font))
f.write("define gui.system_font = {!r}\r\n".format(gui.project_system_font).encode("utf-8"))
label gui_generate_images:
@@ -425,6 +449,7 @@ label gui_generate_images:
python:
interface.processing(_("Updating the project..."))
project.current.launch([ 'gui_images' ])
project.current.launch([ 'gui_images' ], env={ "RENPY_VARIANT" : "small phone" }, wait=True)
project.current.launch([ 'gui_images' ], wait=True)
jump front_page
+3 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
from gui7.code import CodeGenerator, translate_define, translate_copy
from gui7.code import CodeGenerator, translate_define, translate_copy, translate_code
from gui7.images import ImageGenerator
from gui7.parameters import GuiParameters
@@ -30,7 +30,7 @@ import os
def generate_gui(p):
ImageGenerator(p).generate_all()
CodeGenerator(p).generate_gui("gui.rpy")
CodeGenerator(p).generate_gui("gui.rpy", defines=True)
CodeGenerator(p).generate_gui("screens.rpy")
CodeGenerator(p).generate_code("options.rpy")
CodeGenerator(p).copy_script("script.rpy")
+36 -6
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -39,6 +39,7 @@ class Define(object):
self.value = value
self.comment = comment
# A map from language name to a list of defines.
language_defines = collections.defaultdict(list)
@@ -85,6 +86,20 @@ def translate_copy(language, src, dst):
language_copies[language].append((src, dst))
# A map from language name and filename to code that should be added to the
# end of a newly-generated file.
language_code = collections.defaultdict(list)
def translate_code(language, filename, code):
"""
This function can be called to include a block of code verbatim
into `file` when a game is generated in `language`.
"""
language_code[language, filename].extend([''] + code.split("\n"))
class CodeGenerator(object):
"""
This is used to generate and update the GUI code.
@@ -305,7 +320,8 @@ class CodeGenerator(object):
hashpad = False
s = renpy.translation.translate_string(s, language=self.p.language)
m = re.match(r'## ([ *]*)(.*)', s)
m = re.match(r'## ?([ *]*)(.*)', s)
prefix = m.group(1)
empty = ' ' * len(prefix)
@@ -324,7 +340,7 @@ class CodeGenerator(object):
s = indent + empty + s
if hashpad and len(s) < 79:
s = s + " " + "#" * (79 - len(s))
s = s + ' ' + "#" * (79 - len(s))
lines.append(s)
@@ -366,20 +382,32 @@ class CodeGenerator(object):
if not os.path.exists(src):
src = os.path.join(self.p.template, name)
shutil.copy(src, dst)
self.load_template(src)
self.remove_scale()
self.write_target(dst)
def generate_gui(self, fn):
def add_code(self, fn):
if not self.p.replace_code:
return
self.lines.extend(language_code[self.p.language, fn])
def generate_gui(self, fn, defines=False):
if not self.p.update_code:
return
self.load_template(fn)
self.update_gui_defines()
if defines:
self.update_gui_defines()
if self.p.replace_code:
self.remove_scale()
self.update_size()
self.translate_strings()
self.translate_comments()
self.add_code(fn)
self.write_target(fn)
@@ -396,4 +424,6 @@ class CodeGenerator(object):
self.translate_comments()
self.update_options_defines()
self.add_code(fn)
self.write_target(fn)
+5 -12
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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()
+5 -6
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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,6 +26,7 @@ import time
WIDTH = 1280
HEIGHT = 720
class GuiParameters(object):
"""
This represents the parameters to the gui. This is used to initialize
@@ -52,7 +53,7 @@ class GuiParameters(object):
self.light = light
if light:
self.hover_color = self.accent_color # .tint(.95)
self.hover_color = self.accent_color # .tint(.95)
self.muted_color = self.accent_color.tint(.6)
self.hover_muted_color = self.accent_color.tint(.4)
else:
@@ -74,12 +75,11 @@ class GuiParameters(object):
else:
self.selected_color = Color("#ffffff")
self.idle_color = Color("#555555")
self.idle_color = Color("#888888")
self.idle_small_color = Color("#aaaaaa")
self.text_color = Color("#ffffff")
self.choice_color = Color("#cccccc")
self.insensitive_color = self.idle_color.replace_opacity(.5)
self.language = language
@@ -97,7 +97,7 @@ class GuiParameters(object):
self.name = name
GOOD_CHARACTERS = "123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMMOPQRSTUVWXYZ-_"
GOOD_CHARACTERS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_"
simple_name = "".join(i for i in name if i in GOOD_CHARACTERS).encode("ascii")
@@ -107,4 +107,3 @@ class GuiParameters(object):
self.simple_name = simple_name
self.savedir = self.simple_name + "-" + str(int(time.time()))
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

After

Width:  |  Height:  |  Size: 77 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 83 B

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

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 B

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

+63 -14
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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,7 +22,7 @@
################################################################################
# Interface actions.
init python in interface:
from store import OpenURL, config, Return
from store import OpenURL, config, Return, _preferences
import store
import os.path
@@ -66,6 +66,15 @@ init python in interface:
else:
return OpenURL(LICENSE_URL)
def get_sponsor_url():
"""
Returns the URL to the sponsors page.
"""
return "https://www.renpy.org/sponsors.html?version={}&language={}".format(
renpy.version_only,
_preferences.language or "english"
)
# Should we display the bottom links?
links = True
@@ -99,6 +108,9 @@ screen bottom_info:
ypos 536
yanchor 0.0
has vbox:
spacing 20
hbox:
xfill True
@@ -119,6 +131,20 @@ screen bottom_info:
textbutton _("preferences") style "l_link" action Jump("preferences")
textbutton _("quit") style "l_link" action Quit(confirm=False)
if persistent.sponsor_message:
textbutton _("Ren'Py Sponsor Information"):
style "l_link"
text_color "#F96854"
text_hover_color Color("#F96854").tint(.8)
xalign 0.0
yalign 1.0
yoffset -10
action OpenURL(interface.get_sponsor_url())
screen common:
@@ -225,7 +251,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
@@ -243,6 +275,7 @@ init python in interface:
import traceback
from store import Jump
import store._errorhandling as _errorhandling
def common(title, title_color, message, submessage=None, back=None, continue_=None, pause0=False, show_screen=False, **kwargs):
"""
@@ -327,6 +360,13 @@ init python in interface:
common(_("ERROR"), store.ERROR_COLOR, message=message, submessage=submessage, back=action, **kwargs)
store._ignore_action = Jump("front_page")
_errorhandling.rollback = False
_errorhandling.ignore = True
_errorhandling.reload = False
_errorhandling.console = False
@contextlib.contextmanager
def error_handling(what, label="front_page"):
"""
@@ -342,24 +382,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")
"""
try:
yield
except Exception, e:
import traceback
traceback.print_exc()
except Exception as e:
renpy.renpy.error.report_exception(e, editor=False)
error(_("While [what!q], an error occured:"),
error(_("While [what!qt], an error occured:"),
_("[exception!q]"),
what=what,
label=label,
exception=traceback.format_exception_only(type(e), e)[-1][:-1])
def input(title, message, filename=False, sanitize=True, cancel=None, default=""):
import string
DIGITS_LETTERS = string.digits
PROJECT_LETTERS = DIGITS_LETTERS + string.ascii_letters + " _"
FILENAME_LETTERS = PROJECT_LETTERS + "\\/"
TRANSLATE_LETTERS = string.ascii_letters + "_"
def input(title, message, filename=False, sanitize=True, cancel=None, allow=None, default=""):
"""
Requests typewritten input from the user.
"""
@@ -368,7 +412,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):
@@ -482,6 +534,3 @@ init python in interface:
"""
return common(_("CHOICE"), store.QUESTION_COLOR, message, choices=choices, selected=selected, **kwargs)
+17 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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:
@@ -119,6 +120,10 @@ init python:
return os.path.join(persistent.xcode_projects_directory, xcode_name(p.name))
def ios_create(p=None, gui=True):
project.current.update_dump(force=True)
name = project.current.dump.get("name", None)
version = project.current.dump.get("version", None)
dest = xcode_project(p)
@@ -135,7 +140,7 @@ 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)
@@ -187,6 +192,15 @@ init python:
os.unlink(py_fn)
ios_image(p, "ios-icon.png", "Media.xcassets/AppIcon.appiconset", True)
ios_image(p, "ios-launchimage.png", "Media.xcassets/LaunchImage.launchimage", False)
def ios_image(p, source, destination, scale):
source = os.path.join(p.path, source)
destination = os.path.join(xcode_project(p), destination)
renios.image.generate(source, destination, scale)
def launch_xcode():
dist = xcode_project(None)
@@ -208,7 +222,7 @@ screen ios:
has vbox
label _("iOS: [project.current.name!q]")
label _("iOS: [project.current.display_name!q]")
add HALF_SPACER
+64 -21
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
import ssl
with interface.error_handling(_("Downloading the itch.io butler.")):
context = ssl._create_unverified_context()
response = urllib2.urlopen("https://broth.itch.ovh/butler/{}/LATEST/archive/default".format(platform), context=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"]
@@ -69,18 +105,25 @@ label itch:
fn = os.path.join(destination, fn)
if fn.endswith("-all.zip"):
channel = "all"
channel = "win-osx-linux"
elif fn.endswith("-market.zip"):
channel = "win-osx-linux"
elif fn.endswith("-pc.zip"):
channel = "win-linux"
elif fn.endswith("-win.zip"):
channel = "win"
elif fn.endswith("-mac.zip"):
channel = "mac"
channel = "osx"
# Butler doesn't seem to support .bz2s yet.
elif fn.endswith("-linux.tar.bz2"):
channel = "linux"
# elif fn.endswith("-linux.tar.bz2"):
# channel = "linux"
elif fn.endswith("-release.apk"):
channel = "android"
else:
continue
@@ -93,8 +136,6 @@ label itch:
label="build_distributions"
)
butler = find_itch_butler()
if not butler:
interface.error(
_("The butler program was not found."),
@@ -119,7 +160,9 @@ label itch:
butler,
"push",
filename,
itch_project + ":" + build["version"] + "-" + channel,
itch_project + ":" + channel,
"--userversion",
build["version"],
)
cc.run()
+12 -5
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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,7 +84,8 @@ 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):
@@ -163,6 +164,8 @@ init -1 python:
def call(self, cmd, cancel=False, use_path=False, yes=False):
renpy.not_infinite_loop(30)
cmd = [ renpy.fsencode(i) for i in cmd ]
self.cmd = cmd
@@ -187,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)
@@ -212,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
@@ -220,6 +225,8 @@ init -1 python:
rv = self.process.poll()
if rv is not None:
renpy.not_infinite_loop(30)
if rv:
raise subprocess.CalledProcessError(rv, self.cmd)
else:
+4 -2
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -165,7 +165,8 @@ screen navigation:
frame style "l_label":
has hbox xfill True
text _("Navigate: [project.current.name]") style "l_label_text"
text _("Navigate: [project.current.display_name!q]") style "l_label_text"
alt _("Navigate Script")
frame:
style "l_alternate"
@@ -192,6 +193,7 @@ screen navigation:
hbox:
spacing HALF_INDENT
text _("Category:")
alt ""
textbutton _("files") action navigation.ChangeKind("file")
textbutton _("labels") action navigation.ChangeKind("label")
+44 -29
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -63,17 +63,51 @@ label new_project:
$ interface.error(_("The projects directory could not be set. Giving up."))
python:
if persistent.legacy:
check_language_support()
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"),
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]{#this substitution may be localized} language project. Change the launcher language in preferences to create a project in another language."))
python:
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:
@@ -115,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:
@@ -141,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.
@@ -169,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))()
+45 -5
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -269,7 +269,24 @@ init python:
build.classify_renpy("**/thumbs.db", None)
build.classify_renpy("**/.*", None)
# Atom rules. These have to be very early, since Atom uses names like
# tmp for packages.
build.classify_renpy("atom/", "atom-all source_only")
build.classify_renpy("atom/Atom.edit.py", "atom-all source_only")
build.classify_renpy("atom/default-dot-atom/**", "atom-all")
build.classify_renpy("atom/atom-windows/**", "atom-windows")
build.classify_renpy("atom/Atom.app/**", "atom-mac")
build.classify_renpy("atom/atom-linux**", "atom-linux")
try:
with open(os.path.join(config.renpy_base, "atom", "executable.txt")) as f:
for l in f:
build.executable(l.strip())
except:
pass
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)
@@ -280,6 +297,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)
@@ -292,6 +312,7 @@ init python:
build.classify_renpy("**/tmp/", None)
build.classify_renpy("**/.Editra", None)
# main source.
def source_and_binary(pattern, source="source", binary="binary"):
@@ -316,7 +337,6 @@ init python:
build.classify_renpy("gui/game/gui/", None)
source_and_binary("launcher")
source_and_binary("templates", binary=None)
source_and_binary("gui", binary=None)
source_and_binary("the_question")
@@ -329,6 +349,14 @@ init python:
build.classify_renpy("doc/**", "source")
build.classify_renpy("LICENSE.txt", "source")
build.classify_renpy("sphinx/", "source_only")
build.classify_renpy("sphinx/build.sh", "source_only")
build.classify_renpy("sphinx/checks.py", "source_only")
build.classify_renpy("sphinx/game/**", "source_only")
build.classify_renpy("sphinx/source/inc/", None)
build.classify_renpy("sphinx/source/**", "source_only")
# module.
build.classify_renpy("module/", "source")
build.classify_renpy("module/*.c", "source")
@@ -342,12 +370,15 @@ 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/linux-armv7l/", "raspi")
build.classify_renpy("lib/linux-armv7l/**", "raspi")
build.classify_renpy("lib/**", "binary")
build.classify_renpy("renpy.sh", "binary")
# renpy.app is now built from scratch from distribute.rpy.
@@ -362,24 +393,33 @@ init python:
build.classify_renpy("editra/Editra-mac.app/**", "editra-mac")
build.classify_renpy("editra/lib/**", "editra-windows")
build.classify_renpy("editra/editra.exe", "editra-windows")
# Executable rules.
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("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.
define config.translate_launcher = True
# Reduce the rate of screen updates.
default preferences.gl_powersave = True
+180 -15
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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,13 +28,22 @@ init python in distribute:
import struct
import stat
import shutil
import sys
import threading
from renpy import six
from zipfile import crc32
zlib.Z_DEFAULT_COMPRESSION = 9
# 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."""
@@ -65,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)
@@ -91,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
@@ -141,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)
@@ -155,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)
@@ -186,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
@@ -210,11 +232,49 @@ init python in distribute:
def close(self):
self.tarfile.close()
class UpdatePackage(TarPackage):
def __init__(self, filename, basename, destination):
self.path = filename
self.basename = basename
self.destination = destination
TarPackage.__init__(self, filename, "w", notime=True)
def close(self):
TarPackage.close(self)
cmd = [
updater.zsync_path("zsyncmake"),
"-z",
# -u url to gzipped data - not a local filename!
"-u", self.basename + ".update.gz",
"-o", os.path.join(self.destination, self.basename + ".zsync"),
os.path.abspath(self.path),
]
subprocess.check_call([ renpy.fsencode(i) for i in cmd ])
# Build the sums file. This is a file with an adler32 hash of each 64k block
# of the zsync file. It's used to help us determine how much of the file is
# downloaded.
with open(self.path, "rb") as src:
with open(renpy.fsencode(os.path.join(self.destination, self.basename + ".sums")), "wb") as sums:
while True:
data = src.read(65536)
if not data:
break
sums.write(struct.pack("<I", zlib.adler32(data) & 0xffffffff))
class DirectoryPackage(object):
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
@@ -223,12 +283,15 @@ init python in distribute:
def add_file(self, name, path, xbit):
fn = os.path.join(self.path, name)
# If this is not a directory, ensure all parent directories
# have been created
self.mkdir(os.path.dirname(fn))
shutil.copy2(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)
@@ -237,4 +300,106 @@ init python in distribute:
def close(self):
return
class ExternalZipPackage(object):
def __init__(self, path):
self.path = path
self.directory = path + ".zd"
self.dp = DirectoryPackage(self.directory)
def add_file(self, name, path, xbit):
self.dp.add_file(name, path, xbit)
def add_directory(self, name, path):
self.dp.add_directory(name, path)
def close(self):
self.dp.close()
if os.path.exists(self.path):
os.unlink(self.path)
p = subprocess.Popen([
"zip",
"-9rq",
os.path.abspath(self.path),
] + os.listdir(self.directory),
cwd=os.path.abspath(self.directory)
)
p.wait()
shutil.rmtree(self.directory)
class DMGPackage(DirectoryPackage):
def __init__(self, path, make_dmg):
self.make_dmg = make_dmg
DirectoryPackage.__init__(self, path)
def close(self):
DirectoryPackage.close(self)
self.make_dmg()
parallel_threads = [ ]
class ParallelPackage(object):
def __init__(self, package, done, what):
self.package = package
self.done = done
self.what = what
self.worklist = [ ]
def add_file(self, name, path, xbit):
self.worklist.append((False, name, path, xbit))
def add_directory(self, name, path):
self.worklist.append((True, name, path, True))
def close(self):
t = threading.Thread(target=self.run)
t.start()
self.thread = t
parallel_threads.append(self)
def run(self):
for i in self.worklist:
directory, name, path, xbit = i
if directory:
self.package.add_directory(name, path)
else:
self.package.add_file(name, path, xbit)
self.package.close()
def wait_parallel_threads():
t = 0
while parallel_threads:
alive = [ ]
for i in parallel_threads:
i.thread.join(0)
if i.thread.is_alive():
alive.append(i)
if not alive:
break
t += 1
print(t, " ".join(sorted([ i.what for i in alive ])))
time.sleep(1)
for i in parallel_threads:
if i.done:
i.done()
+43 -36
View File
@@ -55,6 +55,13 @@ import math
import exceptions
import string
import array
from renpy import six
# Since the long type doesn't exist on py3, define it here
if six.PY3:
long = int
sha1, sha256, sha512, md5 = None, None, None, None
@@ -85,8 +92,8 @@ IMAGE_OS2_SIGNATURE_LE = 0x454C
IMAGE_VXD_SIGNATURE = 0x454C
IMAGE_NT_SIGNATURE = 0x00004550
IMAGE_NUMBEROF_DIRECTORY_ENTRIES= 16
IMAGE_ORDINAL_FLAG = 0x80000000L
IMAGE_ORDINAL_FLAG64 = 0x8000000000000000L
IMAGE_ORDINAL_FLAG = 0x80000000
IMAGE_ORDINAL_FLAG64 = long(0x8000000000000000)
OPTIONAL_HEADER_MAGIC_PE = 0x10b
OPTIONAL_HEADER_MAGIC_PE_PLUS = 0x20b
@@ -169,7 +176,7 @@ section_characteristics = [
('IMAGE_SCN_MEM_SHARED', 0x10000000),
('IMAGE_SCN_MEM_EXECUTE', 0x20000000),
('IMAGE_SCN_MEM_READ', 0x40000000),
('IMAGE_SCN_MEM_WRITE', 0x80000000L) ]
('IMAGE_SCN_MEM_WRITE', 0x80000000) ]
SECTION_CHARACTERISTICS = dict([(e[1], e[0]) for e in
section_characteristics]+section_characteristics)
@@ -576,7 +583,7 @@ class UnicodeStringWrapperPostProcessor:
try:
data = self.pe.get_data(self.rva_ptr, 2)
except PEFormatError, e:
except PEFormatError as e:
return False
if len(data)<2:
@@ -816,12 +823,12 @@ class Structure:
for key in keys:
val = getattr(self, key)
if isinstance(val, int) or isinstance(val, long):
if isinstance(val, six.integer_types):
val_str = '0x%-8X' % (val)
if key == 'TimeDateStamp' or key == 'dwTimeStamp':
try:
val_str += ' [%s UTC]' % time.asctime(time.gmtime(val))
except exceptions.ValueError, e:
except exceptions.ValueError as e:
val_str += ' [INVALID TIME]'
else:
val_str = ''.join(filter(lambda c:c != '\0', str(val)))
@@ -890,7 +897,7 @@ class SectionStructure(Structure):
return self.VirtualAddress <= rva < self.VirtualAddress + size
def contains(self, rva):
#print "DEPRECATION WARNING: you should use contains_rva() instead of contains()"
#print("DEPRECATION WARNING: you should use contains_rva() instead of contains()")
return self.contains_rva(rva)
@@ -1373,7 +1380,7 @@ class PE:
try:
structure.__unpack__(data)
except PEFormatError, err:
except PEFormatError as err:
self.__warnings.append(
'Corrupt header "%s" at file offset %d. Exception: %s' % (
format[0], file_offset, str(err)) )
@@ -1557,7 +1564,7 @@ class PE:
'Normal values are never larger than 0x10, the value is: 0x%x' %
self.OPTIONAL_HEADER.NumberOfRvaAndSizes )
for i in xrange(int(0x7fffffffL & self.OPTIONAL_HEADER.NumberOfRvaAndSizes)):
for i in xrange(int(0x7fffffff & self.OPTIONAL_HEADER.NumberOfRvaAndSizes)):
if len(self.__data__[offset:]) == 0:
break
@@ -2115,7 +2122,7 @@ class PE:
for idx in xrange(size/dbg_size):
try:
data = self.get_data(rva+dbg_size*idx, dbg_size)
except PEFormatError, e:
except PEFormatError as e:
self.__warnings.append(
'Invalid debug information. Can\'t read ' +
'data at RVA: 0x%x' % rva)
@@ -2169,7 +2176,7 @@ class PE:
# If the RVA is invalid all would blow up. Some EXEs seem to be
# specially nasty and have an invalid RVA.
data = self.get_data(rva, Structure(self.__IMAGE_RESOURCE_DIRECTORY_format__).sizeof() )
except PEFormatError, e:
except PEFormatError as e:
self.__warnings.append(
'Invalid resources directory. Can\'t read ' +
'directory data at RVA: 0x%x' % rva)
@@ -2229,7 +2236,7 @@ class PE:
entry_name = UnicodeStringWrapperPostProcessor(self, ustr_offset)
strings_to_postprocess.append(entry_name)
except PEFormatError, excp:
except PEFormatError as excp:
self.__warnings.append(
'Error parsing the resources directory, ' +
'attempting to read entry name. ' +
@@ -2330,7 +2337,7 @@ class PE:
# If the RVA is invalid all would blow up. Some EXEs seem to be
# specially nasty and have an invalid RVA.
data = self.get_data(rva, Structure(self.__IMAGE_RESOURCE_DATA_ENTRY_format__).sizeof() )
except PEFormatError, excp:
except PEFormatError as excp:
self.__warnings.append(
'Error parsing a resource directory data entry, ' +
'the RVA is invalid: 0x%x' % ( rva ) )
@@ -2355,13 +2362,13 @@ class PE:
return None
#resource.NameIsString = (resource.Name & 0x80000000L) >> 31
resource.NameOffset = resource.Name & 0x7FFFFFFFL
resource.NameOffset = resource.Name & 0x7FFFFFFF
resource.__pad = resource.Name & 0xFFFF0000L
resource.Id = resource.Name & 0x0000FFFFL
resource.__pad = resource.Name & 0xFFFF0000
resource.Id = resource.Name & 0x0000FFFF
resource.DataIsDirectory = (resource.OffsetToData & 0x80000000L) >> 31
resource.OffsetToDirectory = resource.OffsetToData & 0x7FFFFFFFL
resource.DataIsDirectory = (resource.OffsetToData & 0x80000000) >> 31
resource.OffsetToDirectory = resource.OffsetToData & 0x7FFFFFFF
return resource
@@ -2409,7 +2416,7 @@ class PE:
ustr_offset = version_struct.OffsetToData + versioninfo_struct.sizeof()
try:
versioninfo_string = self.get_string_u_at_rva( ustr_offset )
except PEFormatError, excp:
except PEFormatError as excp:
self.__warnings.append(
'Error parsing the version information, ' +
'attempting to read VS_VERSION_INFO string. Can\'t ' +
@@ -2489,7 +2496,7 @@ class PE:
stringfileinfo_offset + versioninfo_struct.sizeof() )
try:
stringfileinfo_string = self.get_string_u_at_rva( ustr_offset )
except PEFormatError, excp:
except PEFormatError as excp:
self.__warnings.append(
'Error parsing the version information, ' +
'attempting to read StringFileInfo string. Can\'t ' +
@@ -2535,7 +2542,7 @@ class PE:
stringtable_struct.sizeof() )
try:
stringtable_string = self.get_string_u_at_rva( ustr_offset )
except PEFormatError, excp:
except PEFormatError as excp:
self.__warnings.append(
'Error parsing the version information, ' +
'attempting to read StringTable string. Can\'t ' +
@@ -2570,7 +2577,7 @@ class PE:
try:
key = self.get_string_u_at_rva( ustr_offset )
key_offset = self.get_offset_from_rva( ustr_offset )
except PEFormatError, excp:
except PEFormatError as excp:
self.__warnings.append(
'Error parsing the version information, ' +
'attempting to read StringTable Key string. Can\'t ' +
@@ -2586,7 +2593,7 @@ class PE:
value = self.get_string_u_at_rva( ustr_offset,
max_length = string_struct.ValueLength )
value_offset = self.get_offset_from_rva( ustr_offset )
except PEFormatError, excp:
except PEFormatError as excp:
self.__warnings.append(
'Error parsing the version information, ' +
'attempting to read StringTable Value string. ' +
@@ -2661,7 +2668,7 @@ class PE:
var_struct.sizeof() )
try:
var_string = self.get_string_u_at_rva( ustr_offset )
except PEFormatError, excp:
except PEFormatError as excp:
self.__warnings.append(
'Error parsing the version information, ' +
'attempting to read VarFileInfo Var string. ' +
@@ -2683,7 +2690,7 @@ class PE:
raw_data[varword_offset+2:varword_offset+4], 0)
varword_offset += 4
if isinstance(word1, (int, long)) and isinstance(word1, (int, long)):
if isinstance(word1, six.integer_types):
var_struct.entry = {var_string: '0x%04x 0x%04x' % (word1, word2)}
var_offset = self.dword_align(
@@ -2830,7 +2837,7 @@ class PE:
# If the RVA is invalid all would blow up. Some PEs seem to be
# specially nasty and have an invalid RVA.
data = self.get_data( rva, Structure(self.__IMAGE_DELAY_IMPORT_DESCRIPTOR_format__).sizeof() )
except PEFormatError, e:
except PEFormatError as e:
self.__warnings.append(
'Error parsing the Delay import directory at RVA: 0x%x' % ( rva ) )
break
@@ -2852,7 +2859,7 @@ class PE:
import_desc.pINT,
import_desc.pIAT,
None)
except PEFormatError, e:
except PEFormatError as e:
self.__warnings.append(
'Error parsing the Delay import directory. ' +
'Invalid import data at RVA: 0x%x' % ( rva ) )
@@ -2883,7 +2890,7 @@ class PE:
# If the RVA is invalid all would blow up. Some EXEs seem to be
# specially nasty and have an invalid RVA.
data = self.get_data(rva, Structure(self.__IMAGE_IMPORT_DESCRIPTOR_format__).sizeof() )
except PEFormatError, e:
except PEFormatError as e:
self.__warnings.append(
'Error parsing the Import directory at RVA: 0x%x' % ( rva ) )
break
@@ -2903,7 +2910,7 @@ class PE:
import_desc.OriginalFirstThunk,
import_desc.FirstThunk,
import_desc.ForwarderChain)
except PEFormatError, excp:
except PEFormatError as excp:
self.__warnings.append(
'Error parsing the Import directory. ' +
'Invalid Import data at RVA: 0x%x' % ( rva ) )
@@ -2936,7 +2943,7 @@ class PE:
imported_symbols = []
imports_section = self.get_section_by_rva(first_thunk)
if not imports_section:
raise PEFormatError, 'Invalid/corrupt imports.'
raise PEFormatError('Invalid/corrupt imports.')
# Import Lookup Table. Contains ordinals or pointers to strings.
@@ -2991,7 +2998,7 @@ class PE:
# Get the Hint
imp_hint = self.get_word_from_data(data, 0)
imp_name = self.get_string_at_rva(table[idx].AddressOfData+2)
except PEFormatError, e:
except PEFormatError as e:
pass
imp_address = first_thunk+self.OPTIONAL_HEADER.ImageBase+idx*4
@@ -3032,7 +3039,7 @@ class PE:
try:
data = self.get_data( rva, Structure(format).sizeof() )
except PEFormatError, e:
except PEFormatError as e:
self.__warnings.append(
'Error parsing the import table. ' +
'Invalid data at RVA: 0x%x' % ( rva ) )
@@ -3137,7 +3144,7 @@ class PE:
end = None
return self.header[rva:end]
raise PEFormatError, 'data at RVA can\'t be fetched. Corrupt header?'
raise PEFormatError('data at RVA can\'t be fetched. Corrupt header?')
return s.get_data(rva, length)
@@ -3160,7 +3167,7 @@ class PE:
s = self.get_section_by_rva(rva)
if not s:
raise PEFormatError, 'data at RVA can\'t be fetched. Corrupt header?'
raise PEFormatError('data at RVA can\'t be fetched. Corrupt header?')
return s.get_offset_from_rva(rva)
@@ -3207,7 +3214,7 @@ class PE:
# If the RVA is invalid all would blow up. Some EXEs seem to be
# specially nasty and have an invalid RVA.
self.get_data(rva, 2)
except PEFormatError, e:
except PEFormatError as e:
return None
#length = struct.unpack('<H', data)[0]
@@ -3744,7 +3751,7 @@ class PE:
offset = self.get_physical_by_rva(rva)
if not offset:
raise False
return False
return self.set_bytes_at_offset(offset, data)
+23 -20
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -45,8 +45,17 @@ init python:
rv.sort()
if ("Piglatin", "piglatin") in rv:
rv.remove(("Piglatin", "piglatin"))
rv.append(("Pig Latin", "piglatin"))
return rv
show_legacy = os.path.exists(os.path.join(config.renpy_base, "templates", "english", "game", "script.rpy"))
default persistent.legacy = False
default persistent.force_new_tutorial = False
default persistent.sponsor_message = True
screen preferences:
@@ -120,23 +129,6 @@ screen preferences:
add SPACER
if ability.can_update:
# Update URL selection.
add SEPARATOR2
frame:
style "l_indent"
yminimum 75
has vbox
text _("Update Channel:")
add HALF_SPACER
frame style "l_indent":
textbutton persistent.update_channel action Jump("update_preference")
frame:
style "l_indent"
xmaximum ONETHIRD
@@ -170,13 +162,24 @@ screen preferences:
add HALF_SPACER
textbutton _("Hardware rendering") style "l_checkbox" action ToggleField(persistent, "gl_enable")
textbutton _("Show templates") style "l_checkbox" action ToggleField(persistent, "show_templates")
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 ]
if renpy.windows:
textbutton _("Console output") style "l_checkbox" action ToggleField(persistent, "windows_console")
if project.manager.get("oldtutorial"):
textbutton _("Force new tutorial") style "l_checkbox" action [ ToggleField(persistent, "force_new_tutorial"), project.SelectTutorial(True) ]
if show_legacy:
textbutton _("Legacy options") style "l_checkbox" action ToggleField(persistent, "legacy")
if persistent.legacy:
textbutton _("Show templates") style "l_checkbox" action ToggleField(persistent, "show_templates")
textbutton _("Sponsor message") style "l_checkbox" action ToggleField(persistent, "sponsor_message")
frame:
style "l_indent"
@@ -223,7 +226,7 @@ screen preferences:
# frame style "l_indent":
for tlname, tlvalue in translations:
textbutton tlname action Language(tlvalue) style "l_list"
textbutton tlname action [ Language(tlvalue), project.SelectTutorial(True) ] style "l_list"
textbutton _("Return") action Jump("front_page") style "l_left_button"
+189 -42
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -30,7 +30,7 @@ init python:
import os
init python in project:
from store import persistent, config, Action, renpy
from store import persistent, config, Action, renpy, _preferences
import store.util as util
import store.interface as interface
@@ -44,6 +44,8 @@ init python in project:
if persistent.blurb is None:
persistent.blurb = 0
project_filter = [ i.strip() for i in os.environ.get("RENPY_PROJECT_FILTER", "").split(":") if i.strip() ]
LAUNCH_BLURBS = [
_("After making changes to the script, press shift+R to reload your game."),
_("Press shift+O (the letter) to access the console."),
@@ -79,6 +81,9 @@ init python in project:
# Load the data.
self.load_data()
# A name to display the project.
self.display_name = self.data.get("display_name", self.name)
# The project's temporary directory.
self.tmp = None
@@ -90,6 +95,10 @@ init python in project:
self.dump_mtime = 0
def get_dump_filename(self):
if os.path.exists(os.path.join(self.gamedir, "saves")):
return os.path.join(self.gamedir, "saves", "navigation.json")
self.make_tmp()
return os.path.join(self.tmp, "navigation.json")
@@ -122,6 +131,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"]
@@ -137,6 +147,18 @@ init python in project:
data["renamed_all"] = True
if "renamed_steam" not in data:
dp = data["packages"]
if "steam" in dp:
dp.remove("steam")
if "market" not in dp:
dp.append("market")
data["renamed_steam"] = True
def make_tmp(self):
"""
Makes the project's temporary directory, if it doesn't exist
@@ -154,8 +176,23 @@ init python in project:
pass
if os.path.isdir(tmp):
self.tmp = tmp
return
try:
fn = os.path.join(tmp, "write_test.txt")
if os.path.exists(fn):
os.unlink(fn)
with open(fn, "w") as f:
f.write("Test")
os.unlink(fn)
self.tmp = tmp
return
except:
pass
self.tmp = tempfile.mkdtemp()
@@ -185,7 +222,7 @@ init python in project:
self.make_tmp()
# Find the python executable to run.
executable_path = os.path.dirname(sys.executable)
executable_path = os.path.dirname(renpy.fsdecode(sys.executable))
if renpy.renpy.windows:
extension = ".exe"
@@ -223,6 +260,7 @@ init python in project:
cmd.append("--json-dump-common")
environ = dict(os.environ)
environ["RENPY_LAUNCHER_LANGUAGE"] = _preferences.language or "english"
environ.update(env)
encoded_environ = { }
@@ -242,6 +280,9 @@ init python in project:
if p.wait():
interface.error(_("Launching the project failed."), _("Please ensure that your project launches normally before running this command."))
renpy.not_infinite_loop(30)
def update_dump(self, force=False, gui=True, compile=False):
"""
If the dumpfile does not exist, runs Ren'Py to create it. Otherwise,
@@ -377,6 +418,10 @@ init python in project:
# Directories that have been scanned.
self.scanned = set()
# The tutorial game, and the language it's for.
self.tutoral = None
self.tutorial_language = "the meowing of a cat"
self.scan()
def scan(self):
@@ -384,6 +429,8 @@ init python in project:
Scans for projects.
"""
global current
if (persistent.projects_directory is not None) and not os.path.isdir(persistent.projects_directory):
persistent.projects_directory = None
@@ -397,6 +444,7 @@ init python in project:
if self.projects_directory is not None:
self.scan_directory(self.projects_directory)
self.scan_directory(config.renpy_base)
self.scan_directory(os.path.join(config.renpy_base, "templates"))
@@ -404,6 +452,17 @@ init python in project:
self.templates.sort(key=lambda p : p.name.lower())
# Select the default project.
if persistent.active_project is not None:
p = self.get(persistent.active_project)
if (p is not None) and (p.name not in [ "tutorial", "tutorial_7" ]):
current = p
return
current = self.get_tutorial()
def find_basedir(self, d):
"""
Try to find a project basedir in d.
@@ -445,52 +504,60 @@ init python in project:
for pdir in util.listdir(d):
ppath = os.path.join(d, pdir)
self.scan_directory_direct(ppath, pdir)
# A project must be a directory.
if not os.path.isdir(ppath):
continue
# If a file called "projects.txt" exists, include any projects listed in it.
extra_projects_fn = os.path.join(d, "projects.txt")
try:
ppath = self.find_basedir(ppath)
except:
continue
if os.path.exists(extra_projects_fn):
if ppath is None:
continue
with open(extra_projects_fn, "r") as f:
if ppath in self.scanned:
continue
for path in f:
path = path.strip()
if len(path) > 0:
self.scan_directory_direct(path)
self.scanned.add(ppath)
# We have a project directory, so create a Project.
p = Project(ppath, pdir)
def scan_directory_direct(self, ppath, name=None):
"""
Checks if there is a project in `ppath` and creates a project
object with the name `name` if so.
"""
project_type = p.data.get("type", "normal")
if project_type == "hidden":
pass
elif project_type == "template":
self.templates.append(p)
else:
self.projects.append(p)
self.all_projects.append(p)
# Select the default project.
if persistent.active_project is not None:
p = self.get(persistent.active_project)
if p is not None:
current = p
return
p = self.get("tutorial")
if p is not None:
current = p
# A project must be a directory.
if not os.path.isdir(ppath):
return
current = None
try:
ppath = self.find_basedir(ppath)
except:
return
if ppath is None:
return
if ppath in self.scanned:
return
self.scanned.add(ppath)
# We have a project directory, so create a Project.
p = Project(ppath, name)
if project_filter and (p.name not in project_filter):
return
project_type = p.data.get("type", "normal")
if project_type == "hidden":
pass
elif project_type == "template":
self.templates.append(p)
else:
self.projects.append(p)
self.all_projects.append(p)
def get(self, name):
@@ -506,6 +573,37 @@ init python in project:
return None
def get_tutorial(self):
language = _preferences.language
if persistent.force_new_tutorial:
language = None
if language == self.tutorial_language:
return self.tutorial
rv = self.get("oldtutorial")
p = self.get("tutorial")
if p is not None:
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
elif not os.path.exists(os.path.join(rv.path, "game", "tl", _preferences.language)):
rv = p
self.tutorial_language = language
self.tutorial = rv
return rv
manager = ProjectManager()
# The current project.
@@ -557,6 +655,55 @@ init python in project:
if self.label is not None:
renpy.jump(self.label)
class SelectTutorial(Action):
"""
Selects the tutorial.
"""
def __init__(self, if_tutorial=False):
"""
Only selects if we're already in a tutorial.
"""
self.if_tutorial = if_tutorial
def __call__(self):
p = manager.get_tutorial()
if p is None:
return
global current
if self.if_tutorial:
if (current is not None) and current.name not in [ "tutorial", "oldtutorial" ]:
return None
current = p
persistent.active_project = p.name
renpy.restart_interaction()
def get_sensitive(self):
if self.if_tutorial:
return True
return (manager.get_tutorial() is not None)
def get_selected(self):
if self.if_tutorial:
return False
p = manager.get_tutorial()
if p is None:
return False
if current is None:
return False
return current.path == p.path
class Launch(Action):
"""
+3 -3
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -109,10 +109,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
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
+104 -23
View File
@@ -1,16 +1,21 @@
init python:
init python:
TEST_PROJECTS = u"/tmp/renpy-moé"
import shutil
testcase default:
call new_project
# call translate_project
# call extract_dialogue
call translate_project
call extract_dialogue
"Delete Persistent"
"Force Recompile"
# call build_project
call build_project
"quit"
testcase new_project:
python:
@@ -24,8 +29,6 @@ testcase new_project:
"refresh"
"Create New Project"
# Kind of interface
"New GUI Interface"
"Continue"
# Name
@@ -39,6 +42,7 @@ testcase new_project:
# Color Selection
"Continue"
testcase choose_colors:
"Change/Update GUI"
"Choose new colors"
@@ -50,26 +54,29 @@ testcase choose_colors:
"Continue"
testcase delete10:
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
testcase delete30:
call delete10
call delete10
call delete10
testcase translate_project:
"Generate Translations"
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
type BACKSPACE
call delete30
type "piglatin"
@@ -87,10 +94,12 @@ testcase translate_project:
"Generate Translations"
"Update Default"
testcase build_project:
"Build Distributions"
"Build"
testcase extract_dialogue_common:
"Extract Dialogue"
"Strip text tags"
@@ -103,8 +112,80 @@ testcase extract_dialogue:
"Continue"
"Continue"
call extract_dialogue_common
"Text Only"
"Continue"
"Continue"
testcase android:
$ _test.timeout = 60.0
$ _test.maximum_framerate = False
"Tutorial"
"Android"
# Download and install RAPT.
if "Yes":
"Yes"
"Proceed"
"Install SDK"
"Yes" until "Continue"
# We have to create the key.
if "Cancel":
type "Test Key"
"Continue"
"Continue"
# Configure the application.
"Configure"
$ _test.maximum_framerate = True
call delete30
type "Ren'Py Tutorial"
"Continue"
call delete30
type "Ren'Py Tutorial"
"Continue"
call delete30
type "org.renpy.tutorial"
"Continue"
call delete30
type "1.2.3"
"Continue"
call delete30
type "10203"
"Continue"
$ _test.maximum_framerate = False
"In landscape"
"Continue"
"Neither"
"Continue"
"No."
"Continue"
"Android 4.0"
"Continue"
# Access the internet.
"No"
"Continue"
# Build the package.
"Build Package"
"Continue"
"quit"
+1 -1
View File
@@ -1,4 +1,4 @@
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
+5 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# Copyright 2004-2016 Tom Rothamel <pytom@bishoujo.us>
# Copyright 2004-2019 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
@@ -47,4 +47,8 @@ if __name__ == "__main__":
root.withdraw()
result = askdirectory(initialdir=sys.argv[1], parent=root, title="Select Ren'Py Projects Directory")
if result == ():
result = ""
sys.stdout.write(result.encode("utf8"))
+44 -44
View File
@@ -3,155 +3,155 @@ translate arabic 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}يناير"
# 00action_file.rpy:47
old "{#month}February"
new "{#month}February"
new "{#month}فبراير"
# 00action_file.rpy:47
old "{#month}March"
new "{#month}March"
new "{#month}مارس"
# 00action_file.rpy:47
old "{#month}April"
new "{#month}April"
new "{#month}أبريل"
# 00action_file.rpy:47
old "{#month}May"
new "{#month}May"
new "{#month}مايو"
# 00action_file.rpy:47
old "{#month}June"
new "{#month}June"
new "{#month}يونيو"
# 00action_file.rpy:47
old "{#month}July"
new "{#month}July"
new "{#month}يوليو"
# 00action_file.rpy:47
old "{#month}August"
new "{#month}August"
new "{#month}أغسطس"
# 00action_file.rpy:47
old "{#month}September"
new "{#month}September"
new "{#month}سبتمبر"
# 00action_file.rpy:47
old "{#month}October"
new "{#month}October"
new "{#month}أكتوبر"
# 00action_file.rpy:47
old "{#month}November"
new "{#month}November"
new "{#month}نوفمبر"
# 00action_file.rpy:47
old "{#month}December"
new "{#month}December"
new "{#month}ديسمبر"
# 00action_file.rpy:63
old "{#month_short}Jan"
new "{#month_short}Jan"
new "{#month_short}ينا"
# 00action_file.rpy:63
old "{#month_short}Feb"
new "{#month_short}Feb"
new "{#month_short}فبر"
# 00action_file.rpy:63
old "{#month_short}Mar"
new "{#month_short}Mar"
new "{#month_short}مار"
# 00action_file.rpy:63
old "{#month_short}Apr"
new "{#month_short}Apr"
new "{#month_short}ابر"
# 00action_file.rpy:63
old "{#month_short}May"
new "{#month_short}May"
new "{#month_short}ماي"
# 00action_file.rpy:63
old "{#month_short}Jun"
new "{#month_short}Jun"
new "{#month_short}يون"
# 00action_file.rpy:63
old "{#month_short}Jul"
new "{#month_short}Jul"
new "{#month_short}يول"
# 00action_file.rpy:63
old "{#month_short}Aug"
new "{#month_short}Aug"
new "{#month_short}أغس"
# 00action_file.rpy:63
old "{#month_short}Sep"
new "{#month_short}Sep"
new "{#month_short}سبتم"
# 00action_file.rpy:63
old "{#month_short}Oct"
new "{#month_short}Oct"
new "{#month_short}أكت"
# 00action_file.rpy:63
old "{#month_short}Nov"
new "{#month_short}Nov"
new "{#month_short}نوف"
# 00action_file.rpy:63
old "{#month_short}Dec"
new "{#month_short}Dec"
new "{#month_short}ديس"
# 00action_file.rpy:235
old "%b %d, %H:%M"
@@ -187,7 +187,7 @@ translate arabic strings:
# 00gui.rpy:233
old "Are you sure you want to end the replay?"
new "Are you sure you want to end the replay?"
new "هل أنت متأكد من رغبتك في الخروج من الإعادة؟"
# 00gui.rpy:234
old "Are you sure you want to begin skipping?"
@@ -199,7 +199,7 @@ translate arabic strings:
# 00gui.rpy:236
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
old "Saved screenshot as %s."
@@ -207,15 +207,15 @@ translate arabic strings:
# 00library.rpy:142
old "Self-voicing disabled."
new "Self-voicing disabled."
new "تم الغاء تفعيل النطق التلقائي."
# 00library.rpy:143
old "Clipboard voicing enabled. "
new "Clipboard voicing enabled. "
new "تم تفعيل النطق التلقائي من لوح الحفظ. "
# 00library.rpy:144
old "Self-voicing enabled. "
new "Self-voicing enabled. "
new "تم تفعيل النطق التلقائي."
# 00library.rpy:179
old "Skip Mode"
@@ -235,7 +235,7 @@ translate arabic strings:
# 00preferences.rpy:426
old "Self-voicing enabled. Press 'v' to disable."
new "التكلّم التلقائي مفعَل. لإيقافه إضغط زر V"
new "النطق التلقائي مفعَل. لإيقافه إضغط زر V"
# 00iap.rpy:217
old "Contacting App Store\nPlease Wait..."
+1 -1
View File
@@ -163,7 +163,7 @@ translate arabic strings:
# 00console.rpy:467
old "watch <expression>: watch a python expression"
new "مشاهده <expression>: يقوم بعرض تبيرات بايثون"
new "مشاهده <expression>: يقوم بعرض تعبيرات بايثون"
# 00console.rpy:493
old "unwatch <expression>: stop watching an expression"
+9 -9
View File
@@ -23,7 +23,7 @@ translate arabic strings:
# 00gltest.rpy:93
old "Enable"
new "Enable"
new "تفعيل"
# 00gltest.rpy:109
old "Changes will take effect the next time this program is run."
@@ -91,27 +91,27 @@ translate arabic strings:
# 00gamepad.rpy:32
old "Select Gamepad to Calibrate"
new "Select Gamepad to Calibrate"
new "الرجاء اختيار يد التحكم التي ترغب في تهيئتها"
# 00gamepad.rpy:35
old "No Gamepads Available"
new "No Gamepads Available"
new "لا توجد يد تحكم"
# 00gamepad.rpy:54
old "Calibrating [name] ([i]/[total])"
new "Calibrating [name] ([i]/[total])"
new "يتم تهيئة [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Press or move the [control!r] [kind]."
new "الرجاء ضغط الزر او تحريك [control!r] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
new "Skip (A)"
new "تخطي (A)"
# 00gamepad.rpy:69
old "Back (B)"
new "Back (B)"
new "عودة (B)"
# _errorhandling.rpym:495
old "Open Traceback"
@@ -123,11 +123,11 @@ translate arabic strings:
# _errorhandling.rpym:499
old "Copy to Clipboard"
new "Copy to Clipboard"
new "نسخ إلى الحافظة"
# _errorhandling.rpym:501
old "Copies the traceback.txt file to the clipboard."
new "Copies the traceback.txt file to the clipboard."
new "ينسخ ملف trackback.txt إلى الحافظة."
# _errorhandling.rpym:519
old "An exception has occurred."
+101 -101
View File
@@ -3,7 +3,7 @@ translate arabic strings:
# gui.rpy:2
old "## Initialization"
new "## Initialization"
new "## تتم التهيئة الآن"
# gui.rpy:5
old "## The init offset statement causes the init code in this file to run before init code in any other file."
@@ -15,397 +15,397 @@ translate arabic strings:
# gui.rpy:21
old "## Colors"
new "## Colors"
new "## الألوان"
# gui.rpy:23
old "## The colors of text in the interface."
new "## The colors of text in the interface."
new "## ألوان الخطوط الظاهرة في الواجهة."
# gui.rpy:25
old "## An accent color used throughout the interface to label and highlight text."
new "## An accent color used throughout the interface to label and highlight text."
new "## لون إضافي ينطبق على الوسوم و العناوين الرئيسية في اماكن مختلفة من الواجهة."
# gui.rpy:29
old "## The color used for a text button when it is neither selected nor hovered."
new "## The color used for a text button when it is neither selected nor hovered."
new "## اللون المطلوب للأزرار حين لا تكون قيد الاستعمال ولا مظللة."
# gui.rpy:32
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## اللون الصغير هو اللون الذي ينطبق على الخطوط الصغيرة, والتي تحتاج ان تكون ذات لون فاتح او داكن اكثر مما حولها لتظهر بشكل واضح."
# gui.rpy:36
old "## The color that is used for buttons and bars that are hovered."
new "## The color that is used for buttons and bars that are hovered."
new "## اللون الذي ينطبق على الازرار و اشرطة التمرير عند تظليلها بالمؤشر."
# 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 "## 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 "## اللون الذي ينطبق على الزر المفعّل الآن لكن ليس حين يكون مظللا. تفعيل الزر هو ما يظهر عندما تكون في الصفحه الخاصة به او الصفحة التي يؤدي إليها."
# gui.rpy:43
old "## The color used for a text button when it cannot be selected."
new "## The color used for a text button when it cannot be selected."
new "## اللون الخاص بالزر حين يكون غير قابل للضغط."
# 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 "## 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.rpy:51
old "## The colors used for dialogue and menu choice text."
new "## The colors used for dialogue and menu choice text."
new "## اللون الخاص بالنص عند الحوار و في ازرار القائمة الرئيسية."
# gui.rpy:56
old "## Fonts and Font Sizes"
new "## Fonts and Font Sizes"
new "##نوع الخط و حجمه."
# gui.rpy:58
old "## The font used for in-game text."
new "## The font used for in-game text."
new "##نوع الخط المستخدم داخل نص اللعبة."
# gui.rpy:61
old "## The font used for character names."
new "## The font used for character names."
new "##نوع الخط المستخدم في أسماء الشخصيات."
# gui.rpy:64
old "## The font used for out-of-game text."
new "## The font used for out-of-game text."
new "##نوع الخط المستخدم في النصوص خارج الحوار في اللعبة."
# gui.rpy:67
old "## The size of normal dialogue text."
new "## The size of normal dialogue text."
new "##حجم الخط المستخدم في الحوار."
# gui.rpy:70
old "## The size of character names."
new "## The size of character names."
new "##حجم الخط المستخدم لأسماء الشخصيات."
# gui.rpy:73
old "## The size of text in the game's user interface."
new "## The size of text in the game's user interface."
new "##حجم الخط المستخدم في واجهة اللعبة التشغيلية."
# gui.rpy:76
old "## The size of labels in the game's user interface."
new "## The size of labels in the game's user interface."
new "## حجم العناوين الرئيسية في واجهة اللعبة التشغيلية."
# gui.rpy:79
old "## The size of text on the notify screen."
new "## The size of text on the notify screen."
new "##حجم الخط المستخدم في صفحة الملاحظات."
# gui.rpy:82
old "## The size of the game's title."
new "## The size of the game's title."
new "## حجم الخط المستخدم لعنوان اللعبة الرئيسي."
# gui.rpy:86
old "## Main and Game Menus"
new "## Main and Game Menus"
new "## القائمة الرئيسية و قائمة اللعبة."
# gui.rpy:88
old "## The images used for the main and game menus."
new "## The images used for the main and game menus."
new "## الصور المستخدمة في القائمة الرئيسية و قوائم اللعبة."
# gui.rpy:92
old "## Should we show the name and version of the game?"
new "## Should we show the name and version of the game?"
new "## هل سنقوم بعرض اسم و نسخه اللعبة الحالية؟"
# gui.rpy:96
old "## Dialogue"
new "## Dialogue"
new "## الحوار"
# gui.rpy:98
old "## These variables control how dialogue is displayed on the screen one line at a time."
new "## These variables control how dialogue is displayed on the screen one line at a time."
new "## هذه المتغيرات تقوم بتحديد طريقة عرض الحوار الظاهر على الشاشة سطراً سطراً."
# gui.rpy:101
old "## The height of the textbox containing dialogue."
new "## The height of the textbox containing dialogue."
new "## ارتفاع الصندوق الذي يحتوي على النصوص."
# gui.rpy:104
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
new "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
new "## مكان صندوق الحوار عموديا على الشاشة. 0.0 يضعه في الأعلى, 0.5 في المنتصف, و 1.0 يضع الصندوق في أسفل الشاشة."
# gui.rpy:109
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
new "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
new "##مكان الخانة الخاصة بعرض اسم الشخصية و تناسبها مع صندوق الحوار الرئيسي. يمكن وضع ارقام تعبر عن عدد البكسلات بينها و بين الجزء العلوي الأيسر من الشاشة, او استعمال نسبة مثل 0.5 لوضعها في المنتصف."
# gui.rpy:114
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "##هذا يحدد مكان ظهور اسم الشخصية, يمكن ان يكون 0.0 ليقارب اليسار, 0.5 ليكون في المنتصف, و 1.0 ليقارب اليمين."
# gui.rpy:118
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## طول و عرض و ارتفاع الصندوق الذي يحتوي على اسم الشخصية, او None ليتم استعمال حجم قياسي."
# gui.rpy:123
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
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."
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 "## عندما يتم اختيار True سيتم تكرار الخلفية حتى تغطي الصندوق, عند اختيار False سيتم تمديد الصورة لتغطي الصندوق."
# 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."
new "## 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."
new "## مكان نص الحوار و تناسبه مع صندوق الحوار الرئيسي. يمكن وضع ارقام تعبر عن عدد البكسلات بينها و بين الجزء العلوي الأيسر من الشاشة, او استعمال نسبة مثل 0.5 لوضعه في المنتصف."
# gui.rpy:138
old "## The maximum width of dialogue text, in pixels."
new "## The maximum width of dialogue text, in pixels."
new "## عدد البكسلات القصوى التي يمكن ان يتمدد إليها صندوق الحوار بالعرض."
# gui.rpy:141
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## اتجاه النص عرضياً: يمكن استعمال 0.0 ليقارب اليسار, 0.5 ليكون في المنتصف, و 1.0 ليقارب اليمين."
# gui.rpy:146
old "## Buttons"
new "## Buttons"
new "## أزرار"
# gui.rpy:148
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "## هذه المتغيرات تتشارك مع ملفات الصور في gui/button في تحديد مظهر الأزرار."
# gui.rpy:151
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## طول و عرض الزر بالبكسل. لو تم استعمال None سيقوم رينباي باختيار حجم مناسب."
# gui.rpy:155
old "## The borders on each side of the button, in left, top, right, bottom order."
new "## The borders on each side of the button, in left, top, right, bottom order."
new "## حجم الخط الذي يحيط بصندوق الزر, الاحجام بالترتيب هي اليسار, الأعلى, اليمين, و الأسفل."
# gui.rpy:158
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## عندما يتم اختيار True سيتم تكرار الخلفية حتى تغطي المساحه بأكملها, عند اختيار False سيتم تمديد الصورة."
# gui.rpy:162
old "## The font used by the button."
new "## The font used by the button."
new "## الخط المستخدم في الزر."
# gui.rpy:165
old "## The size of the text used by the button."
new "## The size of the text used by the button."
new "## حجم الخط المستخدم في الزر."
# gui.rpy:179
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
new "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
new "## هذه المتغيرات تقوم بتجاهل الخيارات التي تنطبق على انواع الازرار الأخرى. الرجاء قراءة دليل المستخدم الخاص بالواجهة للتعرف على انواع الازرار المتاحه و كيفية استعمالها."
# gui.rpy:183
old "## These customizations are used by the default interface:"
new "## These customizations are used by the default interface:"
new "## هذه الخيارات تنطبق على الواجهة القياسية:"
# gui.rpy:198
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
new "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
new "## يمكنك اضافة تغييرات يدويا عن طريق اضافة متغيرات بأسماء مميزة. مثلا, يمكنك ازالة اقتباسات الحماية ## عن السطر التالي لتغيير طول و عرض الازرار الخاصة بالقائمة."
# gui.rpy:205
old "## Choice Buttons"
new "## Choice Buttons"
new "## أزرار الخيارات"
# gui.rpy:207
old "## Choice buttons are used in the in-game menus."
new "## Choice buttons are used in the in-game menus."
new "## أزرار الخيارات يتم استعمالها داخل قوائم اللعبة."
# gui.rpy:220
old "## File Slot Buttons"
new "## File Slot Buttons"
new "## أزرار قائمة الحفظ."
# gui.rpy:222
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## زر خانة الحفظ هو زر مميز عن غيره لانه يعرض صورة رمزية و نص يشرح محتويات الخانة. زر الحفظ يستعمل صور من مجلد الواجهة مثل باقي الأزرار في gui/button."
# gui.rpy:226
old "## The save slot button."
new "## The save slot button."
new "## زر خانة الحفظ."
# gui.rpy:234
old "## The width and height of thumbnails used by the save slots."
new "## The width and height of thumbnails used by the save slots."
new "## طول و عرض الصورة الرمزية لخانة الحفظ."
# gui.rpy:238
old "## The number of columns and rows in the grid of save slots."
new "## The number of columns and rows in the grid of save slots."
new "## عدد الخانات الطولية و العرضية التي يمكن الحفظ فيها."
# gui.rpy:243
old "## Positioning and Spacing"
new "## Positioning and Spacing"
new "## مكان الخانات و المساحه بينها."
# gui.rpy:245
old "## These variables control the positioning and spacing of various user interface elements."
new "## These variables control the positioning and spacing of various user interface elements."
new "## هذه المتغيرات تحدد المساحة و مكان عرض عدة عناصر خاصة بالواجهة."
# gui.rpy:248
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## مكان الجزء الأيسر من ازرار القوائم وتناسبه مع الحد الأيسر من الشاشة."
# gui.rpy:252
old "## The vertical position of the skip indicator."
new "## The vertical position of the skip indicator."
new "## موقع مؤشر استمرار الحوار رأسياً."
# gui.rpy:255
old "## The vertical position of the notify screen."
new "## The vertical position of the notify screen."
new "## موقع شاشة التنبيهات رأسياً."
# gui.rpy:258
old "## The spacing between menu choices."
new "## The spacing between menu choices."
new "## الفراغات بين خيارات القوائم."
# gui.rpy:261
old "## Buttons in the navigation section of the main and game menus."
new "## Buttons in the navigation section of the main and game menus."
new "## الأزرار في صفحات الخيارات و القائمة الرئيسية."
# gui.rpy:264
old "## Controls the amount of spacing between preferences."
new "## Controls the amount of spacing between preferences."
new "## يتحكم في المساحه بين الخيارات."
# gui.rpy:267
old "## Controls the amount of spacing between preference buttons."
new "## Controls the amount of spacing between preference buttons."
new "## يتحكم في المساحه بين ازرار الخيارات."
# gui.rpy:270
old "## The spacing between file page buttons."
new "## The spacing between file page buttons."
new "## المساحه بين ازرار صفحات الحفظ."
# gui.rpy:273
old "## The spacing between file slots."
new "## The spacing between file slots."
new "## المساحه بين خانات الحفظ."
# gui.rpy:277
old "## Frames"
new "## Frames"
new "## الإطارات"
# 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 "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
new "## هذه المتغيرات تحدد شكل الإطارات الخاصة بعناصر الواجهة عند انعدام نافذة تتحكم بظهورها."
# gui.rpy:282
old "## Generic frames that are introduced by player code."
new "## Generic frames that are introduced by player code."
new "## إطارات قياسية يتم تقديمها حسب برمجة اللاعب."
# gui.rpy:285
old "## The frame that is used as part of the confirm screen."
new "## The frame that is used as part of the confirm screen."
new "## الإطار الخاص بصفحة التأكيد."
# gui.rpy:288
old "## The frame that is used as part of the skip screen."
new "## The frame that is used as part of the skip screen."
new "## الإطار المستخدم في صفحة التسريع."
# gui.rpy:291
old "## The frame that is used as part of the notify screen."
new "## The frame that is used as part of the notify screen."
new "## الإطار المستخدم في صفحة التنبيهات."
# gui.rpy:294
old "## Should frame backgrounds be tiled?"
new "## Should frame backgrounds be tiled?"
new "## هل تريد ان تكون خلفية الإطار متكررة؟"
# gui.rpy:298
old "## Bars, Scrollbars, and Sliders"
new "## Bars, Scrollbars, and Sliders"
new "## أشرطة التمرير, الأشرطة, و العناصر المنزلقة."
# gui.rpy:300
old "## These control the look and size of bars, scrollbars, and sliders."
new "## These control the look and size of bars, scrollbars, and sliders."
new "## هذه تتحكم بشكل و حجم الأشرطة والعناصر المنزلقة."
# gui.rpy:302
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
new "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
new "## الواجهة القياسية لا تستخدم سوى العناصر المنزلقة و الأشرطة رأسياً, الأشرطة الباقية لا يتم استعمالها إلا عندما يقرر ذلك صانع اللعبة."
# gui.rpy:305
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## ارتفاع الأشرطة و العناصر المنزلقة الأفقية. سماكة الأشرطة و العناصر المنزلقة الرأسية."
# gui.rpy:311
old "## True if bar images should be tiled. False if they should be linearly scaled."
new "## True if bar images should be tiled. False if they should be linearly scaled."
new "## استعمل True لتكون الصورة المستخدمة في الأشرطة المنزلقة متكررة, False ليتم تمديدها على حجم الشريط."
# gui.rpy:316
old "## Horizontal borders."
new "## Horizontal borders."
new "## الحاشية بالعرض."
# gui.rpy:321
old "## Vertical borders."
new "## Vertical borders."
new "## الحاضية بالطول."
# gui.rpy:326
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## ماذا سنفعل بالأشرطة التي لا يمكن سحبها؟ يمكن استعمال hide لإخفائها, او None لتكون ظاهره في كل الاوقات."
# gui.rpy:331
old "## History"
new "## History"
new "## الحوار السابق"
# gui.rpy:333
old "## The history screen displays dialogue that the player has already dismissed."
new "## The history screen displays dialogue that the player has already dismissed."
new "## صفحة الحوار السابق تعرض الحوارات التي سبق للاعب قرائتها."
# gui.rpy:335
old "## The number of blocks of dialogue history Ren'Py will keep."
new "## The number of blocks of dialogue history Ren'Py will keep."
new "## عدد فقاعات الحوار التي سيحتفظ بها رينباي في صفحة الحوار السابق."
# gui.rpy:338
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## ارتفاع صفحة عرض الحوار السابق, او None ليكون الإرتفاع متغير مع ملاحظة انه يؤثر في الأداء العام."
# gui.rpy:342
old "## The position, width, and alignment of the label giving the name of the speaking character."
new "## The position, width, and alignment of the label giving the name of the speaking character."
new "## الموقع, العرض, و اتجاه النص الخاص باسم الشخصية المعروض."
# gui.rpy:349
old "## The position, width, and alignment of the dialogue text."
new "## The position, width, and alignment of the dialogue text."
new "## الموقع, العرض و اتجاه النص الخاص بالحوار المعروض."
# gui.rpy:356
old "## NVL-Mode"
new "## NVL-Mode"
new "## NVL-Mode أسلوب عرض الحوار الروائي."
# gui.rpy:358
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## شاشة عرض الأسلوب الروائي تعرض ما قالته شخصيات تم تخصيصها للحوار الروائي."
# gui.rpy:360
old "## The borders of the background of the NVL-mode background window."
new "## The borders of the background of the NVL-mode background window."
new "## حاشية الخلفية المستخدمة في نافذة الحوار الخاصة بالحوار الروائي."
# gui.rpy:363
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## إرتفاع النافذة الخاصة بعرض الحوار الروائي. استعمل None لتناسب النافذة الحوار المعروض لكل فقاعه حوار."
# gui.rpy:367
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## المساحه بين العناصر عندما يكون النظام الروائي يستعمل متغير None في سطر gui.nvl_height و المساحه بين اجزاء الحوار والقائمة في الحوار الروائي."
# gui.rpy:384
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## موقع, عرض و اتجاه النص الخاص بشخصية التفكير nvl_thought, الحوار المنطوق من قبل شخصية nvl_narrator تم تحديدها في ملف حوار اللعبة."
# gui.rpy:391
old "## The position of nvl menu_buttons."
new "## The position of nvl menu_buttons."
new "## موقع ازرار القائمة في nvl menu_buttons."
# gui.rpy:403
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## يقوم بتكبير المساحه الخاصة بازرار الاختصارات ليكون استعمالها اسهل على شاشات الاجهزة المحمولة و التابلت."
# gui.rpy:409
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## يقوم بتغيير المساحات بين العناصر في اماكن مختلفة من الواجهة لتكون اسهل في الرؤية و الاستعمال على شاشات المحمول و التابلت."
# gui.rpy:413
old "## Font sizes."
new "## Font sizes."
new "## حجم النص."
# gui.rpy:421
old "## Adjust the location of the textbox."
new "## Adjust the location of the textbox."
new "## تحديد مكان مربع الحوار."
# gui.rpy:427
old "## Change the size and spacing of items in the game menu."
new "## Change the size and spacing of items in the game menu."
new "## تغيير الحجم و المساحه بين العناصر في قائمة اللعبة."
# gui.rpy:436
old "## File button layout."
new "## File button layout."
new "## ترتيب ازرار الملفات."
# gui.rpy:440
old "## NVL-mode."
new "## NVL-mode."
new "## NVL-mode نظام الحوار الروائي."
# gui.rpy:456
old "## Quick buttons."
new "## Quick buttons."
new "## إختصارات."
+40 -40
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."
@@ -315,11 +315,11 @@ translate arabic strings:
# distribute_gui.rpy:199
old "Upload to itch.io"
new "Upload to itch.io"
new "تحميل المشروع إلى itch.io"
# distribute_gui.rpy:215
old "Build Packages:"
new "بناء الرزمة البيانية:"
new "بناء الحزمة البيانية:"
# distribute_gui.rpy:234
old "Options:"
@@ -459,7 +459,7 @@ translate arabic strings:
# front_page.rpy:198
old "gui"
new "gui"
new "الواجهة"
# front_page.rpy:204
old "Edit File"
@@ -479,7 +479,7 @@ translate arabic strings:
# front_page.rpy:237
old "Change/Update GUI"
new "Change/Update GUI"
new "نغيير او تحديث الواجهة"
# front_page.rpy:239
old "Change Theme"
@@ -523,11 +523,11 @@ translate arabic strings:
# gui7.rpy:236
old "Select Accent and Background Colors"
new "Select Accent and Background Colors"
new "اختر لون الخلفية و المجموعة اللونية"
# 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."
new "Please click on the color scheme you wish to use, then click Continue. These colors can be changed and customized later."
new "الرجاء اختيار الألوان التي ترغب بها ثم اضغط زر الاستمرار, ستتمكن من تغيير هذه الالوان لاحقا."
# gui7.rpy:294
old "{b}Warning{/b}\nContinuing will overwrite customized bar, button, save slot, scrollbar, and slider images.\n\nWhat would you like to do?"
@@ -535,11 +535,11 @@ translate arabic strings:
# gui7.rpy:294
old "Choose new colors, then regenerate image files."
new "Choose new colors, then regenerate image files."
new "اختر الوان جديدة ثم أعد تكوين ملفات الصور لتطابق اللون الذي اخترته."
# gui7.rpy:294
old "Regenerate the image files using the colors in gui.rpy."
new "Regenerate the image files using the colors in gui.rpy."
new "يقوم بإعادة تكوين الصور حسب الألوان التي تم وضعها في ملف gui.rpy."
# gui7.rpy:314
old "PROJECT NAME"
@@ -563,15 +563,15 @@ translate arabic strings:
# gui7.rpy:341
old "What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of 1280x720 is a reasonable compromise."
new "What resolution should the project use? Although Ren'Py can scale the window up and down, this is the initial size of the window, the size at which assets should be drawn, and the size at which the assets will be at their sharpest.\n\nThe default of 1280x720 is a reasonable compromise."
new "ما هو الحجم المطلوب للمشروع؟ رينباي يستطيع تكبير و تصغير حجم النافذة لتناسب الشاشة, لكن الحجم الذي ستختاره هنا هو الحجم القياسي, و الذي ستظهر فيه الصور و الشخصيات في أوضح شكل لها. \n\n الحجم الذي يناسب اغلب الشاشات هو 1280×730 بكسل."
# gui7.rpy:389
old "Creating the new project..."
new "Creating the new project..."
new "يتم الآن تكوين المشروع الجديد..."
# gui7.rpy:391
old "Updating the project..."
new "Updating the project..."
new "يتم الآن تحديث معلومات المشروع..."
# interface.rpy:107
old "Documentation"
@@ -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]"
@@ -735,11 +735,11 @@ translate arabic strings:
# itch.rpy:60
old "The built distributions could not be found. Please choose 'Build' and try again."
new "The built distributions could not be found. Please choose 'Build' and try again."
new "لم يتمكن رينباي من ايجاد حزمة المشروع الجاهزة للرفع, الرجاء ضغط زر البناء و المحاولة مجدداَ."
# itch.rpy:91
old "No uploadable files were found. Please choose 'Build' and try again."
new "No uploadable files were found. Please choose 'Build' and try again."
new "لم يتمكن رينباي من ايجاد ملفات جاهزة للرفع. الرجاء ضغط زر البناء و المحاولة مجدداَ."
# itch.rpy:99
old "The butler program was not found."
@@ -751,7 +751,7 @@ translate arabic strings:
# itch.rpy:108
old "The name of the itch project has not been set."
new "The name of the itch project has not been set."
new "لم تقم باختيار اسم للمشروع للرفع على itch."
# itch.rpy:108
old "Please {a=https://itch.io/game/new}create your project{/a}, then add a line like \n{vspace=5}define build.itch_project = \"user-name/game-name\"\n{vspace=5} to options.rpy."
@@ -827,23 +827,23 @@ translate arabic strings:
# new_project.rpy:38
old "New GUI Interface"
new "New GUI Interface"
new "واجهة المستخدم الجديدة"
# new_project.rpy:48
old "Both interfaces have been translated to your language."
new "Both interfaces have been translated to your language."
new "تمت ترجمة كلا الواجهتين إلى اللغة التي قمت باختيارها."
# new_project.rpy:50
old "Only the new GUI has been translated to your language."
new "Only the new GUI has been translated to your language."
new "تمت ترجمة الواجهة الجديدة فقط إلى اللغه التي قمت باختيارها."
# new_project.rpy:52
old "Only the legacy theme interface has been translated to your language."
new "Only the legacy theme interface has been translated to your language."
new "تمت ترجمة الواجهة القديمة فقط إلى اللغه التي قمت باختيارها."
# new_project.rpy:54
old "Neither interface has been translated to your language."
new "Neither interface has been translated to your language."
new "لم تتم ترجمة اي من الواجهتين إلى اللغه المطلوبة."
# new_project.rpy:63
old "The projects directory could not be set. Giving up."
@@ -851,11 +851,11 @@ translate arabic strings:
# new_project.rpy:69
old "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 "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 "أي من الواجهتين ترغب في استخدامه؟ واجهة المستخدم الجديدة تناسب الاجهزة المحمولة وجميع احجام الشاشات, و أسهل في اضافة التفاصيل و التخصيص. الواجهة القديمة قد تكون مهمة للمشاريع التي تم انجازها سابقا.\n\n ان لم تكن متأكدا قم باختيار الواجهة الجديدة ثم اضغط استمرار في الجهة اليمنى السفلى."
# new_project.rpy:69
old "Legacy Theme Interface"
new "Legacy Theme Interface"
new "واجهة المستخدم القديمة"
# new_project.rpy:90
old "Choose Project Template"
@@ -995,7 +995,7 @@ translate arabic strings:
# translations.rpy:104
old "The language to work with. This should only contain lower-case ASCII characters and underscores."
new "The language to work with. This should only contain lower-case ASCII characters and underscores."
new "اختر اللغه التي ستعمل بها. يجب ان يكون اسم اللغه مكتوبا باحرف انجليزية فقط: lower-case ASCII and underscores"
# translations.rpy:130
old "Generate empty strings for translations"
@@ -1003,31 +1003,31 @@ translate arabic strings:
# translations.rpy:148
old "Generates or updates translation files. The files will be placed in game/tl/[persistent.translate_language!q]."
new "Generates or updates translation files. The files will be placed in game/tl/[persistent.translate_language!q]."
new "يقوم بتكوين او تحديث ملفات الترجمة. سيتم وضع الملفات في game/tl/[persistent.translate_language!q]."
# translations.rpy:168
old "Extract String Translations"
new "Extract String Translations"
new "استخراج نصوص الترجمة"
# translations.rpy:170
old "Merge String Translations"
new "Merge String Translations"
new "دمج نصوص الترجمة"
# translations.rpy:175
old "Replace existing translations"
new "Replace existing translations"
new "استبدال نصوص الترجمة الحالية"
# translations.rpy:176
old "Reverse languages"
new "Reverse languages"
new "استبدال لغه بالأخرى"
# translations.rpy:180
old "Update Default Interface Translations"
new "Update Default Interface Translations"
new "تحديث لغة واجهة رينباي التشغيلية"
# 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 "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 أمر دمج نصوص الترجمة يقوم باستخراج النصوص إلى مشروع آخر."
# translations.rpy:224
old "Ren'Py is generating translations...."
@@ -1039,23 +1039,23 @@ translate arabic strings:
# translations.rpy:248
old "Ren'Py is extracting string translations..."
new "Ren'Py is extracting string translations..."
new "يقوم رينباي باستخراج ملفات الترجمة..."
# translations.rpy:251
old "Ren'Py has finished extracting [language] string translations."
new "Ren'Py has finished extracting [language] string translations."
new "انتهى رينباي من استخراج أسطر الترجمة الخاصة باللغه [language]."
# translations.rpy:271
old "Ren'Py is merging string translations..."
new "Ren'Py is merging string translations..."
new "يقوم رينباي بدمج اسطر الترجمة..."
# translations.rpy:274
old "Ren'Py has finished merging [language] string translations."
new "Ren'Py has finished merging [language] string translations."
new "انتهى رينباي من دمج أسطر الترجمة الخاصة باللغه [language]."
# translations.rpy:282
old "Updating default interface translations..."
new "Updating default interface translations..."
new "يقوم رينباي بتحديث اسطر الترجمة الخاصة بالواجهة التشغيلية..."
# translations.rpy:306
old "Extract Dialogue: [project.current.name!q]"
@@ -1063,7 +1063,7 @@ translate arabic strings:
# translations.rpy:322
old "Format:"
new "Format:"
new "الصيغة:"
# translations.rpy:330
old "Tab-delimited Spreadsheet (dialogue.tab)"
@@ -1091,7 +1091,7 @@ translate arabic strings:
# 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."
new "Ren'Py has finished extracting dialogue. The extracted dialogue can be found in dialogue.[persistent.dialogue_format] in the base directory."
new "انتهى رينباي من استخراج اسطر النص. الحوار الذي تم استخراجه موجود في المجلد الرئيسي للمشروع dialogue.[persistent.dialogue_format]."
# updater.rpy:75
old "Select Update Channel"
+25 -25
View File
@@ -3,55 +3,55 @@ translate arabic strings:
# options.rpy:1
old "## This file contains options that can be changed to customize your game."
new "## This file contains options that can be changed to customize your game."
new "## هذا الملف يحتوي على الخيارات التي تستطيع تعديلها لتغيير محتويات لعبتك."
# options.rpy:4
old "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
new "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
new "## الأسطر التي تبدأ بهذا الشعار مرتين'#' هي أسطر مقتبسه و لا يفترض عليك تغييرها. الأسطر التي تحتوي على '#' واحده هي أسطر برمجة يمكنك الغاء الاقتباس عندها لتفعيلها."
# options.rpy:10
old "## Basics"
new "## Basics"
new "## الأساسيات"
# 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 "## 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 "## الإسم الرسمي للعبه. يتم استعمال هذا السطر كإسم النافذة و يظهرفي واجهة النظام التشغيلية و ملفات حصر الأخطاء."
# options.rpy:15
old "## The _() surrounding the string marks it as eligible for translation."
new "## The _() surrounding the string marks it as eligible for translation."
new "## رمز _() حول النصوص يجعلها قابلة للترجمة."
# options.rpy:17
old "Ren'Py 7 Default GUI"
new "Ren'Py 7 Default GUI"
new "الواجهة التشغيلية القياسية لـ رينباي7"
# options.rpy:20
old "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
new "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
new "## يحدد إذا ما تم إظهار العنوان في القائمة الرئيسية. لإخفاء العنوان اجعله False."
# options.rpy:26
old "## The version of the game."
new "## The version of the game."
new "## نسخه اللعبة."
# 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 that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
new "## النص الظاهر على شاشة اللعبه. لإظهار سطر فارغ بين اجزاء النص اكتب \\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 "## 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 "## اسم مختصر للعبه يتم استعماله في ملفات التشغيل و نسخ النشر. يجب ان يحتوي على احرف انجليزية فقط, دون فراغات ولا فواصل ولا فواصل منقوطة."
# options.rpy:44
old "## Sounds and music"
new "## Sounds and music"
new "## الصوت و الموسيقى"
# 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 "## 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 "## هذه المتغيرات الثلاثة تحدد معالجات الأصوات الظاهره بشكل قياسي للاعب. إلغاء أحدها يجعله يختفي من الواجهة عن طريق اختيار False."
# 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 "## 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 "## يسمح للاعب ان يسمع صوتا لاختبار ارتفاع الصوت او النطق, إمسح الاقتباس عن السطر التالي ليتم تفعيل زر العينة الصوتية."
# 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."
@@ -59,7 +59,7 @@ translate arabic strings:
# options.rpy:69
old "## Transitions"
new "## Transitions"
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."
@@ -67,15 +67,15 @@ translate arabic strings:
# options.rpy:75
old "## Entering or exiting the game menu."
new "## Entering or exiting the game menu."
new "## الدخول او الخروج من قائمة اللعبة."
# options.rpy:81
old "## A transition that is used after a game has been loaded."
new "## A transition that is used after a game has been loaded."
new "## الإنتقال الذي يحصل بعد ان تنتهي اللعبة من الإقلاع."
# options.rpy:86
old "## Used when entering the main menu after the game has ended."
new "## Used when entering the main menu after the game has ended."
new "## يظهر عند الدخول إلى القائمة الرئيسية بعد انتهاء اللعبة."
# 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."
@@ -83,7 +83,7 @@ translate arabic strings:
# options.rpy:96
old "## Window management"
new "## Window management"
new "## خيارات النافذة"
# options.rpy:98
old "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
@@ -95,11 +95,11 @@ translate arabic strings:
# options.rpy:109
old "## Transitions used to show and hide the dialogue window"
new "## Transitions used to show and hide the dialogue window"
new "## الإنتقالات البصرية المستخدمه عند إظهار و إخفاء مربع الحوار"
# options.rpy:115
old "## Preference defaults"
new "## Preference defaults"
new "## الخيارات القياسية"
# options.rpy:117
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
@@ -111,7 +111,7 @@ translate arabic strings:
# options.rpy:129
old "## Save directory"
new "## Save directory"
new "## مجلد الحفظ"
# 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:"
@@ -135,19 +135,19 @@ translate arabic strings:
# options.rpy:146
old "## Icon ########################################################################'"
new "## Icon ########################################################################'"
new "## أيقونة ########################################################################'"
# options.rpy:148
old "## The icon displayed on the taskbar or dock."
new "## The icon displayed on the taskbar or dock."
new "## الأيقونة الظاهرة في شريط البرامج."
# options.rpy:153
old "## Build configuration"
new "## Build configuration"
new "## معلومات ملف النشر"
# options.rpy:155
old "## This section controls how Ren'Py turns your project into distribution files."
new "## This section controls how Ren'Py turns your project into distribution files."
new "## هذا الجزء يتحكم بالمعلومات التي يستعملها رينباي لتحويل مشروعك إلى ملفات يمكن نشرها."
# options.rpy:160
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
+38 -38
View File
@@ -71,7 +71,7 @@ translate arabic strings:
# screens.rpy:262
old "History"
new "History"
new "سجل الحوار"
# screens.rpy:263
old "Skip"
@@ -111,11 +111,11 @@ translate arabic strings:
# screens.rpy:308
old "Start"
new "Start"
new "إبدأ"
# screens.rpy:316
old "Load"
new "Load"
new "استرجاع"
# screens.rpy:318
old "Preferences"
@@ -227,15 +227,15 @@ translate arabic strings:
# screens.rpy:607
old "Page {}"
new "Page {}"
new "صفحة {}"
# screens.rpy:607
old "Automatic saves"
new "Automatic saves"
new "الحفظ التلقائي"
# screens.rpy:607
old "Quick saves"
new "Quick saves"
new "الحفظ السريع"
# screens.rpy:613
old "## This ensures the input will get the enter event before any of the buttons do."
@@ -251,7 +251,7 @@ translate arabic strings:
# screens.rpy:649
old "empty slot"
new "empty slot"
new "خانة فارغة"
# screens.rpy:657
old "## Buttons to access other pages."
@@ -263,11 +263,11 @@ translate arabic strings:
# screens.rpy:668
old "{#auto_page}A"
new "{#auto_page}A"
new "{#auto_page}ت"
# screens.rpy:670
old "{#quick_page}Q"
new "{#quick_page}Q"
new "{#quick_page}س"
# screens.rpy:676
old ">"
@@ -303,19 +303,19 @@ translate arabic strings:
# screens.rpy:745
old "Disable"
new "Disable"
new "غير مفعّل"
# screens.rpy:746
old "Left"
new "Left"
new "يسار"
# screens.rpy:747
old "Right"
new "Right"
new "يمين"
# screens.rpy:752
old "Unseen Text"
new "Unseen Text"
new "النصوص التي لم تُشاهَد بعد"
# screens.rpy:753
old "After Choices"
@@ -355,7 +355,7 @@ translate arabic strings:
# screens.rpy:806
old "Mute All"
new "Mute All"
new "كتم الكل"
# screens.rpy:882
old "## History screen"
@@ -395,15 +395,15 @@ translate arabic strings:
# screens.rpy:986
old "Keyboard"
new "Keyboard"
new "لوحة المفاتيح"
# screens.rpy:987
old "Mouse"
new "Mouse"
new "الفأرة"
# screens.rpy:990
old "Gamepad"
new "Gamepad"
new "عصا اللعب"
# screens.rpy:1003
old "Enter"
@@ -411,7 +411,7 @@ translate arabic strings:
# screens.rpy:1004
old "Advances dialogue and activates the interface."
new "Advances dialogue and activates the interface."
new "التقدم في الحوار والتفاعل مع الواجهة."
# screens.rpy:1007
old "Space"
@@ -419,15 +419,15 @@ translate arabic strings:
# screens.rpy:1008
old "Advances dialogue without selecting choices."
new "Advances dialogue without selecting choices."
new "التقدم في الحوار دون تحديد الخيارات."
# screens.rpy:1011
old "Arrow Keys"
new "Arrow Keys"
new "مفاتيح الأسهم"
# screens.rpy:1012
old "Navigate the interface."
new "Navigate the interface."
new "لتصفح الواجهة."
# screens.rpy:1015
old "Escape"
@@ -435,7 +435,7 @@ translate arabic strings:
# screens.rpy:1016
old "Accesses the game menu."
new "Accesses the game menu."
new "للوصول لقائمة اللعبة."
# screens.rpy:1019
old "Ctrl"
@@ -443,7 +443,7 @@ translate arabic strings:
# screens.rpy:1020
old "Skips dialogue while held down."
new "Skips dialogue while held down."
new "لتخطي الحوار عند الإستمرار بالضغط."
# screens.rpy:1023
old "Tab"
@@ -451,7 +451,7 @@ translate arabic strings:
# screens.rpy:1024
old "Toggles dialogue skipping."
new "Toggles dialogue skipping."
new "للتبديل بين أنظمة تخطي الحوار."
# screens.rpy:1027
old "Page Up"
@@ -459,7 +459,7 @@ translate arabic strings:
# screens.rpy:1028
old "Rolls back to earlier dialogue."
new "Rolls back to earlier dialogue."
new "للعودة للنص السابق."
# screens.rpy:1031
old "Page Down"
@@ -467,39 +467,39 @@ translate arabic strings:
# screens.rpy:1032
old "Rolls forward to later dialogue."
new "Rolls forward to later dialogue."
new "للإستمرار للنص اللاحق."
# screens.rpy:1036
old "Hides the user interface."
new "Hides the user interface."
new "لإخفاء الواجهة."
# screens.rpy:1040
old "Takes a screenshot."
new "Takes a screenshot."
new "إلتقاط صورة من الشاشة."
# screens.rpy:1044
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "تفعيل مساعدة {a=https://www.renpy.org/l/voicing}الصوت التلقائي{/a}."
# screens.rpy:1050
old "Left Click"
new "Left Click"
new "النقر بالزر الأيسر"
# screens.rpy:1054
old "Middle Click"
new "Middle Click"
new "النقر بالزر الأوسط"
# screens.rpy:1058
old "Right Click"
new "Right Click"
new "النقر بالزر الأيمن"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
new "Mouse Wheel Up\nClick Rollback Side"
new "تحريك عجلة الفأرة لأعلى\nClick Rollback Side"
# screens.rpy:1066
old "Mouse Wheel Down"
new "Mouse Wheel Down"
new "تحريك عجلة الفأرة لأسفل"
# screens.rpy:1073
old "Right Trigger\nA/Bottom Button"
@@ -507,11 +507,11 @@ translate arabic strings:
# screens.rpy:1074
old "Advance dialogue and activates the interface."
new "Advance dialogue and activates the interface."
new "التقدم في الحوار والتفاعل مع الواجهة."
# screens.rpy:1078
old "Roll back to earlier dialogue."
new "Roll back to earlier dialogue."
new "للعودة للنص السابق."
# screens.rpy:1081
old "Right Shoulder"
@@ -519,7 +519,7 @@ translate arabic strings:
# screens.rpy:1082
old "Roll forward to later dialogue."
new "Roll forward to later dialogue."
new "للإستمرار للنص اللاحق."
# screens.rpy:1085
old "D-Pad, Sticks"
@@ -587,7 +587,7 @@ translate arabic strings:
# screens.rpy:1208
old "Skipping"
new "Skipping"
new "جاري التخطي"
# screens.rpy:1215
old "## This transform is used to blink the arrows one after another."
+74 -10
View File
@@ -1,17 +1,12 @@
# You can place the script of your game in this file.
# هذا الملف يحتوي على كل نصوص اللعبه
# Declare images below this line, using the image statement.
# eg. image eileen happy = "eileen_happy.png"
# استعمل السطر التالي لإظهار الصور في شاشة اللعب
# image eileen happy = "eileen_happy.png"
# Declare characters used by this game.
# من هي شخصيات هذه اللعبه؟
define e = Character('إيلين', color="#c8ffc8")
init python:
if not persistent.default_language_set:
persistent.default_language_set = True
_preferences.language = "arabic"
# The game starts here.
# اللعبه تبدأ هنا
label start:
e "لقد بدأت حكاية رينباي جديدة."
@@ -19,3 +14,72 @@ label start:
e "كل ما عليك فعله هو إضافة نصوص و صور و إرسالها للعالم!"
return
########################################################### من اليمين الى اليسار
define config.rtl = True
define gui.text_align = 1.0
define gui.button_text_xalign = 1.0
define gui.prompt_text_xalign = 1.0
define gui.navigation_xpos = 240
define gui.name_xalign = 1.0
define gui.dialogue_text_xalign = 1.0
define gui.button_text_xalign = 1.0
define gui.main_menu_text_xalign = 1.0
define gui.history_name_xalign = 0.0
define gui.history_text_xalign = 1.0
define gui.nvl_name_xalign = 0.0
define gui.nvl_text_xalign = 1.0
define gui.nvl_thought_xalign = 1.0
define gui.nvl_button_xalign = 1.0
define gui.help_label_text_xalign = 0.0
define gui.name_xpos = gui.scale(1040)
define gui.dialogue_xpos = gui.scale(1012)
define gui.history_name_xpos = gui.scale(763)
define gui.history_text_xpos = gui.scale(748)
define gui.nvl_name_xpos = gui.scale(850)
define gui.nvl_text_xpos = gui.scale(830)
define gui.nvl_thought_xpos = gui.scale(1040)
define gui.nvl_button_xpos = gui.scale(830)
style game_menu_label:
xalign 1.0
xoffset gui.scale(-50)
style navigation_vbox:
xanchor 1.0
style return_button:
xanchor 1.0
style radio_button:
xalign 1.0
style radio_label:
xalign 1.0
style check_button:
xalign 1.0
style check_label:
xalign 1.0
style slider_label:
xpos gui.scale(350)
xalign 1.0
style help_hbox:
box_reverse True
xalign 1.0
spacing gui.scale(20)
style help_label_text:
xalign 0.0
style mute_all_button:
xalign 0.0
-3
View File
@@ -5,6 +5,3 @@
gui.REGULAR_BOLD = True
config.rtl = True
init python:
translate_define("arabic", "config.rtl", "True")
+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]"
+117 -68
View File
@@ -3,107 +3,107 @@ translate french strings:
# 00action_file.rpy:26
old "{#weekday}Monday"
new "{#weekday}Monday"
new "{#weekday}Lundi"
# 00action_file.rpy:26
old "{#weekday}Tuesday"
new "{#weekday}Tuesday"
new "{#weekday}Mardi"
# 00action_file.rpy:26
old "{#weekday}Wednesday"
new "{#weekday}Wednesday"
new "{#weekday}Mercredi"
# 00action_file.rpy:26
old "{#weekday}Thursday"
new "{#weekday}Thursday"
new "{#weekday}Jeudi"
# 00action_file.rpy:26
old "{#weekday}Friday"
new "{#weekday}Friday"
new "{#weekday}Vendredi"
# 00action_file.rpy:26
old "{#weekday}Saturday"
new "{#weekday}Saturday"
new "{#weekday}Samedi"
# 00action_file.rpy:26
old "{#weekday}Sunday"
new "{#weekday}Sunday"
new "{#weekday}Dimanche"
# 00action_file.rpy:37
old "{#weekday_short}Mon"
new "{#weekday_short}Mon"
new "{#weekday_short}Lun"
# 00action_file.rpy:37
old "{#weekday_short}Tue"
new "{#weekday_short}Tue"
new "{#weekday_short}Mar"
# 00action_file.rpy:37
old "{#weekday_short}Wed"
new "{#weekday_short}Wed"
new "{#weekday_short}Mer"
# 00action_file.rpy:37
old "{#weekday_short}Thu"
new "{#weekday_short}Thu"
new "{#weekday_short}Jeu"
# 00action_file.rpy:37
old "{#weekday_short}Fri"
new "{#weekday_short}Fri"
new "{#weekday_short}Ven"
# 00action_file.rpy:37
old "{#weekday_short}Sat"
new "{#weekday_short}Sat"
new "{#weekday_short}Sam"
# 00action_file.rpy:37
old "{#weekday_short}Sun"
new "{#weekday_short}Sun"
new "{#weekday_short}Dim"
# 00action_file.rpy:47
old "{#month}January"
new "{#month}January"
new "{#month}Janvier"
# 00action_file.rpy:47
old "{#month}February"
new "{#month}February"
new "{#month}Février"
# 00action_file.rpy:47
old "{#month}March"
new "{#month}March"
new "{#month}Mars"
# 00action_file.rpy:47
old "{#month}April"
new "{#month}April"
new "{#month}Avril"
# 00action_file.rpy:47
old "{#month}May"
new "{#month}May"
new "{#month}Mai"
# 00action_file.rpy:47
old "{#month}June"
new "{#month}June"
new "{#month}Juin"
# 00action_file.rpy:47
old "{#month}July"
new "{#month}July"
new "{#month}Juillet"
# 00action_file.rpy:47
old "{#month}August"
new "{#month}August"
new "{#month}At"
# 00action_file.rpy:47
old "{#month}September"
new "{#month}September"
new "{#month}Septembre"
# 00action_file.rpy:47
old "{#month}October"
new "{#month}October"
new "{#month}Octobre"
# 00action_file.rpy:47
old "{#month}November"
new "{#month}November"
new "{#month}Novembre"
# 00action_file.rpy:47
old "{#month}December"
new "{#month}December"
new "{#month}Décembre"
# 00action_file.rpy:63
old "{#month_short}Jan"
@@ -111,7 +111,7 @@ translate french strings:
# 00action_file.rpy:63
old "{#month_short}Feb"
new "{#month_short}Feb"
new "{#month_short}Fév"
# 00action_file.rpy:63
old "{#month_short}Mar"
@@ -119,23 +119,23 @@ translate french strings:
# 00action_file.rpy:63
old "{#month_short}Apr"
new "{#month_short}Apr"
new "{#month_short}Avr"
# 00action_file.rpy:63
old "{#month_short}May"
new "{#month_short}May"
new "{#month_short}Mai"
# 00action_file.rpy:63
old "{#month_short}Jun"
new "{#month_short}Jun"
new "{#month_short}Juin"
# 00action_file.rpy:63
old "{#month_short}Jul"
new "{#month_short}Jul"
new "{#month_short}Juil"
# 00action_file.rpy:63
old "{#month_short}Aug"
new "{#month_short}Aug"
new "{#month_short}A"
# 00action_file.rpy:63
old "{#month_short}Sep"
@@ -151,11 +151,11 @@ translate french strings:
# 00action_file.rpy:63
old "{#month_short}Dec"
new "{#month_short}Dec"
new "{#month_short}Déc"
# 00action_file.rpy:235
old "%b %d, %H:%M"
new "%b %d, %H:%M"
new "%d %b, %H:%M"
# 00action_file.rpy:820
old "Quick save complete."
@@ -163,119 +163,119 @@ translate french strings:
# 00gui.rpy:227
old "Are you sure?"
new "Êtes-vous sûr ?"
new "Êtes-vous sûr ?"
# 00gui.rpy:228
old "Are you sure you want to delete this save?"
new "Êtes-vous sûr de vouloir supprimer cette sauvegarde ?"
new "Êtes-vous sûr de vouloir supprimer cette sauvegarde ?"
# 00gui.rpy:229
old "Are you sure you want to overwrite your save?"
new "Êtes-vous sûr de vouloir écraser cette sauvegarde ?"
new "Êtes-vous sûr de vouloir écraser cette sauvegarde ?"
# 00gui.rpy:230
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "Le chargement entraînera la perte des données non sauvegardées.\nÊtes-vous sûr de vouloir faire cela ?"
new "Le chargement entraînera la perte de votre progression depuis la dernière sauvegarde.\nÊtes-vous sûr de vouloir faire cela ?"
# 00gui.rpy:231
old "Are you sure you want to quit?"
new "Êtes-vous sûr de vouloir quitter ?"
new "Êtes-vous sûr de vouloir quitter ?"
# 00gui.rpy:232
old "Are you sure you want to return to the main menu?\nThis will lose unsaved progress."
new "Êtes-vous sûr de vouloir retourner au menu principal ?\nVous perdrez les données non sauvegardées."
new "Êtes-vous sûr de vouloir retourner au menu principal ?\nVotre progression depuis la dernière sauvegarde sera perdue."
# 00gui.rpy:233
old "Are you sure you want to end the replay?"
new "Are you sure you want to end the replay?"
new "Êtes-vous sûr de vouloir arrêter la rediffusion ?"
# 00gui.rpy:234
old "Are you sure you want to begin skipping?"
new "Êtes-vous sûr de vouloir commencer à sauter ?"
new "Êtes-vous sûr de vouloir sauter les dialogues ?"
# 00gui.rpy:235
old "Are you sure you want to skip to the next choice?"
new "Êtes-vous sûr de vouloir sauter jusqu'au prochain choix ?"
new "Êtes-vous sûr de vouloir sauter les dialogues jusquau prochain choix ?"
# 00gui.rpy:236
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 "Êtes-vous sûr de vouloir sauter les dialogues non vus jusquau prochain choix ?"
# 00keymap.rpy:250
old "Saved screenshot as %s."
new "Sauvez cette capture d'écran sous le nom %s."
new "Capture décran sauvegardée sous le nom %s."
# 00library.rpy:142
old "Self-voicing disabled."
new "Self-voicing disabled."
new "Lecture vocale désactivée."
# 00library.rpy:143
old "Clipboard voicing enabled. "
new "Clipboard voicing enabled. "
new "Lecture vocale vers presse-papier activée. "
# 00library.rpy:144
old "Self-voicing enabled. "
new "Self-voicing enabled. "
new "Lecture vocale activée. "
# 00library.rpy:179
old "Skip Mode"
new "Mode saut"
new "Mode avance rapide"
# 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 "Ce programme contient un logiciel libre soumis à de nombreuses licences incluant la licence « MIT » et la licence « GNU Lesser General Public License ». La liste complète des logiciels, incluant les liens vers le code source complet, peut-être trouvée {a=https://www.renpy.org/l/license}ici{/a}."
# 00preferences.rpy:422
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "Clipboard voicing enabled. Press 'shift+C' to disable."
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 "Self-voicing would say \"[renpy.display.tts.last]\". Press 'alt+shift+V' to disable."
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 "Self-voicing enabled. Press 'v' to disable."
new "Lecture vocale activée. Pressez « v » pour la désactiver."
# 00iap.rpy:217
old "Contacting App Store\nPlease Wait..."
new "Contacting App Store\nPlease Wait..."
new "Connexion à lApple Store.\nVeuillez patienter…"
# 00updater.rpy:367
old "The Ren'Py Updater is not supported on mobile devices."
new "The Ren'Py Updater is not supported on mobile devices."
new "La mise à jour automatique de RenPy nest pas supportée sur les appareils mobiles."
# 00updater.rpy:486
old "An error is being simulated."
new "An error is being simulated."
new "Une erreur est en train d’être simulée."
# 00updater.rpy:662
old "Either this project does not support updating, or the update status file was deleted."
new "Either this project does not support updating, or the update status file was deleted."
new "Soit ce projet ne supporte pas la mise à jour, soit le fichier d’état des mises à jour a été supprimé."
# 00updater.rpy:676
old "This account does not have permission to perform an update."
new "This account does not have permission to perform an update."
new "Ce compte na pas la permission de réaliser une mise à jour."
# 00updater.rpy:679
old "This account does not have permission to write the update log."
new "This account does not have permission to write the update log."
new "Ce compte na pas la permission d’écrire dans le journal de mise à jour."
# 00updater.rpy:704
old "Could not verify update signature."
new "Could not verify update signature."
new "Impossible de vérifier la signature de la mise à jour."
# 00updater.rpy:975
old "The update file was not downloaded."
new "The update file was not downloaded."
new "Le fichier de mise à jour na pas été téléchargé."
# 00updater.rpy:993
old "The update file does not have the correct digest - it may have been corrupted."
new "The update file does not have the correct digest - it may have been corrupted."
new "Le fichier de mise à jour présente une signature incorrecte, le fichier peut avoir été corrompu."
# 00updater.rpy:1049
old "While unpacking {}, unknown type {}."
new "While unpacking {}, unknown type {}."
new "En décompressant {}, type {} inconnu."
# 00updater.rpy:1393
old "Updater"
@@ -287,11 +287,11 @@ translate french strings:
# 00updater.rpy:1406
old "[u.version] is available. Do you want to install it?"
new "[u.version] est disponible. Voulez-vous l'installer ?"
new "[u.version] est disponible. Voulez-vous linstaller ?"
# 00updater.rpy:1408
old "Preparing to download the updates."
new "Préparation au téléchargement de la mise à jour."
new "Préparation du téléchargement de la mise à jour."
# 00updater.rpy:1410
old "Downloading the updates."
@@ -299,7 +299,7 @@ translate french strings:
# 00updater.rpy:1412
old "Unpacking the updates."
new "Dépaquetage de la mise à jour."
new "Décompression de la mise à jour."
# 00updater.rpy:1416
old "The updates have been installed. The program will restart."
@@ -315,11 +315,11 @@ translate french strings:
# 00gallery.rpy:563
old "Image [index] of [count] locked."
new "Image [index] sur [count] bloquée."
new "Image [index] sur [count] verrouillée."
# 00gallery.rpy:583
old "prev"
new "prec."
new "préc."
# 00gallery.rpy:584
old "next"
@@ -333,3 +333,52 @@ 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"
+39 -39
View File
@@ -3,47 +3,47 @@ translate french strings:
# _developer/developer.rpym:38
old "Developer Menu"
new "Developer Menu"
new "Menu du développeur"
# _developer/developer.rpym:43
old "Reload Game (Shift+R)"
new "Reload Game (Shift+R)"
new "Recharger la partie (Maj+R)"
# _developer/developer.rpym:45
old "Console (Shift+O)"
new "Console (Shift+O)"
new "Console (Maj+O)"
# _developer/developer.rpym:47
old "Variable Viewer"
new "Variable Viewer"
new "Visualisateur de variable"
# _developer/developer.rpym:49
old "Theme Test"
new "Theme Test"
new "Test du thème"
# _developer/developer.rpym:51
old "Image Location Picker"
new "Image Location Picker"
new "Sélecteur demplacement dimages"
# _developer/developer.rpym:53
old "Filename List"
new "Filename List"
new "Liste des noms de fichiers"
# _developer/developer.rpym:57
old "Show Image Load Log"
new "Show Image Load Log"
new "Afficher le journal de chargement dimage"
# _developer/developer.rpym:60
old "Hide Image Load Log"
new "Hide Image Load Log"
new "Fermer le journal de chargement dimage"
# _developer/developer.rpym:95
old "Nothing to inspect."
new "Nothing to inspect."
new "Rien à inspecter."
# _developer/developer.rpym:217
old "Return to the developer menu"
new "Return to the developer menu"
new "Retourner au menu du développeur"
# _developer/developer.rpym:373
old "Rectangle: %r"
@@ -55,15 +55,15 @@ translate french strings:
# _developer/developer.rpym:383
old "Right-click or escape to quit."
new "Right-click or escape to quit."
new "Clic droit ou « Echap » pour quitter."
# _developer/developer.rpym:412
old "Rectangle copied to clipboard."
new "Rectangle copied to clipboard."
new "Rectangle copié dans le presse-papier."
# _developer/developer.rpym:415
old "Position copied to clipboard."
new "Position copied to clipboard."
new "Position copiée dans le presse-papier."
# _developer/developer.rpym:524
old "✔ "
@@ -75,15 +75,15 @@ translate french strings:
# _developer/developer.rpym:532
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
new "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
new "\n{color=#cfc}✔ image prédite (bon){/color}\n{color=#fcc}✘ image prédite (mauvais){/color}\n{color=#fff}Glissez pour bouger.{/color}"
# _developer/inspector.rpym:38
old "Displayable Inspector"
new "Displayable Inspector"
new "Inspecteur affichable"
# _developer/inspector.rpym:61
old "Size"
new "Size"
new "Taille"
# _developer/inspector.rpym:65
old "Style"
@@ -91,89 +91,89 @@ translate french strings:
# _developer/inspector.rpym:71
old "Location"
new "Location"
new "Localisation"
# _developer/inspector.rpym:122
old "Inspecting Styles of [displayable_name!q]"
new "Inspecting Styles of [displayable_name!q]"
new "Inspection des styles de [displayable_name!q]"
# _developer/inspector.rpym:139
old "displayable:"
new "displayable:"
new "affichable:"
# _developer/inspector.rpym:145
old " (no properties affect the displayable)"
new " (no properties affect the displayable)"
new " (Aucune propriété naffecte laffichage)"
# _developer/inspector.rpym:147
old " (default properties omitted)"
new " (default properties omitted)"
new " (Propriétés par défaut omises)"
# _developer/inspector.rpym:185
old "<repr() failed>"
new "<repr() failed>"
new "<repr() échoué>"
# 00console.rpy:182
old "Press <esc> to exit console. Type help for help.\n"
new "Press <esc> to exit console. Type help for help.\n"
new "Pressez « Echap » pour quitter la console. Pressez « Aide » pour afficher laide.\n"
# 00console.rpy:186
old "Ren'Py script enabled."
new "Ren'Py script enabled."
new "Script RenPy activé."
# 00console.rpy:188
old "Ren'Py script disabled."
new "Ren'Py script disabled."
new "Script Ren'Py désactivé."
# 00console.rpy:398
old "help: show this help"
new "help: show this help"
new "aide: Afficher cette aide"
# 00console.rpy:403
old "commands:\n"
new "commands:\n"
new "commandes:\n"
# 00console.rpy:413
old " <renpy script statement>: run the statement\n"
new " <renpy script statement>: run the statement\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>: run the expression or statement"
new " <python expression or statement>: Exécuter cette expression ou cette déclaration"
# 00console.rpy:423
old "clear: clear the console history"
new "clear: clear the console history"
new "clear: Purger lhistorique de la console"
# 00console.rpy:427
old "exit: exit the console"
new "exit: exit the console"
new "exit: quitter la console"
# 00console.rpy:435
old "load <slot>: loads the game from slot"
new "load <slot>: loads the game from slot"
new "load <slot>: charger la partie de cet emplacement"
# 00console.rpy:448
old "save <slot>: saves the game in slot"
new "save <slot>: saves the game in slot"
new "save <slot>: sauvegarder la partie dans cet emplacement "
# 00console.rpy:459
old "reload: reloads the game, refreshing the scripts"
new "reload: reloads the game, refreshing the scripts"
new "reload: Recharge le jeu, rafraîchit les scripts"
# 00console.rpy:467
old "watch <expression>: watch a python expression"
new "watch <expression>: watch a python expression"
new "watch <expression>: surveiller une expression Python"
# 00console.rpy:493
old "unwatch <expression>: stop watching an expression"
new "unwatch <expression>: stop watching an expression"
new "unwatch <expression>: Arrêter la surveillance dune expression Python"
# 00console.rpy:519
old "unwatchall: stop watching all expressions"
new "unwatchall: stop watching all expressions"
new "unwatchall: Arrêter de surveiller toutes les expressions"
# 00console.rpy:536
old "jump <label>: jumps to label"
new "jump <label>: jumps to label"
new "jump <label>: Saute jusquau label"
+69 -31
View File
@@ -11,11 +11,11 @@ translate french strings:
# 00gltest.rpy:75
old "Force Angle/DirectX Renderer"
new "Forcer le rendu 'Angle/DirectX'"
new "Forcer le rendu « Angle/DirectX »"
# 00gltest.rpy:79
old "Force OpenGL Renderer"
new "Forcer le rendu 'OpenGL'"
new "Forcer le rendu « OpenGL »"
# 00gltest.rpy:83
old "Force Software Renderer"
@@ -23,7 +23,7 @@ translate french strings:
# 00gltest.rpy:93
old "Enable"
new "Enable"
new "Active"
# 00gltest.rpy:109
old "Changes will take effect the next time this program is run."
@@ -31,7 +31,7 @@ translate french strings:
# 00gltest.rpy:141
old "Performance Warning"
new "Avertissement concernant les performances."
new "Alerte de performance."
# 00gltest.rpy:146
old "This computer is using software rendering."
@@ -39,23 +39,23 @@ translate french strings:
# 00gltest.rpy:148
old "This computer is not using shaders."
new "Cet ordinateur n'utilise pas les 'shaders'."
new "Cet ordinateur nutilise pas les « shaders »."
# 00gltest.rpy:150
old "This computer is displaying graphics slowly."
new "Cet ordinateur affiche lentement les graphismes."
new "Cet ordinateur affiche les graphismes lentement."
# 00gltest.rpy:152
old "This computer has a problem displaying graphics: [problem]."
new "Cet ordinateur a un problème pour afficher les graphismes: [problem]."
new "Cet ordinateur rencontre un problème pour afficher les graphismes: [problem]."
# 00gltest.rpy:157
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
new "Les pilotes graphiques sont peut être pas à jour ou n'oppèrent pas correctement. Cela peut entraîner des lenteurs ou des erreurs d'affichage. Mettre à jour DirectX pourrait résoudre ce problème."
new "Les pilotes graphiques ne sont peut-être pas à jour ou noppèrent pas correctement. Cela peut conduire à des lenteurs ou des erreurs d'affichage. La mise à jour de DirectX pourrait résoudre ce problème."
# 00gltest.rpy:159
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
new "Les pilotes graphiques sont peut être pas à jour ou n'opèrent pas correctement. Cela peut entraîner des lenteurs ou des erreurs d'affichage."
new "Les pilotes graphiques ne sont peut-être pas à jour ou nopèrent pas correctement. Cela peut conduire à des lenteurs ou des erreurs d'affichage."
# 00gltest.rpy:164
old "Update DirectX"
@@ -63,11 +63,11 @@ translate french strings:
# 00gltest.rpy:170
old "Continue, Show this warning again"
new "Continuer. Montrer cet avertissement à chaque fois."
new "Continuer et afficher cet avertissement à chaque fois."
# 00gltest.rpy:174
old "Continue, Don't show warning again"
new "Continuer. Ne plus montrer cet avertissement."
new "Continuer et ne plus afficher cet avertissement."
# 00gltest.rpy:192
old "Updating DirectX."
@@ -75,15 +75,15 @@ translate french strings:
# 00gltest.rpy:196
old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX."
new "La page Web d'installation de DirectX a été lancé. Il se peut que la page soit minimisée. Suivez les instructions pour installer DirectX."
new "Linstallation de DirectX via le web a été lancée. Il se peut que lapplication soit minimisée et uniquement présente dans la barre des tâches. Suivez les instructions pour installer DirectX."
# 00gltest.rpy:200
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
new "{b}Note:{/b} la page web d'installation de Microsoft DirectX va, par défaut, installer le barre d'outils Bing. Décochez la case appropriée si vous ne voulez pas de cette barre d'outils."
new "{b}Note :{/b} Par défaut, linstallation de Microsoft DirectX via le web va installer la barre d'outils « Bing ». Pensez à décocher la case appropriée si vous ne voulez pas de cette barre d'outils."
# 00gltest.rpy:204
old "When setup finishes, please click below to restart this program."
new "Quand l'installation est terminée, cliquez ci-dessous pour redémarrer ce programme."
new "Quand linstallation sera terminée, cliquez ci-dessous pour redémarrer ce programme."
# 00gltest.rpy:206
old "Restart"
@@ -91,27 +91,27 @@ translate french strings:
# 00gamepad.rpy:32
old "Select Gamepad to Calibrate"
new "Select Gamepad to Calibrate"
new "Sélectionnez la manette à calibrer"
# 00gamepad.rpy:35
old "No Gamepads Available"
new "No Gamepads Available"
new "Aucune manette disponible"
# 00gamepad.rpy:54
old "Calibrating [name] ([i]/[total])"
new "Calibrating [name] ([i]/[total])"
new "Calibrage de [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Press or move the [control!r] [kind]."
new "Pressez ou déplacez le [kind] [control!r]."
# 00gamepad.rpy:66
old "Skip (A)"
new "Skip (A)"
new "Passer (A)"
# 00gamepad.rpy:69
old "Back (B)"
new "Back (B)"
new "Retour (B)"
# _errorhandling.rpym:495
old "Open Traceback"
@@ -119,27 +119,27 @@ translate french strings:
# _errorhandling.rpym:497
old "Opens the traceback.txt file in a text editor."
new "Ouvrir le fichier 'traceback.txt' dans un éditeur de texte."
new "Ouvrir le fichier « traceback.txt » dans un éditeur de texte."
# _errorhandling.rpym:499
old "Copy to Clipboard"
new "Copy to Clipboard"
new "Copier dans le presse-papier"
# _errorhandling.rpym:501
old "Copies the traceback.txt file to the clipboard."
new "Copies the traceback.txt file to the clipboard."
new "Copie le fichier traceback.txt dans le presse-papier."
# _errorhandling.rpym:519
old "An exception has occurred."
new "Une exception est apparue."
new "Une exception est survenue."
# _errorhandling.rpym:538
old "Rollback"
new "Retour arrière"
new "Annuler"
# _errorhandling.rpym:540
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "Essai de retour arrière, permettant de sauvegarder ou de faire un choix différent."
new "Tente une annulation jusqu’à l’état précédent, cela vous permettra de sauvegarder ou deffectuer un choix différent."
# _errorhandling.rpym:543
old "Ignore"
@@ -147,7 +147,7 @@ translate french strings:
# _errorhandling.rpym:545
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "Ignorer l'exception, et continuer. Cela amène souvent à de nouvelles erreurs."
new "Ignorer lexception, et continuer. Cela conduit souvent à de nouvelles erreurs."
# _errorhandling.rpym:548
old "Reload"
@@ -163,17 +163,55 @@ translate french strings:
# _errorhandling.rpym:582
old "Parsing the script failed."
new "Échec dans l'interprétation du jeu."
new "Lanalyse du script a échoué."
# _errorhandling.rpym:606
old "Open Parse Errors"
new "Ouvrir les erreurs d'interprétation"
new "Afficher les erreurs dinterprétation"
# _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 "Copies the errors.txt file to the clipboard."
new "Copie le contenu du fichier « errors.txt » dans le presse-papier."
translate french strings:
# 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."
+102 -102
View File
@@ -3,107 +3,107 @@ translate french strings:
# gui.rpy:2
old "## Initialization"
new "## Initialization"
new "## Initialisation"
# 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 "## The init offset statement causes the init code in this file to run before init code in any other file."
new "## Linstruction init déclenche lexécution du code dinitialisation de ce fichier avant le code dinitialisation de nimporte quel autre fichier."
# gui.rpy:9
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
new "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
new "## Appelé gui.init réinitialise les styles à leurs valeurs par défaut et initialise la largeur et la hauteur du jeu."
# gui.rpy:21
old "## Colors"
new "## Colors"
new "## Couleurs"
# gui.rpy:23
old "## The colors of text in the interface."
new "## The colors of text in the interface."
new "## Les couleurs du texte dans linterface."
# gui.rpy:25
old "## An accent color used throughout the interface to label and highlight text."
new "## An accent color used throughout the interface to label and highlight text."
new "## Une couleur utilisée dans linterface pour mettre laccent sur un texte (surbrillance)."
# gui.rpy:29
old "## The color used for a text button when it is neither selected nor hovered."
new "## The color used for a text button when it is neither selected nor hovered."
new "## La couleur utilisée pour le texte dun bouton quand il na jamais été sélectionné ou survolé."
# gui.rpy:32
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## La petite couleur est utilisé pour les textes courts qui nécessitent d’être assombris ou éclairés pour obtenir le même effet."
# gui.rpy:36
old "## The color that is used for buttons and bars that are hovered."
new "## The color that is used for buttons and bars that are hovered."
new "## Cette couleur est utilisée pour les boutons et les barres qui sont survolées."
# 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 "## 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 "## Cette couleur est utilisé pour le texte dun bouton sélectionné, mais qui na pas le focus. Un bouton est sélectionné sil est sur l’écran actuel ou si cest la valeur de préférence."
# gui.rpy:43
old "## The color used for a text button when it cannot be selected."
new "## The color used for a text button when it cannot be selected."
new "## La couleur utilisée pour le texte dun bouton qui ne peut pas être sélectionné."
# 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 "## 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 "## Couleurs utilisées pour les portions de barres qui ne sont pas remplies. Elles ne sont pas utilisées directement, mais quand les fichiers dimages sont régénérés."
# gui.rpy:51
old "## The colors used for dialogue and menu choice text."
new "## The colors used for dialogue and menu choice text."
new "## Les couleurs utilisées pour les dialogues et les menus de choix."
# gui.rpy:56
old "## Fonts and Font Sizes"
new "## Fonts and Font Sizes"
new "## Polices et tailles de police"
# gui.rpy:58
old "## The font used for in-game text."
new "## The font used for in-game text."
new "## Les polices utilisées pour le texte du jeu."
# gui.rpy:61
old "## The font used for character names."
new "## The font used for character names."
new "## Les polices utilisées pour le nom des personnages."
# gui.rpy:64
old "## The font used for out-of-game text."
new "## The font used for out-of-game text."
new "## Les polices utilisées pour les textes « hors du jeu »."
# gui.rpy:67
old "## The size of normal dialogue text."
new "## The size of normal dialogue text."
new "## La taille normale pour les dialogues."
# gui.rpy:70
old "## The size of character names."
new "## The size of character names."
new "## La taille pour le nom des personnages."
# gui.rpy:73
old "## The size of text in the game's user interface."
new "## The size of text in the game's user interface."
new "## La taille du texte dans linterface de jeu."
# gui.rpy:76
old "## The size of labels in the game's user interface."
new "## The size of labels in the game's user interface."
new "## La taille des libellés dans linterface de jeu."
# gui.rpy:79
old "## The size of text on the notify screen."
new "## The size of text on the notify screen."
new "## La taille du texte dans la zone de notification."
# gui.rpy:82
old "## The size of the game's title."
new "## The size of the game's title."
new "## La taille du titre du jeu."
# gui.rpy:86
old "## Main and Game Menus"
new "## Main and Game Menus"
new "## Menu du jeu et menu principal"
# gui.rpy:88
old "## The images used for the main and game menus."
new "## The images used for the main and game menus."
new "## Les images utilisées pour le menu principal et le menu du jeu."
# gui.rpy:92
old "## Should we show the name and version of the game?"
new "## Should we show the name and version of the game?"
new "## Doit-on afficher le nom et la version du jeu ?"
# gui.rpy:96
old "## Dialogue"
@@ -111,301 +111,301 @@ translate french strings:
# gui.rpy:98
old "## These variables control how dialogue is displayed on the screen one line at a time."
new "## These variables control how dialogue is displayed on the screen one line at a time."
new "## Ces variables contrôlent comment les dialogues sont affichés une ligne à la fois."
# gui.rpy:101
old "## The height of the textbox containing dialogue."
new "## The height of the textbox containing dialogue."
new "## La hauteur de la fenêtre contenant les dialogues."
# gui.rpy:104
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
new "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
new "## Lemplacement vertical de la zone de texte à l’écran. 0.0 pour le haut, 0.5 pour le centre et 1.0 pour le bas."
# gui.rpy:109
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
new "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
new "## Lemplacement relatif à la zone de texte du nom du personnage en train de parler. La valeur peut être un nombre entier de pixels depuis la gauche ou le haut ou 0.5 pour le centre."
# gui.rpy:114
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## Lalignement horizontal du nom du personnage. La valeur peut être 0.0 pour un alignement à gauche, 0.5 pour le centrer et 1.0 pour un alignement à droite."
# gui.rpy:118
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## La largeur, profondeur et les bords de la zone contenant le nom du personnage ou « None » pour le dimensionner automatiquement."
# gui.rpy:123
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
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."
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 "## 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
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."
new "## 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."
new "## Lemplacement du dialogue relatif à la zone de texte. La valeur peut être un nombre entier de pixels depuis la gauche ou le haut ou 0.5 pour le centre."
# gui.rpy:138
old "## The maximum width of dialogue text, in pixels."
new "## The maximum width of dialogue text, in pixels."
new "## La largeur maximale en pixels de la zone de dialogue."
# gui.rpy:141
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## Lalignement horizontal de la zone de dialogue. La valeur peut être 0.0 pour un alignement à gauche, 0.5 pour le centrer et 1.0 pour un alignement à droite."
# gui.rpy:146
old "## Buttons"
new "## Buttons"
new "## Boutons"
# gui.rpy:148
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "##Ces variables, ainsi que les fichiers dimage dans gui/button, contrôlent la façon dafficher les boutons et leur aspect."
# gui.rpy:151
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## La largeur et la hauteur dun bouton en pixels. Si aucune valeur nest renseignée (None), RenPy calcule la taille."
# gui.rpy:155
old "## The borders on each side of the button, in left, top, right, bottom order."
new "## The borders on each side of the button, in left, top, right, bottom order."
new "## Les bordures de chaque côté du bouton dans lordre suivant gauche, haut, droit, bas."
# gui.rpy:158
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## Si « True » (vrai), limage darrière plan sera en mosaïque, si « False »(faux), elle sera mise à l’échelle."
# gui.rpy:162
old "## The font used by the button."
new "## The font used by the button."
new "## La police utilisée par le bouton."
# gui.rpy:165
old "## The size of the text used by the button."
new "## The size of the text used by the button."
new "## La taille du texte utilisée pour le bouton."
# gui.rpy:179
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
new "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
new "## Ces variables surchargent les paramètres par défaut pour différents types de boutons. Veuillez consulter la documentation de linterface de jeu (GUI) pour les types de boutons disponibles et leurs usages."
# gui.rpy:183
old "## These customizations are used by the default interface:"
new "## These customizations are used by the default interface:"
new "## Ces personnalisations sont utilisées par linterface par défaut :"
# gui.rpy:198
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
new "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
new "## Vous pouvez également ajouter vos propres personnalisations en ajoutant des variables correctement nommées. Par exemple, vous pouvez décommanter la ligne suivante pour personnaliser la largeur du bouton de navigation."
# gui.rpy:205
old "## Choice Buttons"
new "## Choice Buttons"
new "## Boutons pour les choix"
# gui.rpy:207
old "## Choice buttons are used in the in-game menus."
new "## Choice buttons are used in the in-game menus."
new "## Les boutons pour les choix (Choice buttons) sont utilisés dans le jeu pour permettre au joueur de choisir telle ou telle action, tel ou tel dialogue."
# gui.rpy:220
old "## File Slot Buttons"
new "## File Slot Buttons"
new "## Boutons des emplacements de fichiers."
# gui.rpy:222
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## Un bouton demplacement de fichier est un type spécial de bouton. Il contient une vignette et un texte décrivant le contenu de la sauvegarde présente dans lemplacement. Un emplacement de sauvegarde utilise une image dans gui/button, comme les autres types de bouton."
# gui.rpy:226
old "## The save slot button."
new "## The save slot button."
new "## Le bouton demplacement de sauvegarde."
# gui.rpy:234
old "## The width and height of thumbnails used by the save slots."
new "## The width and height of thumbnails used by the save slots."
new "## La largeur et la hauteur des vignettes de sauvegarde utilisée pour les emplacements de sauvegarde."
# gui.rpy:238
old "## The number of columns and rows in the grid of save slots."
new "## The number of columns and rows in the grid of save slots."
new "## Le nombre de colonnes et de lignes pour la grille des emplacements de sauvegarde."
# gui.rpy:243
old "## Positioning and Spacing"
new "## Positioning and Spacing"
new "## Positionnement et espacement"
# gui.rpy:245
old "## These variables control the positioning and spacing of various user interface elements."
new "## These variables control the positioning and spacing of various user interface elements."
new "## Ces variables contrôlent lespacement et le positionnement des différents éléments de linterface utilisateur."
# gui.rpy:248
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## La position sur le côté gauche des boutons de navigation, relatif au côté gauche de l'écran."
# gui.rpy:252
old "## The vertical position of the skip indicator."
new "## The vertical position of the skip indicator."
new "## La position vertical du lindicateur de saut des dialogues."
# gui.rpy:255
old "## The vertical position of the notify screen."
new "## The vertical position of the notify screen."
new "## La position verticale de la zone de notification."
# gui.rpy:258
old "## The spacing between menu choices."
new "## The spacing between menu choices."
new "## Lespacement entre les différents choix du menu."
# gui.rpy:261
old "## Buttons in the navigation section of the main and game menus."
new "## Buttons in the navigation section of the main and game menus."
new "## Boutons dans la section de navigation du menu principal et du menu de jeu."
# gui.rpy:264
old "## Controls the amount of spacing between preferences."
new "## Controls the amount of spacing between preferences."
new "## Contrôle lespacement entre les préférences."
# gui.rpy:267
old "## Controls the amount of spacing between preference buttons."
new "## Controls the amount of spacing between preference buttons."
new "## Contrôle lespacements entre les boutons de préférences."
# gui.rpy:270
old "## The spacing between file page buttons."
new "## The spacing between file page buttons."
new "## Lespacement entre les boutons de page."
# gui.rpy:273
old "## The spacing between file slots."
new "## The spacing between file slots."
new "## Lespacement entre les emplacements de sauvegarde."
# gui.rpy:277
old "## Frames"
new "## Frames"
new "## Cadres"
# 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 "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
new "## Ces variables contrôlent le look des cadres qui peuvent contenir les composants de linterface utilisateur quand un overlay ou une fenêtre ne sont pas présents."
# gui.rpy:282
old "## Generic frames that are introduced by player code."
new "## Generic frames that are introduced by player code."
new "## Les cadres génériques qui sont introduits par le code du joueur."
# gui.rpy:285
old "## The frame that is used as part of the confirm screen."
new "## The frame that is used as part of the confirm screen."
new "## Le cadre qui est utilisé par les écrans de confirmation."
# gui.rpy:288
old "## The frame that is used as part of the skip screen."
new "## The frame that is used as part of the skip screen."
new "## Le cadre qui est utilisé par l’écran de saut des dialogues."
# gui.rpy:291
old "## The frame that is used as part of the notify screen."
new "## The frame that is used as part of the notify screen."
new "## Le cadre qui est utilisé par la zone de notification."
# gui.rpy:294
old "## Should frame backgrounds be tiled?"
new "## Should frame backgrounds be tiled?"
new "## Est-ce que les arrière-plans des cadres doivent être en mosaïque ?"
# gui.rpy:298
old "## Bars, Scrollbars, and Sliders"
new "## Bars, Scrollbars, and Sliders"
new "## Barres, ascenseurs et curseurs"
# gui.rpy:300
old "## These control the look and size of bars, scrollbars, and sliders."
new "## These control the look and size of bars, scrollbars, and sliders."
new "## Ceux-ci contrôlent le look et la taille des barres, des ascenseurs et des curseurs."
# gui.rpy:302
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
new "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
new "## Linterface GUI par défaut utilise seulement des curseurs et des ascenseurs verticaux. Toutes les autres barres sont seulement utilisées dans les codes du créateur."
# gui.rpy:305
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## La hauteur des barres, des ascenseurs et des curseurs horizontaux. La largeur des barres, des ascenseurs et des curseurs verticaux."
# gui.rpy:311
old "## True if bar images should be tiled. False if they should be linearly scaled."
new "## True if bar images should be tiled. False if they should be linearly scaled."
new "## « True » (Vrai) si les images de barres doivent être en mosaïques. « False »(Faux) si elles doivent être mise à l'échelle (étirement)."
# gui.rpy:316
old "## Horizontal borders."
new "## Horizontal borders."
new "## Bordures horizontales."
# gui.rpy:321
old "## Vertical borders."
new "## Vertical borders."
new "## Bordures verticales."
# gui.rpy:326
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## Que faire avec les ascenseurs non utilisables dans le GUI ? « hide » les cache tandis que « None » les affiche."
# gui.rpy:331
old "## History"
new "## History"
new "## Historique"
# gui.rpy:333
old "## The history screen displays dialogue that the player has already dismissed."
new "## The history screen displays dialogue that the player has already dismissed."
new "## L’écran de lhistorique affiche les dialogues que le joueur vient de lire."
# gui.rpy:335
old "## The number of blocks of dialogue history Ren'Py will keep."
new "## The number of blocks of dialogue history Ren'Py will keep."
new "## Le nombre de blocs que lhistorique de dialogue RenPy va conserver."
# gui.rpy:338
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## La hauteur de l’écran historique ou « None » pour calculer la hauteur au prix dune légère perte de performance."
# gui.rpy:342
old "## The position, width, and alignment of the label giving the name of the speaking character."
new "## The position, width, and alignment of the label giving the name of the speaking character."
new "## La position, largeur et alignement du label donnant le nom du personnage en train de parler."
# gui.rpy:349
old "## The position, width, and alignment of the dialogue text."
new "## The position, width, and alignment of the dialogue text."
new "## La position, largeur et alignement de la zone de dialogue."
# gui.rpy:356
old "## NVL-Mode"
new "## NVL-Mode"
new "## Mode NVL"
# gui.rpy:358
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## L’écran du mode NVL affiche les dialogues prononcés par les personnages eux-mêmes en mode NVL."
# gui.rpy:360
old "## The borders of the background of the NVL-mode background window."
new "## The borders of the background of the NVL-mode background window."
new "## Les bordures de larrière-plan de la fenêtre en mode NVL."
# gui.rpy:363
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## La hauteur dune entrée en mode NVL. Initialisez-la à « None » pour que la hauteur des entrées sajuste automatiquement."
# gui.rpy:367
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## Lespacement entre les entrées en mode NVL quand gui.nvl_height est à « None » et entre les entrées en mode NVL et le menu en mode NVL."
# gui.rpy:384
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## La position, profondeur et lalignement du text nvl_tought (Le texte prononcé par le personnage nvl_narrator)."
# gui.rpy:391
old "## The position of nvl menu_buttons."
new "## The position of nvl menu_buttons."
new "## La position de nvl menu_buttons."
# gui.rpy:403
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## Ceci augmente la taille des boutons daccès rapide pour les rendre plus accessibles sur les tablettes et les téléphones."
# gui.rpy:409
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## Ceci change la taille et lespacement de différents élements de la GUI pour sassurer quils soient visibles sur les téléphones."
# gui.rpy:413
old "## Font sizes."
new "## Font sizes."
new "## Tailles des polices."
# gui.rpy:421
old "## Adjust the location of the textbox."
new "## Adjust the location of the textbox."
new "## Ajuste la position de la zone de texte."
# gui.rpy:427
old "## Change the size and spacing of items in the game menu."
new "## Change the size and spacing of items in the game menu."
new "## Change la taille et lespacement des items dans le menu du jeu."
# gui.rpy:436
old "## File button layout."
new "## File button layout."
new "## Remplit le canvas du bouton."
# gui.rpy:440
old "## NVL-mode."
new "## NVL-mode."
new "## Mode NVL."
# gui.rpy:456
old "## Quick buttons."
new "## Quick buttons."
new "## Bouton daccès rapide."
File diff suppressed because it is too large Load Diff
+47 -48
View File
@@ -3,59 +3,59 @@ translate french strings:
# options.rpy:1
old "## This file contains options that can be changed to customize your game."
new "## This file contains options that can be changed to customize your game."
new "## Ce fichier contient les options qui peuvent être modifiées pour personnaliser votre jeu."
# options.rpy:4
old "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
new "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
new "## Les lignes qui commencent avec deux dièses '#' sont des commentaires et vous ne devriez pas les décommenter. Les lignes qui commencent avec un seul dièse sont du code commenté et vous pouvez les décommentez quand cest approprié (pour votre projet)."
# options.rpy:10
old "## Basics"
new "## Basics"
new "## Bases"
# 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 "## 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 "## Un nom de jeu intelligible. Il est utilisé pour personnaliser le titre de la fenêtre par défaut et saffiche dans linterface ainsi que dans les rapports derreur."
# options.rpy:15
old "## The _() surrounding the string marks it as eligible for translation."
new "## The _() surrounding the string marks it as eligible for translation."
new "## La chaîne de caractère contenu dans _() est éligible à la traduction."
# options.rpy:17
old "Ren'Py 7 Default GUI"
new "Ren'Py 7 Default GUI"
new "GUI RenPy 7 par défaut"
# options.rpy:20
old "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
new "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
new "## Détermine si le titre renseigné plus haut est affiché sur l'écran du menu principal Configurez-le à False (Faux) pour cacher le titre."
# options.rpy:26
old "## The version of the game."
new "## The version of the game."
new "## La version du jeu."
# 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 that is placed on the game's about screen. To insert a blank line between paragraphs, write \\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 "## 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-virgules."
# options.rpy:44
old "## Sounds and music"
new "## 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 "## 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é."
# 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 "## 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 "## Pour autoriser le joueur à réaliser un test de volume, décommenter la ligne ci-dessous et utilisez-la pour configurer un son dexemple."
# 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 "## 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 "## commentez la ligne suivante pour configurer un fichier audio qui sera diffusé quand le joueur sera sur le menu principal. Ce son se poursuivra dans le jeu, jusqu’à ce qu'il soit stoppé ou quun autre fichier soit joué."
# options.rpy:69
old "## Transitions"
@@ -63,133 +63,132 @@ 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 "## 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 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."
new "## Entering or exiting the game menu."
new "## À lentrée ou à la sortie du menu du jeu."
# options.rpy:81
old "## A transition that is used after a game has been loaded."
new "## A transition that is used after a game has been loaded."
new "## La transition qui sera utilisée après le chargement dune partie."
# options.rpy:86
old "## Used when entering the main menu after the game has ended."
new "## Used when entering the main menu after the game has ended."
new "## La transition qui sera utilisé après la fin du jeu."
# 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 "## 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 "## Il ny a pas de variable pour configurer la transition en début de partie. À la place, utilisez un état de transition juste après laffichage de la toute première scène."
# options.rpy:96
old "## Window management"
new "## Window management"
new "## Gestion des fenêtres"
# options.rpy:98
old "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
new "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
new "## Cela contrôle laffichage de la fenêtre de dialogue. Si « show », elle est toujours affichée. Si « hide », elle ne saffiche que lorsque du dialogue est présent. Si « auto », La fenêtre est cachée avant chaque changement de scène et réapparait une fois le dialogue affiché."
# options.rpy:103
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## Après le début de la partie, cela peut-être changé avec les instructions « window show », « window hide » et « window auto »."
# options.rpy:109
old "## Transitions used to show and hide the dialogue window"
new "## Transitions used to show and hide the dialogue window"
new "## Transitions utilisées pour afficher ou cacher la fenêtre de dialogue"
# options.rpy:115
old "## Preference defaults"
new "## Preference defaults"
new "## Préférences par défaut"
# options.rpy:117
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
new "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
new "## Contrôle la vitesse du texte. La valeur par défaut, 0, est infinie. Toute autre valeur est le nombre de caractères tapés par seconde."
# options.rpy:123
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
new "## 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î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"
new "## Save directory"
new "## Répertoire de sauvegarde"
# 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 "## 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é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>"
new "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
new "## Windows : %APPDATA\\RenPy\\<config.save_directory>"
# options.rpy:136
old "## Macintosh: $HOME/Library/RenPy/<config.save_directory>"
new "## Macintosh: $HOME/Library/RenPy/<config.save_directory>"
new "## Macintosh : $HOME/Library/RenPy/<config.save_directory>"
# options.rpy:138
old "## Linux: $HOME/.renpy/<config.save_directory>"
new "## Linux: $HOME/.renpy/<config.save_directory>"
new "## Linux : $HOME/.renpy/<config.save_directory>"
# options.rpy:140
old "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
new "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
new "## Cela ne devrait généralement pas changer. Si vous le faîtes, choisissez toujours une chaîne de caractères littéraux, pas une expression."
# options.rpy:146
old "## Icon ########################################################################'"
new "## Icon ########################################################################'"
new "## Icone #######################################################################'"
# options.rpy:148
old "## The icon displayed on the taskbar or dock."
new "## The icon displayed on the taskbar or dock."
new "## L'icone affichée dans la barre des tâches ou sur le dock."
# options.rpy:153
old "## Build configuration"
new "## Build configuration"
new "## Configuration de la compilation"
# options.rpy:155
old "## This section controls how Ren'Py turns your project into distribution files."
new "## This section controls how Ren'Py turns your project into distribution files."
new "## Cette section paramètre la façon dont RenPy transforme votre projet en fichier à distribuer."
# options.rpy:160
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
new "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
new "## Les fonctions suivantes prennent en paramètres un format de fichier. Les formats de fichiers ne sont pas sensibles à la casse et correspondent au répertoire relatif au répertoire de base. Il ny a pas de / à la fin. Si plusieurs formats correspondent, le premier est utilisé."
# options.rpy:165
old "## In a pattern:"
new "## In a pattern:"
new "## Dans le format:"
# options.rpy:167
old "## / is the directory separator."
new "## / is the directory separator."
new "## / est le séparateur de répertoire."
# options.rpy:169
old "## * matches all characters, except the directory separator."
new "## * matches all characters, except the directory separator."
new "## * correspond à tous les caractères à lexception du séparateur de répertoire."
# options.rpy:171
old "## ** matches all characters, including the directory separator."
new "## ** matches all characters, including the directory separator."
new "## ** correspond à tous les caractères, y compris le séparateur de répertoire."
# options.rpy:173
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
new "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
new "## Par exemple, \"*.txt\" correspond à tous les fichiers txt dans le répertoire de base, \"game/**.ogg\" correspond à tous les fichiers ogg dans le répertoire game, mais aussi à tous ses répertoires. \"**.psd\" correspond à tous les fichiers psd quelque soit leur emplacement dans larborescence du fichier."
# options.rpy:177
old "## Classify files as None to exclude them from the built distributions."
new "## Classify files as None to exclude them from the built distributions."
new "## Choisissez la valeur « None » pour les exclure de la distribution."
# options.rpy:185
old "## To archive files, classify them as 'archive'."
new "## To archive files, classify them as 'archive'."
new "## Pour archiver les fichiers, choisissez la valeur « archive »."
# options.rpy:190
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
new "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
new "## Les fichiers correspondant au format de documentation sont dupliqués pour les compilation sur Mac, c'est pourquoi ils apparaissent deux fois dans larchive zip."
# options.rpy:196
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
new "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
new "## Une clé de licence A Google Play est requise pour télécharger les fichiers et permettre les achats dans l'application. Vous pourrez la trouver sur la page « Services & APIs » de la console de développement Google Play."
# options.rpy:203
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## 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."
+112 -113
View File
@@ -7,19 +7,19 @@ translate french strings:
# screens.rpy:87
old "## In-game screens"
new "## In-game screens"
new "## Écrans de jeu"
# screens.rpy:91
old "## Say screen"
new "## Say screen"
new "## Écran des dialogues"
# screens.rpy:93
old "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
new "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
new "## L’écran des dialogues est utilisé pour afficher les dialogues du joueur. Il prend deux paramètres, who(qui) et what(quoi) qui sont respectivement le nom du personnage en train de parler et le texte à afficher. (Le paramètre who(qui) peut être None si aucun nom nest donné.)"
# 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 "## 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 "## Cet écran affiche le texte correspondant à what. Il peut également créer un texte avec le paramètre who et lidentifiant « window » est utilisé pour déterminer les styles à appliquer."
# screens.rpy:102
old "## https://www.renpy.org/doc/html/screen_special.html#say"
@@ -27,11 +27,11 @@ translate french strings:
# screens.rpy:169
old "## Input screen"
new "## Input screen"
new "## Écran de saisie"
# screens.rpy:171
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
new "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
new "## Cet écran est utilisé pour afficher renpy.input. Le paramètre prompt est utilisé pour passer le texte par défaut."
# screens.rpy:174
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
@@ -43,11 +43,11 @@ translate french strings:
# screens.rpy:205
old "## Choice screen"
new "## Choice screen"
new "## Écran des choix"
# 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 "## 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 "## Cet écran est utilisé pour afficher les choix qui seront fait par le joueur dans le jeu. Le premier paramètre, items, est une liste d'objets contenant chacun des champs de texte et d'action."
# screens.rpy:211
old "## http://www.renpy.org/doc/html/screen_special.html#choice"
@@ -59,11 +59,11 @@ translate french strings:
# screens.rpy:244
old "## Quick Menu screen"
new "## Quick Menu screen"
new "## Écran des menus rapides"
# screens.rpy:246
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## Les menus rapides sont affichés dans le jeu pour permettre un accès rapide à certaines fonctions."
# screens.rpy:261
old "Back"
@@ -71,11 +71,11 @@ translate french strings:
# screens.rpy:262
old "History"
new "History"
new "Historique"
# screens.rpy:263
old "Skip"
new "Saut"
new "Avance rapide"
# screens.rpy:264
old "Auto"
@@ -83,7 +83,7 @@ translate french strings:
# screens.rpy:265
old "Save"
new "Sauvegarder"
new "Sauvegarde"
# screens.rpy:266
old "Q.Save"
@@ -95,27 +95,27 @@ translate french strings:
# screens.rpy:268
old "Prefs"
new "Prefs."
new "Préf."
# screens.rpy:271
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
new "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
new "## Ce code garantit que le menu daccès rapide sera affiché dans le jeu, tant que le joueur naura pas explicitement demandé à cacher linterface."
# screens.rpy:291
old "## Navigation screen"
new "## Navigation screen"
new "## Écran de navigation"
# screens.rpy:293
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
new "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
new "## Cet écran est disponible dans le menu principal et dans le menu de jeu. Il fournit laccès aux autres menus et permet le démarrage du jeu."
# screens.rpy:308
old "Start"
new "Start"
new "Nouvelle partie"
# screens.rpy:316
old "Load"
new "Load"
new "Charger"
# screens.rpy:318
old "Preferences"
@@ -123,7 +123,7 @@ translate french strings:
# screens.rpy:322
old "End Replay"
new "End Replay"
new "Fin de la rediffusion"
# screens.rpy:326
old "Main Menu"
@@ -135,7 +135,7 @@ translate french strings:
# screens.rpy:332
old "## Help isn't necessary or relevant to mobile devices."
new "## Help isn't necessary or relevant to mobile devices."
new "## L'aide nest ni nécessaire ni pertinente sur les appareils mobiles."
# screens.rpy:333
old "Help"
@@ -143,7 +143,7 @@ translate french strings:
# screens.rpy:335
old "## The quit button is banned on iOS and unnecessary on Android."
new "## The quit button is banned on iOS and unnecessary on Android."
new "## Le bouton pour quitter est banni sur iOs et n'est pas nécessaire sur Android."
# screens.rpy:336
old "Quit"
@@ -151,11 +151,11 @@ translate french strings:
# screens.rpy:350
old "## Main Menu screen"
new "## Main Menu screen"
new "## Écran du menu principal"
# screens.rpy:352
old "## Used to display the main menu when Ren'Py starts."
new "## Used to display the main menu when Ren'Py starts."
new "## Utilisé pour afficher le menu principal quand Ren'Py démarre."
# screens.rpy:354
old "## http://www.renpy.org/doc/html/screen_special.html#main-menu"
@@ -167,7 +167,7 @@ translate french strings:
# screens.rpy:413
old "## Game Menu screen"
new "## Game Menu screen"
new "## Écran du menu de jeu"
# screens.rpy:415
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
@@ -183,19 +183,19 @@ translate french strings:
# screens.rpy:539
old "## About screen"
new "## About screen"
new "## Écran « À propos... »"
# screens.rpy:541
old "## This screen gives credit and copyright information about the game and Ren'Py."
new "## This screen gives credit and copyright information about the game and Ren'Py."
new "## Cet écran présente le générique, les crédits et les informations de copyright relatives au jeu et à RenPy."
# screens.rpy:544
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## Il ny a rien de spécial sur cet écran. Par conséquent, il sert aussi dexemple pour créer un écran personnalisé."
# 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 "## 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 "## Cette déclaration concerne l’écran game_menu. L’élément vbox est ensuite inclus dans la fenêtre de l'écran game_menu."
# screens.rpy:561
old "Version [config.version!t]\n"
@@ -203,23 +203,23 @@ translate french strings:
# screens.rpy:563
old "## gui.about is usually set in options.rpy."
new "## gui.about is usually set in options.rpy."
new "## gui.about est généralement initialisé dans le fichier options.rpy."
# screens.rpy:567
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
new "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
new "Conçu avec {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
# screens.rpy:570
old "## This is redefined in options.rpy to add text to the about screen."
new "## This is redefined in options.rpy to add text to the about screen."
new "## Ceci est généralement redéfini dans le fichier options.rpy pour ajouter le texte dans l’écran « À propos »."
# screens.rpy:582
old "## Load and Save screens"
new "## Load and Save screens"
new "## Écran de chargement et de sauvegarde"
# screens.rpy:584
old "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
new "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
new "## Ces écrans permettent au joueur denregistrer le jeu et de le charger à nouveau. Comme ils partagent beaucoup d’éléments communs, ils sont tous les deux implémentés dans un troisième écran, appelé fichiers_slots (emplacement_de_fichier)."
# screens.rpy:588
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
@@ -231,31 +231,31 @@ translate french strings:
# screens.rpy:607
old "Automatic saves"
new "Automatic saves"
new "Sauvegardes automatiques"
# screens.rpy:607
old "Quick saves"
new "Quick saves"
new "Sauvegardes rapides"
# screens.rpy:613
old "## This ensures the input will get the enter event before any of the buttons do."
new "## This ensures the input will get the enter event before any of the buttons do."
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."
new "## The grid of file slots."
new "## La grille des emplacements de fichiers."
# screens.rpy:649
old "{#file_time}%A, %B %d %Y, %H:%M"
new "{#file_time}%A, %B %d %Y, %H:%M"
new "{#file_time}%A %d %B %Y, %H:%M"
# screens.rpy:649
old "empty slot"
new "empty slot"
new "emplacement vide"
# screens.rpy:657
old "## Buttons to access other pages."
new "## Buttons to access other pages."
new "## Boutons pour accéder aux autres pages."
# screens.rpy:666
old "<"
@@ -275,11 +275,11 @@ translate french strings:
# screens.rpy:711
old "## Preferences screen"
new "## Preferences screen"
new "## Écran des préférences"
# screens.rpy:713
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## The preferences screen allows the player to configure the game to better suit themselves."
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,23 +299,23 @@ translate french strings:
# screens.rpy:744
old "Rollback Side"
new "Rollback Side"
new "Rembobinage côté"
# screens.rpy:745
old "Disable"
new "Disable"
new "Désactivé"
# screens.rpy:746
old "Left"
new "Left"
new "Gauche"
# screens.rpy:747
old "Right"
new "Right"
new "Droite"
# screens.rpy:752
old "Unseen Text"
new "Unseen Text"
new "Texte non lu"
# screens.rpy:753
old "After Choices"
@@ -327,7 +327,7 @@ translate french strings:
# screens.rpy:756
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## Des boites vbox additionnelles de type \"radio_pref\" ou \"check_pref\" peuvent être ajoutées ici pour ajouter des préférences définies par le créateur du jeu."
# screens.rpy:767
old "Text Speed"
@@ -335,7 +335,7 @@ translate french strings:
# screens.rpy:771
old "Auto-Forward Time"
new "Avancement automatique"
new "Avance automatique"
# screens.rpy:778
old "Music Volume"
@@ -355,15 +355,15 @@ translate french strings:
# screens.rpy:806
old "Mute All"
new "Mute All"
new "Couper tous les sons"
# screens.rpy:882
old "## History screen"
new "## History screen"
new "## Écran de l'historique"
# screens.rpy:884
old "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
new "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
new "## Il sagit dun écran qui affiche lhistorique des dialogues au joueur. Bien quil n'y ait rien de spécial sur cet écran, il doit accéder à lhistorique de dialogue stocké dans _history_list."
# screens.rpy:888
old "## https://www.renpy.org/doc/html/history.html"
@@ -371,71 +371,71 @@ translate french strings:
# screens.rpy:894
old "## Avoid predicting this screen, as it can be very large."
new "## Avoid predicting this screen, as it can be very large."
new "## Cette instruction permet d’éviter de prédire cet écran, car il peut être très large"
# screens.rpy:905
old "## This lays things out properly if history_height is None."
new "## This lays things out properly if history_height is None."
new "## Cela positionne correctement l'écran si history_height est initialisé à None."
# screens.rpy:914
old "## Take the color of the who text from the Character, if set."
new "## Take the color of the who text from the Character, if set."
new "## Utilise pour la couleur du texte, la couleur par défaut des dialogues du personnage si elle a été initialisée."
# screens.rpy:921
old "The dialogue history is empty."
new "The dialogue history is empty."
new "L'historique des dialogues est vide."
# screens.rpy:965
old "## Help screen"
new "## Help screen"
new "## Écran d'aide"
# screens.rpy:967
old "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
new "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
new "## Cet écran fournit des informations sur les touches et les boutons de souris. En interne, il utilise dautres écrans (keyboard_help, mouse_help et gamepad_help) pour afficher une aide dédiée."
# screens.rpy:986
old "Keyboard"
new "Keyboard"
new "Clavier"
# screens.rpy:987
old "Mouse"
new "Mouse"
new "Souris"
# screens.rpy:990
old "Gamepad"
new "Gamepad"
new "Manette"
# screens.rpy:1003
old "Enter"
new "Enter"
new "Entrée"
# screens.rpy:1004
old "Advances dialogue and activates the interface."
new "Advances dialogue and activates the interface."
new "Avance dans les dialogues et active linterface (effectue un choix)."
# screens.rpy:1007
old "Space"
new "Space"
new "Espace"
# screens.rpy:1008
old "Advances dialogue without selecting choices."
new "Advances dialogue without selecting choices."
new "Avance dans les dialogues sans effectuer de choix."
# screens.rpy:1011
old "Arrow Keys"
new "Arrow Keys"
new "Flèches directionnelles"
# screens.rpy:1012
old "Navigate the interface."
new "Navigate the interface."
new "Permet de se déplacer dans linterface."
# screens.rpy:1015
old "Escape"
new "Escape"
new "Echap."
# screens.rpy:1016
old "Accesses the game menu."
new "Accesses the game menu."
new "Ouvre le menu du jeu."
# screens.rpy:1019
old "Ctrl"
@@ -443,7 +443,7 @@ translate french strings:
# screens.rpy:1020
old "Skips dialogue while held down."
new "Skips dialogue while held down."
new "Fait défiler les dialogues tant que la touche est pressée."
# screens.rpy:1023
old "Tab"
@@ -451,79 +451,79 @@ translate french strings:
# screens.rpy:1024
old "Toggles dialogue skipping."
new "Toggles dialogue skipping."
new "Active ou désactives les «sauts des dialogues»."
# screens.rpy:1027
old "Page Up"
new "Page Up"
new "Page Haut"
# screens.rpy:1028
old "Rolls back to earlier dialogue."
new "Rolls back to earlier dialogue."
new "Retourne au précédent dialogue."
# screens.rpy:1031
old "Page Down"
new "Page Down"
new "Page Bas"
# screens.rpy:1032
old "Rolls forward to later dialogue."
new "Rolls forward to later dialogue."
new "Avance jusqu'au prochain dialogue."
# screens.rpy:1036
old "Hides the user interface."
new "Hides the user interface."
new "Cache linterface utilisateur."
# screens.rpy:1040
old "Takes a screenshot."
new "Takes a screenshot."
new "Prend une capture d’écran."
# screens.rpy:1044
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "Active la {a=https://www.renpy.org/l/voicing}{size=24}vocalisation automatique{/size}{/a}."
# screens.rpy:1050
old "Left Click"
new "Left Click"
new "Bouton gauche"
# screens.rpy:1054
old "Middle Click"
new "Middle Click"
new "Bouton central"
# screens.rpy:1058
old "Right Click"
new "Right Click"
new "Bouton droit"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
new "Mouse Wheel Up\nClick Rollback Side"
old "Molette vers le haut\nBouton de retour en arrière"
new "Mouse Wheel Up\nClic du côté rembobinage"
# screens.rpy:1066
old "Mouse Wheel Down"
new "Mouse Wheel Down"
new "Molette vers le bas"
# screens.rpy:1073
old "Right Trigger\nA/Bottom Button"
new "Right Trigger\nA/Bottom Button"
new "Bouton R1\nA/Bouton du bas"
# screens.rpy:1074
old "Advance dialogue and activates the interface."
new "Advance dialogue and activates the interface."
new "Avance dans les dialogues et active les choix dans l'interface."
# screens.rpy:1078
old "Roll back to earlier dialogue."
new "Roll back to earlier dialogue."
new "Retourne au précédent dialogue."
# screens.rpy:1081
old "Right Shoulder"
new "Right Shoulder"
new "Bouton R1"
# screens.rpy:1082
old "Roll forward to later dialogue."
new "Roll forward to later dialogue."
new "Avance jusqu'au prochain dialogue."
# screens.rpy:1085
old "D-Pad, Sticks"
new "D-Pad, Sticks"
new "Boutons directionnels, stick gauche"
# screens.rpy:1089
old "Start, Guide"
@@ -531,27 +531,27 @@ translate french strings:
# screens.rpy:1090
old "Access the game menu."
new "Access the game menu."
new "Ouvre le menu du jeu."
# screens.rpy:1093
old "Y/Top Button"
new "Y/Top Button"
new "Y/Bouton du haut"
# screens.rpy:1096
old "Calibrate"
new "Calibrate"
new "Calibrage"
# screens.rpy:1124
old "## Additional screens"
new "## Additional screens"
new "## Écrans additionnels"
# screens.rpy:1128
old "## Confirm screen"
new "## Confirm screen"
new "## Écran de confirmation"
# screens.rpy:1130
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
new "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
new "## Cet écran est appelé quand Ren'Py souhaite poser une question au joueur dont la réponse est oui ou non."
# screens.rpy:1133
old "## http://www.renpy.org/doc/html/screen_special.html#confirm"
@@ -559,7 +559,7 @@ translate french strings:
# screens.rpy:1137
old "## Ensure other screens do not get input while this screen is displayed."
new "## Ensure other screens do not get input while this screen is displayed."
new "## Cette instruction sassure que les autres écrans resteront en arrière plan tant que cet écran sera affiché."
# screens.rpy:1161
old "Yes"
@@ -571,15 +571,15 @@ translate french strings:
# screens.rpy:1164
old "## Right-click and escape answer \"no\"."
new "## Right-click and escape answer \"no\"."
new "## Le clic bouton droit et la touche Echap. correspondent à la réponse \"non\"."
# screens.rpy:1191
old "## Skip indicator screen"
new "## Skip indicator screen"
new "## Écran de lindicateur d'avance rapide"
# screens.rpy:1193
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## L’écran skip_indicator est affiché pour indiquer quune avance rapide est en cours."
# screens.rpy:1196
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
@@ -587,19 +587,19 @@ translate french strings:
# screens.rpy:1208
old "Skipping"
new "Skipping"
new "Avance rapide"
# screens.rpy:1215
old "## This transform is used to blink the arrows one after another."
new "## This transform is used to blink the arrows one after another."
new "## Cette transformation est utilisé pour faire clignoter les flèches lune après lautre."
# screens.rpy:1247
old "## Notify screen"
new "## Notify screen"
new "## Écran de notification"
# screens.rpy:1249
old "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
new "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
new "## Cet écran est utilisé pour affiché un message au joueur. (Par exemple, quand une sauvegarde rapide a eu lieu ou quand une capture d’écran vient d’être réalisée.)"
# screens.rpy:1252
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
@@ -607,11 +607,11 @@ translate french strings:
# screens.rpy:1286
old "## NVL screen"
new "## NVL screen"
new "## Écran NVL"
# screens.rpy:1288
old "## This screen is used for NVL-mode dialogue and menus."
new "## This screen is used for NVL-mode dialogue and menus."
new "## Cet écran est utilisé pour les dialogues et les menus en mode NVL."
# screens.rpy:1290
old "## http://www.renpy.org/doc/html/screen_special.html#nvl"
@@ -619,25 +619,24 @@ translate french strings:
# screens.rpy:1301
old "## Displays dialogue in either a vpgrid or the vbox."
new "## Displays dialogue in either a vpgrid or the vbox."
new "## Les dialogues sont affichés soit dans une vpgrid soit dans une vbox."
# screens.rpy:1314
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
new "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
new "## Si fourni, affiche le menu. Le menu peut safficher de manière incorrecte si config.narrator_menu est initialisé à True, comme cest le cas au-dessus."
# screens.rpy:1344
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## This controls the maximum number of NVL-mode entries that can be displayed at once."
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"
new "## Mobile Variants"
new "## Variantes pour les mobiles"
# screens.rpy:1413
old "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
new "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
new "## Comme la souris peut ne pas être présente, nous remplaçons le menu rapide avec une version qui utilise des boutons plus gros et qui sont plus faciles à toucher du doigt."
# screens.rpy:1429
old "Menu"
new "Menu"
+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
@@ -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
@@ -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]"
+102 -4
View File
@@ -1,5 +1,4 @@

translate indonesian strings:
translate indonesian strings:
# 00action_file.rpy:26
old "{#weekday}Monday"
@@ -263,7 +262,7 @@ translate indonesian strings:
# 00updater.rpy:704
old "Could not verify update signature."
new "Tidak dapat memverifikasi signature update."
new "Tidak dapat memverifikasi tandatangan update."
# 00updater.rpy:975
old "The update file was not downloaded."
@@ -303,7 +302,7 @@ translate indonesian strings:
# 00updater.rpy:1416
old "The updates have been installed. The program will restart."
new "Update sudah terpasang. Program akan me restart."
new "Update sudah terpasang. Program akan melakukan restart."
# 00updater.rpy:1418
old "The updates have been installed."
@@ -333,3 +332,102 @@ translate indonesian strings:
old "return"
new "Kembali"
translate indonesian strings:
# 00director.rpy:689
old "The interactive director is not enabled here."
new "Direktor interaktif tidak di aktifkan di sini."
# 00director.rpy:1461
old "Done"
new "Selesai"
# 00director.rpy:1469
old "(statement)"
new "(statement)"
# 00director.rpy:1470
old "(tag)"
new "(tag)"
# 00director.rpy:1471
old "(attributes)"
new "(attributes)"
# 00director.rpy:1472
old "(transform)"
new "(tramsform)"
# 00director.rpy:1497
old "(transition)"
new "(transition)"
# 00director.rpy:1509
old "(channel)"
new "(channel)"
# 00director.rpy:1510
old "(filename)"
new "(filename)"
# 00director.rpy:1535
old "Change"
new "Rubah"
# 00director.rpy:1537
old "Add"
new "Tambah"
# 00director.rpy:1543
old "Remove"
new "Hapus"
# 00director.rpy:1576
old "Statement:"
new "Pernyataan:"
# 00director.rpy:1597
old "Tag:"
new "Tag:"
# 00director.rpy:1613
old "Attributes:"
new "Atribut:"
# 00director.rpy:1631
old "Transforms:"
new "Transforms:"
# 00director.rpy:1650
old "Behind:"
new "Di Belakang:"
# 00director.rpy:1669
old "Transition:"
new "Transisi:"
# 00director.rpy:1687
old "Channel:"
new "Channel:"
# 00director.rpy:1705
old "Audio Filename:"
new "Nama File Audio:"
# _developer\developer.rpym:43
old "Interactive Director (D)"
new "Direktor Interaktif (D)"
# _developer\developer.rpym:67
old "Show Texture Size"
new "Tampilkan Ukuran Textur"
# _developer\developer.rpym:70
old "Hide Texture size"
new "Sembunyikan Ukuran Textur"
# _developer\developer.rpym:569
old "{size_mb:,.1f} MB in {count} textures."
new "{size_mb:,.1f} MB pada {count} textur."
+2 -2
View File
@@ -27,7 +27,7 @@ translate indonesian strings:
# _developer/developer.rpym:53
old "Filename List"
new "List Namafile"
new "List Nama File"
# _developer/developer.rpym:57
old "Show Image Load Log"
@@ -75,7 +75,7 @@ translate indonesian strings:
# _developer/developer.rpym:532
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
new "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
new "\n{color=#cfc}✔ gambar di prediksikan (baik){/color}\n{color=#fcc}✘ gambar tidak diprediksi (buruk){/color}\n{color=#fff}Drag untuk pindah.{/color}"
# _developer/inspector.rpym:38
old "Displayable Inspector"
+29 -2
View File
@@ -1,5 +1,4 @@

translate indonesian strings:
translate indonesian strings:
# 00gltest.rpy:64
old "Graphics Acceleration"
@@ -177,3 +176,31 @@ translate indonesian strings:
old "Copies the errors.txt file to the clipboard."
new "Salin file errors.txt ke Papan Klip."
translate indonesian strings:
# _errorhandling.rpym:519
old "Open"
new "Buka"
# _errorhandling.rpym:523
old "Copy"
new "Salin"
# _errorhandling.rpym:576
old "Console"
new "Konsol"
# _errorhandling.rpym:578
old "Opens a console to allow debugging the problem."
new "Buka konsol untuk mendebug masalah"
translate indonesian strings:
# 00gltest.rpy:89
old "NPOT"
new "NPOT"
# _errorhandling.rpym:585
old "Ignores the exception, allowing you to continue."
new "Hiraukan Kesalahan, memperbolehkan kamu untuk melanjutkan."
+50 -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
@@ -409,3 +409,52 @@ translate indonesian strings:
old "## Quick buttons."
new "## Quick buttons."
translate indonesian strings:
# gui.rpy:17
old "## GUI Configuration Variables"
new "## Variabel konfigurasi GUI"
# gui.rpy:168
old "## The color of button text in various states."
new "## Warna tombol text di berbagai kondisi."
# gui.rpy:174
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
new "## Alignment horisontal tombol text. (0.0 itu kiri, 0.5 tengah, 1.0 kanan)."
# gui.rpy:276
old "## The position of the main menu text."
new "## posisi text menu utama."
# gui.rpy:398
old "## Localization"
new "## Lokalisasi"
# gui.rpy:400
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 "## Ini mengendalikan dimana line break di ijinkan. Pengaturan bawaan sudah cocok untuk kebanyakan bahasa. Daftar value yang tersedia dapat di lihat di https://www.renpy.org/doc/html/style_properties.html#style-property-language"
# gui.rpy:408
old "## Mobile devices"
new "## Perangkat mobile"
translate indonesian 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 "## pernyataan offset init menyebabkan pernyataan inisialisasi di file ini untuk berjalan lebih dahulu daripada pernyataan init di file lain nya."
# gui.rpy:282
old "## Generic frames."
new "## Frame generic"
# gui.rpy:302
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written screens."
new "## GUI Bawaan hanya menggunakan slider dan scrollbars vertikal. Bar lainnya hanya di gunakan pada layar GUI yang di tulis sendiri oleh pembuat/creator."
# gui.rpy:434
old "## Change the size and spacing of various things."
new "## Ubah ukuran dan jarak dari berbagai hal."
+98 -12
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."
@@ -259,19 +259,19 @@ translate indonesian strings:
# distribute.rpy:1050
old "Unpacking the Macintosh application for signing..."
new "Unpacking the Macintosh application for signing..."
new "Mengunpack aplikasi Macintosh untuk tandatangan..."
# distribute.rpy:1060
old "Signing the Macintosh application..."
new "Signing the Macintosh application..."
new "Menandatangani aplikasi Macintosh..."
# distribute.rpy:1082
old "Creating the Macintosh DMG..."
new "Creating the Macintosh DMG..."
new "Membuat Macintosh DMG..."
# distribute.rpy:1091
old "Signing the Macintosh DMG..."
new "Signing the Macintosh DMG..."
new "Menandatangani Macintosh DMG..."
# distribute.rpy:1248
old "Writing the [variant] [format] package."
@@ -279,7 +279,7 @@ translate indonesian strings:
# distribute.rpy:1261
old "Making the [variant] update zsync file."
new "Membuat [variant] zsync update file."
new "Membuat file update zsync : [variant] ."
# distribute.rpy:1404
old "Processed {b}[complete]{/b} of {b}[total]{/b} files."
@@ -399,7 +399,7 @@ translate indonesian strings:
# editor.rpy:472
old "A text editor is the program you'll use to edit Ren'Py script files. Here, you can select the editor Ren'Py will use. If not already present, the editor will be automatically downloaded and installed."
new "Text editor adalah program yang akan kamu gunakan untuk mengedit file script Ren'Pu, Kamu dapat memilih editor Ren'Py yang akan kamu pakai. Jika belum ada, editor akan otomatis di download dan di pasang."
new "Text editor adalah program yang akan kamu gunakan untuk mengedit file script Ren'Py, Kamu dapat memilih editor Ren'Py yang akan kamu pakai. Jika belum ada, editor akan otomatis di download dan di pasang."
# editor.rpy:494
old "Cancel"
@@ -483,7 +483,7 @@ translate indonesian strings:
# front_page.rpy:239
old "Change Theme"
new "Gant Tema"
new "Ganti Tema"
# front_page.rpy:242
old "Delete Persistent"
@@ -606,8 +606,8 @@ translate indonesian strings:
new "ERROR"
# interface.rpy:356
old "While [what!q], an error occured:"
new "Ketika [what!q], Kesalahakn Terjadi:"
old "While [what!qt], an error occured:"
new "Kesalahan terjadi ketika : [what!qt] adalah :"
# interface.rpy:356
old "[exception!q]"
@@ -1131,7 +1131,7 @@ translate indonesian strings:
# updater.rpy:132
old "The bleeding edge of Ren'Py development. This may have the latest features, or might not run at all."
new "Update berdarah dari pengembangan Ren'Py. Ini mungikin mempunyai fitur terbaru. Bahkan tidak jalan sama sekali."
new "Update terbaru dari pengembangan Ren'Py. Ini mungikin mempunyai fitur terbaru. Bahkan tidak jalan sama sekali."
# updater.rpy:152
old "An error has occured:"
@@ -1185,3 +1185,89 @@ translate indonesian strings:
old "Proceed"
new "Lanjut."
translate indonesian strings:
# choose_directory.rpy:104
old "The selected projects directory is not writable."
new "Direktori proyek terpilih tidak dapat di tulis (not writable)"
# distribute.rpy:1061
old "Signing the Macintosh application...\n(This may take a long time.)"
new "Menandatangani aplikasi Macintosh...\n(Ini mungkin memakan waktu lama.)"
# front_page.rpy:91
old "PROJECTS:"
new "PROYEK:"
translate indonesian strings:
# preferences.rpy:181
old "Legacy options"
new "Opsi Legasi"
translate indonesian strings:
# android.rpy:304
old "Android: [project.current.display_name!q]"
new "Android: [project.current.display_name!q]"
# distribute_gui.rpy:157
old "Build Distributions: [project.current.display_name!q]"
new "Distribusi Build: [project.current.display_name!q]"
# gui7.rpy:372
old "WIDTH"
new "LEBAR"
# gui7.rpy:372
old "Please enter the width of your game, in pixels."
new "Tolong masukkan lebar dari game mu, dalam pixel."
# gui7.rpy:377
old "The width must be a number."
new "Ukuran lebar harus dalam angka."
# gui7.rpy:379
old "HEIGHT"
new "TINGGI"
# gui7.rpy:379
old "Please enter the height of your game, in pixels."
new "Tolong masukkan tinggi dari game mu, dalam pixel."
# gui7.rpy:384
old "The height must be a number."
new "Ukuran tinggi harus dalam angka."
# interface.rpy:136
old "Ren'Py Sponsor Information"
new "Informasi Sponsor Ren'Py"
# ios.rpy:211
old "iOS: [project.current.display_name!q]"
new "iOS: [project.current.display_name!q]"
# navigation.rpy:168
old "Navigate: [project.current.display_name!q]"
new "Navigasi: [project.current.display_name!q]"
# new_project.rpy:71
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
old "Force new tutorial"
new "Paksa tutorial baru"
# preferences.rpy:194
old "Sponsor message"
new "Pesan sponsor"
# translations.rpy:92
old "Translations: [project.current.display_name!q]"
new "Penerjemah : [project.current.display_name!q]"
# translations.rpy:343
old "Extract Dialogue: [project.current.display_name!q]"
new "Extrak Dialog: [project.current.display_name!q]"
+17
View File
@@ -193,3 +193,20 @@ translate indonesian strings:
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## Nama pengguna dan nama proyek yang di asosiasikan dengan proyek itch.io, di pisahkan dengan garis miring."
translate indonesian strings:
# options.rpy:146
old "## Icon"
new "## Ikon"
translate indonesian strings:
# options.rpy:81
old "## Between screens of the game menu."
new "## Antara layar dari menu permainan"
# options.rpy:201
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 "## Atur ini ke string yang berisi ID Developer Aplikasi Apple mu untuk mengaktifkan codesigning di Mac. Pastikan untuk mengganti nya ke ID mu sendiri yang sudah di berikan oleh Apple."
+137 -63
View File
@@ -3,23 +3,23 @@ translate indonesian strings:
# screens.rpy:9
old "## Styles"
new "## Styles"
new "## Gaya"
# screens.rpy:87
old "## In-game screens"
new "## In-game screens"
new "## Layar In-game"
# screens.rpy:91
old "## Say screen"
new "## Say screen"
new "## Layar Say"
# screens.rpy:93
old "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
new "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
new "## Layar say di gunakan untuk menampilkan dialog kepada pemain. Ini menggunakan dua parameter, who dan what, yang merupakan nama karakter yang berbicara dan text yang akan di tampilkan, masing-masing. (Kedua parameter dapat berisi None jika tidak ada nama yang di berikan."
# 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 "## 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 "## Layar ini harus membuat text yang dapat di tampilkan dengan id \"what\", yang di mana Ren'Py menggunakan ini untuk mengatur tampilan text. Ini juga dapat membuat sesuatu yang dapat di tampilkan dengan id \"who\" dan id \"window\" untuk mengaplikasikan properti gaya."
# screens.rpy:102
old "## https://www.renpy.org/doc/html/screen_special.html#say"
@@ -27,15 +27,15 @@ translate indonesian strings:
# screens.rpy:169
old "## Input screen"
new "## Input screen"
new "## Layar masukkan/input"
# screens.rpy:171
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
new "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
new "## Layar ini di gunakan untuk menampilkan renpy.input. Parameter prompt digunakan untuk meneruskan text yang di prompt/minta."
# screens.rpy:174
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## Layar ini harus membuat input yang dapat di tampilkan dengan id \"input\" untuk menerima berbagai parameter masukan."
# screens.rpy:177
old "## http://www.renpy.org/doc/html/screen_special.html#input"
@@ -43,11 +43,11 @@ translate indonesian strings:
# screens.rpy:205
old "## Choice screen"
new "## Choice screen"
new "## Layar Pilihan"
# 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 "## 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 "## Layar ini digunakan untuk menampilkan pilihan dalam game yang disajikan oleh menu statement. Satu parameter, item, adalah daftar objek, masing-masing dengan bidang keterangan dan tindakan."
# screens.rpy:211
old "## http://www.renpy.org/doc/html/screen_special.html#choice"
@@ -55,15 +55,15 @@ translate indonesian strings:
# screens.rpy:221
old "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
new "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
new "## Bila ini benar, caption menu akan diucapkan oleh narator. Bila salah, caption menu akan ditampilkan sebagai tombol kosong."
# screens.rpy:244
old "## Quick Menu screen"
new "## Quick Menu screen"
new "## Layar Menu Cepat/Quick Menu"
# screens.rpy:246
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## Menu cepat ditampilkan dalam game untuk memudahkan akses ke menu di luar game."
# screens.rpy:261
old "Back"
@@ -99,15 +99,15 @@ translate indonesian strings:
# screens.rpy:271
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
new "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
new "## Kode ini memastikan layar quick_menu di tampilkan di dalam permainan, kapanpun player tidak secaralangsung menyembunyikan antarmuka."
# screens.rpy:291
old "## Navigation screen"
new "## Navigation screen"
new "## Layar navigasi"
# screens.rpy:293
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
new "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
new "## Layar ini di ikutsertakan di menu utama dan permainan, dan menyediakan navigasi ke menu lainnya, dan untuk memulai permainan."
# screens.rpy:308
old "Start"
@@ -135,7 +135,7 @@ translate indonesian strings:
# screens.rpy:332
old "## Help isn't necessary or relevant to mobile devices."
new "## Help isn't necessary or relevant to mobile devices."
new "## Bantuan tidak perlu atau relevan dengan perangkat mobile."
# screens.rpy:333
old "Help"
@@ -143,7 +143,7 @@ translate indonesian strings:
# screens.rpy:335
old "## The quit button is banned on iOS and unnecessary on Android."
new "## The quit button is banned on iOS and unnecessary on Android."
new "## Tombol keluar di banned di iOS dan tidak diperlukan di Android."
# screens.rpy:336
old "Quit"
@@ -151,11 +151,11 @@ translate indonesian strings:
# screens.rpy:350
old "## Main Menu screen"
new "## Main Menu screen"
new "## Layar Menu utama"
# screens.rpy:352
old "## Used to display the main menu when Ren'Py starts."
new "## Used to display the main menu when Ren'Py starts."
new "## Digunakan untuk menampilkan menu utama ketika Ren'Py dimulai."
# screens.rpy:354
old "## http://www.renpy.org/doc/html/screen_special.html#main-menu"
@@ -163,19 +163,19 @@ translate indonesian 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 "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## Pernyataan 'use' mengikutsertakan layar lain ke layar ini. Isi sebenarnya dari menu utama adalah layar navigasi."
# screens.rpy:413
old "## Game Menu screen"
new "## Game Menu screen"
new "## layar Menu Permainan"
# screens.rpy:415
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
new "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
new "## Ini menjalaskan struktur dasar yang paling sering di gunakan di layar menu permainan, ini ditampilkan beserta layar judul, dan menampilkan latar belakang,judul,dan navigasi."
# screens.rpy:418
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## Parameter scroll dapat berisi 'None', atau \"viewport\" dan \"vpgrid\". Ketika layar ini di maksudkan untuk di gunakan dengan cabang satu atau lebih, yang di tempatkan di dalamnya."
# screens.rpy:476
old "Return"
@@ -183,19 +183,19 @@ translate indonesian strings:
# screens.rpy:539
old "## About screen"
new "## About screen"
new "## Layar About"
# screens.rpy:541
old "## This screen gives credit and copyright information about the game and Ren'Py."
new "## This screen gives credit and copyright information about the game and Ren'Py."
new "## Layar ini menampilkan credit dan informasi copyright tentang game dan Ren.Py."
# screens.rpy:544
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## Tidak ada yang spesial dengan layar ini, semenjak ini juga berperan sebagai contoh bagaimana membuat layar custom."
# 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 "## 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 "## Pernyataan 'use' ini mengikutsertakan layar game_menu ke dalam layar ini. Percabangan vbox lalu di ikutsertakan kedalam viewport di dalam layar game_menu."
# screens.rpy:561
old "Version [config.version!t]\n"
@@ -203,7 +203,7 @@ translate indonesian strings:
# screens.rpy:563
old "## gui.about is usually set in options.rpy."
new "## gui.about is usually set in options.rpy."
new "## gui.about biasanya di set di options.rpy."
# screens.rpy:567
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
@@ -211,15 +211,15 @@ translate indonesian strings:
# screens.rpy:570
old "## This is redefined in options.rpy to add text to the about screen."
new "## This is redefined in options.rpy to add text to the about screen."
new "## Ini di definisikan kembali di options.rpy untuk menambahkan text ke layar About."
# screens.rpy:582
old "## Load and Save screens"
new "## Load and Save screens"
new "## Layar Load and Save"
# screens.rpy:584
old "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
new "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
new "## Layar ini bertanggungjawab untuk mengijinkan pemain menyimpan dan meload lagi. Semenjak mereke hampir memiliki hal yang sama, keduanya di implementasinan di percabangan layar ketiga, file_slots."
# screens.rpy:588
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
@@ -239,11 +239,11 @@ translate indonesian strings:
# screens.rpy:613
old "## This ensures the input will get the enter event before any of the buttons do."
new "## This ensures the input will get the enter event before any of the buttons do."
new "## Ini memastikan input akan mendapat event masuk sebelum tombol lainnya."
# screens.rpy:629
old "## The grid of file slots."
new "## The grid of file slots."
new "## Kolom slot file."
# screens.rpy:649
old "{#file_time}%A, %B %d %Y, %H:%M"
@@ -255,7 +255,7 @@ translate indonesian strings:
# screens.rpy:657
old "## Buttons to access other pages."
new "## Buttons to access other pages."
new "## Tombol untuk mengakses halaman lain."
# screens.rpy:666
old "<"
@@ -275,11 +275,11 @@ translate indonesian strings:
# screens.rpy:711
old "## Preferences screen"
new "## Preferences screen"
new "## Layar preferensi/opsi"
# screens.rpy:713
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## The preferences screen allows the player to configure the game to better suit themselves."
new "## Layar preferensi mengijinkan pemain untuk mengkonfigurasi permainan untuk menyesuaikan gaya bermain masing masing individu."
# screens.rpy:716
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
@@ -327,7 +327,7 @@ translate indonesian strings:
# screens.rpy:756
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## Tipe tambahan vboxes \"radio_pref\" atau \"check_pref\" dapat di tambahkan disini, untuk menambahkan tambahan preferensi yang dibuat creator."
# screens.rpy:767
old "Text Speed"
@@ -359,27 +359,26 @@ translate indonesian strings:
# screens.rpy:882
old "## History screen"
new "## History screen"
new "## Layar History"
# screens.rpy:884
old "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
new "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
new "## Layar yang menampilkan History dialog kepada pemain. Semenjak tidak ada yang spesial tentang layar ini, ini memiliki akses ke history dialog yang di simpan di _history_list."
# screens.rpy:888
old "## https://www.renpy.org/doc/html/history.html"
new "## https://www.renpy.org/doc/html/history.html"
# screens.rpy:894
old "## Avoid predicting this screen, as it can be very large."
new "## Avoid predicting this screen, as it can be very large."
new "## Hindari mempredisi layar ini, ini dapat berukuran sangat besar."
# screens.rpy:905
old "## This lays things out properly if history_height is None."
new "## This lays things out properly if history_height is None."
new "## Ini menampilkan layar secara semestinya jika history_height memiliki value None."
# screens.rpy:914
old "## Take the color of the who text from the Character, if set."
new "## Take the color of the who text from the Character, if set."
new "## Mengambil warna dari text 'who' dari karakter, jika di set."
# screens.rpy:921
old "The dialogue history is empty."
@@ -387,11 +386,11 @@ translate indonesian strings:
# screens.rpy:965
old "## Help screen"
new "## Help screen"
new "## Layar Bantuan"
# screens.rpy:967
old "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
new "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
new "## Layar yang memberikan informasi tentang keyboard dan mouse binding. Ini menggunakan layar lain (keyboard_help, mouse_help, and gamepad_help) untuk menampilkan bantuan yang sebenarnya."
# screens.rpy:986
old "Keyboard"
@@ -543,15 +542,15 @@ translate indonesian strings:
# screens.rpy:1124
old "## Additional screens"
new "## Additional screens"
new "## Layar Tambahan"
# screens.rpy:1128
old "## Confirm screen"
new "## Confirm screen"
new "## Layar konfirmasi"
# screens.rpy:1130
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
new "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
new "## Layar konfirmasi di panggil ketika Ren'Py mau menanyakan ke pemain pertanyaan ya atau tidak."
# screens.rpy:1133
old "## http://www.renpy.org/doc/html/screen_special.html#confirm"
@@ -559,7 +558,7 @@ translate indonesian strings:
# screens.rpy:1137
old "## Ensure other screens do not get input while this screen is displayed."
new "## Ensure other screens do not get input while this screen is displayed."
new "## Memastikan layar lain tidak mendapatkan input ketika layar ini di panggil."
# screens.rpy:1161
old "Yes"
@@ -571,15 +570,15 @@ translate indonesian strings:
# screens.rpy:1164
old "## Right-click and escape answer \"no\"."
new "## Right-click and escape answer \"no\"."
new "## Klik kanan dan jawaban escape \"Tidak\"."
# screens.rpy:1191
old "## Skip indicator screen"
new "## Skip indicator screen"
new "## Lompati indikator layar"
# screens.rpy:1193
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## layar skip_indicator di tampilkan untuk mengindikasian proses skipping sedang dalam proses."
# screens.rpy:1196
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
@@ -591,15 +590,15 @@ translate indonesian strings:
# screens.rpy:1215
old "## This transform is used to blink the arrows one after another."
new "## This transform is used to blink the arrows one after another."
new "## transform digunakan untuk mengkedipkan panah setelah yang lain."
# screens.rpy:1247
old "## Notify screen"
new "## Notify screen"
new "## Layar pemberitahuan"
# screens.rpy:1249
old "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
new "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
new "## layar notify digunakan untuk menampilkan pesan kepada pemain. (Seperti, ketika game di simpan cepat atau screenshot di ambil.)"
# screens.rpy:1252
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
@@ -607,11 +606,11 @@ translate indonesian strings:
# screens.rpy:1286
old "## NVL screen"
new "## NVL screen"
new "## Layar NVL"
# screens.rpy:1288
old "## This screen is used for NVL-mode dialogue and menus."
new "## This screen is used for NVL-mode dialogue and menus."
new "## Layar ini digunakan untuk dialog dan menu mode-NVL."
# screens.rpy:1290
old "## http://www.renpy.org/doc/html/screen_special.html#nvl"
@@ -619,25 +618,100 @@ translate indonesian strings:
# screens.rpy:1301
old "## Displays dialogue in either a vpgrid or the vbox."
new "## Displays dialogue in either a vpgrid or the vbox."
new "## Menampilkan dialog pada vpgrid atau vbox."
# screens.rpy:1314
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
new "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
new "## Menampilkan menu, jika di berikan. Menu mungkin akan di tampilkan secara tidak benar jika config.narrator_menu di set ke True, seperti di atas."
# screens.rpy:1344
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## Ini mengendalikan angka maksimum entri mode-NVL yang dapat di tampilkan sekaligus."
# screens.rpy:1406
old "## Mobile Variants"
new "## Mobile Variants"
new "## Versi Mobile(HP/Handphone/Android)"
# screens.rpy:1413
old "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
new "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
new "## Semenjak mouse tidak ada, kami mengganti menu cepat dengan yang menggunakan tombol yang lebih besar dan sedikit, yang memudahkan untuk di sentuh."
# screens.rpy:1429
old "Menu"
new "Menu"
translate indonesian strings:
# screens.rpy:120
old "## If there's a side image, display it above the text. Do not display on the phone variant - there's no room."
new "## Jika ada gambar di sisi, tampilkan di atas text. Jangan tampilkan di versi HP[Handphone)(Android) - Karena tidak ada ruang."
# screens.rpy:252
old "## Ensure this appears on top of other screens."
new "## Memastikan ini muncul di atas layar yang lain."
# screens.rpy:291
old "## Main and Game Menu Screens"
new "## Layar Menu Utama dan Menu Permainan"
# screens.rpy:361
old "## This ensures that any other menu screen is replaced."
new "## Ini Memastikan Layar Menu Yang Lain Telah Di Timpa"
# screens.rpy:368
old "## This empty frame darkens the main menu."
new "## Frame kosong ini menggelap di menu utama."
# screens.rpy:439
old "## Reserve space for the navigation section."
new "## Memesan tempat untuk bagian navigasi."
# screens.rpy:619
old "## The page name, which can be edited by clicking on a button."
new "## Nama halaman, yang dapat di edit dengan mengklik tombol."
# screens.rpy:674
old "## range(1, 10) gives the numbers from 1 to 9."
new "## antara(1,10) beri nomor antara 1 sampai 9."
# screens.rpy:1079
old "Left Trigger\nLeft Shoulder"
new "Trigger Kiri\nBahu Kiri"
translate indonesian strings:
# screens.rpy:1233
old "## We have to use a font that has the BLACK RIGHT-POINTING SMALL TRIANGLE glyph in it."
new "## Kami harus menggunakan font yang mempunyai glyph BLACK RIGHT-POINTING SMALL TRIANGLE di dalam nya."
translate indonesian strings:
# screens.rpy:120
old "## Make the namebox available for styling through the Character object."
new "## Buat namebox tersedia untuk mengatur gaya melalui objek karakter."
# 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"
# 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"
# screens.rpy:350
old "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
new "## https://www.renpy.org/doc/html/screen_special.html#main-menu"
# screens.rpy:917
old "## This determines what tags are allowed to be displayed on the history screen."
new "## Ini menentukan tag apa yang diizinkan ditampilkan di layar sejarah/catatan."
# screens.rpy:1133
old "## https://www.renpy.org/doc/html/screen_special.html#confirm"
new "## https://www.renpy.org/doc/html/screen_special.html#confirm"
# screens.rpy:1290
old "## https://www.renpy.org/doc/html/screen_special.html#nvl"
new "## https://www.renpy.org/doc/html/screen_special.html#nvl"
+53 -53
View File
@@ -3,111 +3,111 @@ translate italian strings:
# 00action_file.rpy:26
old "{#weekday}Monday"
new "{#weekday}Monday"
new "{#weekday}Lunedì"
# 00action_file.rpy:26
old "{#weekday}Tuesday"
new "{#weekday}Tuesday"
new "{#weekday}Martedì"
# 00action_file.rpy:26
old "{#weekday}Wednesday"
new "{#weekday}Wednesday"
new "{#weekday}Mercoledì"
# 00action_file.rpy:26
old "{#weekday}Thursday"
new "{#weekday}Thursday"
new "{#weekday}Giovedì"
# 00action_file.rpy:26
old "{#weekday}Friday"
new "{#weekday}Friday"
new "{#weekday}Venerdì"
# 00action_file.rpy:26
old "{#weekday}Saturday"
new "{#weekday}Saturday"
new "{#weekday}Sabato"
# 00action_file.rpy:26
old "{#weekday}Sunday"
new "{#weekday}Sunday"
new "{#weekday}Domenica"
# 00action_file.rpy:37
old "{#weekday_short}Mon"
new "{#weekday_short}Mon"
new "{#weekday_short}Lun"
# 00action_file.rpy:37
old "{#weekday_short}Tue"
new "{#weekday_short}Tue"
new "{#weekday_short}Mar"
# 00action_file.rpy:37
old "{#weekday_short}Wed"
new "{#weekday_short}Wed"
new "{#weekday_short}Mer"
# 00action_file.rpy:37
old "{#weekday_short}Thu"
new "{#weekday_short}Thu"
new "{#weekday_short}Gio"
# 00action_file.rpy:37
old "{#weekday_short}Fri"
new "{#weekday_short}Fri"
new "{#weekday_short}Ven"
# 00action_file.rpy:37
old "{#weekday_short}Sat"
new "{#weekday_short}Sat"
new "{#weekday_short}Sab"
# 00action_file.rpy:37
old "{#weekday_short}Sun"
new "{#weekday_short}Sun"
new "{#weekday_short}Dom"
# 00action_file.rpy:47
old "{#month}January"
new "{#month}January"
new "{#month}Gennaio"
# 00action_file.rpy:47
old "{#month}February"
new "{#month}February"
new "{#month}Febbraio"
# 00action_file.rpy:47
old "{#month}March"
new "{#month}March"
new "{#month}Marzo"
# 00action_file.rpy:47
old "{#month}April"
new "{#month}April"
new "{#month}Aprile"
# 00action_file.rpy:47
old "{#month}May"
new "{#month}May"
new "{#month}Maggio"
# 00action_file.rpy:47
old "{#month}June"
new "{#month}June"
new "{#month}Giugno"
# 00action_file.rpy:47
old "{#month}July"
new "{#month}July"
new "{#month}Luglio"
# 00action_file.rpy:47
old "{#month}August"
new "{#month}August"
new "{#month}Agosto"
# 00action_file.rpy:47
old "{#month}September"
new "{#month}September"
new "{#month}Settembre"
# 00action_file.rpy:47
old "{#month}October"
new "{#month}October"
new "{#month}Ottobre"
# 00action_file.rpy:47
old "{#month}November"
new "{#month}November"
new "{#month}Novembre"
# 00action_file.rpy:47
old "{#month}December"
new "{#month}December"
new "{#month}Dicembre"
# 00action_file.rpy:63
old "{#month_short}Jan"
new "{#month_short}Jan"
new "{#month_short}Gen"
# 00action_file.rpy:63
old "{#month_short}Feb"
@@ -123,27 +123,27 @@ translate italian strings:
# 00action_file.rpy:63
old "{#month_short}May"
new "{#month_short}May"
new "{#month_short}Mag"
# 00action_file.rpy:63
old "{#month_short}Jun"
new "{#month_short}Jun"
new "{#month_short}Giu"
# 00action_file.rpy:63
old "{#month_short}Jul"
new "{#month_short}Jul"
new "{#month_short}Lug"
# 00action_file.rpy:63
old "{#month_short}Aug"
new "{#month_short}Aug"
new "{#month_short}Ago"
# 00action_file.rpy:63
old "{#month_short}Sep"
new "{#month_short}Sep"
new "{#month_short}Set"
# 00action_file.rpy:63
old "{#month_short}Oct"
new "{#month_short}Oct"
new "{#month_short}Ott"
# 00action_file.rpy:63
old "{#month_short}Nov"
@@ -151,7 +151,7 @@ translate italian strings:
# 00action_file.rpy:63
old "{#month_short}Dec"
new "{#month_short}Dec"
new "{#month_short}Dic"
# 00action_file.rpy:235
old "%b %d, %H:%M"
@@ -175,7 +175,7 @@ translate italian strings:
# 00gui.rpy:230
old "Loading will lose unsaved progress.\nAre you sure you want to do this?"
new "Caricare causerà la perdita di progressi non salvati.\n Confermi?"
new "Caricare causerà la perdita di progressi non salvati.\nConfermi?"
# 00gui.rpy:231
old "Are you sure you want to quit?"
@@ -187,7 +187,7 @@ translate italian strings:
# 00gui.rpy:233
old "Are you sure you want to end the replay?"
new "Are you sure you want to end the replay?"
new "Confermi di voler terminare il replay?"
# 00gui.rpy:234
old "Are you sure you want to begin skipping?"
@@ -199,7 +199,7 @@ translate italian strings:
# 00gui.rpy:236
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 "Confermi di voler saltare il testo non letto fino alla prossima scelta?"
# 00keymap.rpy:250
old "Saved screenshot as %s."
@@ -207,39 +207,39 @@ translate italian strings:
# 00library.rpy:142
old "Self-voicing disabled."
new "Self-voicing disabled."
new "Assistente Vocale disabilitato."
# 00library.rpy:143
old "Clipboard voicing enabled. "
new "Clipboard voicing enabled. "
new "Vocalizza Appunti abilitato. "
# 00library.rpy:144
old "Self-voicing enabled. "
new "Self-voicing enabled. "
new "Assistente Vocale abilitato. "
# 00library.rpy:179
old "Skip Mode"
new "Modalità salto"
new "Modalità Salto"
# 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 "Questo programma contiene software libero rilasciato sotto una quantità di licenze, che includono la MIT License e la GNU Lesser General Public License. Una lista completa dei software, inclusi link al codice sorgente completo, si può trovare {a=https://www.renpy.org/l/license}qui{/a}."
# 00preferences.rpy:422
old "Clipboard voicing enabled. Press 'shift+C' to disable."
new "Clipboard voicing abilitato. Premi 'shift+C' per disabilitarlo."
new "Vocalizza Appunti abilitato. Premi 'shift+C' per disabilitarlo."
# 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 "L'Assistente Vocale tenta di dire \"[renpy.display.tts.last]\". Premi 'alt+shift+V' per disabilitare."
# 00preferences.rpy:426
old "Self-voicing enabled. Press 'v' to disable."
new "Self-voicing abilitato. Premi 'v' per disabilitarlo."
new "Assistente Vocale abilitato. Premi 'v' per disabilitarlo."
# 00iap.rpy:217
old "Contacting App Store\nPlease Wait..."
new "Contacting App Store\nPlease Wait..."
new "Contatto App Store\nAttendere prego..."
# 00updater.rpy:367
old "The Ren'Py Updater is not supported on mobile devices."
@@ -247,7 +247,7 @@ translate italian strings:
# 00updater.rpy:486
old "An error is being simulated."
new "Un errore viene simulato."
new "Viene simulato un errore."
# 00updater.rpy:662
old "Either this project does not support updating, or the update status file was deleted."
@@ -275,11 +275,11 @@ translate italian strings:
# 00updater.rpy:1049
old "While unpacking {}, unknown type {}."
new "Durante lo spacchettamento {}, tipo sconosciuto {}."
new "Durante lo spacchettamento di {}, tipo sconosciuto {}."
# 00updater.rpy:1393
old "Updater"
new "Updater"
new "Aggiornamenti"
# 00updater.rpy:1404
old "This program is up to date."
@@ -291,15 +291,15 @@ translate italian strings:
# 00updater.rpy:1408
old "Preparing to download the updates."
new "Preparando lo scaricamento dell'aggiornamento."
new "Preparazione allo scaricamento degli aggiornamenti."
# 00updater.rpy:1410
old "Downloading the updates."
new "Scaricando l'aggiornamento."
new "Scaricamento degli aggiornamenti."
# 00updater.rpy:1412
old "Unpacking the updates."
new "Estraendo l'aggiornamento."
new "Estrazione degli aggiornamenti."
# 00updater.rpy:1416
old "The updates have been installed. The program will restart."
@@ -331,5 +331,5 @@ translate italian strings:
# 00gallery.rpy:586
old "return"
new "ritorna"
new "chiudi"
+14 -14
View File
@@ -3,7 +3,7 @@ translate italian strings:
# _developer/developer.rpym:38
old "Developer Menu"
new "Menù dello sviluppatore"
new "Menu Sviluppatore"
# _developer/developer.rpym:43
old "Reload Game (Shift+R)"
@@ -15,27 +15,27 @@ translate italian strings:
# _developer/developer.rpym:47
old "Variable Viewer"
new "Visualizzatore di variabili"
new "Visualizzatore Variabili"
# _developer/developer.rpym:49
old "Theme Test"
new "Prova tema"
new "Prova Tema"
# _developer/developer.rpym:51
old "Image Location Picker"
new "Selettore dell'ubicazione delle immagini"
new "Selettore Locazione Immagini"
# _developer/developer.rpym:53
old "Filename List"
new "Lista dei file"
new "Lista File"
# _developer/developer.rpym:57
old "Show Image Load Log"
new "Mostra log di caricamento delle immagini"
new "Mostra Log di Caricamento Immagini"
# _developer/developer.rpym:60
old "Hide Image Load Log"
new "Nascondi log di caricamento delle immagini"
new "Nascondi Log di Caricamento Immagini"
# _developer/developer.rpym:95
old "Nothing to inspect."
@@ -43,7 +43,7 @@ translate italian strings:
# _developer/developer.rpym:217
old "Return to the developer menu"
new "Ritorna al menù dello sviluppatore"
new "Ritorna al menu sviluppatore"
# _developer/developer.rpym:373
old "Rectangle: %r"
@@ -59,11 +59,11 @@ translate italian strings:
# _developer/developer.rpym:412
old "Rectangle copied to clipboard."
new "Rettangolo copiato nella clipboard."
new "Rettangolo copiato negli appunti."
# _developer/developer.rpym:415
old "Position copied to clipboard."
new "Posizione copiata nella clipboard."
new "Posizione copiata negli appunti."
# _developer/developer.rpym:524
old "✔ "
@@ -75,11 +75,11 @@ translate italian strings:
# _developer/developer.rpym:532
old "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
new "\n{color=#cfc}✔ predicted image (good){/color}\n{color=#fcc}✘ unpredicted image (bad){/color}\n{color=#fff}Drag to move.{/color}"
new "\n{color=#cfc}✔ immagine predetta (bene){/color}\n{color=#fcc}✘ immagine non predetta (male){/color}\n{color=#fff}Trascina per muovere.{/color}"
# _developer/inspector.rpym:38
old "Displayable Inspector"
new "Ispettore di displayable"
new "Ispettore dei Displayable"
# _developer/inspector.rpym:61
old "Size"
@@ -95,11 +95,11 @@ translate italian strings:
# _developer/inspector.rpym:122
old "Inspecting Styles of [displayable_name!q]"
new "Ispezionando stili di [displayable_name!q]"
new "Ispezione Stili di [displayable_name!q]"
# _developer/inspector.rpym:139
old "displayable:"
new "visualizzabile:"
new "displayable:"
# _developer/inspector.rpym:145
old " (no properties affect the displayable)"
+25 -25
View File
@@ -3,35 +3,35 @@ translate italian strings:
# 00gltest.rpy:64
old "Graphics Acceleration"
new "Accelerazione grafica"
new "Accelerazione Grafica"
# 00gltest.rpy:70
old "Automatically Choose"
new "Scegli automaticamente"
new "Scegli Automaticamente"
# 00gltest.rpy:75
old "Force Angle/DirectX Renderer"
new "Forza renderer via Angle/DirectX"
new "Forza Renderer Angle/DirectX"
# 00gltest.rpy:79
old "Force OpenGL Renderer"
new "Forza renderer via OpenGL"
new "Forza Renderer OpenGL"
# 00gltest.rpy:83
old "Force Software Renderer"
new "Forza renderer via software"
new "Forza Renderer Software"
# 00gltest.rpy:93
old "Enable"
new "Enable"
new "Abilita"
# 00gltest.rpy:109
old "Changes will take effect the next time this program is run."
new "Le modifiche prenderanno effetto al prossimo avvio di questo programma."
new "Le modifiche avranno effetto al prossimo avvio di questo programma."
# 00gltest.rpy:141
old "Performance Warning"
new "Avviso di prestazioni"
new "Avviso Prestazioni"
# 00gltest.rpy:146
old "This computer is using software rendering."
@@ -39,7 +39,7 @@ translate italian strings:
# 00gltest.rpy:148
old "This computer is not using shaders."
new "Questo computer non fa uso degli shaders."
new "Questo computer non fa uso degli shader."
# 00gltest.rpy:150
old "This computer is displaying graphics slowly."
@@ -51,11 +51,11 @@ translate italian strings:
# 00gltest.rpy:157
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display. Updating DirectX could fix this problem."
new "I suoi driver video potrebbero essere vecchi o non funzionanti correttamente. Questo potrebbe portare a visualizzare la grafica lentamente o impropriamente. Aggiornare DirectX potrebbe risolvere questo problema."
new "I suoi driver video potrebbero essere vecchi o non funzionare correttamente. Questo potrebbe portare a visualizzare la grafica lentamente o impropriamente. Aggiornare DirectX potrebbe risolvere questo problema."
# 00gltest.rpy:159
old "Its graphics drivers may be out of date or not operating correctly. This can lead to slow or incorrect graphics display."
new "I suoi driver video potrebbero essere vecchi o non funzionanti correttamente. Questo potrebbe portare a visualizzare la grafica lentamente o impropriamente."
new "I suoi driver video potrebbero essere vecchi o non funzionare correttamente. Questo potrebbe portare a visualizzare la grafica lentamente o impropriamente."
# 00gltest.rpy:164
old "Update DirectX"
@@ -71,7 +71,7 @@ translate italian strings:
# 00gltest.rpy:192
old "Updating DirectX."
new "Aggiornando DirectX."
new "Aggiornamento DirectX."
# 00gltest.rpy:196
old "DirectX web setup has been started. It may start minimized in the taskbar. Please follow the prompts to install DirectX."
@@ -79,7 +79,7 @@ translate italian strings:
# 00gltest.rpy:200
old "{b}Note:{/b} Microsoft's DirectX web setup program will, by default, install the Bing toolbar. If you do not want this toolbar, uncheck the appropriate box."
new "{b}Nota:{/b} Il programma di installazione web di DirectX di Microsoft proverà ad installare la barra di Bing. Per evitare che ciò accada, spunta l'opzione appropriata"
new "{b}Nota:{/b} Il programma di installazione web di DirectX di Microsoft proverà ad installare la barra di Bing. Per evitare che ciò accada, spunta l'opzione appropriata."
# 00gltest.rpy:204
old "When setup finishes, please click below to restart this program."
@@ -91,27 +91,27 @@ translate italian strings:
# 00gamepad.rpy:32
old "Select Gamepad to Calibrate"
new "Select Gamepad to Calibrate"
new "Seleziona il Gamepad da Calibrare"
# 00gamepad.rpy:35
old "No Gamepads Available"
new "No Gamepads Available"
new "Nessun Gamepad Disponibile"
# 00gamepad.rpy:54
old "Calibrating [name] ([i]/[total])"
new "Calibrating [name] ([i]/[total])"
new "Calibrazione [name] ([i]/[total])"
# 00gamepad.rpy:58
old "Press or move the [control!r] [kind]."
new "Press or move the [control!r] [kind]."
new "Premi o muovi [control!r] [kind]."
# 00gamepad.rpy:66
old "Skip (A)"
new "Skip (A)"
new "Salta (A)"
# 00gamepad.rpy:69
old "Back (B)"
new "Back (B)"
new "Indietro (B)"
# _errorhandling.rpym:495
old "Open Traceback"
@@ -123,11 +123,11 @@ translate italian strings:
# _errorhandling.rpym:499
old "Copy to Clipboard"
new "Copy to Clipboard"
new "Copia negli Appunti"
# _errorhandling.rpym:501
old "Copies the traceback.txt file to the clipboard."
new "Copies the traceback.txt file to the clipboard."
new "Copia il file traceback.txt negli appunti."
# _errorhandling.rpym:519
old "An exception has occurred."
@@ -139,7 +139,7 @@ translate italian strings:
# _errorhandling.rpym:540
old "Attempts a roll back to a prior time, allowing you to save or choose a different choice."
new "Prova a regredire ad una data precedente, permettendoti di salvare o selezionare un'altra scelta."
new "Prova a regredire ad un momento precedente, permettendoti di salvare o selezionare un'altra scelta."
# _errorhandling.rpym:543
old "Ignore"
@@ -147,7 +147,7 @@ translate italian strings:
# _errorhandling.rpym:545
old "Ignores the exception, allowing you to continue. This often leads to additional errors."
new "Ignore l'eccezione, permettendoti di continuare. Spesso introduce nuovi errori."
new "Ignora l'eccezione, permettendoti di continuare. Spesso introduce nuovi errori."
# _errorhandling.rpym:548
old "Reload"
@@ -163,7 +163,7 @@ translate italian strings:
# _errorhandling.rpym:582
old "Parsing the script failed."
new "L'analisi dello script ha fallito."
new "L'analisi dello script è fallita."
# _errorhandling.rpym:606
old "Open Parse Errors"
@@ -175,5 +175,5 @@ translate italian strings:
# _errorhandling.rpym:612
old "Copies the errors.txt file to the clipboard."
new "Copies the errors.txt file to the clipboard."
new "Copia il file errors.txt negli appunti."
+126 -102
View File
@@ -3,327 +3,327 @@ translate italian strings:
# gui.rpy:2
old "## Initialization"
new "## Initialization"
new "## Inizializzazione"
# 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 "## The init offset statement causes the init code in this file to run before init code in any other file."
new "## Il comando 'init offset' determina che il codice init in questo file sia eseguito prima del codice init di ogni altro file."
# gui.rpy:9
old "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
new "## Calling gui.init resets the styles to sensible default values, and sets the width and height of the game."
new "## Dichiarare gui.init resetta gli stili ai valori predefiniti, e imposta l'altezza e larghezza del gioco."
# gui.rpy:21
old "## Colors"
new "## Colors"
new "## Colori"
# gui.rpy:23
old "## The colors of text in the interface."
new "## The colors of text in the interface."
new "## I colori del testo nell'interfaccia."
# gui.rpy:25
old "## An accent color used throughout the interface to label and highlight text."
new "## An accent color used throughout the interface to label and highlight text."
new "## Un colore di risalto usato nell'interfaccia per le etichette e il testo in evidenza."
# gui.rpy:29
old "## The color used for a text button when it is neither selected nor hovered."
new "## The color used for a text button when it is neither selected nor hovered."
new "## Il colore usato per il testo di un pulsante quando non è nè selezionato nè sotto il puntatore."
# gui.rpy:32
old "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## The small color is used for small text, which needs to be brighter/darker to achieve the same effect."
new "## Il colore small è usato per testo piccolo, che richiede di essere più chiaro o più scuro per ottenere lo stesso effetto."
# gui.rpy:36
old "## The color that is used for buttons and bars that are hovered."
new "## The color that is used for buttons and bars that are hovered."
new "## Il colore usato per pulsanti e barre che si trovano sotto il puntatore."
# 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 "## 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 "## Il colore usato per il testo di un pulsante che è selezionato ma non evidenziato. Un pulsante è selezionato se indica l'attuale schermata o valore di preferenza."
# gui.rpy:43
old "## The color used for a text button when it cannot be selected."
new "## The color used for a text button when it cannot be selected."
new "## Il colore del testo per un pulsante che non può venire selezionato."
# 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 "## 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 "## Colori usati per le frazioni di barre che non sono riempite. Non vengono usati direttamente, ma lo sono quando si ri-generano i file immagine della barra."
# gui.rpy:51
old "## The colors used for dialogue and menu choice text."
new "## The colors used for dialogue and menu choice text."
new "## I colori usati per il dialogo e le scelte."
# gui.rpy:56
old "## Fonts and Font Sizes"
new "## Fonts and Font Sizes"
new "## Font e Dimensioni"
# gui.rpy:58
old "## The font used for in-game text."
new "## The font used for in-game text."
new "## Il font usato per il testo interno al gioco."
# gui.rpy:61
old "## The font used for character names."
new "## The font used for character names."
new "## Il font usato per i nomi dei personaggi."
# gui.rpy:64
old "## The font used for out-of-game text."
new "## The font used for out-of-game text."
new "## Il font usato per il testo esterno al gioco."
# gui.rpy:67
old "## The size of normal dialogue text."
new "## The size of normal dialogue text."
new "## La dimensione del normale testo di dialogo."
# gui.rpy:70
old "## The size of character names."
new "## The size of character names."
new "## La dimensione dei nomi dei personaggi."
# gui.rpy:73
old "## The size of text in the game's user interface."
new "## The size of text in the game's user interface."
new "## Le dimensioni del testo nell'interfaccia di gioco."
# gui.rpy:76
old "## The size of labels in the game's user interface."
new "## The size of labels in the game's user interface."
new "## Le dimensioni delle etichette nell'interfaccia di gioco."
# gui.rpy:79
old "## The size of text on the notify screen."
new "## The size of text on the notify screen."
new "## La dimensione del testo delle notifiche (notify screen)."
# gui.rpy:82
old "## The size of the game's title."
new "## The size of the game's title."
new "## Le dimensioni del titolo del gioco."
# gui.rpy:86
old "## Main and Game Menus"
new "## Main and Game Menus"
new "## Menu - Main e Game"
# gui.rpy:88
old "## The images used for the main and game menus."
new "## The images used for the main and game menus."
new "## Le immagini usate per i menu Main e Game."
# gui.rpy:92
old "## Should we show the name and version of the game?"
new "## Should we show the name and version of the game?"
new "## Si vuole mostrare il nome e la versione del gioco?"
# gui.rpy:96
old "## Dialogue"
new "## Dialogue"
new "## Dialogo"
# gui.rpy:98
old "## These variables control how dialogue is displayed on the screen one line at a time."
new "## These variables control how dialogue is displayed on the screen one line at a time."
new "## Queste variabili controllano come viene mostrato il dialogo a schermo una linea alla volta."
# gui.rpy:101
old "## The height of the textbox containing dialogue."
new "## The height of the textbox containing dialogue."
new "## L'altezza del textbox contenente il dialogo."
# gui.rpy:104
old "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
new "## The placement of the textbox vertically on the screen. 0.0 is the top, 0.5 is center, and 1.0 is the bottom."
new "## La posizione verticale del textbox sullo schermo. 0.0 è in alto, 0.5 è al centro, e 1.0 è in basso."
# gui.rpy:109
old "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
new "## The placement of the speaking character's name, relative to the textbox. These can be a whole number of pixels from the left or top, or 0.5 to center."
new "## La posizione del nome del personaggio, relativa al textbox. Può essere un numero esatto di pixel da sinistra o da sopra, oppure 0.5 per centrare."
# gui.rpy:114
old "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## The horizontal alignment of the character's name. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## L'allineamento orizzontale del nome del personaggio. Può essere 0.0 per allinearlo a sinistra, 0.5 al centro e 1.0 a destra."
# gui.rpy:118
old "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## The width, height, and borders of the box containing the character's name, or None to automatically size it."
new "## Larghezza, altezza e bordi del riquadro che contiene il nome del personaggio, oppure None per dimensionarlo automaticamente."
# gui.rpy:123
old "## The borders of the box containing the character's name, in left, top, right, bottom order."
new "## The borders of the box containing the character's name, in left, top, right, bottom order."
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."
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 "## Se 'True', lo sfondo di namebox sarà tassellato (ripetuto come una piastrella). Se 'False' sarà invece scalato."
# 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."
new "## 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."
new "## La posizione dei dialoghi, relativa al textbox. Può essere un numero esatto di pixel relativo ai bordi sinistro o superiore del textbox, oppure 0.5 per centrare."
# gui.rpy:138
old "## The maximum width of dialogue text, in pixels."
new "## The maximum width of dialogue text, in pixels."
new "## La larghezza massima del testo di dialogo, in pixel."
# gui.rpy:141
old "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## The horizontal alignment of the dialogue text. This can be 0.0 for left-aligned, 0.5 for centered, and 1.0 for right-aligned."
new "## L'allineamento orizzontale del testo di dialogo. Può essere 0.0 per allinearlo a sinistra, 0.5 al centro e 1.0 a destra."
# gui.rpy:146
old "## Buttons"
new "## Buttons"
new "## Pulsanti"
# gui.rpy:148
old "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "## These variables, along with the image files in gui/button, control aspects of how buttons are displayed."
new "## Queste variabili, assieme alle immagini contenute in gui/button, definiscono l'aspetto dei pulsanti."
# gui.rpy:151
old "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## The width and height of a button, in pixels. If None, Ren'Py computes a size."
new "## Larghezza e altezza di un pulsante, in pixel. Se 'None', Ren'Py calcolerà una dimensione."
# gui.rpy:155
old "## The borders on each side of the button, in left, top, right, bottom order."
new "## The borders on each side of the button, in left, top, right, bottom order."
new "## I bordi su ogni lato del pulsante, nell'ordine: sinistro, superiore, destro, inferiore."
# gui.rpy:158
old "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## If True, the background image will be tiled. If False, the background image will be linearly scaled."
new "## Se 'True', l'immagine di sfondo sarà tassellata. Se 'False', l'immagine di sfondo verrà scalata."
# gui.rpy:162
old "## The font used by the button."
new "## The font used by the button."
new "## Il font usato dal pulsante."
# gui.rpy:165
old "## The size of the text used by the button."
new "## The size of the text used by the button."
new "## La dimensione del testo usato dal pulsante."
# gui.rpy:179
old "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
new "## These variables override settings for different kinds of buttons. Please see the gui documentation for the kinds of buttons available, and what each is used for."
new "## Queste variabili sovrascrivono le impostazioni per differenti tipi di pulsante. Leggere nella documentazione i tipi di pulsante disponibili, e per cosa viene usato ciascuno."
# gui.rpy:183
old "## These customizations are used by the default interface:"
new "## These customizations are used by the default interface:"
new "## Queste personalizzazioni sono usate dall'interfaccia predefinita:"
# gui.rpy:198
old "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
new "## You can also add your own customizations, by adding properly-named variables. For example, you can uncomment the following line to set the width of a navigation button."
new "## Puoi aggiungere le tue personalizzazioni, aggiungendo variabili con la giusta nomenclatura. Per esempio, puoi togliere il segno # dalla linea seguente per impostare una larghezza fissa dei pulsanti di navigazione."
# gui.rpy:205
old "## Choice Buttons"
new "## Choice Buttons"
new "## Pulsanti Scelta"
# gui.rpy:207
old "## Choice buttons are used in the in-game menus."
new "## Choice buttons are used in the in-game menus."
new "## I pulsanti di scelta sono usati per i menu interni al gioco."
# gui.rpy:220
old "## File Slot Buttons"
new "## File Slot Buttons"
new "## Pulsanti Slot"
# gui.rpy:222
old "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## A file slot button is a special kind of button. It contains a thumbnail image, and text describing the contents of the save slot. A save slot uses image files in gui/button, like the other kinds of buttons."
new "## Un pulsante Slot è un tipo di pulsante speciale. Contiene un'immagine miniatura, e testo che riporta i contenuti dello slot. Uno Slot Save usa immagini presenti in gui/button, come tutti gli altri tipi di pulsante."
# gui.rpy:226
old "## The save slot button."
new "## The save slot button."
new "## Il pulsante slot."
# gui.rpy:234
old "## The width and height of thumbnails used by the save slots."
new "## The width and height of thumbnails used by the save slots."
new "## Larghezza e altezza delle miniature usate dallo slot."
# gui.rpy:238
old "## The number of columns and rows in the grid of save slots."
new "## The number of columns and rows in the grid of save slots."
new "## Numero di colonne e righe della griglia degli slot."
# gui.rpy:243
old "## Positioning and Spacing"
new "## Positioning and Spacing"
new "## Posizioni e Spaziature"
# gui.rpy:245
old "## These variables control the positioning and spacing of various user interface elements."
new "## These variables control the positioning and spacing of various user interface elements."
new "## Queste variabili controllano posizione e spaziatura di vari elementi dell'interfaccia."
# gui.rpy:248
old "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## The position of the left side of the navigation buttons, relative to the left side of the screen."
new "## Posizione del lato sinistro dei pulsanti di navigazione, relativa al lato sinistro dello schermo."
# gui.rpy:252
old "## The vertical position of the skip indicator."
new "## The vertical position of the skip indicator."
new "## Posizione verticale dell'indicatore 'SALTO'."
# gui.rpy:255
old "## The vertical position of the notify screen."
new "## The vertical position of the notify screen."
new "## Posizione verticale delle notifiche."
# gui.rpy:258
old "## The spacing between menu choices."
new "## The spacing between menu choices."
new "## Spaziatura fra le scelte."
# gui.rpy:261
old "## Buttons in the navigation section of the main and game menus."
new "## Buttons in the navigation section of the main and game menus."
new "## Pulsanti nella sezione di navigazione dei menu Main e Game."
# gui.rpy:264
old "## Controls the amount of spacing between preferences."
new "## Controls the amount of spacing between preferences."
new "## Controlla l'ammontare di spazio fra le opzioni (preferences)."
# gui.rpy:267
old "## Controls the amount of spacing between preference buttons."
new "## Controls the amount of spacing between preference buttons."
new "## Controlla l'ammontare di spazio fra i pulsanti delle opzioni (preferences)."
# gui.rpy:270
old "## The spacing between file page buttons."
new "## The spacing between file page buttons."
new "## La spaziatura fra i pulsanti delle pagine file."
# gui.rpy:273
old "## The spacing between file slots."
new "## The spacing between file slots."
new "## Spaziatura fra gli slot."
# gui.rpy:277
old "## Frames"
new "## Frames"
new "## Frame"
# 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 "## These variables control the look of frames that can contain user interface components when an overlay or window is not present."
new "## Queste variabili controllano l'aspetto dei frame che possono contenere elementi d'interfaccia quando un livello sostrato (overlay) o una finestra sono assenti."
# gui.rpy:282
old "## Generic frames that are introduced by player code."
new "## Generic frames that are introduced by player code."
new "## Frame generici introdotti dal codice dell'utente."
# gui.rpy:285
old "## The frame that is used as part of the confirm screen."
new "## The frame that is used as part of the confirm screen."
new "## Frame usato come parte del confirm screen."
# gui.rpy:288
old "## The frame that is used as part of the skip screen."
new "## The frame that is used as part of the skip screen."
new "## Frame usato come parte dello skip screen."
# gui.rpy:291
old "## The frame that is used as part of the notify screen."
new "## The frame that is used as part of the notify screen."
new "## Frame usato come parte delle notifiche."
# gui.rpy:294
old "## Should frame backgrounds be tiled?"
new "## Should frame backgrounds be tiled?"
new "## Gli sfondi del frame devono essere tassellati?"
# gui.rpy:298
old "## Bars, Scrollbars, and Sliders"
new "## Bars, Scrollbars, and Sliders"
new "## Barre, Barre Scorrimento e Selettori"
# gui.rpy:300
old "## These control the look and size of bars, scrollbars, and sliders."
new "## These control the look and size of bars, scrollbars, and sliders."
new "## Controllano aspetto e dimensioni di barre e selettori"
# gui.rpy:302
old "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
new "## The default GUI only uses sliders and vertical scrollbars. All of the other bars are only used in creator-written code."
new "## La GUI predefinita impiega solo selettori, e barre di scorrimento verticali. Tutte le altre barre sono usate solo in codice personalizzato."
# gui.rpy:305
old "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## The height of horizontal bars, scrollbars, and sliders. The width of vertical bars, scrollbars, and sliders."
new "## Altezza delle barre orizzontali. Larghezza delle barre verticali."
# gui.rpy:311
old "## True if bar images should be tiled. False if they should be linearly scaled."
new "## True if bar images should be tiled. False if they should be linearly scaled."
new "## 'True' se le immagini devono venire tassellate. 'False' se devono venire scalate."
# gui.rpy:316
old "## Horizontal borders."
new "## Horizontal borders."
new "## Bordi orizzontali."
# gui.rpy:321
old "## Vertical borders."
new "## Vertical borders."
new "## Bordi verticali."
# gui.rpy:326
old "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## What to do with unscrollable scrollbars in the gui. \"hide\" hides them, while None shows them."
new "## Cosa fare con barre di scorrimento che non possono scorrere. \"hide\" le nasconde, mentre None le mostra comunque."
# gui.rpy:331
old "## History"
@@ -331,81 +331,105 @@ translate italian strings:
# gui.rpy:333
old "## The history screen displays dialogue that the player has already dismissed."
new "## The history screen displays dialogue that the player has already dismissed."
new "## Lo screen 'History' mostra una cronologia dei dialoghi già letti dal giocatore."
# gui.rpy:335
old "## The number of blocks of dialogue history Ren'Py will keep."
new "## The number of blocks of dialogue history Ren'Py will keep."
new "## Il numero di blocchi di dialogo conservati da Ren'Py nella cronologia."
# gui.rpy:338
old "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## The height of a history screen entry, or None to make the height variable at the cost of performance."
new "## L'altezza di un elemento nella schermata di cronologia, oppure None per avere altezze variabili al costo delle prestazioni."
# gui.rpy:342
old "## The position, width, and alignment of the label giving the name of the speaking character."
new "## The position, width, and alignment of the label giving the name of the speaking character."
new "## Posizione, larghezza e allineamento dell'etichetta che equivale al nome del personaggio in causa."
# gui.rpy:349
old "## The position, width, and alignment of the dialogue text."
new "## The position, width, and alignment of the dialogue text."
new "## Posizione, larghezza e allineamento del testo di dialogo."
# gui.rpy:356
old "## NVL-Mode"
new "## NVL-Mode"
new "## Modalità NVL"
# gui.rpy:358
old "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## The NVL-mode screen displays the dialogue spoken by NVL-mode characters."
new "## Lo screen NVL mostra il dialogo dei personaggi NVL."
# gui.rpy:360
old "## The borders of the background of the NVL-mode background window."
new "## The borders of the background of the NVL-mode background window."
new "## I bordi della finestra in Modalità NVL."
# gui.rpy:363
old "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## The height of an NVL-mode entry. Set this to None to have the entries dynamically adjust height."
new "## L'altezza di un elemento NVL. Impostalo a 'None' e gli elementi stabiliranno un'altezza automatica."
# gui.rpy:367
old "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## The spacing between NVL-mode entries when gui.nvl_height is None, and between NVL-mode entries and an NVL-mode menu."
new "## La spaziatura fra gli elementi in Modalità NVL, quando gui.nvl_height è None, e fra questi e un menu NVL."
# gui.rpy:384
old "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## The position, width, and alignment of nvl_thought text (the text said by the nvl_narrator character.)"
new "## La posizione, larghezza e allineamento del testo nvl_thought (il testo del personaggio nvl_narrator.)"
# gui.rpy:391
old "## The position of nvl menu_buttons."
new "## The position of nvl menu_buttons."
new "## La posizione dei menu_buttons in modalità NVL."
# gui.rpy:403
old "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## This increases the size of the quick buttons to make them easier to touch on tablets and phones."
new "## Questo aumenta la dimensione dei Pulsanti Rapidi per renderli più facili da toccare su tablet e telefoni."
# gui.rpy:409
old "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## This changes the size and spacing of various GUI elements to ensure they are easily visible on phones."
new "## Questo cambia la dimensione e spaziatura di vari elementi della GUI per assicurarsi che siano facilmente visibili su telefono."
# gui.rpy:413
old "## Font sizes."
new "## Font sizes."
new "## Dimensioni font."
# gui.rpy:421
old "## Adjust the location of the textbox."
new "## Adjust the location of the textbox."
new "## Cambia la posizione del textbox."
# gui.rpy:427
old "## Change the size and spacing of items in the game menu."
new "## Change the size and spacing of items in the game menu."
new "## Cambia la dimensione e la spaziatura degli elementi nel menu game."
# gui.rpy:436
old "## File button layout."
new "## File button layout."
new "## Schema pulsanti file."
# gui.rpy:440
old "## NVL-mode."
new "## NVL-mode."
new "## Modalità NVL."
# gui.rpy:456
old "## Quick buttons."
new "## Quick buttons."
new "## Pulsanti Rapidi."
# gui.rpy:17
old "## GUI Configuration Variables"
new "## Variabili di Configurazione GUI"
# gui.rpy:168
old "## The color of button text in various states."
new "## Colore testo nel pulsante, secondo i vari stati."
# gui.rpy:174
old "## The horizontal alignment of the button text. (0.0 is left, 0.5 is center, 1.0 is right)."
new "## L'allineamento orizzontale del testo nel pulsante. (0.1 a sinistra, 0.5 al centro, 1.0 a destra)."
# gui.rpy:395
old "## Localization"
new "## Localizzazione"
# gui.rpy:397
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 "## Questo controlla dove avviene un'interruzione di riga. Il valore predefinito è valido per la maggior parte dei linguaggi. Una lista di valori disponibili si può trovare su:https://www.renpy.org/doc/html/style_properties.html#style-property-language"
# gui.rpy:405
old "## Mobile devices"
new "## Dispositivi mobili"
File diff suppressed because it is too large Load Diff
+48 -44
View File
@@ -3,23 +3,23 @@ translate italian strings:
# options.rpy:1
old "## This file contains options that can be changed to customize your game."
new "## This file contains options that can be changed to customize your game."
new "## Questo file contiene opzioni che possono venire cambiate per personalizzare il gioco."
# options.rpy:4
old "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
new "## Lines beginning with two '#' marks are comments, and you shouldn't uncomment them. Lines beginning with a single '#' mark are commented-out code, and you may want to uncomment them when appropriate."
new "## Le linee che cominciano con due '#' sono commenti e non dovresti modificarle. Le linee con un solo '#' sono linee di codice opzionali, e potresti volerle modificare se appropriato."
# options.rpy:10
old "## Basics"
new "## Basics"
new "## Fondamentali"
# 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 "## 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 "## Il nome del gioco in forma leggibile. E' usato per il titolo nella finestra e viene impiegato per i resoconti di errore e nell'interfaccia."
# options.rpy:15
old "## The _() surrounding the string marks it as eligible for translation."
new "## The _() surrounding the string marks it as eligible for translation."
new "## La notazione _() che racchiude la stringa la segna come testo traducibile."
# options.rpy:17
old "Ren'Py 7 Default GUI"
@@ -27,95 +27,95 @@ translate italian strings:
# options.rpy:20
old "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
new "## Determines if the title given above is shown on the main menu screen. Set this to False to hide the title."
new "## Determina se il titolo fornito più sopra è mostrato nel main menu. Imposta su 'False' per nascondere il titolo."
# options.rpy:26
old "## The version of the game."
new "## The version of the game."
new "## La versione del gioco."
# 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 that is placed on the game's about screen. To insert a blank line between paragraphs, write \\n\\n."
new "## Il testo che compare nello screen About. Per inserire linee vuote fra i paragrafi, scrivi \\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 "## 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 nome abbreviato impiegato dagli eseguibili e dalle cartelle nelle distribuzioni compilate. Deve contenere solo caratteri ASCII e non può contenere spazi, due punti, o punti e virgole."
# options.rpy:44
old "## Sounds and music"
new "## Sounds and music"
new "## Suoni e musica"
# 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 "## 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 "## Queste tre variabili controllano quali mixer audio sono mostrati al giocatore. Impostare una di esse su 'False' nasconderà il mixer audio relativo."
# 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 "## 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 "## Per consentire al giocatore di eseguire un test sonoro sui canali Suono o Voce, togli # dalla linea e usala per impostare un suono di esempio."
# 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 "## 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 "## Togli # dalla linea seguente per impostare un file audio che sarà riprodotto durante il main menu. Continuerà a suonare fino a che non verrà interrotto o un altro file audio verrà suonato."
# options.rpy:69
old "## Transitions"
new "## Transitions"
new "## Transizioni"
# 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 "## 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 "## Queste variabili impostano le transizioni che sono usate quando avvengono certi eventi. Ogni variabile deve essere impostata su una transizione, o su None per indicare che nessuna transizione deve venire usata."
# options.rpy:75
old "## Entering or exiting the game menu."
new "## Entering or exiting the game menu."
new "## Entrare o uscire dal game menu."
# options.rpy:81
old "## A transition that is used after a game has been loaded."
new "## A transition that is used after a game has been loaded."
new "## Transizione usata dopo che una partita viene caricata."
# options.rpy:86
old "## Used when entering the main menu after the game has ended."
new "## Used when entering the main menu after the game has ended."
new "## Usata quando si torna al main menu dopo che è finita una partita."
# 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 "## 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 "## Non esiste una variabile per impostare la transizione da usare quando inizia il gioco. Usa un comando 'with' subito dopo aver mostrato la prima 'scene'."
# options.rpy:96
old "## Window management"
new "## Window management"
new "## Gestione finestra"
# options.rpy:98
old "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
new "## This controls when the dialogue window is displayed. If \"show\", it is always displayed. If \"hide\", it is only displayed when dialogue is present. If \"auto\", the window is hidden before scene statements and shown again once dialogue is displayed."
new "## Controlla come viene mostrata la finestra dei dialoghi. Con \"show\", viene mostrata sempre. Con \"hide\", è mostrata solo quando ci sono linee di dialogo. Con \"auto\", la finestra è nascosta prima di un comando 'scene' e mostrata di nuovo al successivo dialogo."
# options.rpy:103
old "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## After the game has started, this can be changed with the \"window show\", \"window hide\", and \"window auto\" statements."
new "## Dopo che il gioco ha avuto inizio, questo può essere cambiato coi comandi \"window show\", \"window hide\", and \"window auto\"."
# options.rpy:109
old "## Transitions used to show and hide the dialogue window"
new "## Transitions used to show and hide the dialogue window"
new "## Transizioni usate per mostrare e nascondere la finestra dei dialoghi"
# options.rpy:115
old "## Preference defaults"
new "## Preference defaults"
new "## Opzioni predefinite"
# options.rpy:117
old "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
new "## Controls the default text speed. The default, 0, is infinite, while any other number is the number of characters per second to type out."
new "## Controlla la velocità del testo predefinita. Lo standard, 0, è infinito, mentre qualunque altro numero indica il numero di caratteri al secondo da mostrare."
# options.rpy:123
old "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
new "## The default auto-forward delay. Larger numbers lead to longer waits, with 0 to 30 being the valid range."
new "## Il ritardo predefinito dell'avanzamento automatico. Numeri alti portano ad attese più lunghe, con un intervallo valido da 0 a 30."
# options.rpy:129
old "## Save directory"
new "## Save directory"
new "## Percorso Salvataggi"
# 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 "## Controls the platform-specific place Ren'Py will place the save files for this game. The save files will be placed in:"
new "## Controlla dove ren'Py pone i file di salvataggio, secondo la piattaforma. I file possono essere posti in:"
# options.rpy:134
old "## Windows: %APPDATA\\RenPy\\<config.save_directory>"
@@ -131,65 +131,69 @@ translate italian strings:
# options.rpy:140
old "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
new "## This generally should not be changed, and if it is, should always be a literal string, not an expression."
new "## Di solito questo non dovrebbe venire cambiato, ma se lo fosse deve sempre essere una stringa diretta e non un'espressione."
# options.rpy:146
old "## Icon ########################################################################'"
new "## Icon ########################################################################'"
new "## Icona #######################################################################'"
# options.rpy:148
old "## The icon displayed on the taskbar or dock."
new "## The icon displayed on the taskbar or dock."
new "## L'icona mostrata sulla dock o sulla barra applicazioni."
# options.rpy:153
old "## Build configuration"
new "## Build configuration"
new "## Configura Compilazione"
# options.rpy:155
old "## This section controls how Ren'Py turns your project into distribution files."
new "## This section controls how Ren'Py turns your project into distribution files."
new "## Questa sezione controlla come Ren'Py trasforma il tuo progetto in file di distribuzione."
# options.rpy:160
old "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
new "## The following functions take file patterns. File patterns are case- insensitive, and matched against the path relative to the base directory, with and without a leading /. If multiple patterns match, the first is used."
new "## Le funzioni seguenti richiedono schemi di nome. Questi schemi non differenziano maiuscole e minuscole, e corrispondono al percorso relativo alla cartella base, con e senza un segno / preposto. Se più schemi corrispondono, viene usato il primo."
# options.rpy:165
old "## In a pattern:"
new "## In a pattern:"
new "## In uno schema:"
# options.rpy:167
old "## / is the directory separator."
new "## / is the directory separator."
new "## / è il separatore fra cartelle."
# options.rpy:169
old "## * matches all characters, except the directory separator."
new "## * matches all characters, except the directory separator."
new "## * equivale a qualunque carattere tranne il separatore fra cartelle."
# options.rpy:171
old "## ** matches all characters, including the directory separator."
new "## ** matches all characters, including the directory separator."
new "## ** equivale a qualunque carattere inclusi i separatori fra cartelle."
# options.rpy:173
old "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
new "## For example, \"*.txt\" matches txt files in the base directory, \"game/**.ogg\" matches ogg files in the game directory or any of its subdirectories, and \"**.psd\" matches psd files anywhere in the project."
new "## Per esempio, \"*.txt\" indica file .txt nella cartella base, \"game/**.ogg\" indica file .ogg nella cartella base o qualunque sua sottocartella, e \"**.psd\" indica file .psd ovunque nel progetto."
# options.rpy:177
old "## Classify files as None to exclude them from the built distributions."
new "## Classify files as None to exclude them from the built distributions."
new "## Classifica file come 'None' per escluderli dalla compilazione."
# options.rpy:185
old "## To archive files, classify them as 'archive'."
new "## To archive files, classify them as 'archive'."
new "## Per archiviare i file, classificali come 'archive'."
# options.rpy:190
old "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
new "## Files matching documentation patterns are duplicated in a mac app build, so they appear in both the app and the zip file."
new "## I file che corrispondono a schemi di documentazione sono duplicati nella compilazione di app Macintosh, quindi appariranno sia nella app che nel file zip."
# options.rpy:196
old "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
new "## A Google Play license key is required to download expansion files and perform in-app purchases. It can be found on the \"Services & APIs\" page of the Google Play developer console."
new "## Una licenza Google Play è richiesta per scaricare file di espansione ed eseguire acquisti in-app. La Chiave Licenza può essere trovata alla pagina \"Services & APIs\" della console sviluppatori di Google Play."
# options.rpy:203
old "## The username and project name associated with an itch.io project, separated by a slash."
new "## The username and project name associated with an itch.io project, separated by a slash."
new "## L'username e project name associati a un progetto itch.io, separati da una slash."
# options.rpy:146
old "## Icon"
new "## Icona"
+139 -103
View File
@@ -3,11 +3,11 @@ translate italian strings:
# screens.rpy:9
old "## Styles"
new "## Styles"
new "## Stili"
# screens.rpy:87
old "## In-game screens"
new "## In-game screens"
new "## Schermi interni al gioco"
# screens.rpy:91
old "## Say screen"
@@ -15,11 +15,11 @@ translate italian strings:
# screens.rpy:93
old "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
new "## The say screen is used to display dialogue to the player. It takes two parameters, who and what, which are the name of the speaking character and the text to be displayed, respectively. (The who parameter can be None if no name is given.)"
new "## Il say screen è usato per mostrare dialoghi al giocatore. Richiede due parametri, who e what, che sono il nome del personaggio che parla e il testo da mostrare. (Il parametro who può essere None se non si intende fornire un nome)"
# 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 "## 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 "## Questo schermo crea un displayable di testo con id \"what\", che Ren'py usa per gestire la visualizzazione del testo. Può creare anche displayable con id \"who\" e id \"window\" per applicarvi proprietà di stile."
# screens.rpy:102
old "## https://www.renpy.org/doc/html/screen_special.html#say"
@@ -31,11 +31,11 @@ translate italian strings:
# screens.rpy:171
old "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
new "## This screen is used to display renpy.input. The prompt parameter is used to pass a text prompt in."
new "## Questo schermo si usa per mostrare renpy.input. Il parametro prompt è usato per fornire un prompt testuale."
# screens.rpy:174
old "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## This screen must create an input displayable with id \"input\" to accept the various input parameters."
new "## Questo schermo deve creare un input displayable con id \"input\" per accettare i vari parametri dell'input."
# screens.rpy:177
old "## http://www.renpy.org/doc/html/screen_special.html#input"
@@ -47,7 +47,7 @@ translate italian 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 "## 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 "## Questo screen è usato per mostrare le scelte nel gioco, offerte dal comando 'menu'. Il solo parametro, 'items', è una lista di oggetti, ciascuna coi campi 'caption' e 'action'."
# screens.rpy:211
old "## http://www.renpy.org/doc/html/screen_special.html#choice"
@@ -55,7 +55,7 @@ translate italian strings:
# screens.rpy:221
old "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
new "## When this is true, menu captions will be spoken by the narrator. When false, menu captions will be displayed as empty buttons."
new "## Quando impostato su 'True', le didascalie del menu saranno dette dal narratore. Quando falso, le didascalie saranno mostrate come pulsanti inattivi."
# screens.rpy:244
old "## Quick Menu screen"
@@ -63,7 +63,7 @@ translate italian strings:
# screens.rpy:246
old "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## The quick menu is displayed in-game to provide easy access to the out-of-game menus."
new "## Il Quick Menu è mostrato durante il gioco per fornire accesso rapido ai menu esterni."
# screens.rpy:261
old "Back"
@@ -71,11 +71,11 @@ translate italian strings:
# screens.rpy:262
old "History"
new "History"
new "Cronologia"
# screens.rpy:263
old "Skip"
new "Salva"
new "Salta"
# screens.rpy:264
old "Auto"
@@ -95,11 +95,11 @@ translate italian strings:
# screens.rpy:268
old "Prefs"
new "Preferenze"
new "Opzioni"
# screens.rpy:271
old "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
new "## This code ensures that the quick_menu screen is displayed in-game, whenever the player has not explicitly hidden the interface."
new "## Questo codice assicura che il quick menu sia mostrato nel gioco, a meno che il giocatore non nasconda esplicitamente l'interfaccia."
# screens.rpy:291
old "## Navigation screen"
@@ -107,27 +107,27 @@ translate italian strings:
# screens.rpy:293
old "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
new "## This screen is included in the main and game menus, and provides navigation to other menus, and to start the game."
new "## Questo screen è incluso nel main menu e nel game menu, e consente di navigare verso altri menu o di iniziare il gioco."
# screens.rpy:308
old "Start"
new "Start"
new "Inizia"
# screens.rpy:316
old "Load"
new "Load"
new "Carica"
# screens.rpy:318
old "Preferences"
new "Preferenze"
new "Opzioni"
# screens.rpy:322
old "End Replay"
new "End Replay"
new "Fine Replay"
# screens.rpy:326
old "Main Menu"
new "Menù Principale"
new "Menu Principale"
# screens.rpy:328
old "About"
@@ -135,7 +135,7 @@ translate italian strings:
# screens.rpy:332
old "## Help isn't necessary or relevant to mobile devices."
new "## Help isn't necessary or relevant to mobile devices."
new "## L'Aiuto non è necessario nei dispositivi mobili."
# screens.rpy:333
old "Help"
@@ -143,7 +143,7 @@ translate italian strings:
# screens.rpy:335
old "## The quit button is banned on iOS and unnecessary on Android."
new "## The quit button is banned on iOS and unnecessary on Android."
new "## Il pulsante Esci è vietato in iOS e inutile su Android."
# screens.rpy:336
old "Quit"
@@ -155,7 +155,7 @@ translate italian strings:
# screens.rpy:352
old "## Used to display the main menu when Ren'Py starts."
new "## Used to display the main menu when Ren'Py starts."
new "## Usato per mostrare il main menu quando si avvia Ren'Py."
# screens.rpy:354
old "## http://www.renpy.org/doc/html/screen_special.html#main-menu"
@@ -163,7 +163,7 @@ translate italian 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 "## The use statement includes another screen inside this one. The actual contents of the main menu are in the navigation screen."
new "## Il comando 'use' include un'altro schermo all'interno di questo. I reali contenuti del main menu sono nel navigation screen."
# screens.rpy:413
old "## Game Menu screen"
@@ -171,15 +171,15 @@ translate italian strings:
# screens.rpy:415
old "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
new "## This lays out the basic common structure of a game menu screen. It's called with the screen title, and displays the background, title, and navigation."
new "## Costruisce la struttura comune di tutti gli screen game menu. Viene avviato nella schermata del titolo, e mostra lo sfondo, il titolo e la navigazione."
# screens.rpy:418
old "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## The scroll parameter can be None, or one of \"viewport\" or \"vpgrid\". When this screen is intended to be used with one or more children, which are transcluded (placed) inside it."
new "## Il parametro 'scroll' può essere None, oppure uno fra \"viewport\" o \"vpgrid\". Questo screen è creato per essere usato con uno o più figli, che sono trasclusi (piazzati) dentro di esso."
# screens.rpy:476
old "Return"
new "Ritorna"
new "Indietro"
# screens.rpy:539
old "## About screen"
@@ -187,31 +187,31 @@ translate italian strings:
# screens.rpy:541
old "## This screen gives credit and copyright information about the game and Ren'Py."
new "## This screen gives credit and copyright information about the game and Ren'Py."
new "## Questo screen fornisce i crediti e le informazioni di copyright sul gioco e su Ren'Py."
# screens.rpy:544
old "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## There's nothing special about this screen, and hence it also serves as an example of how to make a custom screen."
new "## Non c'è niente di speciale in questo screen, pertanto può servire come esempio su come si crea uno screen personalizzato."
# 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 "## 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 "## Questo comando 'use' include lo screen game_menu dentro questo screen. Il figlio di vbox è quindi incluso nel viewport all'interno dello screen game_menu. \n## ===PER NEOFITI===: in pratica viene prima chiamato il game menu che stabilisce spaziature, sfondo, titoli e una viewport. Questo screen chiama e mostra il navigation screen a sinistra, che a sua volta determina quale screen (opzioni, slot, aiuto...) mostrare nella viewport a destra."
# screens.rpy:561
old "Version [config.version!t]\n"
new "Version [config.version!t]\n"
new "Versione [config.version!t]\n"
# screens.rpy:563
old "## gui.about is usually set in options.rpy."
new "## gui.about is usually set in options.rpy."
new "## gui.about viene di solito impostato in options.rpy."
# screens.rpy:567
old "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
new "Made with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
new "Creato con {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]"
# screens.rpy:570
old "## This is redefined in options.rpy to add text to the about screen."
new "## This is redefined in options.rpy to add text to the about screen."
new "## Viene ridefinito in options.rpy per aggiungere testo a questo screen."
# screens.rpy:582
old "## Load and Save screens"
@@ -219,7 +219,7 @@ translate italian strings:
# screens.rpy:584
old "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
new "## These screens are responsible for letting the player save the game and load it again. Since they share nearly everything in common, both are implemented in terms of a third screen, file_slots."
new "## Questi screen sono responsabili per la possibilità di salvare il gioco e caricarlo di nuovo. Dato che condividono praticamente tutto, entrambi sono implementati in relazione a un terzo screen, file_slot."
# screens.rpy:588
old "## https://www.renpy.org/doc/html/screen_special.html#save https://www.renpy.org/doc/html/screen_special.html#load"
@@ -227,23 +227,23 @@ translate italian strings:
# screens.rpy:607
old "Page {}"
new "Page {}"
new "Pagina {}"
# screens.rpy:607
old "Automatic saves"
new "Automatic saves"
new "Salvataggi automatici"
# screens.rpy:607
old "Quick saves"
new "Quick saves"
new "Salvataggi rapidi"
# screens.rpy:613
old "## This ensures the input will get the enter event before any of the buttons do."
new "## This ensures the input will get the enter event before any of the buttons do."
new "## Questo garantisce che l'input riceva un'eventuale pressione di Invio prima che accada ad altri pulsanti."
# screens.rpy:629
old "## The grid of file slots."
new "## The grid of file slots."
new "## La griglia di slot."
# screens.rpy:649
old "{#file_time}%A, %B %d %Y, %H:%M"
@@ -251,11 +251,11 @@ translate italian strings:
# screens.rpy:649
old "empty slot"
new "empty slot"
new "Spazio Vuoto"
# screens.rpy:657
old "## Buttons to access other pages."
new "## Buttons to access other pages."
new "## Pulsanti per accedere ad altre pagine."
# screens.rpy:666
old "<"
@@ -267,7 +267,7 @@ translate italian strings:
# screens.rpy:670
old "{#quick_page}Q"
new "{#quick_page}Q"
new "{#quick_page}R"
# screens.rpy:676
old ">"
@@ -279,7 +279,7 @@ translate italian strings:
# screens.rpy:713
old "## The preferences screen allows the player to configure the game to better suit themselves."
new "## The preferences screen allows the player to configure the game to better suit themselves."
new "## Lo screen preferences (Opzioni) consente al giocatore di configurare il gioco per un'esperienza più affine ai suoi gusti."
# screens.rpy:716
old "## https://www.renpy.org/doc/html/screen_special.html#preferences"
@@ -299,23 +299,23 @@ translate italian strings:
# screens.rpy:744
old "Rollback Side"
new "Rollback Side"
new "Lato Riavvolgimento"
# screens.rpy:745
old "Disable"
new "Disable"
new "Disattiva"
# screens.rpy:746
old "Left"
new "Left"
new "Sinistra"
# screens.rpy:747
old "Right"
new "Right"
new "Destra"
# screens.rpy:752
old "Unseen Text"
new "Unseen Text"
new "Testo non letto"
# screens.rpy:753
old "After Choices"
@@ -327,15 +327,15 @@ translate italian strings:
# screens.rpy:756
old "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## Additional vboxes of type \"radio_pref\" or \"check_pref\" can be added here, to add additional creator-defined preferences."
new "## Vbox addizionali del tipo \"radio_pref\" o \"check_pref\" possono venire aggiunti qui, per offrire ulteriori opzioni al giocatore."
# screens.rpy:767
old "Text Speed"
new "Velocità del Testo"
new "Velocità Testo"
# screens.rpy:771
old "Auto-Forward Time"
new "Avanza automaticamente"
new "Avanzamento automatico"
# screens.rpy:778
old "Music Volume"
@@ -343,7 +343,7 @@ translate italian strings:
# screens.rpy:785
old "Sound Volume"
new "Volume Suono"
new "Volume Suoni"
# screens.rpy:791
old "Test"
@@ -355,7 +355,7 @@ translate italian strings:
# screens.rpy:806
old "Mute All"
new "Mute All"
new "Silenzio"
# screens.rpy:882
old "## History screen"
@@ -363,7 +363,7 @@ translate italian strings:
# screens.rpy:884
old "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
new "## This is a screen that displays the dialogue history to the player. While there isn't anything special about this screen, it does have to access the dialogue history stored in _history_list."
new "## Questo è uno screen che mostra una cronologia dei dialoghi al giocatore. Benché non vi sia niente di speciale in questo screen, deve accedere alla cronologia contenuta in _history_list."
# screens.rpy:888
old "## https://www.renpy.org/doc/html/history.html"
@@ -371,19 +371,19 @@ translate italian strings:
# screens.rpy:894
old "## Avoid predicting this screen, as it can be very large."
new "## Avoid predicting this screen, as it can be very large."
new "## Evita di predirre questo screen, perché può essere molto grande."
# screens.rpy:905
old "## This lays things out properly if history_height is None."
new "## This lays things out properly if history_height is None."
new "## Questo dispone le cose appropriatamente, se history_height è None."
# screens.rpy:914
old "## Take the color of the who text from the Character, if set."
new "## Take the color of the who text from the Character, if set."
new "## Prende il colore dal nome del personaggio, se impostato."
# screens.rpy:921
old "The dialogue history is empty."
new "The dialogue history is empty."
new "Nessun dialogo da mostrare."
# screens.rpy:965
old "## Help screen"
@@ -391,11 +391,11 @@ translate italian strings:
# screens.rpy:967
old "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
new "## A screen that gives information about key and mouse bindings. It uses other screens (keyboard_help, mouse_help, and gamepad_help) to display the actual help."
new "## Uno screen che offre informazioni sulle impostazioni di tastiera e mouse. Usa altri screen (keyboard_help, mouse_help, e gamepad_help) per mostrare l'effettivo contenuto."
# screens.rpy:986
old "Keyboard"
new "Keyboard"
new "Tastiera"
# screens.rpy:987
old "Mouse"
@@ -407,35 +407,35 @@ translate italian strings:
# screens.rpy:1003
old "Enter"
new "Enter"
new "Invio"
# screens.rpy:1004
old "Advances dialogue and activates the interface."
new "Advances dialogue and activates the interface."
new "Avanza nei dialoghi e conferma scelta."
# screens.rpy:1007
old "Space"
new "Space"
new "Spazio"
# screens.rpy:1008
old "Advances dialogue without selecting choices."
new "Advances dialogue without selecting choices."
new "Avanza nei dialoghi senza eseguire scelte."
# screens.rpy:1011
old "Arrow Keys"
new "Arrow Keys"
new "Tasti Freccia"
# screens.rpy:1012
old "Navigate the interface."
new "Navigate the interface."
new "Naviga nell'interfaccia."
# screens.rpy:1015
old "Escape"
new "Escape"
new "Esc"
# screens.rpy:1016
old "Accesses the game menu."
new "Accesses the game menu."
new "Accedi al menu di gioco."
# screens.rpy:1019
old "Ctrl"
@@ -443,7 +443,7 @@ translate italian strings:
# screens.rpy:1020
old "Skips dialogue while held down."
new "Skips dialogue while held down."
new "Tieni premuto per saltare i dialoghi."
# screens.rpy:1023
old "Tab"
@@ -451,7 +451,7 @@ translate italian strings:
# screens.rpy:1024
old "Toggles dialogue skipping."
new "Toggles dialogue skipping."
new "Attiva/Disattiva salto dei dialoghi."
# screens.rpy:1027
old "Page Up"
@@ -459,7 +459,7 @@ translate italian strings:
# screens.rpy:1028
old "Rolls back to earlier dialogue."
new "Rolls back to earlier dialogue."
new "Torna indietro al dialogo precedente."
# screens.rpy:1031
old "Page Down"
@@ -467,59 +467,59 @@ translate italian strings:
# screens.rpy:1032
old "Rolls forward to later dialogue."
new "Rolls forward to later dialogue."
new "Procedi fino all'ultimo dialogo letto."
# screens.rpy:1036
old "Hides the user interface."
new "Hides the user interface."
new "Nascondi l'interfaccia."
# screens.rpy:1040
old "Takes a screenshot."
new "Takes a screenshot."
new "Cattura la schermata."
# screens.rpy:1044
old "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "Toggles assistive {a=https://www.renpy.org/l/voicing}self-voicing{/a}."
new "Attiva l'{a=https://www.renpy.org/l/voicing}Assistente Vocale{/a}."
# screens.rpy:1050
old "Left Click"
new "Left Click"
new "Click Sinistro"
# screens.rpy:1054
old "Middle Click"
new "Middle Click"
new "Click Centrale"
# screens.rpy:1058
old "Right Click"
new "Right Click"
new "Click Destro"
# screens.rpy:1062
old "Mouse Wheel Up\nClick Rollback Side"
new "Mouse Wheel Up\nClick Rollback Side"
new "Rotella Su\nClicca il Lato Riavvolgimento"
# screens.rpy:1066
old "Mouse Wheel Down"
new "Mouse Wheel Down"
new "Rotella Giu"
# screens.rpy:1073
old "Right Trigger\nA/Bottom Button"
new "Right Trigger\nA/Bottom Button"
new "Grilletto Destro\nPulsante A/Inferiore"
# screens.rpy:1074
old "Advance dialogue and activates the interface."
new "Advance dialogue and activates the interface."
new "Avanza nei dialoghi e conferma opzioni."
# screens.rpy:1078
old "Roll back to earlier dialogue."
new "Roll back to earlier dialogue."
new "Torna al dialogo precedente."
# screens.rpy:1081
old "Right Shoulder"
new "Right Shoulder"
new "Laterale Destro"
# screens.rpy:1082
old "Roll forward to later dialogue."
new "Roll forward to later dialogue."
new "Torna all'ultimo dialogo letto."
# screens.rpy:1085
old "D-Pad, Sticks"
@@ -531,19 +531,19 @@ translate italian strings:
# screens.rpy:1090
old "Access the game menu."
new "Access the game menu."
new "Accedi al menu di gioco."
# screens.rpy:1093
old "Y/Top Button"
new "Y/Top Button"
new "Y/Pulsante superiore"
# screens.rpy:1096
old "Calibrate"
new "Calibrate"
new "Calibra"
# screens.rpy:1124
old "## Additional screens"
new "## Additional screens"
new "## Screen addizionali"
# screens.rpy:1128
old "## Confirm screen"
@@ -551,7 +551,7 @@ translate italian strings:
# screens.rpy:1130
old "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
new "## The confirm screen is called when Ren'Py wants to ask the player a yes or no question."
new "## Lo screen confirm è usato quando Ren'Py vuole porre una domanda 'sì o no?' al giocatore."
# screens.rpy:1133
old "## http://www.renpy.org/doc/html/screen_special.html#confirm"
@@ -559,11 +559,11 @@ translate italian strings:
# screens.rpy:1137
old "## Ensure other screens do not get input while this screen is displayed."
new "## Ensure other screens do not get input while this screen is displayed."
new "## Garantisce che gli altri screen non ricevano input fino a che questo screen è attivo."
# screens.rpy:1161
old "Yes"
new "Si"
new "Sì"
# screens.rpy:1162
old "No"
@@ -571,7 +571,7 @@ translate italian strings:
# screens.rpy:1164
old "## Right-click and escape answer \"no\"."
new "## Right-click and escape answer \"no\"."
new "## Click destro ed ESC rispondono \"no\"."
# screens.rpy:1191
old "## Skip indicator screen"
@@ -579,7 +579,7 @@ translate italian strings:
# screens.rpy:1193
old "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## The skip_indicator screen is displayed to indicate that skipping is in progress."
new "## Lo screen skip_indicator è impiegato per indicare che è in corso la modalità salto."
# screens.rpy:1196
old "## https://www.renpy.org/doc/html/screen_special.html#skip-indicator"
@@ -587,11 +587,11 @@ translate italian strings:
# screens.rpy:1208
old "Skipping"
new "Skipping"
new "Salto"
# screens.rpy:1215
old "## This transform is used to blink the arrows one after another."
new "## This transform is used to blink the arrows one after another."
new "## Questa transform è usata per far lampeggiare le freccie una dopo l'altra."
# screens.rpy:1247
old "## Notify screen"
@@ -599,7 +599,7 @@ translate italian strings:
# screens.rpy:1249
old "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
new "## The notify screen is used to show the player a message. (For example, when the game is quicksaved or a screenshot has been taken.)"
new "## Lo screen notify è usato per mostrare una notifica al giocatore (per esempio, quando si salva rapidamente o si cattura una schermata)."
# screens.rpy:1252
old "## https://www.renpy.org/doc/html/screen_special.html#notify-screen"
@@ -611,7 +611,7 @@ translate italian strings:
# screens.rpy:1288
old "## This screen is used for NVL-mode dialogue and menus."
new "## This screen is used for NVL-mode dialogue and menus."
new "## Questo screen è usato per dialoghi e menu in modalità NVL."
# screens.rpy:1290
old "## http://www.renpy.org/doc/html/screen_special.html#nvl"
@@ -619,25 +619,61 @@ translate italian strings:
# screens.rpy:1301
old "## Displays dialogue in either a vpgrid or the vbox."
new "## Displays dialogue in either a vpgrid or the vbox."
new "## Mostra il dialogo in una vpgrid o in una vbox."
# screens.rpy:1314
old "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
new "## Displays the menu, if given. The menu may be displayed incorrectly if config.narrator_menu is set to True, as it is above."
new "## Mostra il menu, se fornito. Il menu può apparire distorto se config.narrator_menu è impostato a True, come lo è sopra."
# screens.rpy:1344
old "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## This controls the maximum number of NVL-mode entries that can be displayed at once."
new "## Questo controlla il numero massimo di elementi NVL che possono venire mostrati all'unisono."
# screens.rpy:1406
old "## Mobile Variants"
new "## Mobile Variants"
new "## Varianti Mobilità"
# screens.rpy:1413
old "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
new "## Since a mouse may not be present, we replace the quick menu with a version that uses fewer and bigger buttons that are easier to touch."
new "## Dato che un mouse non è presente, rimpiazziamo il quick menu con una versione che usa meno pulsanti e più grandi, più facili da toccare."
# screens.rpy:1429
old "Menu"
new "Menu"
# screens.rpy:120
old "## If there's a side image, display it above the text. Do not display on the phone variant - there's no room."
new "## Se c'è una side image, mostrala sopra al testo. Non mostrarla nella variante 'phone' - non c'è posto."
# screens.rpy:252
old "## Ensure this appears on top of other screens."
new "## Assicura che compaia in cima ad altri screen."
# screens.rpy:291
old "## Main and Game Menu Screens"
new "## Main Menu e Game Menu"
# screens.rpy:361
old "## This ensures that any other menu screen is replaced."
new "## Questo assicura che ogni altro menu sia rimpiazzato."
# screens.rpy:368
old "## This empty frame darkens the main menu."
new "## Questo frame vuoto oscura il main menu."
# screens.rpy:439
old "## Reserve space for the navigation section."
new "## Riserva spazio per la sezione di navigazione."
# screens.rpy:619
old "## The page name, which can be edited by clicking on a button."
new "## Il nome della pagina, che può essere cambiato cliccando su un pulsante."
# screens.rpy:674
old "## range(1, 10) gives the numbers from 1 to 9."
new "## range(1, 10) fornisce i numeri da 1 a 9."
# screens.rpy:1079
old "Left Trigger\nLeft Shoulder"
new "Grilletto Sinistro\nLaterale Sinistro"

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