… | |
… | |
446 | ]; |
446 | ]; |
447 | |
447 | |
448 | for my $a (@$as) { |
448 | for my $a (@$as) { |
449 | next if $a->{_virtual}; |
449 | next if $a->{_virtual}; |
450 | |
450 | |
451 | my $o = $ARCH{$a->{_name}} |
451 | my $o = $ARCH{$a->{_name}} || $ARCH{empty_archetype} |
452 | or (warn "archetype $a->{_name} is unknown at ($x|$y)\n", next); |
452 | or (warn "archetype $a->{_name} is unknown at ($x|$y)\n"), next; |
453 | |
453 | |
454 | my $face = $FACE{$a->{face} || $o->{face} || "blank.111"} |
454 | my $face = $FACE{$a->{face} || $o->{face} || "blank.111"} |
455 | or (warn "no gfx found for arch '$a->{_name}' at ($x|$y)\n"), next; |
455 | or (warn "no gfx found for arch '$a->{_name}' at ($x|$y)\n"), next; |
456 | |
456 | |
457 | $a->{_face} = $face->{idx}; |
457 | $a->{_face} = $face->{idx}; |
… | |
… | |
478 | |
478 | |
479 | } elsif ($o->{more}) { |
479 | } elsif ($o->{more}) { |
480 | # linked faces, slowest and most annoying |
480 | # linked faces, slowest and most annoying |
481 | |
481 | |
482 | while ($o = $o->{more}) { |
482 | while ($o = $o->{more}) { |
483 | my $face = $FACE{$o->{face}} |
483 | my $face = $FACE{$o->{face} || "blank.111"} |
484 | or (warn "no gfx found for arch '$a->{_name}' at ($x*|$y*)\n"), next; |
484 | or (warn "no gfx found for arch '$a->{_name}' at ($x*|$y*)\n"), next; |
485 | |
485 | |
486 | $x1 = min $x1, $x + $o->{x}; $y1 = min $y1, $y + $o->{y}; |
486 | $x1 = min $x1, $x + $o->{x}; $y1 = min $y1, $y + $o->{y}; |
487 | $x2 = max $x2, $x + $o->{x}; $y2 = max $y2, $y + $o->{y}; |
487 | $x2 = max $x2, $x + $o->{x}; $y2 = max $y2, $y + $o->{y}; |
488 | |
488 | |