Compare commits

...

13 Commits

Author SHA1 Message Date
Tom Rothamel c0f4395a53 Bump version. 2014-02-21 21:56:44 -05:00
Tom Rothamel fd6f59e39a Fix typos. 2014-02-20 23:41:12 -05:00
Tom Rothamel de69ac7843 Update changelog. 2014-02-19 02:02:25 -05:00
Tom Rothamel a6174993d1 Merge pull request #297 from renpy/fix-doc
fix doc error ("width" -> "height" in ysize description)
2014-02-18 22:58:46 -05:00
Koichi Akabe d263552a79 fix doc error ("width" -> "height" in ysize description) 2014-02-18 17:15:41 +09:00
Tom Rothamel e67f671fe6 Fsdecode tail output.
This is stdout for the android tools, which is likely to be encoded
using the local encoding, at least when filenames are involved.
2014-02-17 21:29:58 -05:00
Tom Rothamel bee097f3cd Document store variables. 2014-02-16 16:06:53 -05:00
Tom Rothamel 61c2fc4e49 Revert "Return to the main menu on right click from load, save, prefs, etc."
This reverts commit 5bff9be02c.
2014-02-15 22:38:55 -05:00
Tom Rothamel 6f7398e4ae Improve prediction of side images. 2014-02-15 01:11:22 -05:00
Tom Rothamel 5f1e49978b Properly update the prediction info.
This lets us predict more than one image.
2014-02-15 00:22:59 -05:00
Tom Rothamel 564a82c187 Do not call missing_show during image prediction. 2014-02-14 23:41:00 -05:00
Tom Rothamel ea2243ea86 Predict partial image specifications.
Fixes #293.
2014-02-14 00:49:59 -05:00
Tom Rothamel 4be828ede3 A character should only stop skipping if it causes an interaction.
Fixes #294.
2014-02-13 23:08:10 -05:00
13 changed files with 222 additions and 45 deletions
+6
View File
@@ -34,6 +34,12 @@ init python:
try:
with open(self.filename) as f:
text = f.read()
try:
text = renpy.fsdecode(text)
except:
text = text.decode("latin-1")
text = text.strip()
text = text.split("\n")
+1 -1
View File
@@ -32,7 +32,7 @@ except ImportError:
vc_version = 0
# The tuple giving the version number.
version_tuple = (6, 17, 0, vc_version)
version_tuple = (6, 18, 0, vc_version)
# The name of this version.
version_name = "In This Decade..."
+20 -22
View File
@@ -876,14 +876,15 @@ def predict_imspec(imspec, scene=False, atl=None):
"""
if len(imspec) == 7:
name, expression, tag, _at_list, layer, _zorder, _behind = imspec
name, expression, tag, at_expr_list, layer, _zorder, _behind = imspec
elif len(imspec) == 6:
name, expression, tag, _at_list, layer, _zorder = imspec
name, expression, tag, at_expr_list, layer, _zorder = imspec
elif len(imspec) == 3:
name, _at_list, layer = imspec
name, at_expr_list, layer = imspec
tag = None
expression = None
if expression:
try:
@@ -891,30 +892,27 @@ def predict_imspec(imspec, scene=False, atl=None):
img = renpy.easy.displayable(img)
except:
return
else:
img = renpy.display.image.images.get(name, None)
if img is None:
return
img = None
full_name = name
if tag:
full_name = (tag,) + full_name[1:]
at_list = [ ]
for i in at_expr_list:
try:
at_list.append(renpy.python.py_eval(i))
except:
pass
if atl is not None:
try:
at_list.append(renpy.display.motion.ATLTransform(atl))
except:
pass
if scene:
renpy.game.context().images.predict_scene(layer)
renpy.game.context().images.predict_show(tag or name, layer)
if atl is not None:
try:
img = renpy.display.motion.ATLTransform(atl, child=img)
except:
import traceback
traceback.print_exc()
renpy.display.predict.displayable(img)
renpy.exports.predict_show(name, layer, what=img, tag=tag)
def show_imspec(imspec, atl=None):
+13 -8
View File
@@ -105,6 +105,16 @@ def predict_show_display_say(who, what, who_args, what_args, window_args, image=
list of images used by show_display_say.
"""
if side_image:
renpy.easy.predict(side_image)
if renpy.store._side_image_attributes:
renpy.easy.predict(renpy.display.image.ImageReference(("side",) + renpy.store._side_image_attributes))
if image:
if image != "<Dynamic>":
renpy.easy.predict(who)
if screen:
props = compute_widget_properties(who_args, what_args, window_args)
@@ -120,12 +130,6 @@ def predict_show_display_say(who, what, who_args, what_args, window_args, image=
return
if image:
if image != "<Dynamic>":
renpy.easy.predict(who)
if side_image:
renpy.easy.predict(side_image)
def compute_widget_properties(who_args, what_args, window_args, variant=None):
@@ -347,8 +351,9 @@ def display_say(
ctc_timedpause=None,
ctc_force=False):
if (not renpy.game.preferences.skip_unseen) and (not renpy.game.context().seen_current(True)) and renpy.config.skipping == "fast":
if interact and (not renpy.game.preferences.skip_unseen) and (not renpy.game.context().seen_current(True)) and renpy.config.skipping == "fast":
renpy.config.skipping = None
# If we're in fast skipping mode, don't bother with say
# statements at all.
if interact and renpy.config.skipping == "fast":
@@ -828,7 +833,7 @@ class ADVCharacter(object):
old_side_image_attributes = renpy.store._side_image_attributes
if self.image_tag:
attrs = self.image_tag + renpy.game.context().images.get_attributes("master", self.image_tag)
attrs = ( self.image_tag, ) + renpy.game.context().images.get_attributes("master", self.image_tag)
else:
attrs = None
+1 -1
View File
@@ -436,7 +436,7 @@ init -1500 python:
Returns the name of the numbered slot. This assumes that slots on
normal pages are numbered in a linear order starting with 1, and
that page numbers start with 1. When slot is 2, and slots_per_page
is 10, and the other variables are the defauts:
is 10, and the other variables are the defaults:
* When the first page is showing, this returns "2".
* When the second page is showing, this returns "12".
+1 -3
View File
@@ -113,9 +113,7 @@ init -1700 python:
def _invoke_game_menu():
if renpy.context()._menu:
if renpy.context()._main_menu:
if not renpy.get_screen("main_menu"):
renpy.play(config.exit_sound)
ShowMenu("main_menu")()
return
else:
renpy.jump("_noisy_return")
else:
+57
View File
@@ -295,6 +295,63 @@ def showing(name, layer='master'):
return renpy.game.context().images.showing(layer, name)
def predict_show(name, layer='master', what=None, tag=None, at_list=[ ]):
"""
:undocumented:
Predicts a scene or show statement.
`name`
The name of the image to show, a string.
`layer`
The layer the image is being show non.
`what`
What is being show - if given, overrides `name`.
`tag`
The tag of the thing being shown.
`at_list`
A list of transforms to apply to the displayable.
"""
key = tag or name[0]
if what is None:
what = name
elif isinstance(what, basestring):
what = tuple(what.split())
if isinstance(what, renpy.display.core.Displayable):
base = img = what
else:
if renpy.config.image_attributes:
new_what = renpy.game.context().images.apply_attributes(layer, key, name)
if new_what is not None:
what = new_what
name = (key,) + new_what[1:]
base = img = renpy.display.image.ImageReference(what, style='image_placement')
if not base.find_target():
return
for i in at_list:
if isinstance(i, renpy.display.motion.Transform):
img = i(child=img)
else:
img = i(img)
renpy.game.context().images.predict_show(layer, name, True)
renpy.display.predict.displayable(img)
def show(name, at_list=[ ], layer='master', what=None, zorder=0, tag=None, behind=[ ], atl=None, transient=False, munge_name=True):
"""
:doc: se_images
+10 -2
View File
@@ -27,7 +27,7 @@ remains fully supported.) Lengthy and redundant code like::
can be replaced with::
style quick_button_text is defaut:
style quick_button_text is default:
size 12
idle_color "#8888"
hover_color "#ccc"
@@ -90,7 +90,8 @@ Buttons may now have an alternate action that is triggered by longpress
on Android and right-click on desktop computers.
This release fixes a bug in which Ren'Py would not save persistent data
(including preferences) before being terminated by the Android system.
(including preferences) before being terminated by the Android system, and
a regression that broke compatibility with some Android 2.3 systems.
New and Changed Preferences
---------------------------
@@ -147,6 +148,13 @@ The new :propref:`xsize`, :propref:`ysize`, and :propref:`xysize` style
properties make it possible to directly set the size of resizable
displayables.
Prediction of images with partial attributes and side images used in
dialogue has been improved. Prediction of creator-defined statements
now works as documented.
Ren'Py 6.16.2
=============
+1 -1
View File
@@ -57,7 +57,7 @@
Returns the name of the numbered slot. This assumes that slots on
normal pages are numbered in a linear order starting with 1, and
that page numbers start with 1. When slot is 2, and slots_per_page
is 10, and the other variables are the defauts:
is 10, and the other variables are the defaults:
* When the first page is showing, this returns "2".
* When the second page is showing, this returns "12".
+6 -6
View File
@@ -151,7 +151,7 @@
* Zoom
* ZoomInOut
* absolute
* adv
* :var:`adv`
* anim
* :var:`blinds`
* build
@@ -183,9 +183,9 @@
* layout
* :var:`left`
* library
* main_menu
* :var:`main_menu`
* :func:`menu`
* mouse_visible
* :var:`mouse_visible`
* :var:`move`
* moveinbottom
* moveinleft
@@ -195,8 +195,8 @@
* moveoutleft
* :var:`moveoutright`
* moveouttop
* name_only
* narrator
* :var:`name_only`
* :var:`narrator`
* nvl
* nvl_clear
* nvl_clear_next
@@ -223,7 +223,7 @@
* :var:`reset`
* :var:`right`
* :var:`save_name`
* say
* :var:`say`
* skip_indicator
* slideawaydown
* :var:`slideawayleft`
+1
View File
@@ -68,6 +68,7 @@ Customizing Ren'Py
screen_actions
screen_special
config
store_variables
Other Functionality
-------------------
+104
View File
@@ -0,0 +1,104 @@
Store Variables
===============
Ren'Py has a number of store variables that control its function. Store
variables may be changed at any time. If a store variable is changed after
the game has started, it will be be saved and loaded by the save system,
and rolled-back when rollback occurs.
.. var:: adv = Character(...)
This is a template ADV-mode character, and the default character kind
that is used when :func:`Character` is called.
.. var:: _game_menu_screen = "save"
This is the screen that is displayed when entering the game menu with no
more specific screen selected. (For example, when right-clicking, pressing
escape, or when :func:`ShowMenu` is not given an argument.) If None, entry
to the game menu is disallowed.
This is set to None at the start of the splashscreen, and restored to its
original value when the splashscreen ends.
.. var:: main_menu = False
Ren'Py sets this variable to True while in the main menu. This can be used
to have screens display differently while in the main menu.
.. var:: menu = renpy.display_menu
The function that's called to display the in-gamemenu. It should take the same
arguments as :func`renpy.display_menu`. Assigning :func:`nvl_menu` to this
will display an nvl-mode menu.
.. var:: mouse_visible = True
Controls if the mouse is visible. This is automatically set to true when
entering the standard game menus.
.. var:: name_only = Character(...)
This is a template character that is used when a string is given as the
character name in a say statement. The code::
"Eileen" "Hello, world."
is equivalent to::
$ temp_char = Character("Eileen", kind=name_only)
temp_char "Hello, world."
except that the temp_char variable is not used.
.. var:: narrator = Character(...)
This is the character that speaks narration (say statements that do not
give a character or character name). The code::
"Hello, world."
is equivalent to::
narrator "Hello, world."
.. var:: _rollback = True
Controls if rollback is allowed.
.. var:: say = ...
A function that is called by Ren'Py to display dialogue. This is called
with three arguments. The first argument (`who`) is the character saying the
dialogue (or None for the narrator). The second argument(`what`) is what dialogue
is being said.
The third argument must be a keyword argument named `interact` and defaulting
to True. If true, the say function will wait for a click. If false, it will
immediately return with the dialogue displayed on the screen.
It's rare to call this function directly, as one can simply call a character
with dialogue. This variable mostly exists to be redefined, as a way of
hooking the say statement.
.. var:: save_name = ""
A save name that is included with saves.
.. var:: _window = False
This set by the ``window show`` and ``window hide`` statements, and indirectly
by ``window auto``. If true, the dialogue window is shown during non-dialogue
statements.
.. var:: _window_auto = False
This is set to true by ``window auto`` and to false by ``window show`` and
``window hide``. If true, the window auto behavior occurs.
.. var:: _window_subtitle = ''
This is appended to :var:`config.window_title` to produce the caption for the game
window. This is automatically set to :var:`config.menu_window_subtitle` while in
the game menu.
+1 -1
View File
@@ -269,7 +269,7 @@ allocated to it by a layout, or on the screen when not inside a layout.
.. style-property:: ysize int
Equivalent to setting yminimum and ymaximum to the same value. This
has the effect of setting the width of the displayable.
has the effect of setting the height of the displayable.
.. style-property:: xysize tuple of (int, int)