XXX: handle multiple MTXM chunks correctly (tileset obfuscation for example in BlitzX...
[perl/schtarr.git] / scmap
diff --git a/scmap b/scmap
index e5a2798665d04d132b23f200632b14902b88005b..f636b25742250bf6d5fd8c921cc9bff38eac451e 100755 (executable)
--- a/scmap
+++ b/scmap
@@ -70,7 +70,7 @@ if (defined $mapsep{$SHOWMAP}) {
 
        if ($SHOWMAP eq "ppm") {
                use Imager;
-               my $img = Imager->new(xsize => $map->width * 4, ysize => $map->width * 4);
+               my $img = Imager->new(xsize => $map->width * 4, ysize => $map->height * 4);
 
                use Data::StarCraft::Tileset;
                my $era = world($map);
@@ -89,11 +89,7 @@ if (defined $mapsep{$SHOWMAP}) {
 
                        # 512x512 ~ 7s
                        my $tile = $tileset->tile($_);
-                       $img->setscanline(
-                               x => $x*4, y => $y*4 + $_, pixels => pack('(CCCx)*',
-                                       map { @$_ } @{ $tile->{subcol} }[$_*4 .. $_*4 + 3]
-                               ),
-                       ) for 0..3;
+                       $img->paste(src => $tile->{sprite}, left => $x*4, top => $y*4);
 
                        # 4096x4096 ~ 75s
 #                      my $tile = $tileset->sprite($tileset->{map}->[$_]);