File: tilemap

package info (click to toggle)
libtemplate-perl 2.14-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, sarge
  • size: 5,496 kB
  • ctags: 667
  • sloc: perl: 15,349; makefile: 62; xml: 7; sh: 5
file content (40 lines) | stat: -rw-r--r-- 1,439 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[%  PROCESS ps/mm    UNLESS global.ps.loaded.mm;
    PROCESS ps/clip  UNLESS global.ps.loaded.clip;
    PROCESS ps/tiles UNLESS global.ps.loaded.tiles;
    global.ps.loaded.tilemap = 1;
-%]
/tilemap {
    gsave
    /tilemap-mapx clip-xsize 15 div def
    /tilemap-mapy clip-ysize 15 div def
    /tilemap-gapx tilemap-mapx 5 div def
    /tilemap-gapy tilemap-gapx def
    /tilemap-xsize tilemap-mapx tilemap-gapx add def
    /tilemap-ysize tilemap-mapy tilemap-gapy add def
    /tilemap-xorg clip-blx tilemap-gapx add def
    /tilemap-yorg clip-try tilemap-ysize tiles-ny mul sub def
    % foreach tile in x
    0 1 tiles-nx 1 sub {
        /tilemap-tx exch def
        % foreach tile in y
        0 1 tiles-ny 1 sub {
            /tilemap-ty exch def
            % fill tile if current page
            tilemap-tx tilepage-x eq tilemap-ty tilepage-y eq and {
                tilemap-xorg tilemap-tx tilemap-xsize mul add
                tilemap-yorg tilemap-ty tilemap-ysize mul add
                tilemap-mapx tilemap-mapy .9 setgray rectfill
                0.2 setgray
                0.5 setlinewidth
            } {
                0.5 setgray
                0.5 setlinewidth
            } ifelse
            % outline tile
            tilemap-xorg tilemap-tx tilemap-xsize mul add
            tilemap-yorg tilemap-ty tilemap-ysize mul add
            tilemap-mapx tilemap-mapy rectstroke
        } for
    } for
    grestore
} def