Bug fixes
* Fixed missing 'whore collar' unlock method call * Fixed gallery not working correctly by extending call_replay funcionality by adding support for nested stores
This commit is contained in:
parent
f5ef31c88b
commit
13608b6cfa
@ -652,6 +652,7 @@ label whore_scene: #(locked behind public reputation and last sex event)
|
||||
with d3
|
||||
|
||||
if not her_neckwear_whore_collar.unlocked:
|
||||
$ her_neckwear_whore_collar.unlock()
|
||||
gen "Well then... Seeing as how you said thank you... I have a present for you." ("base", xpos="far_left", ypos="head")
|
||||
her @ cheeks blush "A present?" ("soft", "wink", "worried", "mid_soft", trans=d3)
|
||||
gen "Yes, it's a lovely piece of jewellery to commemorate your self-acceptance." ("base", xpos="far_left", ypos="head")
|
||||
|
@ -248,9 +248,9 @@ screen ui_menu():
|
||||
label scene_gallery:
|
||||
menu:
|
||||
"-Watch Ball Ending 1-" if persistent.ending_01:
|
||||
$ renpy.call_replay("ball_ending_E2", { "states.her.ev.yule_ball.variant": "personal" })
|
||||
$ renpy.call_replay("ball_ending_E2", scope={ "states.her.ev.yule_ball.variant": "personal" })
|
||||
"-Watch Ball Ending 2-" if persistent.ending_02:
|
||||
$ renpy.call_replay("ball_ending_E2", { "states.her.ev.yule_ball.variant": "public" })
|
||||
$ renpy.call_replay("ball_ending_E2", scope={ "states.her.ev.yule_ball.variant": "public" })
|
||||
"-Never mind-":
|
||||
pass
|
||||
jump main_room_menu
|
||||
|
@ -336,3 +336,70 @@ init -100 python:
|
||||
expression = expression()
|
||||
|
||||
return true if expression else false
|
||||
|
||||
# Adds support for nested stores for replay scope
|
||||
def _call_replay(label, scope={}):
|
||||
renpy.display.focus.clear_focus()
|
||||
|
||||
renpy.game.log.complete()
|
||||
|
||||
old_log = renpy.game.log
|
||||
renpy.game.log = renpy.python.RollbackLog()
|
||||
|
||||
sb = renpy.python.StoreBackup()
|
||||
renpy.python.clean_stores()
|
||||
|
||||
context = renpy.execution.Context(True)
|
||||
renpy.game.contexts.append(context)
|
||||
|
||||
if renpy.display.interface is not None:
|
||||
renpy.display.interface.enter_context()
|
||||
|
||||
# This has to be here, to ensure the scope stuff works.
|
||||
renpy.exports.execute_default_statement()
|
||||
|
||||
for k, v in renpy.config.replay_scope.items():
|
||||
stores = k.split(".")
|
||||
current_obj = renpy.store
|
||||
|
||||
for store in stores[:-1]:
|
||||
current_obj = getattr(current_obj, store)
|
||||
|
||||
setattr(current_obj, stores[-1], v)
|
||||
|
||||
for k, v in scope.items():
|
||||
stores = k.split(".")
|
||||
current_obj = renpy.store
|
||||
|
||||
for store in stores[:-1]:
|
||||
current_obj = getattr(current_obj, store)
|
||||
|
||||
setattr(current_obj, stores[-1], v)
|
||||
|
||||
renpy.store._in_replay = label
|
||||
|
||||
try:
|
||||
|
||||
context.goto_label("_start_replay")
|
||||
renpy.execution.run_context(False)
|
||||
|
||||
except renpy.game.EndReplay:
|
||||
pass
|
||||
|
||||
finally:
|
||||
|
||||
context.pop_all_dynamic()
|
||||
|
||||
renpy.game.contexts.pop()
|
||||
renpy.game.log = old_log
|
||||
sb.restore()
|
||||
|
||||
if renpy.game.interface and renpy.game.interface.restart_interaction and renpy.game.contexts:
|
||||
renpy.game.contexts[-1].scene_lists.focused = None
|
||||
|
||||
renpy.config.skipping = None
|
||||
|
||||
if renpy.config.after_replay_callback:
|
||||
renpy.config.after_replay_callback()
|
||||
|
||||
renpy.call_replay = _call_replay
|
||||
|
Loading…
Reference in New Issue
Block a user