home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #7 / amigamamagazinepolishissue1998.iso / rozrywka / rpg / amigamud / src / tiles / tiles.m < prev    next >
Text File  |  1997-06-21  |  1KB  |  51 lines

  1. private t_tiles CreateTable()$
  2. use t_tiles
  3.  
  4. define t_tiles TILE_WIDTH 32$
  5. define t_tiles TILE_HEIGHT 20$
  6.  
  7. define t_tiles TILES_WIDTH 5$
  8. define t_tiles TILES_HEIGHT 5$
  9.  
  10. source AmigaMUD:Src/Tiles/town.tile
  11. source AmigaMUD:Src/Tiles/trees.tile
  12. source AmigaMUD:Src/Tiles/river.tile
  13.  
  14. GDefineTile(nil, 1, TILE_WIDTH, TILE_HEIGHT, makeTownTile())$
  15. GDefineTile(nil, 2, TILE_WIDTH, TILE_HEIGHT, makeTreesTile())$
  16. GDefineTile(nil, 3, TILE_WIDTH, TILE_HEIGHT, makeRiverTile())$
  17.  
  18. define t_tiles proc makeTerrain()list int:
  19.     list int terrain;
  20.     int row, col;
  21.  
  22.     terrain := CreateIntArray(TILES_WIDTH * TILES_HEIGHT);
  23.     for row from 0 upto TILES_HEIGHT - 1 do
  24.     terrain[row * TILES_WIDTH] := 3;
  25.     for col from 1 upto TILES_WIDTH - 1 do
  26.         terrain[row * TILES_WIDTH + col] := 2;
  27.     od;
  28.     od;
  29.     terrain[2] := 1;
  30.     terrain
  31. corp;
  32.  
  33. define t_tiles TileThing CreateThing(nil)$
  34. define t_tiles TileProp CreateIntListProp()$
  35. TileThing@TileProp := makeTerrain()$
  36.  
  37. define t_tiles proc drawTiles()void:
  38.     list int terrain;
  39.     int row, col;
  40.  
  41.     terrain := TileThing@TileProp;
  42.     GAMovePixels(nil, 0, 0);
  43.     for row from 0 upto TILES_HEIGHT - 1 do
  44.     for col from 0 upto TILES_WIDTH - 1 do
  45.         GDisplayTile(nil, terrain[row * TILES_WIDTH + col]);
  46.         GRMovePixels(nil, TILE_WIDTH, 0);
  47.     od;
  48.     GRMovePixels(nil, - TILE_WIDTH * TILES_WIDTH, TILE_HEIGHT);
  49.     od;
  50. corp;
  51.