From e78082c7b49e93534cef93c31a441135e1a24e4b Mon Sep 17 00:00:00 2001 From: Joshua Morris Date: Sun, 1 Sep 2013 12:35:37 -0700 Subject: [PATCH] sparse demo parsing (disabled by default) --- skadi/demo.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/skadi/demo.py b/skadi/demo.py index 14c7556..d37dc56 100644 --- a/skadi/demo.py +++ b/skadi/demo.py @@ -86,13 +86,14 @@ def construct(*args): class Stream(object): - def __init__(self, prologue, io, world, string_tables, remaining_packets): + def __init__(self, prologue, io, world, string_tables, rem, sparse=False): self.prologue = prologue self.demo_io = d_io.construct(io) self.world = world self.string_tables = string_tables + self.sparse = sparse - for peek, message in remaining_packets: + for peek, message in rem: pbmsg = d_io.parse(peek.kind, peek.compressed, message) self.advance(peek.tick, pbmsg) @@ -156,7 +157,7 @@ def advance(self, tick, pbmsg): elif mode & u_ent.PVS.Deleting: self.world.delete(index) elif mode ^ u_ent.PVS.Leaving: - state = dict(self.world.find_index(index)) + state = {} if self.sparse else dict(self.world.find_index(index)) state.update(context) self.world.update(index, state) @@ -199,7 +200,7 @@ def __init__(self, abspath): self.io = infile self._tell = infile.tell() - def stream(self, tick=0): + def stream(self, tick=0, sparse=False): self.io.seek(self._tell) args = fast_forward(self.prologue, d_io.construct(self.io), tick=tick) - return Stream(self.prologue, self.io, *args) + return Stream(self.prologue, self.io, *args, sparse=sparse)