1 | #! perl # MANDATORY |
1 | #! perl # MANDATORY |
2 | |
2 | |
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; |
|
|
10 | $self->{deny_reset} = 1; #d# for now |
9 | } |
11 | } |
10 | |
12 | |
11 | sub as_string { |
13 | sub load_path { |
12 | my ($self) = @_; |
14 | my ($self) = @_; |
13 | |
15 | |
14 | "~$self->{user}$self->{path}" |
16 | sprintf "%s/%s/%s", cf::datadir, cf::mapdir, $self->{orig_path} |
15 | } |
17 | } |
16 | |
18 | |
17 | sub save_path { |
19 | sub save_path { |
18 | my ($self) = @_; |
20 | my ($self) = @_; |
19 | |
21 | |
|
|
22 | (my $path = $_[0]{orig_path}) =~ s/\//$PATH_SEP/g; |
20 | sprintf "%s/%s/%s/%s", cf::localdir, cf::playerdir, $self->{user}, $self->_escaped_path |
23 | sprintf "%s/%s/%s/%s", cf::localdir, cf::playerdir, $self->{user}, $path |
21 | } |
24 | } |
22 | |
25 | |
23 | sub uniq_path { |
26 | sub uniq_path { |
24 | undef |
27 | undef |
25 | } |
28 | } |
26 | |
29 | |
|
|
30 | sub load_header { |
|
|
31 | my ($self) = @_; |
|
|
32 | |
|
|
33 | $self->SUPER::load_header |
|
|
34 | or return; |
|
|
35 | |
|
|
36 | # forcefully disable per_player flag |
|
|
37 | $self->per_player (0); |
|
|
38 | |
|
|
39 | 1 |
|
|
40 | } |
|
|
41 | |
27 | 1 |
42 | 1 |
28 | |
43 | |