Small changes to saving

master
Louis Pearson 2022-01-30 21:51:11 -07:00
parent 63ba55b565
commit ff042d9737
1 changed files with 12 additions and 17 deletions

View File

@ -160,11 +160,6 @@ fn randRangeF(min: f32, max: f32) f32 {
} }
// Global vars // Global vars
const KB = 1024;
var heap: [10 * KB]u8 = undefined;
var fba = std.heap.FixedBufferAllocator.init(&heap);
// var world: World = World.init(fba.allocator());
var map: Map = undefined; var map: Map = undefined;
var circuit: Circuit = undefined; var circuit: Circuit = undefined;
var particles: ParticleSystem = undefined; var particles: ParticleSystem = undefined;
@ -253,7 +248,7 @@ export fn start() void {
if (wire.a1) nodes.slice()[0].pinned = true; if (wire.a1) nodes.slice()[0].pinned = true;
if (wire.a2) nodes.slice()[nodes.len - 1].pinned = true; if (wire.a2) nodes.slice()[nodes.len - 1].pinned = true;
const w = Wire{ .nodes = nodes }; const w = Wire{ .nodes = nodes };
wires.append(w) catch unreachable; wires.append(w) catch showErr("Appending wire");
} }
for (assets.sources) |source| { for (assets.sources) |source| {
@ -271,7 +266,7 @@ export fn start() void {
.sprite = .{ .offset = .{ 0, 0 }, .size = .{ 8, 8 }, .index = 4, .flags = .{ .bpp = .b2 } }, .sprite = .{ .offset = .{ 0, 0 }, .size = .{ 8, 8 }, .index = 4, .flags = .{ .bpp = .b2 } },
.anim = Anim{ .anim = &anim_store.coin }, .anim = Anim{ .anim = &anim_store.coin },
.area = .{ .pos = .{ 0, 0 }, .size = .{ 8, 8 } }, .area = .{ .pos = .{ 0, 0 }, .size = .{ 8, 8 } },
}) catch unreachable; }) catch showErr("Appending coin");
} }
} }
@ -441,9 +436,9 @@ fn load() bool {
const read = w4.diskr(&load_buf, 1024); const read = w4.diskr(&load_buf, 1024);
w4.tracef("%d bytes read", read); w4.tracef("%d bytes read", read);
for (load_buf[0 .. read - 1]) |byte| w4.tracef("%d", byte); if (true) return false;
// if (true) return false;
if (read <= 0) return false; if (read <= 0) return false;
// for (load_buf[0 .. read - 1]) |byte| w4.tracef("%d", byte);
var stream = std.io.fixedBufferStream(load_buf[0..read]); var stream = std.io.fixedBufferStream(load_buf[0..read]);
var reader = stream.reader(); var reader = stream.reader();
@ -456,7 +451,7 @@ fn load() bool {
score = reader.readByte() catch return false; score = reader.readByte() catch return false;
const obj_len = reader.readByte() catch return false; const obj_len = reader.readByte() catch return false;
const map_len = reader.readByte() catch return false; // const map_len = reader.readByte() catch return false;
const conduit_len = reader.readByte() catch return false; const conduit_len = reader.readByte() catch return false;
var i: usize = 0; var i: usize = 0;
@ -510,9 +505,9 @@ fn load() bool {
// Load map // Load map
var buf: [256]u8 = undefined; var buf: [256]u8 = undefined;
// const len = reader.readByte() catch return; // const len = reader.readByte() catch return;
const bytes_map = reader.read(buf[0 .. map_len * 3]) catch return false; // const bytes_map = reader.read(buf[0 .. map_len * 3]) catch return false;
w4.tracef("loading %d map diffs... %d bytes", map_len, bytes_map); // w4.tracef("loading %d map diffs... %d bytes", map_len, bytes_map);
load_diff(&solids_mutable, assets.solid_size[0], buf[0..bytes_map]); // load_diff(&solids_mutable, assets.solid_size[0], buf[0..bytes_map]);
// Load conduit // Load conduit
// const conduit_len = reader.readByte() catch return; // const conduit_len = reader.readByte() catch return;
@ -548,7 +543,7 @@ fn save() void {
// Write temporary length values // Write temporary length values
const lengths_start = save_stream.getPos() catch return w4.tracef("Couldn't get pos"); const lengths_start = save_stream.getPos() catch return w4.tracef("Couldn't get pos");
save_writer.writeByte(0) catch return w4.tracef("Couldn't write obj length"); save_writer.writeByte(0) catch return w4.tracef("Couldn't write obj length");
save_writer.writeByte(0) catch return w4.tracef("Couldn't write map length"); // save_writer.writeByte(0) catch return w4.tracef("Couldn't write map length");
save_writer.writeByte(0) catch return w4.tracef("Couldn't write conduit length"); save_writer.writeByte(0) catch return w4.tracef("Couldn't write conduit length");
// Write player // Write player
@ -592,7 +587,7 @@ fn save() void {
} }
// Write map // Write map
const map_len = write_diff(save_writer, assets.solid_size[0], &assets.solid, &solids_mutable) catch return w4.tracef("Couldn't save map diff"); // const map_len = write_diff(save_writer, assets.solid_size[0], &assets.solid, &solids_mutable) catch return w4.tracef("Couldn't save map diff");
// Write conduit // Write conduit
const conduit_len = write_diff(save_writer, assets.conduit_size[0], &assets.conduit, &conduit_mutable) catch return w4.tracef("Couldn't save map diff"); const conduit_len = write_diff(save_writer, assets.conduit_size[0], &assets.conduit, &conduit_mutable) catch return w4.tracef("Couldn't save map diff");
@ -600,13 +595,13 @@ fn save() void {
const endPos = save_stream.getPos() catch return; const endPos = save_stream.getPos() catch return;
save_stream.seekTo(lengths_start) catch w4.tracef("Couldn't seek"); save_stream.seekTo(lengths_start) catch w4.tracef("Couldn't seek");
save_writer.writeByte(obj_len) catch return w4.tracef("Couldn't write obj length"); save_writer.writeByte(obj_len) catch return w4.tracef("Couldn't write obj length");
save_writer.writeByte(map_len) catch return w4.tracef("Couldn't write map length"); // save_writer.writeByte(map_len) catch return w4.tracef("Couldn't write map length");
save_writer.writeByte(conduit_len) catch return w4.tracef("Couldn't write conduit length"); save_writer.writeByte(conduit_len) catch return w4.tracef("Couldn't write conduit length");
save_stream.seekTo(endPos) catch return; save_stream.seekTo(endPos) catch return;
const save_slice = save_stream.getWritten(); const save_slice = save_stream.getWritten();
const written = w4.diskw(save_slice.ptr, save_slice.len); const written = w4.diskw(save_slice.ptr, save_slice.len);
w4.tracef("%d bytes written, %d map diffs", written, map_len); w4.tracef("%d bytes written", written);
for (save_buf[0..written]) |byte| w4.tracef("%d", byte); for (save_buf[0..written]) |byte| w4.tracef("%d", byte);
} }