Sure thing - linked replay here (
https://s3.amazonaws.com/eruditorium/inject_stacking_2.SC2Replay). The type of sequence I'm looking at is an inject, some camera events, and then multiple pairs of command events that aren't used by sc2reader, separated by camera events. In-game, this corresponds to hotkey selecting a queen group, injecting a hatch, base-camera jumping to the next hatch, and shift-injecting it, until all hatches are injected.
Run through s2protocol (`python s2protocol.py --gameevents --details`), the output at `_gameloop: 8573` is the type of event I'm talking about. It's listed as a `NNet.Game.SCmdUpdateTargetUnitEvent` followed by a `NNet.Game.SCommandManagerStateEvent`. They follow the actual inject, which happens at `_gameloop: 8553`.
There's a whole sequence of these. In s2protocol, they look like:
{'_bits': 176,
'_event': 'NNet.Game.SCmdUpdateTargetUnitEvent',
'_eventid': 105,
'_gameloop': 8573,
'_userid': {'m_userId': 0},
'm_target': {'m_snapshotControlPlayerId': 1,
'm_snapshotPoint': {'x': 530432, 'y': 628736, 'z': 49136},
'm_snapshotUnitLink': 108,
'm_snapshotUpkeepPlayerId': 1,
'm_tag': 52690945,
'm_targetUnitFlags': 111,
'm_timer': 0}}
Their bytes look like:
0\xc0\t\x06\x0f\x002@\x00\x01\x06\x1c\x87\x06\x00\x98`\x80\x00\x02\xff0
They're all followed by a `command_manager_state_event` that tells us they're meant as injects:
{'_bits': 56,
'_event': 'NNet.Game.SCommandManagerStateEvent',
'_eventid': 103,
'_gameloop': 8573,
'_userid': {'m_userId': 0},
'm_sequence': 689,
'm_state': 1}
Bytes:
\x00\xc0W\x00\x00\x050
Still puzzling out the details and working on a solution. It looks like we can infer hatcheries from `tag` on the `command_update_target_unit_event`. This `command_manager_state_event` is a bit obnoxious - are there other situations that require us to look at two consecutive events to figure out what happened?
Also sorry deleting previous - struggling with Google groups here : p