Compare commits

...

3 Commits

Author SHA1 Message Date
Gouvernathor deb15f8168 Merge branch 'master' into fix-5128 2024-02-04 00:11:13 +01:00
Gouvernathor 9ae9e831e5 details 2024-02-03 18:05:52 +01:00
Asriel Senna e2412dfd74 First trial 2024-02-02 00:40:25 +01:00
2 changed files with 22 additions and 14 deletions
+6 -6
View File
@@ -77,11 +77,11 @@ class Prefix(object):
# A list of prefix indexes that should be updated when this prefix is
# updated, including this prefix.
if index >= 0:
self.alts = [ self.index ]
self.alt_names = [ self.name ]
self.alts = [index]
self.alt_names = [name]
else:
self.alts = [ ]
self.alt_names = [ ]
self.alts = []
self.alt_names = []
for i in alts:
self.alts.append(prefixes[i].index)
@@ -640,12 +640,12 @@ def generate_sets():
ap = collections.OrderedDict()
for k, v in all_properties.items():
ap[k] = [ i[0] for i in v ]
ap[k] = [i[0] for i in v]
proxy_property_code = "{"
for p, l in synthetic_properties.items():
proxy_property_code += '"{}" : frozenset({}),'.format(p, [ el[0] for el in l ])
proxy_property_code += '"{}" : frozenset({}),'.format(p, [el[0] for el in l])
proxy_property_code += "}"
+16 -8
View File
@@ -100,7 +100,7 @@ class Style(object):
def __init__(self, name):
self.name = name
properties['', True].add(self.name)
properties['', True].add(name)
if parser:
parser.add(self)
@@ -115,13 +115,21 @@ class PrefixStyle(object):
self.prefix = prefix
self.name = name
properties[prefix, True].add(self.name)
properties[prefix, True].add(name)
update_incompatible_props(prefix, name)
if parser:
parser.add(self)
from renpy.styledata.stylesets import proxy_properties as incompatible_props
from renpy.styledata.stylesets import proxy_properties
incompatible_props = proxy_properties.copy()
def update_incompatible_props(prefix, prop):
res = incompatible_props.get(prop, None)
if res is not None:
incompatible_props[prefix + prop] = frozenset(prefix + p for p in res)
def check_incompatible_props(new, olds):
"""
@@ -448,7 +456,7 @@ class Parser(object):
PrefixStyle(prefix, prop.name)
return self
def copy_properties(self, name):
global parser
parser = self
@@ -456,10 +464,10 @@ class Parser(object):
parser_to_copy = statements.get(name, None)
if parser_to_copy is None:
raise Exception("{!r} is not a known screen statement".format(name))
for p in parser_to_copy.positional:
Positional(p.name)
for v in set(parser_to_copy.keyword.values()):
if isinstance(v, Keyword):
Keyword(v.name)
@@ -578,7 +586,7 @@ def register_sl_displayable(*args, **kwargs):
These correspond to groups of :doc:`style_properties`. Group can
also be "ui", in which case it adds the :ref:`common ui properties <common-properties>`.
.. method:: copy_properties(name)
Adds all styles and positional/keyword arguments that can be passed to the `name` screen statement.
@@ -1143,4 +1151,4 @@ def parse_screen(l, loc):
Parses the screen statement.
"""
return screen_parser.parse(loc, l, None)
return screen_parser.parse(loc, l, None)