- push @{ $level->{objects} }, { %$_, type => 2 } for map { $level->{$_} ? @{ $level->{$_} } : () } qw(objectlines);
- push @{ $level->{objects} }, { %$_, type => 3 } for map { $level->{$_} ? @{ $level->{$_} } : () } qw(objectboxes);
- $size += 1 + 4 * scalar @{ $level->{objects} };
- }
- else {
- while (my $object = ord substr($data->{leveldata}, $offset+$size, 1)) {
- push @{ $level->{objects} }, Parse::Binary::Nested->new([@OBJECTFORM])->unpackf(
- substr $data->{leveldata}, $offset+$size, 5
- );
- $size += 5;
- }
+ ref $_ eq 'ARRAY' and push @{ $level->{objects} }, @$_
+ for map { delete $level->{"objects$_"} } 2, 3;