Parse::Binary::Nested: simple non-OO unpackf
[wormy.git] / parse-wormedit
index 585c03a659d9c94343facb91e0335afd9e1fab8b..ed64118e23ef31f7f7f8fc8cce90c9b6427c7b9a 100755 (executable)
@@ -19,7 +19,7 @@ package Shiar_Parse::WormEdit;
 use strict;
 use warnings;
 
 use strict;
 use warnings;
 
-use Parse::Binary::Nested;
+use Parse::Binary::Nested qw(unpackf);
 
 our %MAGICID = (
        "WormEdit053\000LVL" => 53,
 
 our %MAGICID = (
        "WormEdit053\000LVL" => 53,
@@ -153,7 +153,7 @@ sub read {
 
        # convert to an easily accessible hash
        push @FORMAT, -trail => 'a*';
 
        # convert to an easily accessible hash
        push @FORMAT, -trail => 'a*';
-       my $data = Parse::Binary::Nested->new(\@FORMAT)->unpackf($input);
+       my $data = unpackf(\@FORMAT, $input);
        warn "Trailing data left unparsed\n" if length delete $data->{-trail};
        $data->{format} = 'WormEdit';
        return $data;
        warn "Trailing data left unparsed\n" if length delete $data->{-trail};
        $data->{format} = 'WormEdit';
        return $data;
@@ -167,7 +167,7 @@ use warnings;
 
 use List::Util qw(sum min max);
 use Data::Dumper;
 
 use List::Util qw(sum min max);
 use Data::Dumper;
-use Parse::Binary::Nested;
+use Parse::Binary::Nested qw(unpackf);
 
 sub read {
        my ($self, $input) = @_;
 
 sub read {
        my ($self, $input) = @_;
@@ -293,7 +293,7 @@ sub read {
                }
        }
 
                }
        }
 
-       my $data = Parse::Binary::Nested->new(\@FORMAT)->unpackf($input);
+       my $data = unpackf(\@FORMAT, $input);
        my $offset = 0;
        $offsetbase += 1 + @{ $data->{sprite} } if $data->{sprite};
        $data->{moderef}->{offset}->{single} == $offsetbase
        my $offset = 0;
        $offsetbase += 1 + @{ $data->{sprite} } if $data->{sprite};
        $data->{moderef}->{offset}->{single} == $offsetbase