ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/lib/cf.pm
(Generate patch)

Comparing deliantra/server/lib/cf.pm (file contents):
Revision 1.435 by root, Thu May 29 03:33:20 2008 UTC vs.
Revision 1.439 by root, Mon Jul 14 16:42:49 2008 UTC

40use Coro::Timer; 40use Coro::Timer;
41use Coro::Signal; 41use Coro::Signal;
42use Coro::Semaphore; 42use Coro::Semaphore;
43use Coro::AnyEvent; 43use Coro::AnyEvent;
44use Coro::AIO; 44use Coro::AIO;
45use Coro::BDB; 45use Coro::BDB 1.6;
46use Coro::Storable; 46use Coro::Storable;
47use Coro::Util (); 47use Coro::Util ();
48 48
49use JSON::XS 2.01 (); 49use JSON::XS 2.01 ();
50use BDB (); 50use BDB ();
2086 my $f = new_from_file cf::object::thawer $self->{load_path}; 2086 my $f = new_from_file cf::object::thawer $self->{load_path};
2087 $f->skip_block; 2087 $f->skip_block;
2088 $self->_load_objects ($f) 2088 $self->_load_objects ($f)
2089 or return; 2089 or return;
2090 2090
2091 $self->set_object_flag (cf::FLAG_OBJ_ORIGINAL, 1) 2091 $self->post_load_original
2092 if delete $self->{load_original}; 2092 if delete $self->{load_original};
2093 2093
2094 if (my $uniq = $self->uniq_path) { 2094 if (my $uniq = $self->uniq_path) {
2095 utf8::encode $uniq; 2095 utf8::encode $uniq;
2096 unless (aio_stat $uniq) { 2096 unless (aio_stat $uniq) {
2613Moves the player to the given map-path and coordinates by first freezing 2613Moves the player to the given map-path and coordinates by first freezing
2614her, loading and preparing them map, calling the provided $check callback 2614her, loading and preparing them map, calling the provided $check callback
2615that has to return the map if sucecssful, and then unfreezes the player on 2615that has to return the map if sucecssful, and then unfreezes the player on
2616the new (success) or old (failed) map position. In either case, $done will 2616the new (success) or old (failed) map position. In either case, $done will
2617be called at the end of this process. 2617be called at the end of this process.
2618
2619Note that $check will be called with a potentially non-loaded map, so if
2620it needs a loaded map it has to call C<< ->load >>.
2618 2621
2619=cut 2622=cut
2620 2623
2621our $GOTOGEN; 2624our $GOTOGEN;
2622 2625
3125=cut 3128=cut
3126 3129
3127for ( 3130for (
3128 ["cf::object" => qw(contr pay_amount pay_player map force_find force_add x y 3131 ["cf::object" => qw(contr pay_amount pay_player map force_find force_add x y
3129 insert remove inv nrof name archname title slaying race 3132 insert remove inv nrof name archname title slaying race
3130 decrease split destroy)], 3133 decrease split destroy change_exp)],
3131 ["cf::object::player" => qw(player)], 3134 ["cf::object::player" => qw(player)],
3132 ["cf::player" => qw(peaceful)], 3135 ["cf::player" => qw(peaceful)],
3133 ["cf::map" => qw(trigger)], 3136 ["cf::map" => qw(trigger)],
3134) { 3137) {
3135 no strict 'refs'; 3138 no strict 'refs';
3793 BDB::max_poll_reqs $TICK * 0.1; 3796 BDB::max_poll_reqs $TICK * 0.1;
3794 $AnyEvent::BDB::WATCHER->priority (1); 3797 $AnyEvent::BDB::WATCHER->priority (1);
3795 3798
3796 unless ($DB_ENV) { 3799 unless ($DB_ENV) {
3797 $DB_ENV = BDB::db_env_create; 3800 $DB_ENV = BDB::db_env_create;
3798 $DB_ENV->set_flags (BDB::AUTO_COMMIT | BDB::REGION_INIT | BDB::TXN_NOSYNC 3801 $DB_ENV->set_flags (BDB::AUTO_COMMIT | BDB::REGION_INIT);
3799 | BDB::LOG_AUTOREMOVE, 1); 3802 $DB_ENV->set_flags (&BDB::LOG_AUTOREMOVE ) if BDB::VERSION v0, v4.7;
3803 $DB_ENV->log_set_config (&BDB::LOG_AUTO_REMOVE) if BDB::VERSION v4.7;
3800 $DB_ENV->set_timeout (30, BDB::SET_TXN_TIMEOUT); 3804 $DB_ENV->set_timeout (30, BDB::SET_TXN_TIMEOUT);
3801 $DB_ENV->set_timeout (30, BDB::SET_LOCK_TIMEOUT); 3805 $DB_ENV->set_timeout (30, BDB::SET_LOCK_TIMEOUT);
3802 3806
3803 cf::sync_job { 3807 cf::sync_job {
3804 eval { 3808 eval {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines