--- deliantra/Deliantra/Deliantra.pm 2006/02/22 22:36:45 1.17 +++ deliantra/Deliantra/Deliantra.pm 2006/02/22 22:41:22 1.18 @@ -293,16 +293,29 @@ require Crossfire::Data; - my %attr; + my $attr; if ($arch->{type} > 0) { - %attr = %{ $Crossfire::Data::ATTR{$arch->{type}+0} || {} }; + $attr = $Crossfire::Data::ATTR{$arch->{type}+0}; } else { - die; + $attr = $Crossfire::Data::TYPE{Misc}; + + type: + for (@Crossfire::Data::ATTR0) { + my $req = $_->{required} + or die "internal error: ATTR0 without 'required'"; + + while (my ($k, $v) = each %$req) { + next type + unless $arch->{$k} == $v; + } + + $attr = $_; + } } use PApp::Util; - warn PApp::Util::dumpval \%attr; + warn PApp::Util::dumpval $attr; } sub arch_edit_sections {