--- deliantra/server/lib/cf.pm 2007/01/14 22:14:35 1.176 +++ deliantra/server/lib/cf.pm 2007/01/18 00:06:55 1.178 @@ -1123,7 +1123,6 @@ sub generate_random_map { my ($self, $rmp) = @_; - # mit "rum" bekleckern, nicht $self->_create_random_map ( $rmp->{wallstyle}, $rmp->{wall_name}, $rmp->{floorstyle}, $rmp->{monsterstyle}, @@ -1815,8 +1814,8 @@ my ($spec) = @_; my $rmp = { # defaults - xsize => 10, - ysize => 10, + xsize => -1, + ysize => -1, }; for (split /\n/, $spec) { @@ -1848,9 +1847,12 @@ my $data = cf::to_json $rmp; my $md5 = Digest::MD5::md5_hex $data; + my $meta = "$cf::RANDOM_MAPS/$md5.meta"; - if (my $fh = aio_open "$cf::RANDOM_MAPS/$md5.meta", O_WRONLY | O_CREAT, 0666) { + if (my $fh = aio_open "$meta~", O_WRONLY | O_CREAT, 0666) { aio_write $fh, 0, (length $data), $data, 0; + undef $fh; + aio_rename "$meta~", $meta; $exit->slaying ("?random/$md5"); $exit->msg (undef);