Code: Select all
#
# snipped from script.rpy
#
label start:
$ persistent.recently_loaded = False
# Show a background. This uses a placeholder by default, but you can
# add a file (named either "bg room.png" or "bg room.jpg") to the
# images directory to show it.
scene bg room
# This shows a character sprite. A placeholder is used, but you can
# replace it by adding a file named "eileen happy.png" to the images
# directory.
show eileen happy
# These display lines of dialogue.
e "You've created a new Ren'Py game."
e "persistent.recently_loaded = [persistent.recently_loaded]"
if persistent.recently_loaded:
e "Really? You're already interrupting me?"
$ persistent.recently_loaded = False
e "Once you add a story, pictures, and music, you can release it to the world!"
if persistent.recently_loaded:
e "Again? You're terrible."
$ persistent.recently_loaded = False
# This ends the game.
return
Code: Select all
# interject.rpy
init -10 python:
if persistent.recently_loaded is None:
persistent.recently_loaded = False
def __slotname(name, page=None):
if page is None:
page = persistent._file_page
try:
page = int(page)
page = page + persistent._file_folder * config.file_pages_per_folder
except ValueError:
pass
if config.linear_saves_page_size is not None:
try:
page = int(page)
name = int(name)
return str((page - 1) * config.linear_saves_page_size + name)
except ValueError:
pass
return str(page) + "-" + str(name)
def __newest_slot():
return renpy.newest_slot(r'\d+')
class FileInterjectLoad(Action, DictEquality):
alt = "Load slot [text]"
def __init__(self, name, confirm=True, page=None, newest=True):
if name is None:
name = __unused_slot_name(page)
self.name = name
self.confirm = confirm
self.page = page
self.newest = newest
try:
self.alt = __("Load slot %s: [text]") % (name,)
except:
self.alt = "Load slot %s: [text]" % (name,)
def __call__(self):
if not self.get_sensitive():
return
fn = __slotname(self.name, self.page)
if not main_menu:
if self.confirm:
if config.autosave_on_quit and not fn.startswith("auto-"):
renpy.loadsave.force_autosave()
############################# IMPORTANT BIT #############################
layout.yesno_screen(layout.LOADING, FileInterjectLoad(self.name, False, self.page))
############################# IMPORTANT BIT #############################
return
############################# IMPORTANT BIT #############################
persistent.recently_loaded = True
renpy.save_persistent()
renpy.log(">>> persistent.recently_loaded = %s" % persistent.recently_loaded)
renpy.load(fn)
############################# IMPORTANT BIT #############################
def get_sensitive(self):
if _in_replay:
return False
return renpy.can_load(__slotname(self.name, self.page))
def get_selected(self):
if not self.confirm or not self.newest:
return False
return __newest_slot() == __slotname(self.name, self.page)
############################# IMPORTANT BIT #############################
def FileInterjectAction(name, page=None, **kwargs):
if renpy.current_screen().screen_name[0] == "load":
return FileInterjectLoad(name, page=page, **kwargs)
else:
return FileSave(name, page=page, **kwargs)
############################# IMPORTANT BIT #############################
Code: Select all
#
# snipped from screens.rpy, screen file_slots
#
for i in range(gui.file_slot_cols * gui.file_slot_rows):
$ slot = i + 1
button:
#action FileAction(slot)
action FileInterjectAction(slot)
has vbox
What am I doing wrong?