Bug fixes

* Added a hint regarding the 'brutes' section of Cho's quidditch quest
* Fixed face and cum submodule processors referencing a wrong vars
* Fixed face and cum submodules custom zorder modifiers
* Fixed cum submodule zorder assignments and simplified the code
This commit is contained in:
LoafyLemon 2023-03-19 19:22:05 +00:00
parent 309aa12e1e
commit c0da6f3731
6 changed files with 20 additions and 39 deletions

View File

@ -265,6 +265,7 @@ label cc_st_talk:
elif cho_quid.E5_complete and not cho_quid.E6_complete: elif cho_quid.E5_complete and not cho_quid.E6_complete:
cho "I'm still a bit worried about those brutes..." ("annoyed", "base", "raised", "down") cho "I'm still a bit worried about those brutes..." ("annoyed", "base", "raised", "down")
cho "You better find a foolproof way of dealing with them." ("soft", "base", "angry", "mid") cho "You better find a foolproof way of dealing with them." ("soft", "base", "angry", "mid")
gen "(Perhaps I should {b}talk to her{/b} more, the problem might solve itself.)" ("base", xpos="far_left", ypos="head")
elif cc_pf_talk.is_tier_complete() and not cho_quid.lock_tactic: elif cc_pf_talk.is_tier_complete() and not cho_quid.lock_tactic:
cho "You really believe that showing off my ass is the best tactic against Slytherin?" ("soft", "base", "base", "R", cheeks="blush") cho "You really believe that showing off my ass is the best tactic against Slytherin?" ("soft", "base", "base", "R", cheeks="blush")
gen "I'm certain of it..." ("base", xpos="far_left", ypos="head") gen "I'm certain of it..." ("base", xpos="far_left", ypos="head")

View File

