Skip to content

Commit 22606c9

Browse files
committed
Improve the sc2parse pid checking.
1 parent e900a8b commit 22606c9

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

sc2reader/scripts/sc2parse.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,15 @@ def main():
4444
if not args.one_each or replay.is_ladder:
4545
replay = sc2reader.load_replay(path, debug=True)
4646

47-
player_pids = set( [ player.pid for player in replay.players ] )
48-
efilter = lambda e: hasattr(e, 'player')
49-
event_pids = set( [ event.player.pid for event in filter(efilter, replay.events) ] )
50-
if player_pids != event_pids:
51-
print 'Pid problem! pids={pids} but event pids={event_pids}'.format(pids=player_pids, event_pids=event_pids)
47+
client_pids = set([client.pid for client in replay.clients])
48+
event_pids = set([ event.player.pid for event in replay.events if getattr(event, 'player',None) ])
49+
player_pids = set([ player.pid for player in replay.players if player.is_human])
50+
ability_pids = set([ event.player.pid for event in replay.events if 'AbilityEvent' in event.name])
51+
if client_pids != event_pids:
52+
print 'Event Pid problem! pids={pids} but event pids={event_pids}'.format(pids=client_pids, event_pids=event_pids)
53+
print ' with {path}: {build} - {real_type} on {map_name} - Played {start_time}'.format(path=path, **replay.__dict__)
54+
elif player_pids != ability_pids:
55+
print 'Ability Pid problem! pids={pids} but event pids={event_pids}'.format(pids=player_pids, event_pids=ability_pids)
5256
print ' with {path}: {build} - {real_type} on {map_name} - Played {start_time}'.format(path=path, **replay.__dict__)
5357
else:
5458
print 'No problems with {path}: {build} - {real_type} on {map_name} - Played {start_time}'.format(path=path, **replay.__dict__)

0 commit comments

Comments
 (0)