--- deliantra/Deliantra-Client/DC/Protocol.pm 2006/05/31 07:40:33 1.13 +++ deliantra/Deliantra-Client/DC/Protocol.pm 2006/06/03 02:39:27 1.17 @@ -270,7 +270,7 @@ # I love transactions for (1..100) { my $txn = $CFClient::DB_ENV->txn_begin; - my $status = $self->{facemap}->db_get (id => $id, BerkeleyDB::DB_RMW); + my $status = $self->{facemap}->db_get (id => $id); if ($status == 0 || $status == BerkeleyDB::DB_NOTFOUND) { $id = ($id || 16) + 1; if ($self->{facemap}->put (id => $id) == 0 @@ -280,7 +280,7 @@ goto gotid; } } - $txn->abort; + $txn->txn_abort; } CFClient::fatal "maximum number of transaction retries reached - database problems?"; @@ -447,12 +447,15 @@ # TODO # create a widget dynamically, using spell face (CF::Protocol downloads them) + $::SETUP_SPELLS->add_spell ($spell); + $self->{map_widget}->add_command ("invoke $spell->{name}", CFClient::UI::Label::escape $spell->{message}); $self->{map_widget}->add_command ("cast $spell->{name}", CFClient::UI::Label::escape $spell->{message}); } sub spell_delete { my ($self, $spell) = @_; + $::SETUP_SPELLS->remove_spell ($spell); } sub addme_success {