Hello community, here is the log from the commit of package frozen-bubble checked in at Sun Nov 4 14:44:26 CET 2007. -------- --- frozen-bubble/frozen-bubble.changes 2007-09-30 21:11:56.000000000 +0200 +++ /mounts/work_src_done/STABLE/frozen-bubble/frozen-bubble.changes 2007-11-04 12:22:54.000000000 +0100 @@ -1,0 +2,6 @@ +Sun Oct 4 12:00:00 CEST 2007 - opensuse@dstoecker.de + +- fixed LAN game server selection problem (Bug #336294) +- fixed LAN game server creation with long nickname + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ frozen-bubble.spec ++++++ --- /var/tmp/diff_new_pack.g27773/_old 2007-11-04 14:44:14.000000000 +0100 +++ /var/tmp/diff_new_pack.g27773/_new 2007-11-04 14:44:14.000000000 +0100 @@ -36,7 +36,7 @@ Requires: CheckHardware AutoReqProv: on Version: 2.1.0 -Release: 80 +Release: 93 Summary: Puzzle with Bubbles Source: %{name}-%{version}.tar.bz2 Source1: %name.desktop @@ -160,6 +160,9 @@ /etc/init.d/fb-server /usr/sbin/rcfb-server %changelog +* Thu Oct 04 2007 - opensuse@dstoecker.de +- fixed LAN game server selection problem (Bug #336294) +- fixed LAN game server creation with long nickname * Sun Sep 30 2007 - sndirsch@suse.de - added -server subpackage and a lot of patches by Dirk Stoecker * Fri Sep 21 2007 - sndirsch@suse.de ++++++ fb_networking.diff ++++++ --- /var/tmp/diff_new_pack.g27773/_old 2007-11-04 14:44:15.000000000 +0100 +++ /var/tmp/diff_new_pack.g27773/_new 2007-11-04 14:44:15.000000000 +0100 @@ -1,6 +1,6 @@ ---- frozen-bubble 2007-01-17 09:42:16.000000000 +0100 -+++ u/frozen-bubble 2007-01-17 09:41:58.000000000 +0100 -@@ -62,6 +62,7 @@ +--- frozen-bubble.orig 2007-11-04 12:17:24.000000000 +0100 ++++ frozen-bubble 2007-11-04 12:14:29.000000000 +0100 +@@ -63,6 +63,7 @@ use fb_stuff; use fb_net; @@ -8,7 +8,16 @@ use fbsyms; use FBLE; -@@ -3503,6 +3504,7 @@ +@@ -3505,7 +3506,7 @@ + sleep 1; + return [ { host => 'localhost', port => 1511 } ]; + } else { +- unless (exec $fb_server, '-L', '-d', '-n', "lan-$mynick", '-z') { ++ unless (exec $fb_server, '-L', '-d', '-n', substr("lan-$mynick",0,12), '-z') { + print STDERR "Could not create server limited to lan game: $!\n"; + POSIX::_exit(1); + } +@@ -3553,6 +3554,7 @@ } my @sorted_servers; @@ -16,7 +25,7 @@ my $redraw = sub { my $drect = SDL::Rect->new(-width => 640, -height => $smg_statusy-$smg_lineheight*5, -x => 0, '-y' => 0); $imgbin{back_netgame}->blit($drect, $app, $drect); -@@ -3514,13 +3516,19 @@ +@@ -3564,13 +3566,19 @@ $parts{$_}{xpos} = 640 - $parts{$_}{xpos} - $parts{$_}{width} foreach keys %parts; } my $y = $smg_starty; @@ -38,7 +47,7 @@ print_('netdialogs', $app, $parts{details}{xpos}, $y, $details, $parts{details}{width}); my $pingimg = $server->{ping} < 80 ? "ping_low" : $server->{ping} < 200 ? "ping_mid" : "ping_high"; put_image($imgbin{$pingimg}, $is_rtl ? $parts{details}{xpos} + $parts{details}{width} - width('netdialogs', $details) - 17 -@@ -3531,59 +3539,40 @@ +@@ -3581,59 +3589,47 @@ $app->flip(); }; @@ -62,10 +71,30 @@ - $#sorted_servers = $max_lines - 1; - last; - } else { -- $redraw->(); -- } + if(!$$server{disabled}) { + push(@potential_servers, $server); ++ } ++ } ++ my $discover = fb_net_discover->new(@potential_servers); ++ my $looped = 0; ++ my $init = 0; ++ while(1) { ++ if($discover->pending()) ++ { ++ $discover->work(0.1); # do networking stuff for 100ms ++ ++$looped; ++ my @found_servers = $discover->found(); ++ my $weightfunc = sub { my $base = $_[0]->{free} - $_[0]->{ping}/50; $_[0]->{playing} < 100 ? $base + $_[0]->{playing}/3 : $base - $_[0]->{playing}/3; }; ++ @sorted_servers = sort { $weightfunc->($b) <=> $weightfunc->($a) } @found_servers; ++ $redraw->(); ++ # wait a bit or user onfusion will be large (jumping cursor) ++ if($looped >= 15 && @servers && !$init) ++ { ++ $init = 1; ++ $sorted_servers[0]->{selected} = 1; ++ smg_add_status_msg(t("*** Please choose a server")); + $redraw->(); + } } - $event->pump; - while ($event->poll != 0) { @@ -75,7 +104,13 @@ - if ($event->type == SDL_KEYDOWN && $event->key_sym == SDLK_ESCAPE) { - return 0; - } -- } ++ elsif(!$init) ++ { ++ $init = 1; ++ $sorted_servers[0]->{selected} = 1; ++ smg_add_status_msg(t("*** Please choose a server")); ++ $redraw->(); + } - } - foreach (difference2(\@servers, \@sorted_servers)) { - $_->{disabled} = 1; #- disable slow servers if there are a lot of them @@ -86,31 +121,13 @@ - t("*** Please retry later or try a local network game (lan game)")); - grab_key(); - return 0; - } -+ my $discover = fb_net_discover->new(@potential_servers); -+ my $looped = 0; -+ my $init = 0; -+ while(1) { -+ if($discover->pending()) -+ { -+ $discover->work(0.1); # do networking stuff for 100ms -+ ++$looped; -+ my @found_servers = $discover->found(); -+ my $weightfunc = sub { my $base = $_[0]->{free} - $_[0]->{ping}/50; $_[0]->{playing} < 100 ? $base + $_[0]->{playing}/3 : $base - $_[0]->{playing}/3; }; -+ @sorted_servers = sort { $weightfunc->($b) <=> $weightfunc->($a) } @found_servers; -+ $redraw->(); -+ # wait a bit or user onfusion will be large (jumping cursor) -+ if($looped >= 15 && @servers && !$init) -+ { -+ $init = 1; - $sorted_servers[0]->{selected} = 1; +- } +- $sorted_servers[0]->{selected} = 1; - - smg_add_status_msg(t("*** Please choose a server")); - $redraw->(); +- smg_add_status_msg(t("*** Please choose a server")); +- $redraw->(); - - while (1) { -+ } -+ } $event->pump; while ($event->poll != 0) { if ($event->type == SDL_QUIT) { @@ -122,7 +139,7 @@ my $k = extended_keypress($event); if ($k) { if ($k eq SDLK_ESCAPE()) { -@@ -3597,6 +3586,7 @@ +@@ -3647,6 +3643,7 @@ && !$sorted_servers[$::i+1]->{disabled}) { $sorted_servers[$::i]->{selected} = 0; $sorted_servers[$::i+1]->{selected} = 1; @@ -130,7 +147,7 @@ play_sound('menu_change'); goto done; } -@@ -3610,6 +3600,7 @@ +@@ -3660,6 +3657,7 @@ if ($sorted_servers[$::i]->{selected}) { $sorted_servers[$::i]->{selected} = 0; $sorted_servers[$::i-1]->{selected} = 1; @@ -138,7 +155,7 @@ play_sound('menu_change'); } } @sorted_servers; -@@ -3625,7 +3616,15 @@ +@@ -3675,7 +3673,15 @@ } $redraw->(); } @@ -155,7 +172,7 @@ } ok_smg_choose_server: -@@ -3634,6 +3633,7 @@ +@@ -3684,6 +3690,7 @@ fb_net::connect($server); if (!fb_net::isconnected()) { smg_add_status_msg(t("*** Impossible to connect to specified server, going back to server list")); @@ -163,7 +180,7 @@ return smg_choose_server(@servers); } smg_add_status_msg(t("*** Connected to server '%s'", $server->{name})); -@@ -4605,6 +4605,7 @@ +@@ -4684,6 +4691,7 @@ $smg_status_message_offsetpage = 1; if ($gameserver) { my ($host, $port) = $gameserver =~ /(\S+):(\S+)/; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org