Since I couldn't isolate any area of the code here's the whole thing.
and this is the pic

and the data file
http://projects.rpgi.net/tact/files/Testie.dat
Strict; Const TILE_WIDTH=96; Const TILE_LENGTH=60; Const TILE_HEIGHT=12; Const TILE_TOP=48; Const SCREEN_WIDTH=800; Const SCREEN_HEIGHT=600; Graphics SCREEN_WIDTH,SCREEN_HEIGHT,32,60 SetMaskColor 255,0,255 SetBlend MASKBLEND HideMouse() Type Tile Field graphic Field passable:Int Field reachable:Int Field targetable:Int Field animated:Int Field event:Int Field height:Int Method AnimateTile() End Method End Type; Type BattleMap Field name:String Field width:Int Field length:Int Field height:Int Field slideX:Int Field slideY:Int Field Map:Tile[,] Function Create:BattleMap(area:String) Local b:BattleMap=New BattleMap b.name:String = area Local inFile=ReadStream("Maps/"+b.name+".dat") b.width=Readint(inFile) b.length=Readint(inFile) b.height=Readint(inFile) Local numTiles=Readint(inFile) Local allTiles=LoadAnimImage("Maps/"+b.name+"Tiles.png",TILE_WIDTH,TILE_LENGTH,0,numTiles,MASKEDIMAGE|DYNAMICIMAGE) b.Map=New Tile[b.width, b.length] For Local xx:Int = 0 To b.width-1 For Local yy:Int = 0 To b.length-1 b.Map[xx,yy]=New Tile b.Map[xx,yy].height=Readint(inFile) If b.Map[xx,yy].height>0 Then b.Map[xx,yy].graphic=CreateImage(TILE_WIDTH,(TILE_TOP+(TILE_HEIGHT*b.Map[xx,yy].height)),1,MASKEDIMAGE); SetColor(255,0,255) For Local j = 0 To ImageHeight(b.Map[xx,yy].graphic) DrawLine 0,j,TILE_WIDTH,j Next For Local i:Int = b.Map[xx,yy].height-1 To 0 Step -1 DrawImage allTiles,0,(i*TILE_HEIGHT),Readint(inFile) Next GrabImage b.Map[xx,yy].graphic,0,0 End If SetColor 255,255,255 Next Next Return b End Function Method Draw() SetClsColor 50,50,200 Cls For Local xx:Int = 0 To width-1 For Local yy:Int = 0 To length-1 If Map[xx,yy].height>0 Then Local screenx=(SCREEN_WIDTH/2)-(TILE_WIDTH/2)+((TILE_WIDTH/2)*xx)-((TILE_WIDTH/2)*yy)+slideX Local screeny=(yy*(TILE_TOP/2))+(xx*(TILE_TOP/2))+((height-Map[xx,yy].height)*TILE_HEIGHT)+slideY DrawImage Map[xx,yy].graphic,screenx,screeny EndIf Next Next End Method End Type Global timer:Int =MilliSecs()+1000 Global ticks:Int=0 Global secs:Int=0 Global a:BattleMap = BattleMap.Create("Testie") Repeat a.Draw() DrawText "FPS: "+secs,0,SCREEN_HEIGHT-20 If timer<=MilliSecs() Then timer=MilliSecs()+1000 secs=ticks ticks=0 Else ticks=ticks+1 End If FlushMem() Flip Until KeyHit(KEY_ESCAPE)
and this is the pic

and the data file
http://projects.rpgi.net/tact/files/Testie.dat