All pastes #492902 Raw Edit

Mine

public text v1 · immutable
·published 2007-05-17 14:17 UTC
rendered paste body
Procedure PreloadTiles(filename.s)
  LoadSprite(#TileImage,filename,#PB_Sprite_Memory)
  If IsSprite(#TileImage)=0
    MessageRequester("Error","Couldn't load tiles.")
    ProcedureReturn
  EndIf
  
  UseBuffer(#TileImage)
  Global Dim TileGraphics.l(SpriteWidth(#TileImage)/#SpriteSize,SpriteHeight(#TileImage)/#SpriteSize)
  
  Global TileImageHeight.l : TileImageHeight=SpriteHeight(#TileImage)
  Global TileImageWidth.l : TileImageWidth=SpriteWidth(#TileImage)
  
  For i = 0 To TileImageWidth/#SpriteSize
    For j = 0 To TileImageHeight/#SpriteSize
      
      CompilerIf #_MAP_EDITOR_=0
         TileGraphics(i,j)=CreateSprite(#PB_Any,#SpriteSize,#SpriteSize)
         UseBuffer(TileGraphics(i,j))
         ClipSprite(#TileImage,i*#SpriteSize,j*#SpriteSize,#SpriteSize,#SpriteSize)
         DisplaySprite(#TileImage,0,0)
      CompilerElse  
         TileGraphics(i,j)=GrabSprite(#PB_Any,i*#SpriteSize,j*#SpriteSize,#SpriteSize,#SpriteSize)
      CompilerEndIf
            
    Next
  Next
  FreeSprite(#TileImage)
  UseBuffer(-1)
EndProcedure