Catch resulting errors after empty input such as with wormy003.lvl
missing singleplayer levels.
use Imager;
use List::Util qw(sum max);
use Imager;
use List::Util qw(sum max);
our %COL = (
bg => Imager::Color->new(255, 255, 255),
our %COL = (
bg => Imager::Color->new(255, 255, 255),
sub level {
my ($self, $level) = @_;
sub level {
my ($self, $level) = @_;
my $field = Imager->new(xsize => $level->{width}, ysize => $level->{height});
$field->box(filled => 1, color => $COL{bg});
my $field = Imager->new(xsize => $level->{width}, ysize => $level->{height});
$field->box(filled => 1, color => $COL{bg});
# default to all singleplayer levels
@request = 0 .. $data->{levelcount}->{single} - 1;
}
# default to all singleplayer levels
@request = 0 .. $data->{levelcount}->{single} - 1;
}
+ @request or die "no levels found or specified\n";
my $img = Games::Wormy::Render->composite(
map { $data->{levels}->[$_] } @request
my $img = Games::Wormy::Render->composite(
map { $data->{levels}->[$_] } @request
+ ) or die "empty result for levels\n";
$img->write(
$opt{output} ? (file => $opt{output}) : (fh => \*STDOUT, type => 'pnm')
) or die $img->errstr;
$img->write(
$opt{output} ? (file => $opt{output}) : (fh => \*STDOUT, type => 'pnm')
) or die $img->errstr;