Example #1
0
    def write_data(self):
        header = ByteReader()
        data = ByteReader()
        header_size = (len(self.images) + len(self.sounds) + len(self.fonts) +
                       len(self.shaders)) * 4 + len(self.images) * 2

        # image preload
        self.use_count_offset = header.tell()
        for _ in xrange(len(self.images)):
            header.writeShort(0, True)

        for image in self.images:
            header.writeInt(data.tell() + header_size, True)
            data.write(image)

        for sound in self.sounds:
            header.writeInt(data.tell() + header_size, True)
            data.write(sound)

        for shader in self.shaders:
            header.writeInt(data.tell() + header_size, True)
            data.write(shader)

        self.fp.write(str(header))
        self.fp.write(str(data))

        self.image_count = len(self.images)
        self.sound_count = len(self.sounds)
        self.font_count = len(self.fonts)
        self.shader_count = len(self.shaders)

        self.sounds = self.images = self.fonts = self.shaders = None
Example #2
0
 def add_image(self, hot_x, hot_y, act_x, act_y, data):
     writer = ByteReader()
     writer.writeShort(hot_x)
     writer.writeShort(hot_y)
     writer.writeShort(act_x)
     writer.writeShort(act_y)
     writer.writeIntString(data)
     self.images.append(str(writer))
Example #3
0
    def write_data(self):
        header = ByteReader()
        data = ByteReader()
        header_size = ((len(self.images) + len(self.sounds) + len(self.fonts) +
                       len(self.shaders) + len(self.files)) * 4
                      + len(self.images) * 2 + 5 * 4)

        # image preload
        self.use_count_offset = header.tell()
        for _ in xrange(len(self.images)):
            header.writeShort(0, True)

        start = data.tell()
        for image in self.images:
            header.writeInt(data.tell() + header_size, True)
            data.write(image)
        image_size = data.tell() - start

        start = data.tell()
        for sound in self.sounds:
            header.writeInt(data.tell() + header_size, True)
            data.write(sound)
        sound_size = data.tell() - start

        start = data.tell()
        for font in self.fonts:
            header.writeInt(data.tell() + header_size, True)
            data.write(font)
        font_size = data.tell() - start

        start = data.tell()
        for shader in self.shaders:
            header.writeInt(data.tell() + header_size, True)
            data.write(shader)
        shader_size = data.tell() - start

        start = data.tell()
        for packfile in self.files:
            header.writeInt(data.tell() + header_size, True)
            data.write(packfile)
        packfile_size = data.tell() - start

        for size in (image_size, sound_size, font_size, shader_size,
                     packfile_size):
            header.writeInt(size, True)

        self.fp.write(str(header))
        self.fp.write(str(data))

        self.image_count = len(self.images)
        self.sound_count = len(self.sounds)
        self.font_count = len(self.fonts)
        self.shader_count = len(self.shaders)
        self.file_count = len(self.files)

        self.sounds = self.images = self.fonts = self.shaders = None
        self.files = None
Example #4
0
 def write_preload(self, images):
     self.fp.seek(self.use_count_offset)
     data = ByteReader()
     for handle in images:
         data.writeShort(handle, True)
     for handle in xrange(self.image_count):
         if handle in images:
             continue
         data.writeShort(handle, True)
     self.fp.write(str(data))
Example #5
0
 def write_preload(self, images):
     self.fp.seek(self.use_count_offset)
     data = ByteReader()
     for handle in images:
         data.writeShort(handle, True)
     for handle in xrange(self.image_count):
         if handle in images:
             continue
         data.writeShort(handle, True)
     self.fp.write(str(data))
Example #6
0
    def write(self, reader):
        newReader = ByteReader()
        newReader.writeShort(self.handle)
        newReader.writeInt(self.magicNumber)
        newReader.writeInt(self.versionLS)
        newReader.writeInt(self.versionMS)
        newReader.writeString('.'.join([self.name, self.extension]))
        newReader.writeString(self.subType)

        reader.writeShort(len(newReader) + 2, True)
        reader.writeReader(newReader)
    def write(self, reader):
        newReader = ByteReader()
        newReader.writeShort(self.handle)
        newReader.writeInt(self.magicNumber)
        newReader.writeInt(self.versionLS)
        newReader.writeInt(self.versionMS)
        newReader.writeString('.'.join([self.name, self.extension]))
        newReader.writeString(self.subType)

        reader.writeShort(len(newReader) + 2, True)
        reader.writeReader(newReader)
