--- deliantra/gde/GCE/Util.pm 2006/04/02 09:54:18 1.14 +++ deliantra/gde/GCE/Util.pm 2006/08/14 18:52:48 1.20 @@ -20,13 +20,21 @@ use File::Spec::Functions; use Cwd 'abs_path'; -our @EXPORT = qw(insert_arch_stack_layer replace_arch_stack_layer new_arch_pb fill_pb_from_arch arch_is_floor stack_find_floor stack_find_wall stack_find arch_is_wall arch_is_monster add_table_widget quick_msg def arch_is_exit map2abs exit_paths pseudohtml2txt); +our @EXPORT = qw(insert_arch_stack_layer replace_arch_stack_layer new_arch_pb + fill_pb_from_arch arch_is_floor stack_find_floor stack_find_wall + stack_find arch_is_wall arch_is_monster add_table_widget quick_msg + def arch_is_exit map2abs exit_paths pseudohtml2txt arch_is_connector); sub pseudohtml2txt { my ($html) = @_; $html =~ s//\n/gsi; $html =~ s/(.*?)<\/b>/_\1_/gsi; + $html =~ s/
  • /\n* /gi; + $html =~ s/<\/?\s*li>//gi; + $html =~ s/<\/?\s*ul>//gi; + $html =~ s/>/>/g; + $html =~ s/</file_name_is_absolute($dest)) { $dir = catdir ($::CFG->{MAPDIR}, $dest); @@ -149,8 +158,33 @@ sub arch_is_floor { my ($a) = @_; my $ar = Crossfire::arch_attr $a; - return (substr $ar->{name}, 0, 5) eq 'Floor'; -#return $Crossfire::ARCH{$a->{_name}}->{is_floor}; + return ( + (substr $ar->{name}, 0, 5) eq 'Floor' + or (substr $ar->{name}, 0, 10) eq 'Shop Floor' + ) +} + +sub arch_is_connector { + my ($a) = @_; + my $ar = Crossfire::arch_attr $a; + my $has_connect_field = 0; + + TOP: for (@{$ar->{section}}) { + my $name = shift @$_; + my @r = @$_; + if ($name eq 'general') { + for (@r) { + my ($k, $s) = ($_->[0], $_->[1]); + if ($k eq 'connected' && $s->{name} eq 'connection') { + $has_connect_field = 1; + last TOP; + } + } + last TOP; + } + } + + return $has_connect_field; } sub arch_is_wall {