Kagari
キーワードを入力してドキュメントを検索します。

モジュール

std::system::saves

安定性: 安定 — セーブスロットとそのメタデータ。

std::system::saves はセーブスロットに名前を付け、スロットを読み取り・削除します。セーブの書き込みは Narrative::save(slot)(std::narrative を参照)です。セーブできるのは実行中のゲームだけだからです。ロードは nav::load(slot) です。スロットのスクリーンショットは要素 ui::thumbnail(slot) です。

セーブはプレイヤーが物語の中でたどった経路を記録します。スクリプトがその経路を許す限り、セーブはロードできます。モデルについてはリファレンスの「セーブ、リプレイ、決定性」の章を参照してください。

kis
use std::system::saves;
use std::system::saves::SaveSlot;

概要

アイテム種別概要
SaveSlot列挙型手動・クイック・オートセーブのスロット
Timestamp構造体ローカルの日時
SaveInfo構造体スロットに表示する内容
Divergenceビルトイン構造体セーブがプログラムに合わなくなった理由
info(slot)fnスロットのメタデータ。リアクティブ
delete(slot)fnスロットを空にする

列挙型: SaveSlot

kis
pub enum SaveSlot {
/// Manual slot `k`, below `System::save_slots`.
Manual(u32),
/// The quick slot.
Quick,
/// Autosave slot `k`, below `System::auto_slots`.
Auto(u32),
}
バリアント意味
Manual(k)手動スロット。0 <= k < System::save_slots
Quickただ 1 つのクイックスロット。Action::QuickSave と Action::QuickLoad が書き込み・読み取りします
Auto(k)オートセーブスロット。0 <= k < System::auto_slots
  • k >= save_slots の Manual(k) や k >= auto_slots の Auto(k) は範囲外です。これを使っても実行時には何も起きません。info は None を返し、save は何もしません。
  • オートセーブ。 選択肢ステップに入るたびと終了時に、エンジンは Auto(k) を書き込みます。k は 0..auto_slots を順に巡ります。

構造体: Timestamp

kis
pub struct Timestamp {
pub year: u16,
pub month: u8,
pub day: u8,
pub hour: u8,
pub minute: u8,
pub second: u8,
}

ローカルの日時です。

構造体: SaveInfo

kis
pub struct SaveInfo {
pub time: Timestamp,
pub who: Option<Text>,
pub text: Option<Text>,
}

スロットに表示する内容で、セーブした日時と、そのとき表示されていた行です。

  • time — セーブが書き込まれた日時(ローカル時刻)。
  • who — セーブ時の行の話者(あれば)。
  • text — セーブ時の行のテキスト(行が表示されていれば)。

構造体: Divergence

kis
#[builtin] pub struct Divergence;

セーブがプログラムに合わなくなった理由です。スクリプトが変更され、セーブに記録された経路がもはや物語の経路ではなくなったことを表します。nav::load の Err で返されます。

Divergence::describe()

kis
#[builtin] pub fn describe(&self) -> Text;
  • 戻り値: Text — セーブがスクリプトのどこで合わなくなったかの、プレイヤー向けの説明。
  • 種別: fn · ビルトイン: はい

関数: info(slot)

kis
#[builtin] pub fn info(slot: SaveSlot) -> Option<SaveInfo>;
  • slot SaveSlot — スロット。
  • 戻り値: Option<SaveInfo> — スロットのメタデータ。スロットが空か範囲外なら None。
  • 種別: fn · ビルトイン: はい

info はリアクティブなソースです。セーブが書き込まれたり削除されたりすると、スロット一覧が再描画されます。

kix
use std::system::saves;
use std::system::saves::SaveSlot;
fn slot_text(slot: SaveSlot) -> Text {
match saves::info(slot) {
Some(info) => match info.text {
Some(text) => text,
None => "",
},
None => "Empty",
}
}

関数: delete(slot)

kis
#[builtin] pub fn delete(slot: SaveSlot);
  • slot SaveSlot — 空にするスロット。
  • 種別: fn · ビルトイン: はい

スロットを空にします。

kix
button!{on_click = || saves::delete(SaveSlot::Manual(0)), t!["Delete"]}

完全なセーブ・ロード画面は システムのレシピ にあります。

最終更新日 2026年10月29日