mirror of
https://github.com/forkless/NotAlterra.git
synced 2026-08-19 17:43:34 +02:00
Simplify playtime extraction to scan_double_near
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
import struct
|
||||
d = open('samples/savegame_0.sav','rb').read()
|
||||
i = d.find(b'ElapsedTimeDouble')
|
||||
print('ElapsedTimeDouble found at:', i)
|
||||
i2 = d.find(b'Elapsed')
|
||||
print('Elapsed found at:', i2)
|
||||
# Check FName encoding at position i2-4
|
||||
print('u32 at i2-4:', struct.unpack_from('<I', d, i2-4)[0])
|
||||
print('Expected:', len(b'Elapsed')+1)
|
||||
+2
-4
@@ -287,8 +287,7 @@ pub fn extract_full_metadata(path: &Path) -> Result<FullMetadata> {
|
||||
saves_count: extract_int_property(&data, "SavesCount"),
|
||||
latest_version: extract_int_property(&data, "LatestVersion"),
|
||||
data_version: extract_int_property(&data, "DataVersion"),
|
||||
playtime_seconds: extract_double_property(&data, "ElapsedTimeDouble")
|
||||
.or_else(|| scan_double_near(&data, b"Elapsed")),
|
||||
playtime_seconds: scan_double_near(&data, b"Elapsed"),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -329,8 +328,7 @@ pub fn extract_metadata(path: &Path) -> Result<SaveMetadata> {
|
||||
};
|
||||
let is_online = extract_bool_property(&data, "bIsMultiplayerSave").unwrap_or(false);
|
||||
|
||||
let playtime_seconds = extract_double_property(&data, "ElapsedTimeDouble")
|
||||
.or_else(|| scan_double_near(&data, b"Elapsed"));
|
||||
let playtime_seconds = scan_double_near(&data, b"Elapsed");
|
||||
Ok(SaveMetadata {
|
||||
slot_name,
|
||||
display_name,
|
||||
|
||||
Reference in New Issue
Block a user