core: make save_data/restore_data public for filesystem-less saves
Save slots aren't always files. The MRP3GI browser build hands a SaveData straight to localStorage instead of saves/<slot>.json, so the two halves of the checkpoint machinery need to be reachable from outside the crate. Native behavior is unchanged — SaveGame/RestoreGame still go through the same two functions. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
662e6c4bc4
commit
f2b603a812
@ -726,7 +726,10 @@ impl GameState {
|
|||||||
ev
|
ev
|
||||||
}
|
}
|
||||||
|
|
||||||
fn save_data(&self) -> SaveData {
|
/// The whole restorable moment, in memory. Public because save slots
|
||||||
|
/// aren't always files: the browser build hands this straight to
|
||||||
|
/// localStorage instead of `saves/`.
|
||||||
|
pub fn save_data(&self) -> SaveData {
|
||||||
SaveData {
|
SaveData {
|
||||||
room: self.world.current,
|
room: self.world.current,
|
||||||
ego: (self.ego.x, self.ego.y),
|
ego: (self.ego.x, self.ego.y),
|
||||||
@ -743,7 +746,9 @@ impl GameState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn restore_data(&mut self, d: SaveData) -> Vec<Event> {
|
/// Restore a moment produced by [`GameState::save_data`] — the same path
|
||||||
|
/// death and `RestoreGame` take, minus the filesystem.
|
||||||
|
pub fn restore_data(&mut self, d: SaveData) -> Vec<Event> {
|
||||||
self.inventory = d.inventory.clone();
|
self.inventory = d.inventory.clone();
|
||||||
self.taken = d.taken.clone();
|
self.taken = d.taken.clone();
|
||||||
self.scored = d.scored.clone();
|
self.scored = d.scored.clone();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user