Exemple #1
0
 def __init__(self, typeId, size, data):
     Block.__init__(self, typeId, size, data)
     
     self.magic = str(data[0:4])
     self.gameId = read32(data, 4)
     
     versionData = read16(data, 8)
     self.versionMajor = versionData >> 12          # First 4 bits
     self.versionMinor = (versionData >> 5) & 0x7F  # Middle 7 bits
     self.versionIncrement = versionData & 0x1F     # Last 5 bits
     
     self.turn = read16(data, 10)
     self.year = 2400 + self.turn
     
     playerData = read16(data, 12)
     self.salt = playerData >> 5           # First 11 bits
     self.playerIndex = playerData & 0x1F  # Last 5 bits
     
     flags = data[15]
     
     self.turnSubmitted = (flags & (1 << 0)) == 1
     self.hostUsing =     (flags & (1 << 1)) == 1
     self.multipleTurns = (flags & (1 << 2)) == 1
     self.gameOver =      (flags & (1 << 3)) == 1
     self.shareware =     (flags & (1 << 4)) == 1
     
     pass
Exemple #2
0
    def __init__(self, typeId, size, data):
        Block.__init__(self, typeId, size, data)

        self.magic = str(data[0:4])
        self.gameId = read32(data, 4)

        versionData = read16(data, 8)
        self.versionMajor = versionData >> 12  # First 4 bits
        self.versionMinor = (versionData >> 5) & 0x7F  # Middle 7 bits
        self.versionIncrement = versionData & 0x1F  # Last 5 bits

        self.turn = read16(data, 10)
        self.year = 2400 + self.turn

        playerData = read16(data, 12)
        self.salt = playerData >> 5  # First 11 bits
        self.playerIndex = playerData & 0x1F  # Last 5 bits

        flags = data[15]

        self.turnSubmitted = (flags & (1 << 0)) == 1
        self.hostUsing = (flags & (1 << 1)) == 1
        self.multipleTurns = (flags & (1 << 2)) == 1
        self.gameOver = (flags & (1 << 3)) == 1
        self.shareware = (flags & (1 << 4)) == 1

        pass
Exemple #3
0
    def __init__(self, typeId, size, data):
        Block.__init__(self, typeId, size, data)
        
        # TODO bytes 0-3 
        
        self.universeSize = read16(data, 4) # Uses all 16 bits?
        self.density = read16(data, 6)      # Uses all 16 bits?
        self.playerCount = read16(data, 8)  # Uses all 16 bits?
        self.planetCount = read16(data, 10)
        self.startingDistance = read32(data, 12)

        # 16 bits?
        self.gameSettings = read16(data, 16)  
        """
        Determined bits of game settings:
        
        Max Minerals       - 0000000000000001
        Slow tech advances - 0000000000000010
        Accel. BBS play    - 0000000000100000
        No random events   - 0000000010000000
        Computer Alliances - 0000000000010000
        Public scores      - 0000000001000000
        Galaxy Clumping    - 0000000100000000
        Single player (?)  - 0000000000000100
        
        What is bit 4?       0000000000001000
        """
                
        # TODO bytes 18-31
        
        self.gameName = str(data[32:64])
        
        # This is a list of planets with their nameId, x, and y coordinates
        self.planets = []
        
        pass