Esempio n. 1
0
    def read(self, filecontents, replay):
        replay.messages = list()
        bytes, time = ByteStream(filecontents), 0

        while (bytes.remaining != 0):
            time += bytes.get_timestamp()
            player_id = bytes.get_big_8() & 0x0F
            flags = bytes.get_big_8()

            if flags & 0xF0 == 0x80:

                #ping or something?
                if flags & 0x0F == 3:
                    bytes.skip(8)

                #some sort of header code
                elif flags & 0x0F == 0:
                    bytes.skip(4)
                    replay.other_people.add(player_id)

            elif flags & 0x80 == 0:
                target = flags & 0x03
                length = bytes.get_big_8()

                if flags & 0x08:
                    length += 64

                if flags & 0x10:
                    length += 128

                text = bytes.get_string(length)
                replay.messages.append(Message(time, player_id, target, text))
Esempio n. 2
0
    def read(self, filecontents, replay):
        replay.messages = list()
        bytes, time = ByteStream(filecontents), 0

        while(bytes.remaining!=0):
            time += bytes.get_timestamp()
            player_id = bytes.get_big_8() & 0x0F
            flags = bytes.get_big_8()
            
            if flags & 0xF0 == 0x80:
            
                #ping or something?
                if flags & 0x0F == 3:
                    bytes.skip(8)

                #some sort of header code
                elif flags & 0x0F == 0:
                    bytes.skip(4)
                    replay.other_people.add(player_id)
            
            elif flags & 0x80 == 0:
                target = flags & 0x03
                length = bytes.get_big_8()
                
                if flags & 0x08:
                    length += 64
                    
                if flags & 0x10:
                    length += 128
                    
                text = bytes.get_string(length)
                replay.messages.append(Message(time, player_id, target, text))
Esempio n. 3
0
    def read(self, filecontents, replay):
        bytes = ByteStream(filecontents)
        num_people = bytes.get_big_8()
        for p in range(1, num_people + 1):
            name = bytes.get_string(bytes.get_big_8())

            if len(name) > 0:
                replay.player_names.append(name)

            bytes.skip(5)  #Always all zeros

        bytes.skip(5)  # Unknown
        bytes.get_string(4)  # Always Dflt
        bytes.skip(15)  #Unknown
        id_length = bytes.get_big_8()
        sc_account_id = bytes.get_string(id_length)
        bytes.skip(684)  # Fixed Length data for unknown purpose
        while (bytes.get_string(4).lower() == 's2ma'):
            bytes.skip(2)
            replay.realm = bytes.get_string(2).lower()
            unknown_map_hash = bytes.get_bytes(32)
Esempio n. 4
0
 def read(self, filecontents, replay):
     bytes = ByteStream(filecontents)
     num_people = bytes.get_big_8()
     for p in range(1, num_people+1):
         name = bytes.get_string(bytes.get_big_8())
         
         if len(name) > 0:
             replay.player_names.append(name)
             
         bytes.skip(5) #Always all zeros
     
     bytes.skip(5) # Unknown
     bytes.get_string(4) # Always Dflt
     bytes.skip(15) #Unknown
     id_length = bytes.get_big_8()
     sc_account_id = bytes.get_string(id_length)
     bytes.skip(684) # Fixed Length data for unknown purpose
     while( bytes.get_string(4).lower() == 's2ma' ):
         bytes.skip(2)
         replay.realm = bytes.get_string(2).lower()
         unknown_map_hash = bytes.get_bytes(32)