… | |
… | |
197 | |
197 | |
198 | my $append; $append = sub { |
198 | my $append; $append = sub { |
199 | my %a = %{$_[0]}; |
199 | my %a = %{$_[0]}; |
200 | |
200 | |
201 | $str .= "arch " . (delete $a{_name}) . "\n"; |
201 | $str .= "arch " . (delete $a{_name}) . "\n"; |
202 | # should normalize order, no alphabetic, but "better" |
|
|
203 | |
202 | |
204 | if (my $inv = delete $a{arch}) { |
203 | my $inv = delete $a{arch}; |
205 | $append->($_) for @$inv; |
|
|
206 | } |
|
|
207 | |
204 | |
|
|
205 | # put inventory last |
208 | for my $k (sort keys %a) { |
206 | for my $k (sort keys %a) { |
209 | if (my $end = $Crossfire::FIELD_MULTILINE{$k}) { |
207 | if (my $end = $Crossfire::FIELD_MULTILINE{$k}) { |
210 | $a{$k} =~ s/\n$//; |
208 | $a{$k} =~ s/\n$//; |
211 | $str .= "$k\n$a{$k}\n$end\n"; |
209 | $str .= "$k\n$a{$k}\n$end\n"; |
212 | } else { |
210 | } else { |
213 | $str .= "$k $a{$k}\n"; |
211 | $str .= "$k $a{$k}\n"; |
214 | } |
212 | } |
215 | } |
213 | } |
216 | |
214 | |
|
|
215 | if ($inv) { |
|
|
216 | $append->($_) for @$inv; |
|
|
217 | } |
|
|
218 | |
217 | $str .= "end\n"; |
219 | $str .= "end\n"; |
218 | |
220 | |
219 | }; |
221 | }; |
220 | |
222 | |
221 | for (@$arch) { |
223 | for (@$arch) { |