@ -3,7 +3,7 @@ init python:
layer_types = { layer_types = {
"mask": "-1", "mask": "-1",
"skin": 1, "skin": 1,
"cum": 100, "cum": None,
} }
layer_modifiers = { layer_modifiers = {
@ -53,38 +53,29 @@ init python:
continue continue
if part in face_layers: if part in face_layers:
zorder = face_layers.get(part) zorder = face_layers.get(part) + 1
identifier = active_faces.get(part, "default") identifier = active_faces.get(part, "default")
path = posixpath.join(self.char.modpath, "characters", self.char.name, "poses", self.char.pose, subpath, "cum", part, name, identifier) path = posixpath.join(self.char.modpath, "characters", self.char.name, "poses", self.char.pose, subpath, "cum", part, name, identifier)
elif part in (clothing_layers | body_layers): elif part in (clothing_layers | body_layers):
cloth, zorder, is_worn = active_clothes.get(part, [None, None, None]) cloth, zorder, is_worn = active_clothes.get(part, [None, None, None])
if is_worn is None: if cloth is None or not is_worn:
# Backwards compatibility for old layering system continue
path = posixpath.join("characters", self.char.name, "poses", self.char.pose, "cum", part, name)
if config.developer: identifier = cloth.id
renpy.notify(f"Using old-type cum layer, consider updating the code; Layer: \"{part}\"") modpath = cloth.modpath
else: zorder = cloth.zorder + 1
if cloth is None or is_worn is False:
identifier = "default"
modpath = ""
zorder = None
else:
identifier = cloth.id
modpath = cloth.modpath
zorder = cloth.zorder + 1
path = posixpath.join(modpath, "characters", self.char.name, "poses", self.char.pose, "cum", part, name, identifier) path = posixpath.join(modpath, "characters", self.char.name, "poses", self.char.pose, "cum", part, name, identifier)
path = path if _lookahead(path) else posixpath.join(os.path.split(path)[0], (identifier := "default")) path = path if _lookahead(path) else posixpath.join(os.path.split(path)[0], (identifier := "default"))
if config.developer and not _lookahead(path):
print(f"Files and/or directories are missing: {path}/")
else: else:
zorder = types.get("cum") zorder = 100
path = posixpath.join(self.char.modpath, "characters", self.char.name, "poses", self.char.pose, "cum", part, name) path = posixpath.join(self.char.modpath, "characters", self.char.name, "poses", self.char.pose, "cum", part, name)
if config.developer and not _lookahead(path):
print(f"Files and/or directories are missing: {path}/")
for f in renpy.list_files(): for f in renpy.list_files():
fp, fn = os.path.split(f) fp, fn = os.path.split(f)
fn, ext = os.path.splitext(fn) fn, ext = os.path.splitext(fn)
@ -98,7 +89,7 @@ init python:
print(f"Invalid layer type for file: {f}") print(f"Invalid layer type for file: {f}")
continue continue
zorder = zorder or types.get(ltype) zorder = types.get(ltype) or zorder
if tails: if tails:
lmodifier, *tails = tails lmodifier, *tails = tails
@ -108,7 +99,7 @@ init python:
continue continue
zorder_mod = modifiers.get(lmodifier) zorder_mod = modifiers.get(lmodifier)
zorder = (zorder + int(zorder_mod)) zorder = (zorder + int(zorder_mod)) if lmodifier != "zorder" else int(tails[-1])
layers.setdefault(" ".join([part, name, ltype, lmodifier]), [f, zorder]) layers.setdefault(" ".join([part, name, ltype, lmodifier]), [f, zorder])
else: else:
layers.setdefault(" ".join([part, name, ltype]), [f, zorder]) layers.setdefault(" ".join([part, name, ltype]), [f, zorder])
@ -131,7 +122,7 @@ init python:
for identifier, (file, zorder) in layers.items(): for identifier, (file, zorder) in layers.items():
cum_type, name, ltype = identifier.rsplit(" ") cum_type, name, ltype = identifier.rsplit(" ")
processor = processors.get(identifier, processors["default"]) processor = processors.get(ltype, processors["default"])
processed_file = processor(file) processed_file = processor(file)
sprites.append((identifier, processed_file, zorder)) sprites.append((identifier, processed_file, zorder))

View File

@ -63,7 +63,7 @@ init python:
continue continue
zorder_mod = modifiers.get(lmodifier) zorder_mod = modifiers.get(lmodifier)
zorder = (zorder + int(zorder_mod)) zorder = (zorder + int(zorder_mod)) if lmodifier != "zorder" else int(tails[-1])
layers.setdefault(" ".join([part, name, ltype, lmodifier]), [f, zorder]) layers.setdefault(" ".join([part, name, ltype, lmodifier]), [f, zorder])
else: else:
layers.setdefault(" ".join([part, name, ltype]), [f, zorder]) layers.setdefault(" ".join([part, name, ltype]), [f, zorder])
@ -92,9 +92,10 @@ init python:
if expr_type == "pupils": if expr_type == "pupils":
if not eyemask: if not eyemask:
continue continue
processor = processors["pupils"] processor = processors["pupils"]
else: else:
processor = processors.get(identifier, processors["default"]) processor = processors.get(ltype, processors["default"])
processed_file = processor(file) processed_file = processor(file)
sprites.append((identifier, processed_file, zorder)) sprites.append((identifier, processed_file, zorder))

View File

@ -441,12 +441,6 @@ init python:
"""Returns a dictionary containing currently set facial expressions. Used in character studio.""" """Returns a dictionary containing currently set facial expressions. Used in character studio."""
return self.face._face return self.face._face
# def set_body(self, **kwargs):
# OBSOLETE! the code in scripts needs to be changed
# """Takes keyword argument(s) with the string name of body part file(s)."""
# if self.body.set_body(**kwargs):
# self.rebuild_image()
def set_body_hue(self, arg): def set_body_hue(self, arg):
"""Takes integer between 0 - 359, rotates the character body colour by given amount.""" """Takes integer between 0 - 359, rotates the character body colour by given amount."""
self.body.set_hue(arg) self.body.set_hue(arg)
@ -460,12 +454,6 @@ init python:
if renpy.showing(get_character_tag(self.name), layer=self.layer): if renpy.showing(get_character_tag(self.name), layer=self.layer):
self.show() self.show()
# def set_body_zorder(self, **kwargs):
# OBSOLETE! the code in scripts needs to be changed
# """Takes keyword argument(s) with the name(s) of body part(s) and integer value(s)"""
# if self.body.set_zorder(**kwargs):
# self.rebuild_image()
def set_cum(self, *args, **kwargs): def set_cum(self, *args, **kwargs):
"""Takes keyword argument(s) containing string name(s) of cum layers to apply or None.""" """Takes keyword argument(s) containing string name(s) of cum layers to apply or None."""
self.cum.set_cum(*args, **kwargs) self.cum.set_cum(*args, **kwargs)