Crate momoden_password
source ·Expand description
桃太郎伝説 (FC) パスワードライブラリ
パスワードとゲーム状態の相互変換を行う。
Example
//! パスワード「ふ」をロードする。
use momoden_password::*;
fn main() {
let password = Password::parse("ふ").unwrap();
let bytes = SerializedBytes::from_password(&password);
if let Some(savedata) = bytes.to_savedata() {
// 生のセーブデータ(装備インデックスが不正なまま)を出力する。
println!("raw: {savedata:?}");
// 実際にロードされるセーブデータ(装備が変化した後)を出力する。
let savedata_norm = savedata.normalize();
println!("normalized: {savedata_norm:?}");
} else {
// チェックサムが一致しない場合、to_savedata() は失敗する。
println!("checksum mismatch");
}
}
//! パスワード「ふ」をロードした直後の状態をパスワード化する。
use momoden_password::*;
fn main() {
// パスワード「ふ」をロードし、実際にロードされるセーブデータを得る。
let password = Password::parse("ふ").unwrap();
let bytes = SerializedBytes::from_password(&password);
let savedata = bytes.to_savedata().unwrap();
let savedata = savedata.normalize();
// このセーブデータに対応するパスワードを得る。
// (パスワード「ふ」で始めてすぐ神主に話しかけたときのパスワードと一致するはず)
let bytes = SerializedBytes::from_savedata(&savedata);
let password = bytes.to_password();
println!("{}", password.display_pretty());
}
License
GPLv3
Structs
ひえんブックマーク。
値域が
MIN..=MAX
に制限された u8
。ゲーム状態をシリアライズしたバイト列のチェックサム。
装備。
イベント進行状態。
お供存在状態。
パスワード。
パスワードに記録されるゲーム状態。
ゲーム状態をシリアライズしたバイト列。
術習得状態。
宝物所持状態。
Enums
Type Definitions
いでたち0インデックス (2bit)。
いでたち1インデックス (2bit)。
いでたち2インデックス (1bit)。
いでたち3インデックス (1bit)。
鎧インデックス (4bit)。
mod 64 加算によるチェックサム。
XOR によるチェックサム。
預金 (6bit)。
兜インデックス (2bit)。
インベントリ。
アイテムID (nonzero, 6bit)。
Password
の内部バッファ。復活地点ID (4bit)。
SerializedBytes
の要素。SerializedBytes
の内部バッファ。靴インデックス (3bit)。
武器インデックス (4bit)。