… | |
… | |
463 | next if $a->{_virtual}; |
463 | next if $a->{_virtual}; |
464 | |
464 | |
465 | my $o = $ARCH{$a->{_name}} || $ARCH{empty_archetype} |
465 | my $o = $ARCH{$a->{_name}} || $ARCH{empty_archetype} |
466 | or (warn "archetype $a->{_name} is unknown at ($x|$y)\n"), next; |
466 | or (warn "archetype $a->{_name} is unknown at ($x|$y)\n"), next; |
467 | |
467 | |
468 | my $face = $FACE{$a->{face} || $o->{face} || "blank.111"} |
468 | my $face = $FACE{$a->{face} || $o->{face} || "blank.111"}; |
|
|
469 | unless ($face) { |
|
|
470 | $face = $FACE{"blank.x11"} |
469 | or (warn "no gfx found for arch '$a->{_name}' at ($x|$y)\n"), next; |
471 | or (warn "no gfx found for arch '$a->{_name}' at ($x|$y)\n"), next; |
|
|
472 | } |
470 | |
473 | |
471 | $a->{_face} = $face->{idx}; |
474 | $a->{_face} = $face->{idx}; |
472 | |
475 | |
473 | if ($face->{w} > 1 || $face->{h} > 1) { |
476 | if ($face->{w} > 1 || $face->{h} > 1) { |
474 | # bigfaces |
477 | # bigfaces |
… | |
… | |
492 | |
495 | |
493 | } elsif ($o->{more}) { |
496 | } elsif ($o->{more}) { |
494 | # linked faces, slowest and most annoying |
497 | # linked faces, slowest and most annoying |
495 | |
498 | |
496 | while ($o = $o->{more}) { |
499 | while ($o = $o->{more}) { |
497 | my $face = $FACE{$o->{face} || "blank.111"} |
500 | my $face = $FACE{$o->{face} || "blank.111"}; |
|
|
501 | unless ($face) { |
|
|
502 | $face = $FACE{"blank.x11"} |
498 | or (warn "no gfx found for arch '$a->{_name}' at ($x*|$y*)\n"), next; |
503 | or (warn "no gfx found for arch '$a->{_name}' at ($x*|$y*)\n"), next; |
|
|
504 | } |
499 | |
505 | |
500 | $x1 = min $x1, $x + $o->{x}; $y1 = min $y1, $y + $o->{y}; |
506 | $x1 = min $x1, $x + $o->{x}; $y1 = min $y1, $y + $o->{y}; |
501 | $x2 = max $x2, $x + $o->{x}; $y2 = max $y2, $y + $o->{y}; |
507 | $x2 = max $x2, $x + $o->{x}; $y2 = max $y2, $y + $o->{y}; |
502 | |
508 | |
503 | push @{ $a->{_more} }, [$x + $o->{x}, $y + $o->{y}]; |
509 | push @{ $a->{_more} }, [$x + $o->{x}, $y + $o->{y}]; |