From 60bddabfdddae797faddb681681fafcd4c91a323 Mon Sep 17 00:00:00 2001 From: Mischa Poslawsky Date: Mon, 26 Oct 2020 20:42:25 +0100 Subject: [PATCH 1/1] parse-wormedit: warn about missing level data for render Catch resulting errors after empty input such as with wormy003.lvl missing singleplayer levels. --- lib/Games/Wormy/Render.pm | 3 ++- parse-wormedit | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/Games/Wormy/Render.pm b/lib/Games/Wormy/Render.pm index 5a86452..2c83536 100644 --- a/lib/Games/Wormy/Render.pm +++ b/lib/Games/Wormy/Render.pm @@ -8,7 +8,7 @@ use experimental 'switch'; use Imager; use List::Util qw(sum max); -our $VERSION = '1.00'; +our $VERSION = '1.01'; our %COL = ( bg => Imager::Color->new(255, 255, 255), @@ -24,6 +24,7 @@ our %COL = ( sub level { my ($self, $level) = @_; + $level or return; my $field = Imager->new(xsize => $level->{width}, ysize => $level->{height}); $field->box(filled => 1, color => $COL{bg}); diff --git a/parse-wormedit b/parse-wormedit index 0c94994..ffd68ef 100755 --- a/parse-wormedit +++ b/parse-wormedit @@ -77,10 +77,11 @@ if (defined $opt{render}) { # 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 - ); + ) or die "empty result for levels\n"; $img->write( $opt{output} ? (file => $opt{output}) : (fh => \*STDOUT, type => 'pnm') ) or die $img->errstr; -- 2.30.0