sub addexit {
my ($self, $exit, $direction) = @_;
$self->{'_exits'}->{$direction} = $exit;
}
sub addhiddenexit {
my ($self, $exit, $direction) = @_;
$self->{'_hiddenexists'}->{$direction} = $exit;
}
sub showexits {
my ($self) = @_;
my $message = join "\n", 'The following exits are available:',
map { ' $_\n' } sort keys %{ $self->{'_exits'} };
return $message;
}
sub exit {
my ($self, $direction) = @_;
if ( exists($self->{'_hiddenexits'}->{$direction}) ) {
return $self->{'_hiddenexits'}->{$direction};
}
if ( exists($self->{'_exits'}->{$direction}) ) {
return $self->{'_exits'}->{$direction};
}
return undef;
}
####
# map file
A-B
# key file
KEY : A
NAME : Town Square
KEY : B
NAME : store
####
- : east / west
| : north/south
\ : nw/se
/ : ne/sw
X : ne/sw/nw/se
^ : north
v : south
> : east
< : west
. : hidden (n/s or e/w, depending on placement)