Example #8
0
 def write(self, reader):
     reader.writeIntString(self.name)
     reader.writeIntString(self.extension)
     reader.writeInt(self.identifier)
     newReader = ByteReader()
     if not self.extension:
         newReader.writeShort(self.player)
         newReader.writeShort(self.type)
         newReader.writeByte(self.movingAtStart)
         newReader.write('\x00' * 3)
         newReader.writeInt(self.directionAtStart)
     self.loader.write(newReader)
     reader.writeIntString(str(newReader))
Example #9
0
 def write(self, reader):
     reader.writeIntString(self.name)
     reader.writeIntString(self.extension)
     reader.writeInt(self.identifier)
     newReader = ByteReader()
     if not self.extension:
         newReader.writeShort(self.player)
         newReader.writeShort(self.type)
         newReader.writeByte(self.movingAtStart)
         newReader.write('\x00' * 3)
         newReader.writeInt(self.directionAtStart)
     self.loader.write(newReader)
     reader.writeIntString(str(newReader))
Example #10
0
 def write(self, reader):
     reader.writeShort(self.objectType)
     reader.writeShort(self.num)
     if self.objectType == 0 and self.num == 0:
         return
     dataReader = ByteReader()
     if (self.objectType in expression_system 
     and self.num in expression_system[self.objectType]):
         self.loader.write(dataReader)
     elif self.objectType >= 2 or self.objectType == -7:
         dataReader.writeShort(self.objectInfo, True)
         dataReader.writeShort(self.objectInfoList)
         if self.num in expression_extension:
             self.loader.write(dataReader)
     reader.writeShort(len(dataReader) + 6, True)
     reader.writeReader(dataReader)
Example #11
0
 def write(self, reader):
     reader.writeShort(self.objectType)
     reader.writeShort(self.num)
     if self.objectType == 0 and self.num == 0:
         return
     dataReader = ByteReader()
     if (self.objectType in expression_system
             and self.num in expression_system[self.objectType]):
         self.loader.write(dataReader)
     elif self.objectType >= 2 or self.objectType == -7:
         dataReader.writeShort(self.objectInfo, True)
         dataReader.writeShort(self.objectInfoList)
         if self.num in expression_extension:
             self.loader.write(dataReader)
     reader.writeShort(len(dataReader) + 6, True)
     reader.writeReader(dataReader)
Example #12
0
 def write(self, reader):
     newReader = ByteReader()
     newReader.writeShort(self.objectType)
     newReader.writeShort(self.num)
     newReader.writeShort(self.objectInfo, True)
     newReader.writeShort(self.objectInfoList)
     newReader.writeByte(self.flags.getFlags(), True)
     newReader.writeByte(self.otherFlags.getFlags(), True)
     newReader.writeByte(len(self.items), True)
     newReader.writeByte(self.defType)
     newReader.writeShort(self.identifier)
     
     for item in self.items:
         item.write(newReader)
     
     reader.writeShort(len(newReader) + 2, True)
     reader.writeReader(newReader)
Example #13
0
    def write(self, reader):
        newReader = ByteReader()
        newReader.writeShort(self.objectType)
        newReader.writeShort(self.num)
        newReader.writeShort(self.objectInfo, True)
        newReader.writeShort(self.objectInfoList)
        newReader.writeByte(self.flags.getFlags(), True)
        newReader.writeByte(self.otherFlags.getFlags(), True)
        newReader.writeByte(len(self.items), True)
        newReader.writeByte(self.defType)
        newReader.writeShort(self.identifier)

        for item in self.items:
            item.write(newReader)

        reader.writeShort(len(newReader) + 2, True)
        reader.writeReader(newReader)
