… | |
… | |
25 | our %EXTCMD = (); |
25 | our %EXTCMD = (); |
26 | |
26 | |
27 | _init_vars; |
27 | _init_vars; |
28 | |
28 | |
29 | our @EVENT; |
29 | our @EVENT; |
30 | our $LIBDIR = maps_directory "perl"; |
30 | our $LIBDIR = datadir . "/ext"; |
31 | |
31 | |
32 | our $TICK = MAX_TIME * 1e-6; |
32 | our $TICK = MAX_TIME * 1e-6; |
33 | our $TICK_WATCHER; |
33 | our $TICK_WATCHER; |
34 | our $NEXT_TICK; |
34 | our $NEXT_TICK; |
35 | |
35 | |
… | |
… | |
80 | |
80 | |
81 | # we bless all objects into (empty) derived classes to force a method lookup |
81 | # we bless all objects into (empty) derived classes to force a method lookup |
82 | # within the Safe compartment. |
82 | # within the Safe compartment. |
83 | for my $pkg (qw( |
83 | for my $pkg (qw( |
84 | cf::object cf::object::player |
84 | cf::object cf::object::player |
85 | cf::client_socket cf::player |
85 | cf::client cf::player |
86 | cf::arch cf::living |
86 | cf::arch cf::living |
87 | cf::map cf::party cf::region |
87 | cf::map cf::party cf::region |
88 | )) { |
88 | )) { |
89 | no strict 'refs'; |
89 | no strict 'refs'; |
90 | @{"safe::$pkg\::wrap::ISA"} = @{"$pkg\::wrap::ISA"} = $pkg; |
90 | @{"safe::$pkg\::wrap::ISA"} = @{"$pkg\::wrap::ISA"} = $pkg; |
… | |
… | |
720 | |
720 | |
721 | Symbol::delete_package $pkg; |
721 | Symbol::delete_package $pkg; |
722 | } |
722 | } |
723 | |
723 | |
724 | sub load_extensions { |
724 | sub load_extensions { |
725 | my $LIBDIR = maps_directory "perl"; |
|
|
726 | |
|
|
727 | for my $ext (<$LIBDIR/*.ext>) { |
725 | for my $ext (<$LIBDIR/*.ext>) { |
728 | next unless -r $ext; |
726 | next unless -r $ext; |
729 | eval { |
727 | eval { |
730 | load_extension $ext; |
728 | load_extension $ext; |
731 | 1 |
729 | 1 |
… | |
… | |
1173 | }; |
1171 | }; |
1174 | |
1172 | |
1175 | unshift @INC, $LIBDIR; |
1173 | unshift @INC, $LIBDIR; |
1176 | |
1174 | |
1177 | $TICK_WATCHER = Event->timer ( |
1175 | $TICK_WATCHER = Event->timer ( |
1178 | prio => 1, |
1176 | prio => 0, |
1179 | async => 1, |
|
|
1180 | at => $NEXT_TICK || 1, |
1177 | at => $NEXT_TICK || 1, |
1181 | data => WF_AUTOCANCEL, |
1178 | data => WF_AUTOCANCEL, |
1182 | cb => sub { |
1179 | cb => sub { |
1183 | cf::server_tick; # one server iteration |
1180 | cf::server_tick; # one server iteration |
1184 | |
1181 | |