… | |
… | |
3 | cf::map->register (qr{^~([^/]+)(/.*)}); |
3 | cf::map->register (qr{^~([^/]+)(/.*)}); |
4 | |
4 | |
5 | sub init { |
5 | sub init { |
6 | my ($self) = @_; |
6 | my ($self) = @_; |
7 | |
7 | |
8 | $self->{user} = $1; |
8 | $self->{user} = $1; |
9 | $self->{orig_path} = $2; |
9 | $self->{orig_path} = $2; |
|
|
10 | $self->{deny_reset} = 1; #d# for now |
|
|
11 | } |
|
|
12 | |
|
|
13 | sub thawer_merge { |
|
|
14 | # we have to keep some variables in memory intact |
|
|
15 | local $_[0]{user}; |
|
|
16 | local $_[0]{orig_path}; |
|
|
17 | local $_[0]{deny_reset}; |
|
|
18 | |
|
|
19 | $_[0]->SUPER::thawer_merge ($_[1]); |
10 | } |
20 | } |
11 | |
21 | |
12 | sub load_path { |
22 | sub load_path { |
13 | my ($self) = @_; |
23 | my ($self) = @_; |
14 | |
24 | |
15 | sprintf "%s/%s/%s", cf::datadir, cf::mapdir, $self->{orig_path} |
25 | "$cf::MAPDIR/$self->{orig_path}.map" |
16 | } |
26 | } |
17 | |
27 | |
18 | sub save_path { |
28 | sub save_path { |
19 | my ($self) = @_; |
29 | my ($self) = @_; |
20 | |
30 | |
21 | (my $path = $_[0]{orig_path}) =~ s/\//$PATH_SEP/g; |
31 | (my $path = $_[0]{orig_path}) =~ s/\//$PATH_SEP/g; |
22 | sprintf "%s/%s/%s/%s", cf::localdir, cf::playerdir, $self->{user}, $path |
32 | "$cf::PLAYERDIR/$self->{user}/$path.map" |
23 | } |
33 | } |
24 | |
34 | |
25 | sub uniq_path { |
35 | sub uniq_path { |
26 | undef |
36 | undef |
27 | } |
37 | } |
… | |
… | |
36 | $self->per_player (0); |
46 | $self->per_player (0); |
37 | |
47 | |
38 | 1 |
48 | 1 |
39 | } |
49 | } |
40 | |
50 | |
|
|
51 | sub decay_objects { |
|
|
52 | # do nothing on per player maps at the moment |
|
|
53 | # to protect apartments. |
|
|
54 | # TODO: apartments should be marked as such |
|
|
55 | # (no reset, no decay etc.) |
|
|
56 | } |
|
|
57 | |
41 | 1 |
58 | 1 |
42 | |
59 | |