diff --git a/src/Inventory.zig b/src/Inventory.zig index 113f47dc..8b93cfc4 100644 --- a/src/Inventory.zig +++ b/src/Inventory.zig @@ -36,6 +36,13 @@ pub const Sync = struct { // MARK: Sync } pub fn deinit() void { + reset(); + commands.deinit(); + freeIdList.deinit(); + serverToClientMap.deinit(); + } + + pub fn reset() void { mutex.lock(); while(commands.dequeue()) |cmd| { var reader = utils.BinaryReader.init(&.{}); @@ -44,10 +51,7 @@ pub const Sync = struct { // MARK: Sync }; } mutex.unlock(); - commands.deinit(); std.debug.assert(freeIdList.items.len == maxId); // leak - freeIdList.deinit(); - serverToClientMap.deinit(); } pub fn executeCommand(payload: Command.Payload) void { diff --git a/src/game.zig b/src/game.zig index 97be9545..101d9b94 100644 --- a/src/game.zig +++ b/src/game.zig @@ -686,6 +686,7 @@ pub const World = struct { // MARK: World main.gui.deinit(); main.gui.init(); Player.inventory.deinit(main.globalAllocator); + main.items.Inventory.Sync.ClientSide.reset(); main.threadPool.clear(); self.itemDrops.deinit();