… | |
… | |
69 | |
69 | |
70 | elevation |
70 | elevation |
71 | |
71 | |
72 | name name_pl custom_name attach title race |
72 | name name_pl custom_name attach title race |
73 | slaying skill msg lore other_arch |
73 | slaying skill msg lore other_arch |
74 | face animation is_animated |
74 | sound sound_destroy face animation is_animated |
75 | magicmap smoothlevel smoothface |
75 | magicmap smoothlevel smoothface |
76 | str dex con wis pow cha int |
76 | str dex con wis pow cha int |
77 | hp maxhp sp maxsp grace maxgrace |
77 | hp maxhp sp maxsp grace maxgrace |
78 | exp perm_exp expmul |
78 | exp perm_exp expmul |
79 | food dam luck wc ac x y speed speed_left move_state attack_movement |
79 | food dam luck wc ac x y speed speed_left move_state attack_movement |
… | |
… | |
431 | sub normalize_arch($) { |
431 | sub normalize_arch($) { |
432 | my ($ob) = @_; |
432 | my ($ob) = @_; |
433 | |
433 | |
434 | normalize_object $ob; |
434 | normalize_object $ob; |
435 | |
435 | |
|
|
436 | return if $ob->{_atype} eq "object"; |
|
|
437 | |
436 | my $arch = $ARCH{$ob->{_name}} |
438 | my $arch = $ARCH{$ob->{_name}} |
437 | or (warn "$ob->{_name}: no such archetype", return $ob); |
439 | or (warn "$ob->{_name}: no such archetype", return $ob); |
438 | |
440 | |
439 | if ($arch->{type} == 22) { # map |
441 | if ($arch->{type} == 22) { # map |
440 | my %normalize = ( |
442 | my %normalize = ( |
… | |
… | |
514 | |
516 | |
515 | my %arc; |
517 | my %arc; |
516 | my ($more, $prev); |
518 | my ($more, $prev); |
517 | my $comment; |
519 | my $comment; |
518 | |
520 | |
519 | open my $fh, "<:raw:perlio:utf8", $path |
521 | open my $fh, "<:utf8", $path |
520 | or Carp::croak "$path: $!"; |
522 | or Carp::croak "$path: $!"; |
521 | |
523 | |
522 | # binmode $fh; |
524 | # binmode $fh; |
523 | |
525 | |
524 | my $parse_block; $parse_block = sub { |
526 | my $parse_block; $parse_block = sub { |