--- cf.schmorp.de/server/utils/cfutil.in 2010/05/14 22:56:47 1.85 +++ cf.schmorp.de/server/utils/cfutil.in 2010/10/05 23:25:25 1.87 @@ -158,6 +158,19 @@ print "maps installed successfully.\n"; } +sub autoglyph { + my ($stem, $face) = @_; + + if ($stem =~ /^wall\/|Nimwall/) { +# warn $stem; + "+" + } elsif ($stem =~ /^floor\/|^ground\/|Nimfloor/) { + "." + } else { + substr $stem, 0, 1 + } +} + { our %ANIMINFO; our %FACEINFO; @@ -176,9 +189,10 @@ our @c_png; - sub commit_png($$$) { - my ($name, $data, $T) = @_; + sub commit_png($$$$) { + my ($stem, $name, $data, $T) = @_; + $FACEINFO{$name}{"stem"} = substr $stem, 1 + length $PATH; $FACEINFO{$name}{"data$T"} = $data; } @@ -406,11 +420,11 @@ die "$path: unable to read tile +$x+$y, aborting.\n"; } IO::AIO::aio_unlink $file unless $CACHE; - commit_png $x|$y ? "$face+$x+$y" : $face, $tile, $T; + commit_png $stem, $x|$y ? "$face+$x+$y" : $face, $tile, $T; } } else { # use as-is (either small, use smooth) - commit_png $face, $png, $T; + commit_png $stem, $face, $png, $T; } aio_unlink $path if $delete; @@ -435,6 +449,7 @@ my $visibility = delete $o->{visibility}; my $magicmap = delete $o->{magicmap}; + my $glyph = delete $o->{glyph}; # find upper left corner :/ # omg, this is sooo broken @@ -454,6 +469,7 @@ $visibility = delete $o->{visibility} if exists $o->{visibility}; $magicmap = delete $o->{magicmap} if exists $o->{magicmap}; + $glyph = delete $o->{glyph} if exists $o->{glyph}; my $anim = delete $o->{anim}; @@ -494,6 +510,7 @@ $info->{visibility} = $visibility if defined $visibility; $info->{magicmap} = $magicmap if defined $magicmap; + $info->{glyph} = $glyph if defined $glyph; } if (my $smooth = delete $o->{smoothface}) { @@ -798,6 +815,9 @@ #length $v->{data32} <= 10000 or warn "$k: face32 larger than 10000 bytes, will not work with crossfire client.\n"; #length $v->{data64} <= 10000 or warn "$k: face64 larger than 10000 bytes.\n"; + my $stem = delete $v->{stem}; + $v->{glyph} //= autoglyph $stem, $v; + if (my $magicmap = $v->{magicmap}) { $magicmap =~ y/A-Z_\-/a-z/d; $v->{magicmap} = $COLOR{$magicmap};