Advertisement
dalvorsn

Untitled

May 13th, 2012
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.36 KB | None | 0 0
  1. function SpriteReader:getSprites(id)
  2.     -- da seek no offset de id
  3.     self:seek(((id-1)*4) + 7)
  4.    
  5.     -- pega endereço da sprite
  6.     local spriteAddress = self:getUint32()
  7.    
  8.     -- da seek no endereço da sprite
  9.     self:seek(spriteAddress)
  10.      
  11.     -- cria um espaço de 32*32*4 pra guardar
  12.     local size, pixels = 1024, {}
  13.    
  14.     --  le 3 bytes inuteis
  15.     self:getInt8()
  16.     self:getInt8()
  17.     self:getInt8()
  18.    
  19.     -- dai eu te digo o tamanho total do que vou te dizer, que são 2 bytes, e o valor é 500
  20.     local pixelDataSize = self:getUint16()
  21.    
  22.     -- ai vc entra num loop
  23.     int writePos = 0
  24.     int read = 0
  25.     while (read < pixelDataSize) do
  26.         transparentPixels = self:getUint16()
  27.         coloredPixels = self:getUint16()
  28.        
  29.         for(i = 0, transparentPixels)do
  30.             pixels[writePos + 0] = 0x00
  31.             pixels[writePos + 1] = 0x00
  32.             pixels[writePos + 2] = 0x00
  33.             writePos = writePos + 3
  34.         end
  35.        
  36.         for(i = 0, coloredPixels)do
  37.             pixels[writePos + 0] = self:getInt8()
  38.             pixels[writePos + 1] = self:getInt8()
  39.             pixels[writePos + 2] = self:getInt8()
  40.             writePos = writePos + 3
  41.         end
  42.         read = read + 4 + (3 * coloredPixels)
  43.     end
  44.    
  45.     while(writePos < size)
  46.         pixels[writePos + 0] = 0x00
  47.         pixels[writePos + 1] = 0x00
  48.         pixels[writePos + 2] = 0x00
  49.         writePos = writePos + 4
  50.     end
  51.    
  52.     return sprites
  53. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement