diff --git a/build.zig b/build.zig index 7988f174..eb2e947f 100644 --- a/build.zig +++ b/build.zig @@ -92,6 +92,7 @@ pub fn build(b: *std.build.Builder) !void { //exe.strip = true; // Improves compile-time //exe.sanitize_thread = true; + exe.disable_stack_probing = true; // Improves tracing of stack overflow errors. b.installArtifact(exe); const run_cmd = b.addRunArtifact(exe); diff --git a/src/game.zig b/src/game.zig index 43a2959c..f40b1bc9 100644 --- a/src/game.zig +++ b/src/game.zig @@ -104,12 +104,20 @@ pub const World = struct { // public final ArrayList chatHistory = new ArrayList<>(); pub fn init(self: *World, ip: []const u8, manager: *ConnectionManager) !void { - self.* = World { - .conn = try Connection.init(manager, ip), - .manager = manager, - .name = "client", - .milliTime = std.time.milliTimestamp(), - }; + self.conn = try Connection.init(manager, ip); + self.manager = manager; + self.ambientLight = 0; + self.clearColor = .{0, 0, 0, 1}; + self.gravity = 9.81*1.5; + self.name = "client"; + self.milliTime = std.time.milliTimestamp(); + self.gameTime = std.atomic.Atomic(i64).init(0); +// self.* = World { TODO: Wait for #17289 fix. +// .conn = try Connection.init(manager, ip), +// .manager = manager, +// .name = "client", +// .milliTime = std.time.milliTimestamp(), +// }; try self.itemDrops.init(main.globalAllocator, self); Player.inventory__SEND_CHANGES_TO_SERVER = try Inventory.init(main.globalAllocator, 32); // TODO: diff --git a/src/itemdrop.zig b/src/itemdrop.zig index b60eff3d..21627dc1 100644 --- a/src/itemdrop.zig +++ b/src/itemdrop.zig @@ -461,10 +461,13 @@ pub const ClientItemDropManager = struct { pub fn init(self: *ClientItemDropManager, allocator: Allocator, world: *World) !void { std.debug.assert(instance == null); // Only one instance allowed. instance = self; - self.* = ClientItemDropManager { - .super = undefined, - .lastTime = @as(i16, @truncate(std.time.milliTimestamp())) -% settings.entityLookback, - }; + self.super = undefined; + self.lastTime = @as(i16, @truncate(std.time.milliTimestamp())) -% settings.entityLookback; + self.timeDifference = .{}; +// self.* = ClientItemDropManager { TODO: Wait for #17289 fix. +// .super = undefined, +// .lastTime = @as(i16, @truncate(std.time.milliTimestamp())) -% settings.entityLookback, +// }; try self.super.init(allocator, null, world.gravity); self.super.addWithIndexAndRotation = &overrideAddWithIndexAndRotation; self.interpolation.init(