--- deliantra/Deliantra-Client/DC.pm 2007/04/06 23:25:07 1.142 +++ deliantra/Deliantra-Client/DC.pm 2007/12/25 19:23:11 1.165 @@ -17,7 +17,7 @@ use Carp (); BEGIN { - $VERSION = '0.97'; + $VERSION = '0.9961'; use XSLoader; XSLoader::load "CFPlus", $VERSION; @@ -30,12 +30,7 @@ use File::Path (); use Storable (); # finally use Fcntl (); - -BEGIN { - use Crossfire::Protocol::Base (); - *to_json = \&Crossfire::Protocol::Base::to_json; - *from_json = \&Crossfire::Protocol::Base::from_json; -} +use JSON::XS qw(encode_json decode_json); =item guard { BLOCK } @@ -172,7 +167,7 @@ utf8::decode $CFG; $::CFG = YAML::Load ($CFG); } elsif ($CFG =~ /^\{/) { - $::CFG = from_json $CFG; + $::CFG = decode_json $CFG; } else { $::CFG = eval $CFG; ## todo comaptibility cruft } @@ -185,7 +180,7 @@ open my $fh, ">:utf8", $file or return; - print $fh to_json $::CFG; + print $fh encode_json $::CFG; } sub http_proxy { @@ -234,7 +229,7 @@ if ($^O eq "MSWin32") { $nb = (! ! $nb) + 0; - ioctl $fh, 0x8004667e, $nb; # FIONBIO + ioctl $fh, 0x8004667e, \$nb; # FIONBIO } else { fcntl $fh, &Fcntl::F_SETFL, $nb ? &Fcntl::O_NONBLOCK : 0; } @@ -243,8 +238,12 @@ package CFPlus::Layout; +$CFPlus::OpenGL::INIT_HOOK{"CFPlus::Layout"} = sub { + glyph_cache_restore; +}; + $CFPlus::OpenGL::SHUTDOWN_HOOK{"CFPlus::Layout"} = sub { - reset_glyph_cache; + glyph_cache_backup; }; 1;