Example #14
0
 def add_image(self, width, height, hot_x, hot_y, act_x, act_y, data):
     writer = ByteReader()
     writer.writeShort(width, True)
     writer.writeShort(height, True)
     writer.writeShort(hot_x)
     writer.writeShort(hot_y)
     writer.writeShort(act_x)
     writer.writeShort(act_y)
     writer.writeIntString(data)
     self.images.append(str(writer))
Example #15
0
    def write(self, reader):
        newReader = ByteReader()

        newReader.writeByte(len(self.conditions), True)
        newReader.writeByte(len(self.actions), True)
        newReader.writeShort(self.flags.getFlags(), True)
        newReader.writeShort(self.is_restricted)
        newReader.writeShort(self.restrictCpt)
        newReader.writeShort(self.identifier)
        newReader.writeShort(self.undo)

        for condition in self.conditions:
            condition.write(newReader)

        for action in self.actions:
            action.write(newReader)

        reader.writeShort((len(newReader) + 2) * -1)
        reader.writeReader(newReader)
Example #16
0
    def write_data(self):
        header = ByteReader()
        data = ByteReader()
        header_size = ((len(self.images) + len(self.sounds) + len(self.fonts) +
                        len(self.shaders) + len(self.files)) * 4 +
                       len(self.images) * 2)

        # image preload
        self.use_count_offset = header.tell()
        for _ in xrange(len(self.images)):
            header.writeShort(0, True)

        for image in self.images:
            header.writeInt(data.tell() + header_size, True)
            data.write(image)

        for sound in self.sounds:
            header.writeInt(data.tell() + header_size, True)
            data.write(sound)

        for font in self.fonts:
            header.writeInt(data.tell() + header_size, True)
            data.write(font)

        for shader in self.shaders:
            header.writeInt(data.tell() + header_size, True)
            data.write(shader)

        for packfile in self.files:
            header.writeInt(data.tell() + header_size, True)
            data.write(packfile)

        self.fp.write(str(header))
        self.fp.write(str(data))

        self.image_count = len(self.images)
        self.sound_count = len(self.sounds)
        self.font_count = len(self.fonts)
        self.shader_count = len(self.shaders)
        self.file_count = len(self.files)

        self.sounds = self.images = self.fonts = self.shaders = None
        self.files = None
Example #17
0
    def write(self, reader):
        newReader = ByteReader()
        
        newReader.writeByte(len(self.conditions), True)
        newReader.writeByte(len(self.actions), True)
        newReader.writeShort(self.flags.getFlags(), True)
        newReader.writeShort(self.restrict)
        newReader.writeShort(self.restrictCpt)
        newReader.writeShort(self.identifier)
        newReader.writeShort(self.undo)
        
        for condition in self.conditions:
            condition.write(newReader)

        for action in self.actions:
            action.write(newReader)
        
        reader.writeShort((len(newReader) + 2)*-1)
        reader.writeReader(newReader)
Example #18
0
 def get_wav(self):
     reader = ByteReader()
     reader.write('RIFF')
     reader.writeInt(len(self.data) - 44)
     reader.write('WAVEfmt ')
     reader.writeInt(16, True)
     reader.writeShort(self.format, True)
     reader.writeShort(self.channel_count, True)
     reader.writeInt(self.sample_rate, True)
     reader.writeInt(self.byte_rate, True)
     reader.writeShort(self.block_align, True)
     reader.writeShort(self.bits_per_sample, True)
     reader.write('data')
     reader.writeInt(self.chunk_size, True)
     reader.write(self.data)
     return reader
Example #19
0
 def write(self, reader):
     newReader = ByteReader()
     newReader.writeShort(self.code)
     self.loader.write(newReader)
     reader.writeShort(len(newReader) + 2, True)
     reader.writeReader(newReader)
Example #20
0
 def write(self, reader):
     newReader = ByteReader()
     newReader.writeShort(self.code)
     self.loader.write(newReader)
     reader.writeShort(len(newReader) + 2, True)
     reader.writeReader(newReader)