ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/bin/deliantra
(Generate patch)

Comparing deliantra/Deliantra-Client/bin/deliantra (file contents):
Revision 1.44 by root, Mon May 26 03:34:02 2008 UTC vs.
Revision 1.48 by root, Mon Jul 7 08:02:17 2008 UTC

1#!/opt/bin/perl 1#!/opt/bin/perl
2
3{
4package Deliantra::Client; # work around CPAN breakage
5package App::Deliantra; # try to reserve namespace
6}
2 7
3if ($ENV{DELIANTRA_CORO_DEBUG}) { 8if ($ENV{DELIANTRA_CORO_DEBUG}) {
4 eval ' 9 eval '
5 use Coro; 10 use Coro;
6 use Coro::EV; 11 use Coro::EV;
97use List::Util qw(max min); 102use List::Util qw(max min);
98 103
99use Deliantra; 104use Deliantra;
100use Deliantra::Protocol::Constants; 105use Deliantra::Protocol::Constants;
101 106
107use AnyEvent::DNS;
108
102use Compress::LZF; 109use Compress::LZF;
103 110
104use DC; 111use DC;
105#d# BEGIN { $SIG{__DIE__} = sub { DC::fatal Carp::longmess "$@" unless $^S } } 112BEGIN { $SIG{__DIE__} = sub { DC::fatal Carp::longmess "$@" unless $^S } }
106use DC::OpenGL (); 113use DC::OpenGL ();
107use DC::Protocol; 114use DC::Protocol;
108use DC::DB; 115use DC::DB;
109use DC::UI; 116use DC::UI;
110use DC::UI::Canvas; 117use DC::UI::Canvas;
726 733
727 $vbox->add (@dialog); 734 $vbox->add (@dialog);
728 $dialog->show; 735 $dialog->show;
729} 736}
730 737
731sub start_game { 738sub dc_connect {
732 status "logging in..."; 739 my ($host, $port) = @_;
733
734 $LOGIN_BUTTON->set_text ("Logout");
735 $SETUP_DIALOG->hide;
736 740
737 my $mapsize = List::Util::min 32, List::Util::max 11, int $WIDTH * $CFG->{mapsize} * 0.01 / 32; 741 my $mapsize = List::Util::min 32, List::Util::max 11, int $WIDTH * $CFG->{mapsize} * 0.01 / 32;
738 742
739 my ($host, $port) = split /:/, $PROFILE->{host};
740
741 $MAP = new DC::Map;
742
743 $CONN = 743 $CONN =
744 new DC::Protocol 744 new DC::Protocol
745 host => $host, 745 host => $host,
746 port => $port || 13327, 746 port => $port || 13327,
747 user => $PROFILE->{user}, 747 user => $PROFILE->{user},
771 status "unable to connect: $!"; 771 status "unable to connect: $!";
772 stop_game(); 772 stop_game();
773 } 773 }
774 }, 774 },
775 ; 775 ;
776}
777
778sub start_game {
779 status "logging in...";
780
781 $LOGIN_BUTTON->set_text ("Logout");
782 $SETUP_DIALOG->hide;
783
784 my ($host, $port) = split /:/, $PROFILE->{host};
785
786 $MAP = new DC::Map;
787
788 # hack to make SURE we find the IP address all right
789 # can be removed once AnyEvent::DNS is proven stable.
790 if ($host eq "gameserver.deliantra.net") {
791 AnyEvent::DNS::a "dnstest.deliantra.net", sub {
792 if ($_[0] ne "80.101.114.108") { # Perl
793 status "dns failure, using hardcoded address";
794 $host = "129.13.162.95";
795 }
796
797 dc_connect $host, $port;
798 };
799 } else {
800 dc_connect $host, $port;
801 }
776} 802}
777 803
778sub stop_game { 804sub stop_game {
779 $LOGIN_BUTTON->set_text ("Login / Register"); 805 $LOGIN_BUTTON->set_text ("Login / Register");
780 $SETUP_NOTEBOOK->set_current_page ($SETUP_LOGIN); 806 $SETUP_NOTEBOOK->set_current_page ($SETUP_LOGIN);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines