def load(self, bytes, frames, event_type, event_code, pid): event = AbilityEvent(frames, event_type, event_code, pid) first, atype = (bytes.get_big_8(), bytes.get_big_8()) event.ability = bytes.get_big_8() << 16 | bytes.get_big_8() << 8 | (bytes.get_big_8() & 0x3F) if atype == 0x20 or atype == 0x22: event.name = 'unitability' #print "Time %s - Player %s orders (%s) %s " % (self.timestr, self.player, hex(atype), event.abilitystr) if event.ability & 0xFF > 0x07: if first == 0x29 or first == 0x19: bytes.skip(4) else: bytes.skip(9) if event.ability & 0x20 != 0: bytes.skip(9) elif atype == 0x48 or atype == 0x4A: #identifies target point event.name = 'targetlocation' #print "Time %s - Player %s issues location target" % (self.timestr, self.player) bytes.skip(7) elif atype == 0x88 or atype == 0x8A: #identifies the target unit event.name = 'targetunit' #print "Time %s - Player %s orders (%s) %s " % (self.timestr, self.player, hex(atype), abilitystr) bytes.skip(15) else: raise TypeError("Ability type %s is unknown at location %s" % (hex(atype), event.location)) return event
def load(self, bytes, frames, event_type, event_code, pid): event = AbilityEvent(frames, event_type, event_code, pid) bytes.skip(4) event.ability = bytes.get_big_8() << 16 | bytes.get_big_8() << 8 | bytes.get_big_8() req_target = bytes.get_big_8() bytes.skip(24) #In certain cases we need an extra byte if req_target == 0x30 or req_target == 0x05: bytes.skip(1) return event
def load(self, bytes, frames, event_type, event_code, pid): event = AbilityEvent(frames, event_type, event_code, pid) bytes.skip(4) event.ability = bytes.get_big_8() << 16 | bytes.get_big_8( ) << 8 | bytes.get_big_8() req_target = bytes.get_big_8() bytes.skip(24) #In certain cases we need an extra byte if req_target == 0x30 or req_target == 0x05: bytes.skip(1) return event
def load(self, bytes, frames, event_type, event_code, pid): event = AbilityEvent(frames, event_type, event_code, pid) first, atype = (bytes.get_big_8(), bytes.get_big_8()) event.ability = bytes.get_big_8() << 16 | bytes.get_big_8() << 8 | ( bytes.get_big_8() & 0x3F) if atype == 0x20 or atype == 0x22: event.name = 'unitability' #print "Time %s - Player %s orders (%s) %s " % (self.timestr, self.player, hex(atype), event.abilitystr) if event.ability & 0xFF > 0x07: if first == 0x29 or first == 0x19: bytes.skip(4) else: bytes.skip(9) if event.ability & 0x20 != 0: bytes.skip(9) elif atype == 0x48 or atype == 0x4A: #identifies target point event.name = 'targetlocation' #print "Time %s - Player %s issues location target" % (self.timestr, self.player) bytes.skip(7) elif atype == 0x88 or atype == 0x8A: #identifies the target unit event.name = 'targetunit' #print "Time %s - Player %s orders (%s) %s " % (self.timestr, self.player, hex(atype), abilitystr) bytes.skip(15) else: raise TypeError("Ability type %s is unknown at location %s" % (hex(atype), event.location)) return event