… | |
… | |
263 | my ($a) = @_; |
263 | my ($a) = @_; |
264 | |
264 | |
265 | my $o = $ARCH{$a->{_name}} |
265 | my $o = $ARCH{$a->{_name}} |
266 | or return; |
266 | or return; |
267 | |
267 | |
268 | my $face = $FACE{$a->{face} || $o->{face}} |
268 | my $face = $FACE{$a->{face} || $o->{face} || "blank.111"} |
269 | or (warn "no face data found for arch '$a->{_name}'"), return; |
269 | or (warn "no face data found for arch '$a->{_name}'"), return; |
270 | |
270 | |
271 | if ($face->{w} > 1 || $face->{h} > 1) { |
271 | if ($face->{w} > 1 || $face->{h} > 1) { |
272 | # bigface |
272 | # bigface |
273 | return (0, 0, $face->{w} - 1, $face->{h} - 1); |
273 | return (0, 0, $face->{w} - 1, $face->{h} - 1); |
… | |
… | |
347 | |
347 | |
348 | for (@{$type->{ignore} || []}) { |
348 | for (@{$type->{ignore} || []}) { |
349 | $ignore{$_}++ for ref $_ ? @$_ : $_; |
349 | $ignore{$_}++ for ref $_ ? @$_ : $_; |
350 | } |
350 | } |
351 | |
351 | |
352 | for ([general => ($type->{attr} || {})], @{$type->{section} || []}) { |
352 | for ([general => ($type->{attr} || [])], @{$type->{section} || []}) { |
353 | my ($name, $attr) = @$_; |
353 | my ($name, $attr) = @$_; |
354 | push @section_order, $name; |
354 | push @section_order, $name; |
355 | for (@{$attr || []}) { |
355 | for (@$attr) { |
356 | my ($k, $v) = @$_; |
356 | my ($k, $v) = @$_; |
357 | push @attr_order, $k; |
357 | push @attr_order, $k; |
358 | $section{$name}{$k} ||= $v; |
358 | $section{$name}{$k} ||= $v; |
359 | } |
359 | } |
360 | } |
360 | } |