int Map::DrawOnScreen(Coordinates PlayerLoc ) { //ApplyImage(0 ,0 ,Tiles[MapData[ MapSizeX*MapSizeY ] -'0'] ,Screen ); int X = 0; int Y = 0; while(X < PlayerLoc.X+ScreenX ) { Y = 0; while(Y < PlayerLoc.Y+ScreenY ) { ApplyImage ( X*TileSizeX +OffsetX ,Y*TileSizeY +OffsetY, Tiles[ MapData[ (PlayerLoc.Y - (ScreenY+1) + Y)*MapSizeX + (PlayerLoc.X - (ScreenX+1) + X) ]-'0' ], Screen ); Y++; } X++; } return 0; }