Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function SpriteReader:getSprites(id)
- -- da seek no offset de id
- self:seek(((id-1)*4) + 7)
- -- pega endereço da sprite
- local spriteAddress = self:getUint32()
- -- da seek no endereço da sprite
- self:seek(spriteAddress)
- -- cria um espaço de 32*32*4 pra guardar
- local size, pixels = 1024, {}
- -- le 3 bytes inuteis
- self:getInt8()
- self:getInt8()
- self:getInt8()
- -- dai eu te digo o tamanho total do que vou te dizer, que são 2 bytes, e o valor é 500
- local pixelDataSize = self:getUint16()
- -- ai vc entra num loop
- int writePos = 0
- int read = 0
- while (read < pixelDataSize) do
- transparentPixels = self:getUint16()
- coloredPixels = self:getUint16()
- for(i = 0, transparentPixels)do
- pixels[writePos + 0] = 0x00
- pixels[writePos + 1] = 0x00
- pixels[writePos + 2] = 0x00
- writePos = writePos + 3
- end
- for(i = 0, coloredPixels)do
- pixels[writePos + 0] = self:getInt8()
- pixels[writePos + 1] = self:getInt8()
- pixels[writePos + 2] = self:getInt8()
- writePos = writePos + 3
- end
- read = read + 4 + (3 * coloredPixels)
- end
- while(writePos < size)
- pixels[writePos + 0] = 0x00
- pixels[writePos + 1] = 0x00
- pixels[writePos + 2] = 0x00
- writePos = writePos + 4
- end
- return sprites
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement